diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91dcc72b..696586eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - version: [GMPE01_00] + version: [GMPE01_00, GMPE01_01, GMPP01_00, GMPP01_02, GMPJ01_00] steps: # Checkout the repository diff --git a/.vscode/settings.json b/.vscode/settings.json index b4546cc9..64233526 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,27 +13,134 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.associations": { + "*.cp": "cpp", "*.csv": "plaintext", "*.s": "plaintext", "*.json": "jsonc", "*.c": "c", + "*.asm": "masm", "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", - "object.h": "c" + "object.h": "c", + "executor.h": "c", + "m438dll.h": "c", + "audio.h": "c", + "musyx.h": "c", + "math.h": "c", + "m418dll.h": "c", + "ext_math.h": "c", + "mtx.h": "c", + "types.h": "c", + "corecrt_math.h": "c", + "corecrt.h": "c", + "vcruntime.h": "c", + "hsfmotion.h": "c", + "m424dll.h": "c", + "chrman.h": "c", + "os.h": "c", + "type_traits": "cpp", + "xutility": "cpp", + "xtr1common": "c", + "hsfdraw.h": "c", + "dolphin.h": "c", + "hsfman.h": "c", + "hsfformat.h": "c", + "hsfanim.h": "c", + "memory.h": "c", + "animdata.h": "c", + "abort_exit.h": "c", + "critical_regions.h": "c", + "stddef.h": "c", + "nmwexception.h": "c", + "signal.h": "c", + "gx.h": "c", + "dol2asm.h": "c", + "__mem.h": "c", + "fdlibm.h": "c", + "float.h": "c", + "corecrt_math_defines.h": "c", + "math_ppc.h": "c", + "errno.h": "c", + "m427dll.h": "c", + "sprite.h": "c", + "gamework_data.h": "c", + "roll.h": "c", + "msghndlr.h": "c", + "dispatch.h": "c", + "trk.h": "c", + "debuggerdriver.h": "c", + "mpexdll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { - "build/*/config.json": true, - "build/**/*.MAP": true, - "build.ninja": true, - ".ninja_*": true, - "objdiff.json": true, - "progress.json": true, - "report.json": true, - "compile_commands.json": true, + "build/*/config.json": true, + "build/**/*.MAP": true, + "build.ninja": true, + ".ninja_*": true, + "objdiff.json": true, + "progress.json": true, + "report.json": true, + "compile_commands.json": true }, "cmake.ignoreCMakeListsMissing": true, "editor.fontFamily": "Fira Code", - "editor.fontLigatures": true + "editor.fontLigatures": true, + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false } diff --git a/README.md b/README.md index 26c49ce7..f1594c57 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ Supported versions: - `GMPE01_00`: Rev 0 (USA) - `GMPE01_01`: Rev 1 (USA) +- `GMPP01_00`: Rev 0 (PAL) +- `GMPP01_02`: Rev 2 (PAL) +- `GMPJ01_00`: Rev 0 (JP) Dependencies ============ diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 81fc8915..7e4233af 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -19,9 +19,9 @@ modules: splits: config/GMPE01_00/rels/bootDll/splits.txt links: [] extract: - - symbol: logoNintendoData - binary: logoNintendoData.bin - header: logoNintendoData.inc + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: f09399fee83c63abfe2adb25341152adad959a93 symbols: config/GMPE01_00/rels/instDll/symbols.txt @@ -565,7 +565,4 @@ extract: header: retryerror_en.inc - symbol: wrongdisc_en binary: wrongdisc_en.bin - header: wrongdisc_en.inc -- symbol: DEMOFontBitmap - binary: DEMOFontBitmap.bin - header: DEMOFontBitmap.inc \ No newline at end of file + header: wrongdisc_en.inc \ No newline at end of file diff --git a/config/GMPE01_00/rels/bootDll/splits.txt b/config/GMPE01_00/rels/bootDll/splits.txt index 49f64a4a..14a67037 100644 --- a/config/GMPE01_00/rels/bootDll/splits.txt +++ b/config/GMPE01_00/rels/bootDll/splits.txt @@ -10,11 +10,7 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/bootDll/main.c: - .text start:0x000000A0 end:0x00002944 + .text start:0x000000A0 end:0x000029C8 .rodata start:0x00000000 end:0x000000DC - .data start:0x00000000 end:0x000000A0 + .data start:0x00000000 end:0x0000311D .bss start:0x00000000 end:0x0000005C - -REL/bootDll/nintendo_data.c: - .text start:0x00002944 end:0x000029C8 - .data start:0x000000A0 end:0x0000311D diff --git a/config/GMPE01_00/rels/bootDll/symbols.txt b/config/GMPE01_00/rels/bootDll/symbols.txt index b576a34e..463f8400 100644 --- a/config/GMPE01_00/rels/bootDll/symbols.txt +++ b/config/GMPE01_00/rels/bootDll/symbols.txt @@ -1,14 +1,14 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x1CC -BootProc = .text:0x0000026C; // type:function size:0x78C scope:local +BootExec = .text:0x0000026C; // type:function size:0x78C UpdateDemoMess = .text:0x000009F8; // type:function size:0xC8 scope:local -ProgressiveProc = .text:0x00000AC0; // type:function size:0x6B8 scope:local -fn_1_1178 = .text:0x00001178; // type:function size:0x3B4 -fn_1_152C = .text:0x0000152C; // type:function size:0xBD4 -TitleInit = .text:0x00002100; // type:function size:0x374 scope:local -TitleProc = .text:0x00002474; // type:function size:0x4D0 scope:local -logoReadNintendo = .text:0x00002944; // type:function size:0x84 +BootProgExec = .text:0x00000AC0; // type:function size:0x6B8 +DebugCamOutView = .text:0x00001178; // type:function size:0x3B4 +DebugCamUpdate = .text:0x0000152C; // type:function size:0xBD4 +BootTitleCreate = .text:0x00002100; // type:function size:0x374 +BootTitleExec = .text:0x00002474; // type:function size:0x4D0 +NintendoDataDecode = .text:0x00002944; // type:function size:0x84 _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 scope:local data:float @@ -50,20 +50,21 @@ lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:d lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 scope:local data:string lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 scope:local data:string -demoTimingTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte -progressivePosTbl = .data:0x00000050; // type:object size:0x8 scope:local -lbl_1_data_58 = .data:0x00000058; // type:object size:0x4 scope:local +demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte +progPosTbl = .data:0x00000050; // type:object size:0x8 scope:local +debugCamTbl = .data:0x00000058; // type:object size:0x4 scope:local lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A scope:local data:string lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 scope:local data:string lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 scope:local -logoNintendoData = .data:0x000000A0; // type:object size:0x307D align:32 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +nintendoData = .data:0x000000A0; // type:object size:0x307D align:32 +debugCamOnF = .bss:0x00000000; // type:object size:0x4 lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 -titleGroup = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte -titleModel = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte -demoWin = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte +bootGrpId = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +titleMdlId = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte +demoWinId = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:float -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x18 data:float -objman = .bss:0x00000054; // type:object size:0x8 scope:local data:4byte +debugCamZoom = .bss:0x0000001C; // type:object size:0x8 data:float +debugCamPos = .bss:0x00000024; // type:object size:0x18 data:float +debugCamRot = .bss:0x0000003C; // type:object size:0x18 data:float +objman = .bss:0x00000054; // type:object size:0x4 data:4byte +debugOutView = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/rels/instDll/symbols.txt b/config/GMPE01_00/rels/instDll/symbols.txt index 0580b867..cc0a6047 100644 --- a/config/GMPE01_00/rels/instDll/symbols.txt +++ b/config/GMPE01_00/rels/instDll/symbols.txt @@ -1,16 +1,16 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x8F4 -fn_1_994 = .text:0x00000994; // type:function size:0xE50 scope:local -fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 scope:local -fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 scope:local -fn_1_2804 = .text:0x00002804; // type:function size:0x79C scope:local -fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 scope:local -fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 scope:local -fn_1_4528 = .text:0x00004528; // type:function size:0xB88 scope:local -fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 scope:local -fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 scope:local -fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x4B8 +InstMain = .text:0x00000994; // type:function size:0xE50 scope:local +InstPlayerMain = .text:0x000017E4; // type:function size:0xA28 scope:local +InstHostMain = .text:0x0000220C; // type:function size:0x5F8 scope:local +InstWinMain = .text:0x00002804; // type:function size:0x79C scope:local +InstNameMain = .text:0x00002FA0; // type:function size:0x11D4 scope:local +CameraOutView = .text:0x00004174; // type:function size:0x3B4 scope:local +CameraDebug = .text:0x00004528; // type:function size:0xB88 scope:local +InstPicDraw = .text:0x000050B0; // type:function size:0xAB4 scope:local +ShadowDraw = .text:0x00005B64; // type:function size:0x340 scope:local +FontCreate = .text:0x00005EA4; // type:function size:0x4B8 _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 scope:local data:float @@ -115,38 +115,38 @@ lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data: lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 scope:local data:2byte +instMode = .data:0x00000000; // type:object size:0x2 scope:local data:2byte lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 scope:local data:string -lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 scope:local -lbl_1_data_46 = .data:0x00000046; // type:object size:0x8 scope:local -lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 scope:local -lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 scope:local +instGrpTbl = .data:0x00000026; // type:object size:0x20 scope:local +instPlayerNumTbl = .data:0x00000046; // type:object size:0x8 scope:local +instBoxFile = .data:0x00000050; // type:object size:0x20 scope:local +instBackFile = .data:0x00000070; // type:object size:0x20 scope:local lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 scope:local data:string lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 scope:local data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 scope:local data:string lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 scope:local data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 scope:local -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 scope:local -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 scope:local -lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 scope:local data:float -lbl_1_data_144 = .data:0x00000144; // type:object size:0x4 scope:local +playerPosNameTbl = .data:0x000000B0; // type:object size:0x10 scope:local +playerDelayTbl = .data:0x000000C0; // type:object size:0x4 scope:local +hostFileTbl = .data:0x000000C4; // type:object size:0x48 scope:local +hostSeTbl = .data:0x0000010C; // type:object size:0x18 scope:local +instNamePosTbl = .data:0x00000124; // type:object size:0x20 scope:local data:float +cameraMask$858 = .data:0x00000144; // type:object size:0x4 scope:local lbl_1_data_148 = .data:0x00000148; // type:object size:0x4 scope:local -lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 scope:local data:float -lbl_1_data_150 = .data:0x00000150; // type:object size:0x318 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x1 scope:local data:byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 scope:local data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 scope:local data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 scope:local data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +instPicRadius = .data:0x0000014C; // type:object size:0x4 scope:local data:float +FontCharFile = .data:0x00000150; // type:object size:0x318 scope:local +debugCamOnF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +instBusyF = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte +instPage = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +LanguageNo = .bss:0x00000008; // type:object size:0x1 scope:local data:byte +instFov = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +instMesOfs = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte +instHostNo = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +instMgNo = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +instPicAnim = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +instBoxMdlId = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +cameraZoom = .bss:0x00000020; // type:object size:0x8 data:float +cameraPos = .bss:0x00000028; // type:object size:0x18 data:float +cameraRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +outViewObj = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/rels/m404Dll/symbols.txt b/config/GMPE01_00/rels/m404Dll/symbols.txt index dd934235..e6bb9e5a 100644 --- a/config/GMPE01_00/rels/m404Dll/symbols.txt +++ b/config/GMPE01_00/rels/m404Dll/symbols.txt @@ -60,7 +60,7 @@ lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:f lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:2byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x6 scope:local data:2byte lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float diff --git a/config/GMPE01_00/rels/m413Dll/symbols.txt b/config/GMPE01_00/rels/m413Dll/symbols.txt index 0da93366..22b18c0f 100644 --- a/config/GMPE01_00/rels/m413Dll/symbols.txt +++ b/config/GMPE01_00/rels/m413Dll/symbols.txt @@ -22,176 +22,176 @@ ObjectSetup = .text:0x0000D3A0; // type:function size:0x360 fn_1_D700 = .text:0x0000D700; // type:function size:0x64 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_0 = .rodata:0x00000000; // type:object size:0x10 data:double -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x18 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x18 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte -lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:4byte -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 -lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte -lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte -lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float -lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float -lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double -lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double -lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double -lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double -lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float -lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte -lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte -lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 -lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double -lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double -lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float -lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double -lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float -lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double -lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double -lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double -lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double -lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float -lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float -lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float -lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float -lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float -lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C data:4byte -lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 data:double -lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 data:float -lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 data:float -lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float -lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float -lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 data:double -lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 data:float -lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 data:double -lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 data:float -lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 data:float -lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float -lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float -lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float -lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float -lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float -lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float -lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 data:double -lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double -lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 data:float -lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 data:float -lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float -lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC data:byte -lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 data:4byte -lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 data:byte -lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 data:4byte -lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 data:byte -lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 data:4byte -lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 data:4byte -lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double -lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float -lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float -lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float -lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float -lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double -lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float -lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float -lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double -lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double -lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte -lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float -lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float -lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float -lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte -lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte -lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte -lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte -lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte -lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte -lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte -lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte -lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float -lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float -lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float -lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float -lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_rodata_0 = .rodata:0x00000000; // type:object size:0x10 scope:local data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x18 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x18 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC scope:local +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 scope:local data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F scope:local data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 scope:local +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 scope:local data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 scope:local data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 scope:local data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 scope:local data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 scope:local data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 scope:local +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 scope:local data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 scope:local data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 scope:local data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 scope:local data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 scope:local data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 scope:local data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 scope:local data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 scope:local data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 scope:local data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 scope:local data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 scope:local data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 scope:local data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 scope:local data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 scope:local data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC scope:local data:byte +lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 scope:local data:byte +lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 scope:local data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 scope:local data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 scope:local data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 scope:local data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 scope:local data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte lbl_1_data_C = .data:0x0000000C; // type:object size:0x10 data:4byte lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1C data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string -lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string -lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string -lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string -lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string -lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string -lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 scope:local data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B scope:local data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 scope:local data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 scope:local data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 scope:local data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 scope:local data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 scope:local data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF scope:local data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 scope:local 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:0x8 data:4byte diff --git a/config/GMPE01_00/rels/m415Dll/symbols.txt b/config/GMPE01_00/rels/m415Dll/symbols.txt index 3c3a6a5f..62f5cc6f 100644 --- a/config/GMPE01_00/rels/m415Dll/symbols.txt +++ b/config/GMPE01_00/rels/m415Dll/symbols.txt @@ -190,14 +190,14 @@ lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data: lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 diff --git a/config/GMPE01_00/rels/m418Dll/symbols.txt b/config/GMPE01_00/rels/m418Dll/symbols.txt index 6d5e96a3..ad0f568b 100644 --- a/config/GMPE01_00/rels/m418Dll/symbols.txt +++ b/config/GMPE01_00/rels/m418Dll/symbols.txt @@ -98,7 +98,7 @@ fn_1_9F94 = .text:0x00009F94; // type:function size:0x1BC _prolog = .text:0x0000A150; // type:function size:0x54 scope:global _epilog = .text:0x0000A1A4; // type:function size:0x4C scope:global fn_1_A1F0 = .text:0x0000A1F0; // type:function size:0x398 -fn_1_A588 = .text:0x0000A588; // type:function size:0x398 +ObjectSetup = .text:0x0000A588; // type:function size:0x398 fn_1_A920 = .text:0x0000A920; // type:function size:0x20 fn_1_A940 = .text:0x0000A940; // type:function size:0x28 fn_1_A968 = .text:0x0000A968; // type:function size:0xC8 @@ -128,149 +128,149 @@ fn_1_D714 = .text:0x0000D714; // type:function size:0x4FC fn_1_DC10 = .text:0x0000DC10; // type:function size:0x6C8 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte -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:0x8 data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x20 lbl_1_data_200 = .data:0x00000200; // type:object size:0x40 diff --git a/config/GMPE01_00/rels/m419Dll/symbols.txt b/config/GMPE01_00/rels/m419Dll/symbols.txt index 1a40f379..a3696d5f 100644 --- a/config/GMPE01_00/rels/m419Dll/symbols.txt +++ b/config/GMPE01_00/rels/m419Dll/symbols.txt @@ -46,117 +46,117 @@ fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 fn_1_10500 = .text:0x00010500; // type:function size:0x3E0 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 -lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 diff --git a/config/GMPE01_00/rels/m421Dll/symbols.txt b/config/GMPE01_00/rels/m421Dll/symbols.txt index cb29a8cd..b2817421 100644 --- a/config/GMPE01_00/rels/m421Dll/symbols.txt +++ b/config/GMPE01_00/rels/m421Dll/symbols.txt @@ -79,157 +79,157 @@ fn_1_B398 = .text:0x0000B398; // type:function size:0x4 fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 _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:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 data:4byte -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 data:4byte -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -237,13 +237,13 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 data:float lbl_1_data_94 = .data:0x00000094; // type:object size:0xC lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:byte -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string -lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 data:string -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A scope:local data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 scope:local data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB scope:local data:string lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x20 lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 diff --git a/config/GMPE01_00/rels/m422Dll/symbols.txt b/config/GMPE01_00/rels/m422Dll/symbols.txt index f4f38637..db300891 100644 --- a/config/GMPE01_00/rels/m422Dll/symbols.txt +++ b/config/GMPE01_00/rels/m422Dll/symbols.txt @@ -13,191 +13,191 @@ ObjectSetup = .text:0x0000B058; // type:function size:0x428 fn_1_B480 = .text:0x0000B480; // type:function size:0xAC _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:0x30 -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte -lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float -lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float -lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float -lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float -lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float -lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double -lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float -lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte -lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte -lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:byte -lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float -lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float -lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float -lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float -lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 scope:local data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 scope:local data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 scope:local data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 scope:local data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C scope:local data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 scope:local data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 scope:local data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 scope:local data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 scope:local data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 scope:local data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 scope:local data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 scope:local data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 scope:local data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC scope:local data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC scope:local data:float +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 scope:local data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 @@ -205,29 +205,29 @@ lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float -lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string -lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string -lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string -lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string -lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string -lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string -lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string -lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string -lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string -lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string -lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string -lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF scope:local data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 scope:local data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 scope:local data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF scope:local data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 scope:local data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 scope:local data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF scope:local data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 scope:local data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 scope:local data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 scope:local data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 scope:local data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x10 scope:local data:string lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte -lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 -lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 data:float +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0x8 data:4byte lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte -lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string -lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string -lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B scope:local data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 scope:local data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float diff --git a/config/GMPE01_00/rels/m423Dll/symbols.txt b/config/GMPE01_00/rels/m423Dll/symbols.txt index bd1d1367..ddeb5a66 100644 --- a/config/GMPE01_00/rels/m423Dll/symbols.txt +++ b/config/GMPE01_00/rels/m423Dll/symbols.txt @@ -103,234 +103,234 @@ fn_1_1367C = .text:0x0001367C; // type:function size:0x148 fn_1_137C4 = .text:0x000137C4; // type:function size:0x78C _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x1 data:byte -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 data:float lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC -lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 -lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC -lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC data:float +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC data:float +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC data:float +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x23 scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC data:float +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC data:float lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local -lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte -lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 -lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 -lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 -lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 data:float +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 data:float +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 data:float +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 data:byte +lbl_1_data_310 = .data:0x00000310; // type:object size:0x4 data:byte lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte -lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 -lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 data:float +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 data:float lbl_1_data_388 = .data:0x00000388; // type:object size:0x4 data:byte -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F scope:local data:string lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x4 data:byte lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x4 data:byte lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x4 data:byte -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 data:float lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 -lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 data:2byte lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 lbl_1_data_574 = .data:0x00000574; // type:object size:0xC lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 -lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte -lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte -lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:float +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x4 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x4 data:byte jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local -lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +lbl_1_data_630 = .data:0x00000630; // type:object size:0x4 data:byte jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 -lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 data:float lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 -lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 data:float lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte -lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x4 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 data:2byte jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local -lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 data:byte lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 -lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 -lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 -lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 -lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 -lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 data:2byte +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 data:2byte +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 data:float +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 data:float +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 data:float lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte @@ -359,7 +359,7 @@ lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m424Dll/splits.txt b/config/GMPE01_00/rels/m424Dll/splits.txt index 464ddcb7..8a0d8259 100644 --- a/config/GMPE01_00/rels/m424Dll/splits.txt +++ b/config/GMPE01_00/rels/m424Dll/splits.txt @@ -12,12 +12,13 @@ REL/executor.c: REL/m424Dll/main.c: .text start:0x000000A0 end:0x00001AB8 .rodata start:0x00000000 end:0x00000090 - .data start:0x00000000 end:0x00000150 + .data start:0x00000000 end:0x000000E0 .bss start:0x00000000 end:0x00000050 REL/m424Dll/map.c: .text start:0x00001AB8 end:0x00002720 .rodata start:0x00000090 end:0x000000F8 + .data start:0x000000E0 end:0x00000150 .bss start:0x00000050 end:0x00000058 REL/m424Dll/ball.c: diff --git a/config/GMPE01_00/rels/m424Dll/symbols.txt b/config/GMPE01_00/rels/m424Dll/symbols.txt index 987485bc..8320af0c 100644 --- a/config/GMPE01_00/rels/m424Dll/symbols.txt +++ b/config/GMPE01_00/rels/m424Dll/symbols.txt @@ -97,168 +97,168 @@ fn_1_CF80 = .text:0x0000CF80; // type:function size:0x90 fn_1_D010 = .text:0x0000D010; // type:function size:0x64 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 data:string +lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 scope:local data:string lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 @@ -266,8 +266,11 @@ jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC -lbl_1_data_104 = .data:0x00000104; // type:object size:0x7 data:string -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x44 +lbl_1_data_104 = .data:0x00000104; // type:object size:0x7 scope:local data:string +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x1C +lbl_1_data_128 = .data:0x00000128; // type:object size:0x4 data:byte +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x1C +lbl_1_data_148 = .data:0x00000148; // type:object size:0x8 lbl_1_data_150 = .data:0x00000150; // type:object size:0x2C lbl_1_data_17C = .data:0x0000017C; // type:object size:0x30 jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local @@ -278,15 +281,16 @@ lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte -lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string -lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string -lbl_1_data_324 = .data:0x00000324; // type:object size:0x6 data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 scope:local data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 scope:local data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x6 scope:local data:string jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 -lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string -lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 scope:local data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 scope:local data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte @@ -295,7 +299,8 @@ lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte @@ -312,6 +317,7 @@ lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte -lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x8 data:4byte lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m425Dll/symbols.txt b/config/GMPE01_00/rels/m425Dll/symbols.txt index cae3368f..627df9e1 100644 --- a/config/GMPE01_00/rels/m425Dll/symbols.txt +++ b/config/GMPE01_00/rels/m425Dll/symbols.txt @@ -65,211 +65,212 @@ fn_1_11A74 = .text:0x00011A74; // type:function size:0x46C fn_1_11EE0 = .text:0x00011EE0; // type:function size:0x7B4 _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:0x10 data:4byte -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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:0xC0 -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC0 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte lbl_1_data_4 = .data:0x00000004; // type:object size:0xC lbl_1_data_10 = .data:0x00000010; // type:object size:0xC -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x23 data:string +lbl_1_data_44 = .data:0x00000044; // type:object size:0x23 scope:local data:string lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte -lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 -lbl_1_data_130 = .data:0x00000130; // type:object size:0x1F data:string +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 data:float +lbl_1_data_130 = .data:0x00000130; // type:object size:0x1F scope:local data:string lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 lbl_1_data_168 = .data:0x00000168; // type:object size:0x4 data:byte -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 data:float +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 data:float lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float @@ -287,7 +288,7 @@ lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x4 data:4byte lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 -lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:byte lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m427Dll/symbols.txt b/config/GMPE01_00/rels/m427Dll/symbols.txt index a8b25f76..96db2763 100644 --- a/config/GMPE01_00/rels/m427Dll/symbols.txt +++ b/config/GMPE01_00/rels/m427Dll/symbols.txt @@ -144,217 +144,217 @@ fn_1_172F0 = .text:0x000172F0; // type:function size:0x140 fn_1_17430 = .text:0x00017430; // type:function size:0xA4 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -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:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte -lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte -lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:byte -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x2 data:byte -lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x2 data:byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A scope:local data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x2 scope:local data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x2 scope:local data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float -lbl_1_data_70 = .data:0x00000070; // type:object size:0x23 data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x23 scope:local data:string jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x5 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x5 scope:local data:string lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 @@ -365,18 +365,19 @@ lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 -lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string -lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string -lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string -lbl_1_data_239 = .data:0x00000239; // type:object size:0x25 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 scope:local data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 scope:local data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x24 scope:local data:string lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C -lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x15C +lbl_1_data_518 = .data:0x00000518; // type:object size:0x1C lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 -lbl_1_data_580 = .data:0x00000580; // type:object size:0xE data:string +lbl_1_data_580 = .data:0x00000580; // type:object size:0xE scope:local data:string lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 diff --git a/config/GMPE01_00/rels/m428Dll/splits.txt b/config/GMPE01_00/rels/m428Dll/splits.txt index 03f22ea9..3a44b731 100644 --- a/config/GMPE01_00/rels/m428Dll/splits.txt +++ b/config/GMPE01_00/rels/m428Dll/splits.txt @@ -10,13 +10,13 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/m428Dll/main.c: - .text start:0x000000A0 end:0x000040A4 + .text start:0x000000A0 end:0x000043C8 .rodata start:0x00000000 end:0x000000D8 .data start:0x00000000 end:0x00000130 .bss start:0x00000000 end:0x00000090 REL/m428Dll/map.c: - .text start:0x000040A4 end:0x00009F5C + .text start:0x000043C8 end:0x00009F5C .rodata start:0x000000D8 end:0x00000228 .data start:0x00000130 end:0x00000150 .bss start:0x00000090 end:0x00000130 diff --git a/config/GMPE01_00/rels/m428Dll/symbols.txt b/config/GMPE01_00/rels/m428Dll/symbols.txt index eef0a9df..5f9d1250 100644 --- a/config/GMPE01_00/rels/m428Dll/symbols.txt +++ b/config/GMPE01_00/rels/m428Dll/symbols.txt @@ -124,222 +124,222 @@ fn_1_14560 = .text:0x00014560; // type:function size:0x98 fn_1_145F8 = .text:0x000145F8; // type:function size:0x98 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 data:string +lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 scope:local data:string lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 -lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 scope:local data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 scope:local data:string lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 @@ -351,18 +351,19 @@ lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 -lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte -lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte -lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x4 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 scope:local data:string jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x4 data:2byte lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 -lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string -lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 scope:local data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m430Dll/symbols.txt b/config/GMPE01_00/rels/m430Dll/symbols.txt index b27b88e7..50779d4f 100644 --- a/config/GMPE01_00/rels/m430Dll/symbols.txt +++ b/config/GMPE01_00/rels/m430Dll/symbols.txt @@ -115,313 +115,313 @@ fn_1_133A4 = .text:0x000133A4; // type:function size:0x38 fn_1_133DC = .text:0x000133DC; // type:function size:0xB4 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:4byte -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 data:4byte -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:4byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 data:4byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:4byte -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:4byte -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 data:4byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 data:4byte -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 data:4byte -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 data:4byte -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 data:4byte -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 data:byte -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 data:byte -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 data:byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 data:byte -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 data:byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 data:byte -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 data:byte -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 data:byte -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:4byte -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float -lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double -lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 scope:local data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 scope:local data:double +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 scope:local data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 scope:local data:double +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 scope:local data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 scope:local data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -429,12 +429,12 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string -lbl_1_data_57 = .data:0x00000057; // type:object size:0x7 data:string -lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 scope:local data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x7 scope:local data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 data:float lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 data:float lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 @@ -445,7 +445,7 @@ lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x12 scope:local data:string lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte @@ -461,7 +461,7 @@ lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m433Dll/symbols.txt b/config/GMPE01_00/rels/m433Dll/symbols.txt index 528cefb2..092ebc7d 100644 --- a/config/GMPE01_00/rels/m433Dll/symbols.txt +++ b/config/GMPE01_00/rels/m433Dll/symbols.txt @@ -119,287 +119,287 @@ fn_1_11098 = .text:0x00011098; // type:function size:0x98 fn_1_11130 = .text:0x00011130; // type:function size:0x1B0 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 data:4byte -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:4byte -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float -lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float -lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 data:float -lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 data:float -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float -lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float -lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 scope:local data:float +lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 scope:local data:float +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 scope:local data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 scope:local data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -421,27 +421,27 @@ lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 -lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string -lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string -lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 scope:local data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB scope:local data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB scope:local data:string lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 -lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C -lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 -lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string -lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string -lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string -lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string -lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string -lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string -lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string -lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string -lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string -lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string -lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string -lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C data:float +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 data:float +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 scope:local data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 scope:local data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 scope:local data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 scope:local data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 scope:local data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 scope:local data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 scope:local data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 scope:local data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 scope:local data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 scope:local data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 scope:local data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 scope:local data:string jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local lbl_1_data_674 = .data:0x00000674; // type:object size:0xC lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 @@ -458,10 +458,13 @@ lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:2byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 diff --git a/config/GMPE01_00/rels/m434Dll/symbols.txt b/config/GMPE01_00/rels/m434Dll/symbols.txt index 63082c5e..288bd0ad 100644 --- a/config/GMPE01_00/rels/m434Dll/symbols.txt +++ b/config/GMPE01_00/rels/m434Dll/symbols.txt @@ -303,9 +303,9 @@ lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string -lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 data:string +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 scope:local data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 scope:local data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 scope:local data:string lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m435Dll/symbols.txt b/config/GMPE01_00/rels/m435Dll/symbols.txt index 42eb3002..9c0524b6 100644 --- a/config/GMPE01_00/rels/m435Dll/symbols.txt +++ b/config/GMPE01_00/rels/m435Dll/symbols.txt @@ -194,7 +194,7 @@ fn_1_14760 = .text:0x00014760; // type:function size:0x254 _prolog = .text:0x000149B4; // type:function size:0x54 scope:global _epilog = .text:0x00014A08; // type:function size:0x4C scope:global fn_1_14A54 = .text:0x00014A54; // type:function size:0x40C -fn_1_14E60 = .text:0x00014E60; // type:function size:0x40C +ObjectSetup = .text:0x00014E60; // type:function size:0x40C fn_1_1526C = .text:0x0001526C; // type:function size:0x28 fn_1_15294 = .text:0x00015294; // type:function size:0x40 fn_1_152D4 = .text:0x000152D4; // type:function size:0xC8 @@ -238,161 +238,161 @@ fn_1_19E50 = .text:0x00019E50; // type:function size:0x4EC fn_1_1A33C = .text:0x0001A33C; // type:function size:0x110 _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:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x30 data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x30 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x30 scope:local data:float lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float @@ -411,39 +411,39 @@ lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data: lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string -lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string -lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string -lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 scope:local data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 scope:local data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 scope:local data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 scope:local data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 scope:local data:string +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 scope:local data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 scope:local data:string lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string -lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string -lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B scope:local data:string +lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A scope:local data:string +lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF scope:local lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string -lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 scope:local data:string +lbl_1_data_2DB = .data:0x000002DB; // type:object size:0xF scope:local data:string jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string -lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE scope:local data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 scope:local data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x12 scope:local data:string jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local -lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 +lbl_1_data_464 = .data:0x00000464; // type:object size:0x3 scope:local data:string lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local @@ -452,7 +452,7 @@ 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:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte @@ -466,7 +466,7 @@ lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte -lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte +lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x1360 data:4byte lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index dfbd3109..c1e2961a 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -381,12 +381,13 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 data:string +lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 scope:local data:string lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte -lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 data:float lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_510 = .data:0x00000510; // type:object size:0x4 lbl_1_data_514 = .data:0x00000514; // type:object size:0xC lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 @@ -396,43 +397,44 @@ lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 -lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string -lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string -lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string -lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string -lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string -lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string -lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string -lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string -lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string -lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string -lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string -lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string -lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string -lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string -lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string -lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string -lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string -lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string -lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string -lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string -lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string -lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string -lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string -lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string -lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string -lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string -lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string -lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string -lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string -lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 scope:local data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 scope:local data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 scope:local data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 scope:local data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 scope:local data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 scope:local data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 scope:local data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 scope:local data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 scope:local data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 scope:local data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 scope:local data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 scope:local data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 scope:local data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 scope:local data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 scope:local data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 scope:local data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 scope:local data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 scope:local data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 scope:local data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 scope:local data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 scope:local data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 scope:local data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 scope:local data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 scope:local data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 scope:local data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 scope:local data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 scope:local data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 scope:local data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 scope:local data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 scope:local lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 -lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string -lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 scope:local data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 scope:local data:string lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 -lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local 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:0x288 @@ -456,6 +458,7 @@ lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x44 data:4byte +lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte diff --git a/config/GMPE01_00/rels/m440Dll/symbols.txt b/config/GMPE01_00/rels/m440Dll/symbols.txt index 8cff0e70..47f1c944 100644 --- a/config/GMPE01_00/rels/m440Dll/symbols.txt +++ b/config/GMPE01_00/rels/m440Dll/symbols.txt @@ -238,13 +238,13 @@ lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 scope:local -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x4 data:2byte lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 -lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte -lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x4 data:2byte lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 scope:local data:string lbl_1_data_131 = .data:0x00000131; // type:object size:0x17 scope:local data:string diff --git a/config/GMPE01_00/rels/m449Dll/symbols.txt b/config/GMPE01_00/rels/m449Dll/symbols.txt index 2a91efc3..bfe80246 100644 --- a/config/GMPE01_00/rels/m449Dll/symbols.txt +++ b/config/GMPE01_00/rels/m449Dll/symbols.txt @@ -18,183 +18,187 @@ ObjectSetup = .text:0x000095D8; // type:function size:0x460 fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C _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:0x10 -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 data:4byte -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte -lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte -lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float -lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float -lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 scope:local +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 scope:local +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 scope:local +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 scope:local data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 scope:local data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 scope:local +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 scope:local +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC scope:local data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 scope:local data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 scope:local data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 scope:local data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 scope:local data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 scope:local data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 -lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 -lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 data:byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 data:string +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 data:string lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte -lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x1D scope:local data:string lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string -lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 scope:local data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 scope:local 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:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte @@ -204,7 +208,8 @@ lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/config/GMPE01_00/rels/m456Dll/symbols.txt b/config/GMPE01_00/rels/m456Dll/symbols.txt index 4321bb34..68d90044 100644 --- a/config/GMPE01_00/rels/m456Dll/symbols.txt +++ b/config/GMPE01_00/rels/m456Dll/symbols.txt @@ -65,51 +65,52 @@ fn_1_9900 = .text:0x00009900; // type:function size:0x118 fn_1_9A18 = .text:0x00009A18; // type:function size:0x250 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float @@ -221,11 +222,11 @@ lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x23 scope:local data:string lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C scope:local data:string lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 @@ -255,6 +256,7 @@ lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte 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:0xC data:float diff --git a/config/GMPE01_00/rels/m457Dll/symbols.txt b/config/GMPE01_00/rels/m457Dll/symbols.txt index 02f3cb11..790cf96b 100644 --- a/config/GMPE01_00/rels/m457Dll/symbols.txt +++ b/config/GMPE01_00/rels/m457Dll/symbols.txt @@ -1,179 +1,179 @@ _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:0x3CC -fn_1_46C = .text:0x0000046C; // type:function size:0x2858 -fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x283C -fn_1_5500 = .text:0x00005500; // type:function size:0x220 -fn_1_5720 = .text:0x00005720; // type:function size:0x29C -fn_1_59BC = .text:0x000059BC; // type:function size:0xB3C -fn_1_64F8 = .text:0x000064F8; // type:function size:0xAB8 -fn_1_6FB0 = .text:0x00006FB0; // type:function size:0x5F4 -fn_1_75A4 = .text:0x000075A4; // type:function size:0xC0 +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x283C scope:local +WrestleMesMain = .text:0x00005500; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005720; // type:function size:0x29C scope:local +M457Main = .text:0x000059BC; // type:function size:0xB3C scope:local +M457GameSetup = .text:0x000064F8; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00006FB0; // type:function size:0x5F4 scope:local +M457Setup = .text:0x000075A4; // type:function size:0xC0 scope:local ObjectSetup = .text:0x00007664; // type:function size:0x480 -fn_1_7AE4 = .text:0x00007AE4; // type:function size:0x9C +M457Exit = .text:0x00007AE4; // type:function size:0x9C 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:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x14 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x40 data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x40 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x5C -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x5C -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC data:4byte -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x1 data:byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC -lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C -lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x5C scope:local +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x5C scope:local +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C scope:local data:4byte +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local data:byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local data:float +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 scope:local data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 scope:local data:2byte +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 scope:local data:4byte +windSeNo = .data:0x000002AC; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 scope:local data:2byte +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte -lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float -lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float -lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 scope:local data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 scope:local data:float jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local -lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string -lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string -lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +m457MesEndF = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +againstBrowserF = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lightId = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +objman = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +gameState = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte +gameObj = .bss:0x00000064; // type:object size:0x4 scope:local data:4byte +playerObj = .bss:0x00000068; // type:object size:0x8 scope:local data:4byte +omViewObj = .bss:0x00000070; // type:object size:0x4 scope:local data:4byte +mainObj = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 scope:local data:4byte diff --git a/config/GMPE01_00/rels/m458Dll/symbols.txt b/config/GMPE01_00/rels/m458Dll/symbols.txt index 0a2dc8ab..fda69ac1 100644 --- a/config/GMPE01_00/rels/m458Dll/symbols.txt +++ b/config/GMPE01_00/rels/m458Dll/symbols.txt @@ -13,113 +13,113 @@ ObjectSetup = .text:0x0000691C; // type:function size:0x480 fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 _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:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 scope:local data:4byte +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 scope:local +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 -lbl_1_data_88 = .data:0x00000088; // type:object size:0xA -lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA data:byte +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA data:byte lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 @@ -130,22 +130,23 @@ lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte -lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string -lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 scope:local data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 scope:local data:string lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 scope:local data:string jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C -lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string -lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 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_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte @@ -156,7 +157,8 @@ lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte @@ -165,11 +167,13 @@ lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte diff --git a/config/GMPE01_00/rels/m459dll/symbols.txt b/config/GMPE01_00/rels/m459dll/symbols.txt index 5520ff1e..7e0f8085 100644 --- a/config/GMPE01_00/rels/m459dll/symbols.txt +++ b/config/GMPE01_00/rels/m459dll/symbols.txt @@ -64,91 +64,91 @@ fn_1_6198 = .text:0x00006198; // type:function size:0x2C0 fn_1_6458 = .text:0x00006458; // type:function size:0x128 _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:0x30 -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x18C -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string -lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 scope:local +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 scope:local +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 scope:local +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 scope:local +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 scope:local +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x18C scope:local +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 scope:local +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 scope:local +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 scope:local +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 scope:local +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 scope:local +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/m460Dll/symbols.txt b/config/GMPE01_00/rels/m460Dll/symbols.txt index 0261cad3..bd1cca6f 100644 --- a/config/GMPE01_00/rels/m460Dll/symbols.txt +++ b/config/GMPE01_00/rels/m460Dll/symbols.txt @@ -86,167 +86,167 @@ fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C fn_1_9270 = .text:0x00009270; // type:function size:0x164 _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:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x1 data:byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x1 data:byte -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC data:4byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -259,9 +259,9 @@ lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 lbl_1_data_94 = .data:0x00000094; // type:object size:0xC lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x19 data:string +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x4 data:byte +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A scope:local data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x19 scope:local data:string lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local @@ -273,10 +273,10 @@ lbl_1_data_334 = .data:0x00000334; // type:object size:0xC lbl_1_data_340 = .data:0x00000340; // type:object size:0xC lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string -lbl_1_data_363 = .data:0x00000363; // type:object size:0x7 data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 scope:local data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x7 scope:local data:string lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte +lbl_1_data_378 = .data:0x00000378; // type:object size:0x4 data:byte lbl_1_data_380 = .data:0x00000380; // type:object size:0xC lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m462Dll/symbols.txt b/config/GMPE01_00/rels/m462Dll/symbols.txt index d702b245..0af8810d 100644 --- a/config/GMPE01_00/rels/m462Dll/symbols.txt +++ b/config/GMPE01_00/rels/m462Dll/symbols.txt @@ -34,101 +34,101 @@ fn_1_7D40 = .text:0x00007D40; // type:function size:0x60 fn_1_7DA0 = .text:0x00007DA0; // type:function size:0x3BC _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 data:float lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float -lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float diff --git a/config/GMPE01_00/rels/m463Dll/splits.txt b/config/GMPE01_00/rels/m463Dll/splits.txt index ceb93b07..f1310070 100644 --- a/config/GMPE01_00/rels/m463Dll/splits.txt +++ b/config/GMPE01_00/rels/m463Dll/splits.txt @@ -6,8 +6,11 @@ Sections: .data type:data align:8 .bss type:bss align:8 +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + REL/m463Dll/main.c: - .text start:0x00000000 end:0x000066B8 + .text start:0x000000A0 end:0x000066B8 .rodata start:0x00000000 end:0x00000414 .data start:0x00000000 end:0x0000024D .bss start:0x00000000 end:0x000005AC diff --git a/config/GMPE01_00/rels/m463Dll/symbols.txt b/config/GMPE01_00/rels/m463Dll/symbols.txt index 87b16e8f..e336c47f 100644 --- a/config/GMPE01_00/rels/m463Dll/symbols.txt +++ b/config/GMPE01_00/rels/m463Dll/symbols.txt @@ -8,123 +8,123 @@ fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA8 fn_1_53A0 = .text:0x000053A0; // type:function size:0x4B0 fn_1_5850 = .text:0x00005850; // type:function size:0x854 fn_1_60A4 = .text:0x000060A4; // type:function size:0x98 -fn_1_613C = .text:0x0000613C; // type:function size:0x460 +ObjectSetup = .text:0x0000613C; // type:function size:0x460 fn_1_659C = .text:0x0000659C; // type:function size:0x11C _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:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x90 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 scope:local +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 scope:local +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 -lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:byte +lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:byte lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:4byte lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte -lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte -lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string -lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 scope:local data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 scope:local data:string lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 @@ -134,30 +134,30 @@ lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C -lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte -lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 scope:local data:4byte lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index d9b88ae2..a969c989 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -482,7 +482,7 @@ customMinNum$837 = .data:0x000000D6; // type:object size:0x8 scope:local lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 data:float lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 lbl_1_data_110 = .data:0x00000110; // type:object size:0xC -lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 +mgRecordIdxTbl = .data:0x00000120; // type:object size:0x28 lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 lbl_1_data_152 = .data:0x00000152; // type:object size:0x10 data:4byte @@ -490,9 +490,9 @@ lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte lbl_1_data_16A = .data:0x0000016A; // type:object size:0x30 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:0xB data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA scope:local data:string +lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE scope:local data:string +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xB scope:local data:string lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 scope:local data:string lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 scope:local data:string lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 scope:local data:string @@ -516,7 +516,7 @@ lbl_1_data_9C0 = .data:0x000009C0; // type:object size:0x20 lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0x20 lbl_1_data_A00 = .data:0x00000A00; // type:object size:0x2 data:2byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +mgModeEvtNo = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte @@ -531,8 +531,8 @@ 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:0x4 data:4byte lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x4 data:4byte -lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte -lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x4 data:4byte +objman = .bss:0x000002D8; // type:object size:0x4 data:4byte +outViewObj = .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 @@ -549,8 +549,8 @@ lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1C -lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC -lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC scope:local +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC scope:local lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 diff --git a/config/GMPE01_00/rels/modeseldll/symbols.txt b/config/GMPE01_00/rels/modeseldll/symbols.txt index 53057676..1dd29df7 100644 --- a/config/GMPE01_00/rels/modeseldll/symbols.txt +++ b/config/GMPE01_00/rels/modeseldll/symbols.txt @@ -73,48 +73,48 @@ lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:d lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float @@ -188,9 +188,9 @@ lbl_1_data_80 = .data:0x00000080; // type:object size:0xC lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string -lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 scope:local data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 scope:local data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF scope:local lbl_1_data_100 = .data:0x00000100; // type:object size:0x2 data:2byte lbl_1_data_104 = .data:0x00000104; // type:object size:0x118 data:float lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index d4725e33..994e2382 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -437,7 +437,7 @@ lbl_1_data_74C = .data:0x0000074C; // type:object size:0x10 lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20 lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte -lbl_1_data_788 = .data:0x00000788; // type:object size:0x318 +fontDataTbl = .data:0x00000788; // type:object size:0x318 scope:local lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float diff --git a/config/GMPE01_00/rels/mstory2Dll/splits.txt b/config/GMPE01_00/rels/mstory2Dll/splits.txt index 43465253..aa6bd0d5 100644 --- a/config/GMPE01_00/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_00/rels/mstory2Dll/splits.txt @@ -27,24 +27,24 @@ REL/mstory2Dll/board_clear.c: REL/mstory2Dll/board_miss.c: .text start:0x0000E570 end:0x000123C8 .rodata start:0x00000248 end:0x00000310 - .data start:0x00000698 end:0x00000D50 + .data start:0x00000698 end:0x00000850 .bss start:0x000004E0 end:0x00000790 REL/mstory2Dll/mg_clear.c: .text start:0x000123C8 end:0x00016060 .rodata start:0x00000310 end:0x000003D0 - .data start:0x00000D50 end:0x00000DB8 + .data start:0x00000850 end:0x00000DB8 .bss start:0x00000790 end:0x00000968 REL/mstory2Dll/mg_miss.c: .text start:0x00016060 end:0x000186D0 - .rodata start:0x000003D0 end:0x00000440 + .rodata start:0x000003D0 end:0x00000438 .data start:0x00000DB8 end:0x00000EF8 .bss start:0x00000968 end:0x00000B38 REL/mstory2Dll/ending.c: .text start:0x000186D0 end:0x0001B560 - .rodata start:0x00000440 end:0x000004B8 + .rodata start:0x00000438 end:0x000004B8 .data start:0x00000EF8 end:0x00001113 .bss start:0x00000B38 end:0x00000D10 diff --git a/config/GMPE01_00/rels/mstory2Dll/symbols.txt b/config/GMPE01_00/rels/mstory2Dll/symbols.txt index de1259ef..f0c05621 100644 --- a/config/GMPE01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -265,397 +265,398 @@ fn_1_1B870 = .text:0x0001B870; // type:function size:0x9C fn_1_1B90C = .text:0x0001B90C; // type:function size:0x50 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 -lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string +lbl_1_data_328 = .data:0x00000328; // type:object size:0x40 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 data:float +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string -lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF scope:local data:string +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 data:float lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 scope:local data:string +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C scope:local data:string lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float diff --git a/config/GMPE01_00/rels/mstory3Dll/symbols.txt b/config/GMPE01_00/rels/mstory3Dll/symbols.txt index a6159435..4863cac3 100644 --- a/config/GMPE01_00/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,315 +202,315 @@ fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string -lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float @@ -542,7 +542,7 @@ lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte -lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/mstoryDll/splits.txt b/config/GMPE01_00/rels/mstoryDll/splits.txt index 1c6cb09d..14c897fa 100644 --- a/config/GMPE01_00/rels/mstoryDll/splits.txt +++ b/config/GMPE01_00/rels/mstoryDll/splits.txt @@ -10,13 +10,13 @@ REL/mstoryDll/main.c: .text start:0x00000000 end:0x00007090 .rodata start:0x00000000 end:0x00000108 .data start:0x00000000 end:0x00000190 - .bss start:0x00000000 end:0x00000058 + .bss start:0x00000000 end:0x000000A8 REL/mstoryDll/board_clear.c: .text start:0x00007090 end:0x0000A830 .rodata start:0x00000108 end:0x00000268 .data start:0x00000190 end:0x00000388 - .bss start:0x00000058 end:0x000002C8 + .bss start:0x000000A8 end:0x000002C8 REL/mstoryDll/board_miss.c: .text start:0x0000A830 end:0x0000E710 diff --git a/config/GMPE01_00/rels/mstoryDll/symbols.txt b/config/GMPE01_00/rels/mstoryDll/symbols.txt index 9bc5210b..93875bb3 100644 --- a/config/GMPE01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPE01_00/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,283 +189,284 @@ fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 fn_1_14150 = .text:0x00014150; // type:function size:0x50 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xA scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string -lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE scope:local data:string lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string -lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string -lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A scope:local data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 data:float lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string -lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string -lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 scope:local data:string +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 data:float lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string -lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 scope:local data:string lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string -lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A scope:local data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPE01_00/rels/nisDll/splits.txt b/config/GMPE01_00/rels/nisDll/splits.txt index d512c836..4554248b 100644 --- a/config/GMPE01_00/rels/nisDll/splits.txt +++ b/config/GMPE01_00/rels/nisDll/splits.txt @@ -2,7 +2,8 @@ Sections: .text type:code align:4 .ctors type:rodata align:4 .dtors type:rodata align:4 - .data type:data align:8 + .rodata type:rodata align:8 REL/nisDll/main.c: .text start:0x00000000 end:0x0000017C + .rodata start:0x00000000 end:0x00000010 diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index b0b7a9af..db16ef1b 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -1,34 +1,34 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x438 -fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 -fn_1_888 = .text:0x00000888; // type:function size:0x2F0 -fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 -fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 -fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 -fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C -fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C -fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 -fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 -fn_1_40DC = .text:0x000040DC; // type:function size:0x160 -fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 -fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 -fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 -fn_1_5880 = .text:0x00005880; // type:function size:0xC10 -fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 -fn_1_6760 = .text:0x00006760; // type:function size:0xC4 -fn_1_6824 = .text:0x00006824; // type:function size:0xD20 -fn_1_7544 = .text:0x00007544; // type:function size:0xA54 -fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 -fn_1_8338 = .text:0x00008338; // type:function size:0x14C -fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 -fn_1_8658 = .text:0x00008658; // type:function size:0x84 -fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC -fn_1_8998 = .text:0x00008998; // type:function size:0x320 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 -fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 -fn_1_927C = .text:0x0000927C; // type:function size:0x138 -fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 +ResultMain = .text:0x000004D8; // type:function size:0x3B0 scope:local +ResultIdle = .text:0x00000888; // type:function size:0x2F0 scope:local +ResultCreate = .text:0x00000B78; // type:function size:0x13D4 scope:local +ResultStatAdd = .text:0x00001F4C; // type:function size:0xB90 scope:local +ResultOrderApply = .text:0x00002ADC; // type:function size:0x1074 scope:local +ResultSprNumSet = .text:0x00003B50; // type:function size:0x15C scope:local +ResultCoinAddNumSet = .text:0x00003CAC; // type:function size:0x15C scope:local +ResultOrderSet = .text:0x00003E08; // type:function size:0x1D0 scope:local +ResultBoardDataRead = .text:0x00003FD8; // type:function size:0x104 +ResultCoinAdd = .text:0x000040DC; // type:function size:0x160 +ResultCoinNumGet = .text:0x0000423C; // type:function size:0x3E0 +SaveExec = .text:0x0000461C; // type:function size:0x1E0 scope:local +ResultTeamExec = .text:0x000047FC; // type:function size:0x1084 scope:local +CameraDebug = .text:0x00005880; // type:function size:0xC10 +ResultBattleMain = .text:0x00006490; // type:function size:0x2D0 +ResultBattleIdle = .text:0x00006760; // type:function size:0xC4 scope:local +ResultBattleCreate = .text:0x00006824; // type:function size:0xD20 scope:local +ResultBattleStatAdd = .text:0x00007544; // type:function size:0xA54 scope:local +ResultBattleCoinAddShow = .text:0x00007F98; // type:function size:0x3A0 scope:local +ResultBattleCoinAddNumSet = .text:0x00008338; // type:function size:0x14C scope:local +ResultBattleOrderSet = .text:0x00008484; // type:function size:0x1D4 scope:local +CoinEffectInit = .text:0x00008658; // type:function size:0x84 scope:local +CoinEffectAdd = .text:0x000086DC; // type:function size:0x2BC scope:local +CoinEffectMain = .text:0x00008998; // type:function size:0x320 scope:local +ResultShadowDraw = .text:0x00008CB8; // type:function size:0x340 scope:local +StageModelCreate = .text:0x00008FF8; // type:function size:0x284 +StageSpriteCreate = .text:0x0000927C; // type:function size:0x138 +StageSpriteKill = .text:0x000093B4; // type:function size:0x78 _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 scope:local data:float @@ -94,7 +94,7 @@ lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data: lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float @@ -134,77 +134,77 @@ lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data: lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte -lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte +resultModel = .data:0x00000000; // type:object size:0x2A4 scope:local +resultSprite = .data:0x000002A4; // type:object size:0xDC scope:local data:4byte +rankNewGrpId = .data:0x00000380; // type:object size:0x2 scope:local data:2byte lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string -lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 -lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 -lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 -lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 +resultBackFile = .data:0x000003A8; // type:object size:0x18 scope:local +resultLetterFile = .data:0x000003C0; // type:object size:0x18 scope:local +resultStatPosTbl = .data:0x000003D8; // type:object size:0x20 scope:local +resultRankPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local +resultCharPosTbl = .data:0x00000408; // type:object size:0x30 scope:local +resultCoinAddPosTbl = .data:0x00000438; // type:object size:0x10 scope:local +lbl_1_data_448 = .data:0x00000448; // type:object size:0x5 scope:local data:string +resultBoardDirTbl = .data:0x00000450; // type:object size:0x18 scope:local +resultCharMdlTbl = .data:0x00000468; // type:object size:0x20 scope:local +resultTeamCharPosTbl = .data:0x00000488; // type:object size:0x30 scope:local lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x50 -lbl_1_data_7D0 = .data:0x000007D0; // type:object size:0x20 -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x30 +resultBattleModel = .data:0x000004E8; // type:object size:0x270 scope:local +resultBattleSprite = .data:0x00000758; // type:object size:0x28 scope:local +resultBattleEffParMan = .data:0x00000780; // type:object size:0x50 scope:local +resultStatPosTbl = .data:0x000007D0; // type:object size:0x20 scope:local +playerPosTbl = .data:0x000007F0; // type:object size:0x30 scope:local lbl_1_data_820 = .data:0x00000820; // type:object size:0x10 -lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 -lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 -lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 -lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 -lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte -lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:float -lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:float -lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 -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:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 -lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 -lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte -lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 -lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 -lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 -lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte -lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte -lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte -lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte -lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +bomheiCubeMdlTbl = .data:0x00000830; // type:object size:0x10 scope:local +coinEffectYOfs = .data:0x00000840; // type:object size:0x20 scope:local +coinAddYOfs = .data:0x00000860; // type:object size:0x20 scope:local +coinBlankYOfs = .data:0x00000880; // type:object size:0x20 scope:local +coinNumXOfs = .data:0x000008A0; // type:object size:0x6 scope:local data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:string +cameraShakeOfs = .data:0x000008B8; // type:object size:0x60 scope:local +resultReorderF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +resultSkipF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +resultTeamOrder = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +resultCharCubeMdlId = .bss:0x0000000A; // type:object size:0x8 scope:local +resultCoinAddSprId = .bss:0x00000012; // type:object size:0x28 scope:local +resultCoinAddGrpId = .bss:0x0000003A; // type:object size:0x8 scope:local +resultRank = .bss:0x00000042; // type:object size:0x8 scope:local +resultOrder = .bss:0x0000004A; // type:object size:0x8 scope:local +resultRankGrpId = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte +resultPlayerCubeMdlId = .bss:0x00000054; // type:object size:0x8 scope:local +resultCubeMdlId = .bss:0x0000005C; // type:object size:0x40 scope:local +resultCrownGrpId = .bss:0x0000009C; // type:object size:0x2 scope:local data:2byte +resultNumSprId = .bss:0x0000009E; // type:object size:0x30 scope:local +resultNumGrpId = .bss:0x000000CE; // type:object size:0x10 scope:local +resultCrownAnim = .bss:0x000000E0; // type:object size:0x4 scope:local data:4byte +resultCharAnim = .bss:0x000000E4; // type:object size:0x60 scope:local +resultRankAnim = .bss:0x00000144; // type:object size:0x14 scope:local +statShadowMdlId = .bss:0x00000158; // type:object size:0x10 scope:local +charShadowMdlId = .bss:0x00000168; // type:object size:0x8 scope:local +teamResultGrpId = .bss:0x00000170; // type:object size:0x2 scope:local data:2byte +resultBonusPlayer = .bss:0x00000172; // type:object size:0x2 data:2byte +resultFastF = .bss:0x00000174; // type:object size:0x4 data:4byte +resultReadEndF = .bss:0x00000178; // type:object size:0x4 data:4byte +resultMgNo = .bss:0x0000017C; // type:object size:0x2 data:2byte +objman = .bss:0x00000180; // type:object size:0x4 data:4byte +outViewObj = .bss:0x00000184; // type:object size:0x4 scope:local data:4byte lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 -lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x8 +resultBattleSkipF = .bss:0x00000190; // type:object size:0x4 scope:local data:4byte +coinEffectData = .bss:0x00000194; // type:object size:0x1680 scope:local +resultBattleEffParManId = .bss:0x00001814; // type:object size:0x8 scope:local lbl_1_bss_181C = .bss:0x0000181C; // type:object size:0xC -lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte -lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 -lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 -lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 -lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 -lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x8 +coinEffectMdlId = .bss:0x00001828; // type:object size:0x168 scope:local data:2byte +resultBattleCharMot = .bss:0x00001990; // type:object size:0x20 scope:local +resultBattleCharMdl = .bss:0x000019B0; // type:object size:0x8 scope:local +coinNumSprId = .bss:0x000019B8; // type:object size:0x28 scope:local +coinNumGrpId = .bss:0x000019E0; // type:object size:0x8 scope:local +resultBattleRank = .bss:0x000019E8; // type:object size:0x8 scope:local +resultBattleOrder = .bss:0x000019F0; // type:object size:0x8 scope:local lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 -lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte -lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte -lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A1A; // type:object size:0x42 data:2byte +stageMotId = .bss:0x00001A5C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPE01_00/rels/w01Dll/splits.txt b/config/GMPE01_00/rels/w01Dll/splits.txt index 7baca9d9..8e0a4285 100644 --- a/config/GMPE01_00/rels/w01Dll/splits.txt +++ b/config/GMPE01_00/rels/w01Dll/splits.txt @@ -11,13 +11,13 @@ REL/board_executor.c: .rodata start:0x00000000 end:0x00000010 REL/w01Dll/main.c: - .text start:0x000000E0 end:0x00009D00 + .text start:0x000000E0 end:0x00009DD8 .rodata start:0x00000010 end:0x00000198 .data start:0x00000000 end:0x00000658 .bss start:0x00000000 end:0x00000708 REL/w01Dll/mg_coin.c: - .text start:0x00009D00 end:0x0000D740 + .text start:0x00009DD8 end:0x0000D740 .rodata start:0x00000198 end:0x000002C8 .data start:0x00000658 end:0x00000F08 .bss start:0x00000708 end:0x000007A0 diff --git a/config/GMPE01_00/rels/w01Dll/symbols.txt b/config/GMPE01_00/rels/w01Dll/symbols.txt index ad0e3d24..66542f00 100644 --- a/config/GMPE01_00/rels/w01Dll/symbols.txt +++ b/config/GMPE01_00/rels/w01Dll/symbols.txt @@ -3,137 +3,137 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global BoardCreate = .text:0x000000E0; // type:function size:0x4BC BoardDestroy = .text:0x0000059C; // type:function size:0x194 -fn_1_730 = .text:0x00000730; // type:function size:0x44 scope:local -fn_1_774 = .text:0x00000774; // type:function size:0x4 scope:local -fn_1_778 = .text:0x00000778; // type:function size:0x9C scope:local -fn_1_814 = .text:0x00000814; // type:function size:0x1D4 scope:local -fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 scope:local +LightSetHook = .text:0x00000730; // type:function size:0x44 scope:local +LightResetHook = .text:0x00000774; // type:function size:0x4 scope:local +LandEvent = .text:0x00000778; // type:function size:0x9C scope:local +WalkEvent = .text:0x00000814; // type:function size:0x1D4 scope:local +MapObjDispSet = .text:0x000009E8; // type:function size:0x318 scope:local fn_1_D00 = .text:0x00000D00; // type:function size:0x4 scope:local -fn_1_D04 = .text:0x00000D04; // type:function size:0x550 scope:local -fn_1_1254 = .text:0x00001254; // type:function size:0x38 scope:local -fn_1_128C = .text:0x0000128C; // type:function size:0x80 scope:local -fn_1_130C = .text:0x0000130C; // type:function size:0x270 scope:local -fn_1_157C = .text:0x0000157C; // type:function size:0xF4 scope:local -fn_1_1670 = .text:0x00001670; // type:function size:0x90 scope:local -fn_1_1700 = .text:0x00001700; // type:function size:0x290 scope:local -fn_1_1990 = .text:0x00001990; // type:function size:0x148 scope:local -fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 scope:local -fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 scope:local -fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 scope:local -fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 scope:local -fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 scope:local -fn_1_2524 = .text:0x00002524; // type:function size:0x248 scope:local -fn_1_276C = .text:0x0000276C; // type:function size:0x7AC scope:local -fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 scope:local -fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 scope:local -fn_1_3514 = .text:0x00003514; // type:function size:0xA0 scope:local -fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 scope:local -fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 scope:local -fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 scope:local -fn_1_4774 = .text:0x00004774; // type:function size:0xF0 scope:local -fn_1_4864 = .text:0x00004864; // type:function size:0x50 scope:local -fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 scope:local -fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 scope:local -fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 scope:local -fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC scope:local -fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 scope:local -fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 scope:local -fn_1_543C = .text:0x0000543C; // type:function size:0x258 scope:local -fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 scope:local -fn_1_586C = .text:0x0000586C; // type:function size:0xC0 scope:local -fn_1_592C = .text:0x0000592C; // type:function size:0x200 scope:local -fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 scope:local -fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 scope:local -fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 scope:local -fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 scope:local -fn_1_6098 = .text:0x00006098; // type:function size:0xFC scope:local -fn_1_6194 = .text:0x00006194; // type:function size:0x25C scope:local -fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 scope:local -fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC scope:local -fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 scope:local -fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 scope:local -fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 scope:local -fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 scope:local -fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 scope:local -fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 scope:local -fn_1_852C = .text:0x0000852C; // type:function size:0x280 scope:local -fn_1_87AC = .text:0x000087AC; // type:function size:0x34 scope:local -fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 scope:local -fn_1_8988 = .text:0x00008988; // type:function size:0xC8 scope:local -fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C scope:local -fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 scope:local -fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 scope:local -fn_1_918C = .text:0x0000918C; // type:function size:0xF0 scope:local -fn_1_927C = .text:0x0000927C; // type:function size:0xB0 scope:local -fn_1_932C = .text:0x0000932C; // type:function size:0x17C scope:local -fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C scope:local -fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 scope:local -fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 scope:local -fn_1_98EC = .text:0x000098EC; // type:function size:0x34 scope:local -fn_1_9920 = .text:0x00009920; // type:function size:0x104 scope:local -fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 scope:local -fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 scope:local -fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 -fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C scope:local -fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 scope:local -fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 scope:local -fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 scope:local -fn_1_B018 = .text:0x0000B018; // type:function size:0x70 scope:local -fn_1_B088 = .text:0x0000B088; // type:function size:0x144 scope:local -fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC scope:local -fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 scope:local -fn_1_B478 = .text:0x0000B478; // type:function size:0x680 scope:local -fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 scope:local -fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 scope:local -fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 scope:local -fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 scope:local -fn_1_C000 = .text:0x0000C000; // type:function size:0xFC scope:local -fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 scope:local -fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 scope:local -fn_1_C844 = .text:0x0000C844; // type:function size:0x50 scope:local -fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 scope:local -fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C scope:local -fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC scope:local -fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 scope:local -fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 scope:local -fn_1_D034 = .text:0x0000D034; // type:function size:0x48 scope:local -fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 scope:local -fn_1_D114 = .text:0x0000D114; // type:function size:0x62C scope:local -fn_1_D740 = .text:0x0000D740; // type:function size:0x644 -fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 -fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C -fn_1_E100 = .text:0x0000E100; // type:function size:0x54 scope:local -fn_1_E154 = .text:0x0000E154; // type:function size:0x164 scope:local -fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 scope:local -fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 scope:local -fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 scope:local -fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC scope:local -fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 scope:local -fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 scope:local -fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC scope:local -fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 scope:local -fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 scope:local -fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 scope:local -fn_1_F890 = .text:0x0000F890; // type:function size:0x18C scope:local -fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 scope:local -fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C scope:local -fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 scope:local -fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 scope:local -fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 scope:local -fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 scope:local -fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C scope:local -fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C scope:local -fn_1_1001C = .text:0x0001001C; // type:function size:0x19C scope:local -fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC scope:local -fn_1_10664 = .text:0x00010664; // type:function size:0x1BC scope:local -fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 scope:local -fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 scope:local -fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 scope:local -fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 scope:local -fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC scope:local -fn_1_11064 = .text:0x00011064; // type:function size:0x420 scope:local -fn_1_11484 = .text:0x00011484; // type:function size:0x56C scope:local +RoundItemMain = .text:0x00000D04; // type:function size:0x550 scope:local +RoundItemDestroy = .text:0x00001254; // type:function size:0x38 scope:local +RoundItemEvent = .text:0x0000128C; // type:function size:0x80 scope:local +SpaceAmidaEvent = .text:0x0000130C; // type:function size:0x270 scope:local +WalkMiniEvent = .text:0x0000157C; // type:function size:0xF4 scope:local +UpdateHostDisp = .text:0x00001670; // type:function size:0x90 scope:local +CoasterInit = .text:0x00001700; // type:function size:0x290 scope:local +CoasterPathUpdate = .text:0x00001990; // type:function size:0x148 scope:local +CoasterPosCalc = .text:0x00001AD8; // type:function size:0x64 scope:local +CoasterCameraUpdate = .text:0x00001B3C; // type:function size:0x3A8 scope:local +CoasterCameraObjKill = .text:0x00001EE4; // type:function size:0x48 scope:local +CoasterCameraObjMain = .text:0x00001F2C; // type:function size:0x78 scope:local +CoasterCameraObjUpdate = .text:0x00001FA4; // type:function size:0x580 scope:local +CoasterStickRotGet = .text:0x00002524; // type:function size:0x248 scope:local +CoasterRotUpdate = .text:0x0000276C; // type:function size:0x7AC scope:local +CoasterCoinCheck = .text:0x00002F18; // type:function size:0x438 scope:local +CoasterPathMotUpdate = .text:0x00003350; // type:function size:0x1C4 scope:local +CoasterMotCreate = .text:0x00003514; // type:function size:0xA0 scope:local +CoasterMotKill = .text:0x000035B4; // type:function size:0x70 scope:local +CoasterExec = .text:0x00003624; // type:function size:0xFD0 scope:local +CoasterExit = .text:0x000045F4; // type:function size:0x180 scope:local +CoasterWinCreate = .text:0x00004774; // type:function size:0xF0 scope:local +CoasterWinKill = .text:0x00004864; // type:function size:0x50 scope:local +CoasterHostExec = .text:0x000048B4; // type:function size:0x560 scope:local +CoasterMain = .text:0x00004E14; // type:function size:0x194 scope:local +CoasterDestroy = .text:0x00004FA8; // type:function size:0x30 scope:local +CoasterEvent = .text:0x00004FD8; // type:function size:0xFC scope:local +CoasterCoinCreate = .text:0x000050D4; // type:function size:0x2E4 scope:local +CoasterCoinKill = .text:0x000053B8; // type:function size:0x84 scope:local +CupInit = .text:0x0000543C; // type:function size:0x258 scope:local +CupMotOnSet = .text:0x00005694; // type:function size:0x1D8 scope:local +CupEvent = .text:0x0000586C; // type:function size:0xC0 scope:local +CupMain = .text:0x0000592C; // type:function size:0x200 scope:local +CupDestroy = .text:0x00005B2C; // type:function size:0x14 scope:local +CupExec = .text:0x00005B40; // type:function size:0x190 scope:local +CupObjCheck = .text:0x00005CD0; // type:function size:0x38 scope:local +CupObjCreate = .text:0x00005D08; // type:function size:0x390 scope:local +CupObjMain = .text:0x00006098; // type:function size:0xFC scope:local +CupObjInit = .text:0x00006194; // type:function size:0x25C scope:local +CupObjJumpWait = .text:0x000063F0; // type:function size:0x624 scope:local +CupObjHookReset = .text:0x00006A14; // type:function size:0x1AC scope:local +CupObjStop = .text:0x00006BC0; // type:function size:0x3F4 scope:local +CupObjRotate = .text:0x00006FB4; // type:function size:0x574 scope:local +CupLandEvent = .text:0x00007528; // type:function size:0x2C4 scope:local +CoasterLandEvent = .text:0x000077EC; // type:function size:0xA8 scope:local +CoasterLandMain = .text:0x00007894; // type:function size:0x1D0 scope:local +CoasterLandExec = .text:0x00007A64; // type:function size:0xAC8 scope:local +CoasterPlayerManCreate = .text:0x0000852C; // type:function size:0x280 scope:local +CoasterPlayerManKill = .text:0x000087AC; // type:function size:0x34 scope:local +CoasterPlayerManUpdate = .text:0x000087E0; // type:function size:0x1A8 scope:local +CoasterPlayerWait = .text:0x00008988; // type:function size:0xC8 scope:local +CoasterPlayerChaseBegin = .text:0x00008A50; // type:function size:0x11C scope:local +CoasterPlayerChasePathSet = .text:0x00008B6C; // type:function size:0x270 scope:local +CoasterPlayerChase = .text:0x00008DDC; // type:function size:0x3B0 scope:local +CoasterPlayerStop = .text:0x0000918C; // type:function size:0xF0 scope:local +CoasterPlayerEnd = .text:0x0000927C; // type:function size:0xB0 scope:local +CoasterPlayerEndSet = .text:0x0000932C; // type:function size:0x17C scope:local +CoasterPlayerLoopCheck = .text:0x000094A8; // type:function size:0x14C scope:local +CoasterPlayerTimeInit = .text:0x000095F4; // type:function size:0x200 scope:local +CoasterEffCreate = .text:0x000097F4; // type:function size:0xF8 scope:local +CoasterEffKill = .text:0x000098EC; // type:function size:0x34 scope:local +CoasterEffUpdate = .text:0x00009920; // type:function size:0x104 scope:local +CoasterEffAdd = .text:0x00009A24; // type:function size:0x198 scope:local +CoasterEffModelUpdate = .text:0x00009BBC; // type:function size:0x144 scope:local +CoasterHostComKeySet = .text:0x00009D00; // type:function size:0xD8 scope:local +SpaceAmidaExec = .text:0x00009DD8; // type:function size:0x6E0 +SpaceAmidaMainUpdate = .text:0x0000A4B8; // type:function size:0x9C scope:local +SpaceAmidaStop = .text:0x0000A554; // type:function size:0xA8 scope:local +SpaceAmidaKill = .text:0x0000A5FC; // type:function size:0xE4 scope:local +SpaceAmidaRocketObjUpdate = .text:0x0000A6E0; // type:function size:0x938 scope:local +SpaceAmidaMapLenGet = .text:0x0000B018; // type:function size:0x70 scope:local +SpaceAmidaComChoiceSet = .text:0x0000B088; // type:function size:0x144 scope:local +SpaceAmidaComInputGet = .text:0x0000B1CC; // type:function size:0x1EC scope:local +SpaceAmidaGameOpen = .text:0x0000B3B8; // type:function size:0xC0 scope:local +SpaceAmidaGameUpdate = .text:0x0000B478; // type:function size:0x680 scope:local +SpaceAmidaRocketJump = .text:0x0000BAF8; // type:function size:0x1E4 scope:local +SpaceAmidaRocketKemuriExec = .text:0x0000BCDC; // type:function size:0x224 scope:local +SpaceAmidaRocketWait = .text:0x0000BF00; // type:function size:0x68 scope:local +SpaceAmidaRocketUp = .text:0x0000BF68; // type:function size:0x98 scope:local +SpaceAmidaCoinWin = .text:0x0000C000; // type:function size:0xFC scope:local +SpaceAmidaJumpDown = .text:0x0000C0FC; // type:function size:0x160 scope:local +SpaceAmidaCoinRainMain = .text:0x0000C25C; // type:function size:0x5E8 scope:local +SpaceAmidaReturnWinMain = .text:0x0000C844; // type:function size:0x50 scope:local +SpaceAmidaGameStop = .text:0x0000C894; // type:function size:0xB8 scope:local +SpaceAmidaDirGet = .text:0x0000C94C; // type:function size:0x4C scope:local +SpaceAmidaAngleGet = .text:0x0000C998; // type:function size:0x1AC scope:local +SpaceAmidaPlayerRotAdd = .text:0x0000CB44; // type:function size:0x380 scope:local +SpaceAmidaEffCreate = .text:0x0000CEC4; // type:function size:0x170 scope:local +SpaceAmidaEffKill = .text:0x0000D034; // type:function size:0x48 scope:local +SpaceAmidaEffUpdate = .text:0x0000D07C; // type:function size:0x98 scope:local +SpaceAmidaEffParticleHook = .text:0x0000D114; // type:function size:0x62C scope:local +RoundItemInit = .text:0x0000D740; // type:function size:0x644 +RoundItemKill = .text:0x0000DD84; // type:function size:0x110 +RoundItemEventStart = .text:0x0000DE94; // type:function size:0x26C +RoundItemEnd = .text:0x0000E100; // type:function size:0x54 scope:local +RoundItemClose = .text:0x0000E154; // type:function size:0x164 scope:local +RoundItemMainUpdate = .text:0x0000E2B8; // type:function size:0x194 scope:local +RoundItemUmaStop = .text:0x0000E44C; // type:function size:0x4C8 scope:local +RoundItemPlayerJump = .text:0x0000E914; // type:function size:0x3C0 scope:local +RoundItemStartWait = .text:0x0000ECD4; // type:function size:0x1CC scope:local +RoundItemComInputGet = .text:0x0000EEA0; // type:function size:0x38 scope:local +RoundItemInputWait = .text:0x0000EED8; // type:function size:0x1C4 scope:local +RoundItemStop = .text:0x0000F09C; // type:function size:0x2AC scope:local +RoundItemLightFlicker = .text:0x0000F348; // type:function size:0xB0 scope:local +RoundItemUmaJumpWait = .text:0x0000F3F8; // type:function size:0x2F0 scope:local +RoundItemUmaJump = .text:0x0000F6E8; // type:function size:0x1A8 scope:local +RoundItemRotatePlayer = .text:0x0000F890; // type:function size:0x18C scope:local +RoundItemStreamWait = .text:0x0000FA1C; // type:function size:0xA0 scope:local +RoundItemWinWait = .text:0x0000FABC; // type:function size:0x9C scope:local +ItemGetWinExec = .text:0x0000FB58; // type:function size:0xE4 scope:local +ItemGetShrinkWait = .text:0x0000FC3C; // type:function size:0xB0 scope:local +ItemGetReturnWinExec = .text:0x0000FCEC; // type:function size:0x50 scope:local +RoundItemGameClose = .text:0x0000FD3C; // type:function size:0x108 scope:local +RoundItemGameEnd = .text:0x0000FE44; // type:function size:0x8C scope:local +RoundItemItemUpdate = .text:0x0000FED0; // type:function size:0x14C scope:local +RoundItemItemGet = .text:0x0001001C; // type:function size:0x19C scope:local +ItemGetCreate = .text:0x000101B8; // type:function size:0x4AC scope:local +ItemGetObjUpdate = .text:0x00010664; // type:function size:0x1BC scope:local +ItemGetPlayerMove = .text:0x00010820; // type:function size:0x2C8 scope:local +ItemGetShrink = .text:0x00010AE8; // type:function size:0xC8 scope:local +RoundItemUmaRotYGet = .text:0x00010BB0; // type:function size:0x140 scope:local +RoundItemUmaPlayerSet = .text:0x00010CF0; // type:function size:0x1C8 scope:local +RoundItemAngleGet = .text:0x00010EB8; // type:function size:0x1AC scope:local +ItemGetEff1Hook = .text:0x00011064; // type:function size:0x420 scope:local +ItemGetEff2Hook = .text:0x00011484; // type:function size:0x56C 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 scope:local data:float @@ -334,136 +334,136 @@ lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data: lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 scope:local -lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 scope:local data:2byte -lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 scope:local data:2byte -lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 scope:local -lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 scope:local +mapObjData = .data:0x00000000; // type:object size:0x528 scope:local +bgMdl = .data:0x00000528; // type:object size:0x2 scope:local data:2byte +fgMdl = .data:0x0000052A; // type:object size:0x2 scope:local data:2byte +starHostMdl = .data:0x0000052C; // type:object size:0x2 scope:local data:2byte +hostMdl = .data:0x0000052E; // type:object size:0x2 scope:local data:2byte +syuppouMdl = .data:0x00000530; // type:object size:0x2 scope:local data:2byte +starHostMotTbl = .data:0x00000534; // type:object size:0x8 scope:local +hostMotTbl = .data:0x0000053C; // type:object size:0x8 scope:local lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 scope:local data:string lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 scope:local data:string lbl_1_data_56C = .data:0x0000056C; // type:object size:0x13 scope:local data:string -lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 scope:local data:2byte +coasterWinId = .data:0x00000580; // type:object size:0x2 scope:local data:2byte lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 scope:local -lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 scope:local -lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 scope:local data:4byte -lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 scope:local data:4byte -lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 scope:local data:2byte +coasterMotTbl = .data:0x00000594; // type:object size:0x40 scope:local +cupMoveSeNo = .data:0x000005D4; // type:object size:0x4 scope:local data:4byte +decaStompSeNo = .data:0x000005D8; // type:object size:0x4 scope:local data:4byte +cupMapObj = .data:0x000005DC; // type:object size:0x10 scope:local data:2byte lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 scope:local data:string lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 scope:local data:string lbl_1_data_5FA = .data:0x000005FA; // type:object size:0x7 scope:local data:string -lbl_1_data_604 = .data:0x00000604; // type:object size:0xC scope:local -lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 scope:local +cupHookTbl = .data:0x00000604; // type:object size:0xC scope:local +cupArrowRot = .data:0x00000610; // type:object size:0x10 scope:local lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 scope:local data:string lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 scope:local data:string lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 scope:local data:string lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 scope:local data:string -lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 scope:local data:byte -lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 scope:local -lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 scope:local -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte -lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 scope:local -lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 scope:local -lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 scope:local +coasterChasePlayer = .data:0x00000633; // type:object size:0x1 scope:local data:byte +coasterChaseSe = .data:0x00000634; // type:object size:0x24 scope:local +effPosTbl = .data:0x00000658; // type:object size:0x24 scope:local +spaceAmidaCoinNumTbl = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte +spaceAmidaMap1 = .data:0x00000690; // type:object size:0x2D0 scope:local +spaceAmidaMap2 = .data:0x00000960; // type:object size:0x2D0 scope:local +spaceAmidaMap3 = .data:0x00000C30; // type:object size:0x2D0 scope:local lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x3 scope:local data:string -lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 scope:local -lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 scope:local -lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 scope:local +itemMdlTbl = .data:0x00000F08; // type:object size:0x38 scope:local +itemGetMotTbl = .data:0x00000F40; // type:object size:0x20 scope:local +jumpMotTbl = .data:0x00000F60; // type:object size:0x20 scope:local lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 scope:local data:string lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 scope:local data:string lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 scope:local data:string lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 scope:local data:string lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x5 scope:local data:string -lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 scope:local data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 scope:local data:byte -lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 scope:local data:byte +umaHookTbl = .data:0x00000F9C; // type:object size:0x10 scope:local data:4byte +boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte +roundItemProc = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +coasterProc = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +coasterPlayerManObj = .bss:0x0000000C; // type:object size:0x4 scope:local data:4byte +coasterCameraObj = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +cupProc = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +cupObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +coasterPlayerChaseNum = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +coasterEffObj = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +cupSpaceEnd = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +cupSpaceStart = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte +cupHookNo = .bss:0x00000028; // type:object size:0x1 scope:local data:byte +cupSide = .bss:0x00000029; // type:object size:0x1 scope:local data:byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 scope:local -lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x4 scope:local data:2byte -lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 scope:local -lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 scope:local -lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC scope:local data:4byte -lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC scope:local data:float -lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC scope:local data:4byte -lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 scope:local data:float -lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 scope:local data:float -lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 scope:local data:float -lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC scope:local data:4byte -lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC scope:local data:float -lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC scope:local data:float -lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 scope:local data:float -lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 scope:local data:float -lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 scope:local data:float -lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 scope:local +coasterMotId = .bss:0x000005CC; // type:object size:0x4 scope:local data:2byte +coasterCoinMdlId = .bss:0x000005D0; // type:object size:0x30 scope:local +coasterCoinF = .bss:0x00000600; // type:object size:0x18 scope:local +coasterCameraTarget = .bss:0x00000618; // type:object size:0xC scope:local data:4byte +coasterCameraUp = .bss:0x00000624; // type:object size:0xC scope:local data:float +coasterCameraPos = .bss:0x00000630; // type:object size:0xC scope:local data:4byte +coasterBaseRotY = .bss:0x0000063C; // type:object size:0x4 scope:local data:float +coasterTime = .bss:0x00000640; // type:object size:0x4 scope:local data:float +coasterMaxTime = .bss:0x00000644; // type:object size:0x4 scope:local data:float +coasterPosOld = .bss:0x00000648; // type:object size:0xC scope:local data:4byte +coasterPos = .bss:0x00000654; // type:object size:0xC scope:local data:float +coasterRot = .bss:0x00000660; // type:object size:0xC scope:local data:float +coasterCamSpeed = .bss:0x0000066C; // type:object size:0x4 scope:local data:float +coasterSpeed = .bss:0x00000670; // type:object size:0x4 scope:local data:float +coasterAccel = .bss:0x00000674; // type:object size:0x4 scope:local data:float +coasterMtx = .bss:0x00000678; // type:object size:0x30 scope:local lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 scope:local data:float -lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte -lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x42 data:2byte -lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC scope:local -lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC scope:local data:float -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 scope:local data:float -lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 scope:local -lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte -lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 scope:local data:4byte -lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 scope:local data:4byte -lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC scope:local data:float -lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC scope:local data:4byte -lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 scope:local data:float -lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 scope:local data:float -lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 scope:local data:4byte -lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC scope:local data:float -lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 scope:local data:4byte +coasterStartSpace = .bss:0x000006AC; // type:object size:0x2 scope:local data:2byte +coasterPathMdlId = .bss:0x000006AE; // type:object size:0x2 scope:local data:2byte +coasterType = .bss:0x000006B0; // type:object size:0x1 scope:local data:byte +coasterLandF = .bss:0x000006B1; // type:object size:0x1 scope:local data:byte +coasterDoneF = .bss:0x000006B2; // type:object size:0x1 scope:local data:byte +coasterLoopF = .bss:0x000006B3; // type:object size:0x1 scope:local data:byte +eventPlayer = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte +roundItemTbl = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte +mapObjMotTbl = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte +mapObjMdlId = .bss:0x000006C4; // type:object size:0x42 data:2byte +spaceAmidaSeqStopF = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte +spaceAmidaEffAnim = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte +spaceAmidaEffObj = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte +rocketObj = .bss:0x00000714; // type:object size:0xC scope:local +spaceAmidaGameObj = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte +spaceAmidaSeNo = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte +spaceAmidaCoinNum = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte +spaceAmidaStopF = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte +rocketWarpF = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte +spaceAmidaPath = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte +spaceAmidaMapNo = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte +spaceAmidaPos = .bss:0x00000738; // type:object size:0xC scope:local data:float +timerSeqId = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte +timerFrame = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte +timerSec = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte +kemuriMdlId = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte +spaceAmidaTime = .bss:0x00000754; // type:object size:0x4 scope:local data:float +spaceAmidaMainObj = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte +coinWinProc = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte +coinMdlId = .bss:0x00000760; // type:object size:0x28 scope:local +spaceAmidaEffMdlId = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte +rocketMdlId = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte +mapMdlId = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte +spaceAmidaMdlId = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte +spaceAmidaPlayerNo = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte +spaceAmidaPadNo = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte +roundItemEffAnim = .bss:0x000007A0; // type:object size:0x4 scope:local data:4byte +roundItemStreamId = .bss:0x000007A4; // type:object size:0x4 scope:local data:4byte +umaStopTimer = .bss:0x000007A8; // type:object size:0x2 scope:local data:2byte +roundItemStopF = .bss:0x000007AA; // type:object size:0x2 scope:local data:2byte +itemGetSeNo = .bss:0x000007AC; // type:object size:0x4 scope:local data:4byte +umaStopF = .bss:0x000007B4; // type:object size:0x2 scope:local data:2byte +jumpMotId = .bss:0x000007B8; // type:object size:0x4 scope:local data:4byte +itemGetMotId = .bss:0x000007BC; // type:object size:0x8 scope:local data:4byte +playerPos = .bss:0x000007C4; // type:object size:0xC scope:local data:float +timerFrame = .bss:0x000007D0; // type:object size:0x2 scope:local data:2byte +timerSec = .bss:0x000007D2; // type:object size:0x2 scope:local data:2byte +timerSeqId = .bss:0x000007D4; // type:object size:0x2 scope:local data:2byte +seqStartId = .bss:0x000007D6; // type:object size:0x2 scope:local data:2byte +umaPos = .bss:0x000007D8; // type:object size:0xC scope:local data:4byte +roundItemPlayer = .bss:0x000007E4; // type:object size:0x4 scope:local data:4byte +borderSpeed = .bss:0x000007E8; // type:object size:0x4 scope:local data:float +umaSpeed = .bss:0x000007EC; // type:object size:0x4 scope:local data:float +itemGetObj = .bss:0x000007F0; // type:object size:0x4 scope:local data:4byte +roundItemMainObj = .bss:0x000007F4; // type:object size:0x4 scope:local data:4byte +roundItemUmaObj = .bss:0x000007F8; // type:object size:0x4 scope:local data:4byte +itemObj = .bss:0x000007FC; // type:object size:0x10 scope:local data:4byte +roundItemPos = .bss:0x0000080C; // type:object size:0xC scope:local data:float +itemAnim = .bss:0x00000818; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 6b38187f..d9a64bf5 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -955,7 +955,7 @@ Runtime.PPCEABI.H/NewMore.cp: .data start:0x8013E208 end:0x8013E218 .sdata start:0x801D39A0 end:0x801D39A8 -Runtime.PPCEABI.H/NMWException.cp: +Runtime.PPCEABI.H/NMWException.cpp: extab start:0x80005650 end:0x80005670 extabindex start:0x80005718 end:0x80005748 .text start:0x800E2108 end:0x800E23CC @@ -971,7 +971,7 @@ Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: .dtors start:0x8011DCE0 end:0x8011DCE8 .sdata start:0x801D39B0 end:0x801D39B8 -Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: +Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp: extab start:0x80005670 end:0x800056E4 extabindex start:0x80005748 end:0x8000579C .text start:0x800E2B24 end:0x800E3F5C @@ -1186,7 +1186,7 @@ TRK_MINNOW_DOLPHIN/serpoll.c: .text start:0x800ECC5C end:0x800ED028 .bss start:0x801A9110 end:0x801A9128 -TRK_MINNOW_DOLPHIN/usrput.c: +TRK_MINNOW_DOLPHIN/usr_put.c: .text start:0x800ED028 end:0x800ED0B4 TRK_MINNOW_DOLPHIN/dispatch.c: @@ -1216,15 +1216,15 @@ TRK_MINNOW_DOLPHIN/mem_TRK.c: .text start:0x800F0398 end:0x800F0454 TRK_MINNOW_DOLPHIN/targimpl.c: - .text start:0x800F0454 end:0x800F1CF0 + .text start:0x800F0454 end:0x800F1CE4 .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/targsupp.s: + .text start:0x800F1CE4 end:0x800F1D10 -TRK_MINNOW_DOLPHIN/__exception.c: +TRK_MINNOW_DOLPHIN/__exception.s: .init start:0x80003534 end:0x80005468 TRK_MINNOW_DOLPHIN/dolphin_trk.c: diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 144dc6c3..17ef4f4f 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -244,7 +244,7 @@ Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 objCall = .text:0x800141C4; // type:function size:0xEC scope:local objMesh = .text:0x800142B0; // type:function size:0x86C scope:local ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 -FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local @@ -475,7 +475,7 @@ Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 -_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C @@ -666,29 +666,29 @@ MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 MGSeqStub = .text:0x80035AEC; // type:function size:0x4 MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C -SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local -SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local -SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 SeqMakeWord = .text:0x80036D50; // type:function size:0x1D0 scope:local SeqLoadFontChar = .text:0x80036F20; // type:function size:0x26C scope:local -SeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 scope:local -SeqUpdateWin = .text:0x8003D804; // type:function size:0x72C scope:local -SeqInitRecord = .text:0x8003DF30; // type:function size:0x774 scope:local -SeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 +MGSeqUpdateWin = .text:0x8003D804; // type:function size:0x72C +MGSeqInitRecord = .text:0x8003DF30; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E9A8; // type:function size:0x6C PauseProc = .text:0x8003EA14; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F360; // type:function size:0xC @@ -721,7 +721,7 @@ fn_80040374 = .text:0x80040374; // type:function size:0x98 fn_8004040C = .text:0x8004040C; // type:function size:0xF4 GetClusterCurve = .text:0x80040500; // type:function size:0xA8 GetClusterWeightCurve = .text:0x800405A8; // type:function size:0xA8 -SetClusterMain = .text:0x80040650; // type:function size:0x3A0 +SetClusterMain = .text:0x80040650; // type:function size:0x3A0 scope:local ClusterProc = .text:0x800409F0; // type:function size:0x160 ClusterMotionExec = .text:0x80040B50; // type:function size:0x210 SetShapeMain = .text:0x80040D60; // type:function size:0x36C scope:local @@ -1841,10 +1841,10 @@ BallBooFlash = .text:0x800A1024; // type:function size:0x178 scope:local TakeBallCoin = .text:0x800A119C; // type:function size:0x1B0 scope:local ExecTakeBallCoin = .text:0x800A134C; // type:function size:0xDC scope:local TakeBallCoinPosSet = .text:0x800A1428; // type:function size:0x9C scope:local -CheckBallCoinDone = .text:0x800A14C4; // type:function size:0x68 -TakeBallStar = .text:0x800A152C; // type:function size:0x168 -ExecTakeBallStar = .text:0x800A1694; // type:function size:0x184 -CheckTakeBallStarDone = .text:0x800A1818; // type:function size:0x1C +CheckBallCoinDone = .text:0x800A14C4; // type:function size:0x68 scope:local +TakeBallStar = .text:0x800A152C; // type:function size:0x168 scope:local +ExecTakeBallStar = .text:0x800A1694; // type:function size:0x184 scope:local +CheckTakeBallStarDone = .text:0x800A1818; // type:function size:0x1C scope:local BoardBooStealValueGet = .text:0x800A1834; // type:function size:0x30 BoardBooStealLightCheck = .text:0x800A1864; // type:function size:0x20 UpdatePlayerCoins = .text:0x800A1884; // type:function size:0x1B0 scope:local @@ -2572,7 +2572,7 @@ GXEndDisplayList = .text:0x800CF0E0; // type:function size:0xD4 GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70 GXProject = .text:0x800CF224; // type:function size:0x174 GXSetProjection = .text:0x800CF398; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF46C; // type:function size:0x78 WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local @@ -2756,8 +2756,8 @@ __THPHuffDecodeDCTCompU = .text:0x800E0C48; // type:function size:0x6A8 scope:lo __THPHuffDecodeDCTCompV = .text:0x800E12F0; // type:function size:0x6A8 scope:local THPInit = .text:0x800E1998; // type:function size:0x78 THPAudioDecode = .text:0x800E1A10; // type:function size:0x464 -__THPAudioGetNewSample = .text:0x800E1E74; // type:function size:0x90 -__THPAudioInitialize = .text:0x800E1F04; // type:function size:0x3C +__THPAudioGetNewSample = .text:0x800E1E74; // type:function size:0x90 scope:local +__THPAudioInitialize = .text:0x800E1F04; // type:function size:0x3C scope:local __va_arg = .text:0x800E1F40; // type:function size:0xC8 scope:global __destroy_global_chain = .text:0x800E2008; // type:function size:0x48 scope:global __register_global_object = .text:0x800E2050; // type:function size:0x18 scope:global @@ -2918,7 +2918,7 @@ __StringWrite = .text:0x800E65DC; // type:function size:0x6C __FileWrite = .text:0x800E6648; // type:function size:0x58 scope:global __pformatter = .text:0x800E66A0; // type:function size:0x774 scope:local float2str = .text:0x800E6E14; // type:function size:0x6EC scope:local -round_decimal = .text:0x800E7500; // type:function size:0x12C +round_decimal = .text:0x800E7500; // type:function size:0x12C scope:local double2hex = .text:0x800E762C; // type:function size:0x338 scope:local longlong2str = .text:0x800E7964; // type:function size:0x2DC scope:local long2str = .text:0x800E7C40; // type:function size:0x220 scope:local @@ -3032,9 +3032,9 @@ TRK_flush_cache = .text:0x800F0360; // type:function size:0x38 TRK_fill_mem = .text:0x800F0398; // type:function size:0xBC __TRK_get_MSR = .text:0x800F0454; // type:function size:0x8 __TRK_set_MSR = .text:0x800F045C; // type:function size:0x8 -TRK_ppc_memcpy = .text:0x800F0464; // type:function size:0x3C +TRK_ppc_memcpy = .text:0x800F0464; // type:function size:0x3C scope:local TRKInterruptHandler = .text:0x800F04A0; // type:function size:0x194 scope:global -TRKExceptionHandler = .text:0x800F0634; // type:function size:0x9C scope:global +TRKExceptionHandler = .text:0x800F0634; // type:function size:0x9C scope:local TRKSwapAndGo = .text:0x800F06D0; // type:function size:0xC4 scope:global TRKInterruptHandlerEnableInterrupts = .text:0x800F0794; // type:function size:0x54 scope:global TRKTargetSetInputPendingPtr = .text:0x800F07E8; // type:function size:0x10 scope:global @@ -3514,7 +3514,7 @@ msmSysDelGroupAll = .text:0x801161B4; // type:function size:0x140 msmSysDelGroupBase = .text:0x801162F4; // type:function size:0x28C msmSysLoadGroupBase = .text:0x80116580; // type:function size:0x298 msmSysLoadGroupSet = .text:0x80116818; // type:function size:0x3F0 -msmSysLoadGroupSub = .text:0x80116C08; // type:function size:0x3B4 +msmSysLoadGroupSub = .text:0x80116C08; // type:function size:0x3B4 scope:local msmSysLoadGroup = .text:0x80116FBC; // type:function size:0x278 msmSysCheckInit = .text:0x80117234; // type:function size:0x20 msmSysInit = .text:0x80117254; // type:function size:0x474 @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC -msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 -msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local +msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local @@ -3611,8 +3611,8 @@ pickSpr = .rodata:0x8011DFD0; // type:object size:0x20 scope:local handMdl = .rodata:0x8011DFF0; // type:object size:0x20 scope:local ticketSpr = .rodata:0x8011E010; // type:object size:0x10 scope:local lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte -lbl_8011E040 = .rodata:0x8011E040; // type:object size:0x24 -lbl_8011E064 = .rodata:0x8011E064; // type:object size:0x4C +starMesTbl1 = .rodata:0x8011E040; // type:object size:0x24 scope:local +starMesTbl2 = .rodata:0x8011E064; // type:object size:0x48 scope:local lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 data:4byte lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x54 data:4byte lbl_8011E118 = .rodata:0x8011E118; // type:object size:0x38 data:4byte @@ -3646,14 +3646,14 @@ __THPAANScaleFactor = .rodata:0x8011E490; // type:object size:0x40 data:byte lbl_8011E4D0 = .rodata:0x8011E4D0; // type:object size:0x10 lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 __constants = .rodata:0x8011E4F0; // type:object size:0x18 scope:local data:double -lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 -lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 -lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 -lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 +lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 data:string +lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 data:string +lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 data:string +lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 data:string lbl_8011E5A0 = .rodata:0x8011E5A0; // type:object size:0x38 lbl_8011E5D8 = .rodata:0x8011E5D8; // type:object size:0x40 fix_pool_sizes = .rodata:0x8011E618; // type:object size:0x18 scope:local data:4byte -lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 +lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 data:string @stringBase0 = .rodata:0x8011E710; // type:object size:0x25 scope:local data:string_table Zero = .rodata:0x8011E738; // type:object size:0x10 scope:local bp = .rodata:0x8011E748; // type:object size:0x10 scope:local data:double @@ -3668,11 +3668,11 @@ atanhi = .rodata:0x8011E9B8; // type:object size:0x20 scope:local atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local @62 = .rodata:0x8011EA50; // type:object size:0x1C scope:local data:string -lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 +lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x1D data:string gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte -lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte -lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 data:4byte -lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 data:4byte +lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 scope:local data:4byte +lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 scope:local data:4byte +lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 scope:local data:4byte @154 = .rodata:0x8011EB18; // type:object size:0x21 scope:local data:string @155 = .rodata:0x8011EB3C; // type:object size:0x24 scope:local data:string dspMixerCycles = .rodata:0x8011EB60; // type:object size:0x40 @@ -3680,7 +3680,7 @@ pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local -lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 scope:local data:string chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local @@ -3921,7 +3921,7 @@ lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A lbl_8012F0FF = .data:0x8012F0FF; // type:object size:0x31 seqInfoTbl = .data:0x8012F130; // type:object size:0x1DC scope:local seqType2SprTbl = .data:0x8012F30C; // type:object size:0x18 scope:local -mgSeqTypeTbl = .data:0x8012F324; // type:object size:0x12 scope:local +mgSeqTypeTbl = .data:0x8012F324; // type:object size:0x12 scope:local data:2byte lbl_8012F336 = .data:0x8012F336; // type:object size:0x53 scope:local data:string lbl_8012F389 = .data:0x8012F389; // type:object size:0x9 scope:local data:string lbl_8012F392 = .data:0x8012F392; // type:object size:0x9 scope:local data:string @@ -4133,7 +4133,7 @@ VolumeTable = .data:0x801311E8; // type:object size:0x100 scope:local lbl_801312E8 = .data:0x801312E8; // type:object size:0x4D lbl_80131335 = .data:0x80131335; // type:object size:0x1B mgInfoTbl = .data:0x80131350; // type:object size:0xE00 data:2byte -commentTbl = .data:0x80132150; // type:object size:0x40 scope:local +commentTbl = .data:0x80132150; // type:object size:0x40 scope:local data:string lbl_80132190 = .data:0x80132190; // type:object size:0xC data:string lbl_8013219C = .data:0x8013219C; // type:object size:0xC data:string lbl_801321A8 = .data:0x801321A8; // type:object size:0xC data:string @@ -4291,7 +4291,8 @@ statusLayout1Vs3 = .data:0x8013AD64; // type:object size:0x30 scope:local data:f statusLayout2Vs2 = .data:0x8013AD94; // type:object size:0x30 scope:local data:float luckyMessTbl = .data:0x8013ADC4; // type:object size:0x24 scope:local jumptable_8013ADE8 = .data:0x8013ADE8; // type:object size:0x20 scope:local -hiliteYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local +cursorYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local +hiliteYTbl = .data:0x8013AE18; // type:object size:0x10 scope:local hiliteColTbl = .data:0x8013AE28; // type:object size:0xC scope:local hostMesTbl = .data:0x8013AE38; // type:object size:0x90 scope:local houseMdlTbl = .data:0x8013AEC8; // type:object size:0x30 scope:local @@ -4516,7 +4517,7 @@ jumptable_8013EA20 = .data:0x8013EA20; // type:object size:0x1C scope:local jumptable_8013EA3C = .data:0x8013EA3C; // type:object size:0x1C scope:local gTRKRestoreFlags = .data:0x8013EA58; // type:object size:0x9 scope:global data:byte gTRKExceptionStatus = .data:0x8013EA64; // type:object size:0x10 scope:local data:4byte -gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 data:4byte +gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 scope:local data:4byte TRK_ISR_OFFSETS = .data:0x8013EA88; // type:object size:0x3C scope:local data:4byte gDBCommTable = .data:0x8013EAC8; // type:object size:0x1C scope:global data:4byte jumptable_8013EAE8 = .data:0x8013EAE8; // type:object size:0x50 scope:local @@ -4542,19 +4543,19 @@ jumptable_8013FD68 = .data:0x8013FD68; // type:object size:0x24 scope:local jumptable_8013FD8C = .data:0x8013FD8C; // type:object size:0x24 scope:local jumptable_8013FDB0 = .data:0x8013FDB0; // type:object size:0x24 scope:local sndSintab = .data:0x8013FDD8; // type:object size:0x800 -dspSlave = .data:0x801405E0; // type:object size:0x19E0 align:32 +dspSlave = .data:0x801405E0; // type:object size:0x19E0 align:32 data:byte lens$301 = .data:0x80141FC0; // type:object size:0x10 scope:local lens$301 = .data:0x80141FD0; // type:object size:0x20 scope:local rsmpTab12khz = .data:0x80141FF0; // type:object size:0x800 scope:local padStatErrOld = .bss:0x80142800; // type:object size:0x10 scope:local rumbleData = .bss:0x80142810; // type:object size:0x20 scope:local ReadDataStat = .bss:0x80142840; // type:object size:0x2E00 scope:local align:32 data:4byte -TextBuffer = .bss:0x80145640; // type:object size:0x400 +textBuffer = .bss:0x80145640; // type:object size:0x400 scope:local rmodeobj = .bss:0x80145A40; // type:object size:0x40 scope:local HeapTbl = .bss:0x80145A80; // type:object size:0x14 scope:local strline = .bss:0x80145A98; // type:object size:0x6800 scope:local pfStrBuf = .bss:0x8014C298; // type:object size:0x100 scope:local data:byte -processjmpbuf = .bss:0x8014C398; // type:object size:0xF8 align:8 +processjmpbuf = .bss:0x8014C398; // type:object size:0xF8 scope:local align:8 HuSprData = .bss:0x8014C490; // type:object size:0x9600 HuSprGrpData = .bss:0x80155A90; // type:object size:0x5400 data:2byte HuSprOrder = .bss:0x8015AE90; // type:object size:0x1800 @@ -4609,7 +4610,7 @@ CenterM = .bss:0x801900E0; // type:object size:0xC0 CZoomM = .bss:0x801901A0; // type:object size:0x40 omDLLinfoTbl = .bss:0x801901E0; // type:object size:0x50 sndFXBuf = .bss:0x80190230; // type:object size:0x200 scope:local -charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 scope:local +charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 seqWorkData = .bss:0x80190450; // type:object size:0x400 scope:local data:4byte winnerNameW = .bss:0x80190850; // type:object size:0x10 scope:local data:2byte esprite = .bss:0x80190860; // type:object size:0x600 data:2byte @@ -4621,7 +4622,7 @@ wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte winKey = .bss:0x801953C0; // type:object size:0x10 winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400 -ARInfo = .bss:0x801967E0; // type:object size:0x400 data:byte +ARInfo = .bss:0x801967E0; // type:object size:0x400 scope:local data:byte arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local ARQueBuf = .bss:0x80196C00; // type:object size:0x280 scope:local preLoadBuf = .bss:0x80196E80; // type:object size:0x40 scope:local align:32 @@ -4648,7 +4649,7 @@ THPFileName = .bss:0x801981A0; // type:object size:0x40 scope:local mgGameStatBackup = .bss:0x801981E0; // type:object size:0x118 mgIndexList = .bss:0x801982F8; // type:object size:0x100 mgTicTacToeGrid = .bss:0x801983F8; // type:object size:0x12 -_Sys_Flag = .bss:0x80198410; // type:object size:0x10 +_Sys_Flag = .bss:0x80198410; // type:object size:0x10 scope:local curFileInfo = .bss:0x80198420; // type:object size:0x20 saveBuf = .bss:0x80198440; // type:object size:0x4000 align:32 ToeMessageQueue = .bss:0x8019C440; // type:object size:0x20 scope:local @@ -4701,7 +4702,7 @@ spacePos = .bss:0x801A4CF0; // type:object size:0xC scope:local data:float focusPos = .bss:0x801A4CFC; // type:object size:0xC scope:local data:float hostPos = .bss:0x801A4D08; // type:object size:0xC scope:local hostMot = .bss:0x801A4D14; // type:object size:0x10 scope:local data:2byte -lotteryTicketObj = .bss:0x801A4D24; // type:object size:0x14 scope:local data:4byte +lotteryTicketObj = .bss:0x801A4D24; // type:object size:0x10 scope:local data:4byte boxRot = .bss:0x801A4D38; // type:object size:0x20 scope:local padBoxPos = .bss:0x801A4D58; // type:object size:0xC scope:local data:float pathNodeData = .bss:0x801A4D68; // type:object size:0x500 scope:local data:byte @@ -4847,11 +4848,11 @@ fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte -lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string -lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 scope:local data:string +lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 scope:local rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte -lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string -lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 scope:local data:string +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 scope:local data:string lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte @@ -4915,7 +4916,7 @@ lbl_801D359E = .sdata:0x801D359E; // type:object size:0x5 scope:local data:strin lbl_801D35A3 = .sdata:0x801D35A3; // type:object size:0x7 scope:local lbl_801D35AA = .sdata:0x801D35AA; // type:object size:0x6 scope:local lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x6 scope:local data:string -pauseStr$2216 = .sdata:0x801D35B8; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801D35B8; // type:object size:0x8 scope:local lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x8 lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x8 lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x8 @@ -5005,7 +5006,7 @@ itemPickupMdlId = .sdata:0x801D3790; // type:object size:0x2 scope:local data:2b yourTurnSprGrp = .sdata:0x801D3792; // type:object size:0x2 scope:local data:2byte jumpMot = .sdata:0x801D3798; // type:object size:0x2 scope:local data:2byte starMdl = .sdata:0x801D379A; // type:object size:0x2 scope:local data:2byte -lbl_801D37A0 = .sdata:0x801D37A0; // type:object size:0x8 +itemMotTbl = .sdata:0x801D37A0; // type:object size:0x8 scope:local lbl_801D37A8 = .sdata:0x801D37A8; // type:object size:0x8 jumpMot = .sdata:0x801D37B0; // type:object size:0x2 scope:local data:2byte scareMot = .sdata:0x801D37B2; // type:object size:0x2 scope:local data:2byte @@ -5023,9 +5024,9 @@ houseShowMot = .sdata:0x801D37F0; // type:object size:0x2 scope:local data:2byte houseHideMot = .sdata:0x801D37F2; // type:object size:0x2 scope:local data:2byte ballMdl = .sdata:0x801D37F4; // type:object size:0x2 scope:local data:2byte booMdl = .sdata:0x801D37F6; // type:object size:0x2 scope:local data:2byte -lbl_801D37F8 = .sdata:0x801D37F8; // type:object size:0x2 scope:local data:2byte +smokeMdl = .sdata:0x801D37F8; // type:object size:0x2 scope:local data:2byte hostMdl = .sdata:0x801D37FA; // type:object size:0x2 scope:local data:2byte -houseMot = .sdata:0x801D37FC; // type:object size:0x6 scope:local data:2byte +hostMot = .sdata:0x801D37FC; // type:object size:0x6 scope:local data:2byte lbl_801D3802 = .sdata:0x801D3802; // type:object size:0x7 data:string lbl_801D3809 = .sdata:0x801D3809; // type:object size:0x7 data:string lbl_801D3810 = .sdata:0x801D3810; // type:object size:0x7 data:string @@ -5299,8 +5300,8 @@ omovlevtno = .sbss:0x801D3CD4; // type:object size:0x4 data:4byte omovlhisidx = .sbss:0x801D3CD8; // type:object size:0x4 data:4byte omcurdll = .sbss:0x801D3CDC; // type:object size:0x4 data:4byte omcurovl = .sbss:0x801D3CE0; // type:object size:0x4 data:4byte -omnextovl = .sbss:0x801D3CE4; // type:object size:0x4 data:4byte -omwatchproc = .sbss:0x801D3CE8; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801D3CE4; // type:object size:0x4 scope:local data:4byte +omwatchproc = .sbss:0x801D3CE8; // type:object size:0x4 scope:local data:4byte omDBGSysKeyObj = .sbss:0x801D3CEC; // type:object size:0x4 data:4byte y_start = .sbss:0x801D3CF0; // type:object size:0x4 scope:local data:4byte x_start = .sbss:0x801D3CF4; // type:object size:0x4 scope:local data:4byte @@ -5718,7 +5719,7 @@ __OSLastInterrupt = .sbss:0x801D4308; // type:object size:0x2 scope:global data: __OSLastInterruptTime = .sbss:0x801D4310; // type:object size:0x8 scope:global data:4byte SaveStart = .sbss:0x801D4318; // type:object size:0x4 scope:local data:4byte SaveEnd = .sbss:0x801D431C; // type:object size:0x4 scope:local data:4byte -Prepared = .sbss:0x801D4320; // type:object size:0x8 scope:local data:4byte +Prepared = .sbss:0x801D4320; // type:object size:0x4 scope:local data:4byte ResetFunctionQueue = .sbss:0x801D4328; // type:object size:0x8 scope:local data:4byte ResetCallback = .sbss:0x801D4330; // type:object size:0x4 data:4byte Down = .sbss:0x801D4334; // type:object size:0x4 data:4byte @@ -6020,7 +6021,7 @@ SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte -lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 scope:local data:double lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double @@ -7409,55 +7410,55 @@ lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 scope:local data:doub lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 scope:local data:float lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x4 scope:local data:float lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 scope:local data:double -lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 data:4byte -lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 data:4byte -lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 data:4byte -lbl_801D63F4 = .sdata2:0x801D63F4; // type:object size:0x4 data:float -lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x4 data:float -lbl_801D63FC = .sdata2:0x801D63FC; // type:object size:0x4 data:float -lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 data:double -lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 data:float -lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x4 data:float -lbl_801D6414 = .sdata2:0x801D6414; // type:object size:0x4 data:float -lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x4 data:float -lbl_801D641C = .sdata2:0x801D641C; // type:object size:0x4 data:float -lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x4 data:float -lbl_801D6424 = .sdata2:0x801D6424; // type:object size:0x4 data:float -lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x4 data:float -lbl_801D642C = .sdata2:0x801D642C; // type:object size:0x4 data:float -lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x4 data:float -lbl_801D6434 = .sdata2:0x801D6434; // type:object size:0x4 data:float -lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x4 data:float -lbl_801D643C = .sdata2:0x801D643C; // type:object size:0x4 data:float -lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x4 data:float -lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 data:double -lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 data:double -lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 data:float -lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x4 data:float -lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 data:double -lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x4 data:float -lbl_801D6474 = .sdata2:0x801D6474; // type:object size:0x4 data:float -lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x4 data:float -lbl_801D647C = .sdata2:0x801D647C; // type:object size:0x4 data:float -lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x4 data:float -lbl_801D6484 = .sdata2:0x801D6484; // type:object size:0x4 data:float -lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x4 data:float -lbl_801D648C = .sdata2:0x801D648C; // type:object size:0x4 data:float -lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x4 data:float -lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 data:double -lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x4 data:float -lbl_801D64A4 = .sdata2:0x801D64A4; // type:object size:0x4 data:float -lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 data:double -lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x4 data:float -lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 data:double -lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x4 data:float -lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 data:double -lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x4 data:float -lbl_801D64D4 = .sdata2:0x801D64D4; // type:object size:0x4 data:float -lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x4 data:float -lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 data:double -lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x4 data:float -lbl_801D64EC = .sdata2:0x801D64EC; // type:object size:0x4 data:float +lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 scope:local data:4byte +lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 scope:local data:4byte +lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 scope:local data:4byte +lbl_801D63F4 = .sdata2:0x801D63F4; // type:object size:0x4 scope:local data:float +lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x4 scope:local data:float +lbl_801D63FC = .sdata2:0x801D63FC; // type:object size:0x4 scope:local data:float +lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 scope:local data:double +lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 scope:local data:float +lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x4 scope:local data:float +lbl_801D6414 = .sdata2:0x801D6414; // type:object size:0x4 scope:local data:float +lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x4 scope:local data:float +lbl_801D641C = .sdata2:0x801D641C; // type:object size:0x4 scope:local data:float +lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x4 scope:local data:float +lbl_801D6424 = .sdata2:0x801D6424; // type:object size:0x4 scope:local data:float +lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x4 scope:local data:float +lbl_801D642C = .sdata2:0x801D642C; // type:object size:0x4 scope:local data:float +lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x4 scope:local data:float +lbl_801D6434 = .sdata2:0x801D6434; // type:object size:0x4 scope:local data:float +lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x4 scope:local data:float +lbl_801D643C = .sdata2:0x801D643C; // type:object size:0x4 scope:local data:float +lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x4 scope:local data:float +lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 scope:local data:double +lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 scope:local data:double +lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 scope:local data:float +lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x4 scope:local data:float +lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 scope:local data:double +lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x4 scope:local data:float +lbl_801D6474 = .sdata2:0x801D6474; // type:object size:0x4 scope:local data:float +lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x4 scope:local data:float +lbl_801D647C = .sdata2:0x801D647C; // type:object size:0x4 scope:local data:float +lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x4 scope:local data:float +lbl_801D6484 = .sdata2:0x801D6484; // type:object size:0x4 scope:local data:float +lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x4 scope:local data:float +lbl_801D648C = .sdata2:0x801D648C; // type:object size:0x4 scope:local data:float +lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x4 scope:local data:float +lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 scope:local data:double +lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x4 scope:local data:float +lbl_801D64A4 = .sdata2:0x801D64A4; // type:object size:0x4 scope:local data:float +lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 scope:local data:double +lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x4 scope:local data:float +lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 scope:local data:double +lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x4 scope:local data:float +lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 scope:local data:double +lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x4 scope:local data:float +lbl_801D64D4 = .sdata2:0x801D64D4; // type:object size:0x4 scope:local data:float +lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x4 scope:local data:float +lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 scope:local data:double +lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x4 scope:local data:float +lbl_801D64EC = .sdata2:0x801D64EC; // type:object size:0x4 scope:local data:float lbl_801D64F0 = .sdata2:0x801D64F0; // type:object size:0x8 data:double lbl_801D64F8 = .sdata2:0x801D64F8; // type:object size:0x4 data:float lbl_801D64FC = .sdata2:0x801D64FC; // type:object size:0x4 data:float @@ -7710,11 +7711,5 @@ lbl_801D6BC4 = .sdata2:0x801D6BC4; // type:object size:0x4 data:float lbl_801D6BC8 = .sdata2:0x801D6BC8; // type:object size:0x4 data:float lbl_801D6BCC = .sdata2:0x801D6BCC; // type:object size:0x4 data:float lbl_801D6BD0 = .sdata2:0x801D6BD0; // type:object size:0x8 data:double -lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x1 data:byte -lbl_801D6BE1 = .sbss2:0x801D6BE1; // type:object size:0x1 data:byte -lbl_801D6BE2 = .sbss2:0x801D6BE2; // type:object size:0x1 data:byte -lbl_801D6BE3 = .sbss2:0x801D6BE3; // type:object size:0x1 data:byte -lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x1 data:byte -lbl_801D6BE5 = .sbss2:0x801D6BE5; // type:object size:0x1 data:byte -lbl_801D6BE6 = .sbss2:0x801D6BE6; // type:object size:0x1 data:byte -lbl_801D6BE7 = .sbss2:0x801D6BE7; // type:object size:0x1 data:byte +lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x4 scope:local data:byte +lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x4 scope:local data:byte diff --git a/config/GMPE01_01/config.yml b/config/GMPE01_01/config.yml index f9236cb2..8445dc5f 100644 --- a/config/GMPE01_01/config.yml +++ b/config/GMPE01_01/config.yml @@ -19,9 +19,9 @@ modules: splits: config/GMPE01_00/rels/bootDll/splits.txt links: [] extract: - - symbol: logoNintendoData - binary: logoNintendoData.bin - header: logoNintendoData.inc + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: f09399fee83c63abfe2adb25341152adad959a93 symbols: config/GMPE01_00/rels/instDll/symbols.txt diff --git a/config/GMPE01_01/rels/mstory2Dll/splits.txt b/config/GMPE01_01/rels/mstory2Dll/splits.txt index 3e202379..efd06f61 100644 --- a/config/GMPE01_01/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_01/rels/mstory2Dll/splits.txt @@ -27,24 +27,24 @@ REL/mstory2Dll/board_clear.c: REL/mstory2Dll/board_miss.c: .text start:0x0000E570 end:0x000123C8 .rodata start:0x00000248 end:0x00000310 - .data start:0x00000698 end:0x00000D50 + .data start:0x00000698 end:0x00000850 .bss start:0x000004E0 end:0x00000790 REL/mstory2Dll/mg_clear.c: .text start:0x000123C8 end:0x00016060 .rodata start:0x00000310 end:0x000003D0 - .data start:0x00000D50 end:0x00000DB8 + .data start:0x00000850 end:0x00000DB8 .bss start:0x00000790 end:0x00000968 REL/mstory2Dll/mg_miss.c: .text start:0x00016060 end:0x000186D0 - .rodata start:0x000003D0 end:0x00000440 + .rodata start:0x000003D0 end:0x00000438 .data start:0x00000DB8 end:0x00000EF8 .bss start:0x00000968 end:0x00000B38 REL/mstory2Dll/ending.c: .text start:0x000186D0 end:0x0001B560 - .rodata start:0x00000440 end:0x000004B8 + .rodata start:0x00000438 end:0x000004B8 .data start:0x00000EF8 end:0x00001113 .bss start:0x00000B38 end:0x00000D10 diff --git a/config/GMPE01_01/rels/mstory2Dll/symbols.txt b/config/GMPE01_01/rels/mstory2Dll/symbols.txt index fb773409..8bf47557 100644 --- a/config/GMPE01_01/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_01/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -209,8 +209,8 @@ fn_1_16060 = .text:0x00016060; // type:function size:0x118 fn_1_16178 = .text:0x00016178; // type:function size:0x8C fn_1_16204 = .text:0x00016204; // type:function size:0x3AC fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C -fn_1_1660C = .text:0x0001660C; // type:function size:0x110 -fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 fn_1_16984 = .text:0x00016984; // type:function size:0x50 fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 @@ -265,397 +265,397 @@ fn_1_1B870 = .text:0x0001B888; // type:function size:0x9C fn_1_1B90C = .text:0x0001B924; // type:function size:0x50 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF scope:local data:string +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 scope:local data:string +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C scope:local data:string lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float diff --git a/config/GMPE01_01/rels/mstory3Dll/symbols.txt b/config/GMPE01_01/rels/mstory3Dll/symbols.txt index e0915adf..3113f967 100644 --- a/config/GMPE01_01/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_01/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,311 +202,311 @@ fn_1_1E558 = .text:0x0001E570; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E838; // type:function size:0x8E0 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 scope:local lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B scope:local +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float diff --git a/config/GMPE01_01/rels/mstoryDll/splits.txt b/config/GMPE01_01/rels/mstoryDll/splits.txt index dc2d5f55..7378f74e 100644 --- a/config/GMPE01_01/rels/mstoryDll/splits.txt +++ b/config/GMPE01_01/rels/mstoryDll/splits.txt @@ -10,13 +10,13 @@ REL/mstoryDll/main.c: .text start:0x00000000 end:0x00007090 .rodata start:0x00000000 end:0x00000108 .data start:0x00000000 end:0x00000190 - .bss start:0x00000000 end:0x00000058 + .bss start:0x00000000 end:0x000000A8 REL/mstoryDll/board_clear.c: .text start:0x00007090 end:0x0000A830 .rodata start:0x00000108 end:0x00000268 .data start:0x00000190 end:0x00000388 - .bss start:0x00000058 end:0x000002C8 + .bss start:0x000000A8 end:0x000002C8 REL/mstoryDll/board_miss.c: .text start:0x0000A830 end:0x0000E710 diff --git a/config/GMPE01_01/rels/mstoryDll/symbols.txt b/config/GMPE01_01/rels/mstoryDll/symbols.txt index 5dd7edd6..225344ab 100644 --- a/config/GMPE01_01/rels/mstoryDll/symbols.txt +++ b/config/GMPE01_01/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,283 +189,284 @@ fn_1_13E2C = .text:0x00013E44; // type:function size:0x324 fn_1_14150 = .text:0x00014168; // type:function size:0x50 _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 -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string -lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE scope:local data:string lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string -lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A scope:local data:string lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string -lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 scope:local data:string lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string -lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 scope:local data:string lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string -lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A scope:local data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt index 6b38187f..0c85aae7 100644 --- a/config/GMPE01_01/splits.txt +++ b/config/GMPE01_01/splits.txt @@ -955,7 +955,7 @@ Runtime.PPCEABI.H/NewMore.cp: .data start:0x8013E208 end:0x8013E218 .sdata start:0x801D39A0 end:0x801D39A8 -Runtime.PPCEABI.H/NMWException.cp: +Runtime.PPCEABI.H/NMWException.cpp: extab start:0x80005650 end:0x80005670 extabindex start:0x80005718 end:0x80005748 .text start:0x800E2108 end:0x800E23CC @@ -971,7 +971,7 @@ Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: .dtors start:0x8011DCE0 end:0x8011DCE8 .sdata start:0x801D39B0 end:0x801D39B8 -Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: +Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp: extab start:0x80005670 end:0x800056E4 extabindex start:0x80005748 end:0x8000579C .text start:0x800E2B24 end:0x800E3F5C @@ -1186,7 +1186,7 @@ TRK_MINNOW_DOLPHIN/serpoll.c: .text start:0x800ECC5C end:0x800ED028 .bss start:0x801A9110 end:0x801A9128 -TRK_MINNOW_DOLPHIN/usrput.c: +TRK_MINNOW_DOLPHIN/usr_put.c: .text start:0x800ED028 end:0x800ED0B4 TRK_MINNOW_DOLPHIN/dispatch.c: @@ -1216,15 +1216,15 @@ TRK_MINNOW_DOLPHIN/mem_TRK.c: .text start:0x800F0398 end:0x800F0454 TRK_MINNOW_DOLPHIN/targimpl.c: - .text start:0x800F0454 end:0x800F1CF0 + .text start:0x800F0454 end:0x800F1CE4 .rodata start:0x8011EA90 end:0x8011EB18 .data start:0x8013EA58 end:0x8013EA88 .bss start:0x801A9138 end:0x801A96B8 -TRK_MINNOW_DOLPHIN/targsupp.c: +TRK_MINNOW_DOLPHIN/targsupp.s: .text start:0x800F1CF0 end:0x800F1D10 -TRK_MINNOW_DOLPHIN/__exception.c: +TRK_MINNOW_DOLPHIN/__exception.s: .init start:0x80003534 end:0x80005468 TRK_MINNOW_DOLPHIN/dolphin_trk.c: diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index c85ba835..5bed188a 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -244,7 +244,7 @@ Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 objCall = .text:0x800141C4; // type:function size:0xEC scope:local objMesh = .text:0x800142B0; // type:function size:0x86C scope:local ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 -FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local @@ -475,7 +475,7 @@ Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 -_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C @@ -666,29 +666,29 @@ MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 MGSeqStub = .text:0x80035AEC; // type:function size:0x4 MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C -SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local -SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local -SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 SeqMakeWord = .text:0x80036D50; // type:function size:0x1D0 scope:local SeqLoadFontChar = .text:0x80036F20; // type:function size:0x26C scope:local -SeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 scope:local -SeqUpdateWin = .text:0x8003D804; // type:function size:0x72C scope:local -SeqInitRecord = .text:0x8003DF30; // type:function size:0x774 scope:local -SeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 +MGSeqUpdateWin = .text:0x8003D804; // type:function size:0x72C +MGSeqInitRecord = .text:0x8003DF30; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E9A8; // type:function size:0x6C PauseProc = .text:0x8003EA14; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F360; // type:function size:0xC @@ -2572,7 +2572,7 @@ GXEndDisplayList = .text:0x800CF0E0; // type:function size:0xD4 GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70 GXProject = .text:0x800CF224; // type:function size:0x174 GXSetProjection = .text:0x800CF398; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF46C; // type:function size:0x78 WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC -msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 -msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local +msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local @@ -3588,7 +3588,7 @@ __init_cpp_exceptions_reference = .ctors:0x8011DCC0; // type:object size:0x4 sco _dtors = .dtors:0x8011DCE0; // type:label scope:global data:4byte __destroy_global_chain_reference = .dtors:0x8011DCE0; // type:object size:0x4 scope:global __fini_cpp_exceptions_reference = .dtors:0x8011DCE4; // type:object size:0x4 scope:global -lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 data:4byte +lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 scope:local data:4byte lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0xC data:4byte lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x20 data:byte @@ -3680,7 +3680,7 @@ pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local -lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 scope:local data:string chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local @@ -3834,10 +3834,10 @@ lbl_8011FCA4 = .data:0x8011FCA4; // type:object size:0x1A data:string lbl_8011FCBE = .data:0x8011FCBE; // type:object size:0x122 lbl_8011FDE0 = .data:0x8011FDE0; // type:object size:0x20 ank8x8_4b = .data:0x8011FE00; // type:object size:0x2000 align:32 -lbl_80121E00 = .data:0x80121E00; // type:object size:0x150 +lbl_80121E00 = .data:0x80121E00; // type:object size:0x150 scope:local HeapSizeTbl = .data:0x80121F50; // type:object size:0x78 scope:local -lbl_80121FC8 = .data:0x80121FC8; // type:object size:0x50 -lbl_80122018 = .data:0x80122018; // type:object size:0x128 +lbl_80121FC8 = .data:0x80121FC8; // type:object size:0x50 scope:local +lbl_80122018 = .data:0x80122018; // type:object size:0x128 scope:local fcoltbl = .data:0x80122140; // type:object size:0x40 scope:local align:32 lbl_80122180 = .data:0x80122180; // type:object size:0x1F data:string lbl_8012219F = .data:0x8012219F; // type:object size:0x31 @@ -4847,11 +4847,11 @@ fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte -lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string -lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 scope:local data:string +lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 scope:local rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte -lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string -lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 scope:local data:string +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 scope:local data:string lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte @@ -4915,7 +4915,7 @@ lbl_801D359E = .sdata:0x801D359E; // type:object size:0x5 scope:local data:strin lbl_801D35A3 = .sdata:0x801D35A3; // type:object size:0x7 scope:local lbl_801D35AA = .sdata:0x801D35AA; // type:object size:0x6 scope:local lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x6 scope:local data:string -pauseStr$2216 = .sdata:0x801D35B8; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801D35B8; // type:object size:0x8 scope:local lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x8 lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x8 lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x8 @@ -6020,7 +6020,7 @@ SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte -lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 scope:local data:double lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double @@ -7710,11 +7710,5 @@ lbl_801D6BC4 = .sdata2:0x801D6BC4; // type:object size:0x4 data:float lbl_801D6BC8 = .sdata2:0x801D6BC8; // type:object size:0x4 data:float lbl_801D6BCC = .sdata2:0x801D6BCC; // type:object size:0x4 data:float lbl_801D6BD0 = .sdata2:0x801D6BD0; // type:object size:0x8 data:double -lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x1 data:byte -lbl_801D6BE1 = .sbss2:0x801D6BE1; // type:object size:0x1 data:byte -lbl_801D6BE2 = .sbss2:0x801D6BE2; // type:object size:0x1 data:byte -lbl_801D6BE3 = .sbss2:0x801D6BE3; // type:object size:0x1 data:byte -lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x1 data:byte -lbl_801D6BE5 = .sbss2:0x801D6BE5; // type:object size:0x1 data:byte -lbl_801D6BE6 = .sbss2:0x801D6BE6; // type:object size:0x1 data:byte -lbl_801D6BE7 = .sbss2:0x801D6BE7; // type:object size:0x1 data:byte +lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x4 scope:local data:byte +lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x4 scope:local data:byte diff --git a/config/GMPJ01_00/build.sha1 b/config/GMPJ01_00/build.sha1 new file mode 100644 index 00000000..c9f5f735 --- /dev/null +++ b/config/GMPJ01_00/build.sha1 @@ -0,0 +1,100 @@ +abe951fa239e7cb5de67e1ac091cfbc14010d6e0 build/GMPJ01_00/main.dol +164e5e0bec4e1fbf068a158b00a62bd2a4124fb1 build/GMPJ01_00/_minigameDll/_minigameDll.rel +214a6992eabf31e8a202833c8f6e4da4e553ceb5 build/GMPJ01_00/bootDll/bootDll.rel +bd08e86c8b36eaa84319a8c41030afc769058983 build/GMPJ01_00/instDll/instDll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m302Dll/m302Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m303Dll/m303Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m330Dll/m330Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m333Dll/m333Dll.rel +fc2f898e5da6e17e2bb4a5b1efa6344dc210ed19 build/GMPJ01_00/m402Dll/m402Dll.rel +f6346c570fb659d8098f55a8f15b54ab96393019 build/GMPJ01_00/m403Dll/m403Dll.rel +404b9558c0a1b0ac728afe9e827604e0d606a8e1 build/GMPJ01_00/m404Dll/m404Dll.rel +a5ab650f706128955ee2bc7a068813097b9c31c0 build/GMPJ01_00/m405Dll/m405Dll.rel +90ab2775e7e60d07bcb2bc4879e2c2e4ef95a721 build/GMPJ01_00/m406Dll/m406Dll.rel +efe1a502cd82f22572f1e56992be2cf7a9c27cbb build/GMPJ01_00/m407dll/m407dll.rel +2206fa17d24e900079543ac9d4c48ad405d8e55f build/GMPJ01_00/m408Dll/m408Dll.rel +7edd8e77b69db00378c14b2130b9d3692841b8d1 build/GMPJ01_00/m409Dll/m409Dll.rel +8d6dd949a706594ad6bbc5d2447072a3519b087c build/GMPJ01_00/m410Dll/m410Dll.rel +8cbdc67b341232955341a2f9193128483f3d2325 build/GMPJ01_00/m411Dll/m411Dll.rel +952cd93f9dca7282ffe4a162e773a93249e39c6e build/GMPJ01_00/m412Dll/m412Dll.rel +bb130095d6045dc761b3dcd70307c8de12946e95 build/GMPJ01_00/m413Dll/m413Dll.rel +f75c13865a8508024bb6c4ba215293e02ac4029a build/GMPJ01_00/m414Dll/m414Dll.rel +9c90fbfaa45e838dcf0d06f1d8930c4ebfb346d6 build/GMPJ01_00/m415Dll/m415Dll.rel +fb6e0bd126678c5611d4b805697804edd5a3bbb4 build/GMPJ01_00/m416Dll/m416Dll.rel +3d1a40d456dab6fc4058bee79d0b9556ec69da5b build/GMPJ01_00/m417Dll/m417Dll.rel +c545db0be0b14179586b0b7e3f29ffa68f30a4a2 build/GMPJ01_00/m418Dll/m418Dll.rel +eac3a130a36057c156b3527ff464cd29e5f89b34 build/GMPJ01_00/m419Dll/m419Dll.rel +f5f355eb7e0884478ce8d353bd7f39a3d270f22f build/GMPJ01_00/m420dll/m420dll.rel +5e199b4773791122284125afa07e094edff53ea2 build/GMPJ01_00/m421Dll/m421Dll.rel +bc3cc80aafb1d4e3f80e746f275fd5d69b251a98 build/GMPJ01_00/m422Dll/m422Dll.rel +e4220010e147160fcd683e4f75f668a2a278545d build/GMPJ01_00/m423Dll/m423Dll.rel +6007eaeb00271006355018faf4c45cdb6bea9462 build/GMPJ01_00/m424Dll/m424Dll.rel +78b12773afcf2c5d7f5f3437d0f8f46d9ee2fb6c build/GMPJ01_00/m425Dll/m425Dll.rel +646a30f82b46f522b154da1441c633a6344bcb4e build/GMPJ01_00/m426Dll/m426Dll.rel +d1775769482dcca5335b715423c7937cc90c11ff build/GMPJ01_00/m427Dll/m427Dll.rel +3a429bc7c87646735dd0221938162031e8e8eb18 build/GMPJ01_00/m428Dll/m428Dll.rel +5c73605a373af413cbdde7ab014697dbf74d73c5 build/GMPJ01_00/m429Dll/m429Dll.rel +5b7bee635458a6faa467e32387774a1c755842c2 build/GMPJ01_00/m430Dll/m430Dll.rel +d838e4d9378ce9d70cec9ba87f585340755b3978 build/GMPJ01_00/m431Dll/m431Dll.rel +84429fff6278ce44615d859220b04bee048aab32 build/GMPJ01_00/m432Dll/m432Dll.rel +f56e9cc895578b9ff8cf57f54fa7af35459bb353 build/GMPJ01_00/m433Dll/m433Dll.rel +cd3135998d2703af72e9c547cf2ecdff8dfddb12 build/GMPJ01_00/m434Dll/m434Dll.rel +bd3a81c1b4eb44503bc81d30412c9a9ebf646f09 build/GMPJ01_00/m435Dll/m435Dll.rel +43b55269820dba54ba5afb2cbdeeb889b4a3908f build/GMPJ01_00/m436Dll/m436Dll.rel +9c5711c7354f0b0e1811aae39d63ae3a1ab1d8fc build/GMPJ01_00/m437Dll/m437Dll.rel +eff0920fd6695a4886e531477fe845ebab9fa58c build/GMPJ01_00/m438Dll/m438Dll.rel +a69d462dff8ed14565de09fdf9ea25811a07e760 build/GMPJ01_00/m439Dll/m439Dll.rel +b131837b247ab12b0a0eedc24524b4b7078fe3df build/GMPJ01_00/m440Dll/m440Dll.rel +50290b2b7216b6e1c873d2140371cd01d318e96d build/GMPJ01_00/m441Dll/m441Dll.rel +86d546fc4345975773057465c0ded6f001cbf3f7 build/GMPJ01_00/m442Dll/m442Dll.rel +8625605a1198477a21f7540151822bba638ba56f build/GMPJ01_00/m443Dll/m443Dll.rel +1a9e6e528ccc38315650fe86c607a51f7bbca22e build/GMPJ01_00/m444dll/m444dll.rel +1dceaf7e6a3b550eeba10b1f88b1f77df67d77d4 build/GMPJ01_00/m445Dll/m445Dll.rel +bb9b17127b6d3e7c42f7c198c4b58d73dc6ead04 build/GMPJ01_00/m446dll/m446dll.rel +dcb78f18f4b2de862532b0557a093bf0e7ac2a3f build/GMPJ01_00/m447dll/m447dll.rel +7a9b438e699ee4c960438e60f08f6a3f10a6847f build/GMPJ01_00/m448Dll/m448Dll.rel +2511aaea175c454025b25e6f873991f643517afa build/GMPJ01_00/m449Dll/m449Dll.rel +b9bed4dffcb4447b1cf83dc7be8dfb4e04ba6908 build/GMPJ01_00/m450Dll/m450Dll.rel +30b1fcd7438cbc70bd78b0a68d58b5c4dc7dfc1f build/GMPJ01_00/m451Dll/m451Dll.rel +4726a8d2fe900e5fd3a1fe747e53d9d8bd533c4d build/GMPJ01_00/m453Dll/m453Dll.rel +3f6938ca1a430e799f82ed835bdb2852caa6f081 build/GMPJ01_00/m455Dll/m455Dll.rel +32c370c9e690903950c449ecde463aa1f67c22d2 build/GMPJ01_00/m456Dll/m456Dll.rel +8cc0fbd1a8c70cd84068054c859fbe437b100a29 build/GMPJ01_00/m457Dll/m457Dll.rel +c6b7148b5103f7c079821322e6c52750dc421b92 build/GMPJ01_00/m458Dll/m458Dll.rel +050ceeb799efbc0b789944e7ac9f8092c0916710 build/GMPJ01_00/m459dll/m459dll.rel +2d34a403542ce7ea0752244425e98ba34e2cae7a build/GMPJ01_00/m460Dll/m460Dll.rel +d95c248d3570681f5367e3b2bf3598560ae9ff1c build/GMPJ01_00/m461Dll/m461Dll.rel +0f050808bb94a113ad75d5364cb5ca660868f44a build/GMPJ01_00/m462Dll/m462Dll.rel +70616dce8be76266dcc1f364353bac97598b81eb build/GMPJ01_00/m463Dll/m463Dll.rel +8a933d827ea1455c93e7c277bfa48be844897d9f build/GMPJ01_00/mentDll/mentDll.rel +af7dc453707dbb01a82e9f867bfeff2f06a73a29 build/GMPJ01_00/mgmodedll/mgmodedll.rel +b64343c9747b118a29ceb4bcb028cb4f16fb589e build/GMPJ01_00/modeltestDll/modeltestDll.rel +e4181ec6478f305cd87d1f4d1f28758637321956 build/GMPJ01_00/modeseldll/modeseldll.rel +a521e035ae1210b6638cb781febd390d1999190b build/GMPJ01_00/movieDll/movieDll.rel +d6a49ebd47855e9bdffa17c1ab57ca548a3fb75a build/GMPJ01_00/mpexDll/mpexDll.rel +7cbf86d25a20d5571270b45ed1620c6ff7913476 build/GMPJ01_00/msetupDll/msetupDll.rel +cbb7197d16e7cec374e0b5d3bd90d0cc9d650127 build/GMPJ01_00/mstory2Dll/mstory2Dll.rel +f02191dfe80020d8e9cc17ea2da8f33e81a32e31 build/GMPJ01_00/mstory3Dll/mstory3Dll.rel +4ae421deb583f684d17a58d232861a4c52b7d694 build/GMPJ01_00/mstory4Dll/mstory4Dll.rel +403343e740c0ea0cd1c1571946921b0e137a612f build/GMPJ01_00/mstoryDll/mstoryDll.rel +95803acba3dd4fc8e98140a923f3716d45377eef build/GMPJ01_00/nisDll/nisDll.rel +d8915bb0a375a86125fb67a287d1723cfafc6f62 build/GMPJ01_00/option/option.rel +ef8fa41e2b5f0e69cd6d2d763d8cdaeca782b4c9 build/GMPJ01_00/present/present.rel +5166964e0adaa9beb257665edd8d0d1726d53f88 build/GMPJ01_00/resultDll/resultDll.rel +5cb945cfbe3c8f626326c75b26d7ea3b318ae3c9 build/GMPJ01_00/safDll/safDll.rel +86639a3aff8b7660f541a15904868131d01a458f build/GMPJ01_00/selmenuDll/selmenuDll.rel +bca64fa6b8287dba977e7bc567dbbf345d36fed8 build/GMPJ01_00/staffDll/staffDll.rel +2ea368663d63828fdfdf0085290ba9a1e160b620 build/GMPJ01_00/subchrselDll/subchrselDll.rel +75f8861387de75f5d5d74e59e69fc43f2e5e3de2 build/GMPJ01_00/w01Dll/w01Dll.rel +91cdc49e2aa44fa47551345d6ecfaa563e5c648b build/GMPJ01_00/w02Dll/w02Dll.rel +5e3a277824da41154ac2601e00c72661c86aa41b build/GMPJ01_00/w03Dll/w03Dll.rel +cd988b1377ba5039794b4cc2eae2921e5a6de167 build/GMPJ01_00/w04Dll/w04Dll.rel +2a6e644000418800e5e85fd4585c37f0193fbe76 build/GMPJ01_00/w05Dll/w05Dll.rel +d9765f5f7e9e1ea486fe6f1ab3a478dff265c72a build/GMPJ01_00/w06Dll/w06Dll.rel +f7f16f2fb45fc874a437267ca7d17139c1110495 build/GMPJ01_00/w10Dll/w10Dll.rel +dce8d65e08069e87029a0a950aa2ab6894c110b4 build/GMPJ01_00/w20Dll/w20Dll.rel +0ecb1234fdc25f76f41c12678135d0c74a5b39a2 build/GMPJ01_00/w21Dll/w21Dll.rel +f21fcb2b66e154a0ae3e875ddefbb5e9eb1d5174 build/GMPJ01_00/ztardll/ztardll.rel +83c94c0ef384f7783fecfd77fb845659883dd7d6 build/GMPJ01_00/E3setupDLL/E3setupDLL.rel +1264a80903d561b61e86d9db3e7648e0b7570bf5 build/GMPJ01_00/m300Dll/m300Dll.rel +5ae17b9ca8a5689c107350b5e0dabb658f4af019 build/GMPJ01_00/m401Dll/m401Dll.rel diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml new file mode 100644 index 00000000..441f226f --- /dev/null +++ b/config/GMPJ01_00/config.yml @@ -0,0 +1,568 @@ +object_base: orig/GMPJ01_00 +object: sys/main.dol +hash: abe951fa239e7cb5de67e1ac091cfbc14010d6e0 +symbols: config/GMPJ01_00/symbols.txt +splits: config/GMPJ01_00/splits.txt +quick_analysis: true # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, _kerent] + +detect_objects: true +detect_strings: true +fill_gaps: true +# TODO add hashes +modules: + - object: files/dll/_minigameDll.rel + + symbols: config/GMPE01_00/rels/_minigameDll/symbols.txt + splits: config/GMPE01_00/rels/_minigameDll/splits.txt + links: [] + - object: files/dll/bootDll.rel + + symbols: config/GMPJ01_00/rels/bootDll/symbols.txt + splits: config/GMPJ01_00/rels/bootDll/splits.txt + links: [] + - object: files/dll/instDll.rel + + symbols: config/GMPJ01_00/rels/instDll/symbols.txt + splits: config/GMPJ01_00/rels/instDll/splits.txt + links: [] + - object: files/dll/m302Dll.rel + + symbols: config/GMPJ01_00/rels/m302Dll/symbols.txt + splits: config/GMPJ01_00/rels/m302Dll/splits.txt + links: [] + - object: files/dll/m303Dll.rel + + symbols: config/GMPJ01_00/rels/m303Dll/symbols.txt + splits: config/GMPJ01_00/rels/m303Dll/splits.txt + links: [] + - object: files/dll/m330Dll.rel + + symbols: config/GMPJ01_00/rels/m330Dll/symbols.txt + splits: config/GMPJ01_00/rels/m330Dll/splits.txt + links: [] + - object: files/dll/m333Dll.rel + + symbols: config/GMPJ01_00/rels/m333Dll/symbols.txt + splits: config/GMPJ01_00/rels/m333Dll/splits.txt + links: [] + - object: files/dll/m402Dll.rel + + symbols: config/GMPE01_00/rels/m402Dll/symbols.txt + splits: config/GMPE01_00/rels/m402Dll/splits.txt + links: [] + - object: files/dll/m403Dll.rel + + symbols: config/GMPE01_00/rels/m403Dll/symbols.txt + splits: config/GMPE01_00/rels/m403Dll/splits.txt + links: [] + - object: files/dll/m404Dll.rel + + symbols: config/GMPE01_00/rels/m404Dll/symbols.txt + splits: config/GMPE01_00/rels/m404Dll/splits.txt + links: [] + - object: files/dll/m405Dll.rel + + symbols: config/GMPE01_00/rels/m405Dll/symbols.txt + splits: config/GMPE01_00/rels/m405Dll/splits.txt + links: [] + - object: files/dll/m406Dll.rel + + symbols: config/GMPE01_00/rels/m406Dll/symbols.txt + splits: config/GMPE01_00/rels/m406Dll/splits.txt + links: [] + - object: files/dll/m407dll.rel + + symbols: config/GMPE01_00/rels/m407dll/symbols.txt + splits: config/GMPE01_00/rels/m407dll/splits.txt + links: [] + - object: files/dll/m408Dll.rel + + symbols: config/GMPE01_00/rels/m408Dll/symbols.txt + splits: config/GMPE01_00/rels/m408Dll/splits.txt + links: [] + - object: files/dll/m409Dll.rel + + symbols: config/GMPE01_00/rels/m409Dll/symbols.txt + splits: config/GMPE01_00/rels/m409Dll/splits.txt + links: [] + - object: files/dll/m410Dll.rel + + symbols: config/GMPE01_00/rels/m410Dll/symbols.txt + splits: config/GMPE01_00/rels/m410Dll/splits.txt + links: [] + - object: files/dll/m411Dll.rel + + symbols: config/GMPE01_00/rels/m411Dll/symbols.txt + splits: config/GMPE01_00/rels/m411Dll/splits.txt + links: [] + - object: files/dll/m412Dll.rel + + symbols: config/GMPE01_00/rels/m412Dll/symbols.txt + splits: config/GMPE01_00/rels/m412Dll/splits.txt + links: [] + - object: files/dll/m413Dll.rel + + symbols: config/GMPJ01_00/rels/m413Dll/symbols.txt + splits: config/GMPJ01_00/rels/m413Dll/splits.txt + links: [] + - object: files/dll/m414Dll.rel + + symbols: config/GMPE01_00/rels/m414Dll/symbols.txt + splits: config/GMPE01_00/rels/m414Dll/splits.txt + links: [] + - object: files/dll/m415Dll.rel + + symbols: config/GMPE01_00/rels/m415Dll/symbols.txt + splits: config/GMPE01_00/rels/m415Dll/splits.txt + links: [] + - object: files/dll/m416Dll.rel + + symbols: config/GMPE01_00/rels/m416Dll/symbols.txt + splits: config/GMPE01_00/rels/m416Dll/splits.txt + links: [] + - object: files/dll/m417Dll.rel + + symbols: config/GMPE01_00/rels/m417Dll/symbols.txt + splits: config/GMPE01_00/rels/m417Dll/splits.txt + links: [] + - object: files/dll/m418Dll.rel + + symbols: config/GMPJ01_00/rels/m418Dll/symbols.txt + splits: config/GMPJ01_00/rels/m418Dll/splits.txt + links: [] + - object: files/dll/m419Dll.rel + + symbols: config/GMPJ01_00/rels/m419Dll/symbols.txt + splits: config/GMPJ01_00/rels/m419Dll/splits.txt + links: [] + - object: files/dll/m420dll.rel + + symbols: config/GMPE01_00/rels/m420dll/symbols.txt + splits: config/GMPE01_00/rels/m420dll/splits.txt + links: [] + - object: files/dll/m421Dll.rel + + symbols: config/GMPE01_00/rels/m421Dll/symbols.txt + splits: config/GMPE01_00/rels/m421Dll/splits.txt + links: [] + - object: files/dll/m422Dll.rel + + symbols: config/GMPJ01_00/rels/m422Dll/symbols.txt + splits: config/GMPJ01_00/rels/m422Dll/splits.txt + links: [] + - object: files/dll/m423Dll.rel + + symbols: config/GMPJ01_00/rels/m423Dll/symbols.txt + splits: config/GMPJ01_00/rels/m423Dll/splits.txt + links: [] + - object: files/dll/m424Dll.rel + + symbols: config/GMPJ01_00/rels/m424Dll/symbols.txt + splits: config/GMPJ01_00/rels/m424Dll/splits.txt + links: [] + - object: files/dll/m425Dll.rel + + symbols: config/GMPJ01_00/rels/m425Dll/symbols.txt + splits: config/GMPJ01_00/rels/m425Dll/splits.txt + links: [] + - object: files/dll/m426Dll.rel + + symbols: config/GMPJ01_00/rels/m426Dll/symbols.txt + splits: config/GMPJ01_00/rels/m426Dll/splits.txt + links: [] + - object: files/dll/m427Dll.rel + + symbols: config/GMPJ01_00/rels/m427Dll/symbols.txt + splits: config/GMPJ01_00/rels/m427Dll/splits.txt + links: [] + - object: files/dll/m428Dll.rel + + symbols: config/GMPJ01_00/rels/m428Dll/symbols.txt + splits: config/GMPJ01_00/rels/m428Dll/splits.txt + links: [] + - object: files/dll/m429Dll.rel + + symbols: config/GMPE01_00/rels/m429Dll/symbols.txt + splits: config/GMPE01_00/rels/m429Dll/splits.txt + links: [] + - object: files/dll/m430Dll.rel + + symbols: config/GMPJ01_00/rels/m430Dll/symbols.txt + splits: config/GMPJ01_00/rels/m430Dll/splits.txt + links: [] + - object: files/dll/m431Dll.rel + + symbols: config/GMPE01_00/rels/m431Dll/symbols.txt + splits: config/GMPE01_00/rels/m431Dll/splits.txt + links: [] + - object: files/dll/m432Dll.rel + + symbols: config/GMPE01_00/rels/m432Dll/symbols.txt + splits: config/GMPE01_00/rels/m432Dll/splits.txt + links: [] + - object: files/dll/m433Dll.rel + + symbols: config/GMPJ01_00/rels/m433Dll/symbols.txt + splits: config/GMPJ01_00/rels/m433Dll/splits.txt + links: [] + - object: files/dll/m434Dll.rel + + symbols: config/GMPE01_00/rels/m434Dll/symbols.txt + splits: config/GMPE01_00/rels/m434Dll/splits.txt + links: [] + - object: files/dll/m435Dll.rel + + symbols: config/GMPE01_00/rels/m435Dll/symbols.txt + splits: config/GMPE01_00/rels/m435Dll/splits.txt + links: [] + - object: files/dll/m436Dll.rel + + symbols: config/GMPE01_00/rels/m436Dll/symbols.txt + splits: config/GMPE01_00/rels/m436Dll/splits.txt + links: [] + - object: files/dll/m437Dll.rel + + symbols: config/GMPE01_00/rels/m437Dll/symbols.txt + splits: config/GMPE01_00/rels/m437Dll/splits.txt + links: [] + - object: files/dll/m438Dll.rel + + symbols: config/GMPJ01_00/rels/m438Dll/symbols.txt + splits: config/GMPJ01_00/rels/m438Dll/splits.txt + links: [] + - object: files/dll/m439Dll.rel + + symbols: config/GMPE01_00/rels/m439Dll/symbols.txt + splits: config/GMPE01_00/rels/m439Dll/splits.txt + links: [] + - object: files/dll/m440Dll.rel + + symbols: config/GMPE01_00/rels/m440Dll/symbols.txt + splits: config/GMPE01_00/rels/m440Dll/splits.txt + links: [] + - object: files/dll/m441Dll.rel + + symbols: config/GMPE01_00/rels/m441Dll/symbols.txt + splits: config/GMPE01_00/rels/m441Dll/splits.txt + links: [] + - object: files/dll/m442Dll.rel + + symbols: config/GMPE01_00/rels/m442Dll/symbols.txt + splits: config/GMPE01_00/rels/m442Dll/splits.txt + links: [] + - object: files/dll/m443Dll.rel + + symbols: config/GMPE01_00/rels/m443Dll/symbols.txt + splits: config/GMPE01_00/rels/m443Dll/splits.txt + links: [] + - object: files/dll/m444dll.rel + + symbols: config/GMPJ01_00/rels/m444dll/symbols.txt + splits: config/GMPJ01_00/rels/m444dll/splits.txt + links: [] + - object: files/dll/m445Dll.rel + + symbols: config/GMPE01_00/rels/m445Dll/symbols.txt + splits: config/GMPE01_00/rels/m445Dll/splits.txt + links: [] + - object: files/dll/m446dll.rel + + symbols: config/GMPE01_00/rels/m446dll/symbols.txt + splits: config/GMPE01_00/rels/m446dll/splits.txt + links: [] + - object: files/dll/m447dll.rel + + symbols: config/GMPE01_00/rels/m447dll/symbols.txt + splits: config/GMPE01_00/rels/m447dll/splits.txt + links: [] + - object: files/dll/m448Dll.rel + + symbols: config/GMPE01_00/rels/m448Dll/symbols.txt + splits: config/GMPE01_00/rels/m448Dll/splits.txt + links: [] + - object: files/dll/m449Dll.rel + + symbols: config/GMPJ01_00/rels/m449Dll/symbols.txt + splits: config/GMPJ01_00/rels/m449Dll/splits.txt + links: [] + - object: files/dll/m450Dll.rel + + symbols: config/GMPE01_00/rels/m450Dll/symbols.txt + splits: config/GMPE01_00/rels/m450Dll/splits.txt + links: [] + - object: files/dll/m451Dll.rel + + symbols: config/GMPE01_00/rels/m451Dll/symbols.txt + splits: config/GMPE01_00/rels/m451Dll/splits.txt + links: [] + - object: files/dll/m453Dll.rel + + symbols: config/GMPE01_00/rels/m453Dll/symbols.txt + splits: config/GMPE01_00/rels/m453Dll/splits.txt + links: [] + - object: files/dll/m455Dll.rel + + symbols: config/GMPE01_00/rels/m455Dll/symbols.txt + splits: config/GMPE01_00/rels/m455Dll/splits.txt + links: [] + - object: files/dll/m456Dll.rel + + symbols: config/GMPE01_00/rels/m456Dll/symbols.txt + splits: config/GMPE01_00/rels/m456Dll/splits.txt + links: [] + - object: files/dll/m457Dll.rel + + symbols: config/GMPJ01_00/rels/m457Dll/symbols.txt + splits: config/GMPJ01_00/rels/m457Dll/splits.txt + links: [] + - object: files/dll/m458Dll.rel + + symbols: config/GMPJ01_00/rels/m458Dll/symbols.txt + splits: config/GMPJ01_00/rels/m458Dll/splits.txt + links: [] + - object: files/dll/m459dll.rel + + symbols: config/GMPJ01_00/rels/m459dll/symbols.txt + splits: config/GMPJ01_00/rels/m459dll/splits.txt + links: [] + - object: files/dll/m460Dll.rel + + symbols: config/GMPE01_00/rels/m460Dll/symbols.txt + splits: config/GMPE01_00/rels/m460Dll/splits.txt + links: [] + - object: files/dll/m461Dll.rel + + symbols: config/GMPE01_00/rels/m461Dll/symbols.txt + splits: config/GMPE01_00/rels/m461Dll/splits.txt + links: [] + - object: files/dll/m462Dll.rel + + symbols: config/GMPJ01_00/rels/m462Dll/symbols.txt + splits: config/GMPJ01_00/rels/m462Dll/splits.txt + links: [] + - object: files/dll/m463Dll.rel + + symbols: config/GMPJ01_00/rels/m463Dll/symbols.txt + splits: config/GMPJ01_00/rels/m463Dll/splits.txt + links: [] + - object: files/dll/mentDll.rel + + symbols: config/GMPJ01_00/rels/mentDll/symbols.txt + splits: config/GMPJ01_00/rels/mentDll/splits.txt + links: [] + - object: files/dll/movieDll.rel + + symbols: config/GMPJ01_00/rels/movieDll/symbols.txt + splits: config/GMPJ01_00/rels/movieDll/splits.txt + links: [] + - object: files/dll/mgmodedll.rel + + symbols: config/GMPE01_00/rels/mgmodedll/symbols.txt + splits: config/GMPE01_00/rels/mgmodedll/splits.txt + links: [] + - object: files/dll/modeltestDll.rel + + symbols: config/GMPE01_00/rels/modeltestDll/symbols.txt + splits: config/GMPE01_00/rels/modeltestDll/splits.txt + links: [] + - object: files/dll/modeseldll.rel + + symbols: config/GMPJ01_00/rels/modeseldll/symbols.txt + splits: config/GMPJ01_00/rels/modeseldll/splits.txt + links: [] + - object: files/dll/mpexDll.rel + + symbols: config/GMPJ01_00/rels/mpexDll/symbols.txt + splits: config/GMPJ01_00/rels/mpexDll/splits.txt + links: [] + - object: files/dll/msetupDll.rel + + symbols: config/GMPJ01_00/rels/msetupDll/symbols.txt + splits: config/GMPJ01_00/rels/msetupDll/splits.txt + links: [] + - object: files/dll/mstory2Dll.rel + + symbols: config/GMPJ01_00/rels/mstory2Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory2Dll/splits.txt + links: [] + - object: files/dll/mstory3Dll.rel + + symbols: config/GMPJ01_00/rels/mstory3Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory3Dll/splits.txt + links: [] + - object: files/dll/mstory4Dll.rel + + symbols: config/GMPJ01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory4Dll/splits.txt + links: [] + - object: files/dll/mstoryDll.rel + + symbols: config/GMPJ01_00/rels/mstoryDll/symbols.txt + splits: config/GMPJ01_00/rels/mstoryDll/splits.txt + links: [] + - object: files/dll/nisDll.rel + + symbols: config/GMPE01_00/rels/nisDll/symbols.txt + splits: config/GMPE01_00/rels/nisDll/splits.txt + links: [] + - object: files/dll/option.rel + + symbols: config/GMPJ01_00/rels/option/symbols.txt + splits: config/GMPJ01_00/rels/option/splits.txt + links: [] + - object: files/dll/present.rel + + symbols: config/GMPE01_00/rels/present/symbols.txt + splits: config/GMPE01_00/rels/present/splits.txt + links: [] + - object: files/dll/resultDll.rel + + symbols: config/GMPE01_00/rels/resultDll/symbols.txt + splits: config/GMPE01_00/rels/resultDll/splits.txt + links: [] + - object: files/dll/safDll.rel + + symbols: config/GMPJ01_00/rels/safDll/symbols.txt + splits: config/GMPJ01_00/rels/safDll/splits.txt + links: [] + - object: files/dll/selmenuDll.rel + + symbols: config/GMPJ01_00/rels/selmenuDll/symbols.txt + splits: config/GMPJ01_00/rels/selmenuDll/splits.txt + links: [] + - object: files/dll/staffDll.rel + + symbols: config/GMPJ01_00/rels/staffDll/symbols.txt + splits: config/GMPJ01_00/rels/staffDll/splits.txt + links: [] + - object: files/dll/subchrselDll.rel + + symbols: config/GMPJ01_00/rels/subchrselDll/symbols.txt + splits: config/GMPJ01_00/rels/subchrselDll/splits.txt + links: [] + - object: files/dll/w01Dll.rel + + symbols: config/GMPE01_00/rels/w01Dll/symbols.txt + splits: config/GMPE01_00/rels/w01Dll/splits.txt + links: [] + - object: files/dll/w02Dll.rel + + symbols: config/GMPE01_00/rels/w02Dll/symbols.txt + splits: config/GMPE01_00/rels/w02Dll/splits.txt + links: [] + - object: files/dll/w03Dll.rel + + symbols: config/GMPE01_00/rels/w03Dll/symbols.txt + splits: config/GMPE01_00/rels/w03Dll/splits.txt + links: [] + - object: files/dll/w04Dll.rel + + symbols: config/GMPJ01_00/rels/w04Dll/symbols.txt + splits: config/GMPJ01_00/rels/w04Dll/splits.txt + links: [] + - object: files/dll/w05Dll.rel + + symbols: config/GMPE01_00/rels/w05Dll/symbols.txt + splits: config/GMPE01_00/rels/w05Dll/splits.txt + links: [] + - object: files/dll/w06Dll.rel + + symbols: config/GMPE01_00/rels/w06Dll/symbols.txt + splits: config/GMPE01_00/rels/w06Dll/splits.txt + links: [] + - object: files/dll/w10Dll.rel + + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt + links: [] + - object: files/dll/w20Dll.rel + + symbols: config/GMPE01_00/rels/w20Dll/symbols.txt + splits: config/GMPE01_00/rels/w20Dll/splits.txt + links: [] + - object: files/dll/w21Dll.rel + + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt + links: [] + - object: files/dll/ztardll.rel + + symbols: config/GMPJ01_00/rels/ztardll/symbols.txt + splits: config/GMPJ01_00/rels/ztardll/splits.txt + links: [] + - object: files/dll/E3setupDLL.rel + + symbols: config/GMPJ01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPJ01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] + - object: files/dll/m300Dll.rel + + symbols: config/GMPJ01_00/rels/m300Dll/symbols.txt + splits: config/GMPJ01_00/rels/m300Dll/splits.txt + links: [_minigameDll] + - object: files/dll/m401Dll.rel + + symbols: config/GMPE01_00/rels/m401Dll/symbols.txt + splits: config/GMPE01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_jp + binary: coveropen_jp.bin + header: coveropen_jp.inc +- symbol: fatalerror_jp + binary: fatalerror_jp.bin + header: fatalerror_jp.inc +- symbol: loading_jp + binary: loading_jp.bin + header: loading_jp.inc +- symbol: nodisc_jp + binary: nodisc_jp.bin + header: nodisc_jp.inc +- symbol: retryerror_jp + binary: retryerror_jp.bin + header: retryerror_jp.inc +- symbol: wrongdisc_jp + binary: wrongdisc_jp.bin + header: wrongdisc_jp.inc diff --git a/config/GMPJ01_00/rels/E3setupDLL/splits.txt b/config/GMPJ01_00/rels/E3setupDLL/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/E3setupDLL/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/E3setupDLL/symbols.txt b/config/GMPJ01_00/rels/E3setupDLL/symbols.txt new file mode 100644 index 00000000..382731fd --- /dev/null +++ b/config/GMPJ01_00/rels/E3setupDLL/symbols.txt @@ -0,0 +1,192 @@ +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 +_prolog = .text:0x0000133C; // type:function size:0x54 scope:global +_epilog = .text:0x00001390; // type:function size:0x4C scope:global +fn_2_13DC = .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 +_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 +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +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_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 +lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 +lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD +lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 +lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD +lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 +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_478 = .data:0x00000478; // type:object size:0x24 +lbl_2_data_49C = .data:0x0000049C; // type:object size:0x34 +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 +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_36 = .bss:0x00000036; // 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 +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +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 +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 +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 diff --git a/config/GMPJ01_00/rels/bootDll/splits.txt b/config/GMPJ01_00/rels/bootDll/splits.txt new file mode 100644 index 00000000..bc4e958f --- /dev/null +++ b/config/GMPJ01_00/rels/bootDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:32 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/bootDll/symbols.txt b/config/GMPJ01_00/rels/bootDll/symbols.txt new file mode 100644 index 00000000..a27cc9e1 --- /dev/null +++ b/config/GMPJ01_00/rels/bootDll/symbols.txt @@ -0,0 +1,67 @@ +_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:0x1CC +fn_1_26C = .text:0x0000026C; // type:function size:0x78C +fn_1_9F8 = .text:0x000009F8; // type:function size:0xC8 +fn_1_AC0 = .text:0x00000AC0; // type:function size:0x6B8 +fn_1_1178 = .text:0x00001178; // type:function size:0x3B4 +fn_1_152C = .text:0x0000152C; // type:function size:0xBD4 +fn_1_2100 = .text:0x00002100; // type:function size:0x374 +fn_1_2474 = .text:0x00002474; // type:function size:0x4D0 +fn_1_2944 = .text:0x00002944; // type:function size:0x84 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string +lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 data:2byte +lbl_1_data_50 = .data:0x00000050; // type:object size:0x8 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x4 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A data:string +lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 data:string +lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x307D +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x6 +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x6 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0xE data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x18 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/instDll/splits.txt b/config/GMPJ01_00/rels/instDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/instDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/instDll/symbols.txt b/config/GMPJ01_00/rels/instDll/symbols.txt new file mode 100644 index 00000000..1013d7c3 --- /dev/null +++ b/config/GMPJ01_00/rels/instDll/symbols.txt @@ -0,0 +1,149 @@ +_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 +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 +fn_1_2804 = .text:0x00002804; // type:function size:0x79C +fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 +fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 +fn_1_4528 = .text:0x00004528; // type:function size:0xB88 +fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 +fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 +fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x47C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string +lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 +lbl_1_data_46 = .data:0x00000046; // type:object size:0xA +lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 data:string +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 data:float +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:float +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4C8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +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:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/m300Dll/splits.txt b/config/GMPJ01_00/rels/m300Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m300Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m300Dll/symbols.txt b/config/GMPJ01_00/rels/m300Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m300Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m302Dll/splits.txt b/config/GMPJ01_00/rels/m302Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m302Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m302Dll/symbols.txt b/config/GMPJ01_00/rels/m302Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m302Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m303Dll/splits.txt b/config/GMPJ01_00/rels/m303Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m303Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m303Dll/symbols.txt b/config/GMPJ01_00/rels/m303Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m303Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m330Dll/splits.txt b/config/GMPJ01_00/rels/m330Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m330Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m330Dll/symbols.txt b/config/GMPJ01_00/rels/m330Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m330Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m333Dll/splits.txt b/config/GMPJ01_00/rels/m333Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m333Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m333Dll/symbols.txt b/config/GMPJ01_00/rels/m333Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m333Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m413Dll/splits.txt b/config/GMPJ01_00/rels/m413Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m413Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m413Dll/symbols.txt b/config/GMPJ01_00/rels/m413Dll/symbols.txt new file mode 100644 index 00000000..019fba8d --- /dev/null +++ b/config/GMPJ01_00/rels/m413Dll/symbols.txt @@ -0,0 +1,210 @@ +_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:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0x134 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xBC +fn_1_57C = .text:0x0000057C; // type:function size:0x154 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x128 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x6C8 +fn_1_EC0 = .text:0x00000EC0; // type:function size:0x1F8 +fn_1_10B8 = .text:0x000010B8; // type:function size:0x90C +fn_1_19C4 = .text:0x000019C4; // type:function size:0x4 +fn_1_19C8 = .text:0x000019C8; // type:function size:0x38DC +fn_1_52A4 = .text:0x000052A4; // type:function size:0x3824 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x148 +fn_1_8C10 = .text:0x00008C10; // type:function size:0x192C +fn_1_A53C = .text:0x0000A53C; // type:function size:0x1188 +fn_1_B6C4 = .text:0x0000B6C4; // type:function size:0x101C +fn_1_C6E0 = .text:0x0000C6E0; // type:function size:0x4D4 +fn_1_CBB4 = .text:0x0000CBB4; // type:function size:0x78C +fn_1_D340 = .text:0x0000D340; // type:function size:0x60 +fn_1_D3A0 = .text:0x0000D3A0; // type:function size:0x360 +fn_1_D700 = .text:0x0000D700; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:4byte +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C data:4byte +lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 data:double +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 data:float +lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 data:float +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 data:double +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 data:float +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 data:double +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 data:float +lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 data:float +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 data:double +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 data:float +lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 data:float +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC data:byte +lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 data:4byte +lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 data:byte +lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 data:4byte +lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 data:byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 data:4byte +lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x2C data:4byte +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x70 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x18 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x28 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2580 +lbl_1_bss_2680 = .bss:0x00002680; // type:object size:0x4 data:4byte +lbl_1_bss_2684 = .bss:0x00002684; // type:object size:0x3E8 +lbl_1_bss_2A6C = .bss:0x00002A6C; // type:object size:0x4E18 +lbl_1_bss_7884 = .bss:0x00007884; // type:object size:0x30 diff --git a/config/GMPJ01_00/rels/m418Dll/splits.txt b/config/GMPJ01_00/rels/m418Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m418Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m418Dll/symbols.txt b/config/GMPJ01_00/rels/m418Dll/symbols.txt new file mode 100644 index 00000000..f4b66ec8 --- /dev/null +++ b/config/GMPJ01_00/rels/m418Dll/symbols.txt @@ -0,0 +1,303 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x74 +fn_1_74 = .text:0x00000074; // type:function size:0xE4 +fn_1_158 = .text:0x00000158; // type:function size:0x28 +fn_1_180 = .text:0x00000180; // type:function size:0xC8 +fn_1_248 = .text:0x00000248; // type:function size:0x20 +fn_1_268 = .text:0x00000268; // type:function size:0x298 +fn_1_500 = .text:0x00000500; // type:function size:0x118 +fn_1_618 = .text:0x00000618; // type:function size:0xC4 +fn_1_6DC = .text:0x000006DC; // type:function size:0x38 +fn_1_714 = .text:0x00000714; // type:function size:0x34 +fn_1_748 = .text:0x00000748; // type:function size:0x38 +fn_1_780 = .text:0x00000780; // type:function size:0x1D0 +fn_1_950 = .text:0x00000950; // type:function size:0x48 +fn_1_998 = .text:0x00000998; // type:function size:0x110 +fn_1_AA8 = .text:0x00000AA8; // type:function size:0xA4 +fn_1_B4C = .text:0x00000B4C; // type:function size:0x328 +fn_1_E74 = .text:0x00000E74; // type:function size:0x67C +fn_1_14F0 = .text:0x000014F0; // type:function size:0x3BC +fn_1_18AC = .text:0x000018AC; // type:function size:0x50 +fn_1_18FC = .text:0x000018FC; // type:function size:0x7B4 +fn_1_20B0 = .text:0x000020B0; // type:function size:0xC8 +fn_1_2178 = .text:0x00002178; // type:function size:0x71C +fn_1_2894 = .text:0x00002894; // type:function size:0x10C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x224 +fn_1_2BC4 = .text:0x00002BC4; // type:function size:0x48 +fn_1_2C0C = .text:0x00002C0C; // type:function size:0x448 +fn_1_3054 = .text:0x00003054; // type:function size:0xE4 +fn_1_3138 = .text:0x00003138; // type:function size:0x108 +fn_1_3240 = .text:0x00003240; // type:function size:0x1C8 +fn_1_3408 = .text:0x00003408; // type:function size:0x3C +fn_1_3444 = .text:0x00003444; // type:function size:0xA6C +fn_1_3EB0 = .text:0x00003EB0; // type:function size:0x814 +fn_1_46C4 = .text:0x000046C4; // type:function size:0x5C0 +fn_1_4C84 = .text:0x00004C84; // type:function size:0x2DC +fn_1_4F60 = .text:0x00004F60; // type:function size:0x3F8 +fn_1_5358 = .text:0x00005358; // type:function size:0xE4 +fn_1_543C = .text:0x0000543C; // type:function size:0x150 +fn_1_558C = .text:0x0000558C; // type:function size:0x120 +fn_1_56AC = .text:0x000056AC; // type:function size:0xBC +fn_1_5768 = .text:0x00005768; // type:function size:0x7C +fn_1_57E4 = .text:0x000057E4; // type:function size:0x18C +fn_1_5970 = .text:0x00005970; // type:function size:0xFC +fn_1_5A6C = .text:0x00005A6C; // type:function size:0x2BC +fn_1_5D28 = .text:0x00005D28; // type:function size:0x30 +fn_1_5D58 = .text:0x00005D58; // type:function size:0x98 +fn_1_5DF0 = .text:0x00005DF0; // type:function size:0x248 +fn_1_6038 = .text:0x00006038; // type:function size:0x2DC +fn_1_6314 = .text:0x00006314; // type:function size:0xE4 +fn_1_63F8 = .text:0x000063F8; // type:function size:0x118 +fn_1_6510 = .text:0x00006510; // type:function size:0x108 +fn_1_6618 = .text:0x00006618; // type:function size:0x128 +fn_1_6740 = .text:0x00006740; // type:function size:0xC8 +fn_1_6808 = .text:0x00006808; // type:function size:0x10C +fn_1_6914 = .text:0x00006914; // type:function size:0x4B8 +fn_1_6DCC = .text:0x00006DCC; // type:function size:0xA0 +fn_1_6E6C = .text:0x00006E6C; // type:function size:0x48 +fn_1_6EB4 = .text:0x00006EB4; // type:function size:0x84 +fn_1_6F38 = .text:0x00006F38; // type:function size:0x35C +fn_1_7294 = .text:0x00007294; // type:function size:0x4 +fn_1_7298 = .text:0x00007298; // type:function size:0x2D8 +fn_1_7570 = .text:0x00007570; // type:function size:0x74 +fn_1_75E4 = .text:0x000075E4; // type:function size:0x214 +fn_1_77F8 = .text:0x000077F8; // type:function size:0x68 +fn_1_7860 = .text:0x00007860; // type:function size:0x208 +fn_1_7A68 = .text:0x00007A68; // type:function size:0x100 +fn_1_7B68 = .text:0x00007B68; // type:function size:0x218 +fn_1_7D80 = .text:0x00007D80; // type:function size:0xA4 +fn_1_7E24 = .text:0x00007E24; // type:function size:0xF8 +fn_1_7F1C = .text:0x00007F1C; // type:function size:0xB8 +fn_1_7FD4 = .text:0x00007FD4; // type:function size:0x1CC +fn_1_81A0 = .text:0x000081A0; // type:function size:0x4 +fn_1_81A4 = .text:0x000081A4; // type:function size:0x2DC +fn_1_8480 = .text:0x00008480; // type:function size:0x30 +fn_1_84B0 = .text:0x000084B0; // type:function size:0x98 +fn_1_8548 = .text:0x00008548; // type:function size:0x120 +fn_1_8668 = .text:0x00008668; // type:function size:0xC0 +fn_1_8728 = .text:0x00008728; // type:function size:0xA8 +fn_1_87D0 = .text:0x000087D0; // type:function size:0xBC +fn_1_888C = .text:0x0000888C; // type:function size:0x28 +fn_1_88B4 = .text:0x000088B4; // type:function size:0xFC +fn_1_89B0 = .text:0x000089B0; // type:function size:0x164 +fn_1_8B14 = .text:0x00008B14; // type:function size:0x170 +fn_1_8C84 = .text:0x00008C84; // type:function size:0xEC +fn_1_8D70 = .text:0x00008D70; // type:function size:0x204 +fn_1_8F74 = .text:0x00008F74; // type:function size:0x120 +fn_1_9094 = .text:0x00009094; // type:function size:0x48 +fn_1_90DC = .text:0x000090DC; // type:function size:0x64 +fn_1_9140 = .text:0x00009140; // type:function size:0xA4 +fn_1_91E4 = .text:0x000091E4; // type:function size:0x108 +fn_1_92EC = .text:0x000092EC; // type:function size:0x48 +fn_1_9334 = .text:0x00009334; // type:function size:0x30 +fn_1_9364 = .text:0x00009364; // type:function size:0x98 +fn_1_93FC = .text:0x000093FC; // type:function size:0x130 +fn_1_952C = .text:0x0000952C; // type:function size:0x60 +fn_1_958C = .text:0x0000958C; // type:function size:0x618 +fn_1_9BA4 = .text:0x00009BA4; // type:function size:0x3F0 +fn_1_9F94 = .text:0x00009F94; // type:function size:0x1BC +_prolog = .text:0x0000A150; // type:function size:0x54 scope:global +_epilog = .text:0x0000A1A4; // type:function size:0x4C scope:global +fn_1_A1F0 = .text:0x0000A1F0; // type:function size:0x398 +fn_1_A588 = .text:0x0000A588; // type:function size:0x398 +fn_1_A920 = .text:0x0000A920; // type:function size:0x20 +fn_1_A940 = .text:0x0000A940; // type:function size:0x28 +fn_1_A968 = .text:0x0000A968; // type:function size:0xC8 +fn_1_AA30 = .text:0x0000AA30; // type:function size:0xBC +fn_1_AAEC = .text:0x0000AAEC; // type:function size:0xD8 +fn_1_ABC4 = .text:0x0000ABC4; // type:function size:0x150 +fn_1_AD14 = .text:0x0000AD14; // type:function size:0x178 +fn_1_AE8C = .text:0x0000AE8C; // type:function size:0x50 +fn_1_AEDC = .text:0x0000AEDC; // type:function size:0x5C +fn_1_AF38 = .text:0x0000AF38; // type:function size:0x88 +fn_1_AFC0 = .text:0x0000AFC0; // type:function size:0x74 +fn_1_B034 = .text:0x0000B034; // type:function size:0x94 +fn_1_B0C8 = .text:0x0000B0C8; // type:function size:0x3C +fn_1_B104 = .text:0x0000B104; // type:function size:0x318 +fn_1_B41C = .text:0x0000B41C; // type:function size:0x3C +fn_1_B458 = .text:0x0000B458; // type:function size:0x4C +fn_1_B4A4 = .text:0x0000B4A4; // type:function size:0x26C +fn_1_B710 = .text:0x0000B710; // type:function size:0x26C +fn_1_B97C = .text:0x0000B97C; // type:function size:0x27C +fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x2B4 +fn_1_BEAC = .text:0x0000BEAC; // type:function size:0x46C +fn_1_C318 = .text:0x0000C318; // type:function size:0x454 +fn_1_C76C = .text:0x0000C76C; // type:function size:0x48C +fn_1_CBF8 = .text:0x0000CBF8; // type:function size:0x658 +fn_1_D250 = .text:0x0000D250; // type:function size:0x4C4 +fn_1_D714 = .text:0x0000D714; // type:function size:0x4FC +fn_1_DC10 = .text:0x0000DC10; // type:function size:0x6C8 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte +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:0x8 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte +jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x24 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x60 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x30 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x84 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x30 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x48 +lbl_1_data_444 = .data:0x00000444; // type:object size:0x60 +jumptable_1_data_4A4 = .data:0x000004A4; // type:object size:0x28 scope:local +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:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xB4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x54 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x70 +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x14 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4C data:4byte +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x2C data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x180 +lbl_1_bss_3EC = .bss:0x000003EC; // type:object size:0x44 data:4byte diff --git a/config/GMPJ01_00/rels/m419Dll/splits.txt b/config/GMPJ01_00/rels/m419Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m419Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m419Dll/symbols.txt b/config/GMPJ01_00/rels/m419Dll/symbols.txt new file mode 100644 index 00000000..7b1b3da9 --- /dev/null +++ b/config/GMPJ01_00/rels/m419Dll/symbols.txt @@ -0,0 +1,184 @@ +_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:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xDC +fn_1_57C = .text:0x0000057C; // type:function size:0x2CC +fn_1_848 = .text:0x00000848; // type:function size:0x288 +fn_1_AD0 = .text:0x00000AD0; // type:function size:0x488 +fn_1_F58 = .text:0x00000F58; // type:function size:0x102C +fn_1_1F84 = .text:0x00001F84; // type:function size:0x128 +fn_1_20AC = .text:0x000020AC; // type:function size:0x128 +fn_1_21D4 = .text:0x000021D4; // type:function size:0x80 +fn_1_2254 = .text:0x00002254; // type:function size:0x4F0 +fn_1_2744 = .text:0x00002744; // type:function size:0x498 +fn_1_2BDC = .text:0x00002BDC; // type:function size:0x220 +fn_1_2DFC = .text:0x00002DFC; // type:function size:0x4FC +fn_1_32F8 = .text:0x000032F8; // type:function size:0x154 +fn_1_344C = .text:0x0000344C; // type:function size:0x1398 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x33C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x334 +fn_1_4E54 = .text:0x00004E54; // type:function size:0xB8 +fn_1_4F0C = .text:0x00004F0C; // type:function size:0xC0 +fn_1_4FCC = .text:0x00004FCC; // type:function size:0x6C +fn_1_5038 = .text:0x00005038; // type:function size:0x6C +fn_1_50A4 = .text:0x000050A4; // type:function size:0x244 +fn_1_52E8 = .text:0x000052E8; // type:function size:0x570 +fn_1_5858 = .text:0x00005858; // type:function size:0x104 +fn_1_595C = .text:0x0000595C; // type:function size:0x17C +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x45C +fn_1_5F34 = .text:0x00005F34; // type:function size:0x358 +fn_1_628C = .text:0x0000628C; // type:function size:0x334 +fn_1_65C0 = .text:0x000065C0; // type:function size:0x1E0 +fn_1_67A0 = .text:0x000067A0; // type:function size:0x564 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x198 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xA18 +fn_1_78B4 = .text:0x000078B4; // type:function size:0x223C +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x130C +fn_1_ADFC = .text:0x0000ADFC; // type:function size:0x258 +fn_1_B054 = .text:0x0000B054; // type:function size:0x2E78 +fn_1_DECC = .text:0x0000DECC; // type:function size:0x70 +fn_1_DF3C = .text:0x0000DF3C; // type:function size:0x5C +fn_1_DF98 = .text:0x0000DF98; // type:function size:0x17A4 +fn_1_F73C = .text:0x0000F73C; // type:function size:0x280 +fn_1_F9BC = .text:0x0000F9BC; // type:function size:0x89C +fn_1_10258 = .text:0x00010258; // type:function size:0x248 +fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 +fn_1_10500 = .text:0x00010500; // type:function size:0x3E0 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x20 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0xC data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0xC data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0xB8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x10 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x58 data:2byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x18 data:2byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x380 +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x10 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x10 +lbl_1_bss_5A4 = .bss:0x000005A4; // type:object size:0x4 data:4byte +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0x4 data:4byte +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x4 data:4byte +lbl_1_bss_5B0 = .bss:0x000005B0; // type:object size:0x4 data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x2 data:2byte +lbl_1_bss_5BA = .bss:0x000005BA; // type:object size:0x2 data:2byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x2 data:2byte +lbl_1_bss_5BE = .bss:0x000005BE; // type:object size:0x2 data:2byte +lbl_1_bss_5C2 = .bss:0x000005C2; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m422Dll/splits.txt b/config/GMPJ01_00/rels/m422Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m422Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m422Dll/symbols.txt b/config/GMPJ01_00/rels/m422Dll/symbols.txt new file mode 100644 index 00000000..804db144 --- /dev/null +++ b/config/GMPJ01_00/rels/m422Dll/symbols.txt @@ -0,0 +1,249 @@ +_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:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x31C0 +fn_1_34BC = .text:0x000034BC; // type:function size:0x6B8 +fn_1_3B74 = .text:0x00003B74; // type:function size:0x4E6C +fn_1_89E0 = .text:0x000089E0; // type:function size:0xA30 +fn_1_9410 = .text:0x00009410; // type:function size:0x4F0 +fn_1_9900 = .text:0x00009900; // type:function size:0x134C +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x3B8 +fn_1_B004 = .text:0x0000B004; // type:function size:0x54 +fn_1_B058 = .text:0x0000B058; // type:function size:0x428 +fn_1_B480 = .text:0x0000B480; // type:function size:0xAC +_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:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x1 data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 +lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C +lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte +lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xB0 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 diff --git a/config/GMPJ01_00/rels/m423Dll/splits.txt b/config/GMPJ01_00/rels/m423Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m423Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m423Dll/symbols.txt b/config/GMPJ01_00/rels/m423Dll/symbols.txt new file mode 100644 index 00000000..5450a16f --- /dev/null +++ b/config/GMPJ01_00/rels/m423Dll/symbols.txt @@ -0,0 +1,367 @@ +_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:0x278 +fn_1_318 = .text:0x00000318; // type:function size:0x98 +fn_1_3B0 = .text:0x000003B0; // type:function size:0xA4C +fn_1_DFC = .text:0x00000DFC; // type:function size:0x64 +fn_1_E60 = .text:0x00000E60; // type:function size:0xA0 +fn_1_F00 = .text:0x00000F00; // type:function size:0x10 +fn_1_F10 = .text:0x00000F10; // type:function size:0x50 +fn_1_F60 = .text:0x00000F60; // type:function size:0x244 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x34 +fn_1_11D8 = .text:0x000011D8; // type:function size:0x60 +fn_1_1238 = .text:0x00001238; // type:function size:0x68 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x100 +fn_1_13A0 = .text:0x000013A0; // type:function size:0xA4 +fn_1_1444 = .text:0x00001444; // type:function size:0x5C +fn_1_14A0 = .text:0x000014A0; // type:function size:0x45C +fn_1_18FC = .text:0x000018FC; // type:function size:0x260 +fn_1_1B5C = .text:0x00001B5C; // type:function size:0x400 +fn_1_1F5C = .text:0x00001F5C; // type:function size:0x334 +fn_1_2290 = .text:0x00002290; // type:function size:0x394 +fn_1_2624 = .text:0x00002624; // type:function size:0x394 +fn_1_29B8 = .text:0x000029B8; // type:function size:0x4 +fn_1_29BC = .text:0x000029BC; // type:function size:0x24C +fn_1_2C08 = .text:0x00002C08; // type:function size:0x8D0 +fn_1_34D8 = .text:0x000034D8; // type:function size:0x50 +fn_1_3528 = .text:0x00003528; // type:function size:0x370 +fn_1_3898 = .text:0x00003898; // type:function size:0x1C0 +fn_1_3A58 = .text:0x00003A58; // type:function size:0xC +fn_1_3A64 = .text:0x00003A64; // type:function size:0x28 +fn_1_3A8C = .text:0x00003A8C; // type:function size:0x170 +fn_1_3BFC = .text:0x00003BFC; // type:function size:0x3E4 +fn_1_3FE0 = .text:0x00003FE0; // type:function size:0x798 +fn_1_4778 = .text:0x00004778; // type:function size:0x15A0 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x1AAC +fn_1_77C4 = .text:0x000077C4; // type:function size:0xC +fn_1_77D0 = .text:0x000077D0; // type:function size:0x4C +fn_1_781C = .text:0x0000781C; // type:function size:0x100 +fn_1_791C = .text:0x0000791C; // type:function size:0x18C +fn_1_7AA8 = .text:0x00007AA8; // type:function size:0xA0 +fn_1_7B48 = .text:0x00007B48; // type:function size:0x780 +fn_1_82C8 = .text:0x000082C8; // type:function size:0x70 +fn_1_8338 = .text:0x00008338; // type:function size:0x97C +fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x910 +fn_1_95C4 = .text:0x000095C4; // type:function size:0x50 +fn_1_9614 = .text:0x00009614; // type:function size:0x28C +fn_1_98A0 = .text:0x000098A0; // type:function size:0x1100 +fn_1_A9A0 = .text:0x0000A9A0; // type:function size:0xC +fn_1_A9AC = .text:0x0000A9AC; // type:function size:0x28 +fn_1_A9D4 = .text:0x0000A9D4; // type:function size:0x238 +fn_1_AC0C = .text:0x0000AC0C; // type:function size:0x74 +fn_1_AC80 = .text:0x0000AC80; // type:function size:0x1E4 +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x84 +fn_1_AEE8 = .text:0x0000AEE8; // type:function size:0x254 +fn_1_B13C = .text:0x0000B13C; // type:function size:0x68 +fn_1_B1A4 = .text:0x0000B1A4; // type:function size:0x160 +fn_1_B304 = .text:0x0000B304; // type:function size:0x12C +fn_1_B430 = .text:0x0000B430; // type:function size:0x8A8 +fn_1_BCD8 = .text:0x0000BCD8; // type:function size:0x7C0 +fn_1_C498 = .text:0x0000C498; // type:function size:0x1498 +fn_1_D930 = .text:0x0000D930; // type:function size:0x108 +fn_1_DA38 = .text:0x0000DA38; // type:function size:0x190 +fn_1_DBC8 = .text:0x0000DBC8; // type:function size:0x5C +fn_1_DC24 = .text:0x0000DC24; // type:function size:0x14C +fn_1_DD70 = .text:0x0000DD70; // type:function size:0x44C +fn_1_E1BC = .text:0x0000E1BC; // type:function size:0xD4 +fn_1_E290 = .text:0x0000E290; // type:function size:0xA0 +fn_1_E330 = .text:0x0000E330; // type:function size:0x4 +fn_1_E334 = .text:0x0000E334; // type:function size:0x12C +fn_1_E460 = .text:0x0000E460; // type:function size:0x8C +fn_1_E4EC = .text:0x0000E4EC; // type:function size:0x120 +fn_1_E60C = .text:0x0000E60C; // type:function size:0x6C +fn_1_E678 = .text:0x0000E678; // type:function size:0x8CC +fn_1_EF44 = .text:0x0000EF44; // type:function size:0x630 +fn_1_F574 = .text:0x0000F574; // type:function size:0x11C +fn_1_F690 = .text:0x0000F690; // type:function size:0x50 +fn_1_F6E0 = .text:0x0000F6E0; // type:function size:0x360 +fn_1_FA40 = .text:0x0000FA40; // type:function size:0x4D0 +fn_1_FF10 = .text:0x0000FF10; // type:function size:0x88 +fn_1_FF98 = .text:0x0000FF98; // type:function size:0x90 +fn_1_10028 = .text:0x00010028; // type:function size:0xB4 +fn_1_100DC = .text:0x000100DC; // type:function size:0x3A4 +fn_1_10480 = .text:0x00010480; // type:function size:0xAC +fn_1_1052C = .text:0x0001052C; // type:function size:0x4 +fn_1_10530 = .text:0x00010530; // type:function size:0x10 +fn_1_10540 = .text:0x00010540; // type:function size:0x198 +fn_1_106D8 = .text:0x000106D8; // type:function size:0x4F0 +fn_1_10BC8 = .text:0x00010BC8; // type:function size:0x440 +fn_1_11008 = .text:0x00011008; // type:function size:0x10C +fn_1_11114 = .text:0x00011114; // type:function size:0x4B0 +fn_1_115C4 = .text:0x000115C4; // type:function size:0x33C +fn_1_11900 = .text:0x00011900; // type:function size:0x8DC +fn_1_121DC = .text:0x000121DC; // type:function size:0x118 +fn_1_122F4 = .text:0x000122F4; // type:function size:0x250 +fn_1_12544 = .text:0x00012544; // type:function size:0x3F8 +fn_1_1293C = .text:0x0001293C; // type:function size:0xB4 +fn_1_129F0 = .text:0x000129F0; // type:function size:0x27C +fn_1_12C6C = .text:0x00012C6C; // type:function size:0x100 +fn_1_12D6C = .text:0x00012D6C; // type:function size:0xFC +fn_1_12E68 = .text:0x00012E68; // type:function size:0x4E4 +fn_1_1334C = .text:0x0001334C; // type:function size:0x330 +fn_1_1367C = .text:0x0001367C; // type:function size:0x148 +fn_1_137C4 = .text:0x000137C4; // type:function size:0x78C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x1 data:byte +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 +lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 +jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x1 data:byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x1 data:byte +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x1 data:byte +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x5 data:byte +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC +lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 +lbl_1_data_574 = .data:0x00000574; // type:object size:0xC +lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local +lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local +lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 +lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 +lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 +jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x3C data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +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:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x10 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x10 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m424Dll/splits.txt b/config/GMPJ01_00/rels/m424Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m424Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m424Dll/symbols.txt b/config/GMPJ01_00/rels/m424Dll/symbols.txt new file mode 100644 index 00000000..cd7eab29 --- /dev/null +++ b/config/GMPJ01_00/rels/m424Dll/symbols.txt @@ -0,0 +1,315 @@ +_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:0x1C4 +fn_1_264 = .text:0x00000264; // type:function size:0x1B8 +fn_1_41C = .text:0x0000041C; // type:function size:0xAC4 +fn_1_EE0 = .text:0x00000EE0; // type:function size:0x60 +fn_1_F40 = .text:0x00000F40; // type:function size:0xA0 +fn_1_FE0 = .text:0x00000FE0; // type:function size:0x10 +fn_1_FF0 = .text:0x00000FF0; // type:function size:0x1FC +fn_1_11EC = .text:0x000011EC; // type:function size:0x4 +fn_1_11F0 = .text:0x000011F0; // type:function size:0x4 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x10 +fn_1_1204 = .text:0x00001204; // type:function size:0x154 +fn_1_1358 = .text:0x00001358; // type:function size:0x118 +fn_1_1470 = .text:0x00001470; // type:function size:0x250 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x3F8 +fn_1_1AB8 = .text:0x00001AB8; // type:function size:0xD4 +fn_1_1B8C = .text:0x00001B8C; // type:function size:0x2C +fn_1_1BB8 = .text:0x00001BB8; // type:function size:0x264 +fn_1_1E1C = .text:0x00001E1C; // type:function size:0x314 +fn_1_2130 = .text:0x00002130; // type:function size:0xC +fn_1_213C = .text:0x0000213C; // type:function size:0x74 +fn_1_21B0 = .text:0x000021B0; // type:function size:0x70 +fn_1_2220 = .text:0x00002220; // type:function size:0x218 +fn_1_2438 = .text:0x00002438; // type:function size:0xF4 +fn_1_252C = .text:0x0000252C; // type:function size:0x94 +fn_1_25C0 = .text:0x000025C0; // type:function size:0xB0 +fn_1_2670 = .text:0x00002670; // type:function size:0xB0 +fn_1_2720 = .text:0x00002720; // type:function size:0x160 +fn_1_2880 = .text:0x00002880; // type:function size:0x20 +fn_1_28A0 = .text:0x000028A0; // type:function size:0x598 +fn_1_2E38 = .text:0x00002E38; // type:function size:0x4 +fn_1_2E3C = .text:0x00002E3C; // type:function size:0x384 +fn_1_31C0 = .text:0x000031C0; // type:function size:0x63C +fn_1_37FC = .text:0x000037FC; // type:function size:0xA24 +fn_1_4220 = .text:0x00004220; // type:function size:0x478 +fn_1_4698 = .text:0x00004698; // type:function size:0x4 +fn_1_469C = .text:0x0000469C; // type:function size:0x234 +fn_1_48D0 = .text:0x000048D0; // type:function size:0x1C0 +fn_1_4A90 = .text:0x00004A90; // type:function size:0x588 +fn_1_5018 = .text:0x00005018; // type:function size:0x1020 +fn_1_6038 = .text:0x00006038; // type:function size:0x40 +fn_1_6078 = .text:0x00006078; // type:function size:0xA0 +fn_1_6118 = .text:0x00006118; // type:function size:0x94 +fn_1_61AC = .text:0x000061AC; // type:function size:0x84 +fn_1_6230 = .text:0x00006230; // type:function size:0x4C +fn_1_627C = .text:0x0000627C; // type:function size:0x54 +fn_1_62D0 = .text:0x000062D0; // type:function size:0x13C +fn_1_640C = .text:0x0000640C; // type:function size:0x168 +fn_1_6574 = .text:0x00006574; // type:function size:0x120 +fn_1_6694 = .text:0x00006694; // type:function size:0x39C +fn_1_6A30 = .text:0x00006A30; // type:function size:0x2E0 +fn_1_6D10 = .text:0x00006D10; // type:function size:0x38C +fn_1_709C = .text:0x0000709C; // type:function size:0x384 +fn_1_7420 = .text:0x00007420; // type:function size:0x3A4 +fn_1_77C4 = .text:0x000077C4; // type:function size:0x238 +fn_1_79FC = .text:0x000079FC; // type:function size:0x2A4 +fn_1_7CA0 = .text:0x00007CA0; // type:function size:0x130 +fn_1_7DD0 = .text:0x00007DD0; // type:function size:0x198 +fn_1_7F68 = .text:0x00007F68; // type:function size:0xD8 +fn_1_8040 = .text:0x00008040; // type:function size:0xBC +fn_1_80FC = .text:0x000080FC; // type:function size:0x33C +fn_1_8438 = .text:0x00008438; // type:function size:0x4B0 +fn_1_88E8 = .text:0x000088E8; // type:function size:0x3C +fn_1_8924 = .text:0x00008924; // type:function size:0x2C +fn_1_8950 = .text:0x00008950; // type:function size:0x2C +fn_1_897C = .text:0x0000897C; // type:function size:0x2C +fn_1_89A8 = .text:0x000089A8; // type:function size:0x2C +fn_1_89D4 = .text:0x000089D4; // type:function size:0x2C +fn_1_8A00 = .text:0x00008A00; // type:function size:0x2C +fn_1_8A2C = .text:0x00008A2C; // type:function size:0x7C +fn_1_8AA8 = .text:0x00008AA8; // type:function size:0x1D0 +fn_1_8C78 = .text:0x00008C78; // type:function size:0x404 +fn_1_907C = .text:0x0000907C; // type:function size:0x374 +fn_1_93F0 = .text:0x000093F0; // type:function size:0xB4 +fn_1_94A4 = .text:0x000094A4; // type:function size:0x2C +fn_1_94D0 = .text:0x000094D0; // type:function size:0x594 +fn_1_9A64 = .text:0x00009A64; // type:function size:0x13F4 +fn_1_AE58 = .text:0x0000AE58; // type:function size:0xC +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x938 +fn_1_B79C = .text:0x0000B79C; // type:function size:0x68 +fn_1_B804 = .text:0x0000B804; // type:function size:0x84 +fn_1_B888 = .text:0x0000B888; // type:function size:0x24 +fn_1_B8AC = .text:0x0000B8AC; // type:function size:0x78 +fn_1_B924 = .text:0x0000B924; // type:function size:0x78 +fn_1_B99C = .text:0x0000B99C; // type:function size:0x44 +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x830 +fn_1_C210 = .text:0x0000C210; // type:function size:0xD0 +fn_1_C2E0 = .text:0x0000C2E0; // type:function size:0x324 +fn_1_C604 = .text:0x0000C604; // type:function size:0x250 +fn_1_C854 = .text:0x0000C854; // type:function size:0x24 +fn_1_C878 = .text:0x0000C878; // type:function size:0x124 +fn_1_C99C = .text:0x0000C99C; // type:function size:0x4D8 +fn_1_CE74 = .text:0x0000CE74; // type:function size:0x8C +fn_1_CF00 = .text:0x0000CF00; // type:function size:0x80 +fn_1_CF80 = .text:0x0000CF80; // type:function size:0x90 +fn_1_D010 = .text:0x0000D010; // type:function size:0x64 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x5C +jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:4byte +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x30 data:float +lbl_1_data_210 = .data:0x00000210; // type:object size:0xC data:float +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x8 +jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x534 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x18 +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x10 data:4byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x84 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m425Dll/splits.txt b/config/GMPJ01_00/rels/m425Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m425Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m425Dll/symbols.txt b/config/GMPJ01_00/rels/m425Dll/symbols.txt new file mode 100644 index 00000000..05f71975 --- /dev/null +++ b/config/GMPJ01_00/rels/m425Dll/symbols.txt @@ -0,0 +1,299 @@ +_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:0x3C0 +fn_1_460 = .text:0x00000460; // type:function size:0x20 +fn_1_480 = .text:0x00000480; // type:function size:0x464 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x664 +fn_1_F48 = .text:0x00000F48; // type:function size:0x60 +fn_1_FA8 = .text:0x00000FA8; // type:function size:0x524 +fn_1_14CC = .text:0x000014CC; // type:function size:0x120 +fn_1_15EC = .text:0x000015EC; // type:function size:0xC4 +fn_1_16B0 = .text:0x000016B0; // type:function size:0x490 +fn_1_1B40 = .text:0x00001B40; // type:function size:0xC44 +fn_1_2784 = .text:0x00002784; // type:function size:0xEC +fn_1_2870 = .text:0x00002870; // type:function size:0x224 +fn_1_2A94 = .text:0x00002A94; // type:function size:0x98 +fn_1_2B2C = .text:0x00002B2C; // type:function size:0x34C +fn_1_2E78 = .text:0x00002E78; // type:function size:0x568 +fn_1_33E0 = .text:0x000033E0; // type:function size:0x384 +fn_1_3764 = .text:0x00003764; // type:function size:0x76C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0xB0 +fn_1_3F80 = .text:0x00003F80; // type:function size:0xB08 +fn_1_4A88 = .text:0x00004A88; // type:function size:0x5BC +fn_1_5044 = .text:0x00005044; // type:function size:0x524 +fn_1_5568 = .text:0x00005568; // type:function size:0xA0 +fn_1_5608 = .text:0x00005608; // type:function size:0xA8 +fn_1_56B0 = .text:0x000056B0; // type:function size:0x8C +fn_1_573C = .text:0x0000573C; // type:function size:0x98 +fn_1_57D4 = .text:0x000057D4; // type:function size:0x44C +fn_1_5C20 = .text:0x00005C20; // type:function size:0x8B4 +fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 +fn_1_6528 = .text:0x00006528; // type:function size:0x78 +fn_1_65A0 = .text:0x000065A0; // type:function size:0x11C +fn_1_66BC = .text:0x000066BC; // type:function size:0x78 +fn_1_6734 = .text:0x00006734; // type:function size:0x2D8 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x1CC +fn_1_6BD8 = .text:0x00006BD8; // type:function size:0x30 +fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x12C +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xC8 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x69D8 +fn_1_D89C = .text:0x0000D89C; // type:function size:0x10 +fn_1_D8AC = .text:0x0000D8AC; // type:function size:0x10 +fn_1_D8BC = .text:0x0000D8BC; // type:function size:0x10 +fn_1_D8CC = .text:0x0000D8CC; // type:function size:0x10 +fn_1_D8DC = .text:0x0000D8DC; // type:function size:0xCC +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0x19C +fn_1_DB44 = .text:0x0000DB44; // type:function size:0x2F8 +fn_1_DE3C = .text:0x0000DE3C; // type:function size:0x3D4 +fn_1_E210 = .text:0x0000E210; // type:function size:0x704 +fn_1_E914 = .text:0x0000E914; // type:function size:0x18B0 +fn_1_101C4 = .text:0x000101C4; // type:function size:0x828 +fn_1_109EC = .text:0x000109EC; // type:function size:0x308 +fn_1_10CF4 = .text:0x00010CF4; // type:function size:0x60 +fn_1_10D54 = .text:0x00010D54; // type:function size:0x60 +fn_1_10DB4 = .text:0x00010DB4; // type:function size:0x88 +fn_1_10E3C = .text:0x00010E3C; // type:function size:0xBC +fn_1_10EF8 = .text:0x00010EF8; // type:function size:0x38C +fn_1_11284 = .text:0x00011284; // type:function size:0x78 +fn_1_112FC = .text:0x000112FC; // type:function size:0x11C +fn_1_11418 = .text:0x00011418; // type:function size:0x3C +fn_1_11454 = .text:0x00011454; // type:function size:0x180 +fn_1_115D4 = .text:0x000115D4; // type:function size:0x110 +fn_1_116E4 = .text:0x000116E4; // type:function size:0x390 +fn_1_11A74 = .text:0x00011A74; // type:function size:0x46C +fn_1_11EE0 = .text:0x00011EE0; // type:function size:0x7B4 +_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:0x10 data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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:0xC0 +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 +lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 +jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local +jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x20 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x1 data:byte +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x630 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x2 data:2byte +lbl_1_bss_642 = .bss:0x00000642; // type:object size:0x2 data:2byte +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x2 data:2byte +lbl_1_bss_646 = .bss:0x00000646; // type:object size:0x2 data:2byte +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0x2 data:2byte +lbl_1_bss_64C = .bss:0x0000064C; // type:object size:0x10 +lbl_1_bss_65C = .bss:0x0000065C; // type:object size:0x4 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x4 data:4byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x4 data:4byte +lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x8 data:4byte +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float +lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte +lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x4 data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x4 data:4byte +lbl_1_bss_6EC = .bss:0x000006EC; // type:object size:0x4 data:4byte +lbl_1_bss_6F0 = .bss:0x000006F0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m426Dll/splits.txt b/config/GMPJ01_00/rels/m426Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m426Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m426Dll/symbols.txt b/config/GMPJ01_00/rels/m426Dll/symbols.txt new file mode 100644 index 00000000..ade0fb6b --- /dev/null +++ b/config/GMPJ01_00/rels/m426Dll/symbols.txt @@ -0,0 +1,224 @@ +_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:0x16C +fn_1_20C = .text:0x0000020C; // type:function size:0x124 +fn_1_330 = .text:0x00000330; // type:function size:0xA88 +fn_1_DB8 = .text:0x00000DB8; // type:function size:0x60 +fn_1_E18 = .text:0x00000E18; // type:function size:0xA0 +fn_1_EB8 = .text:0x00000EB8; // type:function size:0x14C +fn_1_1004 = .text:0x00001004; // type:function size:0x178 +fn_1_117C = .text:0x0000117C; // type:function size:0x70 +fn_1_11EC = .text:0x000011EC; // type:function size:0x70 +fn_1_125C = .text:0x0000125C; // type:function size:0x49C +fn_1_16F8 = .text:0x000016F8; // type:function size:0x13D0 +fn_1_2AC8 = .text:0x00002AC8; // type:function size:0x14 +fn_1_2ADC = .text:0x00002ADC; // type:function size:0x98 +fn_1_2B74 = .text:0x00002B74; // type:function size:0x368 +fn_1_2EDC = .text:0x00002EDC; // type:function size:0x80 +fn_1_2F5C = .text:0x00002F5C; // type:function size:0x6F8 +fn_1_3654 = .text:0x00003654; // type:function size:0x70 +fn_1_36C4 = .text:0x000036C4; // type:function size:0x50 +fn_1_3714 = .text:0x00003714; // type:function size:0x7E8 +fn_1_3EFC = .text:0x00003EFC; // type:function size:0x700 +fn_1_45FC = .text:0x000045FC; // type:function size:0x48 +fn_1_4644 = .text:0x00004644; // type:function size:0x60 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x94 +fn_1_4738 = .text:0x00004738; // type:function size:0x15C +fn_1_4894 = .text:0x00004894; // type:function size:0x5C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x178 +fn_1_4A68 = .text:0x00004A68; // type:function size:0x8C +fn_1_4AF4 = .text:0x00004AF4; // type:function size:0x3D0 +fn_1_4EC4 = .text:0x00004EC4; // type:function size:0x50 +fn_1_4F14 = .text:0x00004F14; // type:function size:0x220 +fn_1_5134 = .text:0x00005134; // type:function size:0xA00 +fn_1_5B34 = .text:0x00005B34; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B48; // type:function size:0x40 +fn_1_5B88 = .text:0x00005B88; // type:function size:0xE4 +fn_1_5C6C = .text:0x00005C6C; // type:function size:0xD0 +fn_1_5D3C = .text:0x00005D3C; // type:function size:0x130 +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x50 +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x14C +fn_1_6008 = .text:0x00006008; // type:function size:0x178 +fn_1_6180 = .text:0x00006180; // type:function size:0x60 +fn_1_61E0 = .text:0x000061E0; // type:function size:0x68 +fn_1_6248 = .text:0x00006248; // type:function size:0xC8 +fn_1_6310 = .text:0x00006310; // type:function size:0xA8 +fn_1_63B8 = .text:0x000063B8; // type:function size:0x1DC +fn_1_6594 = .text:0x00006594; // type:function size:0x50 +fn_1_65E4 = .text:0x000065E4; // type:function size:0x120 +fn_1_6704 = .text:0x00006704; // type:function size:0x118 +fn_1_681C = .text:0x0000681C; // type:function size:0x28 +fn_1_6844 = .text:0x00006844; // type:function size:0x44 +fn_1_6888 = .text:0x00006888; // type:function size:0x15C +fn_1_69E4 = .text:0x000069E4; // type:function size:0x50 +fn_1_6A34 = .text:0x00006A34; // type:function size:0x38C +fn_1_6DC0 = .text:0x00006DC0; // type:function size:0x410 +fn_1_71D0 = .text:0x000071D0; // type:function size:0xA8 +fn_1_7278 = .text:0x00007278; // type:function size:0xB0 +fn_1_7328 = .text:0x00007328; // type:function size:0xB4 +fn_1_73DC = .text:0x000073DC; // type:function size:0x1B0 +fn_1_758C = .text:0x0000758C; // type:function size:0x20 +fn_1_75AC = .text:0x000075AC; // type:function size:0x4 +fn_1_75B0 = .text:0x000075B0; // type:function size:0xC +fn_1_75BC = .text:0x000075BC; // type:function size:0x38 +fn_1_75F4 = .text:0x000075F4; // type:function size:0x118 +fn_1_770C = .text:0x0000770C; // type:function size:0x250 +fn_1_795C = .text:0x0000795C; // type:function size:0x46C +fn_1_7DC8 = .text:0x00007DC8; // type:function size:0x314 +fn_1_80DC = .text:0x000080DC; // type:function size:0x7D8 +fn_1_88B4 = .text:0x000088B4; // type:function size:0x55C +fn_1_8E10 = .text:0x00008E10; // type:function size:0x38 +fn_1_8E48 = .text:0x00008E48; // type:function size:0x2E8 +fn_1_9130 = .text:0x00009130; // type:function size:0x100 +fn_1_9230 = .text:0x00009230; // type:function size:0x314 +fn_1_9544 = .text:0x00009544; // type:function size:0x1D8 +fn_1_971C = .text:0x0000971C; // type:function size:0x7C +fn_1_9798 = .text:0x00009798; // type:function size:0x54 +fn_1_97EC = .text:0x000097EC; // type:function size:0x7C +fn_1_9868 = .text:0x00009868; // type:function size:0x7C +fn_1_98E4 = .text:0x000098E4; // type:function size:0x78 +fn_1_995C = .text:0x0000995C; // type:function size:0x12C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1 data:byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 +lbl_1_data_30 = .data:0x00000030; // type:object size:0xC +lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_1_data_48 = .data:0x00000048; // type:object size:0x1 data:byte +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 +jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x60 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x8 +jumptable_1_data_1D8 = .data:0x000001D8; // type:object size:0x28 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x8 +lbl_1_data_220 = .data:0x00000220; // type:object size:0xC +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x20 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x30 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x10 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x20 +jumptable_1_data_2DC = .data:0x000002DC; // type:object size:0x1C scope:local +jumptable_1_data_2F8 = .data:0x000002F8; // type:object size:0x1C scope:local +jumptable_1_data_314 = .data:0x00000314; // type:object size:0x1C scope:local +jumptable_1_data_330 = .data:0x00000330; // type:object size:0x1C scope:local +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x1C scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x1 data:byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x10 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m427Dll/splits.txt b/config/GMPJ01_00/rels/m427Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m427Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m427Dll/symbols.txt b/config/GMPJ01_00/rels/m427Dll/symbols.txt new file mode 100644 index 00000000..0ce6699f --- /dev/null +++ b/config/GMPJ01_00/rels/m427Dll/symbols.txt @@ -0,0 +1,437 @@ +_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:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0x64 +fn_1_300 = .text:0x00000300; // type:function size:0x1364 +fn_1_1664 = .text:0x00001664; // type:function size:0x60 +fn_1_16C4 = .text:0x000016C4; // type:function size:0xC4 +fn_1_1788 = .text:0x00001788; // type:function size:0x10 +fn_1_1798 = .text:0x00001798; // type:function size:0xCC +fn_1_1864 = .text:0x00001864; // type:function size:0x20 +fn_1_1884 = .text:0x00001884; // type:function size:0xD0 +fn_1_1954 = .text:0x00001954; // type:function size:0x5E0 +fn_1_1F34 = .text:0x00001F34; // type:function size:0x254 +fn_1_2188 = .text:0x00002188; // type:function size:0x60 +fn_1_21E8 = .text:0x000021E8; // type:function size:0x144 +fn_1_232C = .text:0x0000232C; // type:function size:0x1EC +fn_1_2518 = .text:0x00002518; // type:function size:0x1EC +fn_1_2704 = .text:0x00002704; // type:function size:0x28 +fn_1_272C = .text:0x0000272C; // type:function size:0x64 +fn_1_2790 = .text:0x00002790; // type:function size:0x390 +fn_1_2B20 = .text:0x00002B20; // type:function size:0x4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x4 +fn_1_2B28 = .text:0x00002B28; // type:function size:0x1C0 +fn_1_2CE8 = .text:0x00002CE8; // type:function size:0x1F8 +fn_1_2EE0 = .text:0x00002EE0; // type:function size:0x8C +fn_1_2F6C = .text:0x00002F6C; // type:function size:0x1F8 +fn_1_3164 = .text:0x00003164; // type:function size:0x188 +fn_1_32EC = .text:0x000032EC; // type:function size:0x8 +fn_1_32F4 = .text:0x000032F4; // type:function size:0x438 +fn_1_372C = .text:0x0000372C; // type:function size:0x35C +fn_1_3A88 = .text:0x00003A88; // type:function size:0x98 +fn_1_3B20 = .text:0x00003B20; // type:function size:0x29C +fn_1_3DBC = .text:0x00003DBC; // type:function size:0x9C +fn_1_3E58 = .text:0x00003E58; // type:function size:0x3C0 +fn_1_4218 = .text:0x00004218; // type:function size:0x2DC +fn_1_44F4 = .text:0x000044F4; // type:function size:0x7C +fn_1_4570 = .text:0x00004570; // type:function size:0x37C +fn_1_48EC = .text:0x000048EC; // type:function size:0x490 +fn_1_4D7C = .text:0x00004D7C; // type:function size:0x324 +fn_1_50A0 = .text:0x000050A0; // type:function size:0x6C +fn_1_510C = .text:0x0000510C; // type:function size:0x480 +fn_1_558C = .text:0x0000558C; // type:function size:0xC00 +fn_1_618C = .text:0x0000618C; // type:function size:0x5D4 +fn_1_6760 = .text:0x00006760; // type:function size:0xB84 +fn_1_72E4 = .text:0x000072E4; // type:function size:0xD8 +fn_1_73BC = .text:0x000073BC; // type:function size:0x590 +fn_1_794C = .text:0x0000794C; // type:function size:0x2E8 +fn_1_7C34 = .text:0x00007C34; // type:function size:0x22C +fn_1_7E60 = .text:0x00007E60; // type:function size:0xD8 +fn_1_7F38 = .text:0x00007F38; // type:function size:0x69C +fn_1_85D4 = .text:0x000085D4; // type:function size:0x194 +fn_1_8768 = .text:0x00008768; // type:function size:0x6B4 +fn_1_8E1C = .text:0x00008E1C; // type:function size:0x174 +fn_1_8F90 = .text:0x00008F90; // type:function size:0x250 +fn_1_91E0 = .text:0x000091E0; // type:function size:0x60 +fn_1_9240 = .text:0x00009240; // type:function size:0xD8 +fn_1_9318 = .text:0x00009318; // type:function size:0xD4 +fn_1_93EC = .text:0x000093EC; // type:function size:0xD0 +fn_1_94BC = .text:0x000094BC; // type:function size:0x12C +fn_1_95E8 = .text:0x000095E8; // type:function size:0x370 +fn_1_9958 = .text:0x00009958; // type:function size:0x44 +fn_1_999C = .text:0x0000999C; // type:function size:0x48 +fn_1_99E4 = .text:0x000099E4; // type:function size:0x48 +fn_1_9A2C = .text:0x00009A2C; // type:function size:0x74 +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x74 +fn_1_9B14 = .text:0x00009B14; // type:function size:0x74 +fn_1_9B88 = .text:0x00009B88; // type:function size:0x5C0 +fn_1_A148 = .text:0x0000A148; // type:function size:0xAC +fn_1_A1F4 = .text:0x0000A1F4; // type:function size:0x604 +fn_1_A7F8 = .text:0x0000A7F8; // type:function size:0x680 +fn_1_AE78 = .text:0x0000AE78; // type:function size:0x31C +fn_1_B194 = .text:0x0000B194; // type:function size:0x238 +fn_1_B3CC = .text:0x0000B3CC; // type:function size:0x960 +fn_1_BD2C = .text:0x0000BD2C; // type:function size:0x428 +fn_1_C154 = .text:0x0000C154; // type:function size:0xAC +fn_1_C200 = .text:0x0000C200; // type:function size:0xAC +fn_1_C2AC = .text:0x0000C2AC; // type:function size:0x10 +fn_1_C2BC = .text:0x0000C2BC; // type:function size:0xC +fn_1_C2C8 = .text:0x0000C2C8; // type:function size:0xD8 +fn_1_C3A0 = .text:0x0000C3A0; // type:function size:0x7C +fn_1_C41C = .text:0x0000C41C; // type:function size:0x10C +fn_1_C528 = .text:0x0000C528; // type:function size:0x164 +fn_1_C68C = .text:0x0000C68C; // type:function size:0xE0 +fn_1_C76C = .text:0x0000C76C; // type:function size:0xAC0 +fn_1_D22C = .text:0x0000D22C; // type:function size:0x204 +fn_1_D430 = .text:0x0000D430; // type:function size:0xCC +fn_1_D4FC = .text:0x0000D4FC; // type:function size:0x140 +fn_1_D63C = .text:0x0000D63C; // type:function size:0x544 +fn_1_DB80 = .text:0x0000DB80; // type:function size:0x60 +fn_1_DBE0 = .text:0x0000DBE0; // type:function size:0x2C +fn_1_DC0C = .text:0x0000DC0C; // type:function size:0x58 +fn_1_DC64 = .text:0x0000DC64; // type:function size:0x38 +fn_1_DC9C = .text:0x0000DC9C; // type:function size:0x38 +fn_1_DCD4 = .text:0x0000DCD4; // type:function size:0x5DC +fn_1_E2B0 = .text:0x0000E2B0; // type:function size:0xCC +fn_1_E37C = .text:0x0000E37C; // type:function size:0xA4 +fn_1_E420 = .text:0x0000E420; // type:function size:0x68 +fn_1_E488 = .text:0x0000E488; // type:function size:0x504 +fn_1_E98C = .text:0x0000E98C; // type:function size:0x2C8 +fn_1_EC54 = .text:0x0000EC54; // type:function size:0x20 +fn_1_EC74 = .text:0x0000EC74; // type:function size:0x20 +fn_1_EC94 = .text:0x0000EC94; // type:function size:0x44C +fn_1_F0E0 = .text:0x0000F0E0; // type:function size:0x1750 +fn_1_10830 = .text:0x00010830; // type:function size:0x75C +fn_1_10F8C = .text:0x00010F8C; // type:function size:0x5C +fn_1_10FE8 = .text:0x00010FE8; // type:function size:0x100 +fn_1_110E8 = .text:0x000110E8; // type:function size:0xD8 +fn_1_111C0 = .text:0x000111C0; // type:function size:0xD8 +fn_1_11298 = .text:0x00011298; // type:function size:0x158 +fn_1_113F0 = .text:0x000113F0; // type:function size:0x4C +fn_1_1143C = .text:0x0001143C; // type:function size:0x178 +fn_1_115B4 = .text:0x000115B4; // type:function size:0x40C +fn_1_119C0 = .text:0x000119C0; // type:function size:0xB4 +fn_1_11A74 = .text:0x00011A74; // type:function size:0x464 +fn_1_11ED8 = .text:0x00011ED8; // type:function size:0x63C +fn_1_12514 = .text:0x00012514; // type:function size:0x4 +fn_1_12518 = .text:0x00012518; // type:function size:0x68 +fn_1_12580 = .text:0x00012580; // type:function size:0x588 +fn_1_12B08 = .text:0x00012B08; // type:function size:0x141C +fn_1_13F24 = .text:0x00013F24; // type:function size:0x94 +fn_1_13FB8 = .text:0x00013FB8; // type:function size:0x4 +fn_1_13FBC = .text:0x00013FBC; // type:function size:0x14FC +fn_1_154B8 = .text:0x000154B8; // type:function size:0x4 +fn_1_154BC = .text:0x000154BC; // type:function size:0x124 +fn_1_155E0 = .text:0x000155E0; // type:function size:0x134 +fn_1_15714 = .text:0x00015714; // type:function size:0x1C4 +fn_1_158D8 = .text:0x000158D8; // type:function size:0x218 +fn_1_15AF0 = .text:0x00015AF0; // type:function size:0x420 +fn_1_15F10 = .text:0x00015F10; // type:function size:0xC0 +fn_1_15FD0 = .text:0x00015FD0; // type:function size:0xAC +fn_1_1607C = .text:0x0001607C; // type:function size:0x58 +fn_1_160D4 = .text:0x000160D4; // type:function size:0x18C +fn_1_16260 = .text:0x00016260; // type:function size:0x334 +fn_1_16594 = .text:0x00016594; // type:function size:0x118 +fn_1_166AC = .text:0x000166AC; // type:function size:0x250 +fn_1_168FC = .text:0x000168FC; // type:function size:0x3F8 +fn_1_16CF4 = .text:0x00016CF4; // type:function size:0x148 +fn_1_16E3C = .text:0x00016E3C; // type:function size:0xBC +fn_1_16EF8 = .text:0x00016EF8; // type:function size:0x150 +fn_1_17048 = .text:0x00017048; // type:function size:0x1F0 +fn_1_17238 = .text:0x00017238; // type:function size:0x4 +fn_1_1723C = .text:0x0001723C; // type:function size:0xB4 +fn_1_172F0 = .text:0x000172F0; // type:function size:0x140 +fn_1_17430 = .text:0x00017430; // type:function size:0xA4 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +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:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x8 +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x8 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x10 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x90 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x27 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float +lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float +lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x10 +lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C +lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 +lbl_1_data_5D0 = .data:0x000005D0; // type:object size:0x8 +jumptable_1_data_5D8 = .data:0x000005D8; // type:object size:0x20 scope:local +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x8 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x8 +lbl_1_data_608 = .data:0x00000608; // type:object size:0x10 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x10 +jumptable_1_data_628 = .data:0x00000628; // type:object size:0x20 scope:local +lbl_1_data_648 = .data:0x00000648; // type:object size:0x4 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1 data:byte +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x40 +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x8 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x1 data:byte +lbl_1_bss_91 = .bss:0x00000091; // type:object size:0x1 data:byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4C data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x60 data:2byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x3F0 data:byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0x8 data:4byte +lbl_1_bss_550 = .bss:0x00000550; // type:object size:0x4 data:4byte +lbl_1_bss_554 = .bss:0x00000554; // type:object size:0x4 data:4byte +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x10 +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x8 +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x4 data:4byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x4 data:4byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x4 data:4byte +lbl_1_bss_58C = .bss:0x0000058C; // type:object size:0x4 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x4 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m428Dll/splits.txt b/config/GMPJ01_00/rels/m428Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m428Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m428Dll/symbols.txt b/config/GMPJ01_00/rels/m428Dll/symbols.txt new file mode 100644 index 00000000..cd8f595d --- /dev/null +++ b/config/GMPJ01_00/rels/m428Dll/symbols.txt @@ -0,0 +1,409 @@ +_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:0x1C0 +fn_1_478 = .text:0x00000478; // type:function size:0x2154 +fn_1_25CC = .text:0x000025CC; // type:function size:0x50 +fn_1_261C = .text:0x0000261C; // type:function size:0xC4 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x10 +fn_1_26F0 = .text:0x000026F0; // type:function size:0x2F8 +fn_1_29E8 = .text:0x000029E8; // type:function size:0x4 +fn_1_29EC = .text:0x000029EC; // type:function size:0x4 +fn_1_29F0 = .text:0x000029F0; // type:function size:0x10 +fn_1_2A00 = .text:0x00002A00; // type:function size:0xCC +fn_1_2ACC = .text:0x00002ACC; // type:function size:0x1C4 +fn_1_2C90 = .text:0x00002C90; // type:function size:0x19C +fn_1_2E2C = .text:0x00002E2C; // type:function size:0xD38 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x540 +fn_1_40A4 = .text:0x000040A4; // type:function size:0xCC +fn_1_4170 = .text:0x00004170; // type:function size:0xF4 +fn_1_4264 = .text:0x00004264; // type:function size:0xC0 +fn_1_4324 = .text:0x00004324; // type:function size:0xA4 +fn_1_43C8 = .text:0x000043C8; // type:function size:0x268 +fn_1_4630 = .text:0x00004630; // type:function size:0x20 +fn_1_4650 = .text:0x00004650; // type:function size:0x10C +fn_1_475C = .text:0x0000475C; // type:function size:0x420 +fn_1_4B7C = .text:0x00004B7C; // type:function size:0x2C8 +fn_1_4E44 = .text:0x00004E44; // type:function size:0x34 +fn_1_4E78 = .text:0x00004E78; // type:function size:0x8C +fn_1_4F04 = .text:0x00004F04; // type:function size:0x2DC +fn_1_51E0 = .text:0x000051E0; // type:function size:0xF8 +fn_1_52D8 = .text:0x000052D8; // type:function size:0x4 +fn_1_52DC = .text:0x000052DC; // type:function size:0x94 +fn_1_5370 = .text:0x00005370; // type:function size:0x1E8 +fn_1_5558 = .text:0x00005558; // type:function size:0x12C +fn_1_5684 = .text:0x00005684; // type:function size:0x648 +fn_1_5CCC = .text:0x00005CCC; // type:function size:0x5B4 +fn_1_6280 = .text:0x00006280; // type:function size:0xF2C +fn_1_71AC = .text:0x000071AC; // type:function size:0xE8 +fn_1_7294 = .text:0x00007294; // type:function size:0x40 +fn_1_72D4 = .text:0x000072D4; // type:function size:0xC8 +fn_1_739C = .text:0x0000739C; // type:function size:0x94 +fn_1_7430 = .text:0x00007430; // type:function size:0x84 +fn_1_74B4 = .text:0x000074B4; // type:function size:0x4C +fn_1_7500 = .text:0x00007500; // type:function size:0x54 +fn_1_7554 = .text:0x00007554; // type:function size:0x13C +fn_1_7690 = .text:0x00007690; // type:function size:0x168 +fn_1_77F8 = .text:0x000077F8; // type:function size:0x120 +fn_1_7918 = .text:0x00007918; // type:function size:0x39C +fn_1_7CB4 = .text:0x00007CB4; // type:function size:0x2E0 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x198 +fn_1_812C = .text:0x0000812C; // type:function size:0xD8 +fn_1_8204 = .text:0x00008204; // type:function size:0xBC +fn_1_82C0 = .text:0x000082C0; // type:function size:0x33C +fn_1_85FC = .text:0x000085FC; // type:function size:0x4B0 +fn_1_8AAC = .text:0x00008AAC; // type:function size:0x78 +fn_1_8B24 = .text:0x00008B24; // type:function size:0x11C +fn_1_8C40 = .text:0x00008C40; // type:function size:0x78 +fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x2D8 +fn_1_8F90 = .text:0x00008F90; // type:function size:0x2B8 +fn_1_9248 = .text:0x00009248; // type:function size:0x154 +fn_1_939C = .text:0x0000939C; // type:function size:0x3E0 +fn_1_977C = .text:0x0000977C; // type:function size:0x214 +fn_1_9990 = .text:0x00009990; // type:function size:0xA0 +fn_1_9A30 = .text:0x00009A30; // type:function size:0xAC +fn_1_9ADC = .text:0x00009ADC; // type:function size:0x30C +fn_1_9DE8 = .text:0x00009DE8; // type:function size:0xC0 +fn_1_9EA8 = .text:0x00009EA8; // type:function size:0x60 +fn_1_9F08 = .text:0x00009F08; // type:function size:0x54 +fn_1_9F5C = .text:0x00009F5C; // type:function size:0x154 +fn_1_A0B0 = .text:0x0000A0B0; // type:function size:0x58 +fn_1_A108 = .text:0x0000A108; // type:function size:0x3C0 +fn_1_A4C8 = .text:0x0000A4C8; // type:function size:0xF0C +fn_1_B3D4 = .text:0x0000B3D4; // type:function size:0x68 +fn_1_B43C = .text:0x0000B43C; // type:function size:0x794 +fn_1_BBD0 = .text:0x0000BBD0; // type:function size:0x2A24 +fn_1_E5F4 = .text:0x0000E5F4; // type:function size:0xC +fn_1_E600 = .text:0x0000E600; // type:function size:0xA80 +fn_1_F080 = .text:0x0000F080; // type:function size:0x208 +fn_1_F288 = .text:0x0000F288; // type:function size:0xCC +fn_1_F354 = .text:0x0000F354; // type:function size:0x68 +fn_1_F3BC = .text:0x0000F3BC; // type:function size:0x58 +fn_1_F414 = .text:0x0000F414; // type:function size:0x40 +fn_1_F454 = .text:0x0000F454; // type:function size:0x18 +fn_1_F46C = .text:0x0000F46C; // type:function size:0x48 +fn_1_F4B4 = .text:0x0000F4B4; // type:function size:0x34 +fn_1_F4E8 = .text:0x0000F4E8; // type:function size:0x50 +fn_1_F538 = .text:0x0000F538; // type:function size:0x354 +fn_1_F88C = .text:0x0000F88C; // type:function size:0x300 +fn_1_FB8C = .text:0x0000FB8C; // type:function size:0x30C +fn_1_FE98 = .text:0x0000FE98; // type:function size:0x410 +fn_1_102A8 = .text:0x000102A8; // type:function size:0x288 +fn_1_10530 = .text:0x00010530; // type:function size:0x60 +fn_1_10590 = .text:0x00010590; // type:function size:0x58 +fn_1_105E8 = .text:0x000105E8; // type:function size:0xC0 +fn_1_106A8 = .text:0x000106A8; // type:function size:0xE0 +fn_1_10788 = .text:0x00010788; // type:function size:0x300 +fn_1_10A88 = .text:0x00010A88; // type:function size:0x58C +fn_1_11014 = .text:0x00011014; // type:function size:0x5E4 +fn_1_115F8 = .text:0x000115F8; // type:function size:0xCC +fn_1_116C4 = .text:0x000116C4; // type:function size:0x90 +fn_1_11754 = .text:0x00011754; // type:function size:0x44 +fn_1_11798 = .text:0x00011798; // type:function size:0x110 +fn_1_118A8 = .text:0x000118A8; // type:function size:0x88 +fn_1_11930 = .text:0x00011930; // type:function size:0x130 +fn_1_11A60 = .text:0x00011A60; // type:function size:0x1C0 +fn_1_11C20 = .text:0x00011C20; // type:function size:0x6C +fn_1_11C8C = .text:0x00011C8C; // type:function size:0x158 +fn_1_11DE4 = .text:0x00011DE4; // type:function size:0x470 +fn_1_12254 = .text:0x00012254; // type:function size:0x118 +fn_1_1236C = .text:0x0001236C; // type:function size:0x250 +fn_1_125BC = .text:0x000125BC; // type:function size:0x3F8 +fn_1_129B4 = .text:0x000129B4; // type:function size:0x78 +fn_1_12A2C = .text:0x00012A2C; // type:function size:0x78 +fn_1_12AA4 = .text:0x00012AA4; // type:function size:0x230 +fn_1_12CD4 = .text:0x00012CD4; // type:function size:0x4B0 +fn_1_13184 = .text:0x00013184; // type:function size:0x33C +fn_1_134C0 = .text:0x000134C0; // type:function size:0x8DC +fn_1_13D9C = .text:0x00013D9C; // type:function size:0x78 +fn_1_13E14 = .text:0x00013E14; // type:function size:0xB4 +fn_1_13EC8 = .text:0x00013EC8; // type:function size:0x8C +fn_1_13F54 = .text:0x00013F54; // type:function size:0x134 +fn_1_14088 = .text:0x00014088; // type:function size:0x4D8 +fn_1_14560 = .text:0x00014560; // type:function size:0x98 +fn_1_145F8 = .text:0x000145F8; // type:function size:0x98 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x48 data:byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2A0 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x30 +lbl_1_data_480 = .data:0x00000480; // type:object size:0x30 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x50 data:float +lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 +lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:float +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x8 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x80 +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x80 +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x80 +lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x60 +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0x8 data:4byte +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x4 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x4 data:4byte +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_bss_2B8 = .bss:0x000002B8; // type:object size:0x10 +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x8 +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m429Dll/splits.txt b/config/GMPJ01_00/rels/m429Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m429Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m429Dll/symbols.txt b/config/GMPJ01_00/rels/m429Dll/symbols.txt new file mode 100644 index 00000000..f2faf4cf --- /dev/null +++ b/config/GMPJ01_00/rels/m429Dll/symbols.txt @@ -0,0 +1,316 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x260 +fn_1_2614 = .text:0x00002614; // type:function size:0x70 +fn_1_2684 = .text:0x00002684; // type:function size:0x2CC +fn_1_2950 = .text:0x00002950; // type:function size:0x290 +fn_1_2BE0 = .text:0x00002BE0; // type:function size:0x234 +fn_1_2E14 = .text:0x00002E14; // type:function size:0xD8 +fn_1_2EEC = .text:0x00002EEC; // type:function size:0x2BC +fn_1_31A8 = .text:0x000031A8; // type:function size:0x4 +fn_1_31AC = .text:0x000031AC; // type:function size:0xD8 +fn_1_3284 = .text:0x00003284; // type:function size:0x174 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x304 +fn_1_36FC = .text:0x000036FC; // type:function size:0x170 +fn_1_386C = .text:0x0000386C; // type:function size:0x560 +fn_1_3DCC = .text:0x00003DCC; // type:function size:0x254 +_prolog = .text:0x00004020; // type:function size:0x54 scope:global +_epilog = .text:0x00004074; // type:function size:0x4C scope:global +fn_1_40C0 = .text:0x000040C0; // type:function size:0x164 +fn_1_4224 = .text:0x00004224; // type:function size:0xBCC +fn_1_4DF0 = .text:0x00004DF0; // type:function size:0x60 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x25C +fn_1_50AC = .text:0x000050AC; // type:function size:0x410 +fn_1_54BC = .text:0x000054BC; // type:function size:0x380 +fn_1_583C = .text:0x0000583C; // type:function size:0x120 +fn_1_595C = .text:0x0000595C; // type:function size:0x380 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x268 +fn_1_5F44 = .text:0x00005F44; // type:function size:0x1154 +fn_1_7098 = .text:0x00007098; // type:function size:0x158 +fn_1_71F0 = .text:0x000071F0; // type:function size:0xB48 +fn_1_7D38 = .text:0x00007D38; // type:function size:0x1230 +fn_1_8F68 = .text:0x00008F68; // type:function size:0xA84 +fn_1_99EC = .text:0x000099EC; // type:function size:0x4 +fn_1_99F0 = .text:0x000099F0; // type:function size:0x1BC +fn_1_9BAC = .text:0x00009BAC; // type:function size:0x340 +fn_1_9EEC = .text:0x00009EEC; // type:function size:0x1BC +fn_1_A0A8 = .text:0x0000A0A8; // type:function size:0x70 +fn_1_A118 = .text:0x0000A118; // type:function size:0x470 +fn_1_A588 = .text:0x0000A588; // type:function size:0x22C +fn_1_A7B4 = .text:0x0000A7B4; // type:function size:0x5C0 +fn_1_AD74 = .text:0x0000AD74; // type:function size:0x2A8 +fn_1_B01C = .text:0x0000B01C; // type:function size:0x738 +fn_1_B754 = .text:0x0000B754; // type:function size:0x18C +fn_1_B8E0 = .text:0x0000B8E0; // type:function size:0x1D08 +fn_1_D5E8 = .text:0x0000D5E8; // type:function size:0x6B4 +fn_1_DC9C = .text:0x0000DC9C; // type:function size:0xCD0 +fn_1_E96C = .text:0x0000E96C; // type:function size:0x104 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xD data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string +lbl_1_data_39 = .data:0x00000039; // type:object size:0xE data:string +lbl_1_data_47 = .data:0x00000047; // type:object size:0xD data:string +lbl_1_data_54 = .data:0x00000054; // type:object size:0xD data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0xE data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0xE data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE data:string +lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE data:string +lbl_1_data_200 = .data:0x00000200; // type:object size:0xE data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x57C +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD data:string +lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD data:string +lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE data:string +lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE data:string +lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE data:string +lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0xD data:string +lbl_1_data_814 = .data:0x00000814; // type:object size:0xD data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0xD data:string +lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE data:string +lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE data:string +lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD data:string +lbl_1_data_857 = .data:0x00000857; // type:object size:0xD data:string +lbl_1_data_864 = .data:0x00000864; // type:object size:0xD data:string +lbl_1_data_871 = .data:0x00000871; // type:object size:0xE data:string +lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE data:string +lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE data:string +lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE data:string +lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE data:string +lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE data:string +lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE data:string +lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE data:string +lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE data:string +lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE data:string +lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE data:string +lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE data:string +lbl_1_data_919 = .data:0x00000919; // type:object size:0xE data:string +lbl_1_data_927 = .data:0x00000927; // type:object size:0xE data:string +lbl_1_data_935 = .data:0x00000935; // type:object size:0xE data:string +lbl_1_data_943 = .data:0x00000943; // type:object size:0xE data:string +lbl_1_data_951 = .data:0x00000951; // type:object size:0xE data:string +lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE data:string +lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE data:string +lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE data:string +lbl_1_data_989 = .data:0x00000989; // type:object size:0xE data:string +lbl_1_data_997 = .data:0x00000997; // type:object size:0xE data:string +lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE data:string +lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE data:string +lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE data:string +lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE data:string +lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x5E8 +lbl_1_data_FD4 = .data:0x00000FD4; // type:object size:0xC +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0xC +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x10 +lbl_1_data_FFC = .data:0x00000FFC; // type:object size:0x40 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x40 data:float +lbl_1_data_107C = .data:0x0000107C; // type:object size:0x40 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x40 +lbl_1_data_10FC = .data:0x000010FC; // type:object size:0x20 +lbl_1_data_111C = .data:0x0000111C; // type:object size:0xC +lbl_1_data_1128 = .data:0x00001128; // type:object size:0xC +lbl_1_data_1134 = .data:0x00001134; // type:object size:0x4 +lbl_1_data_1138 = .data:0x00001138; // type:object size:0xC +lbl_1_data_1144 = .data:0x00001144; // type:object size:0xC +lbl_1_data_1150 = .data:0x00001150; // type:object size:0x140 +lbl_1_data_1290 = .data:0x00001290; // type:object size:0x20 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x20 +lbl_1_data_12D0 = .data:0x000012D0; // type:object size:0x10 +lbl_1_data_12E0 = .data:0x000012E0; // type:object size:0x30 +lbl_1_data_1310 = .data:0x00001310; // type:object size:0x10 +lbl_1_data_1320 = .data:0x00001320; // type:object size:0x10 +lbl_1_data_1330 = .data:0x00001330; // type:object size:0x10 +lbl_1_data_1340 = .data:0x00001340; // type:object size:0x48 +lbl_1_data_1388 = .data:0x00001388; // type:object size:0x20 +lbl_1_data_13A8 = .data:0x000013A8; // type:object size:0x10 +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x10 +lbl_1_data_13C8 = .data:0x000013C8; // type:object size:0x10 +lbl_1_data_13D8 = .data:0x000013D8; // type:object size:0x10 +lbl_1_data_13E8 = .data:0x000013E8; // type:object size:0x50 +lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 data:string +lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F +jumptable_1_data_1478 = .data:0x00001478; // type:object size:0x24 scope:local +lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1C +jumptable_1_data_14B8 = .data:0x000014B8; // type:object size:0x34 scope:local +lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 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:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x30 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x30 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x30 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x30 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x18 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:float +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:float +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x60 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x8 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:float +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:float +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m430Dll/splits.txt b/config/GMPJ01_00/rels/m430Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m430Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m430Dll/symbols.txt b/config/GMPJ01_00/rels/m430Dll/symbols.txt new file mode 100644 index 00000000..3517ae68 --- /dev/null +++ b/config/GMPJ01_00/rels/m430Dll/symbols.txt @@ -0,0 +1,492 @@ +_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:0x5BC +fn_1_65C = .text:0x0000065C; // type:function size:0xC4 +fn_1_720 = .text:0x00000720; // type:function size:0x334 +fn_1_A54 = .text:0x00000A54; // type:function size:0x144 +fn_1_B98 = .text:0x00000B98; // type:function size:0x564 +fn_1_10FC = .text:0x000010FC; // type:function size:0x590 +fn_1_168C = .text:0x0000168C; // type:function size:0x478 +fn_1_1B04 = .text:0x00001B04; // type:function size:0x6E0 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x52C +fn_1_2710 = .text:0x00002710; // type:function size:0x638 +fn_1_2D48 = .text:0x00002D48; // type:function size:0x138 +fn_1_2E80 = .text:0x00002E80; // type:function size:0x81C +fn_1_369C = .text:0x0000369C; // type:function size:0xCC +fn_1_3768 = .text:0x00003768; // type:function size:0x8C8 +fn_1_4030 = .text:0x00004030; // type:function size:0x10 +fn_1_4040 = .text:0x00004040; // type:function size:0x18 +fn_1_4058 = .text:0x00004058; // type:function size:0x18 +fn_1_4070 = .text:0x00004070; // type:function size:0x18 +fn_1_4088 = .text:0x00004088; // type:function size:0x18 +fn_1_40A0 = .text:0x000040A0; // type:function size:0x18 +fn_1_40B8 = .text:0x000040B8; // type:function size:0x18 +fn_1_40D0 = .text:0x000040D0; // type:function size:0x30 +fn_1_4100 = .text:0x00004100; // type:function size:0x30 +fn_1_4130 = .text:0x00004130; // type:function size:0xC0 +fn_1_41F0 = .text:0x000041F0; // type:function size:0x348 +fn_1_4538 = .text:0x00004538; // type:function size:0x378 +fn_1_48B0 = .text:0x000048B0; // type:function size:0x11C +fn_1_49CC = .text:0x000049CC; // type:function size:0xB4 +fn_1_4A80 = .text:0x00004A80; // type:function size:0x1C8 +fn_1_4C48 = .text:0x00004C48; // type:function size:0x6C +fn_1_4CB4 = .text:0x00004CB4; // type:function size:0x1144 +fn_1_5DF8 = .text:0x00005DF8; // type:function size:0x388 +fn_1_6180 = .text:0x00006180; // type:function size:0x3C0 +fn_1_6540 = .text:0x00006540; // type:function size:0x214 +fn_1_6754 = .text:0x00006754; // type:function size:0x674 +fn_1_6DC8 = .text:0x00006DC8; // type:function size:0x2E4 +fn_1_70AC = .text:0x000070AC; // type:function size:0x280 +fn_1_732C = .text:0x0000732C; // type:function size:0x3AC +fn_1_76D8 = .text:0x000076D8; // type:function size:0x170 +fn_1_7848 = .text:0x00007848; // type:function size:0x464 +fn_1_7CAC = .text:0x00007CAC; // type:function size:0x200 +fn_1_7EAC = .text:0x00007EAC; // type:function size:0x110 +fn_1_7FBC = .text:0x00007FBC; // type:function size:0x40 +fn_1_7FFC = .text:0x00007FFC; // type:function size:0x40 +fn_1_803C = .text:0x0000803C; // type:function size:0x228 +fn_1_8264 = .text:0x00008264; // type:function size:0x90 +fn_1_82F4 = .text:0x000082F4; // type:function size:0x3C0 +fn_1_86B4 = .text:0x000086B4; // type:function size:0x4A8 +fn_1_8B5C = .text:0x00008B5C; // type:function size:0x184 +fn_1_8CE0 = .text:0x00008CE0; // type:function size:0x95C +fn_1_963C = .text:0x0000963C; // type:function size:0x654 +fn_1_9C90 = .text:0x00009C90; // type:function size:0x718 +fn_1_A3A8 = .text:0x0000A3A8; // type:function size:0x7F0 +fn_1_AB98 = .text:0x0000AB98; // type:function size:0xEC +fn_1_AC84 = .text:0x0000AC84; // type:function size:0x80 +fn_1_AD04 = .text:0x0000AD04; // type:function size:0x1DC +fn_1_AEE0 = .text:0x0000AEE0; // type:function size:0x4B4 +fn_1_B394 = .text:0x0000B394; // type:function size:0x1DC +fn_1_B570 = .text:0x0000B570; // type:function size:0x5E4 +fn_1_BB54 = .text:0x0000BB54; // type:function size:0x34 +fn_1_BB88 = .text:0x0000BB88; // type:function size:0x10 +fn_1_BB98 = .text:0x0000BB98; // type:function size:0x2C +fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x260 +fn_1_BE24 = .text:0x0000BE24; // type:function size:0x1E8 +fn_1_C00C = .text:0x0000C00C; // type:function size:0x34 +fn_1_C040 = .text:0x0000C040; // type:function size:0x1A4 +fn_1_C1E4 = .text:0x0000C1E4; // type:function size:0x858 +fn_1_CA3C = .text:0x0000CA3C; // type:function size:0x894 +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0x558 +fn_1_D828 = .text:0x0000D828; // type:function size:0x10D4 +fn_1_E8FC = .text:0x0000E8FC; // type:function size:0x7DC +fn_1_F0D8 = .text:0x0000F0D8; // type:function size:0x554 +fn_1_F62C = .text:0x0000F62C; // type:function size:0x74 +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x5FC +fn_1_FC9C = .text:0x0000FC9C; // type:function size:0x404 +fn_1_100A0 = .text:0x000100A0; // type:function size:0x29C +fn_1_1033C = .text:0x0001033C; // type:function size:0x200 +fn_1_1053C = .text:0x0001053C; // type:function size:0x4 +fn_1_10540 = .text:0x00010540; // type:function size:0x4C +fn_1_1058C = .text:0x0001058C; // type:function size:0x2C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x64 +fn_1_1061C = .text:0x0001061C; // type:function size:0x32C +fn_1_10948 = .text:0x00010948; // type:function size:0x240 +fn_1_10B88 = .text:0x00010B88; // type:function size:0x194 +fn_1_10D1C = .text:0x00010D1C; // type:function size:0x204 +fn_1_10F20 = .text:0x00010F20; // type:function size:0x4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0x184 +fn_1_110A8 = .text:0x000110A8; // type:function size:0x114 +fn_1_111BC = .text:0x000111BC; // type:function size:0x158 +fn_1_11314 = .text:0x00011314; // type:function size:0x98 +fn_1_113AC = .text:0x000113AC; // type:function size:0x144 +fn_1_114F0 = .text:0x000114F0; // type:function size:0x154 +fn_1_11644 = .text:0x00011644; // type:function size:0x4 +fn_1_11648 = .text:0x00011648; // type:function size:0x15C +fn_1_117A4 = .text:0x000117A4; // type:function size:0x278 +fn_1_11A1C = .text:0x00011A1C; // type:function size:0x148 +fn_1_11B64 = .text:0x00011B64; // type:function size:0x30 +fn_1_11B94 = .text:0x00011B94; // type:function size:0x88 +fn_1_11C1C = .text:0x00011C1C; // type:function size:0x154 +fn_1_11D70 = .text:0x00011D70; // type:function size:0x1F0 +fn_1_11F60 = .text:0x00011F60; // type:function size:0x30 +fn_1_11F90 = .text:0x00011F90; // type:function size:0x5C0 +fn_1_12550 = .text:0x00012550; // type:function size:0x74 +fn_1_125C4 = .text:0x000125C4; // type:function size:0x408 +fn_1_129CC = .text:0x000129CC; // type:function size:0x3A8 +fn_1_12D74 = .text:0x00012D74; // type:function size:0x7C +fn_1_12DF0 = .text:0x00012DF0; // type:function size:0xB8 +fn_1_12EA8 = .text:0x00012EA8; // type:function size:0x78 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x11C +fn_1_1303C = .text:0x0001303C; // type:function size:0x118 +fn_1_13154 = .text:0x00013154; // type:function size:0x250 +fn_1_133A4 = .text:0x000133A4; // type:function size:0x38 +fn_1_133DC = .text:0x000133DC; // type:function size:0xB4 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:4byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 data:4byte +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 data:byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 data:byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 data:byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 data:byte +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 data:byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 data:byte +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 data:byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 data:byte +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:4byte +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x9 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x14 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x1C +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x60 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 +lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte +lbl_1_data_308 = .data:0x00000308; // type:object size:0x4 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xE0 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x8 data:4byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:4byte +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m433Dll/splits.txt b/config/GMPJ01_00/rels/m433Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m433Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m433Dll/symbols.txt b/config/GMPJ01_00/rels/m433Dll/symbols.txt new file mode 100644 index 00000000..1d318f59 --- /dev/null +++ b/config/GMPJ01_00/rels/m433Dll/symbols.txt @@ -0,0 +1,472 @@ +_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:0x420 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xC4 +fn_1_584 = .text:0x00000584; // type:function size:0x94 +fn_1_618 = .text:0x00000618; // type:function size:0x180 +fn_1_798 = .text:0x00000798; // type:function size:0x33C +fn_1_AD4 = .text:0x00000AD4; // type:function size:0x358 +fn_1_E2C = .text:0x00000E2C; // type:function size:0x214 +fn_1_1040 = .text:0x00001040; // type:function size:0x3BC +fn_1_13FC = .text:0x000013FC; // type:function size:0x2D4 +fn_1_16D0 = .text:0x000016D0; // type:function size:0x36C +fn_1_1A3C = .text:0x00001A3C; // type:function size:0xC +fn_1_1A48 = .text:0x00001A48; // type:function size:0x6F4 +fn_1_213C = .text:0x0000213C; // type:function size:0x18 +fn_1_2154 = .text:0x00002154; // type:function size:0x18 +fn_1_216C = .text:0x0000216C; // type:function size:0x18 +fn_1_2184 = .text:0x00002184; // type:function size:0x18 +fn_1_219C = .text:0x0000219C; // type:function size:0x30 +fn_1_21CC = .text:0x000021CC; // type:function size:0x18 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x30 +fn_1_2214 = .text:0x00002214; // type:function size:0x30 +fn_1_2244 = .text:0x00002244; // type:function size:0x38 +fn_1_227C = .text:0x0000227C; // type:function size:0x208 +fn_1_2484 = .text:0x00002484; // type:function size:0x240 +fn_1_26C4 = .text:0x000026C4; // type:function size:0x11C +fn_1_27E0 = .text:0x000027E0; // type:function size:0xB4 +fn_1_2894 = .text:0x00002894; // type:function size:0xF0 +fn_1_2984 = .text:0x00002984; // type:function size:0x20 +fn_1_29A4 = .text:0x000029A4; // type:function size:0x120 +fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x21C +fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x5EC +fn_1_32CC = .text:0x000032CC; // type:function size:0x6E0 +fn_1_39AC = .text:0x000039AC; // type:function size:0x270 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x240 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0xB8 +fn_1_3F14 = .text:0x00003F14; // type:function size:0xB80 +fn_1_4A94 = .text:0x00004A94; // type:function size:0x10C +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x334 +fn_1_4ED4 = .text:0x00004ED4; // type:function size:0xEC +fn_1_4FC0 = .text:0x00004FC0; // type:function size:0x28 +fn_1_4FE8 = .text:0x00004FE8; // type:function size:0x80 +fn_1_5068 = .text:0x00005068; // type:function size:0x40 +fn_1_50A8 = .text:0x000050A8; // type:function size:0xA0 +fn_1_5148 = .text:0x00005148; // type:function size:0x94 +fn_1_51DC = .text:0x000051DC; // type:function size:0x84 +fn_1_5260 = .text:0x00005260; // type:function size:0x54 +fn_1_52B4 = .text:0x000052B4; // type:function size:0x168 +fn_1_541C = .text:0x0000541C; // type:function size:0x120 +fn_1_553C = .text:0x0000553C; // type:function size:0x39C +fn_1_58D8 = .text:0x000058D8; // type:function size:0x2C +fn_1_5904 = .text:0x00005904; // type:function size:0x270 +fn_1_5B74 = .text:0x00005B74; // type:function size:0x24 +fn_1_5B98 = .text:0x00005B98; // type:function size:0x4D8 +fn_1_6070 = .text:0x00006070; // type:function size:0x50 +fn_1_60C0 = .text:0x000060C0; // type:function size:0x76C +fn_1_682C = .text:0x0000682C; // type:function size:0xA00 +fn_1_722C = .text:0x0000722C; // type:function size:0x2A8 +fn_1_74D4 = .text:0x000074D4; // type:function size:0xF34 +fn_1_8408 = .text:0x00008408; // type:function size:0x334 +fn_1_873C = .text:0x0000873C; // type:function size:0x1FC +fn_1_8938 = .text:0x00008938; // type:function size:0x298 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x3B0 +fn_1_8F80 = .text:0x00008F80; // type:function size:0x708 +fn_1_9688 = .text:0x00009688; // type:function size:0xF90 +fn_1_A618 = .text:0x0000A618; // type:function size:0x570 +fn_1_AB88 = .text:0x0000AB88; // type:function size:0x60C +fn_1_B194 = .text:0x0000B194; // type:function size:0x340 +fn_1_B4D4 = .text:0x0000B4D4; // type:function size:0x20C +fn_1_B6E0 = .text:0x0000B6E0; // type:function size:0xCC +fn_1_B7AC = .text:0x0000B7AC; // type:function size:0x8C +fn_1_B838 = .text:0x0000B838; // type:function size:0x2A8 +fn_1_BAE0 = .text:0x0000BAE0; // type:function size:0x268 +fn_1_BD48 = .text:0x0000BD48; // type:function size:0x4F8 +fn_1_C240 = .text:0x0000C240; // type:function size:0x46C +fn_1_C6AC = .text:0x0000C6AC; // type:function size:0x4 +fn_1_C6B0 = .text:0x0000C6B0; // type:function size:0x4E8 +fn_1_CB98 = .text:0x0000CB98; // type:function size:0x220 +fn_1_CDB8 = .text:0x0000CDB8; // type:function size:0x3C8 +fn_1_D180 = .text:0x0000D180; // type:function size:0x1B8 +fn_1_D338 = .text:0x0000D338; // type:function size:0x1A8 +fn_1_D4E0 = .text:0x0000D4E0; // type:function size:0x1C8 +fn_1_D6A8 = .text:0x0000D6A8; // type:function size:0x1E0 +fn_1_D888 = .text:0x0000D888; // type:function size:0x4E8 +fn_1_DD70 = .text:0x0000DD70; // type:function size:0xB8 +fn_1_DE28 = .text:0x0000DE28; // type:function size:0x11C +fn_1_DF44 = .text:0x0000DF44; // type:function size:0xA0 +fn_1_DFE4 = .text:0x0000DFE4; // type:function size:0x138 +fn_1_E11C = .text:0x0000E11C; // type:function size:0x4A4 +fn_1_E5C0 = .text:0x0000E5C0; // type:function size:0x4CC +fn_1_EA8C = .text:0x0000EA8C; // type:function size:0x158 +fn_1_EBE4 = .text:0x0000EBE4; // type:function size:0x118 +fn_1_ECFC = .text:0x0000ECFC; // type:function size:0x1168 +fn_1_FE64 = .text:0x0000FE64; // type:function size:0x28 +fn_1_FE8C = .text:0x0000FE8C; // type:function size:0x2A4 +fn_1_10130 = .text:0x00010130; // type:function size:0x130 +fn_1_10260 = .text:0x00010260; // type:function size:0x3B4 +fn_1_10614 = .text:0x00010614; // type:function size:0xF8 +fn_1_1070C = .text:0x0001070C; // type:function size:0x34 +fn_1_10740 = .text:0x00010740; // type:function size:0x70 +fn_1_107B0 = .text:0x000107B0; // type:function size:0x98 +fn_1_10848 = .text:0x00010848; // type:function size:0x30 +fn_1_10878 = .text:0x00010878; // type:function size:0x4C +fn_1_108C4 = .text:0x000108C4; // type:function size:0x3C +fn_1_10900 = .text:0x00010900; // type:function size:0x28 +fn_1_10928 = .text:0x00010928; // type:function size:0x1F8 +fn_1_10B20 = .text:0x00010B20; // type:function size:0x204 +fn_1_10D24 = .text:0x00010D24; // type:function size:0x180 +fn_1_10EA4 = .text:0x00010EA4; // type:function size:0x28 +fn_1_10ECC = .text:0x00010ECC; // type:function size:0x34 +fn_1_10F00 = .text:0x00010F00; // type:function size:0x38 +fn_1_10F38 = .text:0x00010F38; // type:function size:0x34 +fn_1_10F6C = .text:0x00010F6C; // type:function size:0x38 +fn_1_10FA4 = .text:0x00010FA4; // type:function size:0x38 +fn_1_10FDC = .text:0x00010FDC; // type:function size:0x28 +fn_1_11004 = .text:0x00011004; // type:function size:0x5C +fn_1_11060 = .text:0x00011060; // type:function size:0x38 +fn_1_11098 = .text:0x00011098; // type:function size:0x98 +fn_1_11130 = .text:0x00011130; // type:function size:0x1B0 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 data:4byte +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:4byte +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 data:float +lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 data:float +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0x50 data:float +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:4byte +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x44 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local +lbl_1_data_674 = .data:0x00000674; // type:object size:0xC +lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x28 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_data_6C0 = .data:0x000006C0; // type:object size:0xB0 data:4byte +lbl_1_data_770 = .data:0x00000770; // type:object size:0x24 +lbl_1_data_794 = .data:0x00000794; // type:object size:0x6C +lbl_1_data_800 = .data:0x00000800; // type:object size:0x24 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x4 data:4byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x4 data:4byte +lbl_1_bss_7B0 = .bss:0x000007B0; // type:object size:0x8 data:4byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x10 +lbl_1_bss_7C8 = .bss:0x000007C8; // type:object size:0x4 data:4byte +lbl_1_bss_7CC = .bss:0x000007CC; // type:object size:0x4 data:4byte +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x14 diff --git a/config/GMPJ01_00/rels/m438Dll/splits.txt b/config/GMPJ01_00/rels/m438Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m438Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m438Dll/symbols.txt b/config/GMPJ01_00/rels/m438Dll/symbols.txt new file mode 100644 index 00000000..7ea887f2 --- /dev/null +++ b/config/GMPJ01_00/rels/m438Dll/symbols.txt @@ -0,0 +1,462 @@ +_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:0x43C +fn_1_4DC = .text:0x000004DC; // type:function size:0x20 +fn_1_4FC = .text:0x000004FC; // type:function size:0x478 +fn_1_974 = .text:0x00000974; // type:function size:0x800 +fn_1_1174 = .text:0x00001174; // type:function size:0x90 +fn_1_1204 = .text:0x00001204; // type:function size:0x19C +fn_1_13A0 = .text:0x000013A0; // type:function size:0x9C0 +fn_1_1D60 = .text:0x00001D60; // type:function size:0x1AC +fn_1_1F0C = .text:0x00001F0C; // type:function size:0x164 +fn_1_2070 = .text:0x00002070; // type:function size:0x4F4 +fn_1_2564 = .text:0x00002564; // type:function size:0xA0 +fn_1_2604 = .text:0x00002604; // type:function size:0x2B8 +fn_1_28BC = .text:0x000028BC; // type:function size:0x28 +fn_1_28E4 = .text:0x000028E4; // type:function size:0x80 +fn_1_2964 = .text:0x00002964; // type:function size:0x3EC +fn_1_2D50 = .text:0x00002D50; // type:function size:0xFC +fn_1_2E4C = .text:0x00002E4C; // type:function size:0x770 +fn_1_35BC = .text:0x000035BC; // type:function size:0x4 +fn_1_35C0 = .text:0x000035C0; // type:function size:0xDB4 +fn_1_4374 = .text:0x00004374; // type:function size:0x3B0 +fn_1_4724 = .text:0x00004724; // type:function size:0x260 +fn_1_4984 = .text:0x00004984; // type:function size:0x5CC +fn_1_4F50 = .text:0x00004F50; // type:function size:0xDFC +fn_1_5D4C = .text:0x00005D4C; // type:function size:0x570 +fn_1_62BC = .text:0x000062BC; // type:function size:0xF4 +fn_1_63B0 = .text:0x000063B0; // type:function size:0x68C +fn_1_6A3C = .text:0x00006A3C; // type:function size:0x8C4 +fn_1_7300 = .text:0x00007300; // type:function size:0x558 +fn_1_7858 = .text:0x00007858; // type:function size:0x300 +fn_1_7B58 = .text:0x00007B58; // type:function size:0x64 +fn_1_7BBC = .text:0x00007BBC; // type:function size:0x40 +fn_1_7BFC = .text:0x00007BFC; // type:function size:0xA0 +fn_1_7C9C = .text:0x00007C9C; // type:function size:0x94 +fn_1_7D30 = .text:0x00007D30; // type:function size:0x84 +fn_1_7DB4 = .text:0x00007DB4; // type:function size:0x24 +fn_1_7DD8 = .text:0x00007DD8; // type:function size:0x104 +fn_1_7EDC = .text:0x00007EDC; // type:function size:0x168 +fn_1_8044 = .text:0x00008044; // type:function size:0x120 +fn_1_8164 = .text:0x00008164; // type:function size:0x39C +fn_1_8500 = .text:0x00008500; // type:function size:0x250 +fn_1_8750 = .text:0x00008750; // type:function size:0x78 +fn_1_87C8 = .text:0x000087C8; // type:function size:0x11C +fn_1_88E4 = .text:0x000088E4; // type:function size:0x78 +fn_1_895C = .text:0x0000895C; // type:function size:0x2D8 +fn_1_8C34 = .text:0x00008C34; // type:function size:0x2B8 +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x154 +fn_1_9040 = .text:0x00009040; // type:function size:0x3E0 +fn_1_9420 = .text:0x00009420; // type:function size:0x214 +fn_1_9634 = .text:0x00009634; // type:function size:0x198 +fn_1_97CC = .text:0x000097CC; // type:function size:0xD8 +fn_1_98A4 = .text:0x000098A4; // type:function size:0xBC +fn_1_9960 = .text:0x00009960; // type:function size:0x33C +fn_1_9C9C = .text:0x00009C9C; // type:function size:0x4B0 +fn_1_A14C = .text:0x0000A14C; // type:function size:0x4C0 +fn_1_A60C = .text:0x0000A60C; // type:function size:0x7C +fn_1_A688 = .text:0x0000A688; // type:function size:0x4 +fn_1_A68C = .text:0x0000A68C; // type:function size:0x270 +fn_1_A8FC = .text:0x0000A8FC; // type:function size:0x51C +fn_1_AE18 = .text:0x0000AE18; // type:function size:0x628 +fn_1_B440 = .text:0x0000B440; // type:function size:0x98 +fn_1_B4D8 = .text:0x0000B4D8; // type:function size:0x70 +fn_1_B548 = .text:0x0000B548; // type:function size:0x4 +fn_1_B54C = .text:0x0000B54C; // type:function size:0x9D4 +fn_1_BF20 = .text:0x0000BF20; // type:function size:0x844 +fn_1_C764 = .text:0x0000C764; // type:function size:0x184 +fn_1_C8E8 = .text:0x0000C8E8; // type:function size:0x1C8 +fn_1_CAB0 = .text:0x0000CAB0; // type:function size:0x94C +fn_1_D3FC = .text:0x0000D3FC; // type:function size:0x180 +fn_1_D57C = .text:0x0000D57C; // type:function size:0x4E8 +fn_1_DA64 = .text:0x0000DA64; // type:function size:0x43C +fn_1_DEA0 = .text:0x0000DEA0; // type:function size:0xD0 +fn_1_DF70 = .text:0x0000DF70; // type:function size:0xC4 +fn_1_E034 = .text:0x0000E034; // type:function size:0x454 +fn_1_E488 = .text:0x0000E488; // type:function size:0x11C +fn_1_E5A4 = .text:0x0000E5A4; // type:function size:0xB4 +fn_1_E658 = .text:0x0000E658; // type:function size:0x138 +fn_1_E790 = .text:0x0000E790; // type:function size:0xDA8 +fn_1_F538 = .text:0x0000F538; // type:function size:0x12C +fn_1_F664 = .text:0x0000F664; // type:function size:0x1C +fn_1_F680 = .text:0x0000F680; // type:function size:0x2C +fn_1_F6AC = .text:0x0000F6AC; // type:function size:0x1C +fn_1_F6C8 = .text:0x0000F6C8; // type:function size:0x184 +fn_1_F84C = .text:0x0000F84C; // type:function size:0xA0 +fn_1_F8EC = .text:0x0000F8EC; // type:function size:0xA8 +fn_1_F994 = .text:0x0000F994; // type:function size:0x8C +fn_1_FA20 = .text:0x0000FA20; // type:function size:0x98 +fn_1_FAB8 = .text:0x0000FAB8; // type:function size:0x288 +fn_1_FD40 = .text:0x0000FD40; // type:function size:0x518 +fn_1_10258 = .text:0x00010258; // type:function size:0x564 +fn_1_107BC = .text:0x000107BC; // type:function size:0x128 +fn_1_108E4 = .text:0x000108E4; // type:function size:0x2C +fn_1_10910 = .text:0x00010910; // type:function size:0x3A8 +fn_1_10CB8 = .text:0x00010CB8; // type:function size:0x254 +fn_1_10F0C = .text:0x00010F0C; // type:function size:0x80 +fn_1_10F8C = .text:0x00010F8C; // type:function size:0x8C +fn_1_11018 = .text:0x00011018; // type:function size:0x9C +fn_1_110B4 = .text:0x000110B4; // type:function size:0x5A4 +fn_1_11658 = .text:0x00011658; // type:function size:0x238 +fn_1_11890 = .text:0x00011890; // type:function size:0x6C +fn_1_118FC = .text:0x000118FC; // type:function size:0x70 +fn_1_1196C = .text:0x0001196C; // type:function size:0x74 +fn_1_119E0 = .text:0x000119E0; // type:function size:0x84 +fn_1_11A64 = .text:0x00011A64; // type:function size:0x88 +fn_1_11AEC = .text:0x00011AEC; // type:function size:0x8C +fn_1_11B78 = .text:0x00011B78; // type:function size:0x70 +fn_1_11BE8 = .text:0x00011BE8; // type:function size:0x74 +fn_1_11C5C = .text:0x00011C5C; // type:function size:0x6C +fn_1_11CC8 = .text:0x00011CC8; // type:function size:0x70 +fn_1_11D38 = .text:0x00011D38; // type:function size:0x74 +fn_1_11DAC = .text:0x00011DAC; // type:function size:0x6C +fn_1_11E18 = .text:0x00011E18; // type:function size:0x70 +fn_1_11E88 = .text:0x00011E88; // type:function size:0x74 +fn_1_11EFC = .text:0x00011EFC; // type:function size:0x6C +fn_1_11F68 = .text:0x00011F68; // type:function size:0x70 +fn_1_11FD8 = .text:0x00011FD8; // type:function size:0x74 +fn_1_1204C = .text:0x0001204C; // type:function size:0x44 +fn_1_12090 = .text:0x00012090; // type:function size:0x70 +fn_1_12100 = .text:0x00012100; // type:function size:0x74 +fn_1_12174 = .text:0x00012174; // type:function size:0x44 +fn_1_121B8 = .text:0x000121B8; // type:function size:0x70 +fn_1_12228 = .text:0x00012228; // type:function size:0x74 +fn_1_1229C = .text:0x0001229C; // type:function size:0x5C +fn_1_122F8 = .text:0x000122F8; // type:function size:0x80 +fn_1_12378 = .text:0x00012378; // type:function size:0x74 +fn_1_123EC = .text:0x000123EC; // type:function size:0x78 +fn_1_12464 = .text:0x00012464; // type:function size:0x68 +fn_1_124CC = .text:0x000124CC; // type:function size:0x6C +fn_1_12538 = .text:0x00012538; // type:function size:0x68 +fn_1_125A0 = .text:0x000125A0; // type:function size:0x6C +fn_1_1260C = .text:0x0001260C; // type:function size:0x68 +fn_1_12674 = .text:0x00012674; // type:function size:0x6C +fn_1_126E0 = .text:0x000126E0; // type:function size:0x6C +fn_1_1274C = .text:0x0001274C; // type:function size:0x78 +fn_1_127C4 = .text:0x000127C4; // type:function size:0x98 +fn_1_1285C = .text:0x0001285C; // type:function size:0x6C +fn_1_128C8 = .text:0x000128C8; // type:function size:0x78 +fn_1_12940 = .text:0x00012940; // type:function size:0x98 +fn_1_129D8 = .text:0x000129D8; // type:function size:0x70 +fn_1_12A48 = .text:0x00012A48; // type:function size:0x78 +fn_1_12AC0 = .text:0x00012AC0; // type:function size:0x98 +fn_1_12B58 = .text:0x00012B58; // type:function size:0x40 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x10 data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x30 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x10 data:byte +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 +jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 +lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x24 +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6C +lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C +lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 +lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +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:0x288 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:4byte +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x900 data:float +lbl_1_bss_B98 = .bss:0x00000B98; // type:object size:0xC data:4byte +lbl_1_bss_BA4 = .bss:0x00000BA4; // type:object size:0x200 +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x4 data:4byte +lbl_1_bss_DA8 = .bss:0x00000DA8; // type:object size:0x2 data:2byte +lbl_1_bss_DAA = .bss:0x00000DAA; // type:object size:0x8 data:2byte +lbl_1_bss_DB2 = .bss:0x00000DB2; // type:object size:0x2 data:2byte +lbl_1_bss_DB4 = .bss:0x00000DB4; // type:object size:0x2 data:2byte +lbl_1_bss_DB6 = .bss:0x00000DB6; // type:object size:0x2 data:2byte +lbl_1_bss_DB8 = .bss:0x00000DB8; // type:object size:0x2 data:2byte +lbl_1_bss_DBA = .bss:0x00000DBA; // type:object size:0x2 data:2byte +lbl_1_bss_DBC = .bss:0x00000DBC; // type:object size:0x4 data:4byte +lbl_1_bss_DC0 = .bss:0x00000DC0; // type:object size:0x4 data:4byte +lbl_1_bss_DC4 = .bss:0x00000DC4; // type:object size:0x10 +lbl_1_bss_DD4 = .bss:0x00000DD4; // type:object size:0x4 data:4byte +lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte +lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte +lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x48 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte +lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte +lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte +lbl_1_bss_108C = .bss:0x0000108C; // type:object size:0x18 data:4byte diff --git a/config/GMPJ01_00/rels/m444dll/splits.txt b/config/GMPJ01_00/rels/m444dll/splits.txt new file mode 100644 index 00000000..d8c548ff --- /dev/null +++ b/config/GMPJ01_00/rels/m444dll/splits.txt @@ -0,0 +1,32 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m444dll/main.c: + .text start:0x000000A0 end:0x00008434 + .rodata start:0x00000000 end:0x00000278 + .data start:0x00000000 end:0x00000258 + .bss start:0x00000000 end:0x00000310 + +REL/m444dll/pinball.c: + .text start:0x00008434 end:0x0000D598 + .rodata start:0x00000278 end:0x00000428 + .data start:0x00000258 end:0x00000470 + .bss start:0x00000310 end:0x00019904 + +REL/m444dll/datalist.c: + .text start:0x0000D598 end:0x0000D9D8 + .rodata start:0x00000428 end:0x00000438 + .data start:0x00000470 end:0x000016EC + .bss start:0x00019908 end:0x00019A76 + +REL/m444dll/shadow.c: + .text start:0x0000D9D8 end:0x0000DE30 + .rodata start:0x00000438 end:0x00000474 diff --git a/config/GMPJ01_00/rels/m444dll/symbols.txt b/config/GMPJ01_00/rels/m444dll/symbols.txt new file mode 100644 index 00000000..a6bc53d3 --- /dev/null +++ b/config/GMPJ01_00/rels/m444dll/symbols.txt @@ -0,0 +1,320 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x3E0 +fn_1_470 = .text:0x00000480; // type:function size:0x370C +fn_1_3B7C = .text:0x00003B8C; // type:function size:0x1270 +fn_1_4DEC = .text:0x00004DFC; // type:function size:0x7C4 +fn_1_55B0 = .text:0x000055C0; // type:function size:0x1C4 +fn_1_5774 = .text:0x00005784; // type:function size:0x6F4 +fn_1_5E68 = .text:0x00005E78; // type:function size:0x6F4 +fn_1_655C = .text:0x0000656C; // type:function size:0x824 +fn_1_6D80 = .text:0x00006D90; // type:function size:0xBC +fn_1_6E3C = .text:0x00006E4C; // type:function size:0xA0 +fn_1_6EDC = .text:0x00006EEC; // type:function size:0x3B4 +fn_1_7290 = .text:0x000072A0; // type:function size:0xC2C +fn_1_7EBC = .text:0x00007ECC; // type:function size:0x2C4 +fn_1_8180 = .text:0x00008190; // type:function size:0x90 +fn_1_8210 = .text:0x00008220; // type:function size:0xEC +fn_1_82FC = .text:0x0000830C; // type:function size:0x128 +fn_1_8424 = .text:0x00008434; // type:function size:0x1F8 +fn_1_861C = .text:0x0000862C; // type:function size:0x7B4 +fn_1_8DD0 = .text:0x00008DE0; // type:function size:0x648 +fn_1_9418 = .text:0x00009428; // type:function size:0x894 +fn_1_9CAC = .text:0x00009CBC; // type:function size:0x3B4 +fn_1_A060 = .text:0x0000A070; // type:function size:0xB70 +fn_1_ABD0 = .text:0x0000ABE0; // type:function size:0x618 +fn_1_B1E8 = .text:0x0000B1F8; // type:function size:0x102C +fn_1_C214 = .text:0x0000C224; // type:function size:0x528 +fn_1_C73C = .text:0x0000C74C; // type:function size:0x2F4 +fn_1_CA30 = .text:0x0000CA40; // type:function size:0x140 +fn_1_CB70 = .text:0x0000CB80; // type:function size:0x298 +fn_1_CE08 = .text:0x0000CE18; // type:function size:0x194 +fn_1_CF9C = .text:0x0000CFAC; // type:function size:0x244 +fn_1_D1E0 = .text:0x0000D1F0; // type:function size:0x3A8 +fn_1_D588 = .text:0x0000D598; // type:function size:0x290 +fn_1_D818 = .text:0x0000D828; // type:function size:0x138 +fn_1_D950 = .text:0x0000D960; // type:function size:0x78 +fn_1_D9C8 = .text:0x0000D9D8; // type:function size:0x2C +fn_1_D9F4 = .text:0x0000DA04; // type:function size:0x42C +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA scope:local data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA scope:local data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA scope:local data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD scope:local data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD scope:local data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB scope:local data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA scope:local data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA scope:local +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD scope:local data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD scope:local data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD scope:local data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD scope:local data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD scope:local data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD scope:local data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD scope:local data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD scope:local data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD scope:local data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD scope:local data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD scope:local data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD scope:local data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 scope:local data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x14 +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPJ01_00/rels/m449Dll/splits.txt b/config/GMPJ01_00/rels/m449Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m449Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m449Dll/symbols.txt b/config/GMPJ01_00/rels/m449Dll/symbols.txt new file mode 100644 index 00000000..d2709158 --- /dev/null +++ b/config/GMPJ01_00/rels/m449Dll/symbols.txt @@ -0,0 +1,210 @@ +_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:0x358 +fn_1_3F8 = .text:0x000003F8; // type:function size:0x360 +fn_1_758 = .text:0x00000758; // type:function size:0x5EB8 +fn_1_6610 = .text:0x00006610; // type:function size:0x8 +fn_1_6618 = .text:0x00006618; // type:function size:0x2C +fn_1_6644 = .text:0x00006644; // type:function size:0x140 +fn_1_6784 = .text:0x00006784; // type:function size:0xCC +fn_1_6850 = .text:0x00006850; // type:function size:0x958 +fn_1_71A8 = .text:0x000071A8; // type:function size:0x39C +fn_1_7544 = .text:0x00007544; // type:function size:0x988 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0xC8 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x5A4 +fn_1_8538 = .text:0x00008538; // type:function size:0xFC0 +fn_1_94F8 = .text:0x000094F8; // type:function size:0xE0 +fn_1_95D8 = .text:0x000095D8; // type:function size:0x460 +fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C +_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:0x10 +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 data:4byte +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float +jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/config/GMPJ01_00/rels/m457Dll/splits.txt b/config/GMPJ01_00/rels/m457Dll/splits.txt new file mode 100644 index 00000000..b1f5db69 --- /dev/null +++ b/config/GMPJ01_00/rels/m457Dll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m457Dll/main.c: + .text start:0x000000A0 end:0x00007B60 + .rodata start:0x00000000 end:0x00000578 + .data start:0x00000000 end:0x000003E7 + .bss start:0x00000000 end:0x000000C8 diff --git a/config/GMPJ01_00/rels/m457Dll/symbols.txt b/config/GMPJ01_00/rels/m457Dll/symbols.txt new file mode 100644 index 00000000..fd8c1e4e --- /dev/null +++ b/config/GMPJ01_00/rels/m457Dll/symbols.txt @@ -0,0 +1,178 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x281C scope:local +WrestleMesMain = .text:0x000054E0; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005700; // type:function size:0x29C scope:local +M457Main = .text:0x0000599C; // type:function size:0xB3C scope:local +M457GameSetup = .text:0x000064D8; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00006F90; // type:function size:0x5F4 scope:local +M457Setup = .text:0x00007584; // type:function size:0xC0 scope:local +ObjectSetup = .text:0x00007644; // type:function size:0x480 +M457Exit = .text:0x00007AC4; // type:function size:0x9C 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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x5C +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x5C +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C data:4byte scope:local +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float scope:local +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte scope:local +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte scope:local +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 data:4byte scope:local +windSeNo = .data:0x000002AC; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte scope:local +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string +jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local +jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte scope:local +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float scope:local +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float scope:local +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float scope:local +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local +jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte scope:local +m457MesEndF = .bss:0x00000010; // type:object size:0x4 data:4byte scope:local +againstBrowserF = .bss:0x00000014; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float scope:local +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float scope:local +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float scope:local +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte scope:local +lightId = .bss:0x00000048; // type:object size:0x4 data:4byte scope:local +objman = .bss:0x0000004C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte scope:local +gameState = .bss:0x0000005C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte scope:local +gameObj = .bss:0x00000064; // type:object size:0x4 data:4byte scope:local +playerObj = .bss:0x00000068; // type:object size:0x8 data:4byte scope:local +omViewObj = .bss:0x00000070; // type:object size:0x4 data:4byte scope:local +mainObj = .bss:0x00000074; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte scope:local diff --git a/config/GMPJ01_00/rels/m458Dll/splits.txt b/config/GMPJ01_00/rels/m458Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m458Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m458Dll/symbols.txt b/config/GMPJ01_00/rels/m458Dll/symbols.txt new file mode 100644 index 00000000..5c135c78 --- /dev/null +++ b/config/GMPJ01_00/rels/m458Dll/symbols.txt @@ -0,0 +1,176 @@ +_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:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x3044 +fn_1_350C = .text:0x0000350C; // type:function size:0x16DC +fn_1_4BE8 = .text:0x00004BE8; // type:function size:0x15C +fn_1_4D44 = .text:0x00004D44; // type:function size:0x2D0 +fn_1_5014 = .text:0x00005014; // type:function size:0x9C8 +fn_1_59DC = .text:0x000059DC; // type:function size:0x938 +fn_1_6314 = .text:0x00006314; // type:function size:0x548 +fn_1_685C = .text:0x0000685C; // type:function size:0xC0 +fn_1_691C = .text:0x0000691C; // type:function size:0x480 +fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 +_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:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte +lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x18 data:float +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_data_12E = .data:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte +lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte +lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x90 diff --git a/config/GMPJ01_00/rels/m459dll/splits.txt b/config/GMPJ01_00/rels/m459dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m459dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m459dll/symbols.txt b/config/GMPJ01_00/rels/m459dll/symbols.txt new file mode 100644 index 00000000..ee18477b --- /dev/null +++ b/config/GMPJ01_00/rels/m459dll/symbols.txt @@ -0,0 +1,169 @@ +_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:0x138 +fn_1_1D8 = .text:0x000001D8; // type:function size:0x468 +fn_1_640 = .text:0x00000640; // type:function size:0xFC +fn_1_73C = .text:0x0000073C; // type:function size:0x73C +fn_1_E78 = .text:0x00000E78; // type:function size:0x364 +fn_1_11DC = .text:0x000011DC; // type:function size:0x28 +fn_1_1204 = .text:0x00001204; // type:function size:0x28 +fn_1_122C = .text:0x0000122C; // type:function size:0x200 +fn_1_142C = .text:0x0000142C; // type:function size:0x8C +fn_1_14B8 = .text:0x000014B8; // type:function size:0x2C0 +fn_1_1778 = .text:0x00001778; // type:function size:0x124 +fn_1_189C = .text:0x0000189C; // type:function size:0x118 +fn_1_19B4 = .text:0x000019B4; // type:function size:0x4C +fn_1_1A00 = .text:0x00001A00; // type:function size:0x5DC +fn_1_1FDC = .text:0x00001FDC; // type:function size:0x68 +fn_1_2044 = .text:0x00002044; // type:function size:0x168 +fn_1_21AC = .text:0x000021AC; // type:function size:0x200 +fn_1_23AC = .text:0x000023AC; // type:function size:0x21C +fn_1_25C8 = .text:0x000025C8; // type:function size:0x200 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x168 +fn_1_2930 = .text:0x00002930; // type:function size:0x1F4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x3F4 +fn_1_2F18 = .text:0x00002F18; // type:function size:0xEC +fn_1_3004 = .text:0x00003004; // type:function size:0x388 +fn_1_338C = .text:0x0000338C; // type:function size:0x374 +fn_1_3700 = .text:0x00003700; // type:function size:0xA60 +fn_1_4160 = .text:0x00004160; // type:function size:0xB0 +fn_1_4210 = .text:0x00004210; // type:function size:0x104 +fn_1_4314 = .text:0x00004314; // type:function size:0x21C +fn_1_4530 = .text:0x00004530; // type:function size:0xBC +fn_1_45EC = .text:0x000045EC; // type:function size:0x178 +fn_1_4764 = .text:0x00004764; // type:function size:0x80 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x6C +fn_1_4850 = .text:0x00004850; // type:function size:0x94 +fn_1_48E4 = .text:0x000048E4; // type:function size:0x190 +fn_1_4A74 = .text:0x00004A74; // type:function size:0xF4 +fn_1_4B68 = .text:0x00004B68; // type:function size:0xB4 +fn_1_4C1C = .text:0x00004C1C; // type:function size:0xB4 +fn_1_4CD0 = .text:0x00004CD0; // type:function size:0x184 +fn_1_4E54 = .text:0x00004E54; // type:function size:0x10 +fn_1_4E64 = .text:0x00004E64; // type:function size:0x20 +fn_1_4E84 = .text:0x00004E84; // type:function size:0x14 +fn_1_4E98 = .text:0x00004E98; // type:function size:0x14 +fn_1_4EAC = .text:0x00004EAC; // type:function size:0xE0 +fn_1_4F8C = .text:0x00004F8C; // type:function size:0x20 +fn_1_4FAC = .text:0x00004FAC; // type:function size:0x1C +fn_1_4FC8 = .text:0x00004FC8; // type:function size:0x310 +fn_1_52D8 = .text:0x000052D8; // type:function size:0x18 +fn_1_52F0 = .text:0x000052F0; // type:function size:0x10 +fn_1_5300 = .text:0x00005300; // type:function size:0x10 +fn_1_5310 = .text:0x00005310; // type:function size:0x4C +fn_1_535C = .text:0x0000535C; // type:function size:0x134 +fn_1_5490 = .text:0x00005490; // type:function size:0xDC +fn_1_556C = .text:0x0000556C; // type:function size:0x44 +fn_1_55B0 = .text:0x000055B0; // type:function size:0x4C8 +fn_1_5A78 = .text:0x00005A78; // type:function size:0x3C4 +fn_1_5E3C = .text:0x00005E3C; // type:function size:0x70 +fn_1_5EAC = .text:0x00005EAC; // type:function size:0x94 +fn_1_5F40 = .text:0x00005F40; // type:function size:0x44 +fn_1_5F84 = .text:0x00005F84; // type:function size:0x214 +fn_1_6198 = .text:0x00006198; // type:function size:0x2C0 +fn_1_6458 = .text:0x00006458; // type:function size:0x128 +_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:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:wstring +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1D +jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local +lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x18 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x50 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x550 data:4byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x7C data:float +lbl_1_bss_698 = .bss:0x00000698; // type:object size:0x4C data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m462Dll/splits.txt b/config/GMPJ01_00/rels/m462Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m462Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m462Dll/symbols.txt b/config/GMPJ01_00/rels/m462Dll/symbols.txt new file mode 100644 index 00000000..619006c8 --- /dev/null +++ b/config/GMPJ01_00/rels/m462Dll/symbols.txt @@ -0,0 +1,144 @@ +_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:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x1014 +fn_1_14B4 = .text:0x000014B4; // type:function size:0x80 +fn_1_1534 = .text:0x00001534; // type:function size:0x80 +fn_1_15B4 = .text:0x000015B4; // type:function size:0x80 +fn_1_1634 = .text:0x00001634; // type:function size:0xC4 +fn_1_16F8 = .text:0x000016F8; // type:function size:0x54 +fn_1_174C = .text:0x0000174C; // type:function size:0x54 +fn_1_17A0 = .text:0x000017A0; // type:function size:0xE0 +fn_1_1880 = .text:0x00001880; // type:function size:0x354 +fn_1_1BD4 = .text:0x00001BD4; // type:function size:0x23C +fn_1_1E10 = .text:0x00001E10; // type:function size:0x11CC +fn_1_2FDC = .text:0x00002FDC; // type:function size:0x14FC +fn_1_44D8 = .text:0x000044D8; // type:function size:0x16C +fn_1_4644 = .text:0x00004644; // type:function size:0x580 +fn_1_4BC4 = .text:0x00004BC4; // type:function size:0x898 +fn_1_545C = .text:0x0000545C; // type:function size:0x4F0 +fn_1_594C = .text:0x0000594C; // type:function size:0x498 +fn_1_5DE4 = .text:0x00005DE4; // type:function size:0x498 +fn_1_627C = .text:0x0000627C; // type:function size:0x74 +fn_1_62F0 = .text:0x000062F0; // type:function size:0x7C +fn_1_636C = .text:0x0000636C; // type:function size:0x48 +fn_1_63B4 = .text:0x000063B4; // type:function size:0x48 +fn_1_63FC = .text:0x000063FC; // type:function size:0x1D4 +fn_1_65D0 = .text:0x000065D0; // type:function size:0x220 +fn_1_67F0 = .text:0x000067F0; // type:function size:0x104 +fn_1_68F4 = .text:0x000068F4; // type:function size:0x70 +fn_1_6964 = .text:0x00006964; // type:function size:0x5C +fn_1_69C0 = .text:0x000069C0; // type:function size:0x137C +fn_1_7D3C = .text:0x00007D3C; // type:function size:0x4 +fn_1_7D40 = .text:0x00007D40; // type:function size:0x60 +fn_1_7DA0 = .text:0x00007DA0; // type:function size:0x3BC +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x48 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2D0 +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x98 data:float +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x4 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_bss_3E0 = .bss:0x000003E0; // type:object size:0x4 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0x4 data:4byte +lbl_1_bss_3E8 = .bss:0x000003E8; // type:object size:0x2 data:2byte +lbl_1_bss_3EA = .bss:0x000003EA; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m463Dll/splits.txt b/config/GMPJ01_00/rels/m463Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m463Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m463Dll/symbols.txt b/config/GMPJ01_00/rels/m463Dll/symbols.txt new file mode 100644 index 00000000..87b16e8f --- /dev/null +++ b/config/GMPJ01_00/rels/m463Dll/symbols.txt @@ -0,0 +1,164 @@ +_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:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x2D9C +fn_1_3264 = .text:0x00003264; // type:function size:0x1210 +fn_1_4474 = .text:0x00004474; // type:function size:0x184 +fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA8 +fn_1_53A0 = .text:0x000053A0; // type:function size:0x4B0 +fn_1_5850 = .text:0x00005850; // type:function size:0x854 +fn_1_60A4 = .text:0x000060A4; // type:function size:0x98 +fn_1_613C = .text:0x0000613C; // type:function size:0x460 +fn_1_659C = .text:0x0000659C; // type:function size:0x11C +_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:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 +lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte +lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:float +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float +jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte +lbl_1_bss_51C = .bss:0x0000051C; // type:object size:0x90 diff --git a/config/GMPJ01_00/rels/mentDll/splits.txt b/config/GMPJ01_00/rels/mentDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mentDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mentDll/symbols.txt b/config/GMPJ01_00/rels/mentDll/symbols.txt new file mode 100644 index 00000000..1be34e66 --- /dev/null +++ b/config/GMPJ01_00/rels/mentDll/symbols.txt @@ -0,0 +1,442 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +_prolog = .text:0x000000A4; // type:function size:0x54 scope:global +_epilog = .text:0x000000F8; // type:function size:0x4C scope:global +fn_1_144 = .text:0x00000144; // type:function size:0xC8 +fn_1_20C = .text:0x0000020C; // type:function size:0x28 +fn_1_234 = .text:0x00000234; // type:function size:0x20 +fn_1_254 = .text:0x00000254; // type:function size:0xD8 +fn_1_32C = .text:0x0000032C; // type:function size:0xC8 +fn_1_3F4 = .text:0x000003F4; // type:function size:0xBC +fn_1_4B0 = .text:0x000004B0; // type:function size:0x28 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x20 +fn_1_4F8 = .text:0x000004F8; // type:function size:0x14 +fn_1_50C = .text:0x0000050C; // type:function size:0xDC +fn_1_5E8 = .text:0x000005E8; // type:function size:0xE8 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x24 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xA48 +fn_1_113C = .text:0x0000113C; // type:function size:0x2F8 +fn_1_1434 = .text:0x00001434; // type:function size:0x218 +fn_1_164C = .text:0x0000164C; // type:function size:0x60 +fn_1_16AC = .text:0x000016AC; // type:function size:0x68 +fn_1_1714 = .text:0x00001714; // type:function size:0x90 +fn_1_17A4 = .text:0x000017A4; // type:function size:0x134 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x50 +fn_1_1928 = .text:0x00001928; // type:function size:0x40 +fn_1_1968 = .text:0x00001968; // type:function size:0xF4 +fn_1_1A5C = .text:0x00001A5C; // type:function size:0x37C +fn_1_1DD8 = .text:0x00001DD8; // type:function size:0x37C +fn_1_2154 = .text:0x00002154; // type:function size:0x1C4 +fn_1_2318 = .text:0x00002318; // type:function size:0x54 +fn_1_236C = .text:0x0000236C; // type:function size:0x3E4 +fn_1_2750 = .text:0x00002750; // type:function size:0xB8 +fn_1_2808 = .text:0x00002808; // type:function size:0x3C +fn_1_2844 = .text:0x00002844; // type:function size:0x120 +fn_1_2964 = .text:0x00002964; // type:function size:0x3C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x44 +fn_1_29E4 = .text:0x000029E4; // type:function size:0x26C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x26C +fn_1_2EBC = .text:0x00002EBC; // type:function size:0x27C +fn_1_3138 = .text:0x00003138; // type:function size:0x2B4 +fn_1_33EC = .text:0x000033EC; // type:function size:0x46C +fn_1_3858 = .text:0x00003858; // type:function size:0x454 +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x48C +fn_1_4138 = .text:0x00004138; // type:function size:0x658 +fn_1_4790 = .text:0x00004790; // type:function size:0x4C4 +fn_1_4C54 = .text:0x00004C54; // type:function size:0x4FC +fn_1_5150 = .text:0x00005150; // type:function size:0x6C8 +fn_1_5818 = .text:0x00005818; // type:function size:0x188 +fn_1_59A0 = .text:0x000059A0; // type:function size:0x1B0 +fn_1_5B50 = .text:0x00005B50; // type:function size:0xB8 +fn_1_5C08 = .text:0x00005C08; // type:function size:0xD4 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x5C +fn_1_5D38 = .text:0x00005D38; // type:function size:0x7FC +fn_1_6534 = .text:0x00006534; // type:function size:0x58 +fn_1_658C = .text:0x0000658C; // type:function size:0x6C0 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x4D8 +fn_1_7124 = .text:0x00007124; // type:function size:0xF4 +fn_1_7218 = .text:0x00007218; // type:function size:0xEC +fn_1_7304 = .text:0x00007304; // type:function size:0x380 +fn_1_7684 = .text:0x00007684; // type:function size:0x13C +fn_1_77C0 = .text:0x000077C0; // type:function size:0x98 +fn_1_7858 = .text:0x00007858; // type:function size:0xA8 +fn_1_7900 = .text:0x00007900; // type:function size:0x114 +fn_1_7A14 = .text:0x00007A14; // type:function size:0x794 +fn_1_81A8 = .text:0x000081A8; // type:function size:0x30 +fn_1_81D8 = .text:0x000081D8; // type:function size:0x18 +fn_1_81F0 = .text:0x000081F0; // type:function size:0x5C +fn_1_824C = .text:0x0000824C; // type:function size:0x180 +fn_1_83CC = .text:0x000083CC; // type:function size:0x1FC +fn_1_85C8 = .text:0x000085C8; // type:function size:0x2DC +fn_1_88A4 = .text:0x000088A4; // type:function size:0x29C +fn_1_8B40 = .text:0x00008B40; // type:function size:0x28 +fn_1_8B68 = .text:0x00008B68; // type:function size:0x3DC +fn_1_8F44 = .text:0x00008F44; // type:function size:0x54 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x20 +fn_1_8FB8 = .text:0x00008FB8; // type:function size:0x314 +fn_1_92CC = .text:0x000092CC; // type:function size:0x618 +fn_1_98E4 = .text:0x000098E4; // type:function size:0xC8 +fn_1_99AC = .text:0x000099AC; // type:function size:0x20 +fn_1_99CC = .text:0x000099CC; // type:function size:0x6D8 +fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x20 +fn_1_A0C4 = .text:0x0000A0C4; // type:function size:0x2D8 +fn_1_A39C = .text:0x0000A39C; // type:function size:0x20 +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x5D4 +fn_1_A990 = .text:0x0000A990; // type:function size:0x20 +fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x3C8 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x30C +fn_1_B084 = .text:0x0000B084; // type:function size:0x5D0 +fn_1_B654 = .text:0x0000B654; // type:function size:0xB20 +fn_1_C174 = .text:0x0000C174; // type:function size:0x1E0 +fn_1_C354 = .text:0x0000C354; // type:function size:0xEC +fn_1_C440 = .text:0x0000C440; // type:function size:0x78 +fn_1_C4B8 = .text:0x0000C4B8; // type:function size:0x62C +fn_1_CAE4 = .text:0x0000CAE4; // type:function size:0x288 +fn_1_CD6C = .text:0x0000CD6C; // type:function size:0x20 +fn_1_CD8C = .text:0x0000CD8C; // type:function size:0x200 +fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x384 +fn_1_D310 = .text:0x0000D310; // type:function size:0x20 +fn_1_D330 = .text:0x0000D330; // type:function size:0x20 +fn_1_D350 = .text:0x0000D350; // type:function size:0x2E4 +fn_1_D634 = .text:0x0000D634; // type:function size:0x82C +fn_1_DE60 = .text:0x0000DE60; // type:function size:0x17C +fn_1_DFDC = .text:0x0000DFDC; // type:function size:0x268 +fn_1_E244 = .text:0x0000E244; // type:function size:0x70 +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x148 +fn_1_E3FC = .text:0x0000E3FC; // type:function size:0x90 +fn_1_E48C = .text:0x0000E48C; // type:function size:0x1C8 +fn_1_E654 = .text:0x0000E654; // type:function size:0xC8 +fn_1_E71C = .text:0x0000E71C; // type:function size:0x158 +fn_1_E874 = .text:0x0000E874; // type:function size:0xFC8 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x670 +fn_1_FEAC = .text:0x0000FEAC; // type:function size:0x388 +fn_1_10234 = .text:0x00010234; // type:function size:0x308 +fn_1_1053C = .text:0x0001053C; // type:function size:0x7C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x39C +fn_1_10954 = .text:0x00010954; // type:function size:0x308 +fn_1_10C5C = .text:0x00010C5C; // type:function size:0x7C +fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x39C +fn_1_11074 = .text:0x00011074; // type:function size:0x2F4 +fn_1_11368 = .text:0x00011368; // type:function size:0x138 +fn_1_114A0 = .text:0x000114A0; // type:function size:0x74 +fn_1_11514 = .text:0x00011514; // type:function size:0x1E0 +fn_1_116F4 = .text:0x000116F4; // type:function size:0x158 +fn_1_1184C = .text:0x0001184C; // type:function size:0xBC +fn_1_11908 = .text:0x00011908; // type:function size:0x1C8 +fn_1_11AD0 = .text:0x00011AD0; // type:function size:0x2D4 +fn_1_11DA4 = .text:0x00011DA4; // type:function size:0x434 +fn_1_121D8 = .text:0x000121D8; // type:function size:0x624 +fn_1_127FC = .text:0x000127FC; // type:function size:0x210 +fn_1_12A0C = .text:0x00012A0C; // type:function size:0x434 +fn_1_12E40 = .text:0x00012E40; // type:function size:0x508 +fn_1_13348 = .text:0x00013348; // type:function size:0x160 +fn_1_134A8 = .text:0x000134A8; // type:function size:0x1E4 +fn_1_1368C = .text:0x0001368C; // type:function size:0x64 +fn_1_136F0 = .text:0x000136F0; // type:function size:0xB4 +fn_1_137A4 = .text:0x000137A4; // type:function size:0x1CC +fn_1_13970 = .text:0x00013970; // type:function size:0x3F0 +fn_1_13D60 = .text:0x00013D60; // type:function size:0x8C +fn_1_13DEC = .text:0x00013DEC; // type:function size:0xF0 +fn_1_13EDC = .text:0x00013EDC; // type:function size:0x8C +fn_1_13F68 = .text:0x00013F68; // type:function size:0xF0 +fn_1_14058 = .text:0x00014058; // type:function size:0xF0 +fn_1_14148 = .text:0x00014148; // type:function size:0xF0 +fn_1_14238 = .text:0x00014238; // type:function size:0xF0 +fn_1_14328 = .text:0x00014328; // type:function size:0xF0 +fn_1_14418 = .text:0x00014418; // type:function size:0x2B8 +fn_1_146D0 = .text:0x000146D0; // type:function size:0xF0 +fn_1_147C0 = .text:0x000147C0; // type:function size:0xF0 +fn_1_148B0 = .text:0x000148B0; // type:function size:0xF0 +fn_1_149A0 = .text:0x000149A0; // type:function size:0x8C +fn_1_14A2C = .text:0x00014A2C; // type:function size:0x8C +fn_1_14AB8 = .text:0x00014AB8; // type:function size:0xF0 +fn_1_14BA8 = .text:0x00014BA8; // type:function size:0x138 +fn_1_14CE0 = .text:0x00014CE0; // type:function size:0x3B8 +fn_1_15098 = .text:0x00015098; // type:function size:0x120 +fn_1_151B8 = .text:0x000151B8; // type:function size:0x798 +fn_1_15950 = .text:0x00015950; // type:function size:0x364 +fn_1_15CB4 = .text:0x00015CB4; // type:function size:0x5EC +fn_1_162A0 = .text:0x000162A0; // type:function size:0x1EC +fn_1_1648C = .text:0x0001648C; // type:function size:0x6DC +fn_1_16B68 = .text:0x00016B68; // type:function size:0x894 +fn_1_173FC = .text:0x000173FC; // type:function size:0x518 +fn_1_17914 = .text:0x00017914; // type:function size:0xC8 +fn_1_179DC = .text:0x000179DC; // type:function size:0x2EC +fn_1_17CC8 = .text:0x00017CC8; // type:function size:0x454 +fn_1_1811C = .text:0x0001811C; // type:function size:0x3F0 +fn_1_1850C = .text:0x0001850C; // type:function size:0x220 +fn_1_1872C = .text:0x0001872C; // type:function size:0x5C +fn_1_18788 = .text:0x00018788; // type:function size:0x2CC +fn_1_18A54 = .text:0x00018A54; // type:function size:0x378 +fn_1_18DCC = .text:0x00018DCC; // type:function size:0x1A8 +fn_1_18F74 = .text:0x00018F74; // type:function size:0x174 +fn_1_190E8 = .text:0x000190E8; // type:function size:0xBB0 +fn_1_19C98 = .text:0x00019C98; // type:function size:0x1E94 +fn_1_1BB2C = .text:0x0001BB2C; // type:function size:0xA28 +fn_1_1C554 = .text:0x0001C554; // type:function size:0x120 +fn_1_1C674 = .text:0x0001C674; // type:function size:0xE0 +fn_1_1C754 = .text:0x0001C754; // type:function size:0x23C +fn_1_1C990 = .text:0x0001C990; // type:function size:0x238 +fn_1_1CBC8 = .text:0x0001CBC8; // type:function size:0x3A0 +fn_1_1CF68 = .text:0x0001CF68; // type:function size:0x594 +fn_1_1D4FC = .text:0x0001D4FC; // type:function size:0x9CC +fn_1_1DEC8 = .text:0x0001DEC8; // type:function size:0x70 +fn_1_1DF38 = .text:0x0001DF38; // type:function size:0x70 +fn_1_1DFA8 = .text:0x0001DFA8; // type:function size:0x1FC +fn_1_1E1A4 = .text:0x0001E1A4; // type:function size:0x250 +fn_1_1E3F4 = .text:0x0001E3F4; // type:function size:0x4A0 +fn_1_1E894 = .text:0x0001E894; // type:function size:0xD4C +fn_1_1F5E0 = .text:0x0001F5E0; // type:function size:0xC8 +fn_1_1F6A8 = .text:0x0001F6A8; // type:function size:0x1B0 +fn_1_1F858 = .text:0x0001F858; // type:function size:0x1CC +fn_1_1FA24 = .text:0x0001FA24; // type:function size:0x220 +fn_1_1FC44 = .text:0x0001FC44; // type:function size:0x1B4 +fn_1_1FDF8 = .text:0x0001FDF8; // type:function size:0x144 +fn_1_1FF3C = .text:0x0001FF3C; // type:function size:0x610 +fn_1_2054C = .text:0x0002054C; // type:function size:0x260 +fn_1_207AC = .text:0x000207AC; // type:function size:0x138 +fn_1_208E4 = .text:0x000208E4; // type:function size:0x130 +fn_1_20A14 = .text:0x00020A14; // type:function size:0x130 +fn_1_20B44 = .text:0x00020B44; // type:function size:0x5E0 +fn_1_21124 = .text:0x00021124; // type:function size:0x5F0 +fn_1_21714 = .text:0x00021714; // type:function size:0xED0 +fn_1_225E4 = .text:0x000225E4; // type:function size:0xE38 +fn_1_2341C = .text:0x0002341C; // type:function size:0x60C +_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 +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x40 data:4byte +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 +jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float +lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x14 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x20 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x15E0 +lbl_1_bss_16C4 = .bss:0x000016C4; // type:object size:0x1A40 +lbl_1_bss_3104 = .bss:0x00003104; // type:object size:0x4 data:4byte +lbl_1_bss_3108 = .bss:0x00003108; // type:object size:0xC data:4byte +lbl_1_bss_3114 = .bss:0x00003114; // type:object size:0x240 data:4byte +lbl_1_bss_3354 = .bss:0x00003354; // type:object size:0x58 data:4byte +lbl_1_bss_33AC = .bss:0x000033AC; // type:object size:0x210 data:4byte +lbl_1_bss_35BC = .bss:0x000035BC; // type:object size:0xB0 data:4byte +lbl_1_bss_366C = .bss:0x0000366C; // type:object size:0x58 data:4byte diff --git a/config/GMPJ01_00/rels/modeseldll/splits.txt b/config/GMPJ01_00/rels/modeseldll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/modeseldll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/modeseldll/symbols.txt b/config/GMPJ01_00/rels/modeseldll/symbols.txt new file mode 100644 index 00000000..9e826608 --- /dev/null +++ b/config/GMPJ01_00/rels/modeseldll/symbols.txt @@ -0,0 +1,270 @@ +_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 +fn_1_424 = .text:0x00000424; // type:function size:0x5E0 +fn_1_A04 = .text:0x00000A04; // type:function size:0xFC +fn_1_B00 = .text:0x00000B00; // type:function size:0x9C +fn_1_B9C = .text:0x00000B9C; // type:function size:0x3B4 +fn_1_F50 = .text:0x00000F50; // type:function size:0xC2C +fn_1_1B7C = .text:0x00001B7C; // type:function size:0x2C4 +fn_1_1E40 = .text:0x00001E40; // type:function size:0x90 +fn_1_1ED0 = .text:0x00001ED0; // type:function size:0x4A8 +fn_1_2378 = .text:0x00002378; // type:function size:0x128 +fn_1_24A0 = .text:0x000024A0; // type:function size:0x11D8 +fn_1_3678 = .text:0x00003678; // type:function size:0x174 +fn_1_37EC = .text:0x000037EC; // type:function size:0x2DC +fn_1_3AC8 = .text:0x00003AC8; // type:function size:0x1B80 +fn_1_5648 = .text:0x00005648; // type:function size:0x19C +fn_1_57E4 = .text:0x000057E4; // type:function size:0x88 +fn_1_586C = .text:0x0000586C; // type:function size:0x35C +fn_1_5BC8 = .text:0x00005BC8; // type:function size:0x8C +fn_1_5C54 = .text:0x00005C54; // type:function size:0xF8 +fn_1_5D4C = .text:0x00005D4C; // type:function size:0x484 +fn_1_61D0 = .text:0x000061D0; // type:function size:0x1134 +fn_1_7304 = .text:0x00007304; // type:function size:0x34C +fn_1_7650 = .text:0x00007650; // type:function size:0x8C +fn_1_76DC = .text:0x000076DC; // type:function size:0x4C0 +fn_1_7B9C = .text:0x00007B9C; // type:function size:0x5B8 +fn_1_8154 = .text:0x00008154; // type:function size:0x288 +fn_1_83DC = .text:0x000083DC; // type:function size:0x18C +fn_1_8568 = .text:0x00008568; // type:function size:0x6F0 +fn_1_8C58 = .text:0x00008C58; // type:function size:0x11DC +fn_1_9E34 = .text:0x00009E34; // type:function size:0x38 +fn_1_9E6C = .text:0x00009E6C; // type:function size:0xAE4 +fn_1_A950 = .text:0x0000A950; // type:function size:0x1F8 +fn_1_AB48 = .text:0x0000AB48; // type:function size:0xE20 +fn_1_B968 = .text:0x0000B968; // type:function size:0x154 +fn_1_BABC = .text:0x0000BABC; // type:function size:0x60 +fn_1_BB1C = .text:0x0000BB1C; // type:function size:0x458 +fn_1_BF74 = .text:0x0000BF74; // type:function size:0x290 +fn_1_C204 = .text:0x0000C204; // type:function size:0x154 +fn_1_C358 = .text:0x0000C358; // type:function size:0x78 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:byte +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x22 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x14 data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x4 +lbl_1_data_72 = .data:0x00000072; // type:object size:0xA data:string +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x4 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0xC +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_100 = .data:0x00000100; // type:object size:0x11C data:2byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3 +lbl_1_data_267 = .data:0x00000267; // type:object size:0x5 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x8 +lbl_1_data_274 = .data:0x00000274; // type:object size:0x2 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x2 data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:string +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 +lbl_1_data_288 = .data:0x00000288; // type:object size:0xC +lbl_1_data_294 = .data:0x00000294; // type:object size:0x19 data:string +lbl_1_data_2AD = .data:0x000002AD; // type:object size:0x23 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x1B data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x19 data:string +lbl_1_data_304 = .data:0x00000304; // type:object size:0x19 data:string +lbl_1_data_31D = .data:0x0000031D; // type:object size:0x20 data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x1B data:string +lbl_1_data_358 = .data:0x00000358; // type:object size:0x1B data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x22 data:string +lbl_1_data_395 = .data:0x00000395; // type:object size:0x5 data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x15 data:string +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x15 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x1F data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x10 data:string +lbl_1_data_3F3 = .data:0x000003F3; // type:object size:0xD data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 +lbl_1_data_416 = .data:0x00000416; // type:object size:0x6 data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x2 data:2byte +lbl_1_data_41E = .data:0x0000041E; // type:object size:0xA +lbl_1_data_428 = .data:0x00000428; // type:object size:0x514 +lbl_1_data_93C = .data:0x0000093C; // type:object size:0x104 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x18 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x30 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +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_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 +lbl_1_bss_92 = .bss:0x00000092; // type:object size:0x6 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x6 +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x6 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x8 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0xC +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x18 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x6 +lbl_1_bss_EE = .bss:0x000000EE; // type:object size:0x6 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x8 data:float +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x6 +lbl_1_bss_116 = .bss:0x00000116; // type:object size:0x6 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0xC data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 +lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x6 +lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x1A data:2byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x30 data:2byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x30 data:2byte diff --git a/config/GMPJ01_00/rels/movieDll/splits.txt b/config/GMPJ01_00/rels/movieDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/movieDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/movieDll/symbols.txt b/config/GMPJ01_00/rels/movieDll/symbols.txt new file mode 100644 index 00000000..9127e46f --- /dev/null +++ b/config/GMPJ01_00/rels/movieDll/symbols.txt @@ -0,0 +1,51 @@ +_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:0x23C +fn_1_2DC = .text:0x000002DC; // type:function size:0xE8 +fn_1_3C4 = .text:0x000003C4; // type:function size:0xD90 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_data_4 = .data:0x00000004; // type:object size:0x14 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x14 data:string +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x15 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x15 data:string +lbl_1_data_56 = .data:0x00000056; // type:object size:0x15 data:string +lbl_1_data_6B = .data:0x0000006B; // type:object size:0x15 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x15 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x15 data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x15 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x15 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x14 data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x34 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2C4 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x4 data:4byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x4 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x20 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mpexDll/splits.txt b/config/GMPJ01_00/rels/mpexDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mpexDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mpexDll/symbols.txt b/config/GMPJ01_00/rels/mpexDll/symbols.txt new file mode 100644 index 00000000..17f221a1 --- /dev/null +++ b/config/GMPJ01_00/rels/mpexDll/symbols.txt @@ -0,0 +1,474 @@ +_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:0xE8 +fn_1_188 = .text:0x00000188; // type:function size:0x38 +fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0xDC +fn_1_374 = .text:0x00000374; // type:function size:0xC4 +fn_1_438 = .text:0x00000438; // type:function size:0x3E4 +fn_1_81C = .text:0x0000081C; // type:function size:0xB8 +fn_1_8D4 = .text:0x000008D4; // type:function size:0x3C +fn_1_910 = .text:0x00000910; // type:function size:0x124 +fn_1_A34 = .text:0x00000A34; // type:function size:0x3C +fn_1_A70 = .text:0x00000A70; // type:function size:0x44 +fn_1_AB4 = .text:0x00000AB4; // type:function size:0x1D0 +fn_1_C84 = .text:0x00000C84; // type:function size:0x1C4 +fn_1_E48 = .text:0x00000E48; // type:function size:0x200 +fn_1_1048 = .text:0x00001048; // type:function size:0x238 +fn_1_1280 = .text:0x00001280; // type:function size:0x39C +fn_1_161C = .text:0x0000161C; // type:function size:0x200 +fn_1_181C = .text:0x0000181C; // type:function size:0x238 +fn_1_1A54 = .text:0x00001A54; // type:function size:0x39C +fn_1_1DF0 = .text:0x00001DF0; // type:function size:0x200 +fn_1_1FF0 = .text:0x00001FF0; // type:function size:0x238 +fn_1_2228 = .text:0x00002228; // type:function size:0x39C +fn_1_25C4 = .text:0x000025C4; // type:function size:0x178 +fn_1_273C = .text:0x0000273C; // type:function size:0x1A0 +fn_1_28DC = .text:0x000028DC; // type:function size:0x4 +fn_1_28E0 = .text:0x000028E0; // type:function size:0x764 +fn_1_3044 = .text:0x00003044; // type:function size:0x294 +fn_1_32D8 = .text:0x000032D8; // type:function size:0xAC +fn_1_3384 = .text:0x00003384; // type:function size:0x74 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x110 +fn_1_3508 = .text:0x00003508; // type:function size:0x19C +fn_1_36A4 = .text:0x000036A4; // type:function size:0xB4 +fn_1_3758 = .text:0x00003758; // type:function size:0x224 +fn_1_397C = .text:0x0000397C; // type:function size:0x78 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x104 +fn_1_3AF8 = .text:0x00003AF8; // type:function size:0x51C +fn_1_4014 = .text:0x00004014; // type:function size:0x98 +fn_1_40AC = .text:0x000040AC; // type:function size:0x98 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0x2C8 +fn_1_444C = .text:0x0000444C; // type:function size:0xC8 +fn_1_4514 = .text:0x00004514; // type:function size:0x21C +fn_1_4730 = .text:0x00004730; // type:function size:0x40 +fn_1_4770 = .text:0x00004770; // type:function size:0x2E8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0xE4 +fn_1_4B3C = .text:0x00004B3C; // type:function size:0x3C +fn_1_4B78 = .text:0x00004B78; // type:function size:0xF4 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0x18C +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0x18C +fn_1_4F84 = .text:0x00004F84; // type:function size:0x2B4 +fn_1_5238 = .text:0x00005238; // type:function size:0x2F8 +fn_1_5530 = .text:0x00005530; // type:function size:0x188 +fn_1_56B8 = .text:0x000056B8; // type:function size:0x128 +fn_1_57E0 = .text:0x000057E0; // type:function size:0x3C +fn_1_581C = .text:0x0000581C; // type:function size:0x140 +fn_1_595C = .text:0x0000595C; // type:function size:0x19C +fn_1_5AF8 = .text:0x00005AF8; // type:function size:0x124 +fn_1_5C1C = .text:0x00005C1C; // type:function size:0x124 +fn_1_5D40 = .text:0x00005D40; // type:function size:0x1E88 +fn_1_7BC8 = .text:0x00007BC8; // type:function size:0x1B8 +fn_1_7D80 = .text:0x00007D80; // type:function size:0x244 +fn_1_7FC4 = .text:0x00007FC4; // type:function size:0x1A8 +fn_1_816C = .text:0x0000816C; // type:function size:0x1B4 +fn_1_8320 = .text:0x00008320; // type:function size:0x2A4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x194 +fn_1_8758 = .text:0x00008758; // type:function size:0x194 +fn_1_88EC = .text:0x000088EC; // type:function size:0xD8 +fn_1_89C4 = .text:0x000089C4; // type:function size:0x118 +fn_1_8ADC = .text:0x00008ADC; // type:function size:0x540 +fn_1_901C = .text:0x0000901C; // type:function size:0x414 +fn_1_9430 = .text:0x00009430; // type:function size:0x284 +fn_1_96B4 = .text:0x000096B4; // type:function size:0x8C +fn_1_9740 = .text:0x00009740; // type:function size:0x150 +fn_1_9890 = .text:0x00009890; // type:function size:0x78 +fn_1_9908 = .text:0x00009908; // type:function size:0x80 +fn_1_9988 = .text:0x00009988; // type:function size:0x34C +fn_1_9CD4 = .text:0x00009CD4; // type:function size:0x98 +fn_1_9D6C = .text:0x00009D6C; // type:function size:0x1A4 +fn_1_9F10 = .text:0x00009F10; // type:function size:0x1D4 +fn_1_A0E4 = .text:0x0000A0E4; // type:function size:0x1C8 +fn_1_A2AC = .text:0x0000A2AC; // type:function size:0xF8 +fn_1_A3A4 = .text:0x0000A3A4; // type:function size:0x264 +fn_1_A608 = .text:0x0000A608; // type:function size:0x72C +fn_1_AD34 = .text:0x0000AD34; // type:function size:0x2D0 +fn_1_B004 = .text:0x0000B004; // type:function size:0x20C +fn_1_B210 = .text:0x0000B210; // type:function size:0x38 +fn_1_B248 = .text:0x0000B248; // type:function size:0x9C +fn_1_B2E4 = .text:0x0000B2E4; // type:function size:0x510 +fn_1_B7F4 = .text:0x0000B7F4; // type:function size:0x7C +fn_1_B870 = .text:0x0000B870; // type:function size:0x138 +fn_1_B9A8 = .text:0x0000B9A8; // type:function size:0x18C +fn_1_BB34 = .text:0x0000BB34; // type:function size:0xE4 +fn_1_BC18 = .text:0x0000BC18; // type:function size:0xC0 +fn_1_BCD8 = .text:0x0000BCD8; // type:function size:0x38 +fn_1_BD10 = .text:0x0000BD10; // type:function size:0x68 +fn_1_BD78 = .text:0x0000BD78; // type:function size:0x2F4 +fn_1_C06C = .text:0x0000C06C; // type:function size:0x70 +fn_1_C0DC = .text:0x0000C0DC; // type:function size:0x3F8 +fn_1_C4D4 = .text:0x0000C4D4; // type:function size:0x70 +fn_1_C544 = .text:0x0000C544; // type:function size:0x31C +fn_1_C860 = .text:0x0000C860; // type:function size:0x38 +fn_1_C898 = .text:0x0000C898; // type:function size:0x200 +fn_1_CA98 = .text:0x0000CA98; // type:function size:0x478 +fn_1_CF10 = .text:0x0000CF10; // type:function size:0x49C +fn_1_D3AC = .text:0x0000D3AC; // type:function size:0xBC +fn_1_D468 = .text:0x0000D468; // type:function size:0x244 +fn_1_D6AC = .text:0x0000D6AC; // type:function size:0x524 +fn_1_DBD0 = .text:0x0000DBD0; // type:function size:0x5A4 +fn_1_E174 = .text:0x0000E174; // type:function size:0x210 +fn_1_E384 = .text:0x0000E384; // type:function size:0x1E4 +fn_1_E568 = .text:0x0000E568; // type:function size:0x5B4 +fn_1_EB1C = .text:0x0000EB1C; // type:function size:0x25C +fn_1_ED78 = .text:0x0000ED78; // type:function size:0x348 +fn_1_F0C0 = .text:0x0000F0C0; // type:function size:0x324 +fn_1_F3E4 = .text:0x0000F3E4; // type:function size:0x70 +fn_1_F454 = .text:0x0000F454; // type:function size:0x2B4 +fn_1_F708 = .text:0x0000F708; // type:function size:0x174 +fn_1_F87C = .text:0x0000F87C; // type:function size:0x4B0 +fn_1_FD2C = .text:0x0000FD2C; // type:function size:0x370 +fn_1_1009C = .text:0x0001009C; // type:function size:0xCC +fn_1_10168 = .text:0x00010168; // type:function size:0x40 +fn_1_101A8 = .text:0x000101A8; // type:function size:0x1F4 +fn_1_1039C = .text:0x0001039C; // type:function size:0x348 +fn_1_106E4 = .text:0x000106E4; // type:function size:0x70 +fn_1_10754 = .text:0x00010754; // type:function size:0x260 +fn_1_109B4 = .text:0x000109B4; // type:function size:0x174 +fn_1_10B28 = .text:0x00010B28; // type:function size:0x45C +fn_1_10F84 = .text:0x00010F84; // type:function size:0x370 +fn_1_112F4 = .text:0x000112F4; // type:function size:0xCC +fn_1_113C0 = .text:0x000113C0; // type:function size:0x40 +fn_1_11400 = .text:0x00011400; // type:function size:0x1F4 +fn_1_115F4 = .text:0x000115F4; // type:function size:0x15C +fn_1_11750 = .text:0x00011750; // type:function size:0x54 +fn_1_117A4 = .text:0x000117A4; // type:function size:0x5C +fn_1_11800 = .text:0x00011800; // type:function size:0x5C +fn_1_1185C = .text:0x0001185C; // type:function size:0x3EC +fn_1_11C48 = .text:0x00011C48; // type:function size:0x198 +fn_1_11DE0 = .text:0x00011DE0; // type:function size:0x228 +fn_1_12008 = .text:0x00012008; // type:function size:0x3F4 +fn_1_123FC = .text:0x000123FC; // type:function size:0xA0 +fn_1_1249C = .text:0x0001249C; // type:function size:0x224 +fn_1_126C0 = .text:0x000126C0; // type:function size:0x2DC +fn_1_1299C = .text:0x0001299C; // type:function size:0x2C +fn_1_129C8 = .text:0x000129C8; // type:function size:0x518 +fn_1_12EE0 = .text:0x00012EE0; // type:function size:0x2C +fn_1_12F0C = .text:0x00012F0C; // type:function size:0x28 +fn_1_12F34 = .text:0x00012F34; // type:function size:0x274 +fn_1_131A8 = .text:0x000131A8; // type:function size:0x2C +fn_1_131D4 = .text:0x000131D4; // type:function size:0x2C +fn_1_13200 = .text:0x00013200; // type:function size:0x24 +fn_1_13224 = .text:0x00013224; // type:function size:0x2BC +fn_1_134E0 = .text:0x000134E0; // type:function size:0x500 +fn_1_139E0 = .text:0x000139E0; // type:function size:0x480 +fn_1_13E60 = .text:0x00013E60; // type:function size:0x80C +fn_1_1466C = .text:0x0001466C; // type:function size:0x28 +fn_1_14694 = .text:0x00014694; // type:function size:0x28 +fn_1_146BC = .text:0x000146BC; // type:function size:0x21C +fn_1_148D8 = .text:0x000148D8; // type:function size:0x194 +fn_1_14A6C = .text:0x00014A6C; // type:function size:0x198 +fn_1_14C04 = .text:0x00014C04; // type:function size:0x9C +fn_1_14CA0 = .text:0x00014CA0; // type:function size:0x2D8 +fn_1_14F78 = .text:0x00014F78; // type:function size:0x2DC +fn_1_15254 = .text:0x00015254; // type:function size:0x1E0 +fn_1_15434 = .text:0x00015434; // type:function size:0xF0 +fn_1_15524 = .text:0x00015524; // type:function size:0x50 +fn_1_15574 = .text:0x00015574; // type:function size:0x584 +fn_1_15AF8 = .text:0x00015AF8; // type:function size:0x5D8 +fn_1_160D0 = .text:0x000160D0; // type:function size:0x2E0 +fn_1_163B0 = .text:0x000163B0; // type:function size:0x274 +fn_1_16624 = .text:0x00016624; // type:function size:0x7C +fn_1_166A0 = .text:0x000166A0; // type:function size:0x44C +fn_1_16AEC = .text:0x00016AEC; // type:function size:0x434 +fn_1_16F20 = .text:0x00016F20; // type:function size:0x204 +fn_1_17124 = .text:0x00017124; // type:function size:0x790 +fn_1_178B4 = .text:0x000178B4; // type:function size:0xB0C +fn_1_183C0 = .text:0x000183C0; // type:function size:0x720 +fn_1_18AE0 = .text:0x00018AE0; // type:function size:0x9C +fn_1_18B7C = .text:0x00018B7C; // type:function size:0xCCC +fn_1_19848 = .text:0x00019848; // type:function size:0x924 +fn_1_1A16C = .text:0x0001A16C; // type:function size:0x1E8 +fn_1_1A354 = .text:0x0001A354; // type:function size:0x958 +fn_1_1ACAC = .text:0x0001ACAC; // type:function size:0x7C +fn_1_1AD28 = .text:0x0001AD28; // type:function size:0x164 +fn_1_1AE8C = .text:0x0001AE8C; // type:function size:0x1B8 +fn_1_1B044 = .text:0x0001B044; // type:function size:0xA4 +fn_1_1B0E8 = .text:0x0001B0E8; // type:function size:0xF4 +fn_1_1B1DC = .text:0x0001B1DC; // type:function size:0x80 +fn_1_1B25C = .text:0x0001B25C; // type:function size:0x80 +fn_1_1B2DC = .text:0x0001B2DC; // type:function size:0x28 +fn_1_1B304 = .text:0x0001B304; // type:function size:0x20 +fn_1_1B324 = .text:0x0001B324; // type:function size:0xD8 +fn_1_1B3FC = .text:0x0001B3FC; // type:function size:0xC8 +fn_1_1B4C4 = .text:0x0001B4C4; // type:function size:0xBC +fn_1_1B580 = .text:0x0001B580; // type:function size:0x40 +fn_1_1B5C0 = .text:0x0001B5C0; // type:function size:0x24 +fn_1_1B5E4 = .text:0x0001B5E4; // type:function size:0x1C0 +fn_1_1B7A4 = .text:0x0001B7A4; // type:function size:0x84 +fn_1_1B828 = .text:0x0001B828; // type:function size:0xD4 +fn_1_1B8FC = .text:0x0001B8FC; // type:function size:0x58 +fn_1_1B954 = .text:0x0001B954; // type:function size:0x15C +fn_1_1BAB0 = .text:0x0001BAB0; // type:function size:0x1C4 +fn_1_1BC74 = .text:0x0001BC74; // type:function size:0x1AC +fn_1_1BE20 = .text:0x0001BE20; // type:function size:0x54 +fn_1_1BE74 = .text:0x0001BE74; // type:function size:0x304 +fn_1_1C178 = .text:0x0001C178; // type:function size:0x304 +fn_1_1C47C = .text:0x0001C47C; // type:function size:0x340 +fn_1_1C7BC = .text:0x0001C7BC; // type:function size:0xC4 +fn_1_1C880 = .text:0x0001C880; // type:function size:0x47C +fn_1_1CCFC = .text:0x0001CCFC; // type:function size:0x16C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC data:4byte +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC data:4byte +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC data:4byte +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 data:4byte +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string +lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string +lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E data:string +lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 data:string +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_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 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 data:string +lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x2C scope:local +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 data:string +lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A data:string +lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 data:string +lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 data:string +lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string +lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string +lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 +lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C data:string +lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 data:string +lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A data:string +lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D +lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x20 data:4byte +lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0x40 data:4byte +lbl_1_data_624 = .data:0x00000624; // type:object size:0x70 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x90 data:4byte +lbl_1_data_724 = .data:0x00000724; // type:object size:0x20 +lbl_1_data_744 = .data:0x00000744; // type:object size:0x8 data:4byte +lbl_1_data_74C = .data:0x0000074C; // type:object size:0x10 +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20 +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte +lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte +lbl_1_data_788 = .data:0x00000788; // type:object size:0x4C8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x18 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x8 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x8 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x8 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x8 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x8 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x10 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x50 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x2C data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0x120 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0xD8 data:4byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x48 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x48 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x4 data:4byte +lbl_1_bss_444 = .bss:0x00000444; // type:object size:0x4 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x14 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x180 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x60 data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x70 data:4byte +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/msetupDll/splits.txt b/config/GMPJ01_00/rels/msetupDll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/msetupDll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/msetupDll/symbols.txt b/config/GMPJ01_00/rels/msetupDll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/msetupDll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/mstory2Dll/splits.txt b/config/GMPJ01_00/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..aa6bd0d5 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory2Dll/splits.txt @@ -0,0 +1,54 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B560 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B560 end:0x0001B95C + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPJ01_00/rels/mstory2Dll/symbols.txt b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..c14583cf --- /dev/null +++ b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x66C +fn_1_199A0 = .text:0x000199A0; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019BE8; // type:function size:0x84 +fn_1_19C6C = .text:0x00019C6C; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F14; // type:function size:0xB4 +fn_1_19FC8 = .text:0x00019FC8; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A160; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A368; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A538; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A578; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A7CC; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001A9D0; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAB4; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD3C; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE20; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001AFD4; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B0E4; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B318; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3A4; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B430; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B560; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B64C; // type:function size:0x224 +fn_1_1B870 = .text:0x0001B870; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B90C; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mstory3Dll/splits.txt b/config/GMPJ01_00/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..6d23734f --- /dev/null +++ b/config/GMPJ01_00/rels/mstory3Dll/splits.txt @@ -0,0 +1,31 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DED8 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DED8 end:0x0001F100 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPJ01_00/rels/mstory3Dll/symbols.txt b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..4863cac3 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt @@ -0,0 +1,550 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x1F8 +fn_1_17484 = .text:0x00017484; // type:function size:0xEC +fn_1_17570 = .text:0x00017570; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DC0; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018080; // type:function size:0x9C +fn_1_1811C = .text:0x0001811C; // type:function size:0x218 +fn_1_18334 = .text:0x00018334; // type:function size:0x1B4 +fn_1_184E8 = .text:0x000184E8; // type:function size:0x70 +fn_1_18558 = .text:0x00018558; // type:function size:0x110 +fn_1_18668 = .text:0x00018668; // type:function size:0x694 +fn_1_18CFC = .text:0x00018CFC; // type:function size:0x29C +fn_1_18F98 = .text:0x00018F98; // type:function size:0x1AC +fn_1_19144 = .text:0x00019144; // type:function size:0xD0 +fn_1_19214 = .text:0x00019214; // type:function size:0x28C +fn_1_194A0 = .text:0x000194A0; // type:function size:0xF0 +fn_1_19590 = .text:0x00019590; // type:function size:0x224 +fn_1_197B4 = .text:0x000197B4; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A008; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BEFC; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C2F4; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C460; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C534; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C914; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CA98; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB7C; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC5C; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD60; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CDF0; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D124; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D63C; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D77C; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8CC; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D964; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA64; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAAC; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE4C; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DED8; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E0F4; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E108; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E118; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E12C; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E13C; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPJ01_00/rels/mstory4Dll/splits.txt b/config/GMPJ01_00/rels/mstory4Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory4Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mstory4Dll/symbols.txt b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt new file mode 100644 index 00000000..59a31229 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt @@ -0,0 +1,65 @@ +fn_1_0 = .text:0x00000000; // type:function size:0xEC +fn_1_EC = .text:0x000000EC; // type:function size:0x115C +_prolog = .text:0x00001248; // type:function size:0x54 scope:global +_epilog = .text:0x0000129C; // type:function size:0x4C scope:global +fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 +fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C +_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:0x1 data:byte +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x1C data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x1 data:byte +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x3C0 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0xF data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0x14 data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x15 data:string +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x11 data:string +lbl_1_data_409 = .data:0x00000409; // type:object size:0x12 data:string +lbl_1_data_41B = .data:0x0000041B; // type:object size:0x15 +lbl_1_data_430 = .data:0x00000430; // type:object size:0x18 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x17 data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x24 data:string +lbl_1_data_483 = .data:0x00000483; // type:object size:0x23 data:string +lbl_1_data_4A6 = .data:0x000004A6; // type:object size:0x27 data:string +lbl_1_data_4CD = .data:0x000004CD; // type:object size:0x26 data:string +lbl_1_data_4F3 = .data:0x000004F3; // type:object size:0x29 data:string +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x1C +lbl_1_data_538 = .data:0x00000538; // type:object size:0x1C +lbl_1_data_554 = .data:0x00000554; // type:object size:0x18 data:4byte +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x1C +lbl_1_data_588 = .data:0x00000588; // type:object size:0x7 data:string +lbl_1_data_58F = .data:0x0000058F; // type:object size:0x33 data:string +lbl_1_data_5C2 = .data:0x000005C2; // type:object size:0x3 data:string +lbl_1_data_5C5 = .data:0x000005C5; // type:object size:0x9 data:string +lbl_1_data_5CE = .data:0x000005CE; // type:object size:0xB data:string +lbl_1_data_5D9 = .data:0x000005D9; // type:object size:0xB data:string +lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0xC +jumptable_1_data_5F0 = .data:0x000005F0; // type:object size:0x1C scope:local +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6 data:string +lbl_1_data_612 = .data:0x00000612; // type:object size:0x6 data:string +lbl_1_data_618 = .data:0x00000618; // type:object size:0x6 data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0x6 data:string +lbl_1_data_624 = .data:0x00000624; // type:object size:0x6 data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x7 data:string +lbl_1_data_631 = .data:0x00000631; // type:object size:0x6 data:string +lbl_1_data_637 = .data:0x00000637; // type:object size:0x9 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x20 +lbl_1_data_660 = .data:0x00000660; // type:object size:0x16 data:string +lbl_1_data_676 = .data:0x00000676; // type:object size:0x11 data:string +lbl_1_data_687 = .data:0x00000687; // type:object size:0x10 data:string +lbl_1_data_697 = .data:0x00000697; // type:object size:0xD data:string +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x10 data:string +lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0xD data:string +lbl_1_data_6C1 = .data:0x000006C1; // type:object size:0x1B data:string +lbl_1_data_6DC = .data:0x000006DC; // type:object size:0x1A 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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mstoryDll/splits.txt b/config/GMPJ01_00/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..14c897fa --- /dev/null +++ b/config/GMPJ01_00/rels/mstoryDll/splits.txt @@ -0,0 +1,43 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141A0 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPJ01_00/rels/mstoryDll/symbols.txt b/config/GMPJ01_00/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..f9dbaabb --- /dev/null +++ b/config/GMPJ01_00/rels/mstoryDll/symbols.txt @@ -0,0 +1,500 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x1F8 +fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 +fn_1_14150 = .text:0x00014150; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 scope:local +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C scope:local +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 scope:local +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB scope:local +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 scope:local +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/nisDll/splits.txt b/config/GMPJ01_00/rels/nisDll/splits.txt new file mode 100644 index 00000000..2e500fe0 --- /dev/null +++ b/config/GMPJ01_00/rels/nisDll/splits.txt @@ -0,0 +1,5 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 diff --git a/config/GMPJ01_00/rels/nisDll/symbols.txt b/config/GMPJ01_00/rels/nisDll/symbols.txt new file mode 100644 index 00000000..1143328c --- /dev/null +++ b/config/GMPJ01_00/rels/nisDll/symbols.txt @@ -0,0 +1,6 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x68 +fn_1_68 = .text:0x00000068; // type:function size:0x2C +_prolog = .text:0x00000094; // type:function size:0x9C scope:global +_epilog = .text:0x00000130; // type:function size:0x4C scope:global +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPJ01_00/rels/option/splits.txt b/config/GMPJ01_00/rels/option/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/option/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/option/symbols.txt b/config/GMPJ01_00/rels/option/symbols.txt new file mode 100644 index 00000000..99c6ef45 --- /dev/null +++ b/config/GMPJ01_00/rels/option/symbols.txt @@ -0,0 +1,380 @@ +_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 +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 +fn_1_468 = .text:0x00000468; // type:function size:0xE8 +fn_1_550 = .text:0x00000550; // type:function size:0x34 +fn_1_584 = .text:0x00000584; // type:function size:0x34 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 +fn_1_5EC = .text:0x000005EC; // type:function size:0xFC +fn_1_6E8 = .text:0x000006E8; // type:function size:0x110 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x244 +fn_1_A3C = .text:0x00000A3C; // type:function size:0x30 +fn_1_A6C = .text:0x00000A6C; // type:function size:0x84 +fn_1_AF0 = .text:0x00000AF0; // type:function size:0x84 +fn_1_B74 = .text:0x00000B74; // type:function size:0x84 +fn_1_BF8 = .text:0x00000BF8; // type:function size:0x30 +fn_1_C28 = .text:0x00000C28; // type:function size:0x30 +fn_1_C58 = .text:0x00000C58; // type:function size:0x30 +fn_1_C88 = .text:0x00000C88; // type:function size:0x30 +fn_1_CB8 = .text:0x00000CB8; // type:function size:0x8C +fn_1_D44 = .text:0x00000D44; // type:function size:0x28 +fn_1_D6C = .text:0x00000D6C; // type:function size:0x578 +fn_1_12E4 = .text:0x000012E4; // type:function size:0x200 +fn_1_14E4 = .text:0x000014E4; // type:function size:0xC0 +fn_1_15A4 = .text:0x000015A4; // type:function size:0x1F4 +fn_1_1798 = .text:0x00001798; // type:function size:0xAC +fn_1_1844 = .text:0x00001844; // type:function size:0x1E8 +fn_1_1A2C = .text:0x00001A2C; // type:function size:0x44 +fn_1_1A70 = .text:0x00001A70; // type:function size:0x1C +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x5FC +fn_1_2088 = .text:0x00002088; // type:function size:0x88 +fn_1_2110 = .text:0x00002110; // type:function size:0x34 +fn_1_2144 = .text:0x00002144; // type:function size:0x80 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x34 +fn_1_21F8 = .text:0x000021F8; // type:function size:0x224 +fn_1_241C = .text:0x0000241C; // type:function size:0x8C +fn_1_24A8 = .text:0x000024A8; // type:function size:0x44 +fn_1_24EC = .text:0x000024EC; // type:function size:0x1C +fn_1_2508 = .text:0x00002508; // type:function size:0xA4 +fn_1_25AC = .text:0x000025AC; // type:function size:0x46C +fn_1_2A18 = .text:0x00002A18; // type:function size:0x2E8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x104 +fn_1_2E04 = .text:0x00002E04; // type:function size:0x148 +fn_1_2F4C = .text:0x00002F4C; // type:function size:0x64 +fn_1_2FB0 = .text:0x00002FB0; // type:function size:0x1A8 +fn_1_3158 = .text:0x00003158; // type:function size:0xD4 +fn_1_322C = .text:0x0000322C; // type:function size:0x64 +fn_1_3290 = .text:0x00003290; // type:function size:0x44 +fn_1_32D4 = .text:0x000032D4; // type:function size:0x1C +fn_1_32F0 = .text:0x000032F0; // type:function size:0x4BC +fn_1_37AC = .text:0x000037AC; // type:function size:0xBC +fn_1_3868 = .text:0x00003868; // type:function size:0x54 +fn_1_38BC = .text:0x000038BC; // type:function size:0xD0 +fn_1_398C = .text:0x0000398C; // type:function size:0x54 +fn_1_39E0 = .text:0x000039E0; // type:function size:0x128 +fn_1_3B08 = .text:0x00003B08; // type:function size:0x84 +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x54 +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0x8C +fn_1_3C6C = .text:0x00003C6C; // type:function size:0x94 +fn_1_3D00 = .text:0x00003D00; // type:function size:0x54 +fn_1_3D54 = .text:0x00003D54; // type:function size:0xC8 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0xB4 +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x58 +fn_1_3F28 = .text:0x00003F28; // type:function size:0xAC +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x54 +fn_1_4028 = .text:0x00004028; // type:function size:0x2B4 +fn_1_42DC = .text:0x000042DC; // type:function size:0xAC +fn_1_4388 = .text:0x00004388; // type:function size:0x44 +fn_1_43CC = .text:0x000043CC; // type:function size:0x1C +fn_1_43E8 = .text:0x000043E8; // type:function size:0x270 +fn_1_4658 = .text:0x00004658; // type:function size:0x424 +fn_1_4A7C = .text:0x00004A7C; // type:function size:0x3D4 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x93C +fn_1_578C = .text:0x0000578C; // type:function size:0x8B8 +fn_1_6044 = .text:0x00006044; // type:function size:0xF8 +fn_1_613C = .text:0x0000613C; // type:function size:0x64 +fn_1_61A0 = .text:0x000061A0; // type:function size:0xFC +fn_1_629C = .text:0x0000629C; // type:function size:0x54 +fn_1_62F0 = .text:0x000062F0; // type:function size:0xFC +fn_1_63EC = .text:0x000063EC; // type:function size:0x54 +fn_1_6440 = .text:0x00006440; // type:function size:0x94 +fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 +fn_1_6528 = .text:0x00006528; // type:function size:0x118 +fn_1_6640 = .text:0x00006640; // type:function size:0x54 +fn_1_6694 = .text:0x00006694; // type:function size:0x38 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xC4 +fn_1_67C8 = .text:0x000067C8; // type:function size:0x60 +fn_1_6828 = .text:0x00006828; // type:function size:0x1E4 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x74 +fn_1_6A80 = .text:0x00006A80; // type:function size:0x1DC +fn_1_6C5C = .text:0x00006C5C; // type:function size:0x74 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x1D4 +fn_1_6EA4 = .text:0x00006EA4; // type:function size:0xA4 +fn_1_6F48 = .text:0x00006F48; // type:function size:0x1D4 +fn_1_711C = .text:0x0000711C; // type:function size:0xA4 +fn_1_71C0 = .text:0x000071C0; // type:function size:0xE8 +fn_1_72A8 = .text:0x000072A8; // type:function size:0x68 +fn_1_7310 = .text:0x00007310; // type:function size:0x400 +fn_1_7710 = .text:0x00007710; // type:function size:0x190 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x60 +fn_1_7900 = .text:0x00007900; // type:function size:0x3C +fn_1_793C = .text:0x0000793C; // type:function size:0x5C4 +fn_1_7F00 = .text:0x00007F00; // type:function size:0x148 +fn_1_8048 = .text:0x00008048; // type:function size:0x9C +fn_1_80E4 = .text:0x000080E4; // type:function size:0x178 +fn_1_825C = .text:0x0000825C; // type:function size:0x54 +fn_1_82B0 = .text:0x000082B0; // type:function size:0x44 +fn_1_82F4 = .text:0x000082F4; // type:function size:0x1C +fn_1_8310 = .text:0x00008310; // type:function size:0x778 +fn_1_8A88 = .text:0x00008A88; // type:function size:0xD0 +fn_1_8B58 = .text:0x00008B58; // type:function size:0x54 +fn_1_8BAC = .text:0x00008BAC; // type:function size:0xD8 +fn_1_8C84 = .text:0x00008C84; // type:function size:0xFC +fn_1_8D80 = .text:0x00008D80; // type:function size:0x54 +fn_1_8DD4 = .text:0x00008DD4; // type:function size:0xC4 +fn_1_8E98 = .text:0x00008E98; // type:function size:0x60 +fn_1_8EF8 = .text:0x00008EF8; // type:function size:0x40 +fn_1_8F38 = .text:0x00008F38; // type:function size:0x77C +fn_1_96B4 = .text:0x000096B4; // type:function size:0x9C +fn_1_9750 = .text:0x00009750; // type:function size:0x344 +fn_1_9A94 = .text:0x00009A94; // type:function size:0x7C +fn_1_9B10 = .text:0x00009B10; // type:function size:0x8A0 +fn_1_A3B0 = .text:0x0000A3B0; // type:function size:0x9C +fn_1_A44C = .text:0x0000A44C; // type:function size:0x260 +fn_1_A6AC = .text:0x0000A6AC; // type:function size:0x40 +fn_1_A6EC = .text:0x0000A6EC; // type:function size:0x18 +fn_1_A704 = .text:0x0000A704; // type:function size:0x18 +fn_1_A71C = .text:0x0000A71C; // type:function size:0x54 +fn_1_A770 = .text:0x0000A770; // type:function size:0x40 +fn_1_A7B0 = .text:0x0000A7B0; // type:function size:0x40 +fn_1_A7F0 = .text:0x0000A7F0; // type:function size:0x38 +fn_1_A828 = .text:0x0000A828; // type:function size:0x38 +fn_1_A860 = .text:0x0000A860; // type:function size:0x20 +fn_1_A880 = .text:0x0000A880; // type:function size:0x24 +fn_1_A8A4 = .text:0x0000A8A4; // type:function size:0x108 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0xC data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x38 +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8C0 +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x30 +lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 +lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 data:float +lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 data:float +lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 data:float +lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 data:float +lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 data:float +lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 data:float +lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 data:float +lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 data:double +lbl_1_rodata_1278 = .rodata:0x00001278; // type:object size:0x8 +lbl_1_rodata_1280 = .rodata:0x00001280; // type:object size:0x8 +lbl_1_rodata_1288 = .rodata:0x00001288; // type:object size:0x8 +lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 data:float +lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 data:float +lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 data:float +lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 data:float +lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 data:float +lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 data:float +lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 data:float +lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 data:float +lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 data:float +lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 data:float +lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 data:float +lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 data:float +lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 data:float +lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 data:float +lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 data:float +lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 data:float +lbl_1_rodata_12D0 = .rodata:0x000012D0; // type:object size:0x24 +lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 data:float +lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 data:float +lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 data:float +lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 data:float +lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 data:float +lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C +lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 data:float +lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 data:float +lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 data:float +lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 +lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 data:float +lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 data:float +lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 +lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 +lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 data:double +lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 data:double +lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 data:float +lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 data:float +lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 data:double +lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 data:double +lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 data:float +lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 data:float +lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 data:double +lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 data:float +lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 data:float +lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 data:float +lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 data:float +lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 data:double +lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 data:double +lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 data:float +lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 data:float +lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 data:float +lbl_1_rodata_13C0 = .rodata:0x000013C0; // type:object size:0x18 +lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 data:float +lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 data:float +lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 data:float +lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 data:float +lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 data:float +lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 data:float +lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 data:float +lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 data:float +lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 data:double +lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 data:double +lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 data:float +lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 data:float +lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 data:float +lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 data:float +lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 data:float +lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 data:double +lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 data:float +lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 data:float +lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 data:float +lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 data:float +lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 data:float +lbl_1_rodata_143C = .rodata:0x0000143C; // type:object size:0x264 +lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 data:float +lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 data:float +lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 data:float +lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 data:float +lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 data:float +lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 data:float +lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 data:float +lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 data:float +lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 data:float +lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 data:float +lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 data:float +lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 data:float +lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 data:float +lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 data:float +lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 data:float +lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 data:float +lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 data:float +lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 data:float +lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 data:float +lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 data:float +lbl_1_rodata_16F0 = .rodata:0x000016F0; // type:object size:0x4 data:float +lbl_1_rodata_16F4 = .rodata:0x000016F4; // type:object size:0xD4 +lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 data:float +lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 data:float +lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 data:float +lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 data:float +lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 data:float +lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 data:float +lbl_1_rodata_17E0 = .rodata:0x000017E0; // type:object size:0x4 data:float +lbl_1_rodata_17E4 = .rodata:0x000017E4; // type:object size:0x84 +lbl_1_rodata_1868 = .rodata:0x00001868; // type:object size:0x48 +lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 data:float +lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 data:float +lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 data:float +lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 data:float +lbl_1_rodata_18C0 = .rodata:0x000018C0; // type:object size:0x4 data:float +lbl_1_rodata_18C4 = .rodata:0x000018C4; // type:object size:0x104 +lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 data:float +lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 data:float +lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 data:float +lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 data:float +lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 data:float +lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 data:float +lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 data:float +lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B data:string +lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B data:string +lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 data:4byte +jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:4byte +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1C +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x24 +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:4byte +lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 data:4byte +lbl_1_data_168 = .data:0x00000168; // type:object size:0xC +jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local +jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4C +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 +lbl_1_data_210 = .data:0x00000210; // type:object size:0x8 data:4byte +jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local +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:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/safDll/splits.txt b/config/GMPJ01_00/rels/safDll/splits.txt new file mode 100644 index 00000000..e4b1b5df --- /dev/null +++ b/config/GMPJ01_00/rels/safDll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/safDll/main.c: + .text start:0x00000000 end:0x0000052C + .rodata start:0x00000000 end:0x00000024 + .data start:0x00000000 end:0x00000070 + .bss start:0x00000000 end:0x0000030C diff --git a/config/GMPJ01_00/rels/safDll/symbols.txt b/config/GMPJ01_00/rels/safDll/symbols.txt new file mode 100644 index 00000000..0639762d --- /dev/null +++ b/config/GMPJ01_00/rels/safDll/symbols.txt @@ -0,0 +1,131 @@ +_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:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x90 +fn_1_38C = .text:0x0000038C; // type:function size:0x1A0 +fn_1_52C = .text:0x0000052C; // type:function size:0xB8C +fn_1_10B8 = .text:0x000010B8; // type:function size:0xC4 +fn_1_117C = .text:0x0000117C; // type:function size:0x10D4 +fn_1_2250 = .text:0x00002250; // type:function size:0x104 +fn_1_2354 = .text:0x00002354; // type:function size:0x184 +fn_1_24D8 = .text:0x000024D8; // type:function size:0xB8 +fn_1_2590 = .text:0x00002590; // type:function size:0x148 +fn_1_26D8 = .text:0x000026D8; // type:function size:0x57C +fn_1_2C54 = .text:0x00002C54; // type:function size:0x4F0 +fn_1_3144 = .text:0x00003144; // type:function size:0x5A0 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x498 +fn_1_3B7C = .text:0x00003B7C; // type:function size:0x284 +fn_1_3E00 = .text:0x00003E00; // type:function size:0x124 +fn_1_3F24 = .text:0x00003F24; // type:function size:0x21C +fn_1_4140 = .text:0x00004140; // type:function size:0x14 +fn_1_4154 = .text:0x00004154; // type:function size:0x10 +fn_1_4164 = .text:0x00004164; // type:function size:0x14 +fn_1_4178 = .text:0x00004178; // type:function size:0x10 +fn_1_4188 = .text:0x00004188; // type:function size:0x41C +fn_1_45A4 = .text:0x000045A4; // type:function size:0x2C8 +fn_1_486C = .text:0x0000486C; // type:function size:0x8E0 +fn_1_514C = .text:0x0000514C; // type:function size:0x404 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x24 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x48 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x11 data:string +lbl_1_data_81 = .data:0x00000081; // type:object size:0x4 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x4 data:string +lbl_1_data_89 = .data:0x00000089; // type:object size:0xE data:string +lbl_1_data_97 = .data:0x00000097; // type:object size:0xB data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x13 data:string +lbl_1_data_D3 = .data:0x000000D3; // type:object size:0xD +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 data:2byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x22 data:string +lbl_1_data_13A = .data:0x0000013A; // type:object size:0x17 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x8 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2C2 data:2byte +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x4 data:4byte +lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:4byte +lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x20 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x8 data:4byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x2 data:2byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x4 data:4byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x58 data:2byte +lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/selmenuDll/splits.txt b/config/GMPJ01_00/rels/selmenuDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/selmenuDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/selmenuDll/symbols.txt b/config/GMPJ01_00/rels/selmenuDll/symbols.txt new file mode 100644 index 00000000..b5746a65 --- /dev/null +++ b/config/GMPJ01_00/rels/selmenuDll/symbols.txt @@ -0,0 +1,201 @@ +_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 +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 +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 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 data:string +lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 data:string +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 +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 +lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 data:string +lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE data:string +lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xF data:string +lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 data:string +lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 data:string +lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 data:string +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 data:string +lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 data:string +lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF data:string +lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 data:string +lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 data:string +lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 data:string +lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 data:string +lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 data:string +lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 data:string +lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 data:string +lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B data:string +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 data:string +lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 data:string +lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 data:string +lbl_1_data_357 = .data:0x00000357; // type:object size:0xE data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 data:string +lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 data:string +lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE data:string +lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0xD data:string +lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 data:string +lbl_1_data_453 = .data:0x00000453; // type:object size:0xA data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0xE data:string +lbl_1_data_46B = .data:0x0000046B; // type:object size:0xE data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xE data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0xE data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0xE data:string +lbl_1_data_4A3 = .data:0x000004A3; // type:object size:0xE data:string +lbl_1_data_4B1 = .data:0x000004B1; // type:object size:0xE data:string +lbl_1_data_4BF = .data:0x000004BF; // type:object size:0xE data:string +lbl_1_data_4CD = .data:0x000004CD; // type:object size:0xA data:string +lbl_1_data_4D7 = .data:0x000004D7; // type:object size:0x11 +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x348 +lbl_1_data_830 = .data:0x00000830; // type:object size:0x28 +lbl_1_data_858 = .data:0x00000858; // type:object size:0x12 data:string +lbl_1_data_86A = .data:0x0000086A; // type:object size:0x12 data:string +lbl_1_data_87C = .data:0x0000087C; // type:object size:0x12 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0x12 data:string +lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x12 data:string +lbl_1_data_8B2 = .data:0x000008B2; // type:object size:0x12 data:string +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x11 data:string +lbl_1_data_8D5 = .data:0x000008D5; // type:object size:0x23 +lbl_1_data_8F8 = .data:0x000008F8; // type:object size:0x2 data:2byte +lbl_1_data_8FA = .data:0x000008FA; // type:object size:0x8 +lbl_1_data_902 = .data:0x00000902; // type:object size:0x12 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x4 data:4byte +lbl_1_data_918 = .data:0x00000918; // type:object size:0x12 data:string +lbl_1_data_92A = .data:0x0000092A; // type:object size:0x24 data:string +lbl_1_data_94E = .data:0x0000094E; // type:object size:0xB data:string +lbl_1_data_959 = .data:0x00000959; // type:object size:0x3 data:string +lbl_1_data_95C = .data:0x0000095C; // type:object size:0x10 +lbl_1_data_96C = .data:0x0000096C; // type:object size:0x20 +lbl_1_data_98C = .data:0x0000098C; // type:object size:0x20 +lbl_1_data_9AC = .data:0x000009AC; // type:object size:0xD data:string +lbl_1_data_9B9 = .data:0x000009B9; // type:object size:0x5 +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x5 +lbl_1_data_9C3 = .data:0x000009C3; // type:object size:0x6 +lbl_1_data_9C9 = .data:0x000009C9; // type:object size:0x9 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0xA data:string +lbl_1_data_9DC = .data:0x000009DC; // type:object size:0xA data:string +lbl_1_data_9E6 = .data:0x000009E6; // type:object size:0x9 data:string +lbl_1_data_9EF = .data:0x000009EF; // type:object size:0x9 data:string +lbl_1_data_9F8 = .data:0x000009F8; // type:object size:0xC +lbl_1_data_A04 = .data:0x00000A04; // type:object size:0x14 data:4byte +lbl_1_data_A18 = .data:0x00000A18; // type:object size:0x6 data:string +lbl_1_data_A1E = .data:0x00000A1E; // type:object size:0x4 data:string +lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x5 data:string +lbl_1_data_A27 = .data:0x00000A27; // type:object size:0x7 data:string +lbl_1_data_A2E = .data:0x00000A2E; // type:object size:0x5 data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x9 data:string +jumptable_1_data_A3C = .data:0x00000A3C; // type:object size:0x20 scope:local +jumptable_1_data_A5C = .data:0x00000A5C; // type:object size:0x20 scope:local +lbl_1_data_A7C = .data:0x00000A7C; // type:object size:0x4 data:string +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 data:string +lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x10 data:string +lbl_1_data_A94 = .data:0x00000A94; // type:object size:0x15 data:string +lbl_1_data_AA9 = .data:0x00000AA9; // type:object size:0x15 data:string +lbl_1_data_ABE = .data:0x00000ABE; // type:object size:0x15 data:string +lbl_1_data_AD3 = .data:0x00000AD3; // type:object size:0x15 data:string +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x15 data:string +lbl_1_data_AFD = .data:0x00000AFD; // type:object size:0x15 data:string +lbl_1_data_B12 = .data:0x00000B12; // type:object size:0x15 data:string +lbl_1_data_B27 = .data:0x00000B27; // 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 diff --git a/config/GMPJ01_00/rels/staffDll/splits.txt b/config/GMPJ01_00/rels/staffDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/staffDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/staffDll/symbols.txt b/config/GMPJ01_00/rels/staffDll/symbols.txt new file mode 100644 index 00000000..8f507623 --- /dev/null +++ b/config/GMPJ01_00/rels/staffDll/symbols.txt @@ -0,0 +1,54 @@ +_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 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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:0xFA8 +lbl_1_data_FA8 = .data:0x00000FA8; // type:object size:0xC data:float +lbl_1_data_FB4 = .data:0x00000FB4; // 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 diff --git a/config/GMPJ01_00/rels/subchrselDll/splits.txt b/config/GMPJ01_00/rels/subchrselDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/subchrselDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/subchrselDll/symbols.txt b/config/GMPJ01_00/rels/subchrselDll/symbols.txt new file mode 100644 index 00000000..22a9a485 --- /dev/null +++ b/config/GMPJ01_00/rels/subchrselDll/symbols.txt @@ -0,0 +1,33 @@ +_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:0x6C +fn_1_10C = .text:0x0000010C; // type:function size:0x58 +fn_1_164 = .text:0x00000164; // type:function size:0x654 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:string +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:string +lbl_1_data_10 = .data:0x00000010; // type:object size:0x8 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x8 data:string +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x6 data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x6 data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x6 data:string +lbl_1_data_42 = .data:0x00000042; // type:object size:0x6 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x6 data:string +lbl_1_data_4E = .data:0x0000004E; // type:object size:0x7 data:string +lbl_1_data_55 = .data:0x00000055; // type:object size:0x6 data:string +lbl_1_data_5B = .data:0x0000005B; // type:object size:0x9 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x1 +lbl_1_data_85 = .data:0x00000085; // type:object size:0x6 data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0x8 data:string +lbl_1_data_93 = .data:0x00000093; // type:object size:0x7 data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0x7 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x6 data:string +lbl_1_data_A7 = .data:0x000000A7; // type:object size:0x9 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1C +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x15 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/w04Dll/splits.txt b/config/GMPJ01_00/rels/w04Dll/splits.txt new file mode 100644 index 00000000..d977e9ab --- /dev/null +++ b/config/GMPJ01_00/rels/w04Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w04Dll/main.c: + .text start:0x000000E0 end:0x000012FC + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x00000298 + .bss start:0x00000000 end:0x00000038 + +REL/w04Dll/bridge.c: + .text start:0x000012FC end:0x000020EC + .rodata start:0x00000040 end:0x00000098 + .data start:0x00000298 end:0x000002D0 + .bss start:0x00000038 end:0x00000048 + +REL/w04Dll/boo_event.c: + .text start:0x000020EC end:0x00006024 + .rodata start:0x00000098 end:0x00000180 + .data start:0x000002D0 end:0x000003A8 + .bss start:0x00000048 end:0x00000100 + +REL/w04Dll/big_boo.c: + .text start:0x00006024 end:0x0000A0DC + .rodata start:0x00000180 end:0x000002C0 + .data start:0x000003A8 end:0x000004F0 + .bss start:0x00000100 end:0x00000288 + +REL/w04Dll/mg_item.c: + .text start:0x0000A0DC end:0x0000C784 + .rodata start:0x000002C0 end:0x000003A0 + .data start:0x000004F0 end:0x00000588 + .bss start:0x00000288 end:0x000002B0 + +REL/w04Dll/mg_coin.c: + .text start:0x0000C784 end:0x0000E9F0 + .rodata start:0x000003A0 end:0x00000428 + .data start:0x00000588 end:0x0000063F + .bss start:0x000002B0 end:0x00000328 diff --git a/config/GMPJ01_00/rels/w04Dll/symbols.txt b/config/GMPJ01_00/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..de97498a --- /dev/null +++ b/config/GMPJ01_00/rels/w04Dll/symbols.txt @@ -0,0 +1,451 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x514 +BoardDestroy = .text:0x000005F4; // type:function size:0x15C +fn_1_750 = .text:0x00000750; // type:function size:0x44 scope:local +fn_1_794 = .text:0x00000794; // type:function size:0x4 scope:local +fn_1_798 = .text:0x00000798; // type:function size:0x64 scope:local +fn_1_7FC = .text:0x000007FC; // type:function size:0x134 scope:local +fn_1_930 = .text:0x00000930; // type:function size:0x24 scope:local +fn_1_954 = .text:0x00000954; // type:function size:0x4 scope:local +fn_1_958 = .text:0x00000958; // type:function size:0x3A0 scope:local +fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 scope:local +fn_1_D30 = .text:0x00000D30; // type:function size:0x80 scope:local +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C scope:local +fn_1_103C = .text:0x0000103C; // type:function size:0xF4 scope:local +fn_1_1130 = .text:0x00001130; // type:function size:0x1CC +fn_1_12FC = .text:0x000012FC; // type:function size:0x2CC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x50 +fn_1_1618 = .text:0x00001618; // type:function size:0x19C scope:local +fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 scope:local +fn_1_191C = .text:0x0000191C; // type:function size:0x27C scope:local +fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 scope:local +fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 scope:local +fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 scope:local +fn_1_2008 = .text:0x00002008; // type:function size:0x3C scope:local +fn_1_2044 = .text:0x00002044; // type:function size:0x14 scope:local +fn_1_2058 = .text:0x00002058; // type:function size:0x94 +fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 scope:local +fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 scope:local +fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 scope:local +fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 scope:local +fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 scope:local +fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C scope:local +fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 scope:local +fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 scope:local +fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 scope:local +fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 scope:local +fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 scope:local +fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C scope:local +fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 scope:local +fn_1_4630 = .text:0x00004630; // type:function size:0x50 scope:local +fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 scope:local +fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 scope:local +fn_1_5018 = .text:0x00005018; // type:function size:0x288 scope:local +fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 scope:local +fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 scope:local +fn_1_55B4 = .text:0x000055B4; // type:function size:0x94 +fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 scope:local +fn_1_5828 = .text:0x00005828; // type:function size:0x7C scope:local +fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC scope:local +fn_1_5980 = .text:0x00005980; // type:function size:0x44 scope:local +fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 scope:local +fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 scope:local +fn_1_6024 = .text:0x00006024; // type:function size:0x28C +fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 scope:local +fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 scope:local +fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 scope:local +fn_1_7300 = .text:0x00007300; // type:function size:0x27C scope:local +fn_1_757C = .text:0x0000757C; // type:function size:0x5C scope:local +fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 scope:local +fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 scope:local +fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 scope:local +fn_1_98A0 = .text:0x00009884; // type:function size:0x294 scope:local +fn_1_9B34 = .text:0x00009B18; // type:function size:0xA8 scope:local +fn_1_9BDC = .text:0x00009BC0; // type:function size:0x3C scope:local +fn_1_9C18 = .text:0x00009BFC; // type:function size:0x290 scope:local +fn_1_9EA8 = .text:0x00009E8C; // type:function size:0x14 scope:local +fn_1_9EBC = .text:0x00009EA0; // type:function size:0x94 +fn_1_9F50 = .text:0x00009F34; // type:function size:0x124 scope:local +fn_1_A074 = .text:0x0000A058; // type:function size:0x84 scope:local +fn_1_A0F8 = .text:0x0000A0DC; // type:function size:0xF8 +fn_1_A1F0 = .text:0x0000A1D4; // type:function size:0x52C +fn_1_A71C = .text:0x0000A700; // type:function size:0xCC scope:local +fn_1_A7E8 = .text:0x0000A7CC; // type:function size:0x1294 scope:local +fn_1_BA7C = .text:0x0000BA60; // type:function size:0x84 +fn_1_BB00 = .text:0x0000BAE4; // type:function size:0x7BC +fn_1_C2BC = .text:0x0000C2A0; // type:function size:0xCC +fn_1_C388 = .text:0x0000C36C; // type:function size:0x418 scope:local +fn_1_C7A0 = .text:0x0000C784; // type:function size:0x34 +fn_1_C7D4 = .text:0x0000C7B8; // type:function size:0x7B8 +fn_1_CF8C = .text:0x0000CF70; // type:function size:0x120 scope:local +fn_1_D0AC = .text:0x0000D090; // type:function size:0x30 scope:local +fn_1_D0DC = .text:0x0000D0C0; // type:function size:0x98 scope:local +fn_1_D174 = .text:0x0000D158; // type:function size:0xBC scope:local +fn_1_D230 = .text:0x0000D214; // type:function size:0x74 scope:local +fn_1_D2A4 = .text:0x0000D288; // type:function size:0x2B0 scope:local +fn_1_D554 = .text:0x0000D538; // type:function size:0x154 scope:local +fn_1_D6A8 = .text:0x0000D68C; // type:function size:0x64 scope:local +fn_1_D70C = .text:0x0000D6F0; // type:function size:0x64 scope:local +fn_1_D770 = .text:0x0000D754; // type:function size:0x894 scope:local +fn_1_E004 = .text:0x0000DFE8; // type:function size:0x140 scope:local +fn_1_E144 = .text:0x0000E128; // type:function size:0x48 scope:local +fn_1_E18C = .text:0x0000E170; // type:function size:0x1E8 scope:local +fn_1_E374 = .text:0x0000E358; // type:function size:0x14C scope:local +fn_1_E4C0 = .text:0x0000E4A4; // type:function size:0x1EC scope:local +fn_1_E6AC = .text:0x0000E690; // type:function size:0x1D4 scope:local +fn_1_E880 = .text:0x0000E864; // type:function size:0x18C 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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 scope:local data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 scope:local data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 scope:local data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 scope:local data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 scope:local +lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 scope:local +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC scope:local +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 scope:local +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 scope:local +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 scope:local +lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 scope:local data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 scope:local data:string +lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 scope:local data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 scope:local data:string +lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 scope:local +lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 scope:local +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 scope:local data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 scope:local data:string +lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 scope:local +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 scope:local data:string +lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 scope:local data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 scope:local data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 scope:local +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 scope:local data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 scope:local +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 scope:local +lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 scope:local +lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 scope:local data:2byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0xB scope:local data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 scope:local data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0xC scope:local data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B scope:local +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 scope:local data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 scope:local +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 scope:local +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 scope:local data:string +lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 scope:local data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 scope:local data:string +lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 scope:local data:string +lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 scope:local data:string +lbl_1_data_512 = .data:0x00000512; // type:object size:0xA scope:local +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 scope:local data:4byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0xC scope:local +lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 scope:local +lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 scope:local data:4byte +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 scope:local data:string +lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 scope:local data:string +lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 scope:local data:string +lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 scope:local data:string +lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 scope:local data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 scope:local data:string +lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 scope:local data:string +lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 scope:local data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 scope:local +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 scope:local data:4byte +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 scope:local +lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 scope:local +lbl_1_data_610 = .data:0x00000610; // type:object size:0xE scope:local data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE scope:local data:string +lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 scope:local data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC scope:local +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 scope:local +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 scope:local +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 scope:local +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 scope:local data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 scope:local +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 scope:local +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 scope:local +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC scope:local +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 scope:local +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 scope:local +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 scope:local data:2byte +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 scope:local +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 scope:local +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 scope:local data:4byte +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 scope:local +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 scope:local +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 scope:local +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE scope:local +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE scope:local +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 scope:local data:2byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC scope:local +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC scope:local data:float +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 scope:local data:2byte diff --git a/config/GMPJ01_00/rels/ztardll/splits.txt b/config/GMPJ01_00/rels/ztardll/splits.txt new file mode 100644 index 00000000..9d81d15d --- /dev/null +++ b/config/GMPJ01_00/rels/ztardll/splits.txt @@ -0,0 +1,27 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/ztardll/main.c: + .text start:0x000000A0 end:0x00007820 + .rodata start:0x00000000 end:0x000001B8 + .data start:0x00000000 end:0x000000B0 + .bss start:0x00000000 end:0x00000070 + +REL/ztardll/font.c: + .text start:0x00007820 end:0x00007C9C + .rodata start:0x000001B8 end:0x000001C0 + .data start:0x000000B0 end:0x00000578 + +REL/ztardll/select.c: + .text start:0x00007C9C end:0x00012358 + .rodata start:0x000001C0 end:0x00000298 + .data start:0x00000578 end:0x00000824 + .bss start:0x00000070 end:0x000002D8 diff --git a/config/GMPJ01_00/rels/ztardll/symbols.txt b/config/GMPJ01_00/rels/ztardll/symbols.txt new file mode 100644 index 00000000..f9516f21 --- /dev/null +++ b/config/GMPJ01_00/rels/ztardll/symbols.txt @@ -0,0 +1,257 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x1350 +fn_1_1774 = .text:0x00001774; // type:function size:0x57C +fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 +fn_1_1DA0 = .text:0x00001DA0; // type:function size:0x5B0 +fn_1_2350 = .text:0x00002350; // type:function size:0x1060 +fn_1_33B0 = .text:0x000033B0; // type:function size:0xD34 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 +fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 +fn_1_4948 = .text:0x00004948; // type:function size:0x874 +fn_1_51BC = .text:0x000051BC; // type:function size:0x15C +fn_1_524C = .text:0x00005318; // type:function size:0x14AC +fn_1_66F8 = .text:0x000067C4; // type:function size:0x10C +fn_1_6804 = .text:0x000068D0; // type:function size:0xC10 +fn_1_7414 = .text:0x000074E0; // type:function size:0x340 +fn_1_7754 = .text:0x00007820; // type:function size:0x47C +fn_1_7C00 = .text:0x00007C9C; // type:function size:0x16C +fn_1_7D6C = .text:0x00007E08; // type:function size:0xA0 +fn_1_7E0C = .text:0x00007EA8; // type:function size:0x224 +fn_1_8030 = .text:0x000080CC; // type:function size:0x2DC +fn_1_830C = .text:0x000083A8; // type:function size:0x2C +fn_1_8338 = .text:0x000083D4; // type:function size:0x518 +fn_1_8850 = .text:0x000088EC; // type:function size:0x2C +fn_1_887C = .text:0x00008918; // type:function size:0x28 +fn_1_88A4 = .text:0x00008940; // type:function size:0x274 +fn_1_8B18 = .text:0x00008BB4; // type:function size:0x2C +fn_1_8B44 = .text:0x00008BE0; // type:function size:0x2C +fn_1_8B70 = .text:0x00008C0C; // type:function size:0x24 +fn_1_8B94 = .text:0x00008C30; // type:function size:0x2BC +fn_1_8E50 = .text:0x00008EEC; // type:function size:0x500 +fn_1_9350 = .text:0x000093EC; // type:function size:0x480 +fn_1_97D0 = .text:0x0000986C; // type:function size:0x80C +fn_1_9FDC = .text:0x0000A078; // type:function size:0x28 +fn_1_A004 = .text:0x0000A0A0; // type:function size:0x28 +fn_1_A02C = .text:0x0000A0C8; // type:function size:0x21C +fn_1_A248 = .text:0x0000A2E4; // type:function size:0x194 +fn_1_A3DC = .text:0x0000A478; // type:function size:0x198 +fn_1_A574 = .text:0x0000A610; // type:function size:0x9C +fn_1_A610 = .text:0x0000A6AC; // type:function size:0x2D8 +fn_1_A8E8 = .text:0x0000A984; // type:function size:0x2DC +fn_1_ABC4 = .text:0x0000AC60; // type:function size:0x1E0 +fn_1_ADA4 = .text:0x0000AE40; // type:function size:0xF0 +fn_1_AE94 = .text:0x0000AF30; // type:function size:0x50 +fn_1_AEE4 = .text:0x0000AF80; // type:function size:0x584 +fn_1_B468 = .text:0x0000B504; // type:function size:0x5D8 +fn_1_BA40 = .text:0x0000BADC; // type:function size:0x33C +fn_1_BD7C = .text:0x0000BE18; // type:function size:0x274 +fn_1_BFF0 = .text:0x0000C08C; // type:function size:0x7C +fn_1_C06C = .text:0x0000C108; // type:function size:0x44C +fn_1_C4B8 = .text:0x0000C554; // type:function size:0x434 +fn_1_C8EC = .text:0x0000C988; // type:function size:0x204 +fn_1_CAF0 = .text:0x0000CB8C; // type:function size:0x790 +fn_1_D280 = .text:0x0000D31C; // type:function size:0xB0C +fn_1_DD8C = .text:0x0000DE28; // type:function size:0x720 +fn_1_E4AC = .text:0x0000E548; // type:function size:0x9C +fn_1_E548 = .text:0x0000E5E4; // type:function size:0xCCC +fn_1_F214 = .text:0x0000F2B0; // type:function size:0x924 +fn_1_FB38 = .text:0x0000FBD4; // type:function size:0x258 +fn_1_FD90 = .text:0x0000FE2C; // type:function size:0x958 +fn_1_106E8 = .text:0x00010784; // type:function size:0x7C +fn_1_10764 = .text:0x00010800; // type:function size:0x164 +fn_1_108C8 = .text:0x00010964; // type:function size:0x1B8 +fn_1_10A80 = .text:0x00010B1C; // type:function size:0xA4 +fn_1_10B24 = .text:0x00010BC0; // type:function size:0xF4 +fn_1_10C18 = .text:0x00010CB4; // type:function size:0x80 +fn_1_10C98 = .text:0x00010D34; // type:function size:0x80 +fn_1_10D18 = .text:0x00010DB4; // type:function size:0x28 +fn_1_10D40 = .text:0x00010DDC; // type:function size:0x20 +fn_1_10D60 = .text:0x00010DFC; // type:function size:0xD8 +fn_1_10E38 = .text:0x00010ED4; // type:function size:0xC8 +fn_1_10F00 = .text:0x00010F9C; // type:function size:0xBC +fn_1_10FBC = .text:0x00011058; // type:function size:0x40 +fn_1_10FFC = .text:0x00011098; // type:function size:0x24 +fn_1_11020 = .text:0x000110BC; // type:function size:0x1C0 +fn_1_111E0 = .text:0x0001127C; // type:function size:0x84 +fn_1_11264 = .text:0x00011300; // type:function size:0xD4 +fn_1_11338 = .text:0x000113D4; // type:function size:0x58 +fn_1_11390 = .text:0x0001142C; // type:function size:0x15C +fn_1_114EC = .text:0x00011588; // type:function size:0x1C4 +fn_1_11708 = .text:0x0001174C; // type:function size:0x1AC +fn_1_1190C = .text:0x000118F8; // type:function size:0x54 +fn_1_11960 = .text:0x0001194C; // type:function size:0x304 +fn_1_11C64 = .text:0x00011C50; // type:function size:0x304 +fn_1_11F68 = .text:0x00011F54; // type:function size:0x340 +fn_1_122A8 = .text:0x00012294; // type:function size:0xC4 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0x8 +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC +lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 scope:local +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C8 +lbl_1_data_3C8 = .data:0x00000578; // type:object size:0x20 +lbl_1_data_3E8 = .data:0x00000598; // type:object size:0x20 +lbl_1_data_5B8 = .data:0x000005B8; // type:object size:0x3C scope:local data:string +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x19 scope:local data:string +lbl_1_data_60D = .data:0x0000060D; // type:object size:0x1A scope:local data:string +lbl_1_data_627 = .data:0x00000627; // type:object size:0x3A scope:local data:string +lbl_1_data_4B4 = .data:0x00000664; // type:object size:0x20 data:4byte +lbl_1_data_4D4 = .data:0x00000684; // type:object size:0x40 data:4byte +lbl_1_data_514 = .data:0x000006C4; // type:object size:0x70 +lbl_1_data_584 = .data:0x00000734; // type:object size:0x90 data:4byte +lbl_1_data_614 = .data:0x000007C4; // type:object size:0x20 +lbl_1_data_634 = .data:0x000007E4; // type:object size:0x8 data:4byte +lbl_1_data_63C = .data:0x000007EC; // type:object size:0x10 +lbl_1_data_64C = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_66C = .data:0x0000081C; // type:object size:0x4 data:4byte +lbl_1_data_670 = .data:0x00000820; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +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:0x28 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // 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:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x14 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x180 data:4byte +lbl_1_bss_20C = .bss:0x0000020C; // type:object size:0x60 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x6C data:4byte diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt new file mode 100644 index 00000000..787212a6 --- /dev/null +++ b/config/GMPJ01_00/splits.txt @@ -0,0 +1,334 @@ +Sections: + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:16 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:32 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:4 + +game/main.c: + .text start:0x800057C0 end:0x80005A5C + .data start:0x8011E9C0 end:0x8011E9D0 + .sdata start:0x801D30C0 end:0x801D30D0 + .sbss start:0x801D36C0 end:0x801D3718 + .sdata2 start:0x801D4620 end:0x801D4628 + +game/pad.c: + .text start:0x80005A5C end:0x80006478 + .data start:0x8011E9D0 end:0x8011E9E0 + .bss start:0x801424A0 end:0x801424E0 + .sbss start:0x801D3718 end:0x801D37A0 + +game/dvd.c: + .text start:0x80006478 end:0x80006E38 + .data start:0x8011E9E0 end:0x8011EB38 + .sdata start:0x801D30D0 end:0x801D30D8 + .sbss start:0x801D37A0 end:0x801D37A8 + +game/data.c: + .text start:0x80006E38 end:0x80009400 + .data start:0x8011EB38 end:0x8011F9C0 + .bss start:0x801424E0 end:0x801452E0 + .sdata start:0x801D30D8 end:0x801D30E8 + .sbss start:0x801D37A8 end:0x801D37B8 + +game/decode.c: + .text start:0x80009400 end:0x80009AFC + .data start:0x8011F9C0 end:0x8011F9E0 + .bss start:0x801452E0 end:0x801456E0 + +game/font.c: + .data start:0x8011F9E0 end:0x801219E0 + +game/init.c: + .text start:0x80009AFC end:0x8000A464 + .data start:0x801219E0 end:0x80121B30 + .bss start:0x801456E0 end:0x80145720 + .sdata start:0x801D30E8 end:0x801D3100 + .sbss start:0x801D37B8 end:0x801D37E8 + .sdata2 start:0x801D4628 end:0x801D4638 + +game/jmp.c: + .text start:0x8000A464 end:0x8000A558 + +game/malloc.c: + .text start:0x8000A558 end:0x8000A938 + .data start:0x80121B30 end:0x80121BA8 + .bss start:0x80145720 end:0x80145738 + +game/memory.c: + .text start:0x8000A938 end:0x8000AEF0 + .data start:0x80121BA8 end:0x80121D20 + +game/printfunc.c: + .text start:0x8000AEF0 end:0x8000C4A4 + .data start:0x80121D20 end:0x80121D60 + .bss start:0x80145738 end:0x8014C038 + .sbss start:0x801D37E8 end:0x801D37F8 + .sdata2 start:0x801D4638 end:0x801D4688 + +game/process.c: + .text start:0x8000C4A4 end:0x8000D348 + .data start:0x80121D60 end:0x80121DB0 + .bss start:0x8014C038 end:0x8014C130 + .sbss start:0x801D37F8 end:0x801D3808 + +game/sprman.c: + .text start:0x8000D348 end:0x8000F6A0 + .rodata start:0x8011D8E0 end:0x8011D8F0 + .data start:0x80121DB0 end:0x80121ED0 + .bss start:0x8014C130 end:0x8015C330 + .sdata start:0x801D3100 end:0x801D3110 + .sbss start:0x801D3808 end:0x801D3810 + .sdata2 start:0x801D4688 end:0x801D46B0 + +game/sprput.c: + .text start:0x8000F6A0 end:0x80010B30 + .rodata start:0x8011D8F0 end:0x8011D900 + .data start:0x80121ED0 end:0x80121F00 + .bss start:0x8015C330 end:0x8015C360 + .sbss start:0x801D3810 end:0x801D3818 + .sdata2 start:0x801D46B0 end:0x801D46E8 + +game/hsfload.c: + .text start:0x80010B30 end:0x80014018 + .data start:0x80121F00 end:0x80121F70 + .bss start:0x8015C360 end:0x8015C920 + .sbss start:0x801D3818 end:0x801D3850 + +game/hsfdraw.c: + .text start:0x80014018 end:0x8001F9AC + .rodata start:0x8011D900 end:0x8011D910 + .data start:0x80121F70 end:0x80122180 + .bss start:0x8015C920 end:0x80167460 + .sdata start:0x801D3110 end:0x801D3128 + .sbss start:0x801D3850 end:0x801D38F0 + .sdata2 start:0x801D46E8 end:0x801D4770 + +game/hsfman.c: + .text start:0x8001F9AC end:0x800250E8 + .data start:0x80122180 end:0x8012D238 + .bss start:0x80167460 end:0x8018D070 + .sbss start:0x801D38F0 end:0x801D3920 + .sdata2 start:0x801D4770 end:0x801D47D0 + .sbss2 start:0x801D68A0 end:0x801D68A8 + +game/hsfmotion.c: + .text start:0x800250E8 end:0x80028B04 + .data start:0x8012D238 end:0x8012D418 + .bss start:0x8018D070 end:0x8018D870 + .sbss start:0x801D3920 end:0x801D3928 + .sdata2 start:0x801D47D0 end:0x801D4820 + +game/hsfanim.c: + .text start:0x80028B04 end:0x8002CB74 + .data start:0x8012D418 end:0x8012D4D8 + .bss start:0x8018D870 end:0x8018F430 + .sdata2 start:0x801D4820 end:0x801D48A8 + +game/hsfex.c: + .text start:0x8002CB74 end:0x8002E74C + .data start:0x8012D4D8 end:0x8012D4F8 + .sdata2 start:0x801D48A8 end:0x801D4938 + +game/perf.c: + .text start:0x8002E74C end:0x8002EBD8 + .bss start:0x8018F430 end:0x8018F7D8 + .sdata start:0x801D3128 end:0x801D3138 + .sbss start:0x801D3928 end:0x801D3980 + +game/objmain.c: + .text start:0x8002EBD8 end:0x8002FF4C + .data start:0x8012D4F8 end:0x8012D8A8 + .bss start:0x8018F7D8 end:0x8018F898 + .sdata start:0x801D3138 end:0x801D3140 + .sbss start:0x801D3980 end:0x801D39B0 + .sdata2 start:0x801D4938 end:0x801D4960 + +game/fault.c: + .text start:0x8002FF4C end:0x800308B8 + .data start:0x8012D8A8 end:0x8012E0D0 + .bss start:0x8018F898 end:0x8018F8B0 + .sdata start:0x801D3140 end:0x801D3150 + .sbss start:0x801D39B0 end:0x801D39C0 + +game/gamework.c: + .text start:0x800308B8 end:0x800315BC + .rodata start:0x8011D910 end:0x8011D930 + .bss start:0x8018F8B0 end:0x8018FCA8 + +game/objsysobj.c: + .text start:0x800315BC end:0x80031DB4 + .bss start:0x8018FCA8 end:0x8018FE80 + .sbss start:0x801D39C0 end:0x801D39C8 + .sdata2 start:0x801D4960 end:0x801D4970 + +game/objdll.c: + .text start:0x80031DB4 end:0x800325F4 + .data start:0x8012E0D0 end:0x8012E568 + .bss start:0x8018FE80 end:0x8018FED0 + .sbss start:0x801D39C8 end:0x801D39D0 + +game/frand.c: + .text start:0x800325F4 end:0x80032830 + .sbss start:0x801D39D0 end:0x801D39D8 + .sdata2 start:0x801D4970 end:0x801D4980 + +game/audio.c: + .text start:0x80032830 end:0x80033EEC + .data start:0x8012E568 end:0x8012ED10 + .bss start:0x8018FED0 end:0x801900F0 + .sdata start:0x801D3150 end:0x801D3158 + .sbss start:0x801D39D8 end:0x801D3A08 + .sdata2 start:0x801D4980 end:0x801D4990 + +game/EnvelopeExec.c: + .text start:0x80033EEC end:0x800353AC + .sbss start:0x801D3A08 end:0x801D3A38 + .sdata2 start:0x801D4990 end:0x801D49A8 + +game/minigame_seq.c: + .text start:0x800353AC end:0x8003F690 + .data start:0x8012ED10 end:0x8012F378 + .bss start:0x801900F0 end:0x80190500 + .sdata start:0x801D3158 end:0x801D3258 + .sbss start:0x801D3A38 end:0x801D3A58 + .sdata2 start:0x801D49A8 end:0x801D4B60 + +game/ovllist.c: + .data start:0x8012F378 end:0x8012FCE8 + +game/esprite.c: + .text start:0x8003F690 end:0x8003FD40 + .bss start:0x80190500 end:0x80191D00 + .sbss start:0x801D3A58 end:0x801D3A60 + +game/code_8003FF68.c: + .text start:0x8003FD40 end:0x800402D8 + .data start:0x8012FCE8 end:0x8012FD08 + .bss start:0x80191D00 end:0x80192000 + .sdata start:0x801D3258 end:0x801D3278 + .sbss start:0x801D3A60 end:0x801D3A68 + .sdata2 start:0x801D4B60 end:0x801D4B78 + +game/ClusterExec.c: + .text start:0x800402D8 end:0x80040B38 + .sdata2 start:0x801D4B78 end:0x801D4B88 + +game/ShapeExec.c: + .text start:0x80040B38 end:0x80040F48 + .sdata2 start:0x801D4B88 end:0x801D4B98 + +game/wipe.c: + .text start:0x80040F48 end:0x80041E54 + .data start:0x8012FD08 end:0x8012FD20 + .bss start:0x80192000 end:0x8019204C + .sdata start:0x801D3278 end:0x801D3280 + .sbss start:0x801D3A68 end:0x801D3A70 + .sdata2 start:0x801D4B98 end:0x801D4BC0 + +game/window.c: + .text start:0x80041E54 end:0x80047E88 + .data start:0x8012FD20 end:0x80130268 + .bss start:0x80192060 end:0x80196480 + .sdata start:0x801D3280 end:0x801D3288 + .sbss start:0x801D3A70 end:0x801D3AB8 + .sdata2 start:0x801D4BC0 end:0x801D4C58 + +game/messdata.c: + .text start:0x80047E88 end:0x80047F70 + +game/card.c: + .text start:0x80047F70 end:0x80048574 + .data start:0x80130268 end:0x801302B8 + .sbss start:0x801D3AB8 end:0x801D3AC0 + +game/armem.c: + .text start:0x80048574 end:0x800493E0 + .data start:0x801302B8 end:0x801303A8 + .bss start:0x80196480 end:0x80196B60 + .sbss start:0x801D3AC0 end:0x801D3AD0 + +game/chrman.c: + .text start:0x800493E0 end:0x8005074C + .data start:0x801303A8 end:0x80130DC8 + .bss start:0x80196B60 end:0x801972F0 + .sdata start:0x801D3288 end:0x801D32D0 + .sbss start:0x801D3AD0 end:0x801D3AD8 + .sdata2 start:0x801D4C58 end:0x801D4D90 + +game/mapspace.c: + .text start:0x8005074C end:0x800544F0 + .bss start:0x801972F0 end:0x80197760 + .sbss start:0x801D3AD8 end:0x801D3AF8 + .sdata2 start:0x801D4D90 end:0x801D4DC0 + +game/THPSimple.c: + .text start:0x800544F0 end:0x800565F4 + .data start:0x80130DC8 end:0x80130EC8 + .bss start:0x80197760 end:0x80197E40 + .sdata start:0x801D32D0 end:0x801D32D8 + .sbss start:0x801D3AF8 end:0x801D3B18 + .sdata2 start:0x801D4DC0 end:0x801D4DC8 + +game/THPDraw.c: + .text start:0x800565F4 end:0x80056F4C + .sdata2 start:0x801D4DC8 end:0x801D4DE0 + +game/thpmain.c: + .text start:0x80056F4C end:0x80057914 + .rodata start:0x8011D930 end:0x8011D940 + .data start:0x80130EC8 end:0x80130F30 + .bss start:0x80197E40 end:0x80197E80 + .sbss start:0x801D3B18 end:0x801D3B40 + .sdata2 start:0x801D4DE0 end:0x801D4DF8 + +game/objsub.c: + .text start:0x80057914 end:0x80057B00 + .data start:0x80130F30 end:0x80131D30 + .bss start:0x80197E80 end:0x801980B0 + .sbss start:0x801D3B40 end:0x801D3B68 + +game/flag.c: + .text start:0x80057B00 end:0x80057D18 + .bss start:0x801980B0 end:0x801980C0 + +game/saveload.c: + .text start:0x80057D18 end:0x8005A324 + .data start:0x80131D30 end:0x80131DE8 + .bss start:0x801980C0 end:0x8019C0E0 + .sdata start:0x801D32D8 end:0x801D3300 + .sbss start:0x801D3B68 end:0x801D3B78 + .sdata2 start:0x801D4DF8 end:0x801D4E08 + +game/sreset.c: + .text start:0x8005A324 end:0x8005AD7C + .data start:0x80131E00 end:0x80139438 + .bss start:0x8019C0E0 end:0x8019D480 + .sdata start:0x801D3300 end:0x801D3318 + .sbss start:0x801D3B78 end:0x801D3B90 + +game/board/main.c: + .text start:0x8005AD7C end:0x80061BB4 + .rodata start:0x8011D940 end:0x8011D970 + .data start:0x80139438 end:0x80139538 + .bss start:0x8019D480 end:0x8019D608 + .sdata start:0x801D3318 end:0x801D3328 + .sbss start:0x801D3B90 end:0x801D3BE0 + .sdata2 start:0x801D4E08 end:0x801D4EB8 + +game/board/player.c: + .text start:0x80061BB4 end:0x8006CEF8 + .rodata start:0x8011D970 end:0x8011DA40 + .data start:0x80139538 end:0x80139740 + .bss start:0x8019D608 end:0x8019D638 + .sdata start:0x801D3328 end:0x801D3388 + .sbss start:0x801D3BE0 end:0x801D3C18 + .sdata2 start:0x801D4EB8 end:0x801D4FC0 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt new file mode 100644 index 00000000..ca5a261c --- /dev/null +++ b/config/GMPJ01_00/symbols.txt @@ -0,0 +1,7540 @@ +__check_pad3 = .init:0x80003100; // type:function size:0x40 scope:local +__start = .init:0x80003140; // type:function size:0x138 scope:weak +__init_registers = .init:0x80003278; // type:function size:0x1C scope:local +__init_data = .init:0x80003294; // type:function size:0xC0 scope:local +__init_hardware = .init:0x80003354; // type:function size:0x20 scope:global +__flush_cache = .init:0x80003374; // type:function size:0x34 scope:global +memset = .init:0x800033A8; // type:function size:0x30 scope:global +__fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global +memcpy = .init:0x80003490; // type:function size:0x50 scope:global +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 +gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global +lbl_80003800 = .init:0x80003800; // type:label +lbl_80003C00 = .init:0x80003C00; // type:label +lbl_80003F80 = .init:0x80003F80; // type:label +__TRK_reset = .init:0x80005468; // type:function size:0x104 +gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global +_rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte +_bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte +@etb_80005620 = extab:0x80005620; // type:object size:0x28 scope:local hidden +@etb_80005648 = extab:0x80005648; // type:object size:0x8 scope:local hidden +@etb_80005650 = extab:0x80005650; // type:object size:0x8 scope:local hidden +@etb_80005658 = extab:0x80005658; // type:object size:0x8 scope:local hidden +@etb_80005660 = extab:0x80005660; // type:object size:0x8 scope:local hidden +@etb_80005668 = extab:0x80005668; // type:object size:0x8 scope:local hidden +@etb_80005670 = extab:0x80005670; // type:object size:0x8 scope:local hidden +@etb_80005678 = extab:0x80005678; // type:object size:0x14 scope:local hidden +@etb_8000568C = extab:0x8000568C; // type:object size:0x2C scope:local hidden +@etb_800056B8 = extab:0x800056B8; // type:object size:0x8 scope:local hidden +@etb_800056C0 = extab:0x800056C0; // type:object size:0x14 scope:local hidden +@etb_800056D4 = extab:0x800056D4; // type:object size:0x8 scope:local hidden +@etb_800056DC = extab:0x800056DC; // type:object size:0x8 scope:local hidden +@eti_80005700 = extabindex:0x80005700; // type:object size:0xC scope:local hidden +@eti_8000570C = extabindex:0x8000570C; // type:object size:0xC scope:local hidden +@eti_80005718 = extabindex:0x80005718; // type:object size:0xC scope:local hidden +@eti_80005724 = extabindex:0x80005724; // type:object size:0xC scope:local hidden +@eti_80005730 = extabindex:0x80005730; // type:object size:0xC scope:local hidden +@eti_8000573C = extabindex:0x8000573C; // type:object size:0xC scope:local hidden +@eti_80005748 = extabindex:0x80005748; // type:object size:0xC scope:local hidden +@eti_80005754 = extabindex:0x80005754; // type:object size:0xC scope:local hidden +@eti_80005760 = extabindex:0x80005760; // type:object size:0xC scope:local hidden +@eti_8000576C = extabindex:0x8000576C; // type:object size:0xC scope:local hidden +@eti_80005778 = extabindex:0x80005778; // type:object size:0xC scope:local hidden +@eti_80005784 = extabindex:0x80005784; // type:object size:0xC scope:local hidden +@eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden +_eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global +main = .text:0x800057C0; // type:function size:0x22C scope:global +HuSysVWaitSet = .text:0x800059EC; // type:function size:0x38 +HuSysVWaitGet = .text:0x80005A24; // type:function size:0xC +rand8 = .text:0x80005A30; // type:function size:0x2C +HuPadInit = .text:0x80005A5C; // type:function size:0xF0 +HuPadRead = .text:0x80005B4C; // type:function size:0x168 +PadReadVSync = .text:0x80005CB4; // type:function size:0x440 scope:local +PadADConv = .text:0x800060F4; // type:function size:0x234 scope:local +HuPadRumbleSet = .text:0x80006328; // type:function size:0x54 +HuPadRumbleStop = .text:0x8000637C; // type:function size:0x70 +HuPadRumbleAllStop = .text:0x800063EC; // type:function size:0x70 +HuPadStatGet = .text:0x8000645C; // type:function size:0x14 +HuPadRumbleGet = .text:0x80006470; // type:function size:0x8 +HuDVDReadAsyncCallBack = .text:0x80006478; // type:function size:0xC scope:local +HuDvdDataRead = .text:0x80006484; // type:function size:0x16C +HuDvdDataReadMulti = .text:0x800065F0; // type:function size:0x1B4 +HuDvdDataReadDirect = .text:0x800067A4; // type:function size:0x170 +HuDvdDataFastRead = .text:0x80006914; // type:function size:0x16C +HuDvdDataFastReadNum = .text:0x80006A80; // type:function size:0x174 +HuDvdDataFastReadAsync = .text:0x80006BF4; // type:function size:0x150 +HuDvdDataClose = .text:0x80006D44; // type:function size:0x38 +HuDvdErrorWatch = .text:0x80006D7C; // type:function size:0xBC +HuDataInit = .text:0x80006E38; // type:function size:0xD0 +HuDataReadChk = .text:0x80006F08; // type:function size:0x74 +HuDataGetStatus = .text:0x80006F7C; // type:function size:0x64 +HuDataGetDirPtr = .text:0x80006FE0; // type:function size:0xB8 +HuDataDirRead = .text:0x80007098; // type:function size:0x224 +HuDataDirSet = .text:0x800072BC; // type:function size:0x188 +HuDataDirReadAsyncCallBack = .text:0x80007444; // type:function size:0xC8 +HuDataDirReadAsync = .text:0x8000750C; // type:function size:0x1A8 +HuDataDirReadNumAsync = .text:0x800076B4; // type:function size:0x1A8 +HuDataGetAsyncStat = .text:0x8000785C; // type:function size:0x60 +HuDataRead = .text:0x800078BC; // type:function size:0x344 +HuDataReadNum = .text:0x80007C00; // type:function size:0x3A0 +HuDataSelHeapRead = .text:0x80007FA0; // type:function size:0x3C4 +HuDataSelHeapReadNum = .text:0x80008364; // type:function size:0x428 +HuDataReadMulti = .text:0x8000878C; // type:function size:0x30 +HuDataReadMultiSub = .text:0x800087BC; // type:function size:0x3FC +HuDataGetSize = .text:0x80008BB8; // type:function size:0x104 +HuDataClose = .text:0x80008CBC; // type:function size:0x38 +HuDataCloseMulti = .text:0x80008CF4; // type:function size:0x7C +HuDataDirClose = .text:0x80008D70; // type:function size:0xD4 +HuDataDirCloseNum = .text:0x80008E44; // type:function size:0x130 +HuDataReadNumHeapShortForce = .text:0x80008F74; // type:function size:0x48C +HuDecodeSlide = .text:0x80009400; // type:function size:0x200 scope:local +HuDecodeFslide = .text:0x80009600; // type:function size:0x1D8 scope:local +HuDecodeData = .text:0x800097D8; // type:function size:0x324 +HuSysInit = .text:0x80009AFC; // type:function size:0x138 +InitRenderMode = .text:0x80009C34; // type:function size:0xD0 scope:local +InitGX = .text:0x80009D04; // type:function size:0x164 scope:local +InitMem = .text:0x80009E68; // type:function size:0x13C scope:local +InitVI = .text:0x80009FA4; // type:function size:0x54 scope:local +HuSysBeforeRender = .text:0x80009FF8; // type:function size:0xE4 +HuSysDoneRender = .text:0x8000A0DC; // type:function size:0xC8 +SwapBuffers = .text:0x8000A1A4; // type:function size:0x6C scope:local +LoadMemInfo = .text:0x8000A210; // type:function size:0x254 scope:local +gcsetjmp = .text:0x8000A464; // type:function size:0x74 +gclongjmp = .text:0x8000A4D8; // type:function size:0x80 +HuMemInitAll = .text:0x8000A558; // type:function size:0x12C +HuMemInit = .text:0x8000A684; // type:function size:0x30 +HuMemDCFlushAll = .text:0x8000A6B4; // type:function size:0x2C +HuMemDCFlush = .text:0x8000A6E0; // type:function size:0x54 +HuMemDirectMalloc = .text:0x8000A734; // type:function size:0x64 +HuMemDirectMallocNum = .text:0x8000A798; // type:function size:0x6C +HuMemDirectFree = .text:0x8000A804; // type:function size:0x38 +HuMemDirectFreeNum = .text:0x8000A83C; // type:function size:0x54 +HuMemUsedMallocSizeGet = .text:0x8000A890; // type:function size:0x3C +HuMemUsedMallocBlockGet = .text:0x8000A8CC; // type:function size:0x3C +HuMemHeapSizeGet = .text:0x8000A908; // type:function size:0x18 +HuMemHeapPtrGet = .text:0x8000A920; // type:function size:0x18 +HuMemHeapInit = .text:0x8000A938; // type:function size:0x4C +HuMemMemoryAllocNum = .text:0x8000A984; // type:function size:0x40 +HuMemMemoryAlloc = .text:0x8000A9C4; // type:function size:0x3C +HuMemMemoryAlloc2 = .text:0x8000AA00; // type:function size:0x108 scope:local +HuMemMemoryFreeNum = .text:0x8000AB08; // type:function size:0x7C +HuMemMemoryFree = .text:0x8000AB84; // type:function size:0x12C +HuMemUsedMemorySizeGet = .text:0x8000ACB0; // type:function size:0x48 +HuMemUsedMemoryBlockGet = .text:0x8000ACF8; // type:function size:0x44 +HuMemMemoryAllocSizeGet = .text:0x8000AD3C; // type:function size:0xC +HuMemHeapDump = .text:0x8000AD48; // type:function size:0x158 +HuMemMemorySizeGet = .text:0x8000AEA0; // type:function size:0x50 +pfInit = .text:0x8000AEF0; // type:function size:0x64 +pfClsScr = .text:0x8000AF54; // type:function size:0xA0 +print8 = .text:0x8000AFF4; // type:function size:0x15C +printWin = .text:0x8000B150; // type:function size:0xAC +pfDrawFonts = .text:0x8000B1FC; // type:function size:0xEE8 +WireDraw = .text:0x8000C0E4; // type:function size:0x3C0 scope:local +HuPrcInit = .text:0x8000C4A4; // type:function size:0x14 +HuPrcCreate = .text:0x8000C4B8; // type:function size:0x1E8 +HuPrcChildLink = .text:0x8000C6A0; // type:function size:0x68 +HuPrcChildUnlink = .text:0x8000C708; // type:function size:0x58 +HuPrcChildCreate = .text:0x8000C760; // type:function size:0x27C +HuPrcChildWatch = .text:0x8000C9DC; // type:function size:0x60 +HuPrcCurrentGet = .text:0x8000CA3C; // type:function size:0x8 +SetKillStatusProcess = .text:0x8000CA44; // type:function size:0x50 scope:local +HuPrcKill = .text:0x8000CA94; // type:function size:0xD4 +HuPrcChildKill = .text:0x8000CB68; // type:function size:0x2A4 +HuPrcEnd = .text:0x8000CE0C; // type:function size:0x100 +HuPrcSleep = .text:0x8000CF0C; // type:function size:0x80 +HuPrcVSleep = .text:0x8000CF8C; // type:function size:0x54 +HuPrcWakeup = .text:0x8000CFE0; // type:function size:0xC +HuPrcDestructorSet2 = .text:0x8000CFEC; // type:function size:0x8 +HuPrcDestructorSet = .text:0x8000CFF4; // type:function size:0x28 +HuPrcCall = .text:0x8000D01C; // type:function size:0x184 +HuPrcMemAlloc = .text:0x8000D1A0; // type:function size:0x4C +HuPrcMemFree = .text:0x8000D1EC; // type:function size:0x30 +HuPrcSetStat = .text:0x8000D21C; // type:function size:0x10 +HuPrcResetStat = .text:0x8000D22C; // type:function size:0x14 +HuPrcAllPause = .text:0x8000D240; // type:function size:0x84 +HuPrcAllUPause = .text:0x8000D2C4; // type:function size:0x84 +HuSprInit = .text:0x8000D348; // type:function size:0xA0 +HuSprClose = .text:0x8000D3E8; // type:function size:0xB0 +HuSprExec = .text:0x8000D498; // type:function size:0x64 +HuSprBegin = .text:0x8000D4FC; // type:function size:0x188 +HuSprOrderEntry = .text:0x8000D684; // type:function size:0x14C +HuSprCall = .text:0x8000D7D0; // type:function size:0xF4 +HuSprFinish = .text:0x8000D8C4; // type:function size:0x458 +HuSprPauseSet = .text:0x8000DD1C; // type:function size:0x8 +HuSprAnimRead = .text:0x8000DD24; // type:function size:0x114 +HuSprAnimLock = .text:0x8000DE38; // type:function size:0x10 +HuSprCreate = .text:0x8000DE48; // type:function size:0x128 +HuSprFuncCreate = .text:0x8000DF70; // type:function size:0x188 +HuSprGrpCreate = .text:0x8000E0F8; // type:function size:0xF4 +HuSprGrpCopy = .text:0x8000E1EC; // type:function size:0x334 +HuSprGrpMemberSet = .text:0x8000E520; // type:function size:0x8C +HuSprGrpMemberKill = .text:0x8000E5AC; // type:function size:0xAC +HuSprGrpKill = .text:0x8000E658; // type:function size:0x9C +HuSprKill = .text:0x8000E6F4; // type:function size:0x84 +HuSprAnimKill = .text:0x8000E778; // type:function size:0x90 +HuSprAttrSet = .text:0x8000E808; // type:function size:0xAC +HuSprAttrReset = .text:0x8000E8B4; // type:function size:0xAC +HuSprPosSet = .text:0x8000E960; // type:function size:0x60 +HuSprZRotSet = .text:0x8000E9C0; // type:function size:0x5C +HuSprScaleSet = .text:0x8000EA1C; // type:function size:0x60 +HuSprTPLvlSet = .text:0x8000EA7C; // type:function size:0x64 +HuSprColorSet = .text:0x8000EAE0; // type:function size:0x64 +HuSprSpeedSet = .text:0x8000EB44; // type:function size:0x4C +HuSprBankSet = .text:0x8000EB90; // type:function size:0xF0 +HuSprGrpPosSet = .text:0x8000EC80; // type:function size:0x9C +HuSprGrpCenterSet = .text:0x8000ED1C; // type:function size:0x9C +HuSprGrpZRotSet = .text:0x8000EDB8; // type:function size:0x98 +HuSprGrpScaleSet = .text:0x8000EE50; // type:function size:0x9C +HuSprGrpTPLvlSet = .text:0x8000EEEC; // type:function size:0xC0 +HuSprGrpDrawNoSet = .text:0x8000EFAC; // type:function size:0x8C +HuSprDrawNoSet = .text:0x8000F038; // type:function size:0x50 +HuSprPriSet = .text:0x8000F088; // type:function size:0x4C +HuSprGrpScissorSet = .text:0x8000F0D4; // type:function size:0xAC +HuSprScissorSet = .text:0x8000F180; // type:function size:0x58 +HuSprAnimMake = .text:0x8000F1D8; // type:function size:0x1FC +HuSprBGSet = .text:0x8000F3D4; // type:function size:0x68 +HuSprSprBGSet = .text:0x8000F43C; // type:function size:0x50 +AnimDebug = .text:0x8000F48C; // type:function size:0x214 +HuSprDispInit = .text:0x8000F6A0; // type:function size:0x158 +HuSprDisp = .text:0x8000F7F8; // type:function size:0xECC +HuSprTexLoad = .text:0x800106C4; // type:function size:0x29C +HuSprExecLayerSet = .text:0x80010960; // type:function size:0x58 +HuSprLayerHook = .text:0x800109B8; // type:function size:0x178 scope:local +LoadHSF = .text:0x80010B30; // type:function size:0xB0 +ClusterAdjustObject = .text:0x80010BE0; // type:function size:0xA0 +FileLoad = .text:0x80010C80; // type:function size:0xC8 scope:local +SetHsfModel = .text:0x80010D48; // type:function size:0x284 scope:local +SetName = .text:0x80010FCC; // type:function size:0x38 +MaterialLoad = .text:0x80011004; // type:function size:0x210 scope:local +AttributeLoad = .text:0x80011214; // type:function size:0xF8 scope:local +SceneLoad = .text:0x8001130C; // type:function size:0x80 scope:local +ColorLoad = .text:0x8001138C; // type:function size:0x130 scope:local +VertexLoad = .text:0x800114BC; // type:function size:0x1C0 scope:local +NormalLoad = .text:0x8001167C; // type:function size:0x128 scope:local +STLoad = .text:0x800117A4; // type:function size:0x1A8 scope:local +FaceLoad = .text:0x8001194C; // type:function size:0x190 scope:local +DispObject = .text:0x80011ADC; // type:function size:0x7A8 scope:local +ObjectLoad = .text:0x80012284; // type:function size:0x15C scope:local +CenvLoad = .text:0x800123E0; // type:function size:0x464 scope:local +SkeletonLoad = .text:0x80012844; // type:function size:0x198 scope:local +PartLoad = .text:0x800129DC; // type:function size:0x12C scope:local +ClusterLoad = .text:0x80012B08; // type:function size:0x1E8 scope:local +ShapeLoad = .text:0x80012CF0; // type:function size:0x168 scope:local +MapAttrLoad = .text:0x80012E58; // type:function size:0xD0 scope:local +BitmapLoad = .text:0x80012F28; // type:function size:0x174 scope:local +PaletteLoad = .text:0x8001309C; // type:function size:0x16C scope:local +MakeObjectName = .text:0x80013208; // type:function size:0xE8 +CmpObjectName = .text:0x800132F0; // type:function size:0x38 +MotionLoad = .text:0x80013328; // type:function size:0x938 scope:local +MatrixLoad = .text:0x80013C60; // type:function size:0x80 scope:local +SearchObjectSetName = .text:0x80013CE0; // type:function size:0x94 scope:local +SearchVertexPtr = .text:0x80013D74; // type:function size:0x44 scope:local +SearchNormalPtr = .text:0x80013DB8; // type:function size:0x44 scope:local +SearchStPtr = .text:0x80013DFC; // type:function size:0x44 scope:local +SearchColorPtr = .text:0x80013E40; // type:function size:0x44 scope:local +SearchFacePtr = .text:0x80013E84; // type:function size:0x44 scope:local +SearchCenvPtr = .text:0x80013EC8; // type:function size:0x44 scope:local +SearchPartPtr = .text:0x80013F0C; // type:function size:0x44 scope:local +SearchPalettePtr = .text:0x80013F50; // type:function size:0x3C scope:local +SearchBitmapPtr = .text:0x80013F8C; // type:function size:0x44 scope:local +GetString = .text:0x80013FD0; // type:function size:0x24 scope:local +GetMotionString = .text:0x80013FF4; // type:function size:0x24 scope:local +Hu3DDrawPreInit = .text:0x80014018; // type:function size:0xC +Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 +objCall = .text:0x800141C4; // type:function size:0xEC scope:local +objMesh = .text:0x800142B0; // type:function size:0x86C scope:local +ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC +SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local +SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local +SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local +SetKColorRGB = .text:0x8001908C; // type:function size:0x180 scope:local +FlushKColor = .text:0x8001920C; // type:function size:0xB0 scope:local +SetReflect = .text:0x800192BC; // type:function size:0x280 scope:local +SetProjection = .text:0x8001953C; // type:function size:0x29C scope:local +SetShadowTex = .text:0x800197D8; // type:function size:0x8C scope:local +SetShadow = .text:0x80019864; // type:function size:0xCC scope:local +FaceDrawShadow = .text:0x80019930; // type:function size:0x5E4 scope:local +LoadTexture = .text:0x80019F14; // type:function size:0x75C scope:local +objNull = .text:0x8001A670; // type:function size:0x248 scope:local +objRoot = .text:0x8001A8B8; // type:function size:0x198 scope:local +objJoint = .text:0x8001AA50; // type:function size:0x248 scope:local +objMap = .text:0x8001AC98; // type:function size:0x17C scope:local +objReplica = .text:0x8001AE14; // type:function size:0x1B4 scope:local +Hu3DDrawPost = .text:0x8001AFC8; // type:function size:0xB00 +ObjDraw = .text:0x8001BAC8; // type:function size:0x6D0 scope:local +MakeDisplayList = .text:0x8001C198; // type:function size:0xBC +MDObjCall = .text:0x8001C254; // type:function size:0x438 scope:local +MDObjMesh = .text:0x8001C68C; // type:function size:0x2A8 scope:local +ObjConstantMake = .text:0x8001C934; // type:function size:0x68 +MDFaceDraw = .text:0x8001C99C; // type:function size:0xD08 scope:local +MakeCalcNBT = .text:0x8001D6A4; // type:function size:0x3A8 scope:local +MakeNBT = .text:0x8001DA4C; // type:function size:0x2C4 scope:local +MDFaceCnt = .text:0x8001DD10; // type:function size:0x2C8 scope:local +mtxTransCat = .text:0x8001DFD8; // type:function size:0x4C +mtxRotCat = .text:0x8001E024; // type:function size:0xF4 +mtxRot = .text:0x8001E118; // type:function size:0xF0 +mtxScaleCat = .text:0x8001E208; // type:function size:0x70 +HmfInverseMtxF3X3 = .text:0x8001E278; // type:function size:0x1E0 +SetDefLight = .text:0x8001E458; // type:function size:0x190 +Hu3DModelObjPosGet = .text:0x8001E5E8; // type:function size:0x90 +Hu3DModelObjMtxGet = .text:0x8001E678; // type:function size:0x318 +PGObjCall = .text:0x8001E990; // type:function size:0x80 +PGObjCalc = .text:0x8001EA10; // type:function size:0x7B0 +PGObjReplica = .text:0x8001F1C0; // type:function size:0x574 +Hu3DObjDuplicate = .text:0x8001F734; // type:function size:0x158 +Hu3DModelObjDrawInit = .text:0x8001F88C; // type:function size:0x90 +Hu3DModelObjDraw = .text:0x8001F91C; // type:function size:0x90 +Hu3DInit = .text:0x8001F9AC; // type:function size:0x220 +Hu3DPreProc = .text:0x8001FBCC; // type:function size:0xD8 +Hu3DExec = .text:0x8001FCA4; // type:function size:0x688 +Hu3DAllKill = .text:0x8002032C; // type:function size:0x158 +Hu3DBGColorSet = .text:0x80020484; // type:function size:0x18 +Hu3DLayerHookSet = .text:0x8002049C; // type:function size:0x1C +Hu3DPauseSet = .text:0x800204B8; // type:function size:0xC +Hu3DNoSyncSet = .text:0x800204C4; // type:function size:0xC +Hu3DModelCreate = .text:0x800204D0; // type:function size:0x330 +Hu3DModelLink = .text:0x80020800; // type:function size:0x2E8 +Hu3DHookFuncCreate = .text:0x80020AE8; // type:function size:0x1C8 +Hu3DModelKill = .text:0x80020CB0; // type:function size:0x34C +Hu3DModelAllKill = .text:0x80020FFC; // type:function size:0xD0 +Hu3DModelPosSet = .text:0x800210CC; // type:function size:0x34 +Hu3DModelPosSetV = .text:0x80021100; // type:function size:0x40 +Hu3DModelRotSet = .text:0x80021140; // type:function size:0x34 +Hu3DModelRotSetV = .text:0x80021174; // type:function size:0x40 +Hu3DModelScaleSet = .text:0x800211B4; // type:function size:0x34 +Hu3DModelScaleSetV = .text:0x800211E8; // type:function size:0x40 +Hu3DModelAttrSet = .text:0x80021228; // type:function size:0x54 +Hu3DModelAttrReset = .text:0x8002127C; // type:function size:0x50 +Hu3DModelAttrGet = .text:0x800212CC; // type:function size:0x2C +Hu3DModelMotionAttrGet = .text:0x800212F8; // type:function size:0x2C +Hu3DModelClusterAttrSet = .text:0x80021324; // type:function size:0x44 +Hu3DModelClusterAttrReset = .text:0x80021368; // type:function size:0x44 +Hu3DModelCameraSet = .text:0x800213AC; // type:function size:0x2C +Hu3DModelLayerSet = .text:0x800213D8; // type:function size:0x6C +Hu3DModelObjPtrGet = .text:0x80021444; // type:function size:0xD8 +Hu3DModelTPLvlSet = .text:0x8002151C; // type:function size:0xF8 +Hu3DModelHiliteMapSet = .text:0x80021614; // type:function size:0x98 +Hu3DModelShadowSet = .text:0x800216AC; // type:function size:0xB0 +Hu3DModelShadowReset = .text:0x8002175C; // type:function size:0xA0 +Hu3DModelShadowDispOn = .text:0x800217FC; // type:function size:0x34 +Hu3DModelShadowDispOff = .text:0x80021830; // type:function size:0x34 +Hu3DModelShadowMapSet = .text:0x80021864; // type:function size:0x88 +Hu3DModelShadowMapObjSet = .text:0x800218EC; // type:function size:0xBC +Hu3DModelAmbSet = .text:0x800219A8; // type:function size:0x34 +Hu3DModelHookSet = .text:0x800219DC; // type:function size:0xEC +Hu3DModelHookReset = .text:0x80021AC8; // type:function size:0xB4 +Hu3DModelHookObjReset = .text:0x80021B7C; // type:function size:0xF0 +Hu3DModelProjectionSet = .text:0x80021C6C; // type:function size:0x44 +Hu3DModelProjectionReset = .text:0x80021CB0; // type:function size:0x44 +Hu3DModelHiliteTypeSet = .text:0x80021CF4; // type:function size:0xBC +Hu3DModelReflectTypeSet = .text:0x80021DB0; // type:function size:0x30 +Hu3DCameraCreate = .text:0x80021DE0; // type:function size:0x134 +Hu3DCameraPerspectiveSet = .text:0x80021F14; // type:function size:0x80 +Hu3DCameraViewportSet = .text:0x80021F94; // type:function size:0x88 +Hu3DCameraScissorSet = .text:0x8002201C; // type:function size:0x90 +Hu3DCameraPosSet = .text:0x800220AC; // type:function size:0x98 +Hu3DCameraPosSetV = .text:0x80022144; // type:function size:0xB8 +Hu3DCameraKill = .text:0x800221FC; // type:function size:0x78 +Hu3DCameraAllKill = .text:0x80022274; // type:function size:0xD0 +Hu3DCameraSet = .text:0x80022344; // type:function size:0xDC +Hu3DModelCameraInfoSet = .text:0x80022420; // type:function size:0x3C0 +Hu3DModelCameraCreate = .text:0x800227E0; // type:function size:0x88 +Hu3DCameraMotionOn = .text:0x80022868; // type:function size:0x58 +Hu3DCameraMotionStart = .text:0x800228C0; // type:function size:0xD4 +Hu3DCameraMotionOff = .text:0x80022994; // type:function size:0x34 +Hu3DLighInit = .text:0x800229C8; // type:function size:0x74 +Hu3DGLightCreate = .text:0x80022A3C; // type:function size:0xA0 +Hu3DGLightCreateV = .text:0x80022ADC; // type:function size:0x104 +Hu3DLLightCreate = .text:0x80022BE0; // type:function size:0xA8 +Hu3DLLightCreateV = .text:0x80022C88; // type:function size:0x17C +Hu3DGLightSpotSet = .text:0x80022E04; // type:function size:0x44 +Hu3DLLightSpotSet = .text:0x80022E48; // type:function size:0x6C +Hu3DGLightInfinitytSet = .text:0x80022EB4; // type:function size:0x48 +Hu3DLLightInfinitytSet = .text:0x80022EFC; // type:function size:0x70 +Hu3DGLightPointSet = .text:0x80022F6C; // type:function size:0x58 +Hu3DLLightPointSet = .text:0x80022FC4; // type:function size:0x80 +Hu3DGLightKill = .text:0x80023044; // type:function size:0x20 +Hu3DLLightKill = .text:0x80023064; // type:function size:0xBC +Hu3DLightAllKill = .text:0x80023120; // type:function size:0x68 +Hu3DGLightColorSet = .text:0x80023188; // type:function size:0x38 +Hu3DLLightColorSet = .text:0x800231C0; // type:function size:0x60 +Hu3DGLightPosSetV = .text:0x80023220; // type:function size:0x70 +Hu3DLLightPosSetV = .text:0x80023290; // type:function size:0x9C +Hu3DGLightPosSet = .text:0x8002332C; // type:function size:0x90 +Hu3DLLightPosSet = .text:0x800233BC; // type:function size:0xBC +Hu3DGLightPosAimSetV = .text:0x80023478; // type:function size:0x80 +Hu3DLLightPosAimSetV = .text:0x800234F8; // type:function size:0xAC +Hu3DGLightPosAimSet = .text:0x800235A4; // type:function size:0xC4 +Hu3DLLightPosAimSet = .text:0x80023668; // type:function size:0xF0 +Hu3DGLightStaticSet = .text:0x80023758; // type:function size:0x54 +Hu3DLLightStaticSet = .text:0x800237AC; // type:function size:0x7C +Hu3DModelLightInfoSet = .text:0x80023828; // type:function size:0x4D0 +Hu3DLightSet = .text:0x80023CF8; // type:function size:0x130 +lightSet = .text:0x80023E28; // type:function size:0x254 +Hu3DReflectMapSet = .text:0x8002407C; // type:function size:0x68 +Hu3DReflectNoSet = .text:0x800240E4; // type:function size:0x8 +Hu3DFogSet = .text:0x800240EC; // type:function size:0x60 +Hu3DFogClear = .text:0x8002414C; // type:function size:0x74 +Hu3DShadowCreate = .text:0x800241C0; // type:function size:0x188 +Hu3DShadowPosSet = .text:0x80024348; // type:function size:0x64 +Hu3DShadowTPLvlSet = .text:0x800243AC; // type:function size:0x2C +Hu3DShadowSizeSet = .text:0x800243D8; // type:function size:0x78 +Hu3DShadowExec = .text:0x80024450; // type:function size:0x860 +Hu3DProjectionCreate = .text:0x80024CB0; // type:function size:0x130 +Hu3DProjectionKill = .text:0x80024DE0; // type:function size:0x60 +Hu3DProjectionPosSet = .text:0x80024E40; // type:function size:0x88 +Hu3DProjectionTPLvlSet = .text:0x80024EC8; // type:function size:0x38 +Hu3DMipMapSet = .text:0x80024F00; // type:function size:0x1E8 +Hu3DMotionInit = .text:0x800250E8; // type:function size:0x48 +Hu3DMotionCreate = .text:0x80025130; // type:function size:0xA4 +Hu3DMotionModelCreate = .text:0x800251D4; // type:function size:0xC4 +Hu3DMotionKill = .text:0x80025298; // type:function size:0x114 +Hu3DMotionAllKill = .text:0x800253AC; // type:function size:0x11C +Hu3DMotionSet = .text:0x800254C8; // type:function size:0xBC +Hu3DMotionOverlaySet = .text:0x80025584; // type:function size:0x54 +Hu3DMotionOverlayReset = .text:0x800255D8; // type:function size:0x20 +Hu3DMotionOverlayTimeGet = .text:0x800255F8; // type:function size:0x1C +Hu3DMotionOverlayTimeSet = .text:0x80025614; // type:function size:0x1C +Hu3DMotionOverlaySpeedSet = .text:0x80025630; // type:function size:0x1C +Hu3DMotionShiftSet = .text:0x8002564C; // type:function size:0x1F4 +Hu3DMotionShapeSet = .text:0x80025840; // type:function size:0xBC +Hu3DMotionShapeIDGet = .text:0x800258FC; // type:function size:0x1C +Hu3DMotionShapeSpeedSet = .text:0x80025918; // type:function size:0x2C +Hu3DMotionShapeTimeSet = .text:0x80025944; // type:function size:0x1C +Hu3DMotionShapeMaxTimeGet = .text:0x80025960; // type:function size:0x44 +Hu3DMotionShapeStartEndSet = .text:0x800259A4; // type:function size:0x30 +Hu3DMotionClusterSet = .text:0x800259D4; // type:function size:0x114 +Hu3DMotionClusterNoSet = .text:0x80025AE8; // type:function size:0xD0 +Hu3DMotionShapeReset = .text:0x80025BB8; // type:function size:0x20 +Hu3DMotionClusterReset = .text:0x80025BD8; // type:function size:0xC8 +Hu3DMotionIDGet = .text:0x80025CA0; // type:function size:0x2C +Hu3DMotionShiftIDGet = .text:0x80025CCC; // type:function size:0x2C +Hu3DMotionTimeSet = .text:0x80025CF8; // type:function size:0xF4 +Hu3DMotionTimeGet = .text:0x80025DEC; // type:function size:0x2C +Hu3DMotionShiftTimeGet = .text:0x80025E18; // type:function size:0x2C +Hu3DMotionMaxTimeGet = .text:0x80025E44; // type:function size:0xA8 +Hu3DMotionShiftMaxTimeGet = .text:0x80025EEC; // type:function size:0xA8 +Hu3DMotionShiftStartEndSet = .text:0x80025F94; // type:function size:0x30 +Hu3DMotionMotionMaxTimeGet = .text:0x80025FC4; // type:function size:0x8C +Hu3DMotionStartEndSet = .text:0x80026050; // type:function size:0x30 +Hu3DMotionEndCheck = .text:0x80026080; // type:function size:0x170 +Hu3DMotionSpeedSet = .text:0x800261F0; // type:function size:0x2C +Hu3DMotionShiftSpeedSet = .text:0x8002621C; // type:function size:0x2C +Hu3DMotionNoMotSet = .text:0x80026248; // type:function size:0x114 +Hu3DMotionNoMotReset = .text:0x8002635C; // type:function size:0x5C +Hu3DMotionForceSet = .text:0x800263B8; // type:function size:0x108 +Hu3DMotionNext = .text:0x800264C0; // type:function size:0x798 +Hu3DMotionExec = .text:0x80026C58; // type:function size:0x534 +Hu3DCameraMotionExec = .text:0x8002718C; // type:function size:0xC0 +Hu3DSubMotionExec = .text:0x8002724C; // type:function size:0x2A8 +GetObjTRXPtr = .text:0x800274F4; // type:function size:0x14C +SetObjMatMotion = .text:0x80027640; // type:function size:0x208 +SetObjAttrMotion = .text:0x80027848; // type:function size:0x218 +SetObjCameraMotion = .text:0x80027A60; // type:function size:0x558 +SetObjLightMotion = .text:0x80027FB8; // type:function size:0x1D8 +GetCurve = .text:0x80028190; // type:function size:0xD8 +GetConstant = .text:0x80028268; // type:function size:0x70 +GetLinear = .text:0x800282D8; // type:function size:0x110 +GetBezier = .text:0x800283E8; // type:function size:0x200 +GetBitMap = .text:0x800285E8; // type:function size:0x64 +Hu3DJointMotion = .text:0x8002864C; // type:function size:0xCC +JointModel_Motion = .text:0x80028718; // type:function size:0x124 +Hu3DMotionCalc = .text:0x8002883C; // type:function size:0x19C +SearchObjectIndex = .text:0x800289D8; // type:function size:0x90 scope:local +SearchAttributeIndex = .text:0x80028A68; // type:function size:0x9C scope:local +Hu3DAnimInit = .text:0x80028B04; // type:function size:0x7C +Hu3DAnimCreate = .text:0x80028B80; // type:function size:0x1D0 +Hu3DAnimLink = .text:0x80028D50; // type:function size:0x1C4 +Hu3DAnimKill = .text:0x80028F14; // type:function size:0x104 +Hu3DAnimModelKill = .text:0x80029018; // type:function size:0x13C +Hu3DAnimAllKill = .text:0x80029154; // type:function size:0x134 +Hu3DAnimAttrSet = .text:0x80029288; // type:function size:0x34 +Hu3DAnimAttrReset = .text:0x800292BC; // type:function size:0x38 +Hu3DAnimSpeedSet = .text:0x800292F4; // type:function size:0x2C +Hu3DAnimBankSet = .text:0x80029320; // type:function size:0x48 +Hu3DAnmNoSet = .text:0x80029368; // type:function size:0x38 +Hu3DAnimSet = .text:0x800293A0; // type:function size:0x240 +Hu3DAnimExec = .text:0x800295E0; // type:function size:0x474 +Hu3DTexScrollCreate = .text:0x80029A54; // type:function size:0x1AC +Hu3DTexScrollKill = .text:0x80029C00; // type:function size:0xE0 +Hu3DTexScrollAllKill = .text:0x80029CE0; // type:function size:0x10C +Hu3DTexScrollPosSet = .text:0x80029DEC; // type:function size:0x44 +Hu3DTexScrollPosMoveSet = .text:0x80029E30; // type:function size:0xA4 +Hu3DTexScrollRotSet = .text:0x80029ED4; // type:function size:0x3C +Hu3DTexScrollRotMoveSet = .text:0x80029F10; // type:function size:0x5C +Hu3DTexScrollPauseDisableSet = .text:0x80029F6C; // type:function size:0x54 +Hu3DParticleCreate = .text:0x80029FC0; // type:function size:0x348 +Hu3DParticleScaleSet = .text:0x8002A308; // type:function size:0x6C +Hu3DParticleZRotSet = .text:0x8002A374; // type:function size:0x6C +Hu3DParticleColSet = .text:0x8002A3E0; // type:function size:0x74 +Hu3DParticleTPLvlSet = .text:0x8002A454; // type:function size:0x80 +Hu3DParticleBlendModeSet = .text:0x8002A4D4; // type:function size:0x38 +Hu3DParticleHookSet = .text:0x8002A50C; // type:function size:0x38 +Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 +Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 +Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C +Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local +Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 +Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 +Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C +Hu3DParManKill = .text:0x8002B4D0; // type:function size:0x190 +Hu3DParManAllKill = .text:0x8002B660; // type:function size:0x1C4 +Hu3DParManPtrGet = .text:0x8002B824; // type:function size:0x20 +Hu3DParManPosSet = .text:0x8002B844; // type:function size:0x3C +Hu3DParManVecSet = .text:0x8002B880; // type:function size:0x3C +Hu3DParManRotSet = .text:0x8002B8BC; // type:function size:0x7C +Hu3DParManAttrSet = .text:0x8002B938; // type:function size:0x40 +Hu3DParManAttrReset = .text:0x8002B978; // type:function size:0x40 +Hu3DParManModelIDGet = .text:0x8002B9B8; // type:function size:0x34 +Hu3DParManTimeLimitSet = .text:0x8002B9EC; // type:function size:0x38 +Hu3DParManVacumeSet = .text:0x8002BA24; // type:function size:0x74 +Hu3DParManColorSet = .text:0x8002BA98; // type:function size:0x68 +ParManFunc = .text:0x8002BB00; // type:function size:0xBC0 scope:local +ParManHook = .text:0x8002C6C0; // type:function size:0x4B4 scope:local +CamMotionEx2 = .text:0x8002CB74; // type:function size:0xAC +CamMotionEx = .text:0x8002CC20; // type:function size:0xA14 +SetObjCamMotion = .text:0x8002D634; // type:function size:0x244 scope:local +InterpolateBMLine = .text:0x8002D878; // type:function size:0x40C +Hu3D2Dto3D = .text:0x8002DC84; // type:function size:0x1D4 +Hu3D3Dto2D = .text:0x8002DE58; // type:function size:0x1D0 +Hu3DMtxTransGet = .text:0x8002E028; // type:function size:0x1C +Hu3DMtxRotGet = .text:0x8002E044; // type:function size:0x540 +Hu3DMtxScaleGet = .text:0x8002E584; // type:function size:0x1C8 +HuPerfInit = .text:0x8002E74C; // type:function size:0x94 +HuPerfCreate = .text:0x8002E7E0; // type:function size:0x130 +HuPerfZero = .text:0x8002E910; // type:function size:0x40 +HuPerfBegin = .text:0x8002E950; // type:function size:0x7C +HuPerfEnd = .text:0x8002E9CC; // type:function size:0xA0 +DSCallbackFunc = .text:0x8002EA6C; // type:function size:0x16C scope:local +omMasterInit = .text:0x8002EBD8; // type:function size:0x90 +omWatchOverlayProc = .text:0x8002EC68; // type:function size:0x170 scope:local +omOvlCallEx = .text:0x8002EDD8; // type:function size:0xE8 +omOvlGotoEx = .text:0x8002EEC0; // type:function size:0x60 +omOvlReturnEx = .text:0x8002EF20; // type:function size:0xF4 +omOvlKill = .text:0x8002F014; // type:function size:0xB8 +omOvlHisChg = .text:0x8002F0CC; // type:function size:0xA0 +omOvlHisGet = .text:0x8002F16C; // type:function size:0x78 +omInitObjMan = .text:0x8002F1E4; // type:function size:0x220 +omDestroyObjMan = .text:0x8002F404; // type:function size:0x50 +omAddObjEx = .text:0x8002F454; // type:function size:0x1DC +omInsertObj = .text:0x8002F630; // type:function size:0xF8 +omAddMember = .text:0x8002F728; // type:function size:0x84 +omDelObjEx = .text:0x8002F7AC; // type:function size:0x190 +omDelMember = .text:0x8002F93C; // type:function size:0x88 +omMakeGroupEx = .text:0x8002F9C4; // type:function size:0xFC +omGetGroupMemberListEx = .text:0x8002FAC0; // type:function size:0x2C +omSetStatBit = .text:0x8002FAEC; // type:function size:0x10 +omResetStatBit = .text:0x8002FAFC; // type:function size:0x14 +omSetTra = .text:0x8002FB10; // type:function size:0x10 +omSetRot = .text:0x8002FB20; // type:function size:0x10 +omSetSca = .text:0x8002FB30; // type:function size:0x10 +omMain = .text:0x8002FB40; // type:function size:0x2F8 +omAllPause = .text:0x8002FE38; // type:function size:0xE0 +omPauseChk = .text:0x8002FF18; // type:function size:0x2C +omCurrentOvlGet = .text:0x8002FF44; // type:function size:0x8 +OSPanic = .text:0x8002FF4C; // type:function size:0x150 +HuFaultInitXfbDirectDraw = .text:0x8003009C; // type:function size:0x118 +HuFaultSetXfbAddress = .text:0x800301B4; // type:function size:0x34 +XFB_WriteBackCache = .text:0x800301E8; // type:function size:0x98 scope:local +XFB_CR = .text:0x80030280; // type:function size:0x50 scope:local +XFB_puts = .text:0x800302D0; // type:function size:0xF4 scope:local +XFB_putcS = .text:0x800303C4; // type:function size:0x150 scope:local +XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0 scope:local +XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4 scope:local +GWInit = .text:0x800308B8; // type:function size:0x14C +GWGameStatReset = .text:0x80030A04; // type:function size:0x318 +GWMessDelayGet = .text:0x80030D1C; // type:function size:0x4C +GWMGRecordSet = .text:0x80030D68; // type:function size:0x54 +GWMGRecordGet = .text:0x80030DBC; // type:function size:0x18 +GWCharColorGet = .text:0x80030DD4; // type:function size:0x140 +GWBoardPlayCountSet = .text:0x80030F14; // type:function size:0x24 +GWBoardPlayCountAdd = .text:0x80030F38; // type:function size:0x38 +GWBoardPlayCountGet = .text:0x80030F70; // type:function size:0x14 +GWBoardMaxStarsSet = .text:0x80030F84; // type:function size:0x1C +GWBoardMaxStarsGet = .text:0x80030FA0; // type:function size:0x18 +GWBoardMaxCoinsSet = .text:0x80030FB8; // type:function size:0x1C +GWBoardMaxCoinsGet = .text:0x80030FD4; // type:function size:0x18 +GWBoardWinCountInc = .text:0x80030FEC; // type:function size:0x5C +GWBoardWinCountGet = .text:0x80031048; // type:function size:0x1C +GWBoardWinCountSet = .text:0x80031064; // type:function size:0x20 +GWMGAvailGet = .text:0x80031084; // type:function size:0x6C +GWMGAvailSet = .text:0x800310F0; // type:function size:0x5C +GWMGCustomGet = .text:0x8003114C; // type:function size:0x6C +GWMGCustomSet = .text:0x800311B8; // type:function size:0x5C +GWMGCustomReset = .text:0x80031214; // type:function size:0x60 +GWCoinsGet = .text:0x80031274; // type:function size:0x18 +GWCoinsSet = .text:0x8003128C; // type:function size:0xB0 +GWCoinsAdd = .text:0x8003133C; // type:function size:0xD0 +GWStarsSet = .text:0x8003140C; // type:function size:0x6C +GWStarsAdd = .text:0x80031478; // type:function size:0x94 +GWStarsGet = .text:0x8003150C; // type:function size:0x18 +GWTotalStarsSet = .text:0x80031524; // type:function size:0x34 +GWTotalStarsAdd = .text:0x80031558; // type:function size:0x54 +GWTotalStarsGet = .text:0x800315AC; // type:function size:0x10 +omOutView = .text:0x800315BC; // type:function size:0x238 +omOutViewMulti = .text:0x800317F4; // type:function size:0x2C4 +omSystemKeyCheckSetup = .text:0x80031AB8; // type:function size:0x74 +omSystemKeyCheck = .text:0x80031B2C; // type:function size:0x230 +omSysPauseEnable = .text:0x80031D5C; // type:function size:0x8 +omSysPauseCtrl = .text:0x80031D64; // type:function size:0x50 +omDLLDBGOut = .text:0x80031DB4; // type:function size:0x2C +omDLLInit = .text:0x80031DE0; // type:function size:0x6C +omDLLStart = .text:0x80031E4C; // type:function size:0x154 +omDLLNumEnd = .text:0x80031FA0; // type:function size:0xB4 +omDLLEnd = .text:0x80032054; // type:function size:0x13C +omDLLLink = .text:0x80032190; // type:function size:0x138 +omDLLUnlink = .text:0x800322C8; // type:function size:0xB4 +omDLLSearch = .text:0x8003237C; // type:function size:0xC8 +omDLLInfoDump = .text:0x80032444; // type:function size:0xD0 +omDLLHeaderDump = .text:0x80032514; // type:function size:0xE0 +frand = .text:0x800325F4; // type:function size:0xAC +frandf = .text:0x800326A0; // type:function size:0xD8 +frandmod = .text:0x80032778; // type:function size:0xB8 +HuAudInit = .text:0x80032830; // type:function size:0x170 +HuAudStreamPlay = .text:0x800329A0; // type:function size:0x8 +HuAudStreamVolSet = .text:0x800329A8; // type:function size:0x3C +HuAudStreamPauseOn = .text:0x800329E4; // type:function size:0x24 +HuAudStreamPauseOff = .text:0x80032A08; // type:function size:0x24 +HuAudStreamFadeOut = .text:0x80032A2C; // type:function size:0x4 +HuAudAllStop = .text:0x80032A30; // type:function size:0x28 +HuAudFadeOut = .text:0x80032A58; // type:function size:0x3C +HuAudFXPlay = .text:0x80032A94; // type:function size:0x80 +HuAudFXPlayVol = .text:0x80032B14; // type:function size:0x48 +HuAudFXPlayVolPan = .text:0x80032B5C; // type:function size:0x68 +HuAudFXStop = .text:0x80032BC4; // type:function size:0x2C +HuAudFXAllStop = .text:0x80032BF0; // type:function size:0x28 +HuAudFXFadeOut = .text:0x80032C18; // type:function size:0x30 +HuAudFXPanning = .text:0x80032C48; // type:function size:0x50 +HuAudFXListnerSet = .text:0x80032C98; // type:function size:0xA4 +HuAudFXListnerSetEX = .text:0x80032D3C; // type:function size:0x134 +HuAudFXListnerUpdate = .text:0x80032E70; // type:function size:0x3C +HuAudFXEmiterPlay = .text:0x80032EAC; // type:function size:0x6C +HuAudFXEmiterUpDate = .text:0x80032F18; // type:function size:0x64 +HuAudFXListnerKill = .text:0x80032F7C; // type:function size:0x20 +HuAudFXPauseAll = .text:0x80032F9C; // type:function size:0x2C +HuAudFXStatusGet = .text:0x80032FC8; // type:function size:0x28 +HuAudFXPitchSet = .text:0x80032FF0; // type:function size:0x54 +HuAudFXVolSet = .text:0x80033044; // type:function size:0x58 +HuAudSeqPlay = .text:0x8003309C; // type:function size:0x5C +HuAudSeqStop = .text:0x800330F8; // type:function size:0x48 +HuAudSeqFadeOut = .text:0x80033140; // type:function size:0x3C +HuAudSeqAllFadeOut = .text:0x8003317C; // type:function size:0x5C +HuAudSeqAllStop = .text:0x800331D8; // type:function size:0x28 +HuAudSeqPauseAll = .text:0x80033200; // type:function size:0x2C +HuAudSeqPause = .text:0x8003322C; // type:function size:0x54 +HuAudSeqMidiCtrlGet = .text:0x80033280; // type:function size:0x60 +HuAudSStreamPlay = .text:0x800332E0; // type:function size:0x64 +HuAudSStreamStop = .text:0x80033344; // type:function size:0x38 +HuAudSStreamFadeOut = .text:0x8003337C; // type:function size:0x3C +HuAudSStreamAllFadeOut = .text:0x800333B8; // type:function size:0x28 +HuAudSStreamAllStop = .text:0x800333E0; // type:function size:0x24 +HuAudSStreamStatGet = .text:0x80033404; // type:function size:0x28 +HuAudDllSndGrpSet = .text:0x8003342C; // type:function size:0x104 +HuAudSndGrpSetSet = .text:0x80033530; // type:function size:0x1A4 +HuAudSndGrpSet = .text:0x800336D4; // type:function size:0x60 +HuAudSndCommonGrpSet = .text:0x80033734; // type:function size:0x154 +HuAudAUXSet = .text:0x80033888; // type:function size:0x58 +HuAudAUXVolSet = .text:0x800338E0; // type:function size:0xC +HuAudVoiceInit = .text:0x800338EC; // type:function size:0x294 +HuAudPlayerVoicePlay = .text:0x80033B80; // type:function size:0x50 +HuAudPlayerVoicePlayPos = .text:0x80033BD0; // type:function size:0x58 +HuAudPlayerVoicePlayEntry = .text:0x80033C28; // type:function size:0x50 +HuAudCharVoicePlay = .text:0x80033C78; // type:function size:0xAC +HuAudCharVoicePlayPos = .text:0x80033D24; // type:function size:0xD0 +HuAudCharVoicePlayEntry = .text:0x80033DF4; // type:function size:0x90 +HuSePlay = .text:0x80033E84; // type:function size:0x68 scope:local +InitEnvelope = .text:0x80033EEC; // type:function size:0x1A4 +SetEnvelopMtx = .text:0x80034090; // type:function size:0x23C scope:local +EnvelopeProc = .text:0x800342CC; // type:function size:0x80 +InitVtxParm = .text:0x8003434C; // type:function size:0x50 +SetEnvelopMain = .text:0x8003439C; // type:function size:0x158 scope:local +SetEnvelop = .text:0x800344F4; // type:function size:0x9F0 scope:local +SetMtx = .text:0x80034EE4; // type:function size:0x334 scope:local +SetRevMtx = .text:0x80035218; // type:function size:0x11C scope:local +SearchSklenton = .text:0x80035334; // type:function size:0x78 scope:local +MGSeqInit = .text:0x800353AC; // type:function size:0xBC +MGSeqMain = .text:0x80035468; // type:function size:0x188 +CreateSeq = .text:0x800355F0; // type:function size:0x1A4 scope:local +MGSeqCreate = .text:0x80035794; // type:function size:0x100 +MGSeqStatGet = .text:0x80035894; // type:function size:0x88 +MGSeqPosSet = .text:0x8003591C; // type:function size:0x4C +MGSeqParamSet = .text:0x80035968; // type:function size:0x4C +MGSeqKill = .text:0x800359B4; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C +MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 +MGSeqStub = .text:0x80035AEC; // type:function size:0x4 +MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 +fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 +SeqMakeWord = .text:0x80036D50; // type:function size:0x1E4 scope:local +SeqLoadFontChar = .text:0x80036F34; // type:function size:0x23C scope:local +MGSeqInitMGBasic = .text:0x80037170; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037304; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CD4; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F78; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D1C; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039AC0; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A678; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B12C; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B4F0; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE0C; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CA90; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB6C; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF48; // type:function size:0x6B8 +MGSeqUpdateWin = .text:0x8003D600; // type:function size:0x708 +MGSeqInitRecord = .text:0x8003DD08; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E47C; // type:function size:0x304 +MGSeqPauseInit = .text:0x8003E780; // type:function size:0x6C +PauseProc = .text:0x8003E7EC; // type:function size:0x94C scope:local +MGSeqPauseKill = .text:0x8003F138; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F144; // type:function size:0x40 +MGSeqPracticeInit = .text:0x8003F184; // type:function size:0xDC +PracticeProc = .text:0x8003F260; // type:function size:0x234 scope:local +SeqPlayStartFX = .text:0x8003F494; // type:function size:0xD4 scope:local +MGSeqPracticeExitCheck = .text:0x8003F568; // type:function size:0x128 +espInit = .text:0x8003F690; // type:function size:0xA0 +espEntry = .text:0x8003F730; // type:function size:0x1B0 +espKill = .text:0x8003F8E0; // type:function size:0x98 +espGrpIDGet = .text:0x8003F978; // type:function size:0x8 +espDispOn = .text:0x8003F980; // type:function size:0x44 +espDispOff = .text:0x8003F9C4; // type:function size:0x44 +espAttrSet = .text:0x8003FA08; // type:function size:0x48 +espAttrReset = .text:0x8003FA50; // type:function size:0x48 +espPosSet = .text:0x8003FA98; // type:function size:0x50 +espScaleSet = .text:0x8003FAE8; // type:function size:0x50 +espZRotSet = .text:0x8003FB38; // type:function size:0x48 +espTPLvlSet = .text:0x8003FB80; // type:function size:0x48 +espColorSet = .text:0x8003FBC8; // type:function size:0x58 +espSpeedSet = .text:0x8003FC20; // type:function size:0x48 +espBankSet = .text:0x8003FC68; // type:function size:0x48 +espDrawNoSet = .text:0x8003FCB0; // type:function size:0x48 +espPriSet = .text:0x8003FCF8; // type:function size:0x48 +fn_8003FF68 = .text:0x8003FD40; // type:function size:0x268 +fn_800401D0 = .text:0x8003FFA8; // type:function size:0x12C +fn_800402FC = .text:0x800400D4; // type:function size:0x78 +fn_80040374 = .text:0x8004014C; // type:function size:0x98 +fn_8004040C = .text:0x800401E4; // type:function size:0xF4 +GetClusterCurve = .text:0x800402D8; // type:function size:0xA8 +GetClusterWeightCurve = .text:0x80040380; // type:function size:0xA8 +SetClusterMain = .text:0x80040428; // type:function size:0x3A0 +ClusterProc = .text:0x800407C8; // type:function size:0x160 +ClusterMotionExec = .text:0x80040928; // type:function size:0x210 +SetShapeMain = .text:0x80040B38; // type:function size:0x36C scope:local +ShapeProc = .text:0x80040EA4; // type:function size:0xA4 +WipeInit = .text:0x80040F48; // type:function size:0xB4 +WipeExecAlways = .text:0x80040FFC; // type:function size:0x288 +WipeCreate = .text:0x80041284; // type:function size:0x12C +WipeColorSet = .text:0x800413B0; // type:function size:0x28 +WipeStatGet = .text:0x800413D8; // type:function size:0x10 +WipeDummyFade = .text:0x800413E8; // type:function size:0x8 scope:local +WipeNormalFade = .text:0x800413F0; // type:function size:0xFC scope:local +WipeColorFill = .text:0x800414EC; // type:function size:0x31C scope:local +WipeCrossFade = .text:0x80041808; // type:function size:0x184 scope:local +WipeFrameStill = .text:0x8004198C; // type:function size:0x4C8 scope:local +HuWindowInit = .text:0x80041E54; // type:function size:0x74 +HuWinInit = .text:0x80041EC8; // type:function size:0x214 +HuWinCreate = .text:0x800420DC; // type:function size:0x54C +HuWinKill = .text:0x80042628; // type:function size:0xA4 +HuWinAllKill = .text:0x800426CC; // type:function size:0x1AC +MesDispFunc = .text:0x80042878; // type:function size:0x7D0 scope:local +winBGMake = .text:0x80043048; // type:function size:0x480 scope:local +HuWinProc = .text:0x800434C8; // type:function size:0xF4 scope:local +HuWinDrawMes = .text:0x800435BC; // type:function size:0x1044 scope:local +HuWinCR = .text:0x80044600; // type:function size:0x54 scope:local +_HuWinHomeClear = .text:0x80044654; // type:function size:0x90 scope:local +HuWinHomeClear = .text:0x800446E4; // type:function size:0xA4 +HuWinKeyWaitEntry = .text:0x80044788; // type:function size:0x88 +HuWinKeyWait = .text:0x80044810; // type:function size:0x10C scope:local +HuWinSpcFontEntry = .text:0x8004491C; // type:function size:0x1A4 scope:local +HuWinSpcFontClear = .text:0x80044AC0; // type:function size:0x80 scope:local +HuWinChoice = .text:0x80044B40; // type:function size:0xA90 scope:local +HuWinActivePadGet = .text:0x800455D0; // type:function size:0x68 +HuWinActiveKeyGetX = .text:0x80045638; // type:function size:0xE8 +HuWinPosSet = .text:0x80045720; // type:function size:0x6C +HuWinScaleSet = .text:0x8004578C; // type:function size:0x6C +HuWinZRotSet = .text:0x800457F8; // type:function size:0x58 +HuWinCenterPosSet = .text:0x80045850; // type:function size:0xAC +HuWinDrawNoSet = .text:0x800458FC; // type:function size:0x4C +HuWinScissorSet = .text:0x80045948; // type:function size:0x64 +HuWinPriSet = .text:0x800459AC; // type:function size:0xB8 +HuWinAttrSet = .text:0x80045A64; // type:function size:0x34 +HuWinAttrReset = .text:0x80045A98; // type:function size:0x34 +HuWinStatGet = .text:0x80045ACC; // type:function size:0x2C +HuWinMesColSet = .text:0x80045AF8; // type:function size:0x3C +HuWinMesPalSet = .text:0x80045B34; // type:function size:0x58 +HuWinBGTPLvlSet = .text:0x80045B8C; // type:function size:0x50 +HuWinBGColSet = .text:0x80045BDC; // type:function size:0x60 +HuWinMesSpeedSet = .text:0x80045C3C; // type:function size:0x2C +HuWinMesRead = .text:0x80045C68; // type:function size:0xC4 +HuWinMesSet = .text:0x80045D2C; // type:function size:0xC8 +HuWinInsertMesSet = .text:0x80045DF4; // type:function size:0xD8 +HuWinChoiceGet = .text:0x80045ECC; // type:function size:0x27C +HuWinChoiceNumGet = .text:0x80046148; // type:function size:0x2C +HuWinChoiceDisable = .text:0x80046174; // type:function size:0x38 +HuWinChoiceNowGet = .text:0x800461AC; // type:function size:0x40 +HuWinMesWait = .text:0x800461EC; // type:function size:0x50 +HuWinAnimSet = .text:0x8004623C; // type:function size:0x8C +HuWinSprSet = .text:0x800462C8; // type:function size:0xF0 +HuWinSprPosSet = .text:0x800463B8; // type:function size:0x88 +HuWinSprPriSet = .text:0x80046440; // type:function size:0x6C +HuWinSprIDGet = .text:0x800464AC; // type:function size:0x38 +HuWinSprKill = .text:0x800464E4; // type:function size:0x68 +HuWinDispOff = .text:0x8004654C; // type:function size:0x90 +HuWinDispOn = .text:0x800465DC; // type:function size:0x90 +HuWinComKeyWait = .text:0x8004666C; // type:function size:0xC0 +HuWinComKeySet = .text:0x8004672C; // type:function size:0x44 +_HuWinComKeySet = .text:0x80046770; // type:function size:0x98 +HuWinComKeyGet = .text:0x80046808; // type:function size:0x1D4 +HuWinComKeyReset = .text:0x800469DC; // type:function size:0x10 +HuWinMesMaxSizeGet = .text:0x800469EC; // type:function size:0x170 +HuWinInsertMesSizeGet = .text:0x80046B5C; // type:function size:0x54 +HuWinMesSizeCancelCRSet = .text:0x80046BB0; // type:function size:0x8 +HuWinMesMaxSizeBetGet = .text:0x80046BB8; // type:function size:0x114 +GetMesMaxSizeSub = .text:0x80046CCC; // type:function size:0x2A0 scope:local +GetMesMaxSizeSub2 = .text:0x80046F6C; // type:function size:0x1CC scope:local +HuWinKeyWaitNumGet = .text:0x80047138; // type:function size:0x88 +HuWinPushKeySet = .text:0x800471C0; // type:function size:0x2C +HuWinDisablePlayerSet = .text:0x800471EC; // type:function size:0x34 +HuWinDisablePlayerReset = .text:0x80047220; // type:function size:0x38 +HuWinExCreate = .text:0x80047258; // type:function size:0x4C +HuWinExCreateStyled = .text:0x800472A4; // type:function size:0x228 +HuWinExAnimIn = .text:0x800474CC; // type:function size:0x3B0 +HuWinExAnimOut = .text:0x8004787C; // type:function size:0x304 +HuWinExCleanup = .text:0x80047B80; // type:function size:0xA4 +HuWinExAnimPopIn = .text:0x80047C24; // type:function size:0x264 +MessData_MesPtrGet = .text:0x80047E88; // type:function size:0xE8 +HuCardInit = .text:0x80047F70; // type:function size:0x34 +HuCardCheck = .text:0x80047FA4; // type:function size:0xC4 +HuCardSlotCheck = .text:0x80048068; // type:function size:0x58 +HuCardMount = .text:0x800480C0; // type:function size:0xEC +HuCardUnMount = .text:0x800481AC; // type:function size:0x28 +HuCardFormat = .text:0x800481D4; // type:function size:0x50 +MountCallBack = .text:0x80048224; // type:function size:0x1C scope:local +HuCardOpen = .text:0x80048240; // type:function size:0x70 +HuCardRead = .text:0x800482B0; // type:function size:0x68 +HuCardCreate = .text:0x80048318; // type:function size:0x100 +HuCardClose = .text:0x80048418; // type:function size:0x38 +HuCardWrite = .text:0x80048450; // type:function size:0x50 +HuCardDelete = .text:0x800484A0; // type:function size:0x40 +HuCardSectorSizeGet = .text:0x800484E0; // type:function size:0x4C +HuCardFreeSpaceGet = .text:0x8004852C; // type:function size:0x48 +HuARInit = .text:0x80048574; // type:function size:0x148 +HuARMalloc = .text:0x800486BC; // type:function size:0x16C +HuARFree = .text:0x80048828; // type:function size:0x16C +HuAMemDump = .text:0x80048994; // type:function size:0xA8 +HuAR_DVDtoARAM = .text:0x80048A3C; // type:function size:0x160 +ArqCallBack = .text:0x80048B9C; // type:function size:0x10 scope:local +HuAR_MRAMtoARAM = .text:0x80048BAC; // type:function size:0x2C +HuAR_MRAMtoARAM2 = .text:0x80048BD8; // type:function size:0x140 +HuAR_ARAMtoMRAM = .text:0x80048D18; // type:function size:0x2C +HuAR_ARAMtoMRAMNum = .text:0x80048D44; // type:function size:0x1F0 +ArqCallBackAM = .text:0x80048F34; // type:function size:0x44 scope:local +HuARDMACheck = .text:0x80048F78; // type:function size:0x8 +HuARDirCheck = .text:0x80048F80; // type:function size:0x58 +HuARDirFree = .text:0x80048FD8; // type:function size:0x68 +HuAR_ARAMtoMRAMFileRead = .text:0x80049040; // type:function size:0x390 +ArqCallBackAMFileRead = .text:0x800493D0; // type:function size:0x10 scope:local +CharManInit = .text:0x800493E0; // type:function size:0x134 +CharAMemPtrGet = .text:0x80049514; // type:function size:0x1C +CharARAMOpen = .text:0x80049530; // type:function size:0x98 +CharARAMClose = .text:0x800495C8; // type:function size:0x58 +CharKill = .text:0x80049620; // type:function size:0x428 +CharKillAll = .text:0x80049A48; // type:function size:0x3C +CharModelCreate = .text:0x80049A84; // type:function size:0x180 +UpdateChar = .text:0x80049C04; // type:function size:0x20C scope:local +UpdateCharAnim = .text:0x80049E10; // type:function size:0x173C scope:local +PlayCharVoice = .text:0x8004B54C; // type:function size:0xB0 scope:local +InitEffect = .text:0x8004B5FC; // type:function size:0x254 scope:local +CreateEffectDust = .text:0x8004B850; // type:function size:0xB0 scope:local +CreateEffectSmoke = .text:0x8004B900; // type:function size:0xB0 scope:local +CreateEffectDot = .text:0x8004B9B0; // type:function size:0xB0 scope:local +CreateEffectStar = .text:0x8004BA60; // type:function size:0xB0 scope:local +CreateEffectWarn = .text:0x8004BB10; // type:function size:0xB0 scope:local +CreateEffectBird = .text:0x8004BBC0; // type:function size:0xB0 scope:local +CreateEffect = .text:0x8004BC70; // type:function size:0x1CC scope:local +UpdateEffect = .text:0x8004BE3C; // type:function size:0x4A0 scope:local +RotateEffect = .text:0x8004C2DC; // type:function size:0x1E8 scope:local +PlayEffectSound = .text:0x8004C4C4; // type:function size:0x344 scope:local +CharModelMotionCreate = .text:0x8004C808; // type:function size:0x1D0 +CharModelMotionIndexSet = .text:0x8004C9D8; // type:function size:0x88 +CharModelMotionKill = .text:0x8004CA60; // type:function size:0x9C +CharModelMotionDataClose = .text:0x8004CAFC; // type:function size:0x2B8 +CharModelDataClose = .text:0x8004CDB4; // type:function size:0x430 +CharModelKill = .text:0x8004D1E4; // type:function size:0x244 +CharModelMotionSet = .text:0x8004D428; // type:function size:0x7C +CharModelTexAnimSet = .text:0x8004D4A4; // type:function size:0x17C +CharModelTexNameGet = .text:0x8004D620; // type:function size:0x7C +CharModelHookNameGet = .text:0x8004D69C; // type:function size:0x7C +CharModelMotionTimeSet = .text:0x8004D718; // type:function size:0x4C +CharModelMotionTimeGet = .text:0x8004D764; // type:function size:0x44 +CharModelMotionMaxTimeGet = .text:0x8004D7A8; // type:function size:0x44 +CharModelMotionEndCheck = .text:0x8004D7EC; // type:function size:0x44 +CharModelMotionShiftIDGet = .text:0x8004D830; // type:function size:0x44 +CharModelMotionShiftSet = .text:0x8004D874; // type:function size:0x84 +CharModelMotionShiftTimeGet = .text:0x8004D8F8; // type:function size:0x44 +CharModelMotionSpeedSet = .text:0x8004D93C; // type:function size:0x4C +CharModelLayerSetAll = .text:0x8004D988; // type:function size:0x80 +CharModelItemHookCreate = .text:0x8004DA08; // type:function size:0x1D4 +UpdateItemHook = .text:0x8004DBDC; // type:function size:0x484 scope:local +CharModelEffectCreate = .text:0x8004E060; // type:function size:0x3FC +OrbitEffect = .text:0x8004E45C; // type:function size:0x168 scope:local +CharModelCoinEffectCreate = .text:0x8004E5C4; // type:function size:0x1A0 +fn_8004EC74 = .text:0x8004E764; // type:function size:0x130 +fn_8004EDA4 = .text:0x8004E894; // type:function size:0x2B4 +fn_8004F058 = .text:0x8004EB48; // type:function size:0xE4 +fn_8004F13C = .text:0x8004EC2C; // type:function size:0x2B4 +CharModelLayerSetAll2 = .text:0x8004EEE0; // type:function size:0x80 +CharModelVoiceEnableSet = .text:0x8004EF60; // type:function size:0xBC +fn_8004F52C = .text:0x8004F01C; // type:function size:0x4C +CharModelEffectEnableSet = .text:0x8004F068; // type:function size:0xB0 +CharModelEffectNpcInit = .text:0x8004F118; // type:function size:0x2CC +CharModelEffectNpcInitSilent = .text:0x8004F3E4; // type:function size:0x2CC +UpdateNpcEffect = .text:0x8004F6B0; // type:function size:0xF80 scope:local +CharModelStepTypeSet = .text:0x80050630; // type:function size:0x30 +PlayStepFX = .text:0x80050660; // type:function size:0xEC scope:local +MapWall = .text:0x8005074C; // type:function size:0x1B8 +MapWallCheck = .text:0x80050904; // type:function size:0x110 +MapPos = .text:0x80050A14; // type:function size:0x2A8 +PolygonRangeCheck = .text:0x80050CBC; // type:function size:0x38C scope:local +DefIfnnerMapCircle = .text:0x80051048; // type:function size:0x470 scope:local +CalcPPLength = .text:0x800514B8; // type:function size:0x5D4 scope:local +MapIflnnerCalc = .text:0x80051A8C; // type:function size:0xF4 scope:local +MapCalcPoint = .text:0x80051B80; // type:function size:0x388 scope:local +AreaCheck = .text:0x80051F08; // type:function size:0x148 scope:local +MapIflnnerTriangle = .text:0x80052050; // type:function size:0x518 scope:local +MapIflnnerQuadrangle = .text:0x80052568; // type:function size:0x994 scope:local +GetPolygonCircleMtx = .text:0x80052EFC; // type:function size:0xC28 scope:local +PrecalcPntToTriangle = .text:0x80053B24; // type:function size:0x43C scope:local +Hitcheck_Triangle_with_Sphere = .text:0x80053F60; // type:function size:0x100 +Hitcheck_Quadrangle_with_Sphere = .text:0x80054060; // type:function size:0x19C +DefSetHitFace = .text:0x800541FC; // type:function size:0x4C scope:local +AppendAddXZ = .text:0x80054248; // type:function size:0x184 +CharRotInv = .text:0x800543CC; // type:function size:0x124 +THPSimpleInit = .text:0x800544F0; // type:function size:0x124 +THPSimpleQuit = .text:0x80054614; // type:function size:0x54 +THPSimpleOpen = .text:0x80054668; // type:function size:0x408 +THPSimpleClose = .text:0x80054A70; // type:function size:0xC0 +THPSimpleCalcNeedMemory = .text:0x80054B30; // type:function size:0x184 +THPSimpleSetBuffer = .text:0x80054CB4; // type:function size:0x240 +__THPSimpleDVDCallback = .text:0x80054EF4; // type:function size:0x2A4 scope:local +THPSimplePreLoad = .text:0x80055198; // type:function size:0x2A4 +THPSimpleAudioStart = .text:0x8005543C; // type:function size:0x14 +THPSimpleAudioStop = .text:0x80055450; // type:function size:0x14 +THPSimpleLoadStop = .text:0x80055464; // type:function size:0x1B8 +THPSimpleDecode = .text:0x8005561C; // type:function size:0x47C +VideoDecode = .text:0x80055A98; // type:function size:0xD8 scope:local +THPSimpleDrawCurrentFrame = .text:0x80055B70; // type:function size:0x104 +MixAudio = .text:0x80055C74; // type:function size:0x5F8 scope:local +THPSimpleGetVideoInfo = .text:0x8005626C; // type:function size:0x58 +THPSimpleGetTotalFrame = .text:0x800562C4; // type:function size:0x2C +THPAudioMixCallback = .text:0x800562F0; // type:function size:0x188 scope:local +THPSimpleSetVolume = .text:0x80056478; // type:function size:0x17C +THPGXRestore = .text:0x800565F4; // type:function size:0x130 +THPGXYuv2RgbSetup = .text:0x80056724; // type:function size:0x5A0 +THPGXYuv2RgbDraw = .text:0x80056CC4; // type:function size:0x288 +HuTHPSprCreateVol = .text:0x80056F4C; // type:function size:0x108 +HuTHPSprCreate = .text:0x80057054; // type:function size:0x110 +HuTHP3DCreateVol = .text:0x80057164; // type:function size:0xF8 +HuTHP3DCreate = .text:0x8005725C; // type:function size:0x100 +HuTHPStop = .text:0x8005735C; // type:function size:0xC +HuTHPClose = .text:0x80057368; // type:function size:0xC +HuTHPRestart = .text:0x80057374; // type:function size:0xC +HuTHPEndCheck = .text:0x80057380; // type:function size:0x54 +HuTHPFrameGet = .text:0x800573D4; // type:function size:0x8 +HuTHPTotalFrameGet = .text:0x800573DC; // type:function size:0x20 +HuTHPSetVolume = .text:0x800573FC; // type:function size:0x30 +THPTestProc = .text:0x8005742C; // type:function size:0x27C scope:local +THPViewFunc = .text:0x800576A8; // type:function size:0xA4 scope:local +THPViewSprFunc = .text:0x8005774C; // type:function size:0x17C scope:local +THPDecodeFunc = .text:0x800578C8; // type:function size:0x4C scope:local +omMgIndexGet = .text:0x80057914; // type:function size:0x5C +omGameSysInit = .text:0x80057970; // type:function size:0xF4 +omVibrate = .text:0x80057A64; // type:function size:0x9C +_CheckFlag = .text:0x80057B00; // type:function size:0xA0 +_SetFlag = .text:0x80057BA0; // type:function size:0xA4 +_ClearFlag = .text:0x80057C44; // type:function size:0xA4 +_InitFlag = .text:0x80057CE8; // type:function size:0x30 +SLFileOpen = .text:0x80057D18; // type:function size:0x140 +SLFileCreate = .text:0x80057E58; // type:function size:0x280 +SLFileWrite = .text:0x800580D8; // type:function size:0x10C +SLFileRead = .text:0x800581E4; // type:function size:0x84 +SLFileClose = .text:0x80058268; // type:function size:0x4C +SLCurSlotNoSet = .text:0x800582B4; // type:function size:0x8 +SLCurBoxNoSet = .text:0x800582BC; // type:function size:0xC +SLSaveFlagSet = .text:0x800582C8; // type:function size:0x40 +SLSaveFlagGet = .text:0x80058308; // type:function size:0x8 +SLSaveDataMake = .text:0x80058310; // type:function size:0x154 +SLSaveDataInfoSet = .text:0x80058464; // type:function size:0x2A0 +SLCommonSet = .text:0x80058704; // type:function size:0x2DC +SLSaveBoard = .text:0x800589E0; // type:function size:0x8C +SLSaveBoardStory = .text:0x80058A6C; // type:function size:0x8C +SLSave = .text:0x80058AF8; // type:function size:0x370 +SLCreateSaveWin = .text:0x80058E68; // type:function size:0xDC scope:local +SLKillSaveWin = .text:0x80058F44; // type:function size:0x48 scope:local +SLLoad = .text:0x80058F8C; // type:function size:0x110 +SLLoadGameStat = .text:0x8005909C; // type:function size:0x38 +SLLoadBoard = .text:0x800590D4; // type:function size:0x1A0 +SLLoadBoardStory = .text:0x80059274; // type:function size:0x184 +SLSerialNoGet = .text:0x800593F8; // type:function size:0x28 +SLSerialNoCheck = .text:0x80059420; // type:function size:0xA0 +SLCheckSumCheck = .text:0x800594C0; // type:function size:0x60 +SLCheckSumGet = .text:0x80059520; // type:function size:0x54 +SLCheckSumSet = .text:0x80059574; // type:function size:0x90 +SLStatSet = .text:0x80059604; // type:function size:0x1D4 +SLCardMount = .text:0x800597D8; // type:function size:0x12C +SLFormat = .text:0x80059904; // type:function size:0x624 +SLMessOut = .text:0x80059F28; // type:function size:0x3FC +HuSoftResetButtonCheck = .text:0x8005A324; // type:function size:0x50 +HuDvdErrDispIntFunc = .text:0x8005A374; // type:function size:0x28 +HuDvdErrDispInit = .text:0x8005A39C; // type:function size:0x1F4 +ToeThreadFunc = .text:0x8005A590; // type:function size:0xD8 scope:local +ToeDispCheck = .text:0x8005A668; // type:function size:0x128 scope:local +_HuDvdErrDispXFB = .text:0x8005A790; // type:function size:0x2D0 scope:local +HuRestartSystem = .text:0x8005AA60; // type:function size:0xDC +HuSoftResetCheck = .text:0x8005AB3C; // type:function size:0xFC scope:local +HuSoftResetCountCheck = .text:0x8005AC38; // type:function size:0xCC scope:local +HuSoftResetPostProc = .text:0x8005AD04; // type:function size:0x78 scope:local +BoardObjectSetup = .text:0x8005AD7C; // type:function size:0x2E0 +InitBoardFunc = .text:0x8005B05C; // type:function size:0x64 scope:local +ExecBoardFunc = .text:0x8005B0C0; // type:function size:0x9C scope:local +KillBoardFunc = .text:0x8005B15C; // type:function size:0xCC scope:local +BoardKill = .text:0x8005B228; // type:function size:0xAC +BoardIsKill = .text:0x8005B2D4; // type:function size:0x48 +BoardPauseDisableSet = .text:0x8005B31C; // type:function size:0x74 +BoardPauseDisableGet = .text:0x8005B390; // type:function size:0x48 +BoardSaveInit = .text:0x8005B3D8; // type:function size:0x524 +BoardStoryConfigSet = .text:0x8005B8FC; // type:function size:0x160 +BoardPartyConfigSet = .text:0x8005BA5C; // type:function size:0x160 +DestroyMainFunc = .text:0x8005BBBC; // type:function size:0xC scope:local +MainFunc = .text:0x8005BBC8; // type:function size:0x7D0 scope:local +BoardTurnNext = .text:0x8005C398; // type:function size:0x8C +ExecTurnStart = .text:0x8005C424; // type:function size:0x28C scope:local +BoardNextOvlSet = .text:0x8005C6B0; // type:function size:0xC4 +BoardStartCheck = .text:0x8005C774; // type:function size:0x8C +CreateBoard = .text:0x8005C800; // type:function size:0x410 scope:local +DestroyBoard = .text:0x8005CC10; // type:function size:0x128 scope:local +BoardLightHookSet = .text:0x8005CD38; // type:function size:0xC +BoardLightSetExec = .text:0x8005CD44; // type:function size:0x44 +BoardLightResetExec = .text:0x8005CD88; // type:function size:0x50 +BoardCameraBackup = .text:0x8005CDD8; // type:function size:0x3C +BoardCameraRestore = .text:0x8005CE14; // type:function size:0x48 +BoardCameraScissorSet = .text:0x8005CE5C; // type:function size:0x54 +BoardCameraViewSet = .text:0x8005CEB0; // type:function size:0x2AC +BoardCameraPosGet = .text:0x8005D15C; // type:function size:0x48 +BoardCameraTargetGet = .text:0x8005D1A4; // type:function size:0x48 +BoardCameraRotGet = .text:0x8005D1EC; // type:function size:0x48 +BoardCameraZoomGet = .text:0x8005D234; // type:function size:0x20 +BoardCameraDirGet = .text:0x8005D254; // type:function size:0xA8 +BoardCameraPointDirGet = .text:0x8005D2FC; // type:function size:0xBC +BoardCameraMaskSet = .text:0x8005D3B8; // type:function size:0x28 +BoardCameraMoveSet = .text:0x8005D3E0; // type:function size:0x50 +BoardCameraOffsetSet = .text:0x8005D430; // type:function size:0x30 +BoardCameraTargetPlayerSet = .text:0x8005D460; // type:function size:0xB4 +BoardCameraTargetModelSet = .text:0x8005D514; // type:function size:0x40 +BoardCameraTargetSpaceSet = .text:0x8005D554; // type:function size:0x44 +BoardCameraPosCalcFuncSet = .text:0x8005D598; // type:function size:0x28 +BoardCameraQuakeSet = .text:0x8005D5C0; // type:function size:0x3C +BoardCameraQuakeReset = .text:0x8005D5FC; // type:function size:0x3C +BoardCameraTargetSet = .text:0x8005D638; // type:function size:0x28 +BoardCameraPosSet = .text:0x8005D660; // type:function size:0x28 +BoardCameraXRotZoomSet = .text:0x8005D688; // type:function size:0x24 +BoardCameraZoomSet = .text:0x8005D6AC; // type:function size:0x20 +BoardCameraRotSet = .text:0x8005D6CC; // type:function size:0x24 +BoardCameraNearFarSet = .text:0x8005D6F0; // type:function size:0x24 +BoardCameraNearFarGet = .text:0x8005D714; // type:function size:0x3C +BoardCameraMotionStart = .text:0x8005D750; // type:function size:0x48 +BoardCameraMotionStartEx = .text:0x8005D798; // type:function size:0x230 +BoardCameraFovSet = .text:0x8005D9C8; // type:function size:0x20 +BoardCameraCullCheck = .text:0x8005D9E8; // type:function size:0x2BC +BoardCameraMotionIsDone = .text:0x8005DCA4; // type:function size:0x48 +BoardCameraMotionWait = .text:0x8005DCEC; // type:function size:0x58 +BoardCameraInit = .text:0x8005DD44; // type:function size:0x24C +UpdateCamera = .text:0x8005DF90; // type:function size:0x350 scope:local +CalcCameraTarget = .text:0x8005E2E0; // type:function size:0xE4 scope:local +CalcCameraPos = .text:0x8005E3C4; // type:function size:0x764 scope:local +BoardMGDoneFlagSet = .text:0x8005EB28; // type:function size:0x48 +BoardMGDoneFlagGet = .text:0x8005EB70; // type:function size:0x48 +BoardMGExit = .text:0x8005EBB8; // type:function size:0x170 +KillBoardMG = .text:0x8005ED28; // type:function size:0x60 scope:local +ExecBoardMG = .text:0x8005ED88; // type:function size:0xC4 scope:local +BoardMGCreate = .text:0x8005EE4C; // type:function size:0x74 +BoardEventFlagSet = .text:0x8005EEC0; // type:function size:0x28 +BoardEventFlagReset = .text:0x8005EEE8; // type:function size:0x28 +BoardEventFlagGet = .text:0x8005EF10; // type:function size:0x48 +BoardMTXCalcLookAt = .text:0x8005EF58; // type:function size:0x10C +BoardArcSin = .text:0x8005F064; // type:function size:0x330 +BoardArcCos = .text:0x8005F394; // type:function size:0x390 +BoardRandInit = .text:0x8005F724; // type:function size:0x24 +BoardRand = .text:0x8005F748; // type:function size:0x24 +BoardRandMod = .text:0x8005F76C; // type:function size:0x50 +BoardRandFloat = .text:0x8005F7BC; // type:function size:0x58 +BoardVecDistXZCalc = .text:0x8005F814; // type:function size:0x134 +BoardVecMaxDistXZCheck = .text:0x8005F948; // type:function size:0x15C +BoardDAngleCalcVec = .text:0x8005FAA4; // type:function size:0x7C +BoardDAngleCalc = .text:0x8005FB20; // type:function size:0x34 +BoardDAngleCalcRange = .text:0x8005FB54; // type:function size:0x1C0 +BoardVecMinDistCheck = .text:0x8005FD14; // type:function size:0x6C +BoardFilterFadeOut = .text:0x8005FD80; // type:function size:0xD4 +BoardFilterFadeInit = .text:0x8005FE54; // type:function size:0x174 +BoardFilterFadePauseCheck = .text:0x8005FFC8; // type:function size:0x5C +BoardFilterFadeCheck = .text:0x80060024; // type:function size:0x34 +UpdateFilter = .text:0x80060058; // type:function size:0x178 scope:local +DrawFilter = .text:0x800601D0; // type:function size:0x350 scope:local +BoardConfettiCreate = .text:0x80060520; // type:function size:0x164 +BoardConfettiKill = .text:0x80060684; // type:function size:0x24 +BoardConfettiStop = .text:0x800606A8; // type:function size:0x88 +UpdateConfetti = .text:0x80060730; // type:function size:0xB8 scope:local +SpawnConfetti = .text:0x800607E8; // type:function size:0x564 scope:local +MoveConfetti = .text:0x80060D4C; // type:function size:0x14C scope:local +DrawConfetti = .text:0x80060E98; // type:function size:0x254 scope:local +BoardLast5GfxInit = .text:0x800610EC; // type:function size:0x278 +UpdateLast5Gfx = .text:0x80061364; // type:function size:0x2AC scope:local +BoardLast5GfxShowSet = .text:0x80061610; // type:function size:0xAC +BoardTauntInit = .text:0x800616BC; // type:function size:0x80 +BoardTauntKill = .text:0x8006173C; // type:function size:0x54 +TauntUpdate = .text:0x80061790; // type:function size:0x3A4 scope:local +BoardDataDirReadAsync = .text:0x80061B34; // type:function size:0x38 +BoardDataAsyncWait = .text:0x80061B6C; // type:function size:0x48 +BoardItemPrevGet = .text:0x80061BB4; // type:function size:0xC +BoardItemPrevSet = .text:0x80061BC0; // type:function size:0xC +BoardPlayerGetCharMess = .text:0x80061BCC; // type:function size:0x78 +BoardPlayerGetCharName = .text:0x80061C44; // type:function size:0x78 +BoardPlayerIsAllCom = .text:0x80061CBC; // type:function size:0x80 +BoardPlayerInit = .text:0x80061D3C; // type:function size:0x16C +BoardPlayerModelInit = .text:0x80061EA8; // type:function size:0x588 +BoardPlayerModelKill = .text:0x80062430; // type:function size:0xFC +BoardPlayerLayerSet = .text:0x8006252C; // type:function size:0x84 +BoardPlayerCameraSet = .text:0x800625B0; // type:function size:0x80 +fn_80062A40 = .text:0x80062630; // type:function size:0x80 +BoardPlayerExistCheck = .text:0x800626B0; // type:function size:0xB4 +BoardPlayerItemAdd = .text:0x80062764; // type:function size:0xB0 +BoardPlayerItemRemove = .text:0x80062814; // type:function size:0xB4 +BoardPlayerItemFind = .text:0x800628C8; // type:function size:0x58 +BoardPlayerItemCount = .text:0x80062920; // type:function size:0x60 +BoardPlayerCornerPosSet = .text:0x80062980; // type:function size:0x40 +BoardPlayerCornerPosGet = .text:0x800629C0; // type:function size:0xC4 +BoardPlayerAmbSet = .text:0x80062A84; // type:function size:0x90 +BoardPlayerMtxSet = .text:0x80062B14; // type:function size:0x80 +BoardPlayerPosSetV = .text:0x80062B94; // type:function size:0x9C +BoardPlayerPosSet = .text:0x80062C30; // type:function size:0xCC +BoardPlayerPosGet = .text:0x80062CFC; // type:function size:0x80 +BoardPlayerRotSetV = .text:0x80062D7C; // type:function size:0x9C +BoardPlayerRotSet = .text:0x80062E18; // type:function size:0xCC +BoardPlayerRotGet = .text:0x80062EE4; // type:function size:0x80 +BoardPlayerRotYSet = .text:0x80062F64; // type:function size:0xD4 +BoardPlayerRotYGet = .text:0x80063038; // type:function size:0xA8 +BoardPlayerScaleSetV = .text:0x800630E0; // type:function size:0x80 +BoardPlayerScaleSet = .text:0x80063160; // type:function size:0x90 +BoardPlayerScaleGet = .text:0x800631F0; // type:function size:0x80 +BoardPlayerCurrMotionGet = .text:0x80063270; // type:function size:0x44 +BoardPlayerVoiceEnableSet = .text:0x800632B4; // type:function size:0x88 +BoardPlayerMotionCreate = .text:0x8006333C; // type:function size:0x80 +BoardPlayerMotionKill = .text:0x800633BC; // type:function size:0x80 +BoardPlayerMotionEndCheck = .text:0x8006343C; // type:function size:0x78 +BoardPlayerMotionEndWait = .text:0x800634B4; // type:function size:0x88 +BoardPlayerMotionStart = .text:0x8006353C; // type:function size:0xD0 +BoardPlayerMotionShiftSet = .text:0x8006360C; // type:function size:0xE0 +BoardPlayerMotionSpeedSet = .text:0x800636EC; // type:function size:0x80 +BoardPlayerMotionTimeSet = .text:0x8006376C; // type:function size:0x80 +BoardPlayerMotionTimeGet = .text:0x800637EC; // type:function size:0x78 +BoardPlayerMotionMaxTimeGet = .text:0x80063864; // type:function size:0x78 +BoardPlayerMotionStartEndSet = .text:0x800638DC; // type:function size:0xA0 +BoardPlayerModelAttrSet = .text:0x8006397C; // type:function size:0x80 +BoardPlayerModelAttrReset = .text:0x800639FC; // type:function size:0x80 +BoardPlayerCoinsSet = .text:0x80063A7C; // type:function size:0x34 +BoardPlayerCoinsGet = .text:0x80063AB0; // type:function size:0x2C +BoardPlayerCoinsAdd = .text:0x80063ADC; // type:function size:0x9C +BoardPlayerStarsAdd = .text:0x80063B78; // type:function size:0x48 +BoardPlayerSizeSet = .text:0x80063BC0; // type:function size:0x16C +BoardPlayerSizeGet = .text:0x80063D2C; // type:function size:0x40 +BoardPlayerSameTeamFind = .text:0x80063D6C; // type:function size:0x7C +BoardPlayerTeamFind = .text:0x80063DE8; // type:function size:0x7C +BoardPlayerRankCalc = .text:0x80063E64; // type:function size:0xC4 +BoardPlayerPreTurnHookSet = .text:0x80063F28; // type:function size:0x18 +BoardPlayerPostTurnHookSet = .text:0x80063F40; // type:function size:0x18 +BoardPlayerTurnExec = .text:0x80063F58; // type:function size:0x15C +BoardPlayerTurnRollExec = .text:0x800640B4; // type:function size:0x160 +BoardPlayerTurnMoveExec = .text:0x80064214; // type:function size:0x420 +BoardPlayerPostTurnHookExec = .text:0x80064634; // type:function size:0x80 +BoardPlayerSizeRestore = .text:0x800646B4; // type:function size:0x18C +BoardPlayerZoomRestore = .text:0x80064840; // type:function size:0x134 +BoardJunctionMaskSet = .text:0x80064974; // type:function size:0x10 +BoardJunctionMaskReset = .text:0x80064984; // type:function size:0x10 +BoardJunctionMaskZero = .text:0x80064994; // type:function size:0xC +InitJunction = .text:0x800649A0; // type:function size:0x634 scope:local +UpdateJunctionGfx = .text:0x80064FD4; // type:function size:0x1A0 scope:local +StopJunctionPlayer = .text:0x80065174; // type:function size:0x70 scope:local +RestoreJunction = .text:0x800651E4; // type:function size:0x180 scope:local +GetDefaultDirection = .text:0x80065364; // type:function size:0x114 scope:local +DoDebugMove = .text:0x80065478; // type:function size:0x8E8 scope:local +ExecJunction = .text:0x80065D60; // type:function size:0xBF8 scope:local +BoardPlayerMoveTo = .text:0x80066958; // type:function size:0xBC +BoardPlayerMoveBetween = .text:0x80066A14; // type:function size:0x90 +BoardPlayerMoveToAsync = .text:0x80066AA4; // type:function size:0x90 +BoardPlayerPosLerpStart = .text:0x80066B34; // type:function size:0x430 +PlayerPosLerpFunc = .text:0x80066F64; // type:function size:0x218 scope:local +BoardPlayerDiceJumpStart = .text:0x8006717C; // type:function size:0x1D4 +BoardPlayerDiceJumpCheck = .text:0x80067350; // type:function size:0x54 +DiceJumpFunc = .text:0x800673A4; // type:function size:0x3E4 scope:local +BoardPlayerIdleSet = .text:0x80067788; // type:function size:0xF8 +BoardPlayerMotBlendSet = .text:0x80067880; // type:function size:0x5A0 +ExecMotBlend = .text:0x80067E20; // type:function size:0x51C scope:local +BoardPlayerMotBlendCheck = .text:0x8006833C; // type:function size:0x2C +BoardRollCreate = .text:0x80068368; // type:function size:0x138 +BoardRollUpdateSet = .text:0x800684A0; // type:function size:0x38 +BoardRollDispSet = .text:0x800684D8; // type:function size:0x10C +UpdateRollSprite = .text:0x800685E4; // type:function size:0x194 scope:local +UpdateRoll = .text:0x80068778; // type:function size:0x278 scope:local +BoardPlayerBtnDownWait = .text:0x800689F0; // type:function size:0x6C +BoardPlayerAutoSizeSet = .text:0x80068A5C; // type:function size:0x9C +BoardPlayerAutoSizeGet = .text:0x80068AF8; // type:function size:0x40 +BoardPlayerMoveAwayIsDone = .text:0x80068B38; // type:function size:0x1C +BoardPlayerMoveAwayStart = .text:0x80068B54; // type:function size:0x224 +BoardPlayerMoveAwayStartCurr = .text:0x80068D78; // type:function size:0x40 +MoveAwayObjFunc = .text:0x80068DB8; // type:function size:0x100 scope:local +BoardBowserSuitInit = .text:0x80068EB8; // type:function size:0x1A4 +BoardBowserSuitKill = .text:0x8006905C; // type:function size:0x128 +BoardBowserSuitModelGet = .text:0x80069184; // type:function size:0x8 +BoardBowserSuitPlayerModelGet = .text:0x8006918C; // type:function size:0x8 +BoardBowserSuitMotionCreate = .text:0x80069194; // type:function size:0x74 +BoardBowserSuitMotionSetWait = .text:0x80069208; // type:function size:0x54 +BoardBowserSuitMotionSetWalk = .text:0x8006925C; // type:function size:0x4C +BoardBowserSuitMotionSetWin = .text:0x800692A8; // type:function size:0x44 +BoardBowserSuitMotionSetJump = .text:0x800692EC; // type:function size:0x44 +BoardBowserSuitPlayerModelKill = .text:0x80069330; // type:function size:0x44 +UpdateBowserSuit = .text:0x80069374; // type:function size:0x1F0 scope:local +BoardPlayerSparkSet = .text:0x80069564; // type:function size:0x5C +DoSparkSpace = .text:0x800695C0; // type:function size:0x1294 scope:local +RemoveSparkSpace = .text:0x8006A854; // type:function size:0xA0 scope:local +SetPlayerSizeAuto = .text:0x8006A8F4; // type:function size:0x24C scope:local +BoardMegaDoubleDiceCheck = .text:0x8006AB40; // type:function size:0x8 +BoardPlayerResizeAnimExec = .text:0x8006AB48; // type:function size:0x38C +MegaSquishFunc = .text:0x8006AED4; // type:function size:0x950 scope:local +MegaPlayerPassFunc = .text:0x8006B824; // type:function size:0x980 scope:local +MegaExecJump = .text:0x8006C1A4; // type:function size:0xA48 scope:local +BoardPlayerCopyEyeMat = .text:0x8006CBEC; // type:function size:0x24C +BoardPlayerCopyMat = .text:0x8006CE38; // type:function size:0xC0 +BoardModelInit = .text:0x8006CEF8; // type:function size:0xF0 +BoardModelKillAll = .text:0x8006CFE8; // type:function size:0xA0 +ModelMgrFunc = .text:0x8006D088; // type:function size:0x70 scope:local +BoardModelDummyUpdate = .text:0x8006D0F8; // type:function size:0x4 +BoardModelVisibilityUpdate = .text:0x8006D0FC; // type:function size:0xCC +BoardModelHideSetAll = .text:0x8006D1C8; // type:function size:0x90 +BoardModelAmbSetAll = .text:0x8006D258; // type:function size:0x70 +BoardModelCameraSetAll = .text:0x8006D2C8; // type:function size:0x7C +CreateInstance = .text:0x8006D344; // type:function size:0x250 scope:local +BoardModelCreate = .text:0x8006D594; // type:function size:0x40 +BoardModelCreateCharacter = .text:0x8006D5D4; // type:function size:0x44 +BoardModelCreateParam = .text:0x8006D618; // type:function size:0x168 +BoardModelKill = .text:0x8006D780; // type:function size:0x44 +BoardModelIDGet = .text:0x8006D7C4; // type:function size:0x48 +fn_8006DC1C = .text:0x8006D80C; // type:function size:0x60 +BoardModelPassSet = .text:0x8006D86C; // type:function size:0x74 +BoardModelAmbSet = .text:0x8006D8E0; // type:function size:0x68 +BoardModelExistCheck = .text:0x8006D948; // type:function size:0x48 +BoardModelExistDupe = .text:0x8006D990; // type:function size:0x48 +fn_8006DDE8 = .text:0x8006D9D8; // type:function size:0x70 +BoardModelMotionCreate = .text:0x8006DA48; // type:function size:0x140 +BoardModelMotionKill = .text:0x8006DB88; // type:function size:0x118 +BoardModelMotionStartEndSet = .text:0x8006DCA0; // type:function size:0xE8 +BoardModelMotionUpdateSet = .text:0x8006DD88; // type:function size:0x7C +BoardModelVoiceEnableSet = .text:0x8006DE04; // type:function size:0xA4 +BoardModelMotionStart = .text:0x8006DEA8; // type:function size:0x174 +BoardModelMotionShiftIDGet = .text:0x8006E01C; // type:function size:0x50 +BoardModelMotionShiftSet = .text:0x8006E06C; // type:function size:0x148 +BoardModelAttrSet = .text:0x8006E1B4; // type:function size:0x58 +BoardModelAttrReset = .text:0x8006E20C; // type:function size:0x58 +BoardModelMotionTimeSet = .text:0x8006E264; // type:function size:0x84 +BoardModelMotionTimeGet = .text:0x8006E2E8; // type:function size:0x94 +BoardModelMotionMaxTimeGet = .text:0x8006E37C; // type:function size:0x88 +BoardModelMotionSpeedGet = .text:0x8006E404; // type:function size:0x64 +BoardModelMotionSpeedSet = .text:0x8006E468; // type:function size:0xA4 +BoardModelMotionEndCheck = .text:0x8006E50C; // type:function size:0x80 +BoardModelMotionShapeSet = .text:0x8006E58C; // type:function size:0x100 +BoardModelMotionShapeTimeGet = .text:0x8006E68C; // type:function size:0x7C +BoardModelMotionShapeMaxTimeGet = .text:0x8006E708; // type:function size:0xBC +BoardModelMotionShapeSpeedSet = .text:0x8006E7C4; // type:function size:0x88 +BoardModelMotionShapeSpeedGet = .text:0x8006E84C; // type:function size:0x64 +BoardModelMotionShapeEndCheck = .text:0x8006E8B0; // type:function size:0x14C +BoardModelMotionShapeStartEndSet = .text:0x8006E9FC; // type:function size:0x100 +BoardModelAlphaSet = .text:0x8006EAFC; // type:function size:0xB0 +BoardModelMtxSet = .text:0x8006EBAC; // type:function size:0x8C +BoardModelMtxGet = .text:0x8006EC38; // type:function size:0x8C +BoardModelRotYSet = .text:0x8006ECC4; // type:function size:0x54 +BoardModelRotYGet = .text:0x8006ED18; // type:function size:0x30 +BoardModelPosSetV = .text:0x8006ED48; // type:function size:0x50 +BoardModelPosSet = .text:0x8006ED98; // type:function size:0x78 +BoardModelRotSetV = .text:0x8006EE10; // type:function size:0x50 +BoardModelRotSet = .text:0x8006EE60; // type:function size:0x78 +BoardModelScaleSetV = .text:0x8006EED8; // type:function size:0x50 +BoardModelScaleSet = .text:0x8006EF28; // type:function size:0x78 +BoardModelPosGet = .text:0x8006EFA0; // type:function size:0x74 +BoardModelRotGet = .text:0x8006F014; // type:function size:0x74 +BoardModelScaleGet = .text:0x8006F088; // type:function size:0x74 +BoardModelVisibilitySet = .text:0x8006F0FC; // type:function size:0x60 +BoardModelVisibilityGet = .text:0x8006F15C; // type:function size:0x4C +BoardModelCameraSet = .text:0x8006F1A8; // type:function size:0x64 +BoardModelLayerSet = .text:0x8006F20C; // type:function size:0x64 +BoardModelLayerGet = .text:0x8006F270; // type:function size:0x48 +BoardModelLayerSetAll = .text:0x8006F2B8; // type:function size:0x74 +BoardModelHookSet = .text:0x8006F32C; // type:function size:0xC4 +BoardModelHookReset = .text:0x8006F3F0; // type:function size:0x50 +BoardModelHookObjReset = .text:0x8006F440; // type:function size:0x58 +SearchBoardModel = .text:0x8006F498; // type:function size:0x9C scope:local +KillBoardModel = .text:0x8006F534; // type:function size:0x178 scope:local +CreateBoardModel = .text:0x8006F6AC; // type:function size:0x194 scope:local +CreateBoardModelMotion = .text:0x8006F840; // type:function size:0x12C scope:local +BoardWinInit = .text:0x8006F96C; // type:function size:0x24 +BoardWinUnusedArraySet = .text:0x8006F990; // type:function size:0x34 +BoardWinKillAll = .text:0x8006F9C4; // type:function size:0x24 +BoardWinDestroy = .text:0x8006F9E8; // type:function size:0x6C +ExecBoardWindow = .text:0x8006FA54; // type:function size:0x514 scope:local +BoardWinChoiceGet = .text:0x8006FF68; // type:function size:0xC +BoardWinPause = .text:0x8006FF74; // type:function size:0xC +BoardWinCreateChoice = .text:0x8006FF80; // type:function size:0x1A0 +BoardWinCreate = .text:0x80070120; // type:function size:0x1A0 +BoardWinInsertMesSet = .text:0x800702C0; // type:function size:0x18 +BoardWinWait = .text:0x800702D8; // type:function size:0x50 +BoardWinKill = .text:0x80070328; // type:function size:0x38 +BoardWinAttrSet = .text:0x80070360; // type:function size:0x48 +BoardWinAttrReset = .text:0x800703A8; // type:function size:0x48 +BoardWinChoiceDisable = .text:0x800703F0; // type:function size:0x1C +BoardWinKeyWait = .text:0x8007040C; // type:function size:0xC +BoardWinSpeedGet = .text:0x80070418; // type:function size:0x64 +BoardWinSpeedSet = .text:0x8007047C; // type:function size:0x50 +BoardWinChoiceNowGet = .text:0x800704CC; // type:function size:0x38 +BoardWinPriSet = .text:0x80070504; // type:function size:0x44 +BoardWinChoiceNowGet2 = .text:0x80070548; // type:function size:0x38 +BoardWinPortraitGet = .text:0x80070580; // type:function size:0x38 +BoardWinPortraitGetStar = .text:0x800705B8; // type:function size:0x38 +BoardWinPlayerSet = .text:0x800705F0; // type:function size:0x168 +BoardWinStartComKeySet = .text:0x80070758; // type:function size:0x214 +BoardWinComKeyFuncSet = .text:0x8007096C; // type:function size:0x8 +BoardMusStartBoard = .text:0x80070974; // type:function size:0x68 +BoardMusStart = .text:0x800709DC; // type:function size:0xD0 +BoardAudSeqFadeOutFast = .text:0x80070AAC; // type:function size:0x2C +BoardAudSeqFadeOut = .text:0x80070AD8; // type:function size:0x60 +BoardMusLoudSet = .text:0x80070B38; // type:function size:0x5C +BoardMusVolPanSet = .text:0x80070B94; // type:function size:0x90 +BoardAudSeqPause = .text:0x80070C24; // type:function size:0x94 +BoardMusStatusGet = .text:0x80070CB8; // type:function size:0x54 +BoardAudSeqClear = .text:0x80070D0C; // type:function size:0x50 +BoardAudSeqFadeOutAll = .text:0x80070D5C; // type:function size:0x74 +BoardAudFXPlay = .text:0x80070DD0; // type:function size:0x78 +BoardAudFXStop = .text:0x80070E48; // type:function size:0x38 +ExecComKeyLeft = .text:0x80070E80; // type:function size:0x38 scope:local +BoardComKeySetLeft = .text:0x80070EB8; // type:function size:0x28 +ExecComKeyRight = .text:0x80070EE0; // type:function size:0x38 scope:local +BoardComKeySetRight = .text:0x80070F18; // type:function size:0x28 +ExecComKeyUp = .text:0x80070F40; // type:function size:0x38 scope:local +BoardComKeySetUp = .text:0x80070F78; // type:function size:0x28 +ExecComKeyDown = .text:0x80070FA0; // type:function size:0x38 scope:local +BoardComKeySetDown = .text:0x80070FD8; // type:function size:0x28 +ExecComKey = .text:0x80071000; // type:function size:0xE8 +BoardComPreferItemGet = .text:0x800710E8; // type:function size:0x100 +BoardComPreferItemCheck = .text:0x800711E8; // type:function size:0x120 +BoardComItemWeightGet = .text:0x80071308; // type:function size:0x74 +BoardComUseItemSlotGet = .text:0x8007137C; // type:function size:0xD0 +BoardComUseItemSet = .text:0x8007144C; // type:function size:0x6C +BoardComUseItemCheck = .text:0x800714B8; // type:function size:0x68 +ChooseUseItem = .text:0x80071520; // type:function size:0x16C scope:local +CheckMiniUse = .text:0x8007168C; // type:function size:0x220 scope:local +CheckMegaUse = .text:0x800718AC; // type:function size:0x248 scope:local +CheckSparkUse = .text:0x80071AF4; // type:function size:0x158 scope:local +CheckBoardChangeUse = .text:0x80071C4C; // type:function size:0x314 scope:local +CheckSwapUse = .text:0x80071F60; // type:function size:0x198 scope:local +CheckBooUse = .text:0x800720F8; // type:function size:0x7C scope:local +CheckLampUse = .text:0x80072174; // type:function size:0x74 scope:local +BoardComJunctionInputGet = .text:0x800721E8; // type:function size:0x304 +BoardComFarPlayerFind = .text:0x800724EC; // type:function size:0xA8 +BoardViewOverheadExec = .text:0x80072594; // type:function size:0x134 +BoardViewFocusGetPos = .text:0x800726C8; // type:function size:0x3C +BoardViewFocusSet = .text:0x80072704; // type:function size:0xF0 +BoardViewMoveStart = .text:0x800727F4; // type:function size:0x128 +BoardViewMoveCheck = .text:0x8007291C; // type:function size:0x34 +BoardViewMoveEnd = .text:0x80072950; // type:function size:0xC +BoardViewWait = .text:0x8007295C; // type:function size:0x3C +BoardViewMapExec = .text:0x80072998; // type:function size:0xC8 +ExecMapView = .text:0x80072A60; // type:function size:0x398 scope:local +ExecStarView = .text:0x80072DF8; // type:function size:0x170 scope:local +ExecOverheadView = .text:0x80072F68; // type:function size:0x158 scope:local +DestroyView = .text:0x800730C0; // type:function size:0x80 scope:local +SetTargetView = .text:0x80073140; // type:function size:0x178 scope:local +DestroyFocus = .text:0x800732B8; // type:function size:0x4C scope:local +CreateButtonWin = .text:0x80073304; // type:function size:0xE0 scope:local +DestroyButtonWin = .text:0x800733E4; // type:function size:0x38 scope:local +InitOverheadView = .text:0x8007341C; // type:function size:0x374 scope:local +DestroyOverheadView = .text:0x80073790; // type:function size:0x24 scope:local +UpdateOverheadView = .text:0x800737B4; // type:function size:0x400 scope:local +WaitOverheadView = .text:0x80073BB4; // type:function size:0x30 scope:local +BoardSpaceWalkEventFuncSet = .text:0x80073BE4; // type:function size:0x8 +BoardSpaceWalkMiniEventFuncSet = .text:0x80073BEC; // type:function size:0x8 +BoardSpaceLandEventFuncSet = .text:0x80073BF4; // type:function size:0x8 +BoardSpaceWalkEventExec = .text:0x80073BFC; // type:function size:0x48 +BoardSpaceWalkMiniEventExec = .text:0x80073C44; // type:function size:0x60 +BoardSpaceCountGet = .text:0x80073CA4; // type:function size:0x10 +BoardSpaceGet = .text:0x80073CB4; // type:function size:0x44 +BoardSpaceAttrSet = .text:0x80073CF8; // type:function size:0x18 +BoardSpaceAttrReset = .text:0x80073D10; // type:function size:0x18 +BoardSpaceFlagGet = .text:0x80073D28; // type:function size:0x48 +BoardSpaceTypeGet = .text:0x80073D70; // type:function size:0x48 +BoardSpaceTypeSet = .text:0x80073DB8; // type:function size:0x48 +BoardSpacePosGet = .text:0x80073E00; // type:function size:0x8C +BoardSpaceCornerPosGet = .text:0x80073E8C; // type:function size:0x2C8 +BoardSpaceRotGet = .text:0x80074154; // type:function size:0x8C +BoardSpaceFlagSearch = .text:0x800741E0; // type:function size:0xA0 +BoardSpaceFlagPosGet = .text:0x80074280; // type:function size:0x134 +BoardSpaceLinkFlagSearch = .text:0x800743B4; // type:function size:0x134 +BoardSpaceLinkTypeListGet = .text:0x800744E8; // type:function size:0x148 +BoardSpaceLinkTargetListGet = .text:0x80074630; // type:function size:0x104 +BoardSpaceLinkTypeSearch = .text:0x80074734; // type:function size:0x110 +BoardSpaceLinkTransformGet = .text:0x80074844; // type:function size:0x1FC +BoardSpaceHostSet = .text:0x80074A40; // type:function size:0x1BC +BoardSpaceStarSetIndex = .text:0x80074BFC; // type:function size:0x4AC +BoardSpaceStarGetNext = .text:0x800750A8; // type:function size:0x344 +BoardSpaceStarGetRandom = .text:0x800753EC; // type:function size:0x9C +BoardSpaceStarMove = .text:0x80075488; // type:function size:0xF0 +BoardSpaceStarGet = .text:0x80075578; // type:function size:0x1C +BoardSpaceStarGetCurr = .text:0x80075594; // type:function size:0x3C +BoardSpaceStarCheck = .text:0x800755D0; // type:function size:0x110 +BoardSpaceLandExec = .text:0x800756E0; // type:function size:0x474 +BoardSpaceWalkExec = .text:0x80075B54; // type:function size:0x2A4 +BoardSpaceBlockExec = .text:0x80075DF8; // type:function size:0x180 +ExecPipeSpace = .text:0x80075F78; // type:function size:0x268 scope:local +BoardSpaceTypeForce = .text:0x800761E0; // type:function size:0x5C +BoardSpaceHide = .text:0x8007623C; // type:function size:0x48 +DrawSpaces = .text:0x80076284; // type:function size:0x9E8 scope:local +BoardSpaceRead = .text:0x80076C6C; // type:function size:0x174 +BoardSpaceCameraSet = .text:0x80076DE0; // type:function size:0x2C +BoardSpaceBlockPosSet = .text:0x80076E0C; // type:function size:0xD0 +BoardSpaceInit = .text:0x80076EDC; // type:function size:0x750 +BoardSpaceDestroy = .text:0x8007762C; // type:function size:0x70 +BoardShopHostSet = .text:0x8007769C; // type:function size:0x8 +BoardShopHostGet = .text:0x800776A4; // type:function size:0x8 +BoardShopInit = .text:0x800776AC; // type:function size:0xD4 +BoardShopKill = .text:0x80077780; // type:function size:0xA0 +BoardShopExec = .text:0x80077820; // type:function size:0x9C +ExecShop = .text:0x800778BC; // type:function size:0x800 scope:local +DestroyShop = .text:0x800780BC; // type:function size:0xD4 scope:local +PopupShop = .text:0x80078190; // type:function size:0x1B4 scope:local +CloseShop = .text:0x80078344; // type:function size:0xBC scope:local +CreateShopWin = .text:0x80078400; // type:function size:0x13C scope:local +UpdateShopWin = .text:0x8007853C; // type:function size:0x314 scope:local +SetShopWinItem = .text:0x80078850; // type:function size:0x168 scope:local +PauseShopWin = .text:0x800789B8; // type:function size:0x2C scope:local +fn_800789E4 = .text:0x800789E4; // type:function size:0x18C scope:local +ExecItemGive = .text:0x80078B70; // type:function size:0x168 scope:local +MoveItemGive = .text:0x80078CD8; // type:function size:0x34C scope:local +ShrinkItemGive = .text:0x80079024; // type:function size:0x144 scope:local +fn_80079168 = .text:0x80079168; // type:function size:0x6C scope:local +GetShopItems = .text:0x800791D4; // type:function size:0x280 scope:local +GetDefaultShopItems = .text:0x80079454; // type:function size:0xA0 scope:local +SortShopItems = .text:0x800794F4; // type:function size:0x14C scope:local +DecideComEnter = .text:0x80079640; // type:function size:0x1C8 scope:local +DecideComBuy = .text:0x80079808; // type:function size:0x60 scope:local +GetComItemChoice = .text:0x80079868; // type:function size:0x158 scope:local +WaitItemChoice = .text:0x800799C0; // type:function size:0x30 scope:local +CreateShopItemChoice = .text:0x800799F0; // type:function size:0x188 scope:local +GetShopItemChoice = .text:0x80079B78; // type:function size:0xC scope:local +GetShopItemWinChoice = .text:0x80079B84; // type:function size:0x38 scope:local +MoveShopItemChoice = .text:0x80079BBC; // type:function size:0x260 scope:local +UpdateShopItemChoice = .text:0x80079E1C; // type:function size:0x104 scope:local +GetShopItemChoiceInput = .text:0x80079F20; // type:function size:0x30 scope:local +BoardShopTutorialExec = .text:0x80079F50; // type:function size:0x4DC +BoardLotteryHostSet = .text:0x8007A42C; // type:function size:0x8 +BoardLotteryHostGet = .text:0x8007A434; // type:function size:0x8 +BoardLotteryExec = .text:0x8007A43C; // type:function size:0x8C +BoardLotteryInit = .text:0x8007A4C8; // type:function size:0x16C +CreateModel = .text:0x8007A634; // type:function size:0x3B4 scope:local +KillModel = .text:0x8007A9E8; // type:function size:0x1FC scope:local +BoardLotteryKill = .text:0x8007ABE4; // type:function size:0x64 +DestroyLottery = .text:0x8007AC48; // type:function size:0xB0 scope:local +ExecLottery = .text:0x8007ACF8; // type:function size:0x798 scope:local +DoMiniJumpUp = .text:0x8007B490; // type:function size:0x20C scope:local +DoMiniJumpDown = .text:0x8007B69C; // type:function size:0x1BC scope:local +PayEnterFee = .text:0x8007B858; // type:function size:0xF0 scope:local +ShowTicket = .text:0x8007B948; // type:function size:0x3C8 scope:local +SetupTicket = .text:0x8007BD10; // type:function size:0x140 scope:local +ExecBallGame = .text:0x8007BE50; // type:function size:0x914 scope:local +SetBallPrize = .text:0x8007C764; // type:function size:0xC8 scope:local +ExecBallPrize = .text:0x8007C82C; // type:function size:0x27C scope:local +ExecScratchTicket = .text:0x8007CAA8; // type:function size:0x30C scope:local +ExecScratch = .text:0x8007CDB4; // type:function size:0x3AC scope:local +KillScratch = .text:0x8007D160; // type:function size:0x6C scope:local +ExecScratchSpr = .text:0x8007D1CC; // type:function size:0x21C scope:local +HideScratchSpr = .text:0x8007D3E8; // type:function size:0x68 scope:local +InitScratchSpr = .text:0x8007D450; // type:function size:0x288 scope:local +ExecScratchPick = .text:0x8007D6D8; // type:function size:0x3DC scope:local +InitScratchPick = .text:0x8007DAB4; // type:function size:0x14C scope:local +InitTicketPrizes = .text:0x8007DC00; // type:function size:0xD0 scope:local +ExecTicketFocus = .text:0x8007DCD0; // type:function size:0x160 scope:local +ScratchTicketCheckDone = .text:0x8007DE30; // type:function size:0xA8 scope:local +TicketGetPixel = .text:0x8007DED8; // type:function size:0x84 scope:local +TicketUpdate = .text:0x8007DF5C; // type:function size:0x6B0 scope:local +ExecCoinPrize = .text:0x8007E60C; // type:function size:0x440 scope:local +ExecItemPrize = .text:0x8007EA4C; // type:function size:0x338 scope:local +KillCoin = .text:0x8007ED84; // type:function size:0x68 scope:local +ExecPrize = .text:0x8007EDEC; // type:function size:0x4C0 scope:local +ExecLose = .text:0x8007F2AC; // type:function size:0xA4 scope:local +CreateLotteryWin = .text:0x8007F350; // type:function size:0xFC scope:local +KillLotteryWin = .text:0x8007F44C; // type:function size:0x38 scope:local +BoardLotteryTutorialExec = .text:0x8007F484; // type:function size:0x2BC +BoardLandBlueExec = .text:0x8007F740; // type:function size:0x184 +BoardLandRedExec = .text:0x8007F8C4; // type:function size:0x19C +BoardCoinChgCreate = .text:0x8007FA60; // type:function size:0x1E8 +BoardCoinChgExist = .text:0x8007FC48; // type:function size:0x6C +BoardCoinChgHide = .text:0x8007FCB4; // type:function size:0x60 +CreateCoinChg = .text:0x8007FD14; // type:function size:0x23C scope:local +UpdateCoinChg = .text:0x8007FF50; // type:function size:0x198 scope:local +CoinChgAppear = .text:0x800800E8; // type:function size:0x1B8 scope:local +CoinChgSeparate = .text:0x800802A0; // type:function size:0x29C scope:local +CoinChgShow = .text:0x8008053C; // type:function size:0x1A8 scope:local +CoinChgDisappear = .text:0x800806E4; // type:function size:0x260 scope:local +BoardWarpExec = .text:0x80080944; // type:function size:0xA4 +WarpProcess = .text:0x800809E8; // type:function size:0x250 scope:local +WarpKill = .text:0x80080C38; // type:function size:0x5C scope:local +WarpInit = .text:0x80080C94; // type:function size:0x118 scope:local +WarpLaunch = .text:0x80080DAC; // type:function size:0xBC scope:local +WarpStartImpact = .text:0x80080E68; // type:function size:0x1B0 scope:local +WarpFall = .text:0x80081018; // type:function size:0xA4 scope:local +WarpImpact = .text:0x800810BC; // type:function size:0x200 scope:local +BoardCharWheelInit = .text:0x800812BC; // type:function size:0x11C +BoardCharWheelCheck = .text:0x800813D8; // type:function size:0x34 +BoardCharWheelWait = .text:0x8008140C; // type:function size:0x50 +BoardCharWheelResultGet = .text:0x8008145C; // type:function size:0x18 +BoardCharWheelSpeedSet = .text:0x80081474; // type:function size:0x1C +ExecCharWheel = .text:0x80081490; // type:function size:0xFC scope:local +InitCharWheel = .text:0x8008158C; // type:function size:0x754 scope:local +UpdateCharWheel = .text:0x80081CE0; // type:function size:0x314 scope:local +StopCharWheel = .text:0x80081FF4; // type:function size:0x164 scope:local +GrowCharWheel = .text:0x80082158; // type:function size:0x120 scope:local +ShrinkCharWheel = .text:0x80082278; // type:function size:0x10C scope:local +KillCharWheelSpr = .text:0x80082384; // type:function size:0x38 scope:local +SetCharWheelChars = .text:0x800823BC; // type:function size:0xBC scope:local +GetInput = .text:0x80082478; // type:function size:0x224 scope:local +BoardCharWheelTargetSet = .text:0x8008269C; // type:function size:0x10 +GetComDelay = .text:0x800826AC; // type:function size:0x148 scope:local +GetComInput = .text:0x800827F4; // type:function size:0x8C scope:local +BoardMushroomExec = .text:0x80082880; // type:function size:0xA4 +MushroomMain = .text:0x80082924; // type:function size:0x38C scope:local +KillMushroom = .text:0x80082CB0; // type:function size:0x58 scope:local +BoxMain = .text:0x80082D08; // type:function size:0x118 scope:local +ShowBox = .text:0x80082E20; // type:function size:0x114 scope:local +ExitBox = .text:0x80082F34; // type:function size:0x160 scope:local +HideBox = .text:0x80083094; // type:function size:0x68 scope:local +CenterBox = .text:0x800830FC; // type:function size:0xD4 scope:local +InitBox = .text:0x800831D0; // type:function size:0x2EC scope:local +MarkKillBox = .text:0x800834BC; // type:function size:0x64 scope:local +SetBoxHide = .text:0x80083520; // type:function size:0x34 scope:local +SetBoxCenter = .text:0x80083554; // type:function size:0x54 scope:local +SetBoxShow = .text:0x800835A8; // type:function size:0x34 scope:local +WaitBoxOpen = .text:0x800835DC; // type:function size:0x5C scope:local +WaitBoxCenter = .text:0x80083638; // type:function size:0x58 scope:local +CheckBox = .text:0x80083690; // type:function size:0x60 scope:local +DoItemGive = .text:0x800836F0; // type:function size:0x240 scope:local +StartItemGive = .text:0x80083930; // type:function size:0xD4 scope:local +KillItemMdl = .text:0x80083A04; // type:function size:0x38 scope:local +ShowItemMdl = .text:0x80083A3C; // type:function size:0x48 scope:local +WaitItemGive = .text:0x80083A84; // type:function size:0x48 scope:local +BoardStarHostSet = .text:0x80083ACC; // type:function size:0xA8 +BoardStarHostMdlGet = .text:0x80083B74; // type:function size:0x8 +BoardStarExec = .text:0x80083B7C; // type:function size:0xCC +ExecStar = .text:0x80083C48; // type:function size:0x8F4 scope:local +DestroyStar = .text:0x8008453C; // type:function size:0x84 scope:local +GiveStarMain = .text:0x800845C0; // type:function size:0x160 scope:local +UpdateStarAngle = .text:0x80084720; // type:function size:0x144 scope:local +InitGiveStar = .text:0x80084864; // type:function size:0x10C scope:local +MoveGiveStar = .text:0x80084970; // type:function size:0x180 scope:local +ShrinkGiveStar = .text:0x80084AF0; // type:function size:0x204 scope:local +StopGiveStar = .text:0x80084CF4; // type:function size:0x38 scope:local +InitGiveStarEffect = .text:0x80084D2C; // type:function size:0xB4 scope:local +KillGiveStarEffect = .text:0x80084DE0; // type:function size:0x40 scope:local +BoardStarGive = .text:0x80084E20; // type:function size:0x31C +BoardStarShowNext = .text:0x8008513C; // type:function size:0x628 +ShowNextUpdate = .text:0x80085764; // type:function size:0x130 scope:local +HideNextHost = .text:0x80085894; // type:function size:0x24 scope:local +BoardRollExec = .text:0x800858B8; // type:function size:0x1EC +BoardRollKill = .text:0x80085AA4; // type:function size:0x38 +BoardRollUPauseSet = .text:0x80085ADC; // type:function size:0x84 +BoardRollWinDispSet = .text:0x80085B60; // type:function size:0x4C +RollMain = .text:0x80085BAC; // type:function size:0x490 scope:local +DiceCreate = .text:0x8008603C; // type:function size:0x280 scope:local +DoInput = .text:0x800862BC; // type:function size:0x1C8 scope:local +DiceWaitFull = .text:0x80086484; // type:function size:0x60 scope:local +DiceSetHit = .text:0x800864E4; // type:function size:0x130 scope:local +RollDestroy = .text:0x80086614; // type:function size:0x60 scope:local +DiceMain = .text:0x80086674; // type:function size:0x7E4 scope:local +DicePause = .text:0x80086E58; // type:function size:0x40 scope:local +DicePauseAll = .text:0x80086E98; // type:function size:0x90 scope:local +BoardDiceEffectCreate = .text:0x80086F28; // type:function size:0xE0 +DiceHideEffect = .text:0x80087008; // type:function size:0x84 scope:local +BoardDicePauseAll = .text:0x8008708C; // type:function size:0x94 +BoardDiceDoneCheck = .text:0x80087120; // type:function size:0x8C +BoardDiceStop = .text:0x800871AC; // type:function size:0x58 +BoardDiceVisibleSet = .text:0x80087204; // type:function size:0xC0 +BoardDiceValueSet = .text:0x800872C4; // type:function size:0x200 +DiceDigitMain = .text:0x800874C4; // type:function size:0xAC scope:local +DiceDigitKill = .text:0x80087570; // type:function size:0x68 scope:local +DiceKill = .text:0x800875D8; // type:function size:0xB4 scope:local +DiceDigitMove = .text:0x8008768C; // type:function size:0x390 scope:local +DiceDigitRotate = .text:0x80087A1C; // type:function size:0x110 scope:local +SameRollExec = .text:0x80087B2C; // type:function size:0x248 scope:local +GetBtnRoll = .text:0x80087D74; // type:function size:0x110 scope:local +GetComBtnRoll = .text:0x80087E84; // type:function size:0x88 scope:local +BoardRollTutorialSet = .text:0x80087F0C; // type:function size:0x4C +BoardItemModelGet = .text:0x80087F58; // type:function size:0x90 +BoardItemNameGet = .text:0x80087FE8; // type:function size:0x98 +BoardStatusStopCheck = .text:0x80088080; // type:function size:0x48 +BoardStatusVisibleGet = .text:0x800880C8; // type:function size:0x1C +BoardStatusShowSetAll = .text:0x800880E4; // type:function size:0x48 +BoardStatusItemSet = .text:0x8008812C; // type:function size:0xFC +BoardStatusShowSetForce = .text:0x80088228; // type:function size:0x24 +BoardStatusGraySet = .text:0x8008824C; // type:function size:0x134 +BoardStatusShowSet = .text:0x80088380; // type:function size:0x138 +BoardStatusItemHideSet = .text:0x800884B8; // type:function size:0x50 +BoardStatusTargetPosSet = .text:0x80088508; // type:function size:0x44 +BoardStatusPosGet = .text:0x8008854C; // type:function size:0x34 +BoardStatusPosSet = .text:0x80088580; // type:function size:0x6C +BoardStatusHammerCreate = .text:0x800885EC; // type:function size:0x158 +BoardStatusHammerShowSet = .text:0x80088744; // type:function size:0x94 +BoardStatusHammerKill = .text:0x800887D8; // type:function size:0x6C +BoardStatusKill = .text:0x80088844; // type:function size:0x90 +BoardStatusCreate = .text:0x800888D4; // type:function size:0x20C +KillAllBoardStatus = .text:0x80088AE0; // type:function size:0x98 scope:local +CreateBoardStatusSprite = .text:0x80088B78; // type:function size:0x36C scope:local +BoardSpriteCreate = .text:0x80088EE4; // type:function size:0x8C +UpdateBoardStatus = .text:0x80088F70; // type:function size:0x210 scope:local +BoardStatusProc = .text:0x80089180; // type:function size:0x40 scope:local +MoveBoardStatus = .text:0x800891C0; // type:function size:0x180 scope:local +BoardSpriteDigitUpdate = .text:0x80089340; // type:function size:0x140 +UpdateStatusItem = .text:0x80089480; // type:function size:0xB8 scope:local +BoardPickerCreate = .text:0x80089538; // type:function size:0x29C +BoardPickerBackFlagSet = .text:0x800897D4; // type:function size:0x74 +BoardPickerDoneCheck = .text:0x80089848; // type:function size:0x1C +BoardPickerPosGet = .text:0x80089864; // type:function size:0x48 +BoardPickerChoiceGet = .text:0x800898AC; // type:function size:0xC +UpdatePicker = .text:0x800898B8; // type:function size:0xFC scope:local +UpdatePickerInput = .text:0x800899B4; // type:function size:0x15C scope:local +MovePicker = .text:0x80089B10; // type:function size:0x110 scope:local +UpdateComPickerButton = .text:0x80089C20; // type:function size:0x30 scope:local +CheckPickerButton = .text:0x80089C50; // type:function size:0x19C scope:local +BoardYourTurnExec = .text:0x80089DEC; // type:function size:0x1E4 +UpdateYourTurn = .text:0x80089FD0; // type:function size:0xD4 scope:local +GrowYourTurn = .text:0x8008A0A4; // type:function size:0xD8 scope:local +WaitYourTurn = .text:0x8008A17C; // type:function size:0xEC scope:local +ShrinkYourTurn = .text:0x8008A268; // type:function size:0xC8 scope:local +BoardItemUseExec = .text:0x8008A330; // type:function size:0x80 +ItemUseTeamProc = .text:0x8008A3B0; // type:function size:0x4A8 scope:local +ItemUseProc = .text:0x8008A858; // type:function size:0x370 scope:local +FinishItemUse = .text:0x8008ABC8; // type:function size:0x174 scope:local +DestroyItemUse = .text:0x8008AD3C; // type:function size:0x78 scope:local +BoardMakeRandomItem = .text:0x8008ADB4; // type:function size:0x74 +TeamItemPosSet = .text:0x8008AE28; // type:function size:0xE8 scope:local +ExecItemPick = .text:0x8008AF10; // type:function size:0x650 scope:local +UpdateItemPick = .text:0x8008B560; // type:function size:0x3AC scope:local +MakeItemPickSpace = .text:0x8008B90C; // type:function size:0x420 scope:local +SetItemUIStatus = .text:0x8008BD2C; // type:function size:0x248 scope:local +BoardItemGetDestPos = .text:0x8008BF74; // type:function size:0xA8 +ItemGetPos = .text:0x8008C01C; // type:function size:0x104 scope:local +BoardItemStatusKill = .text:0x8008C120; // type:function size:0x400 +UpdateItemPickGfx = .text:0x8008C520; // type:function size:0x388 scope:local +UpdateItemPickup = .text:0x8008C8A8; // type:function size:0x674 scope:local +CheckItemWindow = .text:0x8008CF1C; // type:function size:0x50 scope:local +HideItemWindow = .text:0x8008CF6C; // type:function size:0x38 scope:local +CreateItemWindow = .text:0x8008CFA4; // type:function size:0x5A4 scope:local +CheckItemWindowSlide = .text:0x8008D548; // type:function size:0x58 scope:local +KillItemWindow = .text:0x8008D5A0; // type:function size:0x38 scope:local +SetItemWindowCurr = .text:0x8008D5D8; // type:function size:0xA4 scope:local +UpdateItemWindow = .text:0x8008D67C; // type:function size:0x350 scope:local +CreatePickerWindow = .text:0x8008D9CC; // type:function size:0x148 scope:local +KillPickerWindow = .text:0x8008DB14; // type:function size:0x44 scope:local +BoardBlockExec = .text:0x8008DB58; // type:function size:0x84 +BlockProc = .text:0x8008DBDC; // type:function size:0x358 scope:local +DestroyBlock = .text:0x8008DF34; // type:function size:0x54 scope:local +CreateBlockObj = .text:0x8008DF88; // type:function size:0x1F4 scope:local +ExecBlockObj = .text:0x8008E17C; // type:function size:0x12C scope:local +DestroyBlockObj = .text:0x8008E2A8; // type:function size:0x38 scope:local +SpawnBlock = .text:0x8008E2E0; // type:function size:0x120 scope:local +HitBlock = .text:0x8008E400; // type:function size:0xCC scope:local +OpenBlock = .text:0x8008E4CC; // type:function size:0x140 scope:local +SetBlockOpen = .text:0x8008E60C; // type:function size:0x2C scope:local +SetBlockStop = .text:0x8008E638; // type:function size:0x2C scope:local +WaitBlockHit = .text:0x8008E664; // type:function size:0x48 scope:local +CreateCoinMdl = .text:0x8008E6AC; // type:function size:0x94 scope:local +KillCoinMdl = .text:0x8008E740; // type:function size:0x9C scope:local +PopupCoin = .text:0x8008E7DC; // type:function size:0x10C scope:local +PopupCoinExec = .text:0x8008E8E8; // type:function size:0x130 scope:local +BoardItemStart = .text:0x8008EA18; // type:function size:0x74 +BoardItemDoneCheck = .text:0x8008EA8C; // type:function size:0x1C +BoardItemPlayerRestore = .text:0x8008EAA8; // type:function size:0x6C +ItemProcess = .text:0x8008EB14; // type:function size:0x64 scope:local +RestoreProcess = .text:0x8008EB78; // type:function size:0x64 scope:local +ItemDestroy = .text:0x8008EBDC; // type:function size:0xC scope:local +RestoreDestroy = .text:0x8008EBE8; // type:function size:0xC scope:local +ItemSizeShowAnim = .text:0x8008EBF4; // type:function size:0x180 scope:local +ItemRotProc = .text:0x8008ED74; // type:function size:0x1BC scope:local +ItemShowProc = .text:0x8008EF30; // type:function size:0x220 scope:local +ItemGetTarget = .text:0x8008F150; // type:function size:0x374 scope:local +ItemSizeSet = .text:0x8008F4C4; // type:function size:0x204 scope:local +ExecItemMini = .text:0x8008F6C8; // type:function size:0xA4 scope:local +ExecItemMega = .text:0x8008F76C; // type:function size:0xA4 scope:local +ExecItemMiniSuper = .text:0x8008F810; // type:function size:0xA4 scope:local +ExecItemMegaSuper = .text:0x8008F8B4; // type:function size:0xA4 scope:local +ExecItemHammer = .text:0x8008F958; // type:function size:0x584 scope:local +ExecItemPipe = .text:0x8008FEDC; // type:function size:0xD34 scope:local +ExecItemSwap = .text:0x80090C10; // type:function size:0xEBC scope:local +ExecItemSpark = .text:0x80091ACC; // type:function size:0x4FC scope:local +ExecItemLight = .text:0x80091FC8; // type:function size:0xC8 scope:local +ExecItemWhistle = .text:0x80092090; // type:function size:0xE3C scope:local +ExecItemBowser = .text:0x80092ECC; // type:function size:0x3D4 scope:local +ExecItemBooBall = .text:0x800932A0; // type:function size:0x1370 scope:local +LampParticleUpdate = .text:0x80094610; // type:function size:0x488 scope:local +GenieParticleUpdate = .text:0x80094A98; // type:function size:0x388 scope:local +GenieCameraProc = .text:0x80094E20; // type:function size:0xB0 scope:local +GenieCameraCalc = .text:0x80094ED0; // type:function size:0x7A4 scope:local +GenieSceneExec = .text:0x80095674; // type:function size:0x9D8 scope:local +ExecItemGenie = .text:0x8009604C; // type:function size:0x628 scope:local +BoardItemBagItemSet = .text:0x80096674; // type:function size:0x3C +ExecItemBagJump = .text:0x800966B0; // type:function size:0x13C scope:local +ExecItemBagShow = .text:0x800967EC; // type:function size:0xDC scope:local +ExecItemBag = .text:0x800968C8; // type:function size:0x584 scope:local +RestoreItemNull = .text:0x80096E4C; // type:function size:0x1C scope:local +RestoreItemMini = .text:0x80096E68; // type:function size:0x2C scope:local +RestoreItemMega = .text:0x80096E94; // type:function size:0x2C scope:local +RestoreItemMiniSuper = .text:0x80096EC0; // type:function size:0x2C scope:local +RestoreItemMegaSuper = .text:0x80096EEC; // type:function size:0x2C scope:local +RestoreItemBowser = .text:0x80096F18; // type:function size:0x284 scope:local +BoardBowserExec = .text:0x8009719C; // type:function size:0x144 +ExecBowser = .text:0x800972E0; // type:function size:0x28C scope:local +ExecBowserMain = .text:0x8009756C; // type:function size:0x208 scope:local +ExecMGReturn = .text:0x80097774; // type:function size:0x1DC scope:local +DestroyBowser = .text:0x80097950; // type:function size:0x30 scope:local +SquishPlayers = .text:0x80097980; // type:function size:0x148 scope:local +ExecBowserSpecial = .text:0x80097AC8; // type:function size:0x1B4 scope:local +ExecBowserGame = .text:0x80097C7C; // type:function size:0x250 scope:local +DoMGReturnEffect = .text:0x80097ECC; // type:function size:0x220 scope:local +ExecBowserShuffle = .text:0x800980EC; // type:function size:0x2B0 scope:local +ExecBowserRevo = .text:0x8009839C; // type:function size:0x160 scope:local +ExecBowserSuit = .text:0x800984FC; // type:function size:0xB8 scope:local +CheckSuitGive = .text:0x800985B4; // type:function size:0x1C scope:local +StartSuitGive = .text:0x800985D0; // type:function size:0x148 scope:local +SuitGiveMain = .text:0x80098718; // type:function size:0x210 scope:local +CreateBowserObj = .text:0x80098928; // type:function size:0x228 scope:local +ExecBowserObj = .text:0x80098B50; // type:function size:0x230 scope:local +ExecBowserFall = .text:0x80098D80; // type:function size:0x270 scope:local +ExecBowserLaugh = .text:0x80098FF0; // type:function size:0x58 scope:local +ExecBowserFire = .text:0x80099048; // type:function size:0x44 scope:local +ExecBowserJump = .text:0x8009908C; // type:function size:0x150 scope:local +ExecBowserPowerUp = .text:0x800991DC; // type:function size:0x128 scope:local +SetBowserState = .text:0x80099304; // type:function size:0x34 scope:local +CheckBowserIdle = .text:0x80099338; // type:function size:0x5C scope:local +CreateMiniBowser = .text:0x80099394; // type:function size:0xD4 scope:local +CheckMiniBowser = .text:0x80099468; // type:function size:0x1C scope:local +ExecMiniBowser = .text:0x80099484; // type:function size:0x18C scope:local +CreateBowserEvent = .text:0x80099610; // type:function size:0x1E8 scope:local +CheckBowserEvent = .text:0x800997F8; // type:function size:0x38 scope:local +StopBowserEvent = .text:0x80099830; // type:function size:0x24 scope:local +ExecBowserEvent = .text:0x80099854; // type:function size:0xEC scope:local +ShowBowserEvent = .text:0x80099940; // type:function size:0x1C8 scope:local +HideBowserEvent = .text:0x80099B08; // type:function size:0x108 scope:local +ConfigBowserEvent = .text:0x80099C10; // type:function size:0x160 scope:local +CreatePlayerMot = .text:0x80099D70; // type:function size:0x1AC scope:local +KillPlayerMot = .text:0x80099F1C; // type:function size:0xB8 scope:local +InitBowserFire = .text:0x80099FD4; // type:function size:0x90 scope:local +BowserFireHook = .text:0x8009A064; // type:function size:0x160 scope:local +SpawnBowserFire = .text:0x8009A1C4; // type:function size:0xE4 scope:local +CheckBowserFire = .text:0x8009A2A8; // type:function size:0xCC scope:local +KillBowserFire = .text:0x8009A374; // type:function size:0x40 scope:local +ExecMiniBowserEvent = .text:0x8009A3B4; // type:function size:0x188 scope:local +MiniBowserTake = .text:0x8009A53C; // type:function size:0x2C4 scope:local +MiniBowserTakeAll = .text:0x8009A800; // type:function size:0x2B8 scope:local +MiniBowserBalloonStop = .text:0x8009AAB8; // type:function size:0x24 scope:local +GetMiniBowserBalloonState = .text:0x8009AADC; // type:function size:0xC scope:local +SetMiniBowserBalloonState = .text:0x8009AAE8; // type:function size:0x10 scope:local +CreateMiniBowserBalloon = .text:0x8009AAF8; // type:function size:0x14C scope:local +ExecMiniBowserBalloon = .text:0x8009AC44; // type:function size:0x120 scope:local +MiniBowserBalloonHover = .text:0x8009AD64; // type:function size:0xB4 scope:local +MiniBowserBalloonFall = .text:0x8009AE18; // type:function size:0x88 scope:local +MiniBowserBalloonRaise = .text:0x8009AEA0; // type:function size:0x80 scope:local +SetMiniBowserMotion = .text:0x8009AF20; // type:function size:0xD8 scope:local +SetMiniBowserMotionPause = .text:0x8009AFF8; // type:function size:0x6C scope:local +WaitMiniBowserMotion = .text:0x8009B064; // type:function size:0x60 scope:local +BoardBattleExec = .text:0x8009B0C4; // type:function size:0x124 +DestroyBattle = .text:0x8009B1E8; // type:function size:0x2C scope:local +ExecBattle = .text:0x8009B214; // type:function size:0x708 scope:local +TakeCoins = .text:0x8009B91C; // type:function size:0x1D4 scope:local +InitExplode = .text:0x8009BAF0; // type:function size:0x1FC scope:local +CheckExplode = .text:0x8009BCEC; // type:function size:0x24 scope:local +UpdateExplode = .text:0x8009BD10; // type:function size:0x2D0 scope:local +CreateBattleMain = .text:0x8009BFE0; // type:function size:0x1E8 scope:local +UpdateBattleMain = .text:0x8009C1C8; // type:function size:0x1A0 scope:local +DescendBattleBomb = .text:0x8009C368; // type:function size:0x64 scope:local +EndBattle = .text:0x8009C3CC; // type:function size:0x88 scope:local +ShowBattleGame = .text:0x8009C454; // type:function size:0x124 scope:local +RaiseBattleGame = .text:0x8009C578; // type:function size:0x8C scope:local +UpdateBattleCoin = .text:0x8009C604; // type:function size:0x260 scope:local +ShowBattleCoin = .text:0x8009C864; // type:function size:0x128 scope:local +InitBattleGameSpr = .text:0x8009C98C; // type:function size:0x12C scope:local +HideBattleSpr = .text:0x8009CAB8; // type:function size:0x58 scope:local +VibratePad = .text:0x8009CB10; // type:function size:0x64 scope:local +StopBattleBomb = .text:0x8009CB74; // type:function size:0x24 scope:local +GetBattleBombState = .text:0x8009CB98; // type:function size:0x10 scope:local +SetBattleBombState = .text:0x8009CBA8; // type:function size:0x34 scope:local +SetBattleCoinValue = .text:0x8009CBDC; // type:function size:0x15C scope:local +BoardFortuneExec = .text:0x8009CD38; // type:function size:0x124 +FortuneExec = .text:0x8009CE5C; // type:function size:0x74 scope:local +DestroyFortune = .text:0x8009CED0; // type:function size:0xC scope:local +FortuneMain = .text:0x8009CEDC; // type:function size:0x340 scope:local +FortunePostMG = .text:0x8009D21C; // type:function size:0xF8 scope:local +CreateFortunePlatform = .text:0x8009D314; // type:function size:0x160 scope:local +CameraCalcFortune = .text:0x8009D474; // type:function size:0x5C scope:local +ExecFortunePlatform = .text:0x8009D4D0; // type:function size:0x198 scope:local +ExecComFortuneWin = .text:0x8009D668; // type:function size:0x18C scope:local +ConfigComFortune = .text:0x8009D7F4; // type:function size:0x20C scope:local +ComFortuneAddStar = .text:0x8009DA00; // type:function size:0x78 scope:local +ComFortuneAddCoin = .text:0x8009DA78; // type:function size:0x78 scope:local +ComFortuneSwapCoin = .text:0x8009DAF0; // type:function size:0x68 scope:local +ComFortuneSwapStar = .text:0x8009DB58; // type:function size:0x68 scope:local +BoardBooCreate = .text:0x8009DBC0; // type:function size:0x11C +BoardBooKill = .text:0x8009DCDC; // type:function size:0x2C +BoardBooStealTypeSet = .text:0x8009DD08; // type:function size:0x2A8 +ComSetupStealPlayer = .text:0x8009DFB0; // type:function size:0x1D4 scope:local +ComSetStealPlayerInput = .text:0x8009E184; // type:function size:0xE8 scope:local +BoardBooStealMain = .text:0x8009E26C; // type:function size:0x280 +fn_8009E4EC = .text:0x8009E4EC; // type:function size:0xC0 scope:local +fn_8009E5AC = .text:0x8009E5AC; // type:function size:0xA8 scope:local +ExecLightSteal = .text:0x8009E654; // type:function size:0x94 scope:local +SetBooMode = .text:0x8009E6E8; // type:function size:0x10 scope:local +CreateBallMdl = .text:0x8009E6F8; // type:function size:0xBC scope:local +CreateBallView = .text:0x8009E7B4; // type:function size:0x1D4 scope:local +SetBallView = .text:0x8009E988; // type:function size:0xAC scope:local +SetBallActive = .text:0x8009EA34; // type:function size:0x28 scope:local +CheckBallKill = .text:0x8009EA5C; // type:function size:0x4C scope:local +BallMain = .text:0x8009EAA8; // type:function size:0x300 scope:local +BallRenderHook = .text:0x8009EDA8; // type:function size:0x4A0 scope:local +ExecBoo = .text:0x8009F248; // type:function size:0x9C scope:local +UpdateBallCamera = .text:0x8009F2E4; // type:function size:0x1DC scope:local +CreateBallPlayer = .text:0x8009F4C0; // type:function size:0x358 scope:local +GetBallPlayerState = .text:0x8009F818; // type:function size:0x24 scope:local +SetBallPlayerState = .text:0x8009F83C; // type:function size:0x2C scope:local +ExecBallPlayer = .text:0x8009F868; // type:function size:0x214 scope:local +BallPlayerZoomOut = .text:0x8009FA7C; // type:function size:0x15C scope:local +BallPlayerScare = .text:0x8009FBD8; // type:function size:0x110 scope:local +BallPlayerTurn = .text:0x8009FCE8; // type:function size:0x68 scope:local +BallPlayerPunch = .text:0x8009FD50; // type:function size:0x1E0 scope:local +BallPlayerUseLight = .text:0x8009FF30; // type:function size:0x10C scope:local +BallPlayerCatch = .text:0x800A003C; // type:function size:0x190 scope:local +BallBooCreate = .text:0x800A01CC; // type:function size:0x328 scope:local +SetBallBooState = .text:0x800A04F4; // type:function size:0x170 scope:local +GetBallBooState = .text:0x800A0664; // type:function size:0x24 scope:local +ExecBallBoo = .text:0x800A0688; // type:function size:0x128 scope:local +BallBooSpawn = .text:0x800A07B0; // type:function size:0x54 scope:local +BallBooChase = .text:0x800A0804; // type:function size:0x104 scope:local +BallBooBattle = .text:0x800A0908; // type:function size:0x218 scope:local +BallBooAttack = .text:0x800A0B20; // type:function size:0xF4 scope:local +BallBooFlash = .text:0x800A0C14; // type:function size:0x178 scope:local +TakeBallCoin = .text:0x800A0D8C; // type:function size:0x1B0 scope:local +ExecTakeBallCoin = .text:0x800A0F3C; // type:function size:0xDC scope:local +TakeBallCoinPosSet = .text:0x800A1018; // type:function size:0x9C scope:local +CheckBallCoinDone = .text:0x800A10B4; // type:function size:0x68 +TakeBallStar = .text:0x800A111C; // type:function size:0x168 +ExecTakeBallStar = .text:0x800A1284; // type:function size:0x184 +CheckTakeBallStarDone = .text:0x800A1408; // type:function size:0x1C +BoardBooStealValueGet = .text:0x800A1424; // type:function size:0x30 +BoardBooStealLightCheck = .text:0x800A1454; // type:function size:0x20 +UpdatePlayerCoins = .text:0x800A1474; // type:function size:0x1B0 scope:local +BoardMGSetupExec = .text:0x800A1624; // type:function size:0x60 +DestroyMGSetup = .text:0x800A1684; // type:function size:0x1C scope:local +ExecMGSetup = .text:0x800A16A0; // type:function size:0x6FC scope:local +DetermineMGList = .text:0x800A1D9C; // type:function size:0x3B0 scope:local +SetupStatusLayout = .text:0x800A214C; // type:function size:0x3A8 scope:local +GetMGType = .text:0x800A24F4; // type:function size:0x388 scope:local +GetMGTypeTeam = .text:0x800A287C; // type:function size:0x3A4 scope:local +CreateMGSetup = .text:0x800A2C20; // type:function size:0x194 scope:local +UpdateMGSetup = .text:0x800A2DB4; // type:function size:0x198 scope:local +CenterStatus = .text:0x800A2F4C; // type:function size:0x174 scope:local +SeparateStatus = .text:0x800A30C0; // type:function size:0x200 scope:local +PopupVS = .text:0x800A32C0; // type:function size:0x20C scope:local +FallMGType = .text:0x800A34CC; // type:function size:0x1C8 scope:local +LuckyMGFall = .text:0x800A3694; // type:function size:0x204 scope:local +HideLuckyValue = .text:0x800A3898; // type:function size:0xA8 scope:local +UpdateLuckyValue = .text:0x800A3940; // type:function size:0x430 scope:local +UpdateMGList = .text:0x800A3D70; // type:function size:0x8FC scope:local +BoardMGSetupPlayClear = .text:0x800A466C; // type:function size:0x74 +BoardMGSetupPlaySearch = .text:0x800A46E0; // type:function size:0xC8 +BoardMGSetupPlayPush = .text:0x800A47A8; // type:function size:0xD0 +BoardMGSetupTutorialExec = .text:0x800A4878; // type:function size:0x2E4 +BoardBooHouseHostSet = .text:0x800A4B5C; // type:function size:0x8 +BoardBooHouseHostGet = .text:0x800A4B64; // type:function size:0x8 +BoardBooHouseCreate = .text:0x800A4B6C; // type:function size:0xB4 +BoardBooHouseKill = .text:0x800A4C20; // type:function size:0x50 +BoardBooHouseExec = .text:0x800A4C70; // type:function size:0x94 +ExecBooHouse = .text:0x800A4D04; // type:function size:0x538 scope:local +DestroyBooHouse = .text:0x800A523C; // type:function size:0xF0 scope:local +PickComStealType = .text:0x800A532C; // type:function size:0xFC scope:local +OpenBooHouse = .text:0x800A5428; // type:function size:0x3A0 scope:local +CloseBooHouse = .text:0x800A57C8; // type:function size:0x124 scope:local +CreateBooHouseModel = .text:0x800A58EC; // type:function size:0xB0 scope:local +KillBooHouseModel = .text:0x800A599C; // type:function size:0xD4 scope:local +ExecNullSteal = .text:0x800A5A70; // type:function size:0x68 scope:local +ExecStarSteal = .text:0x800A5AD8; // type:function size:0x2AC scope:local +ExecCoinSteal = .text:0x800A5D84; // type:function size:0x2AC scope:local +ApplySteal = .text:0x800A6030; // type:function size:0x188 scope:local +ApplyCoinSteal = .text:0x800A61B8; // type:function size:0x16C scope:local +ApplyStarSteal = .text:0x800A6324; // type:function size:0x164 scope:local +ApplyBooLight = .text:0x800A6488; // type:function size:0x70 scope:local +SetBooBallPos = .text:0x800A64F8; // type:function size:0x60 scope:local +BoardBooComUseCheck = .text:0x800A6558; // type:function size:0x1A8 +BoardBooHouseTutorialExec = .text:0x800A6700; // type:function size:0x3D4 +BoardStartExec = .text:0x800A6AD4; // type:function size:0x64 +DestroyStart = .text:0x800A6B38; // type:function size:0x84 scope:local +ExecStart = .text:0x800A6BBC; // type:function size:0x400 scope:local +ShowLogo = .text:0x800A6FBC; // type:function size:0x2FC scope:local +FocusStart = .text:0x800A72B8; // type:function size:0x17C scope:local +CreatePlayerStart = .text:0x800A7434; // type:function size:0x2D8 scope:local +ExecPlayerStart = .text:0x800A770C; // type:function size:0x188 scope:local +PlayerFall = .text:0x800A7894; // type:function size:0x1C8 scope:local +PlayerWaitSpeak = .text:0x800A7A5C; // type:function size:0xEC scope:local +PlayerDiceFall = .text:0x800A7B48; // type:function size:0x1A8 scope:local +PlayerDiceRoll = .text:0x800A7CF0; // type:function size:0x454 scope:local +PlayerDiceNumShow = .text:0x800A8144; // type:function size:0xD8 scope:local +PlayerDiceNumHide = .text:0x800A821C; // type:function size:0x250 scope:local +SetPlayerStartState = .text:0x800A846C; // type:function size:0xC8 scope:local +GetPlayerStartState = .text:0x800A8534; // type:function size:0x3C scope:local +ExecStartRoll = .text:0x800A8570; // type:function size:0x6D4 scope:local +InitCamera = .text:0x800A8C44; // type:function size:0x318 scope:local +fn_800A8F5C = .text:0x800A8F5C; // type:function size:0xA4 scope:local +CreateTapWin = .text:0x800A9000; // type:function size:0xDC scope:local +OrderPlayers = .text:0x800A90DC; // type:function size:0x21C scope:local +BoardLast5Exec = .text:0x800A92F8; // type:function size:0x84 +DestroyLast5 = .text:0x800A937C; // type:function size:0x30 scope:local +ExecLast5 = .text:0x800A93AC; // type:function size:0x1D4 scope:local +CreateLast5 = .text:0x800A9580; // type:function size:0x184 scope:local +KillLast5 = .text:0x800A9704; // type:function size:0x48 scope:local +InitHost = .text:0x800A974C; // type:function size:0x10C scope:local +KillHost = .text:0x800A9858; // type:function size:0xA4 scope:local +Last5Main = .text:0x800A98FC; // type:function size:0xCC0 scope:local +CheckJump = .text:0x800AA5BC; // type:function size:0xA4 scope:local +CreateLotteryDrawWheel = .text:0x800AA660; // type:function size:0x1FC scope:local +CreateLotteryDraw = .text:0x800AA85C; // type:function size:0xD4 scope:local +UpdateLotteryDraw = .text:0x800AA930; // type:function size:0x170 scope:local +SetLotteryDrawState = .text:0x800AAAA0; // type:function size:0x88 scope:local +GetLotteryDrawState = .text:0x800AAB28; // type:function size:0x20 scope:local +KillLotteryDrawWheel = .text:0x800AAB48; // type:function size:0x24 scope:local +UpdateLotteryDrawWheel = .text:0x800AAB6C; // type:function size:0x2D0 scope:local +SetLotteryDrawWheelState = .text:0x800AAE3C; // type:function size:0x1D8 scope:local +ExecLotteryDraw = .text:0x800AB014; // type:function size:0x950 scope:local +KillLotteryTicket = .text:0x800AB964; // type:function size:0x4C scope:local +InitLotteryTicket = .text:0x800AB9B0; // type:function size:0x488 scope:local +UpdateLotteryTicket = .text:0x800ABE38; // type:function size:0x2A4 scope:local +SetLotteryTicketState = .text:0x800AC0DC; // type:function size:0x1C0 scope:local +GetLotteryTicketPlayer = .text:0x800AC29C; // type:function size:0x7C scope:local +CheckLotteryTicket = .text:0x800AC318; // type:function size:0x78 scope:local +UpdateLotteryTicketMatch = .text:0x800AC390; // type:function size:0xB0 scope:local +StartHostMove = .text:0x800AC440; // type:function size:0x1CC scope:local +ExecHostMove = .text:0x800AC60C; // type:function size:0x228 scope:local +CheckHostMove = .text:0x800AC834; // type:function size:0x1C scope:local +CreateStopWin = .text:0x800AC850; // type:function size:0xC0 scope:local +CreateLast5Roulette = .text:0x800AC910; // type:function size:0x180 scope:local +UpdateLast5Roulette = .text:0x800ACA90; // type:function size:0x2B0 scope:local +SetLast5RouletteFade = .text:0x800ACD40; // type:function size:0x44 scope:local +SetLast5RouletteState = .text:0x800ACD84; // type:function size:0x38 scope:local +GetLast5RouletteState = .text:0x800ACDBC; // type:function size:0x38 scope:local +GetLast5RouletteResult = .text:0x800ACDF4; // type:function size:0x44 scope:local +CreateTeamResult = .text:0x800ACE38; // type:function size:0x2B4 scope:local +CreateTeamResultWork = .text:0x800AD0EC; // type:function size:0x340 scope:local +SetTeamResultTarget = .text:0x800AD42C; // type:function size:0x58 scope:local +GetTeamResultTarget = .text:0x800AD484; // type:function size:0x58 scope:local +KillTeamResult = .text:0x800AD4DC; // type:function size:0x38 scope:local +UpdateTeamResult = .text:0x800AD514; // type:function size:0x260 scope:local +BoardPauseStart = .text:0x800AD774; // type:function size:0x88 +PauseExit = .text:0x800AD7FC; // type:function size:0x3C0 scope:local +PauseProcess = .text:0x800ADBBC; // type:function size:0x108 scope:local +CreatePauseScreen = .text:0x800ADCC4; // type:function size:0xABC scope:local +DeletePauseScreen = .text:0x800AE780; // type:function size:0x168 scope:local +SetBoxVisible = .text:0x800AE8E8; // type:function size:0x58 scope:local +PauseConfigObjFunc = .text:0x800AE940; // type:function size:0x4F4 scope:local +UpdatePauseText = .text:0x800AEE34; // type:function size:0x310 scope:local +InitPauseQuit = .text:0x800AF144; // type:function size:0x264 scope:local +PauseQuitProcess = .text:0x800AF3A8; // type:function size:0x110 scope:local +DeletePauseQuit = .text:0x800AF4B8; // type:function size:0x48 scope:local +UpdatePadConfig = .text:0x800AF500; // type:function size:0xD4 scope:local +CreatePadConfig = .text:0x800AF5D4; // type:function size:0x1CC scope:local +ScrollInPadConfig = .text:0x800AF7A0; // type:function size:0x178 scope:local +CursorMovePadConfig = .text:0x800AF918; // type:function size:0x238 scope:local +ChangeDiffPadConfig = .text:0x800AFB50; // type:function size:0x3B0 scope:local +ScrollOutPadConfig = .text:0x800AFF00; // type:function size:0x154 scope:local +UpdatePauseBox = .text:0x800B0054; // type:function size:0x390 scope:local +UpdatePauseBoxExt = .text:0x800B03E4; // type:function size:0x3E4 scope:local +ExecPauseConfig = .text:0x800B07C8; // type:function size:0x240 scope:local +CreatePauseControlWin = .text:0x800B0A08; // type:function size:0x210 scope:local +DeletePauseControlWin = .text:0x800B0C18; // type:function size:0x70 scope:local +WaitPauseInput = .text:0x800B0C88; // type:function size:0x1B8 scope:local +ShowPauseConfig = .text:0x800B0E40; // type:function size:0x12C scope:local +CreatePadConfigSprite = .text:0x800B0F6C; // type:function size:0x1A4 scope:local +ShowPadConfigSprite = .text:0x800B1110; // type:function size:0x10C scope:local +PauseCreateNumber = .text:0x800B121C; // type:function size:0xDC scope:local +BoardPauseActiveCheck = .text:0x800B12F8; // type:function size:0x34 +BoardPauseReqCheck = .text:0x800B132C; // type:function size:0x12C +CheckPort = .text:0x800B1458; // type:function size:0x4C scope:local +RotateBox = .text:0x800B14A4; // type:function size:0xC0 scope:local +SearchPathNodeSpace = .text:0x800B1564; // type:function size:0x60 scope:local +InitPathNode = .text:0x800B15C4; // type:function size:0x180 scope:local +FindChildNode = .text:0x800B1744; // type:function size:0xE4 scope:local +GetNumValidLinks = .text:0x800B1828; // type:function size:0xB4 scope:local +AddValidLinks = .text:0x800B18DC; // type:function size:0xD0 scope:local +CheckPathSpace = .text:0x800B19AC; // type:function size:0x30 scope:local +FindValidLink = .text:0x800B19DC; // type:function size:0xAC scope:local +CheckEndSpace = .text:0x800B1A88; // type:function size:0xF0 scope:local +BoardComPathShortcutLenGet = .text:0x800B1B78; // type:function size:0x74C +BoardComPathBestGet = .text:0x800B22C4; // type:function size:0x3E4 +BoardComPathLenGet = .text:0x800B26A8; // type:function size:0x65C +CheckPath = .text:0x800B2D04; // type:function size:0x488 scope:local +BoardComPathBestGetFlag = .text:0x800B318C; // type:function size:0x45C +CheckPathFlag = .text:0x800B35E8; // type:function size:0x4E0 scope:local +TutorialProcFunc = .text:0x800B3AC8; // type:function size:0x34 scope:local +BoardTutorialInit = .text:0x800B3AFC; // type:function size:0x80 +BoardTutorialKill = .text:0x800B3B7C; // type:function size:0x4C +BoardTutorialHookSet = .text:0x800B3BC8; // type:function size:0x8 +BoardTutorialHookExec = .text:0x800B3BD0; // type:function size:0x44 +BoardTutorialPlayerInit = .text:0x800B3C14; // type:function size:0x78 +BoardTutorialWorkSave = .text:0x800B3C8C; // type:function size:0x10C +BoardTutorialWorkRestore = .text:0x800B3D98; // type:function size:0xBC +BoardTutorialDirInputSet = .text:0x800B3E54; // type:function size:0x10 +BoardTutorialBlockSetPos = .text:0x800B3E64; // type:function size:0x40 +BoardTutorialItemSet = .text:0x800B3EA4; // type:function size:0x8 +BoardTutorialHostSet = .text:0x800B3EAC; // type:function size:0x8 +BoardTutorialHostHide = .text:0x800B3EB4; // type:function size:0x30 +PPCMfmsr = .text:0x800B3EE4; // type:function size:0x8 scope:global +PPCMtmsr = .text:0x800B3EEC; // type:function size:0x8 scope:global +PPCMfhid0 = .text:0x800B3EF4; // type:function size:0x8 scope:global +PPCMthid0 = .text:0x800B3EFC; // type:function size:0x8 +PPCMfl2cr = .text:0x800B3F04; // type:function size:0x8 scope:global +PPCMtl2cr = .text:0x800B3F0C; // type:function size:0x8 scope:global +PPCMtdec = .text:0x800B3F14; // type:function size:0x8 scope:weak +PPCSync = .text:0x800B3F1C; // type:function size:0x8 +PPCHalt = .text:0x800B3F24; // type:function size:0x14 scope:weak +PPCMfhid2 = .text:0x800B3F38; // type:function size:0x8 scope:global +PPCMthid2 = .text:0x800B3F40; // type:function size:0x8 scope:global +PPCMfwpar = .text:0x800B3F48; // type:function size:0xC +PPCMtwpar = .text:0x800B3F54; // type:function size:0x8 scope:global +PPCDisableSpeculation = .text:0x800B3F5C; // type:function size:0x28 scope:global +PPCSetFpNonIEEEMode = .text:0x800B3F84; // type:function size:0x8 scope:global +OSGetConsoleType = .text:0x800B3F8C; // type:function size:0x28 scope:global +ClearArena = .text:0x800B3FB4; // type:function size:0x128 scope:local +InquiryCallback = .text:0x800B40DC; // type:function size:0x3C scope:local +OSInit = .text:0x800B4118; // type:function size:0x3B8 scope:global +OSExceptionInit = .text:0x800B44D0; // type:function size:0x280 scope:local +__OSDBINTSTART = .text:0x800B4750; // type:label scope:global +__OSDBIntegrator = .text:0x800B4750; // type:function size:0x24 scope:local +__OSDBINTEND = .text:0x800B4774; // type:label scope:global +__OSDBJump = .text:0x800B4774; // type:function size:0x4 +__OSDBJUMPEND = .text:0x800B4778; // type:label scope:global +__OSSetExceptionHandler = .text:0x800B4778; // type:function size:0x1C scope:global +__OSGetExceptionHandler = .text:0x800B4794; // type:function size:0x14 scope:global +__OSEVStart = .text:0x800B47A8; // type:label scope:global +OSExceptionVector = .text:0x800B47A8; // type:function size:0x9C scope:local +__DBVECTOR = .text:0x800B4800; // type:label scope:global data:4byte +__OSEVSetNumber = .text:0x800B4810; // type:label scope:global data:4byte +__OSEVEnd = .text:0x800B4840; // type:label scope:global +OSDefaultExceptionHandler = .text:0x800B4844; // type:function size:0x58 scope:global +__OSPSInit = .text:0x800B489C; // type:function size:0x38 scope:global +__OSGetDIConfig = .text:0x800B48D4; // type:function size:0x14 +OSInitAlarm = .text:0x800B48E8; // type:function size:0x4C scope:global +OSCreateAlarm = .text:0x800B4934; // type:function size:0xC scope:global +InsertAlarm = .text:0x800B4940; // type:function size:0x250 scope:local +OSSetAlarm = .text:0x800B4B90; // type:function size:0x68 scope:global +OSCancelAlarm = .text:0x800B4BF8; // type:function size:0x11C +DecrementerExceptionCallback = .text:0x800B4D14; // type:function size:0x230 scope:local +DecrementerExceptionHandler = .text:0x800B4F44; // type:function size:0x50 scope:local +DLInsert = .text:0x800B4F94; // type:function size:0xAC scope:local +OSAllocFromHeap = .text:0x800B5040; // type:function size:0xFC +OSAllocFixed = .text:0x800B513C; // type:function size:0x284 +OSFreeToHeap = .text:0x800B53C0; // type:function size:0x7C +OSSetCurrentHeap = .text:0x800B543C; // type:function size:0x10 +OSInitAlloc = .text:0x800B544C; // type:function size:0x70 +OSCreateHeap = .text:0x800B54BC; // type:function size:0x6C +OSCheckHeap = .text:0x800B5528; // type:function size:0x360 +OSDumpHeap = .text:0x800B5888; // type:function size:0x104 +OSGetArenaHi = .text:0x800B598C; // type:function size:0x8 scope:global +OSGetArenaLo = .text:0x800B5994; // type:function size:0x8 scope:global +OSSetArenaHi = .text:0x800B599C; // type:function size:0x8 scope:global +OSSetArenaLo = .text:0x800B59A4; // type:function size:0x8 scope:global +__OSInitAudioSystem = .text:0x800B59AC; // type:function size:0x1BC scope:global +__OSStopAudioSystem = .text:0x800B5B68; // type:function size:0xD8 scope:global +DCEnable = .text:0x800B5C40; // type:function size:0x14 scope:global +DCInvalidateRange = .text:0x800B5C54; // type:function size:0x30 scope:global +DCFlushRange = .text:0x800B5C84; // type:function size:0x34 scope:global +DCStoreRange = .text:0x800B5CB8; // type:function size:0x34 +DCFlushRangeNoSync = .text:0x800B5CEC; // type:function size:0x30 scope:global +DCStoreRangeNoSync = .text:0x800B5D1C; // type:function size:0x30 +DCZeroRange = .text:0x800B5D4C; // type:function size:0x30 +ICInvalidateRange = .text:0x800B5D7C; // type:function size:0x38 scope:global +ICFlashInvalidate = .text:0x800B5DB4; // type:function size:0x10 scope:global +ICEnable = .text:0x800B5DC4; // type:function size:0x14 scope:global +__LCEnable = .text:0x800B5DD8; // type:function size:0xCC scope:local +LCEnable = .text:0x800B5EA4; // type:function size:0x38 +LCDisable = .text:0x800B5EDC; // type:function size:0x28 scope:global +LCStoreBlocks = .text:0x800B5F04; // type:function size:0x24 +LCStoreData = .text:0x800B5F28; // type:function size:0xAC +LCQueueWait = .text:0x800B5FD4; // type:function size:0x18 +L2GlobalInvalidate = .text:0x800B5FEC; // type:function size:0x98 scope:global +DMAErrorHandler = .text:0x800B6084; // type:function size:0x160 scope:global +__OSCacheInit = .text:0x800B61E4; // type:function size:0xF4 scope:global +__OSLoadFPUContext = .text:0x800B62D8; // type:function size:0x124 scope:local +__OSSaveFPUContext = .text:0x800B63FC; // type:function size:0x128 scope:local +OSSetCurrentContext = .text:0x800B6524; // type:function size:0x5C scope:global +OSGetCurrentContext = .text:0x800B6580; // type:function size:0xC +OSSaveContext = .text:0x800B658C; // type:function size:0x80 +OSLoadContext = .text:0x800B660C; // type:function size:0xD8 scope:global +OSClearContext = .text:0x800B66E4; // type:function size:0x24 scope:global +OSInitContext = .text:0x800B6708; // type:function size:0xBC +OSDumpContext = .text:0x800B67C4; // type:function size:0x2A8 scope:global +OSSwitchFPUContext = .text:0x800B6A6C; // type:function size:0x84 scope:local +__OSContextInit = .text:0x800B6AF0; // type:function size:0x48 scope:global +OSReport = .text:0x800B6B38; // type:function size:0x80 scope:global +OSSetErrorHandler = .text:0x800B6BB8; // type:function size:0x1C scope:global +__OSUnhandledException = .text:0x800B6BD4; // type:function size:0x200 scope:global +OSGetFontEncode = .text:0x800B6DD4; // type:function size:0x58 +OSDisableInterrupts = .text:0x800B6E2C; // type:function size:0x14 scope:global +__RAS_OSDisableInterrupts_begin = .text:0x800B6E2C; // type:label scope:global +__RAS_OSDisableInterrupts_end = .text:0x800B6E3C; // type:label scope:global +OSEnableInterrupts = .text:0x800B6E40; // type:function size:0x14 scope:global +OSRestoreInterrupts = .text:0x800B6E54; // type:function size:0x24 scope:global +__OSSetInterruptHandler = .text:0x800B6E78; // type:function size:0x1C scope:global +__OSGetInterruptHandler = .text:0x800B6E94; // type:function size:0x14 +__OSInterruptInit = .text:0x800B6EA8; // type:function size:0x74 scope:global +SetInterruptMask = .text:0x800B6F1C; // type:function size:0x2D8 scope:local +__OSMaskInterrupts = .text:0x800B71F4; // type:function size:0x88 scope:global +__OSUnmaskInterrupts = .text:0x800B727C; // type:function size:0x88 scope:global +__OSDispatchInterrupt = .text:0x800B7304; // type:function size:0x344 +ExternalInterruptHandler = .text:0x800B7648; // type:function size:0x50 scope:local +OSNotifyLink = .text:0x800B7698; // type:function size:0x4 scope:weak +OSNotifyUnlink = .text:0x800B769C; // type:function size:0x4 scope:weak +Relocate = .text:0x800B76A0; // type:function size:0x274 scope:local +OSLink = .text:0x800B7914; // type:function size:0x250 +Undo = .text:0x800B7B64; // type:function size:0x20C scope:local +OSUnlink = .text:0x800B7D70; // type:function size:0x94 +__OSModuleInit = .text:0x800B7E04; // type:function size:0x18 scope:global +OSInitMessageQueue = .text:0x800B7E1C; // type:function size:0x60 +OSGetPhysicalMemSize = .text:0x800B7E7C; // type:function size:0xC +OSGetConsoleSimulatedMemSize = .text:0x800B7E88; // type:function size:0xC +OnReset = .text:0x800B7E94; // type:function size:0x3C scope:local +MEMIntrruptHandler = .text:0x800B7ED0; // type:function size:0x6C scope:local +Config24MB = .text:0x800B7F3C; // type:function size:0x80 scope:local +Config48MB = .text:0x800B7FBC; // type:function size:0x80 scope:local +RealMode = .text:0x800B803C; // type:function size:0x18 scope:local +__OSInitMemoryProtection = .text:0x800B8054; // type:function size:0x120 scope:global +__OSUnlockAllMutex = .text:0x800B8174; // type:function size:0x70 +Run = .text:0x800B81E4; // type:function size:0x40 scope:local +Callback = .text:0x800B8224; // type:function size:0xC scope:local +__OSReboot = .text:0x800B8230; // type:function size:0x1C0 scope:global +OSRegisterResetFunction = .text:0x800B83F0; // type:function size:0x84 scope:global +Reset = .text:0x800B8474; // type:function size:0x70 scope:local +__OSDoHotReset = .text:0x800B84E4; // type:function size:0x48 +OSResetSystem = .text:0x800B852C; // type:function size:0x278 scope:global +OSGetResetCode = .text:0x800B87A4; // type:function size:0x30 scope:global +__OSResetSWInterruptHandler = .text:0x800B87D4; // type:function size:0xF4 scope:global +OSGetResetButtonState = .text:0x800B88C8; // type:function size:0x298 +WriteSramCallback = .text:0x800B8B60; // type:function size:0x60 scope:local +WriteSram = .text:0x800B8BC0; // type:function size:0x118 scope:local +__OSInitSram = .text:0x800B8CD8; // type:function size:0x134 scope:global +__OSLockSram = .text:0x800B8E0C; // type:function size:0x5C scope:global +__OSLockSramEx = .text:0x800B8E68; // type:function size:0x5C scope:global +UnlockSram = .text:0x800B8EC4; // type:function size:0x308 scope:local +__OSUnlockSram = .text:0x800B91CC; // type:function size:0x24 scope:global +__OSUnlockSramEx = .text:0x800B91F0; // type:function size:0x24 scope:global +__OSSyncSram = .text:0x800B9214; // type:function size:0x10 scope:global +OSGetSoundMode = .text:0x800B9224; // type:function size:0x80 +OSSetSoundMode = .text:0x800B92A4; // type:function size:0xA4 +OSGetProgressiveMode = .text:0x800B9348; // type:function size:0x70 +OSSetProgressiveMode = .text:0x800B93B8; // type:function size:0xA4 +OSGetWirelessID = .text:0x800B945C; // type:function size:0x84 +OSSetWirelessID = .text:0x800B94E0; // type:function size:0xAC +OSInitStopwatch = .text:0x800B958C; // type:function size:0x2C +OSStartStopwatch = .text:0x800B95B8; // type:function size:0x3C +OSStopStopwatch = .text:0x800B95F4; // type:function size:0xCC +OSCheckStopwatch = .text:0x800B96C0; // type:function size:0x70 +OSResetStopwatch = .text:0x800B9730; // type:function size:0x28 +OSDumpStopwatch = .text:0x800B9758; // type:function size:0x1A4 +__OSSystemCallVectorStart = .text:0x800B98FC; // type:label scope:global +SystemCallVector = .text:0x800B98FC; // type:function size:0x20 scope:local +__OSSystemCallVectorEnd = .text:0x800B9918; // type:label scope:global +__OSInitSystemCall = .text:0x800B991C; // type:function size:0x64 scope:global +__OSThreadInit = .text:0x800B9980; // type:function size:0x128 scope:global +OSInitThreadQueue = .text:0x800B9AA8; // type:function size:0x10 scope:global +OSGetCurrentThread = .text:0x800B9AB8; // type:function size:0xC +OSDisableScheduler = .text:0x800B9AC4; // type:function size:0x40 scope:global +OSEnableScheduler = .text:0x800B9B04; // type:function size:0x40 scope:global +UnsetRun = .text:0x800B9B44; // type:function size:0x68 scope:local +__OSGetEffectivePriority = .text:0x800B9BAC; // type:function size:0x3C +SetEffectivePriority = .text:0x800B9BE8; // type:function size:0x1C0 scope:local +SelectThread = .text:0x800B9DA8; // type:function size:0x200 scope:local +__OSReschedule = .text:0x800B9FA8; // type:function size:0x30 scope:global +OSYieldThread = .text:0x800B9FD8; // type:function size:0x3C +OSCreateThread = .text:0x800BA014; // type:function size:0x120 +OSExitThread = .text:0x800BA134; // type:function size:0xE4 +OSCancelThread = .text:0x800BA218; // type:function size:0x1BC scope:global +OSResumeThread = .text:0x800BA3D4; // type:function size:0x288 +OSSuspendThread = .text:0x800BA65C; // type:function size:0x170 +OSSleepThread = .text:0x800BA7CC; // type:function size:0xEC +OSWakeupThread = .text:0x800BA8B8; // type:function size:0x104 +OSSetIdleFunction = .text:0x800BA9BC; // type:function size:0x90 +OSGetTime = .text:0x800BAA4C; // type:function size:0x18 scope:global +OSGetTick = .text:0x800BAA64; // type:function size:0x8 scope:global +__OSGetSystemTime = .text:0x800BAA6C; // type:function size:0x64 scope:global +GetDates = .text:0x800BAAD0; // type:function size:0x19C scope:local +OSTicksToCalendarTime = .text:0x800BAC6C; // type:function size:0x204 +__init_user = .text:0x800BAE70; // type:function size:0x20 scope:global +__init_cpp = .text:0x800BAE90; // type:function size:0x54 scope:local +_ExitProcess = .text:0x800BAEE4; // type:function size:0x20 scope:global +DBInit = .text:0x800BAF04; // type:function size:0x28 scope:global +__DBExceptionDestinationAux = .text:0x800BAF2C; // type:function size:0x48 +__DBExceptionDestination = .text:0x800BAF74; // type:function size:0x10 scope:local +__DBIsExceptionMarked = .text:0x800BAF84; // type:function size:0x1C scope:global +DBPrintf = .text:0x800BAFA0; // type:function size:0x50 scope:global +PSMTXIdentity = .text:0x800BAFF0; // type:function size:0x2C +PSMTXCopy = .text:0x800BB01C; // type:function size:0x34 +PSMTXConcat = .text:0x800BB050; // type:function size:0xCC +PSMTXTranspose = .text:0x800BB11C; // type:function size:0x50 +PSMTXInverse = .text:0x800BB16C; // type:function size:0xF8 +PSMTXInvXpose = .text:0x800BB264; // type:function size:0xC8 +PSMTXRotRad = .text:0x800BB32C; // type:function size:0x70 +PSMTXRotTrig = .text:0x800BB39C; // type:function size:0xA8 +PSMTXRotAxisRad = .text:0x800BB444; // type:function size:0x104 +PSMTXTrans = .text:0x800BB548; // type:function size:0x34 +PSMTXScale = .text:0x800BB57C; // type:function size:0x28 +PSMTXQuat = .text:0x800BB5A4; // type:function size:0xA4 +C_MTXLookAt = .text:0x800BB648; // type:function size:0x18C +C_MTXLightPerspective = .text:0x800BB7D4; // type:function size:0xCC +PSMTXMultVec = .text:0x800BB8A0; // type:function size:0x54 +PSMTXMultVecArray = .text:0x800BB8F4; // type:function size:0x8C +PSMTXMultVecSR = .text:0x800BB980; // type:function size:0x54 +C_MTXPerspective = .text:0x800BB9D4; // type:function size:0xD0 +C_MTXOrtho = .text:0x800BBAA4; // type:function size:0x98 +PSVECAdd = .text:0x800BBB3C; // type:function size:0x24 +PSVECSubtract = .text:0x800BBB60; // type:function size:0x24 +PSVECScale = .text:0x800BBB84; // type:function size:0x1C +PSVECNormalize = .text:0x800BBBA0; // type:function size:0x44 +PSVECSquareMag = .text:0x800BBBE4; // type:function size:0x18 +PSVECMag = .text:0x800BBBFC; // type:function size:0x3C +PSVECDotProduct = .text:0x800BBC38; // type:function size:0x20 +PSVECCrossProduct = .text:0x800BBC58; // type:function size:0x3C +C_VECHalfAngle = .text:0x800BBC94; // type:function size:0xD8 +C_VECReflect = .text:0x800BBD6C; // type:function size:0xD4 +PSVECSquareDistance = .text:0x800BBE40; // type:function size:0x28 +PSVECDistance = .text:0x800BBE68; // type:function size:0x4C +C_QUATAdd = .text:0x800BBEB4; // type:function size:0x44 +PSQUATAdd = .text:0x800BBEF8; // type:function size:0x24 +PSQUATMultiply = .text:0x800BBF1C; // type:function size:0x5C +PSQUATNormalize = .text:0x800BBF78; // type:function size:0x54 +PSQUATInverse = .text:0x800BBFCC; // type:function size:0x50 +C_QUATRotAxisRad = .text:0x800BC01C; // type:function size:0x8C +C_QUATMtx = .text:0x800BC0A8; // type:function size:0x258 +C_QUATSlerp = .text:0x800BC300; // type:function size:0x174 +PSMTXReorder = .text:0x800BC474; // type:function size:0x4C +PSMTXROMultVecArray = .text:0x800BC4C0; // type:function size:0x118 +__DVDInitWA = .text:0x800BC5D8; // type:function size:0x40 scope:global +__DVDInterruptHandler = .text:0x800BC618; // type:function size:0x2F4 scope:global +fn_800BC90C = .text:0x800BC90C; // type:function size:0x84 +AlarmHandlerForTimeout = .text:0x800BC990; // type:function size:0x70 scope:local +Read = .text:0x800BCA00; // type:function size:0x110 scope:local +SeekTwiceBeforeRead = .text:0x800BCB10; // type:function size:0x80 scope:local +DVDLowRead = .text:0x800BCB90; // type:function size:0x298 +DVDLowSeek = .text:0x800BCE28; // type:function size:0x94 +DVDLowWaitCoverClose = .text:0x800BCEBC; // type:function size:0x2C scope:global +DVDLowReadDiskID = .text:0x800BCEE8; // type:function size:0xA4 +DVDLowStopMotor = .text:0x800BCF8C; // type:function size:0x8C scope:global +DVDLowRequestError = .text:0x800BD018; // type:function size:0x8C +DVDLowInquiry = .text:0x800BD0A4; // type:function size:0x9C +DVDLowAudioStream = .text:0x800BD140; // type:function size:0x98 +DVDLowRequestAudioStatus = .text:0x800BD1D8; // type:function size:0x8C +DVDLowAudioBufferConfig = .text:0x800BD264; // type:function size:0x9C +DVDLowReset = .text:0x800BD300; // type:function size:0xBC scope:global +DVDLowBreak = .text:0x800BD3BC; // type:function size:0x14 +DVDLowClearCallback = .text:0x800BD3D0; // type:function size:0x18 +__DVDLowSetWAType = .text:0x800BD3E8; // type:function size:0x44 scope:global +__DVDFSInit = .text:0x800BD42C; // type:function size:0x38 scope:global +DVDConvertPathToEntrynum = .text:0x800BD464; // type:function size:0x2F4 +DVDFastOpen = .text:0x800BD758; // type:function size:0x74 +DVDOpen = .text:0x800BD7CC; // type:function size:0xC8 +DVDClose = .text:0x800BD894; // type:function size:0x24 +entryToPath = .text:0x800BD8B8; // type:function size:0x160 scope:local +DVDGetCurrentDir = .text:0x800BDA18; // type:function size:0xC4 +DVDReadAsyncPrio = .text:0x800BDADC; // type:function size:0xC0 +cbForReadAsync = .text:0x800BDB9C; // type:function size:0x30 scope:local +DVDReadPrio = .text:0x800BDBCC; // type:function size:0x118 +cbForReadSync = .text:0x800BDCE4; // type:function size:0x24 scope:local +DVDInit = .text:0x800BDD08; // type:function size:0xFC scope:global +stateReadingFST = .text:0x800BDE04; // type:function size:0x54 scope:local +cbForStateReadingFST = .text:0x800BDE58; // type:function size:0x80 scope:local +cbForStateError = .text:0x800BDED8; // type:function size:0xA8 scope:local +stateTimeout = .text:0x800BDF80; // type:function size:0x9C scope:local +stateGettingError = .text:0x800BE01C; // type:function size:0x28 scope:local +CategorizeError = .text:0x800BE044; // type:function size:0xB4 scope:local +cbForStateGettingError = .text:0x800BE0F8; // type:function size:0x294 scope:local +cbForUnrecoveredError = .text:0x800BE38C; // type:function size:0x68 scope:local +cbForUnrecoveredErrorRetry = .text:0x800BE3F4; // type:function size:0x98 scope:local +stateGoToRetry = .text:0x800BE48C; // type:function size:0x28 scope:local +cbForStateGoToRetry = .text:0x800BE4B4; // type:function size:0x158 scope:local +stateCheckID = .text:0x800BE60C; // type:function size:0xE4 scope:local +stateCheckID3 = .text:0x800BE6F0; // type:function size:0x34 scope:local +stateCheckID2 = .text:0x800BE724; // type:function size:0x38 scope:local +cbForStateCheckID1 = .text:0x800BE75C; // type:function size:0x114 scope:local +cbForStateCheckID2 = .text:0x800BE870; // type:function size:0xA4 scope:local +cbForStateCheckID3 = .text:0x800BE914; // type:function size:0xFC scope:local +AlarmHandler = .text:0x800BEA10; // type:function size:0x44 scope:local +stateCoverClosed = .text:0x800BEA54; // type:function size:0xCC scope:local +stateCoverClosed_CMD = .text:0x800BEB20; // type:function size:0x30 scope:local +cbForStateCoverClosed = .text:0x800BEB50; // type:function size:0x70 scope:local +stateMotorStopped = .text:0x800BEBC0; // type:function size:0x28 scope:local +cbForStateMotorStopped = .text:0x800BEBE8; // type:function size:0xE4 scope:local +stateReady = .text:0x800BECCC; // type:function size:0x248 scope:local +stateBusy = .text:0x800BEF14; // type:function size:0x2C0 scope:local +cbForStateBusy = .text:0x800BF1D4; // type:function size:0x5D4 +DVDReadAbsAsyncPrio = .text:0x800BF7A8; // type:function size:0xDC +DVDReadAbsAsyncForBS = .text:0x800BF884; // type:function size:0xD0 +DVDReadDiskID = .text:0x800BF954; // type:function size:0xD4 scope:global +DVDInquiryAsync = .text:0x800BFA28; // type:function size:0xD0 scope:global +DVDReset = .text:0x800BFAF8; // type:function size:0x44 scope:global +DVDGetCommandBlockStatus = .text:0x800BFB3C; // type:function size:0x4C +DVDGetDriveStatus = .text:0x800BFB88; // type:function size:0xAC scope:global +DVDSetAutoInvalidation = .text:0x800BFC34; // type:function size:0x10 +DVDCancelAsync = .text:0x800BFC44; // type:function size:0x270 +DVDCancel = .text:0x800BFEB4; // type:function size:0xAC +cbForCancelSync = .text:0x800BFF60; // type:function size:0x24 scope:local +DVDGetCurrentDiskID = .text:0x800BFF84; // type:function size:0x8 +DVDCheckDisk = .text:0x800BFF8C; // type:function size:0xE4 +__DVDPrepareResetAsync = .text:0x800C0070; // type:function size:0x11C +__DVDClearWaitingQueue = .text:0x800C018C; // type:function size:0x38 scope:global +__DVDPushWaitingQueue = .text:0x800C01C4; // type:function size:0x68 scope:global +__DVDPopWaitingQueue = .text:0x800C022C; // type:function size:0xA0 scope:global +__DVDCheckWaitingQueue = .text:0x800C02CC; // type:function size:0x58 scope:global +__DVDDequeueWaitingQueue = .text:0x800C0324; // type:function size:0x60 +ErrorCode2Num = .text:0x800C0384; // type:function size:0x11C scope:local +__DVDStoreErrorCode = .text:0x800C04A0; // type:function size:0x7C scope:global +cb = .text:0x800C051C; // type:function size:0xD8 scope:local +__fstLoad = .text:0x800C05F4; // type:function size:0x168 scope:global +__VIRetraceHandler = .text:0x800C075C; // type:function size:0x228 scope:local +VISetPreRetraceCallback = .text:0x800C0984; // type:function size:0x44 +VISetPostRetraceCallback = .text:0x800C09C8; // type:function size:0x44 +getTiming = .text:0x800C0A0C; // type:function size:0x90 scope:local +__VIInit = .text:0x800C0A9C; // type:function size:0x1F8 +VIInit = .text:0x800C0C94; // type:function size:0x478 +VIWaitForRetrace = .text:0x800C110C; // type:function size:0x54 +setFbbRegs = .text:0x800C1160; // type:function size:0x2D4 scope:local +setVerticalRegs = .text:0x800C1434; // type:function size:0x1A0 scope:local +VIConfigure = .text:0x800C15D4; // type:function size:0x79C +VIConfigurePan = .text:0x800C1D70; // type:function size:0x394 +VIFlush = .text:0x800C2104; // type:function size:0x11C +VISetNextFrameBuffer = .text:0x800C2220; // type:function size:0x6C +VISetBlack = .text:0x800C228C; // type:function size:0x7C +VIGetRetraceCount = .text:0x800C2308; // type:function size:0x8 +getCurrentFieldEvenOdd = .text:0x800C2310; // type:function size:0x68 scope:local +VIGetNextField = .text:0x800C2378; // type:function size:0xA8 +VIGetCurrentLine = .text:0x800C2420; // type:function size:0x98 +VIGetTvFormat = .text:0x800C24B8; // type:function size:0x7C scope:global +VIGetDTVStatus = .text:0x800C2534; // type:function size:0x3C +DEMOGetRenderModeObj = .text:0x800C2570; // type:function size:0x8 +DEMOInitCaption = .text:0x800C2578; // type:function size:0x228 +DEMOPuts = .text:0x800C27A0; // type:function size:0x310 +DEMOPrintf = .text:0x800C2AB0; // type:function size:0xC4 +DEMOWriteStats = .text:0x800C2B74; // type:function size:0x394 +DEMOUpdateStats = .text:0x800C2F08; // type:function size:0x58 +DEMOPrintStats = .text:0x800C2F60; // type:function size:0x96C +ClampStick = .text:0x800C38CC; // type:function size:0x130 scope:local +PADClamp = .text:0x800C39FC; // type:function size:0x108 +UpdateOrigin = .text:0x800C3B04; // type:function size:0x1A4 scope:local +PADOriginCallback = .text:0x800C3CA8; // type:function size:0xC4 scope:local +PADOriginUpdateCallback = .text:0x800C3D6C; // type:function size:0xC0 scope:local +PADProbeCallback = .text:0x800C3E2C; // type:function size:0xD8 scope:local +PADTypeAndStatusCallback = .text:0x800C3F04; // type:function size:0x32C scope:local +PADReceiveCheckCallback = .text:0x800C4230; // type:function size:0x134 scope:local +PADReset = .text:0x800C4364; // type:function size:0x100 +PADRecalibrate = .text:0x800C4464; // type:function size:0x104 +PADInit = .text:0x800C4568; // type:function size:0x210 +PADRead = .text:0x800C4778; // type:function size:0x3AC +PADControlMotor = .text:0x800C4B24; // type:function size:0xA4 +PADSetSpec = .text:0x800C4BC8; // type:function size:0x60 +SPEC0_MakeStatus = .text:0x800C4C28; // type:function size:0x174 scope:local +SPEC1_MakeStatus = .text:0x800C4D9C; // type:function size:0x174 scope:local +SPEC2_MakeStatus = .text:0x800C4F10; // type:function size:0x3F8 scope:local +fn_800C5308 = .text:0x800C5308; // type:function size:0x194 scope:local +SamplingHandler = .text:0x800C549C; // type:function size:0x60 scope:local +PADSetSamplingCallback = .text:0x800C54FC; // type:function size:0x54 +__PADDisableRecalibration = .text:0x800C5550; // type:function size:0x7C scope:global +AIRegisterDMACallback = .text:0x800C55CC; // type:function size:0x44 +AIInitDMA = .text:0x800C5610; // type:function size:0x88 +AIStartDMA = .text:0x800C5698; // type:function size:0x18 +AIStopDMA = .text:0x800C56B0; // type:function size:0x18 +AIGetDMAStartAddr = .text:0x800C56C8; // type:function size:0x1C +AISetStreamPlayState = .text:0x800C56E4; // type:function size:0xD8 +AIGetStreamPlayState = .text:0x800C57BC; // type:function size:0x10 +AISetDSPSampleRate = .text:0x800C57CC; // type:function size:0xE0 +AIGetDSPSampleRate = .text:0x800C58AC; // type:function size:0x14 +__AI_set_stream_sample_rate = .text:0x800C58C0; // type:function size:0xD4 scope:local +AIGetStreamSampleRate = .text:0x800C5994; // type:function size:0x10 +AISetStreamVolLeft = .text:0x800C59A4; // type:function size:0x1C +AIGetStreamVolLeft = .text:0x800C59C0; // type:function size:0x10 +AISetStreamVolRight = .text:0x800C59D0; // type:function size:0x1C +AIGetStreamVolRight = .text:0x800C59EC; // type:function size:0x10 +AIInit = .text:0x800C59FC; // type:function size:0x164 +__AISHandler = .text:0x800C5B60; // type:function size:0x7C +__AIDHandler = .text:0x800C5BDC; // type:function size:0x90 +__AICallbackStackSwitch = .text:0x800C5C6C; // type:function size:0x58 +__AI_SRC_INIT = .text:0x800C5CC4; // type:function size:0x1E4 +ARRegisterDMACallback = .text:0x800C5EA8; // type:function size:0x44 +ARGetDMAStatus = .text:0x800C5EEC; // type:function size:0x3C +ARStartDMA = .text:0x800C5F28; // type:function size:0xF0 +ARAlloc = .text:0x800C6018; // type:function size:0x68 +ARFree = .text:0x800C6080; // type:function size:0x74 +ARCheckInit = .text:0x800C60F4; // type:function size:0x8 +ARInit = .text:0x800C60FC; // type:function size:0xBC +ARSetSize = .text:0x800C61B8; // type:function size:0x4 +ARGetBaseAddress = .text:0x800C61BC; // type:function size:0x8 +ARGetSize = .text:0x800C61C4; // type:function size:0x8 +__ARHandler = .text:0x800C61CC; // type:function size:0x78 scope:local +__ARChecksize = .text:0x800C6244; // type:function size:0x914 scope:local +__ARQServiceQueueLo = .text:0x800C6B58; // type:function size:0x100 +__ARQCallbackHack = .text:0x800C6C58; // type:function size:0x4 +__ARQInterruptServiceRoutine = .text:0x800C6C5C; // type:function size:0xCC +ARQInit = .text:0x800C6D28; // type:function size:0x68 +ARQPostRequest = .text:0x800C6D90; // type:function size:0x15C +DSPCheckMailToDSP = .text:0x800C6EEC; // type:function size:0x10 +DSPCheckMailFromDSP = .text:0x800C6EFC; // type:function size:0x10 +DSPReadMailFromDSP = .text:0x800C6F0C; // type:function size:0x18 +DSPSendMailToDSP = .text:0x800C6F24; // type:function size:0x14 +DSPInit = .text:0x800C6F38; // type:function size:0xB8 +DSPReset = .text:0x800C6FF0; // type:function size:0x48 +DSPHalt = .text:0x800C7038; // type:function size:0x40 +DSPGetDMAStatus = .text:0x800C7078; // type:function size:0x10 +DSPAddTask = .text:0x800C7088; // type:function size:0x70 +__DSP_debug_printf = .text:0x800C70F8; // type:function size:0x50 +__DSPHandler = .text:0x800C7148; // type:function size:0x424 +__DSP_exec_task = .text:0x800C756C; // type:function size:0x1A0 +__DSP_boot_task = .text:0x800C770C; // type:function size:0x18C +__DSP_insert_task = .text:0x800C7898; // type:function size:0xA0 +__DSP_remove_task = .text:0x800C7938; // type:function size:0x94 +__GXDefaultTexRegionCallback = .text:0x800C79CC; // type:function size:0x7C +__GXDefaultTlutRegionCallback = .text:0x800C7A48; // type:function size:0x24 +GXInit = .text:0x800C7A6C; // type:function size:0x7CC scope:global +__GXInitGX = .text:0x800C8238; // type:function size:0x884 scope:global +GXCPInterruptHandler = .text:0x800C8ABC; // type:function size:0x13C scope:local +GXInitFifoBase = .text:0x800C8BF8; // type:function size:0x6C scope:global +GXInitFifoPtrs = .text:0x800C8C64; // type:function size:0x70 +GXInitFifoLimits = .text:0x800C8CD4; // type:function size:0xC +GXSetCPUFifo = .text:0x800C8CE0; // type:function size:0x110 scope:global +GXSetGPFifo = .text:0x800C8DF0; // type:function size:0x178 scope:global +GXSaveCPUFifo = .text:0x800C8F68; // type:function size:0x20 +__GXSaveCPUFifoAux = .text:0x800C8F88; // type:function size:0xDC +__GXFifoInit = .text:0x800C9064; // type:function size:0x4C scope:global +__GXFifoReadEnable = .text:0x800C90B0; // type:function size:0x28 +__GXFifoReadDisable = .text:0x800C90D8; // type:function size:0x24 +__GXFifoLink = .text:0x800C90FC; // type:function size:0x44 +__GXWriteFifoIntEnable = .text:0x800C9140; // type:function size:0x4C +__GXWriteFifoIntReset = .text:0x800C918C; // type:function size:0x4C +__GXCleanGPFifo = .text:0x800C91D8; // type:function size:0xFC +GXGetCPUFifo = .text:0x800C92D4; // type:function size:0x8 +GXGetGPFifo = .text:0x800C92DC; // type:function size:0x8 +__GXXfVtxSpecs = .text:0x800C92E4; // type:function size:0x158 +GXSetVtxDesc = .text:0x800C943C; // type:function size:0x360 +__GXSetVCD = .text:0x800C979C; // type:function size:0x54 +__GXCalculateVLim = .text:0x800C97F0; // type:function size:0x124 +GXClearVtxDesc = .text:0x800C9914; // type:function size:0x4C +GXSetVtxAttrFmt = .text:0x800C9960; // type:function size:0x35C +__GXSetVAT = .text:0x800C9CBC; // type:function size:0x9C +GXSetArray = .text:0x800C9D58; // type:function size:0x8C +GXInvalidateVtxCache = .text:0x800C9DE4; // type:function size:0x10 +GXSetTexCoordGen2 = .text:0x800C9DF4; // type:function size:0x2D0 +GXSetNumTexGens = .text:0x800CA0C4; // type:function size:0x48 +GXSetMisc = .text:0x800CA10C; // type:function size:0x78 scope:global +GXFlush = .text:0x800CA184; // type:function size:0x5C +GXResetWriteGatherPipe = .text:0x800CA1E0; // type:function size:0x34 +__GXAbortWaitPECopyDone = .text:0x800CA214; // type:function size:0xCC +GXSetDrawSync = .text:0x800CA2E0; // type:function size:0xB8 +GXSetDrawDone = .text:0x800CA398; // type:function size:0x98 +GXWaitDrawDone = .text:0x800CA430; // type:function size:0x4C +GXDrawDone = .text:0x800CA47C; // type:function size:0x80 +GXPixModeSync = .text:0x800CA4FC; // type:function size:0x24 +GXPokeAlphaMode = .text:0x800CA520; // type:function size:0x14 +GXPokeAlphaRead = .text:0x800CA534; // type:function size:0x14 +GXPokeAlphaUpdate = .text:0x800CA548; // type:function size:0x1C +GXPokeBlendMode = .text:0x800CA564; // type:function size:0x88 +GXPokeColorUpdate = .text:0x800CA5EC; // type:function size:0x1C +GXPokeDstAlpha = .text:0x800CA608; // type:function size:0x14 +GXPokeDither = .text:0x800CA61C; // type:function size:0x1C +GXPokeZMode = .text:0x800CA638; // type:function size:0x28 +GXSetDrawSyncCallback = .text:0x800CA660; // type:function size:0x44 +GXTokenInterruptHandler = .text:0x800CA6A4; // type:function size:0x88 +GXFinishInterruptHandler = .text:0x800CA72C; // type:function size:0x84 +__GXPEInit = .text:0x800CA7B0; // type:function size:0x80 scope:global +__GXSetDirtyState = .text:0x800CA830; // type:function size:0xA0 +GXBegin = .text:0x800CA8D0; // type:function size:0xF0 +__GXSendFlushPrim = .text:0x800CA9C0; // type:function size:0x88 +GXSetLineWidth = .text:0x800CAA48; // type:function size:0x58 +GXSetPointSize = .text:0x800CAAA0; // type:function size:0x54 +GXEnableTexOffsets = .text:0x800CAAF4; // type:function size:0x64 +GXSetCullMode = .text:0x800CAB58; // type:function size:0x50 +GXSetCoPlanar = .text:0x800CABA8; // type:function size:0x44 +__GXSetGenMode = .text:0x800CABEC; // type:function size:0x24 +GXAdjustForOverscan = .text:0x800CAC10; // type:function size:0x120 +GXSetDispCopySrc = .text:0x800CAD30; // type:function size:0xC0 +GXSetTexCopySrc = .text:0x800CADF0; // type:function size:0xC0 +GXSetDispCopyDst = .text:0x800CAEB0; // type:function size:0x44 +GXSetTexCopyDst = .text:0x800CAEF4; // type:function size:0x170 +GXSetDispCopyFrame2Field = .text:0x800CB064; // type:function size:0x2C +GXSetCopyClamp = .text:0x800CB090; // type:function size:0x7C +GXSetDispCopyYScale = .text:0x800CB10C; // type:function size:0xD4 +GXSetCopyClear = .text:0x800CB1E0; // type:function size:0x68 +GXSetCopyFilter = .text:0x800CB248; // type:function size:0x228 +GXSetDispCopyGamma = .text:0x800CB470; // type:function size:0x1C +GXCopyDisp = .text:0x800CB48C; // type:function size:0x170 +GXCopyTex = .text:0x800CB5FC; // type:function size:0x190 +GXClearBoundingBox = .text:0x800CB78C; // type:function size:0x38 +GXInitLightAttn = .text:0x800CB7C4; // type:function size:0x1C +GXInitLightAttnK = .text:0x800CB7E0; // type:function size:0x10 +GXInitLightSpot = .text:0x800CB7F0; // type:function size:0x180 +GXInitLightDistAttn = .text:0x800CB970; // type:function size:0xD0 +GXInitLightPos = .text:0x800CBA40; // type:function size:0x10 +GXInitLightDir = .text:0x800CBA50; // type:function size:0x1C +GXInitSpecularDir = .text:0x800CBA6C; // type:function size:0xD4 +GXInitLightColor = .text:0x800CBB40; // type:function size:0x28 +GXLoadLightObjImm = .text:0x800CBB68; // type:function size:0x148 +GXSetChanAmbColor = .text:0x800CBCB0; // type:function size:0x168 +GXSetChanMatColor = .text:0x800CBE18; // type:function size:0x168 +GXSetNumChans = .text:0x800CBF80; // type:function size:0x4C +GXSetChanCtrl = .text:0x800CBFCC; // type:function size:0x1E4 +GXGetTexBufferSize = .text:0x800CC1B0; // type:function size:0x15C +__GetImageTileCount = .text:0x800CC30C; // type:function size:0xC8 +GXInitTexObj = .text:0x800CC3D4; // type:function size:0x274 +GXInitTexObjCI = .text:0x800CC648; // type:function size:0x48 +GXInitTexObjLOD = .text:0x800CC690; // type:function size:0x194 +GXGetTexObjFmt = .text:0x800CC824; // type:function size:0x8 +GXLoadTexObjPreLoaded = .text:0x800CC82C; // type:function size:0x1A8 +GXLoadTexObj = .text:0x800CC9D4; // type:function size:0x54 +GXInitTlutObj = .text:0x800CCA28; // type:function size:0x48 +GXLoadTlut = .text:0x800CCA70; // type:function size:0x9C +GXInitTexCacheRegion = .text:0x800CCB0C; // type:function size:0x120 scope:global +GXInitTlutRegion = .text:0x800CCC2C; // type:function size:0x48 scope:global +GXInvalidateTexAll = .text:0x800CCC74; // type:function size:0x48 +GXSetTexRegionCallback = .text:0x800CCCBC; // type:function size:0x14 +GXSetTlutRegionCallback = .text:0x800CCCD0; // type:function size:0x14 +GXSetTexCoordScaleManually = .text:0x800CCCE4; // type:function size:0x9C +__SetSURegs = .text:0x800CCD80; // type:function size:0xCC scope:local +__GXSetSUTexRegs = .text:0x800CCE4C; // type:function size:0x17C +__GXSetTmemConfig = .text:0x800CCFC8; // type:function size:0x240 scope:global +GXSetTevIndirect = .text:0x800CD208; // type:function size:0x9C +GXSetIndTexMtx = .text:0x800CD2A4; // type:function size:0x160 +GXSetIndTexCoordScale = .text:0x800CD404; // type:function size:0x1D4 +GXSetIndTexOrder = .text:0x800CD5D8; // type:function size:0x138 +GXSetNumIndStages = .text:0x800CD710; // type:function size:0x2C +GXSetTevDirect = .text:0x800CD73C; // type:function size:0x48 +GXSetTevIndWarp = .text:0x800CD784; // type:function size:0x64 +GXSetTevIndTile = .text:0x800CD7E8; // type:function size:0x1AC +__GXUpdateBPMask = .text:0x800CD994; // type:function size:0xCC +__GXFlushTextureState = .text:0x800CDA60; // type:function size:0x24 scope:global +GXSetTevOp = .text:0x800CDA84; // type:function size:0x1A4 +GXSetTevColorIn = .text:0x800CDC28; // type:function size:0x80 +GXSetTevAlphaIn = .text:0x800CDCA8; // type:function size:0x84 +GXSetTevColorOp = .text:0x800CDD2C; // type:function size:0xC0 +GXSetTevAlphaOp = .text:0x800CDDEC; // type:function size:0xC0 +GXSetTevColor = .text:0x800CDEAC; // type:function size:0x74 +GXSetTevColorS10 = .text:0x800CDF20; // type:function size:0x74 +GXSetTevKColor = .text:0x800CDF94; // type:function size:0x74 +GXSetTevKColorSel = .text:0x800CE008; // type:function size:0x6C +GXSetTevKAlphaSel = .text:0x800CE074; // type:function size:0x6C +GXSetTevSwapMode = .text:0x800CE0E0; // type:function size:0x58 +GXSetTevSwapModeTable = .text:0x800CE138; // type:function size:0xA0 +GXSetAlphaCompare = .text:0x800CE1D8; // type:function size:0x50 +GXSetZTexture = .text:0x800CE228; // type:function size:0x84 +GXSetTevOrder = .text:0x800CE2AC; // type:function size:0x1DC +GXSetNumTevStages = .text:0x800CE488; // type:function size:0x34 +GXSetFog = .text:0x800CE4BC; // type:function size:0x1B0 +GXSetFogRangeAdj = .text:0x800CE66C; // type:function size:0x100 +GXSetBlendMode = .text:0x800CE76C; // type:function size:0x104 +GXSetColorUpdate = .text:0x800CE870; // type:function size:0x40 +GXSetAlphaUpdate = .text:0x800CE8B0; // type:function size:0x40 +GXSetZMode = .text:0x800CE8F0; // type:function size:0x78 +GXSetZCompLoc = .text:0x800CE968; // type:function size:0x40 +GXSetPixelFmt = .text:0x800CE9A8; // type:function size:0x110 +GXSetDither = .text:0x800CEAB8; // type:function size:0x40 +GXSetDstAlpha = .text:0x800CEAF8; // type:function size:0x54 +GXSetFieldMask = .text:0x800CEB4C; // type:function size:0x38 +GXSetFieldMode = .text:0x800CEB84; // type:function size:0x80 +__GXSetRange = .text:0x800CEC04; // type:function size:0x4 +GXBeginDisplayList = .text:0x800CEC08; // type:function size:0xC8 +GXEndDisplayList = .text:0x800CECD0; // type:function size:0xD4 +GXCallDisplayList = .text:0x800CEDA4; // type:function size:0x70 +GXProject = .text:0x800CEE14; // type:function size:0x174 +GXSetProjection = .text:0x800CEF88; // type:function size:0xD4 +GXGetProjectionv = .text:0x800CF05C; // type:function size:0x78 +WriteMTXPS4x3 = .text:0x800CF0D4; // type:function size:0x34 scope:local +WriteMTXPS3x3from3x4 = .text:0x800CF108; // type:function size:0x34 scope:local +WriteMTXPS4x2 = .text:0x800CF13C; // type:function size:0x24 scope:local +GXLoadPosMtxImm = .text:0x800CF160; // type:function size:0x3C +GXLoadNrmMtxImm = .text:0x800CF19C; // type:function size:0x40 +GXSetCurrentMtx = .text:0x800CF1DC; // type:function size:0x3C +GXLoadTexMtxImm = .text:0x800CF218; // type:function size:0x84 +GXSetViewportJitter = .text:0x800CF29C; // type:function size:0x11C +GXSetViewport = .text:0x800CF3B8; // type:function size:0x24 +GXGetViewportv = .text:0x800CF3DC; // type:function size:0x4C +GXSetScissor = .text:0x800CF428; // type:function size:0xB0 +GXSetScissorBoxOffset = .text:0x800CF4D8; // type:function size:0x44 +GXSetClipMode = .text:0x800CF51C; // type:function size:0x28 +__GXSetMatrixIndex = .text:0x800CF544; // type:function size:0x84 +GXSetGPMetric = .text:0x800CF5C8; // type:function size:0x898 +GXReadGPMetric = .text:0x800CFE60; // type:function size:0x1A8 +GXClearGPMetric = .text:0x800D0008; // type:function size:0x10 +GXReadGP0Metric = .text:0x800D0018; // type:function size:0x2C +GXReadGP1Metric = .text:0x800D0044; // type:function size:0x2C +GXReadMemMetric = .text:0x800D0070; // type:function size:0x214 +GXClearMemMetric = .text:0x800D0284; // type:function size:0xA8 +GXReadPixMetric = .text:0x800D032C; // type:function size:0x138 +GXClearPixMetric = .text:0x800D0464; // type:function size:0x30 +GXSetVCacheMetric = .text:0x800D0494; // type:function size:0x50 +GXReadVCacheMetric = .text:0x800D04E4; // type:function size:0x94 +GXClearVCacheMetric = .text:0x800D0578; // type:function size:0x1C +__CARDDefaultApiCallback = .text:0x800D0594; // type:function size:0x4 +__CARDSyncCallback = .text:0x800D0598; // type:function size:0x34 +__CARDExtHandler = .text:0x800D05CC; // type:function size:0xD8 +__CARDExiHandler = .text:0x800D06A4; // type:function size:0x118 +__CARDTxHandler = .text:0x800D07BC; // type:function size:0xA8 +__CARDUnlockedHandler = .text:0x800D0864; // type:function size:0x84 +__CARDEnableInterrupt = .text:0x800D08E8; // type:function size:0xC0 +__CARDReadStatus = .text:0x800D09A8; // type:function size:0xF0 +__CARDClearStatus = .text:0x800D0A98; // type:function size:0xAC +TimeoutHandler = .text:0x800D0B44; // type:function size:0xA4 +Retry = .text:0x800D0BE8; // type:function size:0x22C scope:local +UnlockedCallback = .text:0x800D0E14; // type:function size:0x110 scope:local +__CARDStart = .text:0x800D0F24; // type:function size:0x1B4 scope:local +__CARDReadSegment = .text:0x800D10D8; // type:function size:0x134 +__CARDWritePage = .text:0x800D120C; // type:function size:0x11C +__CARDEraseSector = .text:0x800D1328; // type:function size:0xE0 +CARDInit = .text:0x800D1408; // type:function size:0x9C +__CARDSetDiskID = .text:0x800D14A4; // type:function size:0x38 +__CARDGetControlBlock = .text:0x800D14DC; // type:function size:0xB8 +__CARDPutControlBlock = .text:0x800D1594; // type:function size:0x64 +CARDFreeBlocks = .text:0x800D15F8; // type:function size:0x150 +CARDGetSectorSize = .text:0x800D1748; // type:function size:0x84 +__CARDSync = .text:0x800D17CC; // type:function size:0x98 +OnReset = .text:0x800D1864; // type:function size:0x50 scope:local +bitrev = .text:0x800D18B4; // type:function size:0x16C scope:local +ReadArrayUnlock = .text:0x800D1A20; // type:function size:0x144 scope:local +DummyLen = .text:0x800D1B64; // type:function size:0xC4 scope:local +__CARDUnlock = .text:0x800D1C28; // type:function size:0xB58 +InitCallback = .text:0x800D2780; // type:function size:0x70 scope:local +DoneCallback = .text:0x800D27F0; // type:function size:0x324 scope:local +BlockReadCallback = .text:0x800D2B14; // type:function size:0xDC scope:local +__CARDRead = .text:0x800D2BF0; // type:function size:0x64 +BlockWriteCallback = .text:0x800D2C54; // type:function size:0xDC scope:local +__CARDWrite = .text:0x800D2D30; // type:function size:0x64 +__CARDGetFatBlock = .text:0x800D2D94; // type:function size:0x8 +fn_800D2D9C = .text:0x800D2D9C; // type:function size:0xD4 scope:local +fn_800D2E70 = .text:0x800D2E70; // type:function size:0xC8 scope:local +__CARDAllocBlock = .text:0x800D2F38; // type:function size:0x118 +__CARDFreeBlock = .text:0x800D3050; // type:function size:0x9C +__CARDUpdateFatBlock = .text:0x800D30EC; // type:function size:0xAC +__CARDGetDirBlock = .text:0x800D3198; // type:function size:0x8 +fn_800D31A0 = .text:0x800D31A0; // type:function size:0xD0 scope:local +fn_800D3270 = .text:0x800D3270; // type:function size:0xC8 scope:local +__CARDUpdateDir = .text:0x800D3338; // type:function size:0xC4 +__CARDCheckSum = .text:0x800D33FC; // type:function size:0x1B0 +VerifyID = .text:0x800D35AC; // type:function size:0x284 scope:local +VerifyDir = .text:0x800D3830; // type:function size:0x240 scope:local +VerifyFAT = .text:0x800D3A70; // type:function size:0x284 scope:local +__CARDVerify = .text:0x800D3CF4; // type:function size:0x8C +CARDCheckExAsync = .text:0x800D3D80; // type:function size:0x590 +CARDCheck = .text:0x800D4310; // type:function size:0x54 +IsCard = .text:0x800D4364; // type:function size:0xCC scope:local +CARDProbeEx = .text:0x800D4430; // type:function size:0x17C +DoMount = .text:0x800D45AC; // type:function size:0x410 scope:local +__CARDMountCallback = .text:0x800D49BC; // type:function size:0x138 +CARDMountAsync = .text:0x800D4AF4; // type:function size:0x1A0 +CARDMount = .text:0x800D4C94; // type:function size:0x48 +DoUnmount = .text:0x800D4CDC; // type:function size:0x9C scope:local +CARDUnmount = .text:0x800D4D78; // type:function size:0xAC +FormatCallback = .text:0x800D4E24; // type:function size:0x144 scope:local +__CARDFormatRegionAsync = .text:0x800D4F68; // type:function size:0x658 +CARDFormat = .text:0x800D55C0; // type:function size:0x54 +__CARDCompareFileName = .text:0x800D5614; // type:function size:0x68 +__CARDAccess = .text:0x800D567C; // type:function size:0x98 +__CARDIsPublic = .text:0x800D5714; // type:function size:0x30 +__CARDGetFileNo = .text:0x800D5744; // type:function size:0x150 +CARDOpen = .text:0x800D5894; // type:function size:0x178 +CARDClose = .text:0x800D5A0C; // type:function size:0x54 +__CARDIsOpened = .text:0x800D5A60; // type:function size:0x8 +CreateCallbackFat = .text:0x800D5A68; // type:function size:0x130 scope:local +CARDCreateAsync = .text:0x800D5B98; // type:function size:0x220 +CARDCreate = .text:0x800D5DB8; // type:function size:0x48 +__CARDSeek = .text:0x800D5E00; // type:function size:0x1B8 +ReadCallback = .text:0x800D5FB8; // type:function size:0x130 scope:local +CARDReadAsync = .text:0x800D60E8; // type:function size:0x148 +CARDRead = .text:0x800D6230; // type:function size:0x48 +WriteCallback = .text:0x800D6278; // type:function size:0x170 scope:local +EraseCallback = .text:0x800D63E8; // type:function size:0xB0 scope:local +CARDWriteAsync = .text:0x800D6498; // type:function size:0x114 +CARDWrite = .text:0x800D65AC; // type:function size:0x48 +DeleteCallback = .text:0x800D65F4; // type:function size:0xA4 scope:local +CARDDeleteAsync = .text:0x800D6698; // type:function size:0x110 +CARDDelete = .text:0x800D67A8; // type:function size:0x48 +UpdateIconOffsets = .text:0x800D67F0; // type:function size:0x1F8 scope:local +CARDGetStatus = .text:0x800D69E8; // type:function size:0x12C +CARDSetStatusAsync = .text:0x800D6B14; // type:function size:0x174 +CARDSetStatus = .text:0x800D6C88; // type:function size:0x48 +CARDGetSerialNo = .text:0x800D6CD0; // type:function size:0xC4 +SetExiInterruptMask = .text:0x800D6D94; // type:function size:0xF4 scope:local +EXIImm = .text:0x800D6E88; // type:function size:0x25C scope:global +EXIImmEx = .text:0x800D70E4; // type:function size:0xA0 +EXIDma = .text:0x800D7184; // type:function size:0xEC scope:global +EXISync = .text:0x800D7270; // type:function size:0x238 scope:global +EXIClearInterrupts = .text:0x800D74A8; // type:function size:0x48 +EXISetExiCallback = .text:0x800D74F0; // type:function size:0x7C +__EXIProbe = .text:0x800D756C; // type:function size:0x174 scope:local +EXIProbe = .text:0x800D76E0; // type:function size:0x80 +EXIProbeEx = .text:0x800D7760; // type:function size:0xB4 +EXIAttach = .text:0x800D7814; // type:function size:0x10C +EXIDetach = .text:0x800D7920; // type:function size:0xBC +EXISelect = .text:0x800D79DC; // type:function size:0x12C scope:global +EXIDeselect = .text:0x800D7B08; // type:function size:0x110 scope:global +EXIIntrruptHandler = .text:0x800D7C18; // type:function size:0xC8 scope:local +TCIntrruptHandler = .text:0x800D7CE0; // type:function size:0x218 scope:local +EXTIntrruptHandler = .text:0x800D7EF8; // type:function size:0xD0 scope:local +EXIInit = .text:0x800D7FC8; // type:function size:0x114 scope:global +EXILock = .text:0x800D80DC; // type:function size:0xF4 scope:global +EXIUnlock = .text:0x800D81D0; // type:function size:0xDC scope:global +EXIGetState = .text:0x800D82AC; // type:function size:0x18 +UnlockedHandler = .text:0x800D82C4; // type:function size:0x28 scope:local +EXIGetID = .text:0x800D82EC; // type:function size:0x37C +InitializeUART = .text:0x800D8668; // type:function size:0x70 +WriteUARTN = .text:0x800D86D8; // type:function size:0x200 +SIBusy = .text:0x800D88D8; // type:function size:0x20 +SIIsChanBusy = .text:0x800D88F8; // type:function size:0x3C +CompleteTransfer = .text:0x800D8934; // type:function size:0x2FC +SIInterruptHandler = .text:0x800D8C30; // type:function size:0x344 scope:local +SIEnablePollingInterrupt = .text:0x800D8F74; // type:function size:0x98 +SIRegisterPollingHandler = .text:0x800D900C; // type:function size:0xCC +SIUnregisterPollingHandler = .text:0x800D90D8; // type:function size:0xF4 +SIInit = .text:0x800D91CC; // type:function size:0xA4 scope:global +__SITransfer = .text:0x800D9270; // type:function size:0x20C +SIGetStatus = .text:0x800D947C; // type:function size:0x7C +SISetCommand = .text:0x800D94F8; // type:function size:0x14 +SITransferCommands = .text:0x800D950C; // type:function size:0x10 +SISetXY = .text:0x800D951C; // type:function size:0x6C scope:global +SIEnablePolling = .text:0x800D9588; // type:function size:0x9C +SIDisablePolling = .text:0x800D9624; // type:function size:0x6C +SIGetResponseRaw = .text:0x800D9690; // type:function size:0xD4 +SIGetResponse = .text:0x800D9764; // type:function size:0xC4 +AlarmHandler = .text:0x800D9828; // type:function size:0x8C scope:local +SITransfer = .text:0x800D98B4; // type:function size:0x16C scope:global +GetTypeCallback = .text:0x800D9A20; // type:function size:0x298 scope:local +SIGetType = .text:0x800D9CB8; // type:function size:0x1C4 scope:global +SIGetTypeAsync = .text:0x800D9E7C; // type:function size:0x13C +SISetSamplingRate = .text:0x800D9FB8; // type:function size:0xE4 scope:global +SIRefreshSamplingRate = .text:0x800DA09C; // type:function size:0x24 +THPVideoDecode = .text:0x800DA0C0; // type:function size:0x244 +__THPSetupBuffers = .text:0x800DA304; // type:function size:0x44 scope:local +__THPReadFrameHeader = .text:0x800DA348; // type:function size:0x13C scope:local +__THPReadScaneHeader = .text:0x800DA484; // type:function size:0x11C scope:local +__THPReadQuantizationTable = .text:0x800DA5A0; // type:function size:0x3BC scope:local +__THPReadHuffmanTableSpecification = .text:0x800DA95C; // type:function size:0x1E0 scope:local +__THPHuffGenerateSizeTable = .text:0x800DAB3C; // type:function size:0xF0 scope:local +__THPHuffGenerateCodeTable = .text:0x800DAC2C; // type:function size:0x68 scope:local +__THPHuffGenerateDecoderTables = .text:0x800DAC94; // type:function size:0x1BC scope:local +__THPRestartDefinition = .text:0x800DAE50; // type:function size:0x54 scope:local +__THPPrepBitStream = .text:0x800DAEA4; // type:function size:0x24C scope:local +__THPDecompressYUV = .text:0x800DB0F0; // type:function size:0x10C scope:local +__THPDecompressiMCURow512x448 = .text:0x800DB1FC; // type:function size:0x1A88 scope:local +__THPDecompressiMCURow640x480 = .text:0x800DCC84; // type:function size:0x1A8C scope:local +__THPDecompressiMCURowNxN = .text:0x800DE710; // type:function size:0x1AAC scope:local +__THPHuffDecodeDCTCompY = .text:0x800E01BC; // type:function size:0x67C scope:local +__THPHuffDecodeDCTCompU = .text:0x800E0838; // type:function size:0x6A8 scope:local +__THPHuffDecodeDCTCompV = .text:0x800E0EE0; // type:function size:0x6A8 scope:local +THPInit = .text:0x800E1588; // type:function size:0x78 +THPAudioDecode = .text:0x800E1600; // type:function size:0x464 +__THPAudioGetNewSample = .text:0x800E1A64; // type:function size:0x90 +__THPAudioInitialize = .text:0x800E1AF4; // type:function size:0x3C +__va_arg = .text:0x800E1B30; // type:function size:0xC8 scope:global +__destroy_global_chain = .text:0x800E1BF8; // type:function size:0x48 scope:global +__register_global_object = .text:0x800E1C40; // type:function size:0x18 scope:global +__dl__FPv = .text:0x800E1C58; // type:function size:0x4C +__dt__Q23std9exceptionFv = .text:0x800E1CA4; // type:function size:0x48 +what__Q23std9exceptionCFv = .text:0x800E1CEC; // type:function size:0xC +__throw_catch_compare = .text:0x800E1CF8; // type:function size:0x22C +unexpected__3stdFv = .text:0x800E1F24; // type:function size:0x28 +terminate__3stdFv = .text:0x800E1F4C; // type:function size:0x28 +duhandler__3stdFv = .text:0x800E1F74; // type:function size:0x28 +dthandler__3stdFv = .text:0x800E1F9C; // type:function size:0x20 +__cvt_fp2unsigned = .text:0x800E1FBC; // type:function size:0x5C +__save_fpr = .text:0x800E2018; // type:function size:0x4C scope:global +_savefpr_14 = .text:0x800E2018; // type:label scope:global +_savefpr_15 = .text:0x800E201C; // type:label scope:global +_savefpr_16 = .text:0x800E2020; // type:label scope:global +_savefpr_17 = .text:0x800E2024; // type:label scope:global +_savefpr_18 = .text:0x800E2028; // type:label scope:global +_savefpr_19 = .text:0x800E202C; // type:label scope:global +_savefpr_20 = .text:0x800E2030; // type:label scope:global +_savefpr_21 = .text:0x800E2034; // type:label scope:global +_savefpr_22 = .text:0x800E2038; // type:label scope:global +_savefpr_23 = .text:0x800E203C; // type:label scope:global +_savefpr_24 = .text:0x800E2040; // type:label scope:global +_savefpr_25 = .text:0x800E2044; // type:label scope:global +_savefpr_26 = .text:0x800E2048; // type:label scope:global +_savefpr_27 = .text:0x800E204C; // type:label scope:global +_savefpr_28 = .text:0x800E2050; // type:label scope:global +_savefpr_29 = .text:0x800E2054; // type:label scope:global +_savefpr_30 = .text:0x800E2058; // type:label scope:global +_savefpr_31 = .text:0x800E205C; // type:label scope:global +__restore_fpr = .text:0x800E2064; // type:function size:0x4C scope:global +_restfpr_14 = .text:0x800E2064; // type:label scope:global +_restfpr_15 = .text:0x800E2068; // type:label scope:global +_restfpr_16 = .text:0x800E206C; // type:label scope:global +_restfpr_17 = .text:0x800E2070; // type:label scope:global +_restfpr_18 = .text:0x800E2074; // type:label scope:global +_restfpr_19 = .text:0x800E2078; // type:label scope:global +_restfpr_20 = .text:0x800E207C; // type:label scope:global +_restfpr_21 = .text:0x800E2080; // type:label scope:global +_restfpr_22 = .text:0x800E2084; // type:label scope:global +_restfpr_23 = .text:0x800E2088; // type:label scope:global +_restfpr_24 = .text:0x800E208C; // type:label scope:global +_restfpr_25 = .text:0x800E2090; // type:label scope:global +_restfpr_26 = .text:0x800E2094; // type:label scope:global +_restfpr_27 = .text:0x800E2098; // type:label scope:global +_restfpr_28 = .text:0x800E209C; // type:label scope:global +_restfpr_29 = .text:0x800E20A0; // type:label scope:global +_restfpr_30 = .text:0x800E20A4; // type:label scope:global +_restfpr_31 = .text:0x800E20A8; // type:label scope:global +__save_gpr = .text:0x800E20B0; // type:function size:0x4C scope:global +_savegpr_14 = .text:0x800E20B0; // type:label scope:global +_savegpr_15 = .text:0x800E20B4; // type:label scope:global +_savegpr_16 = .text:0x800E20B8; // type:label scope:global +_savegpr_17 = .text:0x800E20BC; // type:label scope:global +_savegpr_18 = .text:0x800E20C0; // type:label scope:global +_savegpr_19 = .text:0x800E20C4; // type:label scope:global +_savegpr_20 = .text:0x800E20C8; // type:label scope:global +_savegpr_21 = .text:0x800E20CC; // type:label scope:global +_savegpr_22 = .text:0x800E20D0; // type:label scope:global +_savegpr_23 = .text:0x800E20D4; // type:label scope:global +_savegpr_24 = .text:0x800E20D8; // type:label scope:global +_savegpr_25 = .text:0x800E20DC; // type:label scope:global +_savegpr_26 = .text:0x800E20E0; // type:label scope:global +_savegpr_27 = .text:0x800E20E4; // type:label scope:global +_savegpr_28 = .text:0x800E20E8; // type:label scope:global +_savegpr_29 = .text:0x800E20EC; // type:label scope:global +_savegpr_30 = .text:0x800E20F0; // type:label scope:global +_savegpr_31 = .text:0x800E20F4; // type:label scope:global +__restore_gpr = .text:0x800E20FC; // type:function size:0x4C scope:global +_restgpr_14 = .text:0x800E20FC; // type:label scope:global +_restgpr_15 = .text:0x800E2100; // type:label scope:global +_restgpr_16 = .text:0x800E2104; // type:label scope:global +_restgpr_17 = .text:0x800E2108; // type:label scope:global +_restgpr_18 = .text:0x800E210C; // type:label scope:global +_restgpr_19 = .text:0x800E2110; // type:label scope:global +_restgpr_20 = .text:0x800E2114; // type:label scope:global +_restgpr_21 = .text:0x800E2118; // type:label scope:global +_restgpr_22 = .text:0x800E211C; // type:label scope:global +_restgpr_23 = .text:0x800E2120; // type:label scope:global +_restgpr_24 = .text:0x800E2124; // type:label scope:global +_restgpr_25 = .text:0x800E2128; // type:label scope:global +_restgpr_26 = .text:0x800E212C; // type:label scope:global +_restgpr_27 = .text:0x800E2130; // type:label scope:global +_restgpr_28 = .text:0x800E2134; // type:label scope:global +_restgpr_29 = .text:0x800E2138; // type:label scope:global +_restgpr_30 = .text:0x800E213C; // type:label scope:global +_restgpr_31 = .text:0x800E2140; // type:label scope:global +__div2u = .text:0x800E2148; // type:function size:0xEC scope:global +__div2i = .text:0x800E2234; // type:function size:0x138 +__mod2u = .text:0x800E236C; // type:function size:0xE4 scope:global +__mod2i = .text:0x800E2450; // type:function size:0x10C +__shl2i = .text:0x800E255C; // type:function size:0x24 +__shr2u = .text:0x800E2580; // type:function size:0x24 +__shr2i = .text:0x800E25A4; // type:function size:0x28 +__cvt_dbl_usll = .text:0x800E25CC; // type:function size:0xCC +GetR2__Fv = .text:0x800E2698; // type:function size:0x8 scope:local +__fini_cpp_exceptions = .text:0x800E26A0; // type:function size:0x34 scope:global +__init_cpp_exceptions = .text:0x800E26D4; // type:function size:0x40 scope:global +ExPPC_LongJump__FP12ThrowContextPvPv = .text:0x800E2714; // type:function size:0x104 +__throw = .text:0x800E2818; // type:function size:0x144 +__end__catch = .text:0x800E295C; // type:function size:0x44 +ExPPC_ThrowHandler__FP12ThrowContext = .text:0x800E29A0; // type:function size:0x410 +__unexpected = .text:0x800E2DB0; // type:function size:0x1B4 +__dt__Q23std13bad_exceptionFv = .text:0x800E2F64; // type:function size:0x5C +ExPPC_UnwindStack__FP12ThrowContextP15MWExceptionInfoPv = .text:0x800E2FC0; // type:function size:0x50C +ExPPC_PopStackFrame__FP12ThrowContextP15MWExceptionInfo = .text:0x800E34CC; // type:function size:0x248 +ExPPC_NextAction__FP14ActionIterator = .text:0x800E3714; // type:function size:0x1C0 +ExPPC_FindExceptionRecord__FPcP15MWExceptionInfo = .text:0x800E38D4; // type:function size:0x204 +__unregister_fragment = .text:0x800E3AD8; // type:function size:0x34 scope:global +__register_fragment = .text:0x800E3B0C; // type:function size:0x34 scope:global +what__Q23std13bad_exceptionCFv = .text:0x800E3B40; // type:function size:0xC +__sys_free = .text:0x800E3B4C; // type:function size:0xB8 +exit = .text:0x800E3C04; // type:function size:0xCC scope:global +abort = .text:0x800E3CD0; // type:function size:0x88 +free = .text:0x800E3D58; // type:function size:0x134 +deallocate_from_fixed_pools = .text:0x800E3E8C; // type:function size:0x1FC +SubBlock_merge_next = .text:0x800E4088; // type:function size:0xBC scope:local +Block_link = .text:0x800E4144; // type:function size:0x17C scope:local +__flush_all = .text:0x800E42C0; // type:function size:0x70 +__close_all = .text:0x800E4330; // type:function size:0x98 scope:global +__num2dec = .text:0x800E43C8; // type:function size:0x1A4 +__num2dec_internal = .text:0x800E456C; // type:function size:0x23C scope:local +__two_exp = .text:0x800E47A8; // type:function size:0x340 scope:local +__str2dec = .text:0x800E4AE8; // type:function size:0xEC scope:local +__timesdec = .text:0x800E4BD4; // type:function size:0x28C scope:local +__ull2dec = .text:0x800E4E60; // type:function size:0x110 scope:local +__count_trailing_zerol = .text:0x800E4F70; // type:function size:0x70 scope:local +abs = .text:0x800E4FE0; // type:function size:0x10 +__flush_buffer = .text:0x800E4FF0; // type:function size:0xC4 scope:global +__prep_buffer = .text:0x800E50B4; // type:function size:0x34 scope:global +tolower = .text:0x800E50E8; // type:function size:0x24 +isalpha = .text:0x800E510C; // type:function size:0x18 +__fwrite = .text:0x800E5124; // type:function size:0x30C scope:global +fwrite = .text:0x800E5430; // type:function size:0x20 scope:global +fflush = .text:0x800E5450; // type:function size:0x138 +fclose = .text:0x800E5588; // type:function size:0xC0 +fseek = .text:0x800E5648; // type:function size:0x20 scope:global +_fseek = .text:0x800E5668; // type:function size:0x23C +ftell = .text:0x800E58A4; // type:function size:0x70 +wcstombs = .text:0x800E5914; // type:function size:0xA0 scope:global +unicode_to_UTF8 = .text:0x800E59B4; // type:function size:0xA4 scope:local +memcmp = .text:0x800E5A58; // type:function size:0x4C +__memrchr = .text:0x800E5AA4; // type:function size:0x2C scope:global +memchr = .text:0x800E5AD0; // type:function size:0x2C scope:global +memmove = .text:0x800E5AFC; // type:function size:0xCC +__copy_longs_rev_unaligned = .text:0x800E5BC8; // type:function size:0xB0 +__copy_longs_unaligned = .text:0x800E5C78; // type:function size:0xC4 +__copy_longs_rev_aligned = .text:0x800E5D3C; // type:function size:0xAC +__copy_longs_aligned = .text:0x800E5DE8; // type:function size:0xC0 +__stdio_atexit = .text:0x800E5EA8; // type:function size:0x10 scope:global +sprintf = .text:0x800E5EB8; // type:function size:0xE0 +vsprintf = .text:0x800E5F98; // type:function size:0x78 +vsnprintf = .text:0x800E6010; // type:function size:0x74 +vprintf = .text:0x800E6084; // type:function size:0x7C scope:global +printf = .text:0x800E6100; // type:function size:0xCC +__StringWrite = .text:0x800E61CC; // type:function size:0x6C +__FileWrite = .text:0x800E6238; // type:function size:0x58 scope:global +__pformatter = .text:0x800E6290; // type:function size:0x774 scope:local +float2str = .text:0x800E6A04; // type:function size:0x6EC scope:local +round_decimal = .text:0x800E70F0; // type:function size:0x12C +double2hex = .text:0x800E721C; // type:function size:0x338 scope:local +longlong2str = .text:0x800E7554; // type:function size:0x2DC scope:local +long2str = .text:0x800E7830; // type:function size:0x220 scope:local +parse_format = .text:0x800E7A50; // type:function size:0x504 scope:local +raise = .text:0x800E7F54; // type:function size:0xB0 +strchr = .text:0x800E8004; // type:function size:0x30 scope:global +strncmp = .text:0x800E8034; // type:function size:0x40 +strcmp = .text:0x800E8074; // type:function size:0x128 +strcat = .text:0x800E819C; // type:function size:0x44 +strcpy = .text:0x800E81E0; // type:function size:0xB8 +strlen = .text:0x800E8298; // type:function size:0x1C scope:global +__close_console = .text:0x800E82B4; // type:function size:0x8 +__write_console = .text:0x800E82BC; // type:function size:0xC4 +fwide = .text:0x800E8380; // type:function size:0x88 scope:global +__ieee754_acos = .text:0x800E8408; // type:function size:0x310 +__ieee754_asin = .text:0x800E8718; // type:function size:0x264 +__ieee754_atan2 = .text:0x800E897C; // type:function size:0x290 +__ieee754_fmod = .text:0x800E8C0C; // type:function size:0x33C +__ieee754_pow = .text:0x800E8F48; // type:function size:0x88C +__ieee754_rem_pio2 = .text:0x800E97D4; // type:function size:0x3A0 +__kernel_cos = .text:0x800E9B74; // type:function size:0xF4 +__kernel_rem_pio2 = .text:0x800E9C68; // type:function size:0xE54 +__kernel_sin = .text:0x800EAABC; // type:function size:0xA0 +__kernel_tan = .text:0x800EAB5C; // type:function size:0x214 +atan = .text:0x800EAD70; // type:function size:0x200 +copysign = .text:0x800EAF70; // type:function size:0x28 +cos = .text:0x800EAF98; // type:function size:0xD4 +floor = .text:0x800EB06C; // type:function size:0x148 +frexp = .text:0x800EB1B4; // type:function size:0x8C +ldexp = .text:0x800EB240; // type:function size:0x1C4 +modf = .text:0x800EB404; // type:function size:0xFC +sin = .text:0x800EB500; // type:function size:0xD8 +tan = .text:0x800EB5D8; // type:function size:0x78 +acos = .text:0x800EB650; // type:function size:0x20 +asin = .text:0x800EB670; // type:function size:0x20 +atan2 = .text:0x800EB690; // type:function size:0x20 +fmod = .text:0x800EB6B0; // type:function size:0x20 +pow = .text:0x800EB6D0; // type:function size:0x20 +tanf = .text:0x800EB6F0; // type:function size:0x24 +sinf = .text:0x800EB714; // type:function size:0x24 +cosf = .text:0x800EB738; // type:function size:0x24 +atan2f = .text:0x800EB75C; // type:function size:0x24 +acosf = .text:0x800EB780; // type:function size:0x24 +TRKNubMainLoop = .text:0x800EB7A4; // type:function size:0xF8 scope:global +TRKDestructEvent = .text:0x800EB89C; // type:function size:0x24 scope:global +TRKConstructEvent = .text:0x800EB8C0; // type:function size:0x18 +TRKPostEvent = .text:0x800EB8D8; // type:function size:0xE0 +TRKGetNextEvent = .text:0x800EB9B8; // type:function size:0xB4 scope:global +TRKInitializeEventQueue = .text:0x800EBA6C; // type:function size:0x58 scope:global +TRKNubWelcome = .text:0x800EBAC4; // type:function size:0x28 scope:global +TRKTerminateNub = .text:0x800EBAEC; // type:function size:0x24 scope:global +TRKInitializeNub = .text:0x800EBB10; // type:function size:0x134 scope:global +TRKMessageSend = .text:0x800EBC44; // type:function size:0x1DC +TRKReadBuffer_ui32 = .text:0x800EBE20; // type:function size:0xF0 +TRKReadBuffer_ui8 = .text:0x800EBF10; // type:function size:0x98 +TRKReadBuffer1_ui64 = .text:0x800EBFA8; // type:function size:0xE8 +TRKReadBuffer1_ui32 = .text:0x800EC090; // type:function size:0xC8 +TRKReadBuffer1_ui16 = .text:0x800EC158; // type:function size:0xB8 +TRKReadBuffer1_ui8 = .text:0x800EC210; // type:function size:0x80 +TRKAppendBuffer_ui32 = .text:0x800EC290; // type:function size:0xA8 +TRKAppendBuffer_ui8 = .text:0x800EC338; // type:function size:0x68 +TRKAppendBuffer1_ui64 = .text:0x800EC3A0; // type:function size:0x88 +TRKAppendBuffer1_ui32 = .text:0x800EC428; // type:function size:0x64 +TRKAppendBuffer1_ui16 = .text:0x800EC48C; // type:function size:0x54 +TRKReadBuffer = .text:0x800EC4E0; // type:function size:0x8C +TRKAppendBuffer = .text:0x800EC56C; // type:function size:0xA4 +TRKSetBufferPosition = .text:0x800EC610; // type:function size:0x30 +TRKResetBuffer = .text:0x800EC640; // type:function size:0x40 +TRKReleaseBuffer = .text:0x800EC680; // type:function size:0x64 +TRKGetBuffer = .text:0x800EC6E4; // type:function size:0x2C scope:global +TRKGetFreeBuffer = .text:0x800EC710; // type:function size:0xC8 +TRKInitializeMessageBuffers = .text:0x800EC7D8; // type:function size:0x74 scope:global +TRKTerminateSerialHandler = .text:0x800EC84C; // type:function size:0x8 +TRKInitializeSerialHandler = .text:0x800EC854; // type:function size:0x24 scope:global +TRKProcessInput = .text:0x800EC878; // type:function size:0x50 +TRKGetInput = .text:0x800EC8C8; // type:function size:0x98 scope:global +TRKTestForPacket = .text:0x800EC960; // type:function size:0x2B8 +usr_put_initialize = .text:0x800ECC18; // type:function size:0x4 scope:global +usr_puts_serial = .text:0x800ECC1C; // type:function size:0x88 +TRKDispatchMessage = .text:0x800ECCA4; // type:function size:0x84 scope:global +TRKInitializeDispatcher = .text:0x800ECD28; // type:function size:0x18 scope:global +TRKDoSetOption = .text:0x800ECD40; // type:function size:0x1A4 +TRKDoStop = .text:0x800ECEE4; // type:function size:0x100 +TRKDoStep = .text:0x800ECFE4; // type:function size:0x530 +TRKDoContinue = .text:0x800ED514; // type:function size:0x154 +TRKDoFlushCache = .text:0x800ED668; // type:function size:0x2F8 +TRKDoWriteRegisters = .text:0x800ED960; // type:function size:0x3C8 +TRKDoReadRegisters = .text:0x800EDD28; // type:function size:0x3CC +TRKDoWriteMemory = .text:0x800EE0F4; // type:function size:0x420 +TRKDoReadMemory = .text:0x800EE514; // type:function size:0x410 +TRKDoCPUType = .text:0x800EE924; // type:function size:0x398 +TRKDoSupportMask = .text:0x800EECBC; // type:function size:0x230 +TRKDoVersions = .text:0x800EEEEC; // type:function size:0x2D8 +TRKDoReset = .text:0x800EF1C4; // type:function size:0xB8 +TRKDoDisconnect = .text:0x800EF27C; // type:function size:0xE4 +TRKDoConnect = .text:0x800EF360; // type:function size:0xBC +TRKDoUnsupported = .text:0x800EF41C; // type:function size:0xB0 +TRKStandardACK = .text:0x800EF4CC; // type:function size:0xB8 +SetTRKConnected = .text:0x800EF584; // type:function size:0xC +GetTRKConnected = .text:0x800EF590; // type:function size:0x10 +HandlePositionFileSupportRequest = .text:0x800EF5A0; // type:function size:0x190 +HandleCloseFileSupportRequest = .text:0x800EF730; // type:function size:0x120 +HandleOpenFileSupportRequest = .text:0x800EF850; // type:function size:0x1A8 +TRKRequestSend = .text:0x800EF9F8; // type:function size:0x1A4 +TRKSuppAccessFile = .text:0x800EFB9C; // type:function size:0x2C4 +TRKReleaseMutex = .text:0x800EFE60; // type:function size:0x8 +TRKAcquireMutex = .text:0x800EFE68; // type:function size:0x8 +TRKInitializeMutex = .text:0x800EFE70; // type:function size:0x8 +TRKDoNotifyStopped = .text:0x800EFE78; // type:function size:0xD8 +TRK_flush_cache = .text:0x800EFF50; // type:function size:0x38 +TRK_fill_mem = .text:0x800EFF88; // type:function size:0xBC +__TRK_get_MSR = .text:0x800F0044; // type:function size:0x8 +__TRK_set_MSR = .text:0x800F004C; // type:function size:0x8 +TRK_ppc_memcpy = .text:0x800F0054; // type:function size:0x3C +TRKInterruptHandler = .text:0x800F0090; // type:function size:0x194 scope:global +TRKExceptionHandler = .text:0x800F0224; // type:function size:0x9C scope:global +TRKSwapAndGo = .text:0x800F02C0; // type:function size:0xC4 scope:global +TRKInterruptHandlerEnableInterrupts = .text:0x800F0384; // type:function size:0x54 scope:global +TRKTargetSetInputPendingPtr = .text:0x800F03D8; // type:function size:0x10 scope:global +TRKPPCAccessFPRegister = .text:0x800F03E8; // type:function size:0x21C +TRKTargetStop = .text:0x800F0604; // type:function size:0x18 +TRKTargetSetStopped = .text:0x800F061C; // type:function size:0x10 scope:global +TRKTargetStopped = .text:0x800F062C; // type:function size:0x10 scope:global +TRKTargetFlushCache = .text:0x800F063C; // type:function size:0x3C +TRKTargetSupportRequest = .text:0x800F0678; // type:function size:0x208 scope:global +TRKTargetGetPC = .text:0x800F0880; // type:function size:0x10 +TRKTargetStepOutOfRange = .text:0x800F0890; // type:function size:0x7C +TRKTargetSingleStep = .text:0x800F090C; // type:function size:0x6C +TRKTargetAddExceptionInfo = .text:0x800F0978; // type:function size:0xAC +TRKTargetAddStopInfo = .text:0x800F0A24; // type:function size:0x124 +TRKTargetInterrupt = .text:0x800F0B48; // type:function size:0x15C scope:global +TRKPostInterruptEvent = .text:0x800F0CA4; // type:function size:0xC0 scope:global +TRKTargetCPUType = .text:0x800F0D64; // type:function size:0x60 +TRKTargetSupportMask = .text:0x800F0DC4; // type:function size:0xA4 +TRKTargetVersions = .text:0x800F0E68; // type:function size:0x24 +TRKTargetAccessExtended2 = .text:0x800F0E8C; // type:function size:0x438 +TRKTargetAccessExtended1 = .text:0x800F12C4; // type:function size:0x170 +TRKTargetAccessFP = .text:0x800F1434; // type:function size:0x13C +TRKTargetAccessDefault = .text:0x800F1570; // type:function size:0xF4 +TRKTargetAccessMemory = .text:0x800F1664; // type:function size:0x14C +TRKValidMemory32 = .text:0x800F17B0; // type:function size:0x124 +TRKAccessFile = .text:0x800F18E0; // type:function size:0x8 +TRKOpenFile = .text:0x800F18E8; // type:function size:0x8 +TRKCloseFile = .text:0x800F18F0; // type:function size:0x8 +TRKPositionFile = .text:0x800F18F8; // type:function size:0x8 +InitMetroTRK = .text:0x800F1900; // type:function size:0x94 scope:global +TRKInitializeTarget = .text:0x800F1994; // type:function size:0x4C scope:global +TRKTargetTranslate = .text:0x800F19E0; // type:function size:0x40 +EnableMetroTRKInterrupts = .text:0x800F1A20; // type:function size:0x20 scope:global +TRKSaveExtended1Block = .text:0x800F1A40; // type:function size:0x1B8 scope:global +TRKRestoreExtended1Block = .text:0x800F1BF8; // type:function size:0x1B8 scope:global +TRKTargetCPUMinorType = .text:0x800F1DB0; // type:function size:0x8 +TRK_main = .text:0x800F1DB8; // type:function size:0x44 scope:global +TRKLoadContext = .text:0x800F1DFC; // type:function size:0x88 scope:global +TRKUARTInterruptHandler = .text:0x800F1E84; // type:function size:0x4 scope:global +TRK_board_display = .text:0x800F1E88; // type:function size:0x24 scope:global +UnreserveEXI2Port = .text:0x800F1EAC; // type:function size:0x30 scope:global +ReserveEXI2Port = .text:0x800F1EDC; // type:function size:0x30 scope:global +TRKReadUARTPoll = .text:0x800F1F0C; // type:function size:0xF0 +WriteUART1 = .text:0x800F1FFC; // type:function size:0x28 +WriteUARTFlush = .text:0x800F2024; // type:function size:0xE0 +EnableEXI2Interrupts = .text:0x800F2104; // type:function size:0x30 +TRKInitializeIntDrivenUART = .text:0x800F2134; // type:function size:0x3C scope:global +InitMetroTRKCommTable = .text:0x800F2170; // type:function size:0x100 scope:global +TRKEXICallBack = .text:0x800F2270; // type:function size:0x38 scope:global +TRKTargetContinue = .text:0x800F22A8; // type:function size:0x34 scope:global +GetUseSerialIO = .text:0x800F22DC; // type:function size:0x10 +SetUseSerialIO = .text:0x800F22EC; // type:function size:0xC +__TRK_write_console = .text:0x800F22F8; // type:function size:0xBC +__read_console = .text:0x800F23B4; // type:function size:0xBC +seqGetPrivateId = .text:0x800F2470; // type:function size:0x68 +seqStartPlay = .text:0x800F24D8; // type:function size:0xAC4 +StartPause = .text:0x800F2F9C; // type:function size:0x64 +seqPause = .text:0x800F3000; // type:function size:0x27C +seqStop = .text:0x800F327C; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F352C; // type:function size:0x90 +seqSpeed = .text:0x800F35BC; // type:function size:0xE4 +seqContinue = .text:0x800F36A0; // type:function size:0x108 +seqMute = .text:0x800F37A8; // type:function size:0xBC +seqVolume = .text:0x800F3864; // type:function size:0x1CC +seqCrossFade = .text:0x800F3A30; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F4588; // type:function size:0x218 scope:local +HandleEvent = .text:0x800F47A0; // type:function size:0xA94 scope:local +InitTrackEvents = .text:0x800F5234; // type:function size:0x174 scope:local +HandleTrackEvents = .text:0x800F53A8; // type:function size:0x49C scope:local +seqHandle = .text:0x800F5844; // type:function size:0x9F4 +seqInit = .text:0x800F6238; // type:function size:0x1A8 +synthSetBpm = .text:0x800F63E0; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6424; // type:function size:0x34 +synthInitPortamento = .text:0x800F6458; // type:function size:0x78 +do_voice_portamento = .text:0x800F64D0; // type:function size:0x2A0 scope:local +StartLayer = .text:0x800F6770; // type:function size:0x3C0 scope:local +StartKeymap = .text:0x800F6B30; // type:function size:0x25C scope:local +synthStartSound = .text:0x800F6D8C; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F71E8; // type:function size:0x744 scope:local +ZeroOffsetHandler = .text:0x800F792C; // type:function size:0x6FC scope:local +synthAddJob = .text:0x800F8028; // type:function size:0x150 scope:local +synthStartSynthJobHandling = .text:0x800F8178; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F81DC; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8220; // type:function size:0x28 +synthHandle = .text:0x800F8248; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8758; // type:function size:0x34 +synthFXStart = .text:0x800F878C; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8854; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8938; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8A1C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8AA0; // type:function size:0x88 +synthVolume = .text:0x800F8B28; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9058; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F90AC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F90D4; // type:function size:0xD0 +synthInit = .text:0x800F91A4; // type:function size:0x574 +synthExit = .text:0x800F9718; // type:function size:0x24 +sndSeqGetValid = .text:0x800F973C; // type:function size:0x30 +sndSeqPause = .text:0x800F976C; // type:function size:0x38 +sndSeqStop = .text:0x800F97A4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F97DC; // type:function size:0x48 +sndSeqContinue = .text:0x800F9824; // type:function size:0x38 +sndSeqMute = .text:0x800F985C; // type:function size:0x58 +sndSeqVolume = .text:0x800F98B4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F991C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F99A0; // type:function size:0x1C +sndFXCtrl = .text:0x800F99BC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9A1C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9A7C; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9ABC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9B9C; // type:function size:0x40 +sndSendMessage = .text:0x800F9BDC; // type:function size:0x50 +sndVolume = .text:0x800F9C2C; // type:function size:0x60 +sndMasterVolume = .text:0x800F9C8C; // type:function size:0x94 +sndOutputMode = .text:0x800F9D20; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800F9E0C; // type:function size:0x158 +synthActivateStudio = .text:0x800F9F64; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA00C; // type:function size:0xF0 +synthAddStudioInput = .text:0x800FA0FC; // type:function size:0x20 +synthRemoveStudioInput = .text:0x800FA11C; // type:function size:0x20 +streamInit = .text:0x800FA13C; // type:function size:0xBC +SetHWMix = .text:0x800FA1F8; // type:function size:0x8C scope:local +streamHandle = .text:0x800FA284; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAB30; // type:function size:0x4 +streamKill = .text:0x800FAB34; // type:function size:0x84 +GetPrivateIndex = .text:0x800FABB8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FAD18; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FAFDC; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB010; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB054; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB184; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB5DC; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FB620; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FBD08; // type:function size:0x560 +sndStreamFrq = .text:0x800FC268; // type:function size:0x654 +sndStreamFree = .text:0x800FC8BC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FCF74; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD5A8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FDCA8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FDE98; // type:function size:0x17C +dataInsertLayer = .text:0x800FE014; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE25C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE420; // type:function size:0x204 +dataRemoveCurve = .text:0x800FE624; // type:function size:0x17C +dataInsertSDir = .text:0x800FE7A0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FE928; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FEBF0; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FECC8; // type:function size:0x98 +dataInsertFX = .text:0x800FED60; // type:function size:0x11C +dataRemoveFX = .text:0x800FEE7C; // type:function size:0x15C +dataInsertMacro = .text:0x800FEFD8; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF2DC; // type:function size:0x284 +maccmp = .text:0x800FF560; // type:function size:0x10 scope:local +dataGetMacro = .text:0x800FF570; // type:function size:0x8C +smpcmp = .text:0x800FF5FC; // type:function size:0x10 scope:local +dataGetSample = .text:0x800FF60C; // type:function size:0x128 +curvecmp = .text:0x800FF734; // type:function size:0x10 scope:local +dataGetCurve = .text:0x800FF744; // type:function size:0x5C +dataGetKeymap = .text:0x800FF7A0; // type:function size:0x5C +layercmp = .text:0x800FF7FC; // type:function size:0x10 scope:local +dataGetLayer = .text:0x800FF80C; // type:function size:0x7C +fxcmp = .text:0x800FF888; // type:function size:0x10 scope:local +dataGetFX = .text:0x800FF898; // type:function size:0x9C +dataInit = .text:0x800FF934; // type:function size:0xE4 +dataExit = .text:0x800FFA18; // type:function size:0x20 +mcmdWait = .text:0x800FFA38; // type:function size:0x2F0 scope:local +mcmdGosub = .text:0x800FFD28; // type:function size:0xD0 scope:local +mcmdLoop = .text:0x800FFDF8; // type:function size:0x154 scope:local +mcmdPlayMacro = .text:0x800FFF4C; // type:function size:0x18C scope:local +mcmdAddKey = .text:0x801000D8; // type:function size:0xD8 scope:local +mcmdStartSample = .text:0x801001B0; // type:function size:0x1FC scope:local +mcmdVibrato = .text:0x801003AC; // type:function size:0x17C scope:local +DoSetPitch = .text:0x80100528; // type:function size:0x1A0 scope:local +mcmdSetADSR = .text:0x801006C8; // type:function size:0x258 scope:local +mcmdSetADSRFromCtrl = .text:0x80100920; // type:function size:0x12C scope:local +mcmdSetPitchADSR = .text:0x80100A4C; // type:function size:0x27C scope:local +mcmdSetPanning = .text:0x80100CC8; // type:function size:0x9C scope:local +mcmdSetSurroundPanning = .text:0x80100D64; // type:function size:0x9C scope:local +mcmdScaleVolume = .text:0x80100E00; // type:function size:0x134 scope:local +mcmdEnvelope = .text:0x80100F34; // type:function size:0x130 scope:local +mcmdFadeIn = .text:0x80101064; // type:function size:0x13C scope:local +mcmdRandomKey = .text:0x801011A0; // type:function size:0x19C scope:local +mcmdVolumeSelect = .text:0x8010133C; // type:function size:0x104 scope:local +mcmdPanningSelect = .text:0x80101440; // type:function size:0x104 scope:local +mcmdPitchWheelSelect = .text:0x80101544; // type:function size:0x104 scope:local +mcmdModWheelSelect = .text:0x80101648; // type:function size:0x104 scope:local +mcmdPedalSelect = .text:0x8010174C; // type:function size:0x104 scope:local +mcmdPortamentoSelect = .text:0x80101850; // type:function size:0x104 scope:local +mcmdReverbSelect = .text:0x80101954; // type:function size:0x104 scope:local +mcmdPreAuxASelect = .text:0x80101A58; // type:function size:0x104 scope:local +mcmdPreAuxBSelect = .text:0x80101B5C; // type:function size:0x104 scope:local +mcmdPostAuxBSelect = .text:0x80101C60; // type:function size:0x104 scope:local +mcmdSurroundPanningSelect = .text:0x80101D64; // type:function size:0x104 scope:local +mcmdDopplerSelect = .text:0x80101E68; // type:function size:0x104 scope:local +mcmdTremoloSelect = .text:0x80101F6C; // type:function size:0x104 scope:local +mcmdAuxAFXSelect = .text:0x80102070; // type:function size:0x17C scope:local +mcmdAuxBFXSelect = .text:0x801021EC; // type:function size:0x17C scope:local +mcmdPortamento = .text:0x80102368; // type:function size:0x164 scope:local +varGet = .text:0x801024CC; // type:function size:0x68 +mcmdVarCalculation = .text:0x80102534; // type:function size:0x220 scope:local +mcmdIfVarCompare = .text:0x80102754; // type:function size:0x14C scope:local +macPostMessage = .text:0x801028A0; // type:function size:0xBC +mcmdSendMessage = .text:0x8010295C; // type:function size:0x244 scope:local +mcmdGetVID = .text:0x80102BA0; // type:function size:0x80 scope:local +mcmdSetKeyGroup = .text:0x80102C20; // type:function size:0xDC scope:local +macHandleActive = .text:0x80102CFC; // type:function size:0xF58 scope:local +macHandle = .text:0x80103C54; // type:function size:0x150 +macSampleEndNotify = .text:0x80103DA4; // type:function size:0xAC +macSetExternalKeyoff = .text:0x80103E50; // type:function size:0xF0 +macSetPedalState = .text:0x80103F40; // type:function size:0x108 +TimeQueueAdd = .text:0x80104048; // type:function size:0xA4 scope:local +macMakeActive = .text:0x801040EC; // type:function size:0x108 +macMakeInactive = .text:0x801041F4; // type:function size:0xFC +macStart = .text:0x801042F0; // type:function size:0x438 +macInit = .text:0x80104728; // type:function size:0x68 +vidInit = .text:0x80104790; // type:function size:0xE0 +vidRemoveVoiceReferences = .text:0x80104870; // type:function size:0x350 +vidMakeRoot = .text:0x80104BC0; // type:function size:0x14 +vidMakeNew = .text:0x80104BD4; // type:function size:0x104 +vidGetInternalId = .text:0x80104CD8; // type:function size:0x50 +voiceSetPriority = .text:0x80104D28; // type:function size:0x24C +voiceAllocate = .text:0x80104F74; // type:function size:0x460 +voiceFree = .text:0x801053D4; // type:function size:0x1C4 +synthInitAllocationAids = .text:0x80105598; // type:function size:0x2A0 +voiceBlock = .text:0x80105838; // type:function size:0xFC +voiceUnblock = .text:0x80105934; // type:function size:0x218 +voiceKill = .text:0x80105B4C; // type:function size:0x234 +voiceKillSound = .text:0x80105D80; // type:function size:0xC4 +synthKillVoicesByMacroReferences = .text:0x80105E44; // type:function size:0x15C +voiceIsLastStarted = .text:0x80105FA0; // type:function size:0x74 +voiceSetLastStarted = .text:0x80106014; // type:function size:0x54 +voiceResetLastStarted = .text:0x80106068; // type:function size:0x74 +voiceInitLastStarted = .text:0x801060DC; // type:function size:0x144 +sndPitchUpOne = .text:0x80106220; // type:function size:0x3C +sndGetPitch = .text:0x8010625C; // type:function size:0xE4 +adsrConvertTimeCents = .text:0x80106340; // type:function size:0x58 +salChangeADSRState = .text:0x80106398; // type:function size:0x26C +adsrSetup = .text:0x80106604; // type:function size:0x28 +adsrStartRelease = .text:0x8010662C; // type:function size:0x150 +adsrRelease = .text:0x8010677C; // type:function size:0x168 +adsrHandle = .text:0x801068E4; // type:function size:0x198 +adsrHandleLowPrecision = .text:0x80106A7C; // type:function size:0x84 +vsInit = .text:0x80106B00; // type:function size:0xBC +vsSampleStartNotify = .text:0x80106BBC; // type:function size:0x248 +vsSampleEndNotify = .text:0x80106E04; // type:function size:0xA8 +vsUpdateBuffer = .text:0x80106EAC; // type:function size:0x1F8 +vsSampleUpdates = .text:0x801070A4; // type:function size:0x1E4 +dataInitStack = .text:0x80107288; // type:function size:0xC +InsertData = .text:0x80107294; // type:function size:0x27C scope:local +sndPushGroup = .text:0x80107510; // type:function size:0x32C +sndPopGroup = .text:0x8010783C; // type:function size:0x33C +seqPlaySong = .text:0x80107B78; // type:function size:0x14C +sndSeqPlayEx = .text:0x80107CC4; // type:function size:0x11C +salInitDspCtrl = .text:0x80107DE0; // type:function size:0x3B4 +salInitHRTFBuffer = .text:0x80108194; // type:function size:0x38 +salExitDspCtrl = .text:0x801081CC; // type:function size:0xE0 +salActivateStudio = .text:0x801082AC; // type:function size:0x150 +salDeactivateStudio = .text:0x801083FC; // type:function size:0x20 +salCheckVolErrorAndResetDelta = .text:0x8010841C; // type:function size:0xF4 +sal_setup_dspvol = .text:0x80108510; // type:function size:0x48 scope:local +sal_update_hostplayinfo = .text:0x80108558; // type:function size:0x74 scope:local +DoDepopFade = .text:0x801085CC; // type:function size:0xAC scope:local +HandleDepopVoice = .text:0x80108678; // type:function size:0x2DC scope:local +SortVoices = .text:0x80108954; // type:function size:0x258 scope:local +salBuildCommandList = .text:0x80108BAC; // type:function size:0x21B8 +salSynthSendMessage = .text:0x8010AD64; // type:function size:0x44 +salActivateVoice = .text:0x8010ADA8; // type:function size:0xA0 +salDeactivateVoice = .text:0x8010AE48; // type:function size:0x60 +salReconnectVoice = .text:0x8010AEA8; // type:function size:0xC8 +salAddStudioInput = .text:0x8010AF70; // type:function size:0xA8 +salRemoveStudioInput = .text:0x8010B018; // type:function size:0x84 +salHandleAuxProcessing = .text:0x8010B09C; // type:function size:0x158 +salCalcVolume = .text:0x8010B1F4; // type:function size:0x6F0 +CheckRoomStatus = .text:0x8010B8E4; // type:function size:0x4B4 scope:local +CalcEmitter = .text:0x8010BD98; // type:function size:0x51C scope:local +sndUpdateEmitter = .text:0x8010C2B4; // type:function size:0x130 +sndCheckEmitter = .text:0x8010C3E4; // type:function size:0x20 +AddEmitter = .text:0x8010C404; // type:function size:0x3F8 scope:local +sndAddEmitterParaEx = .text:0x8010C7FC; // type:function size:0x50 +sndRemoveEmitter = .text:0x8010C84C; // type:function size:0xA8 +sndEmitterVoiceID = .text:0x8010C8F4; // type:function size:0x5C +s3dKillEmitterByFXID = .text:0x8010C950; // type:function size:0xFC +sndUpdateListener = .text:0x8010CA4C; // type:function size:0x204 +sndAddListenerEx = .text:0x8010CC50; // type:function size:0x230 +sndRemoveListener = .text:0x8010CE80; // type:function size:0xD0 +AddStartingEmitter = .text:0x8010CF50; // type:function size:0x14C scope:local +StartContinousEmitters = .text:0x8010D09C; // type:function size:0x3B0 scope:local +s3dHandle = .text:0x8010D44C; // type:function size:0x82C +s3dInit = .text:0x8010DC78; // type:function size:0x38 +s3dExit = .text:0x8010DCB0; // type:function size:0x4 +sndInit = .text:0x8010DCB4; // type:function size:0x118 +sndQuit = .text:0x8010DDCC; // type:function size:0x34 +sndIsInstalled = .text:0x8010DE00; // type:function size:0x8 +salApplyMatrix = .text:0x8010DE08; // type:function size:0xAC +salNormalizeVector = .text:0x8010DEB4; // type:function size:0xB4 +salCrossProduct = .text:0x8010DF68; // type:function size:0x64 +salInvertMatrix = .text:0x8010DFCC; // type:function size:0x1FC +inpSetGlobalMIDIDirtyFlag = .text:0x8010E1C8; // type:function size:0x24 +inpSetMidiCtrl = .text:0x8010E1EC; // type:function size:0x608 +inpSetMidiCtrl14 = .text:0x8010E7F4; // type:function size:0x124 +inpResetMidiCtrl = .text:0x8010E918; // type:function size:0xF0 +inpGetMidiCtrl = .text:0x8010EA08; // type:function size:0x2C4 +inpGetChannelDefaults = .text:0x8010ECCC; // type:function size:0x34 +inpResetChannelDefaults = .text:0x8010ED00; // type:function size:0x3C +inpAddCtrl = .text:0x8010ED3C; // type:function size:0x98 +inpFXCopyCtrl = .text:0x8010EDD4; // type:function size:0x114 +inpSetMidiLastNote = .text:0x8010EEE8; // type:function size:0x3C +inpGetMidiLastNote = .text:0x8010EF24; // type:function size:0x3C +_GetInputValue = .text:0x8010EF60; // type:function size:0x4A0 scope:local +inpGetVolume = .text:0x8010F400; // type:function size:0x48 +inpGetPanning = .text:0x8010F448; // type:function size:0x48 +inpGetSurPanning = .text:0x8010F490; // type:function size:0x48 +inpGetPitchBend = .text:0x8010F4D8; // type:function size:0x48 +inpGetDoppler = .text:0x8010F520; // type:function size:0x48 +inpGetModulation = .text:0x8010F568; // type:function size:0x48 +inpGetPedal = .text:0x8010F5B0; // type:function size:0x48 +inpGetPreAuxA = .text:0x8010F5F8; // type:function size:0x48 +inpGetReverb = .text:0x8010F640; // type:function size:0x48 +inpGetPreAuxB = .text:0x8010F688; // type:function size:0x48 +inpGetPostAuxB = .text:0x8010F6D0; // type:function size:0x48 +inpGetTremolo = .text:0x8010F718; // type:function size:0x48 +inpGetAuxA = .text:0x8010F760; // type:function size:0xB4 +inpGetAuxB = .text:0x8010F814; // type:function size:0xB4 +inpInit = .text:0x8010F8C8; // type:function size:0x284 +inpTranslateExCtrl = .text:0x8010FB4C; // type:function size:0x70 +inpGetExCtrl = .text:0x8010FBBC; // type:function size:0xFC +inpSetExCtrl = .text:0x8010FCB8; // type:function size:0x1E4 +sndRand = .text:0x8010FE9C; // type:function size:0x1C +sndSin = .text:0x8010FEB8; // type:function size:0x8C +sndBSearch = .text:0x8010FF44; // type:function size:0xA4 +sndConvertMs = .text:0x8010FFE8; // type:function size:0x10 +sndConvertTicks = .text:0x8010FFF8; // type:function size:0x48 +sndConvert2Ms = .text:0x80110040; // type:function size:0x8 +snd_handle_irq = .text:0x80110048; // type:function size:0x154 scope:local +hwInit = .text:0x8011019C; // type:function size:0xB8 +hwExit = .text:0x80110254; // type:function size:0x34 +hwSetTimeOffset = .text:0x80110288; // type:function size:0x8 +hwGetTimeOffset = .text:0x80110290; // type:function size:0x8 +hwIsActive = .text:0x80110298; // type:function size:0x20 +hwSetMesgCallback = .text:0x801102B8; // type:function size:0x8 +hwSetPriority = .text:0x801102C0; // type:function size:0x14 +hwInitSamplePlayback = .text:0x801102D4; // type:function size:0x1B4 +hwBreak = .text:0x80110488; // type:function size:0x50 +hwSetADSR = .text:0x801104D8; // type:function size:0x1AC +hwSetVirtualSampleLoopBuffer = .text:0x80110684; // type:function size:0x20 +hwGetVirtualSampleState = .text:0x801106A4; // type:function size:0x14 +hwGetSampleType = .text:0x801106B8; // type:function size:0x14 +hwGetSampleID = .text:0x801106CC; // type:function size:0x14 +hwSetStreamLoopPS = .text:0x801106E0; // type:function size:0x14 +hwStart = .text:0x801106F4; // type:function size:0x3C +hwKeyOff = .text:0x80110730; // type:function size:0x28 +hwSetPitch = .text:0x80110758; // type:function size:0x78 +hwSetSRCType = .text:0x801107D0; // type:function size:0x2C +hwSetPolyPhaseFilter = .text:0x801107FC; // type:function size:0x2C +hwSetITDMode = .text:0x80110828; // type:function size:0x5C +hwSetVolume = .text:0x80110884; // type:function size:0x2C0 +hwOff = .text:0x80110B44; // type:function size:0x2C +hwSetAUXProcessingCallbacks = .text:0x80110B70; // type:function size:0x28 +hwActivateStudio = .text:0x80110B98; // type:function size:0x20 +hwDeactivateStudio = .text:0x80110BB8; // type:function size:0x20 +hwAddInput = .text:0x80110BD8; // type:function size:0x34 +hwRemoveInput = .text:0x80110C0C; // type:function size:0x34 +hwChangeStudio = .text:0x80110C40; // type:function size:0x2C +hwGetPos = .text:0x80110C6C; // type:function size:0xA4 +hwFlushStream = .text:0x80110D10; // type:function size:0x90 +hwInitStream = .text:0x80110DA0; // type:function size:0x20 +hwExitStream = .text:0x80110DC0; // type:function size:0x20 +hwGetStreamPlayBuffer = .text:0x80110DE0; // type:function size:0x24 +hwTransAddr = .text:0x80110E04; // type:function size:0x4 +hwFrq2Pitch = .text:0x80110E08; // type:function size:0x5C +hwInitSampleMem = .text:0x80110E64; // type:function size:0x24 +hwExitSampleMem = .text:0x80110E88; // type:function size:0x20 +hwSaveSample = .text:0x80110EA8; // type:function size:0x94 +hwRemoveSample = .text:0x80110F3C; // type:function size:0x84 +hwSyncSampleMem = .text:0x80110FC0; // type:function size:0x20 +hwFrameDone = .text:0x80110FE0; // type:function size:0x4 +sndSetHooks = .text:0x80110FE4; // type:function size:0x14 +hwDisableHRTF = .text:0x80110FF8; // type:function size:0xC +hwGetVirtualSampleID = .text:0x80111004; // type:function size:0x28 +hwVoiceInStartup = .text:0x8011102C; // type:function size:0x20 +aramQueueCallback = .text:0x8011104C; // type:function size:0xA0 +aramUploadData = .text:0x801110EC; // type:function size:0x1DC +aramSyncTransferQueue = .text:0x801112C8; // type:function size:0x18 +aramInit = .text:0x801112E0; // type:function size:0x2EC +aramExit = .text:0x801115CC; // type:function size:0x4 +aramGetZeroBuffer = .text:0x801115D0; // type:function size:0x20 +aramStoreData = .text:0x801115F0; // type:function size:0x3BC +aramRemoveData = .text:0x801119AC; // type:function size:0x18 +InitStreamBuffers = .text:0x801119C4; // type:function size:0xC4 scope:local +aramAllocateStreamBuffer = .text:0x80111A88; // type:function size:0x108 +aramGetStreamBufferAddress = .text:0x80111B90; // type:function size:0x38 +aramFreeStreamBuffer = .text:0x80111BC8; // type:function size:0xF8 +salCallback = .text:0x80111CC0; // type:function size:0xA8 scope:local +dspInitCallback = .text:0x80111D68; // type:function size:0x10 scope:local +dspResumeCallback = .text:0x80111D78; // type:function size:0x64 scope:local +salInitAi = .text:0x80111DDC; // type:function size:0xC8 +salStartAi = .text:0x80111EA4; // type:function size:0x20 +salExitAi = .text:0x80111EC4; // type:function size:0x34 +salAiGetDest = .text:0x80111EF8; // type:function size:0x30 +salInitDsp = .text:0x80111F28; // type:function size:0xBC +salExitDsp = .text:0x80111FE4; // type:function size:0x34 +salCtrlDsp = .text:0x80112018; // type:function size:0x74 +salGetStartDelay = .text:0x8011208C; // type:function size:0x4C +hwInitIrq = .text:0x801120D8; // type:function size:0x2C +hwExitIrq = .text:0x80112104; // type:function size:0x4 +hwEnableIrq = .text:0x80112108; // type:function size:0x38 +hwDisableIrq = .text:0x80112140; // type:function size:0x38 +hwIRQEnterCritical = .text:0x80112178; // type:function size:0x20 +hwIRQLeaveCritical = .text:0x80112198; // type:function size:0x20 +salMalloc = .text:0x801121B8; // type:function size:0x28 +salFree = .text:0x801121E0; // type:function size:0x2C +sndAuxCallbackReverbSTD = .text:0x8011220C; // type:function size:0x5C +sndAuxCallbackPrepareReverbSTD = .text:0x80112268; // type:function size:0x3C +sndAuxCallbackShutdownReverbSTD = .text:0x801122A4; // type:function size:0x24 +ReverbSTDCreate = .text:0x801122C8; // type:function size:0x428 +fn_801126F0 = .text:0x801126F0; // type:function size:0x3B4 scope:local +ReverbSTDCallback = .text:0x80112AA4; // type:function size:0x24 +ReverbSTDFree = .text:0x80112AC8; // type:function size:0xBC +sndAuxCallbackReverbHI = .text:0x80112B84; // type:function size:0x5C +sndAuxCallbackPrepareReverbHI = .text:0x80112BE0; // type:function size:0x40 +sndAuxCallbackShutdownReverbHI = .text:0x80112C20; // type:function size:0x24 +ReverbHICreate = .text:0x80112C44; // type:function size:0x50C +DoCrossTalk = .text:0x80113150; // type:function size:0x190 scope:local +HandleReverb = .text:0x801132E0; // type:function size:0x50C +ReverbHICallback = .text:0x801137EC; // type:function size:0xE0 +ReverbHIFree = .text:0x801138CC; // type:function size:0xBC +sndAuxCallbackDelay = .text:0x80113988; // type:function size:0x168 +sndAuxCallbackUpdateSettingsDelay = .text:0x80113AF0; // type:function size:0x1D0 +sndAuxCallbackPrepareDelay = .text:0x80113CC0; // type:function size:0x28 +sndAuxCallbackShutdownDelay = .text:0x80113CE8; // type:function size:0x4C +do_src1 = .text:0x80113D34; // type:function size:0x198 scope:local +do_src2 = .text:0x80113ECC; // type:function size:0x1EC scope:local +sndAuxCallbackChorus = .text:0x801140B8; // type:function size:0x2BC +sndAuxCallbackPrepareChorus = .text:0x80114374; // type:function size:0x200 +sndAuxCallbackShutdownChorus = .text:0x80114574; // type:function size:0x28 +DBClose = .text:0x8011459C; // type:function size:0x4 scope:global +DBOpen = .text:0x801145A0; // type:function size:0x4 scope:global +DBWrite = .text:0x801145A4; // type:function size:0x260 scope:global +DBRead = .text:0x80114804; // type:function size:0x8C scope:global +DBQueryData = .text:0x80114890; // type:function size:0x9C scope:global +DBInitInterrupts = .text:0x8011492C; // type:function size:0x54 scope:global +DBInitComm = .text:0x80114980; // type:function size:0x78 scope:global +DBGHandler = .text:0x801149F8; // type:function size:0x40 +MWCallback = .text:0x80114A38; // type:function size:0x3C +DBGReadStatus = .text:0x80114A74; // type:function size:0xAC +DBGWrite = .text:0x80114B20; // type:function size:0xDC +DBGRead = .text:0x80114BFC; // type:function size:0xDC +DBGReadMailbox = .text:0x80114CD8; // type:function size:0xAC +DBGEXIImm = .text:0x80114D84; // type:function size:0x298 +EXI2_Init = .text:0x8011501C; // type:function size:0x4 scope:global +EXI2_EnableInterrupts = .text:0x80115020; // type:function size:0x4 scope:global +EXI2_Poll = .text:0x80115024; // type:function size:0x8 scope:global +EXI2_ReadN = .text:0x8011502C; // type:function size:0x8 scope:global +EXI2_WriteN = .text:0x80115034; // type:function size:0x8 scope:global +EXI2_Reserve = .text:0x8011503C; // type:function size:0x4 scope:global +EXI2_Unreserve = .text:0x80115040; // type:function size:0x4 scope:global +AMC_IsStub = .text:0x80115044; // type:function size:0x8 scope:global +Hu_IsStub = .text:0x8011504C; // type:function size:0x8 scope:weak +HuSetVecF = .text:0x80115054; // type:function size:0x10 +HuSubVecF = .text:0x80115064; // type:function size:0x34 +msmSysServer = .text:0x80115098; // type:function size:0x6C scope:local +msmSysSetAuxParam = .text:0x80115104; // type:function size:0x27C scope:local +msmSysLoadBaseGroup = .text:0x80115380; // type:function size:0x15C scope:local +msmSysSearchGroupStack = .text:0x801154DC; // type:function size:0xB4 scope:local +msmSysGroupInit = .text:0x80115590; // type:function size:0x31C scope:local +msmSysIrqDisable = .text:0x801158AC; // type:function size:0x48 +msmSysIrqEnable = .text:0x801158F4; // type:function size:0x48 +msmSysCheckBaseGroup = .text:0x8011593C; // type:function size:0x68 +msmSysGetGroupDataPtr = .text:0x801159A4; // type:function size:0xD8 +msmSysCheckLoadGroupID = .text:0x80115A7C; // type:function size:0xFC +msmSysRegularProc = .text:0x80115B78; // type:function size:0x4 +msmSysGetOutputMode = .text:0x80115B7C; // type:function size:0x14 +msmSysSetOutputMode = .text:0x80115B90; // type:function size:0xD8 +msmSysSetAux = .text:0x80115C68; // type:function size:0x114 +msmSysGetSampSize = .text:0x80115D7C; // type:function size:0x28 +msmSysDelGroupAll = .text:0x80115DA4; // type:function size:0x140 +msmSysDelGroupBase = .text:0x80115EE4; // type:function size:0x28C +msmSysLoadGroupBase = .text:0x80116170; // type:function size:0x298 +msmSysLoadGroupSet = .text:0x80116408; // type:function size:0x3F0 +msmSysLoadGroupSub = .text:0x801167F8; // type:function size:0x3B4 +msmSysLoadGroup = .text:0x80116BAC; // type:function size:0x278 +msmSysCheckInit = .text:0x80116E24; // type:function size:0x20 +msmSysInit = .text:0x80116E44; // type:function size:0x474 +msmMemFree = .text:0x801172B8; // type:function size:0xC8 +msmMemAlloc = .text:0x80117380; // type:function size:0x104 +msmMemInit = .text:0x80117484; // type:function size:0x64 +msmFioClose = .text:0x801174E8; // type:function size:0x30 +msmFioRead = .text:0x80117518; // type:function size:0x34 +msmFioOpen = .text:0x8011754C; // type:function size:0x2C +msmFioInit = .text:0x80117578; // type:function size:0x60 +msmMusPauseSub = .text:0x801175D8; // type:function size:0x154 scope:local +msmMusPauseFade = .text:0x8011772C; // type:function size:0x174 scope:local +msmMusFade = .text:0x801178A0; // type:function size:0x1BC scope:local +msmMusFdoutEnd = .text:0x80117A5C; // type:function size:0x4 +msmMusPeriodicProc = .text:0x80117A60; // type:function size:0x1CC +msmMusGetMidiCtrl = .text:0x80117C2C; // type:function size:0x9C +msmMusGetNumPlay = .text:0x80117CC8; // type:function size:0x38 +msmMusGetStatus = .text:0x80117D00; // type:function size:0x3C +msmMusSetMasterVolume = .text:0x80117D3C; // type:function size:0x30 +msmMusSetParam = .text:0x80117D6C; // type:function size:0x16C +msmMusPauseAll = .text:0x80117ED8; // type:function size:0x88 +msmMusPause = .text:0x80117F60; // type:function size:0x74 +msmMusStopAll = .text:0x80117FD4; // type:function size:0x134 +msmMusStop = .text:0x80118108; // type:function size:0xCC +msmMusPlay = .text:0x801181D4; // type:function size:0x328 +msmMusInit = .text:0x801184FC; // type:function size:0x174 +msmSeFade = .text:0x80118670; // type:function size:0x250 scope:local +msmSePauseSub = .text:0x801188C0; // type:function size:0x184 scope:local +msmSePeriodicProc = .text:0x80118A44; // type:function size:0x270 +msmSeGetIndexPtr = .text:0x80118CB4; // type:function size:0x30 +msmSeDelListener = .text:0x80118CE4; // type:function size:0x4C +msmSeUpdataListener = .text:0x80118D30; // type:function size:0xD8 +msmSeSetListener = .text:0x80118E08; // type:function size:0x13C +msmSeGetEntryID = .text:0x80118F44; // type:function size:0x74 +msmSeGetNumPlay = .text:0x80118FB8; // type:function size:0x38 +msmSeGetStatus = .text:0x80118FF0; // type:function size:0x60 +msmSeSetMasterVolume = .text:0x80119050; // type:function size:0x30 +msmSeSetParam = .text:0x80119080; // type:function size:0x320 +msmSePauseAll = .text:0x801193A0; // type:function size:0x80 +msmSeStopAll = .text:0x80119420; // type:function size:0x168 +msmSeStop = .text:0x80119588; // type:function size:0xFC +msmSePlay = .text:0x80119684; // type:function size:0x480 +msmSeInit = .text:0x80119B04; // type:function size:0x130 +msmStreamGetStatus = .text:0x80119C34; // type:function size:0xC8 +msmStreamSetMasterVolume = .text:0x80119CFC; // type:function size:0x118 +msmStreamStopAll = .text:0x80119E14; // type:function size:0xE0 +msmStreamStop = .text:0x80119EF4; // type:function size:0x204 +msmStreamPlay = .text:0x8011A0F8; // type:function size:0x88 +msmStreamPeriodicProc = .text:0x8011A180; // type:function size:0x8C +msmStreamSetOutputMode = .text:0x8011A20C; // type:function size:0x114 +msmStreamAmemFree = .text:0x8011A320; // type:function size:0x68 +msmStreamAmemAlloc = .text:0x8011A388; // type:function size:0x10C +msmStreamInit = .text:0x8011A494; // type:function size:0x2A8 +msmStreamPauseOff = .text:0x8011A73C; // type:function size:0x2B8 +msmStreamPauseOn = .text:0x8011A9F4; // type:function size:0x1AC +msmStreamPauseFade = .text:0x8011ABA0; // type:function size:0x2E8 +msmStreamFade = .text:0x8011AE88; // type:function size:0x33C +msmStreamStopSub = .text:0x8011B1C4; // type:function size:0x13C scope:local +msmStreamSetParamSub = .text:0x8011B300; // type:function size:0xE0 scope:local +msmStreamPackStartStereo = .text:0x8011B3E0; // type:function size:0x448 +msmStreamPackStartMono = .text:0x8011B828; // type:function size:0x2DC +msmStreamSlotOff = .text:0x8011BB04; // type:function size:0xD0 +msmStreamData = .text:0x8011BBD4; // type:function size:0x320 scope:local +msmStreamDvdCallback = .text:0x8011BEF4; // type:function size:0x4A8 scope:local +msmStreamDvdCallback2 = .text:0x8011C39C; // type:function size:0x188 scope:local +msmStreamUpdateFunc = .text:0x8011C524; // type:function size:0x17C scope:local +msmStreamSlotInit = .text:0x8011C6A0; // type:function size:0x214 scope:local +_kerent = .text:0x8011C8B4; // type:function size:0xFE4 +_ctors = .ctors:0x8011D8A0; // type:label scope:global data:4byte +__init_cpp_exceptions_reference = .ctors:0x8011D8A0; // type:object size:0x4 scope:global +_dtors = .dtors:0x8011D8C0; // type:label scope:global data:4byte +__destroy_global_chain_reference = .dtors:0x8011D8C0; // type:object size:0x4 scope:global +__fini_cpp_exceptions_reference = .dtors:0x8011D8C4; // type:object size:0x4 scope:global +lbl_8011D8E0 = .rodata:0x8011D8E0; // type:object size:0x10 scope:local data:4byte +lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 scope:local data:4byte +lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 scope:local data:4byte +lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 scope:local data:byte +lbl_8011D930 = .rodata:0x8011D930; // type:object size:0x10 data:4byte +lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 scope:local data:4byte +lbl_8011D964 = .rodata:0x8011D964; // type:object size:0xC scope:local data:4byte +lbl_8011D970 = .rodata:0x8011D970; // type:object size:0x20 scope:local data:4byte +lbl_8011D990 = .rodata:0x8011D990; // type:object size:0x7C scope:local data:4byte +lbl_8011DA0C = .rodata:0x8011DA0C; // type:object size:0x24 scope:local data:4byte +lbl_8011DA30 = .rodata:0x8011DA30; // type:object size:0x10 scope:local data:4byte +lbl_8011DA40 = .rodata:0x8011DA40; // type:object size:0x38 data:4byte +lbl_8011DA78 = .rodata:0x8011DA78; // type:object size:0x38 data:4byte +lbl_8011DAB0 = .rodata:0x8011DAB0; // type:object size:0x20 data:4byte +lbl_8011DAD0 = .rodata:0x8011DAD0; // type:object size:0x10 data:4byte +lbl_8011DAE0 = .rodata:0x8011DAE0; // type:object size:0x90 data:4byte +lbl_8011DB70 = .rodata:0x8011DB70; // type:object size:0x20 data:4byte +lbl_8011DB90 = .rodata:0x8011DB90; // type:object size:0x20 data:4byte +lbl_8011DBB0 = .rodata:0x8011DBB0; // type:object size:0x20 +lbl_8011DBD0 = .rodata:0x8011DBD0; // type:object size:0x20 +lbl_8011DBF0 = .rodata:0x8011DBF0; // type:object size:0x10 +lbl_8011DC00 = .rodata:0x8011DC00; // type:object size:0x20 data:4byte +lbl_8011DC20 = .rodata:0x8011DC20; // type:object size:0x24 +lbl_8011DC44 = .rodata:0x8011DC44; // type:object size:0x4C +lbl_8011DC90 = .rodata:0x8011DC90; // type:object size:0x68 data:4byte +lbl_8011DCF8 = .rodata:0x8011DCF8; // type:object size:0x38 data:4byte +lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x3C data:4byte +lbl_8011DD6C = .rodata:0x8011DD6C; // type:object size:0x14 data:2byte +lbl_8011DD80 = .rodata:0x8011DD80; // type:object size:0x20 data:4byte +lbl_8011DDA0 = .rodata:0x8011DDA0; // type:object size:0x20 data:4byte +lbl_8011DDC0 = .rodata:0x8011DDC0; // type:object size:0x20 data:4byte +lbl_8011DDE0 = .rodata:0x8011DDE0; // type:object size:0x20 data:4byte +lbl_8011DE00 = .rodata:0x8011DE00; // type:object size:0xC data:4byte +lbl_8011DE0C = .rodata:0x8011DE0C; // type:object size:0xC data:4byte +lbl_8011DE18 = .rodata:0x8011DE18; // type:object size:0xC data:4byte +lbl_8011DE24 = .rodata:0x8011DE24; // type:object size:0xC data:4byte +lbl_8011DE30 = .rodata:0x8011DE30; // type:object size:0x18 +lbl_8011DE48 = .rodata:0x8011DE48; // type:object size:0x70 data:4byte +lbl_8011DEB8 = .rodata:0x8011DEB8; // type:object size:0xC data:byte +lbl_8011DEC4 = .rodata:0x8011DEC4; // type:object size:0x1C +lbl_8011DEE0 = .rodata:0x8011DEE0; // type:object size:0x24 data:4byte +lbl_8011DF04 = .rodata:0x8011DF04; // type:object size:0x20 data:4byte +lbl_8011DF24 = .rodata:0x8011DF24; // type:object size:0x2C data:4byte +lbl_8011DF50 = .rodata:0x8011DF50; // type:object size:0x10 data:4byte +lbl_8011DF60 = .rodata:0x8011DF60; // type:object size:0x28 data:4byte +lbl_8011DF88 = .rodata:0x8011DF88; // type:object size:0x28 data:4byte +lbl_8011DFB0 = .rodata:0x8011DFB0; // type:object size:0x20 data:4byte +lbl_8011DFD0 = .rodata:0x8011DFD0; // type:object size:0x20 data:4byte +lbl_8011DFF0 = .rodata:0x8011DFF0; // type:object size:0x20 data:4byte +lbl_8011E010 = .rodata:0x8011E010; // type:object size:0x10 data:4byte +lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x90 data:byte +lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 +lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x10 +lbl_8011E0D0 = .rodata:0x8011E0D0; // type:object size:0x18 data:double +lbl_8011E0E8 = .rodata:0x8011E0E8; // type:object size:0x54 +lbl_8011E13C = .rodata:0x8011E13C; // type:object size:0x14 +lbl_8011E150 = .rodata:0x8011E150; // type:object size:0x10 +lbl_8011E160 = .rodata:0x8011E160; // type:object size:0x20 +lbl_8011E180 = .rodata:0x8011E180; // type:object size:0x38 +lbl_8011E1B8 = .rodata:0x8011E1B8; // type:object size:0x40 +lbl_8011E1F8 = .rodata:0x8011E1F8; // type:object size:0x18 data:4byte +lbl_8011E210 = .rodata:0x8011E210; // type:object size:0xE0 +@stringBase0 = .rodata:0x8011E2F0; // type:object size:0x25 scope:local data:string_table +lbl_8011E318 = .rodata:0x8011E318; // type:object size:0x10 +lbl_8011E328 = .rodata:0x8011E328; // type:object size:0x30 data:double +lbl_8011E358 = .rodata:0x8011E358; // type:object size:0x108 +lbl_8011E460 = .rodata:0x8011E460; // type:object size:0x80 +lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 +lbl_8011E4F0 = .rodata:0x8011E4F0; // type:object size:0x40 data:double +lbl_8011E530 = .rodata:0x8011E530; // type:object size:0x68 data:double +lbl_8011E598 = .rodata:0x8011E598; // type:object size:0x98 +@62 = .rodata:0x8011E630; // type:object size:0x1B scope:local data:string +lbl_8011E650 = .rodata:0x8011E650; // type:object size:0x20 +lbl_8011E670 = .rodata:0x8011E670; // type:object size:0x10 data:4byte +lbl_8011E680 = .rodata:0x8011E680; // type:object size:0x28 data:4byte +lbl_8011E6A8 = .rodata:0x8011E6A8; // type:object size:0x28 data:4byte +lbl_8011E6D0 = .rodata:0x8011E6D0; // type:object size:0x28 data:4byte +@154 = .rodata:0x8011E6F8; // type:object size:0x21 scope:local data:string +@155 = .rodata:0x8011E71C; // type:object size:0x24 scope:local data:string +lbl_8011E740 = .rodata:0x8011E740; // type:object size:0x40 +lbl_8011E780 = .rodata:0x8011E780; // type:object size:0x18 +lbl_8011E798 = .rodata:0x8011E798; // type:object size:0x88 +lbl_8011E820 = .rodata:0x8011E820; // type:object size:0x88 data:byte +lbl_8011E8A8 = .rodata:0x8011E8A8; // type:object size:0x100 +lbl_8011E9C0 = .data:0x8011E9C0; // type:object size:0x10 scope:local data:string +chanTbl = .data:0x8011E9D0; // type:object size:0x10 scope:local +correctDiskID = .data:0x8011E9E0; // type:object size:0x124 scope:local +jumptable_8011EB04 = .data:0x8011EB04; // type:object size:0x34 scope:local +lbl_8011EB38 = .data:0x8011EB38; // type:object size:0x11 scope:local data:string +lbl_8011EB49 = .data:0x8011EB49; // type:object size:0x11 scope:local data:string +lbl_8011EB5A = .data:0x8011EB5A; // type:object size:0x10 scope:local data:string +lbl_8011EB6A = .data:0x8011EB6A; // type:object size:0x10 scope:local data:string +lbl_8011EB7A = .data:0x8011EB7A; // type:object size:0x14 scope:local data:string +lbl_8011EB8E = .data:0x8011EB8E; // type:object size:0x11 scope:local data:string +lbl_8011EB9F = .data:0x8011EB9F; // type:object size:0x10 scope:local data:string +lbl_8011EBAF = .data:0x8011EBAF; // type:object size:0xF scope:local data:string +lbl_8011EBBE = .data:0x8011EBBE; // type:object size:0x10 scope:local data:string +lbl_8011EBCE = .data:0x8011EBCE; // type:object size:0x13 scope:local data:string +lbl_8011EBE1 = .data:0x8011EBE1; // type:object size:0xF scope:local data:string +lbl_8011EBF0 = .data:0x8011EBF0; // type:object size:0x13 scope:local data:string +lbl_8011EC03 = .data:0x8011EC03; // type:object size:0x13 scope:local data:string +lbl_8011EC16 = .data:0x8011EC16; // type:object size:0x12 scope:local data:string +lbl_8011EC28 = .data:0x8011EC28; // type:object size:0x10 scope:local data:string +lbl_8011EC38 = .data:0x8011EC38; // type:object size:0x14 scope:local data:string +lbl_8011EC4C = .data:0x8011EC4C; // type:object size:0x14 scope:local data:string +lbl_8011EC60 = .data:0x8011EC60; // type:object size:0x13 scope:local data:string +lbl_8011EC73 = .data:0x8011EC73; // type:object size:0x10 scope:local data:string +lbl_8011EC83 = .data:0x8011EC83; // type:object size:0x11 scope:local data:string +lbl_8011EC94 = .data:0x8011EC94; // type:object size:0xE scope:local data:string +lbl_8011ECA2 = .data:0x8011ECA2; // type:object size:0x12 scope:local data:string +lbl_8011ECB4 = .data:0x8011ECB4; // type:object size:0x11 scope:local data:string +lbl_8011ECC5 = .data:0x8011ECC5; // type:object size:0xF scope:local data:string +lbl_8011ECD4 = .data:0x8011ECD4; // type:object size:0x13 scope:local data:string +lbl_8011ECE7 = .data:0x8011ECE7; // type:object size:0x13 scope:local data:string +lbl_8011ECFA = .data:0x8011ECFA; // type:object size:0x12 scope:local data:string +lbl_8011ED0C = .data:0x8011ED0C; // type:object size:0xE scope:local data:string +lbl_8011ED1A = .data:0x8011ED1A; // type:object size:0xE scope:local data:string +lbl_8011ED28 = .data:0x8011ED28; // type:object size:0xE scope:local data:string +lbl_8011ED36 = .data:0x8011ED36; // type:object size:0xE scope:local data:string +lbl_8011ED44 = .data:0x8011ED44; // type:object size:0xE scope:local data:string +lbl_8011ED52 = .data:0x8011ED52; // type:object size:0xE scope:local data:string +lbl_8011ED60 = .data:0x8011ED60; // type:object size:0xE scope:local data:string +lbl_8011ED6E = .data:0x8011ED6E; // type:object size:0xE scope:local data:string +lbl_8011ED7C = .data:0x8011ED7C; // type:object size:0xE scope:local data:string +lbl_8011ED8A = .data:0x8011ED8A; // type:object size:0xE scope:local data:string +lbl_8011ED98 = .data:0x8011ED98; // type:object size:0xE scope:local data:string +lbl_8011EDA6 = .data:0x8011EDA6; // type:object size:0xE scope:local data:string +lbl_8011EDB4 = .data:0x8011EDB4; // type:object size:0xE scope:local data:string +lbl_8011EDC2 = .data:0x8011EDC2; // type:object size:0xE scope:local data:string +lbl_8011EDD0 = .data:0x8011EDD0; // type:object size:0xE scope:local data:string +lbl_8011EDDE = .data:0x8011EDDE; // type:object size:0xE scope:local data:string +lbl_8011EDEC = .data:0x8011EDEC; // type:object size:0xE scope:local data:string +lbl_8011EDFA = .data:0x8011EDFA; // type:object size:0xE scope:local data:string +lbl_8011EE08 = .data:0x8011EE08; // type:object size:0xE scope:local data:string +lbl_8011EE16 = .data:0x8011EE16; // type:object size:0xE scope:local data:string +lbl_8011EE24 = .data:0x8011EE24; // type:object size:0xE scope:local data:string +lbl_8011EE32 = .data:0x8011EE32; // type:object size:0xE scope:local data:string +lbl_8011EE40 = .data:0x8011EE40; // type:object size:0xE scope:local data:string +lbl_8011EE4E = .data:0x8011EE4E; // type:object size:0xE scope:local data:string +lbl_8011EE5C = .data:0x8011EE5C; // type:object size:0xE scope:local data:string +lbl_8011EE6A = .data:0x8011EE6A; // type:object size:0xE scope:local data:string +lbl_8011EE78 = .data:0x8011EE78; // type:object size:0xE scope:local data:string +lbl_8011EE86 = .data:0x8011EE86; // type:object size:0xE scope:local data:string +lbl_8011EE94 = .data:0x8011EE94; // type:object size:0xE scope:local data:string +lbl_8011EEA2 = .data:0x8011EEA2; // type:object size:0xE scope:local data:string +lbl_8011EEB0 = .data:0x8011EEB0; // type:object size:0xE scope:local data:string +lbl_8011EEBE = .data:0x8011EEBE; // type:object size:0xE scope:local data:string +lbl_8011EECC = .data:0x8011EECC; // type:object size:0xE scope:local data:string +lbl_8011EEDA = .data:0x8011EEDA; // type:object size:0xE scope:local data:string +lbl_8011EEE8 = .data:0x8011EEE8; // type:object size:0xE scope:local data:string +lbl_8011EEF6 = .data:0x8011EEF6; // type:object size:0xE scope:local data:string +lbl_8011EF04 = .data:0x8011EF04; // type:object size:0xE scope:local data:string +lbl_8011EF12 = .data:0x8011EF12; // type:object size:0xE scope:local data:string +lbl_8011EF20 = .data:0x8011EF20; // type:object size:0xE scope:local data:string +lbl_8011EF2E = .data:0x8011EF2E; // type:object size:0xE scope:local data:string +lbl_8011EF3C = .data:0x8011EF3C; // type:object size:0xE scope:local data:string +lbl_8011EF4A = .data:0x8011EF4A; // type:object size:0xE scope:local data:string +lbl_8011EF58 = .data:0x8011EF58; // type:object size:0xE scope:local data:string +lbl_8011EF66 = .data:0x8011EF66; // type:object size:0xE scope:local data:string +lbl_8011EF74 = .data:0x8011EF74; // type:object size:0xE scope:local data:string +lbl_8011EF82 = .data:0x8011EF82; // type:object size:0xE scope:local data:string +lbl_8011EF90 = .data:0x8011EF90; // type:object size:0xE scope:local data:string +lbl_8011EF9E = .data:0x8011EF9E; // type:object size:0xE scope:local data:string +lbl_8011EFAC = .data:0x8011EFAC; // type:object size:0xE scope:local data:string +lbl_8011EFBA = .data:0x8011EFBA; // type:object size:0xE scope:local data:string +lbl_8011EFC8 = .data:0x8011EFC8; // type:object size:0xE scope:local data:string +lbl_8011EFD6 = .data:0x8011EFD6; // type:object size:0xE scope:local data:string +lbl_8011EFE4 = .data:0x8011EFE4; // type:object size:0xE scope:local data:string +lbl_8011EFF2 = .data:0x8011EFF2; // type:object size:0xE scope:local data:string +lbl_8011F000 = .data:0x8011F000; // type:object size:0xE scope:local data:string +lbl_8011F00E = .data:0x8011F00E; // type:object size:0xE scope:local data:string +lbl_8011F01C = .data:0x8011F01C; // type:object size:0xE scope:local data:string +lbl_8011F02A = .data:0x8011F02A; // type:object size:0xE scope:local data:string +lbl_8011F038 = .data:0x8011F038; // type:object size:0xE scope:local data:string +lbl_8011F046 = .data:0x8011F046; // type:object size:0xE scope:local data:string +lbl_8011F054 = .data:0x8011F054; // type:object size:0xE scope:local data:string +lbl_8011F062 = .data:0x8011F062; // type:object size:0xE scope:local data:string +lbl_8011F070 = .data:0x8011F070; // type:object size:0xE scope:local data:string +lbl_8011F07E = .data:0x8011F07E; // type:object size:0xE scope:local data:string +lbl_8011F08C = .data:0x8011F08C; // type:object size:0xE scope:local data:string +lbl_8011F09A = .data:0x8011F09A; // type:object size:0xF scope:local data:string +lbl_8011F0A9 = .data:0x8011F0A9; // type:object size:0x13 scope:local data:string +lbl_8011F0BC = .data:0x8011F0BC; // type:object size:0x13 scope:local data:string +lbl_8011F0CF = .data:0x8011F0CF; // type:object size:0x12 scope:local data:string +lbl_8011F0E1 = .data:0x8011F0E1; // type:object size:0xE scope:local data:string +lbl_8011F0EF = .data:0x8011F0EF; // type:object size:0x11 scope:local data:string +lbl_8011F100 = .data:0x8011F100; // type:object size:0x10 scope:local data:string +lbl_8011F110 = .data:0x8011F110; // type:object size:0x11 scope:local data:string +lbl_8011F121 = .data:0x8011F121; // type:object size:0xE scope:local data:string +lbl_8011F12F = .data:0x8011F12F; // type:object size:0x10 scope:local data:string +lbl_8011F13F = .data:0x8011F13F; // type:object size:0x11 scope:local data:string +lbl_8011F150 = .data:0x8011F150; // type:object size:0x11 scope:local data:string +lbl_8011F161 = .data:0x8011F161; // type:object size:0x11 scope:local data:string +lbl_8011F172 = .data:0x8011F172; // type:object size:0x10 scope:local data:string +lbl_8011F182 = .data:0x8011F182; // type:object size:0xF scope:local data:string +lbl_8011F191 = .data:0x8011F191; // type:object size:0x13 scope:local data:string +lbl_8011F1A4 = .data:0x8011F1A4; // type:object size:0x13 scope:local data:string +lbl_8011F1B7 = .data:0x8011F1B7; // type:object size:0x12 scope:local data:string +lbl_8011F1C9 = .data:0x8011F1C9; // type:object size:0x11 scope:local data:string +lbl_8011F1DA = .data:0x8011F1DA; // type:object size:0x10 scope:local data:string +lbl_8011F1EA = .data:0x8011F1EA; // type:object size:0xD scope:local data:string +lbl_8011F1F7 = .data:0x8011F1F7; // type:object size:0x11 scope:local data:string +lbl_8011F208 = .data:0x8011F208; // type:object size:0xF scope:local data:string +lbl_8011F217 = .data:0x8011F217; // type:object size:0xF scope:local data:string +lbl_8011F226 = .data:0x8011F226; // type:object size:0xF scope:local data:string +lbl_8011F235 = .data:0x8011F235; // type:object size:0xD scope:local data:string +lbl_8011F242 = .data:0x8011F242; // type:object size:0xD scope:local data:string +lbl_8011F24F = .data:0x8011F24F; // type:object size:0xD scope:local data:string +lbl_8011F25C = .data:0x8011F25C; // type:object size:0xD scope:local data:string +lbl_8011F269 = .data:0x8011F269; // type:object size:0xD scope:local data:string +lbl_8011F276 = .data:0x8011F276; // type:object size:0xD scope:local data:string +lbl_8011F283 = .data:0x8011F283; // type:object size:0xD scope:local data:string +lbl_8011F290 = .data:0x8011F290; // type:object size:0xD scope:local data:string +lbl_8011F29D = .data:0x8011F29D; // type:object size:0xD scope:local data:string +lbl_8011F2AA = .data:0x8011F2AA; // type:object size:0x11 scope:local data:string +lbl_8011F2BB = .data:0x8011F2BB; // type:object size:0x15 scope:local data:string +lbl_8011F2D0 = .data:0x8011F2D0; // type:object size:0x15 scope:local data:string +lbl_8011F2E5 = .data:0x8011F2E5; // type:object size:0x14 scope:local data:string +lbl_8011F2F9 = .data:0x8011F2F9; // type:object size:0xF scope:local data:string +lbl_8011F308 = .data:0x8011F308; // type:object size:0x13 scope:local data:string +lbl_8011F31B = .data:0x8011F31B; // type:object size:0x13 scope:local data:string +lbl_8011F32E = .data:0x8011F32E; // type:object size:0x12 scope:local data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0xD scope:local data:string +lbl_8011F34D = .data:0x8011F34D; // type:object size:0xF scope:local data:string +lbl_8011F35C = .data:0x8011F35C; // type:object size:0x13 scope:local data:string +lbl_8011F36F = .data:0x8011F36F; // type:object size:0x13 scope:local data:string +lbl_8011F382 = .data:0x8011F382; // type:object size:0x12 scope:local data:string +lbl_8011F394 = .data:0x8011F394; // type:object size:0x10 scope:local +DataDirStat = .data:0x8011F3A4; // type:object size:0x468 scope:local data:4byte +lbl_8011F80C = .data:0x8011F80C; // type:object size:0x1D scope:local data:string +lbl_8011F829 = .data:0x8011F829; // type:object size:0x1F scope:local data:string +lbl_8011F848 = .data:0x8011F848; // type:object size:0x3C scope:local +lbl_8011F884 = .data:0x8011F884; // type:object size:0x1A data:string +lbl_8011F89E = .data:0x8011F89E; // type:object size:0x122 +lbl_8011F9C0 = .data:0x8011F9C0; // type:object size:0x20 scope:local +ank8x8_4b = .data:0x8011F9E0; // type:object size:0x2000 align:32 +lbl_801219E0 = .data:0x801219E0; // type:object size:0x150 scope:local +HeapSizeTbl = .data:0x80121B30; // type:object size:0x78 scope:local +lbl_80121BA8 = .data:0x80121BA8; // type:object size:0x50 scope:local +lbl_80121BF8 = .data:0x80121BF8; // type:object size:0x128 scope:local +fcoltbl = .data:0x80121D20; // type:object size:0x40 scope:local align:32 +lbl_80121D60 = .data:0x80121D60; // type:object size:0x1F scope:local data:string +lbl_80121D7F = .data:0x80121D7F; // type:object size:0x31 scope:local +lbl_80121DB0 = .data:0x80121DB0; // type:object size:0x12 scope:local +lbl_80121DC2 = .data:0x80121DC2; // type:object size:0x10E scope:local +jumptable_80121ED0 = .data:0x80121ED0; // type:object size:0x2C scope:local +jumptable_80121F00 = .data:0x80121F00; // type:object size:0x28 scope:local +jumptable_80121F28 = .data:0x80121F28; // type:object size:0x2C scope:local +lbl_80121F54 = .data:0x80121F54; // type:object size:0x1C scope:local +texMtxTbl = .data:0x80121F70; // type:object size:0xC data:byte +jumptable_80121F7C = .data:0x80121F7C; // type:object size:0x28 scope:local +lbl_80121FA4 = .data:0x80121FA4; // type:object size:0x18 scope:local data:string +jumptable_80121FBC = .data:0x80121FBC; // type:object size:0x28 scope:local +jumptable_80121FE4 = .data:0x80121FE4; // type:object size:0x28 scope:local +refMtx = .data:0x8012200C; // type:object size:0x30 scope:local +kColorSelTbl = .data:0x8012203C; // type:object size:0x30 scope:local +kColorTbl = .data:0x8012206C; // type:object size:0x10 scope:local +kColorSelTbl2 = .data:0x8012207C; // type:object size:0x10 scope:local +kColorSelATbl = .data:0x8012208C; // type:object size:0x10 scope:local +lbl_8012209C = .data:0x8012209C; // type:object size:0x14 scope:local +jumptable_801220B0 = .data:0x801220B0; // type:object size:0x30 scope:local +jumptable_801220E0 = .data:0x801220E0; // type:object size:0x28 scope:local +jumptable_80122108 = .data:0x80122108; // type:object size:0x28 scope:local +lbl_80122130 = .data:0x80122130; // type:object size:0x19 scope:local data:string +lbl_80122149 = .data:0x80122149; // type:object size:0xA scope:local data:string +lbl_80122153 = .data:0x80122153; // type:object size:0x2D scope:local +refMapData0 = .data:0x80122180; // type:object size:0x1240 align:32 noreloc +refMapData1 = .data:0x801233C0; // type:object size:0x1100 align:32 noreloc +refMapData2 = .data:0x801244C0; // type:object size:0x2080 align:32 noreloc +refMapData3 = .data:0x80126540; // type:object size:0x2080 align:32 noreloc +refMapData4 = .data:0x801285C0; // type:object size:0x2080 align:32 noreloc +toonMapData = .data:0x8012A640; // type:object size:0x880 align:32 noreloc +toonMapData2 = .data:0x8012AEC0; // type:object size:0x1080 align:32 noreloc +hiliteData = .data:0x8012BF40; // type:object size:0x480 align:32 noreloc +hiliteData2 = .data:0x8012C3C0; // type:object size:0x480 align:32 noreloc +hiliteData3 = .data:0x8012C840; // type:object size:0x480 align:32 noreloc +hiliteData4 = .data:0x8012CCC0; // type:object size:0x480 align:32 noreloc +lbl_8012D140 = .data:0x8012D140; // type:object size:0x1B scope:local data:string +lbl_8012D15B = .data:0x8012D15B; // type:object size:0x16 scope:local data:string +lbl_8012D171 = .data:0x8012D171; // type:object size:0x21 scope:local data:string +lbl_8012D192 = .data:0x8012D192; // type:object size:0x26 scope:local +defCamera = .data:0x8012D1B8; // type:object size:0x58 data:4byte +lbl_8012D210 = .data:0x8012D210; // type:object size:0x28 scope:local +lbl_8012D238 = .data:0x8012D238; // type:object size:0x1C scope:local data:string +lbl_8012D254 = .data:0x8012D254; // type:object size:0x1C scope:local +jumptable_8012D270 = .data:0x8012D270; // type:object size:0x2C scope:local +jumptable_8012D29C = .data:0x8012D29C; // type:object size:0x68 scope:local +jumptable_8012D304 = .data:0x8012D304; // type:object size:0xF0 scope:local +jumptable_8012D3F4 = .data:0x8012D3F4; // type:object size:0x20 scope:local +lbl_8012D418 = .data:0x8012D418; // type:object size:0x15 scope:local data:string +lbl_8012D42D = .data:0x8012D42D; // type:object size:0x1F scope:local data:string +lbl_8012D44C = .data:0x8012D44C; // type:object size:0x18 scope:local +basePos = .data:0x8012D464; // type:object size:0x30 scope:local +baseST = .data:0x8012D494; // type:object size:0x20 scope:local +jitterTbl = .data:0x8012D4B4; // type:object size:0x24 scope:local +jumptable_8012D4D8 = .data:0x8012D4D8; // type:object size:0x1C scope:local +lbl_8012D4F8 = .data:0x8012D4F8; // type:object size:0xCA scope:local +lbl_8012D5C2 = .data:0x8012D5C2; // type:object size:0x1C scope:local data:string +lbl_8012D5DE = .data:0x8012D5DE; // type:object size:0x1C scope:local data:string +lbl_8012D5FA = .data:0x8012D5FA; // type:object size:0x1D scope:local data:string +lbl_8012D617 = .data:0x8012D617; // type:object size:0x18 scope:local data:string +lbl_8012D62F = .data:0x8012D62F; // type:object size:0xC scope:local data:string +lbl_8012D63B = .data:0x8012D63B; // type:object size:0x45 scope:local +lbl_8012D680 = .data:0x8012D680; // type:object size:0x45 scope:local +lbl_8012D6C5 = .data:0x8012D6C5; // type:object size:0x19 scope:local data:string +lbl_8012D6DE = .data:0x8012D6DE; // type:object size:0x17 scope:local data:string +lbl_8012D6F5 = .data:0x8012D6F5; // type:object size:0x1B3 scope:local +XFB_Colors = .data:0x8012D8A8; // type:object size:0xF scope:local data:byte +Ascii8x8_1bpp = .data:0x8012D8B7; // type:object size:0x800 scope:local align:1 +lbl_8012E0B7 = .data:0x8012E0B7; // type:object size:0x19 scope:local +lbl_8012E0D0 = .data:0x8012E0D0; // type:object size:0x21A scope:local +lbl_8012E2EA = .data:0x8012E2EA; // type:object size:0xB scope:local data:string +lbl_8012E2F5 = .data:0x8012E2F5; // type:object size:0x273 scope:local +lbl_8012E568 = .data:0x8012E568; // type:object size:0x12 scope:local data:string +lbl_8012E57A = .data:0x8012E57A; // type:object size:0xD6 scope:local +sndGrpTable = .data:0x8012E650; // type:object size:0x5B0 +lbl_8012EC00 = .data:0x8012EC00; // type:object size:0x94 scope:local +lbl_8012EC94 = .data:0x8012EC94; // type:object size:0x11 scope:local data:string +lbl_8012ECA5 = .data:0x8012ECA5; // type:object size:0x3A scope:local +lbl_8012ECDF = .data:0x8012ECDF; // type:object size:0x31 scope:local +seqInfoTbl = .data:0x8012ED10; // type:object size:0x1DC scope:local +seqType2SprTbl = .data:0x8012EEEC; // type:object size:0x18 scope:local +mgSeqTypeTbl = .data:0x8012EF04; // type:object size:0x12 scope:local data:2byte +lbl_8012F336 = .data:0x8012EF16; // type:object size:0x53 scope:local data:string +lbl_8012F389 = .data:0x8012EF69; // type:object size:0x9 scope:local data:string +lbl_8012F392 = .data:0x8012EF72; // type:object size:0x9 scope:local data:string +seqFontAlphaTbl = .data:0x8012EF7B; // type:object size:0x35 scope:local data:string +seqFontKanaTbl = .data:0x8012EFB0; // type:object size:0x52 scope:local data:string +seqFontNumTbl = .data:0x8012F002; // type:object size:0xB scope:local data:string +letterBufTbl = .data:0x8012F010; // type:object size:0x14 scope:local +wordMgTbl = .data:0x8012F024; // type:object size:0x18 scope:local +letterOfs$1005 = .data:0x8012F03C; // type:object size:0x40 scope:local data:float +letterOfs$1482 = .data:0x8012F07C; // type:object size:0x1C scope:local data:2byte +letterOfs$1856 = .data:0x8012F098; // type:object size:0x38 scope:local data:float +@1986 = .data:0x8012F0D0; // type:object size:0x9 scope:local data:string +@1988 = .data:0x8012F0D9; // type:object size:0xB scope:local data:string +winCharNameTbl = .data:0x8012F0E4; // type:object size:0x78 scope:local data:string_table +@1996 = .data:0x8012F15C; // type:object size:0xA scope:local data:string +winWordTbl = .data:0x8012F168; // type:object size:0x18 scope:local +winPosOfs = .data:0x8012F180; // type:object size:0x50 scope:local +practiceTbl = .data:0x8012F1D0; // type:object size:0xAC scope:local +yPosTbl$2429 = .data:0x8012F27C; // type:object size:0xC scope:local +seqStartFXTbl = .data:0x8012F288; // type:object size:0xEC scope:local +lbl_8012F378 = .data:0x8012F378; // type:object size:0x15 scope:local data:string +lbl_8012F38D = .data:0x8012F38D; // type:object size:0x10 scope:local data:string +lbl_8012F39D = .data:0x8012F39D; // type:object size:0x13 scope:local data:string +lbl_8012F3B0 = .data:0x8012F3B0; // type:object size:0x10 scope:local data:string +lbl_8012F3C0 = .data:0x8012F3C0; // type:object size:0x10 scope:local data:string +lbl_8012F3D0 = .data:0x8012F3D0; // type:object size:0x10 scope:local data:string +lbl_8012F3E0 = .data:0x8012F3E0; // type:object size:0x10 scope:local data:string +lbl_8012F3F0 = .data:0x8012F3F0; // type:object size:0x10 scope:local data:string +lbl_8012F400 = .data:0x8012F400; // type:object size:0x10 scope:local data:string +lbl_8012F410 = .data:0x8012F410; // type:object size:0x10 scope:local data:string +lbl_8012F420 = .data:0x8012F420; // type:object size:0x10 scope:local data:string +lbl_8012F430 = .data:0x8012F430; // type:object size:0x10 scope:local data:string +lbl_8012F440 = .data:0x8012F440; // type:object size:0x10 scope:local data:string +lbl_8012F450 = .data:0x8012F450; // type:object size:0x10 scope:local data:string +lbl_8012F460 = .data:0x8012F460; // type:object size:0x10 scope:local data:string +lbl_8012F470 = .data:0x8012F470; // type:object size:0x10 scope:local data:string +lbl_8012F480 = .data:0x8012F480; // type:object size:0x10 scope:local data:string +lbl_8012F490 = .data:0x8012F490; // type:object size:0x10 scope:local data:string +lbl_8012F4A0 = .data:0x8012F4A0; // type:object size:0x10 scope:local data:string +lbl_8012F4B0 = .data:0x8012F4B0; // type:object size:0x10 scope:local data:string +lbl_8012F4C0 = .data:0x8012F4C0; // type:object size:0x10 scope:local data:string +lbl_8012F4D0 = .data:0x8012F4D0; // type:object size:0x10 scope:local data:string +lbl_8012F4E0 = .data:0x8012F4E0; // type:object size:0x10 scope:local data:string +lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0x10 scope:local data:string +lbl_8012F500 = .data:0x8012F500; // type:object size:0x10 scope:local data:string +lbl_8012F510 = .data:0x8012F510; // type:object size:0x10 scope:local data:string +lbl_8012F520 = .data:0x8012F520; // type:object size:0x10 scope:local data:string +lbl_8012F530 = .data:0x8012F530; // type:object size:0x10 scope:local data:string +lbl_8012F540 = .data:0x8012F540; // type:object size:0x10 scope:local data:string +lbl_8012F550 = .data:0x8012F550; // type:object size:0x10 scope:local data:string +lbl_8012F560 = .data:0x8012F560; // type:object size:0x10 scope:local data:string +lbl_8012F570 = .data:0x8012F570; // type:object size:0x10 scope:local data:string +lbl_8012F580 = .data:0x8012F580; // type:object size:0x10 scope:local data:string +lbl_8012F590 = .data:0x8012F590; // type:object size:0x10 scope:local data:string +lbl_8012F5A0 = .data:0x8012F5A0; // type:object size:0x10 scope:local data:string +lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x10 scope:local data:string +lbl_8012F5C0 = .data:0x8012F5C0; // type:object size:0x10 scope:local data:string +lbl_8012F5D0 = .data:0x8012F5D0; // type:object size:0x10 scope:local data:string +lbl_8012F5E0 = .data:0x8012F5E0; // type:object size:0x10 scope:local data:string +lbl_8012F5F0 = .data:0x8012F5F0; // type:object size:0x10 scope:local data:string +lbl_8012F600 = .data:0x8012F600; // type:object size:0x10 scope:local data:string +lbl_8012F610 = .data:0x8012F610; // type:object size:0x10 scope:local data:string +lbl_8012F620 = .data:0x8012F620; // type:object size:0x10 scope:local data:string +lbl_8012F630 = .data:0x8012F630; // type:object size:0x10 scope:local data:string +lbl_8012F640 = .data:0x8012F640; // type:object size:0x10 scope:local data:string +lbl_8012F650 = .data:0x8012F650; // type:object size:0x10 scope:local data:string +lbl_8012F660 = .data:0x8012F660; // type:object size:0x10 scope:local data:string +lbl_8012F670 = .data:0x8012F670; // type:object size:0x10 scope:local data:string +lbl_8012F680 = .data:0x8012F680; // type:object size:0x10 scope:local data:string +lbl_8012F690 = .data:0x8012F690; // type:object size:0x10 scope:local data:string +lbl_8012F6A0 = .data:0x8012F6A0; // type:object size:0x10 scope:local data:string +lbl_8012F6B0 = .data:0x8012F6B0; // type:object size:0x10 scope:local data:string +lbl_8012F6C0 = .data:0x8012F6C0; // type:object size:0x10 scope:local data:string +lbl_8012F6D0 = .data:0x8012F6D0; // type:object size:0x10 scope:local data:string +lbl_8012F6E0 = .data:0x8012F6E0; // type:object size:0x10 scope:local data:string +lbl_8012F6F0 = .data:0x8012F6F0; // type:object size:0x10 scope:local data:string +lbl_8012F700 = .data:0x8012F700; // type:object size:0x10 scope:local data:string +lbl_8012F710 = .data:0x8012F710; // type:object size:0x10 scope:local data:string +lbl_8012F720 = .data:0x8012F720; // type:object size:0x10 scope:local data:string +lbl_8012F730 = .data:0x8012F730; // type:object size:0x10 scope:local data:string +lbl_8012F740 = .data:0x8012F740; // type:object size:0x10 scope:local data:string +lbl_8012F750 = .data:0x8012F750; // type:object size:0x10 scope:local data:string +lbl_8012F760 = .data:0x8012F760; // type:object size:0x10 scope:local data:string +lbl_8012F770 = .data:0x8012F770; // type:object size:0x10 scope:local data:string +lbl_8012F780 = .data:0x8012F780; // type:object size:0x10 scope:local data:string +lbl_8012F790 = .data:0x8012F790; // type:object size:0x10 scope:local data:string +lbl_8012F7A0 = .data:0x8012F7A0; // type:object size:0x10 scope:local data:string +lbl_8012F7B0 = .data:0x8012F7B0; // type:object size:0x10 scope:local data:string +lbl_8012F7C0 = .data:0x8012F7C0; // type:object size:0x10 scope:local data:string +lbl_8012F7D0 = .data:0x8012F7D0; // type:object size:0x10 scope:local data:string +lbl_8012F7E0 = .data:0x8012F7E0; // type:object size:0x10 scope:local data:string +lbl_8012F7F0 = .data:0x8012F7F0; // type:object size:0x12 scope:local data:string +lbl_8012F802 = .data:0x8012F802; // type:object size:0x15 scope:local data:string +lbl_8012F817 = .data:0x8012F817; // type:object size:0x13 scope:local data:string +lbl_8012F82A = .data:0x8012F82A; // type:object size:0x11 scope:local data:string +lbl_8012F83B = .data:0x8012F83B; // type:object size:0x10 scope:local data:string +lbl_8012F84B = .data:0x8012F84B; // type:object size:0x12 scope:local data:string +lbl_8012F85D = .data:0x8012F85D; // type:object size:0x13 scope:local data:string +lbl_8012F870 = .data:0x8012F870; // type:object size:0x13 scope:local data:string +lbl_8012F883 = .data:0x8012F883; // type:object size:0x13 scope:local data:string +lbl_8012F896 = .data:0x8012F896; // type:object size:0x12 scope:local data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0xF scope:local data:string +lbl_8012F8B7 = .data:0x8012F8B7; // type:object size:0xF scope:local data:string +lbl_8012F8C6 = .data:0x8012F8C6; // type:object size:0x10 scope:local data:string +lbl_8012F8D6 = .data:0x8012F8D6; // type:object size:0x12 scope:local data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0xF scope:local data:string +lbl_8012F8F7 = .data:0x8012F8F7; // type:object size:0x13 scope:local data:string +lbl_8012F90A = .data:0x8012F90A; // type:object size:0x11 scope:local data:string +lbl_8012F91B = .data:0x8012F91B; // type:object size:0x15 scope:local data:string +lbl_8012F930 = .data:0x8012F930; // type:object size:0xF scope:local data:string +lbl_8012F93F = .data:0x8012F93F; // type:object size:0xF scope:local data:string +lbl_8012F94E = .data:0x8012F94E; // type:object size:0xF scope:local data:string +lbl_8012F95D = .data:0x8012F95D; // type:object size:0xF scope:local data:string +lbl_8012F96C = .data:0x8012F96C; // type:object size:0xF scope:local data:string +lbl_8012F97B = .data:0x8012F97B; // type:object size:0xF scope:local data:string +lbl_8012F98A = .data:0x8012F98A; // type:object size:0xF scope:local data:string +lbl_8012F999 = .data:0x8012F999; // type:object size:0xF scope:local data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF scope:local data:string +lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 scope:local +_ovltbl = .data:0x8012F9C8; // type:object size:0x320 +lbl_80130100 = .data:0x8012FCE8; // type:object size:0x20 +fadeInFunc = .data:0x8012FD08; // type:object size:0xC +fadeOutFunc = .data:0x8012FD14; // type:object size:0xC +spcFontTbl = .data:0x8012FD20; // type:object size:0x170 scope:local +charWETbl = .data:0x8012FE90; // type:object size:0x130 +charWJTbl = .data:0x8012FFC0; // type:object size:0x140 +charColPal = .data:0x80130100; // type:object size:0x3C scope:local +frameFileTbl = .data:0x8013013C; // type:object size:0x10 scope:local +@257 = .data:0x8013014C; // type:object size:0xE scope:local data:string +@258 = .data:0x8013015A; // type:object size:0xF scope:local data:string +@259 = .data:0x80130169; // type:object size:0x10 scope:local data:string +@260 = .data:0x80130179; // type:object size:0x11 scope:local data:string +mesDataTbl = .data:0x8013018C; // type:object size:0x10 scope:local +winVoiceTbl = .data:0x8013019C; // type:object size:0x54 scope:local +@1076 = .data:0x801301F0; // type:object size:0x13 scope:local data:string +@1077 = .data:0x80130203; // type:object size:0x18 scope:local data:string +winPortraitTbl = .data:0x8013021C; // type:object size:0x4C scope:local +lbl_80130268 = .data:0x80130268; // type:object size:0x26 scope:local data:string +lbl_8013028E = .data:0x8013028E; // type:object size:0x2A scope:local +lbl_801302B8 = .data:0x801302B8; // type:object size:0x19 scope:local data:string +lbl_801302D1 = .data:0x801302D1; // type:object size:0x14 scope:local data:string +lbl_801302E5 = .data:0x801302E5; // type:object size:0x93 scope:local +lbl_80130378 = .data:0x80130378; // type:object size:0x30 scope:local +effectDataTbl = .data:0x801303A8; // type:object size:0x60 scope:local +charDirTbl = .data:0x80130408; // type:object size:0x60 scope:local +effectDustParam = .data:0x80130468; // type:object size:0x38 scope:local +effectDotParam = .data:0x801304A0; // type:object size:0x38 scope:local +effectStarParam = .data:0x801304D8; // type:object size:0x38 scope:local +effectWarnParam = .data:0x80130510; // type:object size:0x38 scope:local +effectSmokeParam = .data:0x80130548; // type:object size:0x38 scope:local +lbl_801309A0 = .data:0x80130580; // type:object size:0x20 scope:local +lbl_801309C0 = .data:0x801305A0; // type:object size:0x20 scope:local +lbl_801309E0 = .data:0x801305C0; // type:object size:0x10 scope:local +jumptable_801305D0 = .data:0x801305D0; // type:object size:0x1E8 scope:local +voiceParam = .data:0x801307B8; // type:object size:0x40 scope:local +lbl_801307F8 = .data:0x801307F8; // type:object size:0xE scope:local data:string +lbl_80130806 = .data:0x80130806; // type:object size:0xE scope:local data:string +lbl_80130814 = .data:0x80130814; // type:object size:0xE scope:local data:string +lbl_80130822 = .data:0x80130822; // type:object size:0xD scope:local data:string +lbl_8013082F = .data:0x8013082F; // type:object size:0xD scope:local data:string +lbl_8013083C = .data:0x8013083C; // type:object size:0xB scope:local data:string +lbl_80130847 = .data:0x80130847; // type:object size:0xF scope:local data:string +lbl_80130856 = .data:0x80130856; // type:object size:0xF scope:local data:string +lbl_80130865 = .data:0x80130865; // type:object size:0xF scope:local data:string +lbl_80130874 = .data:0x80130874; // type:object size:0xF scope:local data:string +lbl_80130883 = .data:0x80130883; // type:object size:0xF scope:local data:string +lbl_80130892 = .data:0x80130892; // type:object size:0xF scope:local data:string +lbl_801308A1 = .data:0x801308A1; // type:object size:0x9 scope:local data:string +lbl_801308AA = .data:0x801308AA; // type:object size:0xD scope:local data:string +lbl_801308B7 = .data:0x801308B7; // type:object size:0x17 scope:local data:string +lbl_801308CE = .data:0x801308CE; // type:object size:0x17 scope:local data:string +lbl_801308E5 = .data:0x801308E5; // type:object size:0xE scope:local data:string +lbl_801308F3 = .data:0x801308F3; // type:object size:0xE scope:local data:string +lbl_80130901 = .data:0x80130901; // type:object size:0xD scope:local data:string +lbl_8013090E = .data:0x8013090E; // type:object size:0xE scope:local data:string +lbl_8013091C = .data:0x8013091C; // type:object size:0xE scope:local data:string +lbl_8013092A = .data:0x8013092A; // type:object size:0xF scope:local data:string +lbl_80130939 = .data:0x80130939; // type:object size:0xF scope:local data:string +lbl_80130948 = .data:0x80130948; // type:object size:0x18 scope:local data:string +lbl_80130960 = .data:0x80130960; // type:object size:0x18 scope:local data:string +lbl_80130978 = .data:0x80130978; // type:object size:0xE scope:local data:string +lbl_80130986 = .data:0x80130986; // type:object size:0x18 scope:local data:string +lbl_8013099E = .data:0x8013099E; // type:object size:0x1A scope:local +charTexNameTbl = .data:0x801309B8; // type:object size:0x100 +lbl_80130AB8 = .data:0x80130AB8; // type:object size:0xD scope:local data:string +lbl_80130AC5 = .data:0x80130AC5; // type:object size:0xD scope:local data:string +lbl_80130AD2 = .data:0x80130AD2; // type:object size:0xE scope:local data:string +lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE scope:local data:string +lbl_80130AEE = .data:0x80130AEE; // type:object size:0x10 scope:local data:string +hookNameTbl = .data:0x80130B00; // type:object size:0xA0 scope:local +modelParticleParam = .data:0x80130BA0; // type:object size:0x38 scope:local +coinParticleParam = .data:0x80130BD8; // type:object size:0x38 scope:local +lbl_80131030 = .data:0x80130C10; // type:object size:0x38 scope:local +lbl_80131068 = .data:0x80130C48; // type:object size:0x38 scope:local +@1294 = .data:0x80130C80; // type:object size:0x19 scope:local data:string +lbl_801310BC = .data:0x80130C9C; // type:object size:0x38 scope:local +lbl_801310F4 = .data:0x80130CD4; // type:object size:0x38 scope:local +@1315 = .data:0x80130D0C; // type:object size:0x1A scope:local data:string +lbl_80130D26 = .data:0x80130D26; // type:object size:0x12 scope:local data:string +lbl_80130D38 = .data:0x80130D38; // type:object size:0x12 scope:local data:string +VolumeTable = .data:0x80130DC8; // type:object size:0x100 scope:local +lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D scope:local +lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B scope:local +mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte +commentTbl = .data:0x80131D30; // type:object size:0x40 scope:local data:byte +sjisNumTbl = .data:0x80131D70; // type:object size:0x14 scope:local data:byte +lbl_80131D84 = .data:0x80131D84; // type:object size:0xC scope:local data:string +lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string +lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string +SaveFileNameTbl = .data:0x80131DA8; // type:object size:0xC +jumptable_80131DB4 = .data:0x80131DB4; // type:object size:0x34 scope:local +SR_PreRstChk = .data:0x80131E00; // type:object size:0x10 scope:local +padding = .data:0x80131E10; // type:object size:0x10 scope:local +coveropen_jp = .data:0x80131E20; // type:object size:0x13A0 noreloc +fatalerror_jp = .data:0x801331C0; // type:object size:0x13A0 noreloc +loading_jp = .data:0x80134560; // type:object size:0x13A0 noreloc +nodisc_jp = .data:0x80135900; // type:object size:0x13A0 noreloc +retryerror_jp = .data:0x80136CA0; // type:object size:0x13A0 noreloc +wrongdisc_jp = .data:0x80138040; // type:object size:0x1384 noreloc +jumptable_801393C4 = .data:0x801393C4; // type:object size:0x34 scope:local +bmpMes$327 = .data:0x801393F8; // type:object size:0x18 scope:local +@391 = .data:0x80139410; // type:object size:0x13 scope:local data:string +@392 = .data:0x80139423; // type:object size:0x12 scope:local data:string +camViewTbl = .data:0x80139438; // type:object size:0x24 scope:local +jumptable_8013945C = .data:0x8013945C; // type:object size:0x24 scope:local +confettiLightTbl = .data:0x80139480; // type:object size:0x48 scope:local +last5GfxSprTbl = .data:0x801394C8; // type:object size:0xC scope:local +last5GfxPosTbl = .data:0x801394D4; // type:object size:0x30 scope:local +tauntActiveFXTbl = .data:0x80139504; // type:object size:0x10 scope:local +tauntFXTbl = .data:0x80139514; // type:object size:0x20 scope:local +diceJumpObj = .data:0x80139538; // type:object size:0x10 scope:local +motDoneF = .data:0x80139548; // type:object size:0x10 scope:local +bowserSuitMot = .data:0x80139558; // type:object size:0xA scope:local data:2byte +lbl_80139562 = .data:0x80139562; // type:object size:0x17 scope:local data:string +lbl_80139579 = .data:0x80139579; // type:object size:0x17 scope:local data:string +lbl_80139590 = .data:0x80139590; // type:object size:0xE scope:local data:string +lbl_8013959E = .data:0x8013959E; // type:object size:0xE scope:local data:string +lbl_801395AC = .data:0x801395AC; // type:object size:0x18 scope:local data:string +lbl_801395C4 = .data:0x801395C4; // type:object size:0x18 scope:local data:string +eyeMatTbl = .data:0x801395DC; // type:object size:0x40 scope:local +lbl_8013997C = .data:0x8013961C; // type:object size:0x20 +boardMotTbl = .data:0x8013963C; // type:object size:0x20 scope:local +boardMotRevTbl = .data:0x8013965C; // type:object size:0x20 scope:local +bowserSuitCharMdlTbl = .data:0x8013967C; // type:object size:0x20 scope:local +bowserSuitMotTbl = .data:0x8013969C; // type:object size:0x14 scope:local +sparkMotTbl = .data:0x801396B0; // type:object size:0x20 scope:local +boardSparkSfxTbl = .data:0x801396D0; // type:object size:0x20 scope:local +boardSparkSfxTblAlt = .data:0x801396F0; // type:object size:0x20 scope:local +megaSquishObj = .data:0x80139710; // type:object size:0x10 scope:local +megaSquishSfxTbl = .data:0x80139720; // type:object size:0x20 scope:local +lbl_80139740 = .data:0x80139740; // type:object size:0x24 +lbl_80139764 = .data:0x80139764; // type:object size:0x24 +lbl_80139788 = .data:0x80139788; // type:object size:0x18 +lbl_801397A0 = .data:0x801397A0; // type:object size:0x60 +lbl_80139800 = .data:0x80139800; // type:object size:0x38 +lbl_80139838 = .data:0x80139838; // type:object size:0x30 +lbl_80139868 = .data:0x80139868; // type:object size:0xB8 +lbl_80139920 = .data:0x80139920; // type:object size:0x24 +lbl_80139944 = .data:0x80139944; // type:object size:0x24 +lbl_80139968 = .data:0x80139968; // type:object size:0xC +lbl_80139974 = .data:0x80139974; // type:object size:0xC +jumptable_80139980 = .data:0x80139980; // type:object size:0x28 scope:local +lbl_801399A8 = .data:0x801399A8; // type:object size:0x24 +lbl_801399CC = .data:0x801399CC; // type:object size:0x10 +lbl_801399DC = .data:0x801399DC; // type:object size:0x6C +lbl_80139A48 = .data:0x80139A48; // type:object size:0xB0 +lbl_80139AF8 = .data:0x80139AF8; // type:object size:0x30 data:float +lbl_80139B28 = .data:0x80139B28; // type:object size:0x1A8 +lbl_80139CD0 = .data:0x80139CD0; // type:object size:0xDA +lbl_80139DAA = .data:0x80139DAA; // type:object size:0x13 +lbl_80139DBD = .data:0x80139DBD; // type:object size:0x23 +jumptable_80139DE0 = .data:0x80139DE0; // type:object size:0x24 scope:local +lbl_80139E04 = .data:0x80139E04; // type:object size:0x30 +lbl_80139E34 = .data:0x80139E34; // type:object size:0xC +lbl_80139E40 = .data:0x80139E40; // type:object size:0xC data:4byte +lbl_80139E4C = .data:0x80139E4C; // type:object size:0x20 +lbl_80139E6C = .data:0x80139E6C; // type:object size:0x24 +lbl_80139E90 = .data:0x80139E90; // type:object size:0x10 +lbl_80139EA0 = .data:0x80139EA0; // type:object size:0x28 +jumptable_80139EC8 = .data:0x80139EC8; // type:object size:0x1C scope:local +lbl_80139EE8 = .data:0x80139EE8; // type:object size:0x58 +lbl_80139F40 = .data:0x80139F40; // type:object size:0x10 +lbl_80139F50 = .data:0x80139F50; // type:object size:0x20 +lbl_80139F70 = .data:0x80139F70; // type:object size:0x48 +lbl_80139FB8 = .data:0x80139FB8; // type:object size:0x50 +lbl_8013A008 = .data:0x8013A008; // type:object size:0xC data:4byte +lbl_8013A014 = .data:0x8013A014; // type:object size:0xC data:4byte +lbl_8013A020 = .data:0x8013A020; // type:object size:0xC +lbl_8013A02C = .data:0x8013A02C; // type:object size:0x50 +lbl_8013A07C = .data:0x8013A07C; // type:object size:0x2C +lbl_8013A0A8 = .data:0x8013A0A8; // type:object size:0xC4 data:byte +lbl_8013A16C = .data:0x8013A16C; // type:object size:0x20 data:float +lbl_8013A18C = .data:0x8013A18C; // type:object size:0x10 +lbl_8013A19C = .data:0x8013A19C; // type:object size:0x88 +lbl_8013A224 = .data:0x8013A224; // type:object size:0x30 +lbl_8013A254 = .data:0x8013A254; // type:object size:0x54 +lbl_8013A2A8 = .data:0x8013A2A8; // type:object size:0x18 +lbl_8013A2C0 = .data:0x8013A2C0; // type:object size:0x38 +lbl_8013A2F8 = .data:0x8013A2F8; // type:object size:0x38 +lbl_8013A330 = .data:0x8013A330; // type:object size:0x70 +lbl_8013A3A0 = .data:0x8013A3A0; // type:object size:0x13 data:string +lbl_8013A3B3 = .data:0x8013A3B3; // type:object size:0x13 data:string +lbl_8013A3C6 = .data:0x8013A3C6; // type:object size:0x13 data:string +lbl_8013A3D9 = .data:0x8013A3D9; // type:object size:0x13 data:string +lbl_8013A3EC = .data:0x8013A3EC; // type:object size:0x13 data:string +lbl_8013A3FF = .data:0x8013A3FF; // type:object size:0x13 data:string +lbl_8013A412 = .data:0x8013A412; // type:object size:0x13 data:string +lbl_8013A425 = .data:0x8013A425; // type:object size:0x63 +lbl_8013A488 = .data:0x8013A488; // type:object size:0x40 +lbl_8013A4C8 = .data:0x8013A4C8; // type:object size:0x10 +lbl_8013A4D8 = .data:0x8013A4D8; // type:object size:0x1D8 +lbl_8013A6B0 = .data:0x8013A6B0; // type:object size:0x20 +jumptable_8013A6D0 = .data:0x8013A6D0; // type:object size:0x1C scope:local +lbl_8013A6EC = .data:0x8013A6EC; // type:object size:0x14 +lbl_8013A700 = .data:0x8013A700; // type:object size:0x18 +lbl_8013A718 = .data:0x8013A718; // type:object size:0x20 +lbl_8013A738 = .data:0x8013A738; // type:object size:0x18 +jumptable_8013A750 = .data:0x8013A750; // type:object size:0x24 scope:local +lbl_8013A774 = .data:0x8013A774; // type:object size:0x3C +lbl_8013A7B0 = .data:0x8013A7B0; // type:object size:0x18 +lbl_8013A7C8 = .data:0x8013A7C8; // type:object size:0xC0 +lbl_8013A888 = .data:0x8013A888; // type:object size:0x80 +lbl_8013A908 = .data:0x8013A908; // type:object size:0x18 +lbl_8013A920 = .data:0x8013A920; // type:object size:0xC data:string +lbl_8013A92C = .data:0x8013A92C; // type:object size:0x18 +jumptable_8013A944 = .data:0x8013A944; // type:object size:0x20 scope:local +lbl_8013A964 = .data:0x8013A964; // type:object size:0x24 +lbl_8013A988 = .data:0x8013A988; // type:object size:0x18 +lbl_8013A9A0 = .data:0x8013A9A0; // type:object size:0x34 +lbl_8013A9D4 = .data:0x8013A9D4; // type:object size:0x30 +lbl_8013AA04 = .data:0x8013AA04; // type:object size:0x30 +lbl_8013AA34 = .data:0x8013AA34; // type:object size:0x30 +lbl_8013AA64 = .data:0x8013AA64; // type:object size:0x24 +jumptable_8013AA88 = .data:0x8013AA88; // type:object size:0x20 scope:local +lbl_8013AAD8 = .data:0x8013AAD8; // type:object size:0x90 +lbl_8013AB68 = .data:0x8013AB68; // type:object size:0x30 +lbl_8013AB98 = .data:0x8013AB98; // type:object size:0xC +lbl_8013ABA4 = .data:0x8013ABA4; // type:object size:0x6C +lbl_8013AC10 = .data:0x8013AC10; // type:object size:0x10 data:4byte +lbl_8013AC20 = .data:0x8013AC20; // type:object size:0xC4 +lbl_8013ACE4 = .data:0x8013ACE4; // type:object size:0x24 +jumptable_8013AD08 = .data:0x8013AD08; // type:object size:0x1C scope:local +lbl_8013AD24 = .data:0x8013AD24; // type:object size:0x30 +jumptable_8013AD54 = .data:0x8013AD54; // type:object size:0x24 scope:local +lbl_8013AD78 = .data:0x8013AD78; // type:object size:0x120 +lbl_8013AE98 = .data:0x8013AE98; // type:object size:0x24 +lbl_8013AEBC = .data:0x8013AEBC; // type:object size:0x28 +lbl_8013AEE4 = .data:0x8013AEE4; // type:object size:0x1AC +lbl_8013B090 = .data:0x8013B090; // type:object size:0x10 data:2byte +lbl_8013B0A0 = .data:0x8013B0A0; // type:object size:0x40 data:float +lbl_8013B0E0 = .data:0x8013B0E0; // type:object size:0x74 +jumptable_8013B154 = .data:0x8013B154; // type:object size:0x20 scope:local +jumptable_8013B174 = .data:0x8013B174; // type:object size:0x20 scope:local +jumptable_8013B194 = .data:0x8013B194; // type:object size:0x20 scope:local +lbl_8013B1B8 = .data:0x8013B1B8; // type:object size:0x24 data:string +lbl_8013B1DC = .data:0x8013B1DC; // type:object size:0x24 data:string +@84 = .data:0x8013B200; // type:object size:0x1E scope:local data:string +lbl_8013B3C0 = .data:0x8013B3C0; // type:object size:0x398 +DSPInitCode = .data:0x8013B758; // type:object size:0x80 scope:local +@69 = .data:0x8013B7D8; // type:object size:0x29 scope:local data:string +lbl_8013BA08 = .data:0x8013BA08; // type:object size:0x1B4 +@74 = .data:0x8013BBBC; // type:object size:0x23 scope:local data:string +@10 = .data:0x8013BBE0; // type:object size:0x16 scope:local data:string +@43 = .data:0x8013BEBC; // type:object size:0x40 scope:local +lbl_8013BF00 = .data:0x8013BF00; // type:object size:0x30 data:4byte +lbl_8013BF30 = .data:0x8013BF30; // type:object size:0x28 +lbl_8013BF58 = .data:0x8013BF58; // type:object size:0x28 +ResetFunctionInfo = .data:0x8013BF80; // type:object size:0x10 scope:local +lbl_8013BF90 = .data:0x8013BF90; // type:object size:0x78 +lbl_8013C008 = .data:0x8013C008; // type:object size:0x30 +lbl_8013C038 = .data:0x8013C038; // type:object size:0x30 +lbl_8013C068 = .data:0x8013C068; // type:object size:0x18 data:string +lbl_8013C080 = .data:0x8013C080; // type:object size:0xC8 data:string +lbl_8013C148 = .data:0x8013C148; // type:object size:0x38 +lbl_8013C180 = .data:0x8013C180; // type:object size:0x34 data:string +lbl_8013C1B4 = .data:0x8013C1B4; // type:object size:0x34 +@13 = .data:0x8013C1E8; // type:object size:0x15 scope:local data:string +@293 = .data:0x8013C234; // type:object size:0x20 scope:local +jumptable_8013C254 = .data:0x8013C254; // type:object size:0x40 scope:local +jumptable_8013C294 = .data:0x8013C294; // type:object size:0x34 scope:local +jumptable_8013C2C8 = .data:0x8013C2C8; // type:object size:0x34 scope:local +lbl_8013C300 = .data:0x8013C300; // type:object size:0x48 data:4byte +@36 = .data:0x8013C348; // type:object size:0x1A scope:local data:string +lbl_8013C3B8 = .data:0x8013C3B8; // type:object size:0x164 +jumptable_8013C51C = .data:0x8013C51C; // type:object size:0x58 scope:local +lbl_8013C680 = .data:0x8013C680; // type:object size:0xC00 +lbl_8013D280 = .data:0x8013D280; // type:object size:0xC data:string +lbl_8013D28C = .data:0x8013D28C; // type:object size:0x28 +jumptable_8013D2B4 = .data:0x8013D2B4; // type:object size:0x28 scope:local +jumptable_8013D338 = .data:0x8013D338; // type:object size:0x28 scope:local +jumptable_8013D360 = .data:0x8013D360; // type:object size:0x28 scope:local +jumptable_8013D388 = .data:0x8013D388; // type:object size:0x28 scope:local +jumptable_8013D3B0 = .data:0x8013D3B0; // type:object size:0x28 scope:local +lbl_8013D3D8 = .data:0x8013D3D8; // type:object size:0x10 +lbl_8013D3E8 = .data:0x8013D3E8; // type:object size:0x38 +lbl_8013D420 = .data:0x8013D420; // type:object size:0x140 +jumptable_8013D560 = .data:0x8013D560; // type:object size:0x68 scope:local +jumptable_8013D5C8 = .data:0x8013D5C8; // type:object size:0x44 scope:local +jumptable_8013D60C = .data:0x8013D60C; // type:object size:0x1C scope:local +jumptable_8013D628 = .data:0x8013D628; // type:object size:0x54 scope:local +GXNtsc480IntDf = .data:0x8013D680; // type:object size:0x3C +GXNtsc480Prog = .data:0x8013D6BC; // type:object size:0x3C +GXMpal480IntDf = .data:0x8013D6F8; // type:object size:0x3C +GXPal528IntDf = .data:0x8013D734; // type:object size:0x3C +GXEurgb60Hz480IntDf = .data:0x8013D770; // type:object size:0x40 +jumptable_8013D7B0 = .data:0x8013D7B0; // type:object size:0x1C scope:local +jumptable_8013D7D0 = .data:0x8013D7D0; // type:object size:0xF4 scope:local +jumptable_8013D8C4 = .data:0x8013D8C4; // type:object size:0xF4 scope:local +jumptable_8013D9B8 = .data:0x8013D9B8; // type:object size:0x3C scope:local +lbl_8013D9F8 = .data:0x8013D9F8; // type:object size:0x28 +lbl_8013DA20 = .data:0x8013DA20; // type:object size:0x20 +jumptable_8013DA40 = .data:0x8013DA40; // type:object size:0x5C scope:local +jumptable_8013DA9C = .data:0x8013DA9C; // type:object size:0x90 scope:local +jumptable_8013DB2C = .data:0x8013DB2C; // type:object size:0x5C scope:local +lbl_8013DB88 = .data:0x8013DB88; // type:object size:0x18 +lbl_8013DBA0 = .data:0x8013DBA0; // type:object size:0x160 +lbl_8013DD00 = .data:0x8013DD00; // type:object size:0x20 +lbl_8013DD20 = .data:0x8013DD20; // type:object size:0x20 +Si = .data:0x8013DD40; // type:object size:0x14 scope:local data:4byte +Type = .data:0x8013DD54; // type:object size:0x10 scope:local +XYNTSC = .data:0x8013DE10; // type:object size:0x30 scope:local +lbl_8013DEA8 = .data:0x8013DEA8; // type:object size:0x10 +jumptable_8013DEB8 = .data:0x8013DEB8; // type:object size:0x44 scope:local +jumptable_8013DEFC = .data:0x8013DEFC; // type:object size:0x44 scope:local +jumptable_8013DF40 = .data:0x8013DF40; // type:object size:0x44 scope:local +lbl_8013DF84 = .data:0x8013DF84; // type:object size:0xC +lbl_8013DF90 = .data:0x8013DF90; // type:object size:0x10 +__files = .data:0x8013DFA0; // type:object size:0x140 scope:global +jumptable_8013E0E0 = .data:0x8013E0E0; // type:object size:0x124 scope:local +lbl_8013E208 = .data:0x8013E208; // type:object size:0x100 +lbl_8013E308 = .data:0x8013E308; // type:object size:0x100 +@1249 = .data:0x8013E408; // type:object size:0x84 scope:local +jumptable_8013E48C = .data:0x8013E48C; // type:object size:0x84 scope:local +jumptable_8013E510 = .data:0x8013E510; // type:object size:0xE0 scope:local +jumptable_8013E5F0 = .data:0x8013E5F0; // type:object size:0x44 scope:local +lbl_8013E638 = .data:0x8013E638; // type:object size:0x88 +jumptable_8013E6C0 = .data:0x8013E6C0; // type:object size:0x1C scope:local +jumptable_8013E6DC = .data:0x8013E6DC; // type:object size:0x1C scope:local +gTRKRestoreFlags = .data:0x8013E6F8; // type:object size:0x9 scope:global data:byte +gTRKExceptionStatus = .data:0x8013E704; // type:object size:0x10 scope:local data:4byte +lbl_8013E714 = .data:0x8013E714; // type:object size:0x14 data:4byte +lbl_8013E728 = .data:0x8013E728; // type:object size:0x40 data:4byte +gDBCommTable = .data:0x8013E768; // type:object size:0x1C scope:global data:4byte +jumptable_8013E788 = .data:0x8013E788; // type:object size:0x50 scope:local +lbl_8013E7D8 = .data:0x8013E7D8; // type:object size:0x1C +lbl_8013E7F4 = .data:0x8013E7F4; // type:object size:0x204 +lbl_8013E9F8 = .data:0x8013E9F8; // type:object size:0x20 +lbl_8013EA18 = .data:0x8013EA18; // type:object size:0x10 +lbl_8013EA28 = .data:0x8013EA28; // type:object size:0x20 +lbl_8013EA48 = .data:0x8013EA48; // type:object size:0x10 +jumptable_8013EA58 = .data:0x8013EA58; // type:object size:0x1C8 scope:local +lbl_8013EC20 = .data:0x8013EC20; // type:object size:0x200 +lbl_8013EE20 = .data:0x8013EE20; // type:object size:0x200 +lbl_8013F020 = .data:0x8013F020; // type:object size:0x184 +lbl_8013F1A4 = .data:0x8013F1A4; // type:object size:0x400 +lbl_8013F5A4 = .data:0x8013F5A4; // type:object size:0x204 +lbl_8013F7A8 = .data:0x8013F7A8; // type:object size:0x18 +lbl_8013F7C0 = .data:0x8013F7C0; // type:object size:0x228 +lbl_8013F9E8 = .data:0x8013F9E8; // type:object size:0x10 +lbl_8013F9F8 = .data:0x8013F9F8; // type:object size:0x10 +jumptable_8013FA08 = .data:0x8013FA08; // type:object size:0x24 scope:local +jumptable_8013FA2C = .data:0x8013FA2C; // type:object size:0x24 scope:local +jumptable_8013FA50 = .data:0x8013FA50; // type:object size:0x24 scope:local +lbl_8013FA78 = .data:0x8013FA78; // type:object size:0x808 +lbl_80140280 = .data:0x80140280; // type:object size:0x19E0 +lbl_80141C60 = .data:0x80141C60; // type:object size:0x10 +lbl_80141C70 = .data:0x80141C70; // type:object size:0x20 +lbl_80141C90 = .data:0x80141C90; // type:object size:0x800 +padStatErrOld = .bss:0x801424A0; // type:object size:0x10 scope:local +rumbleData = .bss:0x801424B0; // type:object size:0x20 scope:local +ReadDataStat = .bss:0x801424E0; // type:object size:0x2E00 scope:local align:32 data:4byte +TextBuffer = .bss:0x801452E0; // type:object size:0x400 +rmodeobj = .bss:0x801456E0; // type:object size:0x40 scope:local +HeapTbl = .bss:0x80145720; // type:object size:0x18 scope:local +strline = .bss:0x80145738; // type:object size:0x6800 scope:local +pfStrBuf = .bss:0x8014BF38; // type:object size:0x100 scope:local data:byte +processjmpbuf = .bss:0x8014C038; // type:object size:0xF8 scope:local align:8 +HuSprData = .bss:0x8014C130; // type:object size:0x9600 +HuSprGrpData = .bss:0x80155730; // type:object size:0x5400 data:2byte +HuSprOrder = .bss:0x8015AB30; // type:object size:0x1800 scope:local +bmpNoCC = .bss:0x8015C330; // type:object size:0x20 scope:local +HuSprLayerDrawNo = .bss:0x8015C350; // type:object size:0x10 scope:local +Model = .bss:0x8015C360; // type:object size:0x80 +head = .bss:0x8015C3E0; // type:object size:0xB0 +rgba = .bss:0x8015C490; // type:object size:0x190 +lbl_8015C620 = .bss:0x8015C620; // type:object size:0x300 scope:local data:byte +DrawObjData = .bss:0x8015C920; // type:object size:0x9000 scope:local +BmpPtrBak = .bss:0x80165920; // type:object size:0x20 scope:local data:4byte +MTXBuf = .bss:0x80165940; // type:object size:0x1200 scope:local +scaleBuf = .bss:0x80166B40; // type:object size:0x480 scope:local data:4byte +texCol = .bss:0x80166FC0; // type:object size:0x40 scope:local data:byte +hiliteMtx = .bss:0x80167000; // type:object size:0x30 scope:local +DrawObjNum = .bss:0x80167030; // type:object size:0x400 scope:local +NBTB = .bss:0x80167430; // type:object size:0xC scope:local data:float +NBTT = .bss:0x8016743C; // type:object size:0xC scope:local data:float +PGMaxPos = .bss:0x80167448; // type:object size:0xC data:float +PGMinPos = .bss:0x80167454; // type:object size:0xC data:float +Hu3DData = .bss:0x80167460; // type:object size:0x24800 data:byte +Hu3DCamera = .bss:0x8018BC60; // type:object size:0x580 data:float +layerNum = .bss:0x8018C1E0; // type:object size:0x10 scope:local data:2byte +layerHook = .bss:0x8018C1F0; // type:object size:0x20 scope:local +reflectAnim = .bss:0x8018C210; // type:object size:0x14 data:4byte +hiliteAnim = .bss:0x8018C224; // type:object size:0x10 data:4byte +Hu3DProjection = .bss:0x8018C234; // type:object size:0x260 data:byte +Hu3DShadowData = .bss:0x8018C494; // type:object size:0x98 data:byte +FogData = .bss:0x8018C52C; // type:object size:0x10 data:4byte +Hu3DCameraMtx = .bss:0x8018C53C; // type:object size:0x30 +Hu3DCameraMtxXPose = .bss:0x8018C56C; // type:object size:0x30 +Hu3DGlobalLight = .bss:0x8018C59C; // type:object size:0x220 data:2byte +Hu3DLocalLight = .bss:0x8018C7BC; // type:object size:0x880 data:2byte +Hu3DMotion = .bss:0x8018D070; // type:object size:0x800 data:2byte +Hu3DTexAnimData = .bss:0x8018D870; // type:object size:0x1400 data:2byte +Hu3DTexScrData = .bss:0x8018EC70; // type:object size:0x6C0 data:2byte +parManProc = .bss:0x8018F330; // type:object size:0x100 scope:local +perf = .bss:0x8018F430; // type:object size:0x370 scope:local +Ssw = .bss:0x8018F7A0; // type:object size:0x38 scope:local +omovlhis = .bss:0x8018F7D8; // type:object size:0xC0 scope:local +XFB_Geometry = .bss:0x8018F898; // type:object size:0x18 scope:local +GWPlayerCfg = .bss:0x8018F8B0; // type:object size:0x28 +GWPlayer = .bss:0x8018F8D8; // type:object size:0xC0 data:byte +GWSystem = .bss:0x8018F998; // type:object size:0xDC data:byte +GWGameStat = .bss:0x8018FA78; // type:object size:0x118 +GWGameStatDefault = .bss:0x8018FB90; // type:object size:0x118 +CRot = .bss:0x8018FCA8; // type:object size:0xC data:float +Center = .bss:0x8018FCB4; // type:object size:0xC data:float +CRotM = .bss:0x8018FCC0; // type:object size:0xC0 +CenterM = .bss:0x8018FD80; // type:object size:0xC0 +CZoomM = .bss:0x8018FE40; // type:object size:0x40 +omDLLinfoTbl = .bss:0x8018FE80; // type:object size:0x50 +sndFXBuf = .bss:0x8018FED0; // type:object size:0x200 scope:local +charVoiceGroupStat = .bss:0x801900D0; // type:object size:0x20 +seqWorkData = .bss:0x801900F0; // type:object size:0x400 scope:local data:4byte +winnerNameW = .bss:0x801904F0; // type:object size:0x10 scope:local data:2byte +esprite = .bss:0x80190500; // type:object size:0x600 data:2byte +espanim = .bss:0x80190B00; // type:object size:0x1200 data:4byte +lbl_80192060 = .bss:0x80191D00; // type:object size:0x100 +lbl_80192160 = .bss:0x80191E00; // type:object size:0x100 +lbl_80192260 = .bss:0x80191F00; // type:object size:0x100 +wipeData = .bss:0x80192000; // type:object size:0x4C data:4byte +winData = .bss:0x80192060; // type:object size:0x3000 data:byte +winKey = .bss:0x80195060; // type:object size:0x10 +winComKeyBuf = .bss:0x80195070; // type:object size:0x1400 +ARInfo = .bss:0x80196480; // type:object size:0x400 scope:local data:byte +arqReq = .bss:0x80196880; // type:object size:0x20 scope:local +ARQueBuf = .bss:0x801968A0; // type:object size:0x280 scope:local +preLoadBuf = .bss:0x80196B20; // type:object size:0x40 scope:local align:32 +charInstance = .bss:0x80196B60; // type:object size:0x640 scope:local +effectMdl = .bss:0x801971A0; // type:object size:0x10 scope:local data:2byte +particleData = .bss:0x801971B0; // type:object size:0x20 scope:local +itemHookProcess = .bss:0x801971D0; // type:object size:0x80 scope:local +lbl_801975B0 = .bss:0x80197250; // type:object size:0x10 scope:local +lbl_801975C0 = .bss:0x80197260; // type:object size:0x90 scope:local +MapObject = .bss:0x801972F0; // type:object size:0x40 +MapMT = .bss:0x80197330; // type:object size:0x30 +MapMTR = .bss:0x80197360; // type:object size:0x30 +MTRAdd = .bss:0x80197390; // type:object size:0xC scope:local data:float +FieldVec = .bss:0x8019739C; // type:object size:0xC scope:local data:float +ColisionIdx = .bss:0x801973A8; // type:object size:0x78 +HitFaceVec = .bss:0x80197420; // type:object size:0x180 +OldXYZ = .bss:0x801975A0; // type:object size:0xC scope:local +HitFace = .bss:0x801975AC; // type:object size:0x180 +CharObject = .bss:0x8019772C; // type:object size:0x30 +SimpleControl = .bss:0x80197760; // type:object size:0x1A0 +SoundBuffer = .bss:0x80197900; // type:object size:0x500 scope:local +WorkBuffer = .bss:0x80197E00; // type:object size:0x40 scope:local +THPFileName = .bss:0x80197E40; // type:object size:0x40 scope:local +mgGameStatBackup = .bss:0x80197E80; // type:object size:0x118 +mgIndexList = .bss:0x80197F98; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x80198098; // type:object size:0x12 +_Sys_Flag = .bss:0x801980B0; // type:object size:0x10 scope:local +curFileInfo = .bss:0x801980C0; // type:object size:0x14 +saveBuf = .bss:0x801980E0; // type:object size:0x4000 +ToeMessageQueue = .bss:0x8019C0E0; // type:object size:0x20 scope:local +padStat$238 = .bss:0x8019C100; // type:object size:0x30 scope:local +ToeMessageArray = .bss:0x8019C130; // type:object size:0x40 scope:local +ToeThread = .bss:0x8019C170; // type:object size:0x310 scope:local +ToeThreadStack = .bss:0x8019C480; // type:object size:0x1000 scope:local +boardCamera = .bss:0x8019D480; // type:object size:0xC4 data:byte +cameraBackup = .bss:0x8019D544; // type:object size:0xC4 scope:local +preTurnHook = .bss:0x8019D608; // type:object size:0x10 scope:local +postTurnHook = .bss:0x8019D618; // type:object size:0x10 scope:local +playerMatCopy = .bss:0x8019D628; // type:object size:0x10 scope:local +lbl_8019D638 = .bss:0x8019D638; // type:object size:0x20 +lbl_8019D658 = .bss:0x8019D658; // type:object size:0x40 +lbl_8019D698 = .bss:0x8019D698; // type:object size:0xC data:float +lbl_8019D6A4 = .bss:0x8019D6A4; // type:object size:0xC data:4byte +lbl_8019D6B0 = .bss:0x8019D6B0; // type:object size:0x7000 data:float +lbl_801A46B0 = .bss:0x801A46B0; // type:object size:0x50 +lbl_801A4700 = .bss:0x801A4700; // type:object size:0x14 data:4byte +lbl_801A4714 = .bss:0x801A4714; // type:object size:0x1C +lbl_801A4730 = .bss:0x801A4730; // type:object size:0xC data:2byte +lbl_801A473C = .bss:0x801A473C; // type:object size:0xC +lbl_801A4748 = .bss:0x801A4748; // type:object size:0x18 data:2byte +lbl_801A4760 = .bss:0x801A4760; // type:object size:0x10 +lbl_801A4770 = .bss:0x801A4770; // type:object size:0x10 data:4byte +lbl_801A4780 = .bss:0x801A4780; // type:object size:0x10 +lbl_801A4790 = .bss:0x801A4790; // type:object size:0x18 +lbl_801A47A8 = .bss:0x801A47A8; // type:object size:0x30 +lbl_801A47D8 = .bss:0x801A47D8; // type:object size:0x48 +lbl_801A4820 = .bss:0x801A4820; // type:object size:0x28 +lbl_801A4848 = .bss:0x801A4848; // type:object size:0xC data:4byte +lbl_801A4854 = .bss:0x801A4854; // type:object size:0x34 data:float +lbl_801A4888 = .bss:0x801A4888; // type:object size:0x30 +lbl_801A48B8 = .bss:0x801A48B8; // type:object size:0x18 +lbl_801A48D0 = .bss:0x801A48D0; // type:object size:0x10 data:2byte +lbl_801A48E0 = .bss:0x801A48E0; // type:object size:0xC data:4byte +lbl_801A48EC = .bss:0x801A48EC; // type:object size:0xC data:float +lbl_801A48F8 = .bss:0x801A48F8; // type:object size:0x20 data:2byte +lbl_801A4918 = .bss:0x801A4918; // type:object size:0x40 data:2byte +lbl_801A4958 = .bss:0x801A4958; // type:object size:0x10 +lbl_801A4968 = .bss:0x801A4968; // type:object size:0x10 data:2byte +lbl_801A4978 = .bss:0x801A4978; // type:object size:0xC data:float +lbl_801A4984 = .bss:0x801A4984; // type:object size:0xC data:float +lbl_801A4990 = .bss:0x801A4990; // type:object size:0xC data:float +lbl_801A499C = .bss:0x801A499C; // type:object size:0xC data:float +lbl_801A49A8 = .bss:0x801A49A8; // type:object size:0xC +lbl_801A49B4 = .bss:0x801A49B4; // type:object size:0x10 data:2byte +lbl_801A49C4 = .bss:0x801A49C4; // type:object size:0x14 data:4byte +lbl_801A49D8 = .bss:0x801A49D8; // type:object size:0x20 +lbl_801A49F8 = .bss:0x801A49F8; // type:object size:0x10 data:float +lbl_801A4A08 = .bss:0x801A4A08; // type:object size:0x500 data:byte +lbl_801A4F08 = .bss:0x801A4F08; // type:object size:0x80 +boardTutorialData = .bss:0x801A4F88; // type:object size:0x18 data:4byte +DriveInfo = .bss:0x801A4FA0; // type:object size:0x20 scope:local +__OSErrorTable = .bss:0x801A4FF0; // type:object size:0x40 scope:global +lbl_801A5040 = .bss:0x801A5040; // type:object size:0x20 +Scb = .bss:0x801A5060; // type:object size:0x54 scope:local data:4byte +RunQueue = .bss:0x801A50B8; // type:object size:0x100 scope:local data:4byte +CommandList = .bss:0x801A5AA0; // type:object size:0x3C scope:local data:4byte +AlarmForTimeout = .bss:0x801A5B08; // type:object size:0x28 scope:local +tmpBuffer = .bss:0x801A5B80; // type:object size:0x80 scope:local +DummyCommandBlock = .bss:0x801A5C00; // type:object size:0x30 scope:local +WaitingQueue = .bss:0x801A5C58; // type:object size:0x20 scope:local data:4byte +bb2Buf = .bss:0x801A5C78; // type:object size:0x3F scope:local +block$16 = .bss:0x801A5CB8; // type:object size:0x30 scope:local +lbl_801A5CE8 = .bss:0x801A5CE8; // type:object size:0x78 data:2byte +lbl_801A5D60 = .bss:0x801A5D60; // type:object size:0x78 +lbl_801A5DD8 = .bss:0x801A5DD8; // type:object size:0x58 data:2byte +lbl_801A5E30 = .bss:0x801A5E30; // type:object size:0x20 +lbl_801A5E50 = .bss:0x801A5E50; // type:object size:0x10 +lbl_801A5E60 = .bss:0x801A5E60; // type:object size:0x40 +gxData = .bss:0x801A5EA0; // type:object size:0x4F8 scope:local +lbl_801A6418 = .bss:0x801A6418; // type:object size:0x520 data:4byte +lbl_801A6938 = .bss:0x801A6938; // type:object size:0x220 data:4byte +lbl_801A6B58 = .bss:0x801A6B58; // type:object size:0x20 +Ecb = .bss:0x801A6B78; // type:object size:0xC0 scope:local data:4byte +Packet = .bss:0x801A6C38; // type:object size:0x80 scope:local data:4byte +lbl_801A6CB8 = .bss:0x801A6CB8; // type:object size:0xA0 +TypeTime = .bss:0x801A6D58; // type:object size:0x20 scope:local +lbl_801A6D78 = .bss:0x801A6D78; // type:object size:0x20 +lbl_801A6D98 = .bss:0x801A6D98; // type:object size:0x40 +lbl_801A6DD8 = .bss:0x801A6DD8; // type:object size:0x68 data:4byte +lbl_801A6E40 = .bss:0x801A6E40; // type:object size:0x118 +lbl_801A6F58 = .bss:0x801A6F58; // type:object size:0x18 data:4byte +fragmentinfo = .bss:0x801A6F70; // type:object size:0xC scope:local data:4byte +__atexit_funcs = .bss:0x801A6F80; // type:object size:0x100 scope:local +lbl_801A7080 = .bss:0x801A7080; // type:object size:0x38 data:4byte +lbl_801A70B8 = .bss:0x801A70B8; // type:object size:0x100 +lbl_801A71B8 = .bss:0x801A71B8; // type:object size:0x100 +lbl_801A72B8 = .bss:0x801A72B8; // type:object size:0x100 +lbl_801A73B8 = .bss:0x801A73B8; // type:object size:0x18 +lbl_801A73D0 = .bss:0x801A73D0; // type:object size:0x28 +gTRKBigEndian = .bss:0x801A73F8; // type:object size:0x4 scope:global data:4byte +lbl_801A7400 = .bss:0x801A7400; // type:object size:0x19B0 +gTRKInputPendingPtr = .bss:0x801A8DB0; // type:object size:0x4 scope:global data:4byte +lbl_801A8DB4 = .bss:0x801A8DB4; // type:object size:0x14 data:4byte +lbl_801A8DC8 = .bss:0x801A8DC8; // type:object size:0x8 data:4byte +lbl_801A8DD0 = .bss:0x801A8DD0; // type:object size:0x8 data:4byte +TRK_saved_exceptionID = .bss:0x801A8DD8; // type:object size:0x2 scope:local data:2byte +gTRKState = .bss:0x801A8DDC; // type:object size:0xA4 scope:global data:4byte +gTRKCPUState = .bss:0x801A8E80; // type:object size:0x430 scope:global +gTRKSaveState = .bss:0x801A92B0; // type:object size:0x94 scope:global data:4byte +lbl_801A9344 = .bss:0x801A9344; // type:object size:0x14 +lbl_801A9358 = .bss:0x801A9358; // type:object size:0x8 data:4byte +TRK_mainError = .bss:0x801A9360; // type:object size:0x4 scope:local data:4byte +lbl_801A9368 = .bss:0x801A9368; // type:object size:0x111C data:4byte +lbl_801AA484 = .bss:0x801AA484; // type:object size:0x110C +lbl_801AB590 = .bss:0x801AB590; // type:object size:0x8 data:byte +lbl_801AB598 = .bss:0x801AB598; // type:object size:0x1400 data:4byte +lbl_801AC998 = .bss:0x801AC998; // type:object size:0xC340 +lbl_801B8CD8 = .bss:0x801B8CD8; // type:object size:0x100 data:2byte +lbl_801B8DD8 = .bss:0x801B8DD8; // type:object size:0x240 +lbl_801B9018 = .bss:0x801B9018; // type:object size:0x214 data:4byte +lbl_801B922C = .bss:0x801B922C; // type:object size:0x600 data:float +lbl_801B982C = .bss:0x801B982C; // type:object size:0x40 data:byte +lbl_801B986C = .bss:0x801B986C; // type:object size:0x180 +lbl_801B99EC = .bss:0x801B99EC; // type:object size:0x20 data:4byte +lbl_801B9A0C = .bss:0x801B9A0C; // type:object size:0x20 data:4byte +lbl_801B9A2C = .bss:0x801B9A2C; // type:object size:0x20 data:4byte +lbl_801B9A4C = .bss:0x801B9A4C; // type:object size:0x20 data:4byte +lbl_801B9A6C = .bss:0x801B9A6C; // type:object size:0x10 data:byte +lbl_801B9A7C = .bss:0x801B9A7C; // type:object size:0x40 data:4byte +lbl_801B9ABC = .bss:0x801B9ABC; // type:object size:0x480 +lbl_801B9F3C = .bss:0x801B9F3C; // type:object size:0x484 +lbl_801BA3C0 = .bss:0x801BA3C0; // type:object size:0x697 +lbl_801BAA57 = .bss:0x801BAA57; // type:object size:0x1269 +lbl_801BBCC0 = .bss:0x801BBCC0; // type:object size:0x800 +lbl_801BC4C0 = .bss:0x801BC4C0; // type:object size:0xC00 +lbl_801BD0C0 = .bss:0x801BD0C0; // type:object size:0x32C0 +lbl_801C0380 = .bss:0x801C0380; // type:object size:0x7 +lbl_801C0387 = .bss:0x801C0387; // type:object size:0x379 +lbl_801C0700 = .bss:0x801C0700; // type:object size:0x800 +lbl_801C0F00 = .bss:0x801C0F00; // type:object size:0x1C0 +lbl_801C10C0 = .bss:0x801C10C0; // type:object size:0x600 data:4byte +lbl_801C16C0 = .bss:0x801C16C0; // type:object size:0x400 data:2byte +lbl_801C1AC0 = .bss:0x801C1AC0; // type:object size:0x800 data:2byte +lbl_801C22C0 = .bss:0x801C22C0; // type:object size:0x4000 +lbl_801C62C0 = .bss:0x801C62C0; // type:object size:0x20 data:2byte +lbl_801C62E0 = .bss:0x801C62E0; // type:object size:0xC +lbl_801C62EC = .bss:0x801C62EC; // type:object size:0xC data:2byte +lbl_801C62F8 = .bss:0x801C62F8; // type:object size:0x20 data:4byte +lbl_801C6318 = .bss:0x801C6318; // type:object size:0xF00 data:4byte +lbl_801C7218 = .bss:0x801C7218; // type:object size:0x40 data:byte +lbl_801C7258 = .bss:0x801C7258; // type:object size:0x80 data:byte +lbl_801C72D8 = .bss:0x801C72D8; // type:object size:0x950 data:byte +lbl_801C7C28 = .bss:0x801C7C28; // type:object size:0x3D7 +lbl_801C7FFF = .bss:0x801C7FFF; // type:object size:0x229 +lbl_801C8228 = .bss:0x801C8228; // type:object size:0x5E0 data:4byte +lbl_801C8808 = .bss:0x801C8808; // type:object size:0x100 data:4byte +lbl_801C8908 = .bss:0x801C8908; // type:object size:0x50 +lbl_801C8958 = .bss:0x801C8958; // type:object size:0x400 data:4byte +lbl_801C8D58 = .bss:0x801C8D58; // type:object size:0x300 +lbl_801C9058 = .bss:0x801C9058; // type:object size:0x700 +lbl_801C9758 = .bss:0x801C9758; // type:object size:0x200 data:4byte +lbl_801C9958 = .bss:0x801C9958; // type:object size:0x4300 +lbl_801CDC58 = .bss:0x801CDC58; // type:object size:0x80 +lbl_801CDCD8 = .bss:0x801CDCD8; // type:object size:0x2180 +lbl_801CFE58 = .bss:0x801CFE58; // type:object size:0x40 +lbl_801CFE98 = .bss:0x801CFE98; // type:object size:0x80 +lbl_801CFF18 = .bss:0x801CFF18; // type:object size:0x40 +lbl_801CFF58 = .bss:0x801CFF58; // type:object size:0x284 +lbl_801D01DC = .bss:0x801D01DC; // type:object size:0x284 +lbl_801D0460 = .bss:0x801D0460; // type:object size:0x400 data:4byte +lbl_801D0860 = .bss:0x801D0860; // type:object size:0x60 +lbl_801D08C0 = .bss:0x801D08C0; // type:object size:0x2000 +lbl_801D28C0 = .bss:0x801D28C0; // type:object size:0x500 data:4byte +lbl_801D2DC0 = .bss:0x801D2DC0; // type:object size:0x30 data:4byte +lbl_801D2DF0 = .bss:0x801D2DF0; // type:object size:0x10 data:4byte +lbl_801D2E00 = .bss:0x801D2E00; // type:object size:0x178 data:2byte +lbl_801D2F78 = .bss:0x801D2F78; // type:object size:0xE8 data:4byte +lbl_801D3060 = .bss:0x801D3060; // type:object size:0x60 data:4byte +lbl_801D30C0 = .sdata:0x801D30C0; // type:object size:0x5 scope:local data:string +lbl_801D30C5 = .sdata:0x801D30C5; // type:object size:0x7 scope:local +rnd_seed = .sdata:0x801D30CC; // type:object size:0x4 data:4byte +lbl_801D30D0 = .sdata:0x801D30D0; // type:object size:0x6 scope:local data:string +lbl_801D30D6 = .sdata:0x801D30D6; // type:object size:0x2 scope:local data:string +lbl_801D30D8 = .sdata:0x801D30D8; // type:object size:0x7 scope:local data:string +lbl_801D30DF = .sdata:0x801D30DF; // type:object size:0x9 scope:local +FirstFrame = .sdata:0x801D30E8; // type:object size:0x4 data:4byte +lbl_801D30EC = .sdata:0x801D30EC; // type:object size:0x7 scope:local data:string +lbl_801D30F3 = .sdata:0x801D30F3; // type:object size:0xD scope:local +lbl_801D3100 = .sdata:0x801D3100; // type:object size:0x2 scope:local data:string +lbl_801D3102 = .sdata:0x801D3102; // type:object size:0xE scope:local +oneceF = .sdata:0x801D3110; // type:object size:0x2 scope:local data:2byte +firstTev = .sdata:0x801D3112; // type:object size:0x4 scope:local +secondTev = .sdata:0x801D3116; // type:object size:0x4 scope:local +lbl_801D311A = .sdata:0x801D311A; // type:object size:0xE scope:local +lbl_801D3128 = .sdata:0x801D3128; // type:object size:0x4 scope:local data:string +lbl_801D312C = .sdata:0x801D312C; // type:object size:0xC scope:local +omSysPauseEnableFlag = .sdata:0x801D3138; // type:object size:0x1 data:byte +omprevovl = .sdata:0x801D313C; // type:object size:0x4 data:4byte +titleMes = .sdata:0x801D3140; // type:object size:0x4 scope:local data:4byte +lbl_801D3144 = .sdata:0x801D3144; // type:object size:0xC scope:local +lbl_801D3150 = .sdata:0x801D3150; // type:object size:0x1 scope:local +lbl_801D3151 = .sdata:0x801D3151; // type:object size:0x7 scope:local +mgSeqOvlPrev = .sdata:0x801D3158; // type:object size:0x4 data:4byte +wordStartE = .sdata:0x801D315C; // type:object size:0x7 scope:local data:string +seqPunctTbl = .sdata:0x801D3163; // type:object size:0x3 scope:local data:byte +wordStartJ = .sdata:0x801D3166; // type:object size:0x6 scope:local +wordFinishJ = .sdata:0x801D316C; // type:object size:0x8 scope:local +wordDrawJ = .sdata:0x801D3174; // type:object size:0x6 scope:local +wordFinishE = .sdata:0x801D317A; // type:object size:0x8 scope:local data:string +wordDrawE = .sdata:0x801D3182; // type:object size:0x6 scope:local data:string +@1961 = .sdata:0x801D3188; // type:object size:0x4 scope:local data:string +@1962 = .sdata:0x801D318C; // type:object size:0x6 scope:local data:string +@1963 = .sdata:0x801D3192; // type:object size:0x6 scope:local +@1964 = .sdata:0x801D3198; // type:object size:0x6 scope:local data:string +@1965 = .sdata:0x801D319E; // type:object size:0x5 scope:local +@1966 = .sdata:0x801D31A3; // type:object size:0x6 scope:local data:string +@1967 = .sdata:0x801D31A9; // type:object size:0x5 scope:local +@1968 = .sdata:0x801D31AE; // type:object size:0x6 scope:local data:string +@1969 = .sdata:0x801D31B4; // type:object size:0x4 scope:local +@1970 = .sdata:0x801D31B8; // type:object size:0x6 scope:local data:string +@1971 = .sdata:0x801D31BE; // type:object size:0x6 scope:local +@1972 = .sdata:0x801D31C4; // type:object size:0x3 scope:local data:string +@1973 = .sdata:0x801D31C7; // type:object size:0x7 scope:local +@1974 = .sdata:0x801D31CE; // type:object size:0x6 scope:local data:string +@1975 = .sdata:0x801D31D4; // type:object size:0x7 scope:local +@1976 = .sdata:0x801D31DB; // type:object size:0x8 scope:local data:string +@1977 = .sdata:0x801D31E3; // type:object size:0x5 scope:local +@1978 = .sdata:0x801D31E8; // type:object size:0x7 scope:local data:string +@1979 = .sdata:0x801D31EF; // type:object size:0x6 scope:local +@1980 = .sdata:0x801D31F5; // type:object size:0x5 scope:local data:string +@1981 = .sdata:0x801D31FA; // type:object size:0x5 scope:local +@1982 = .sdata:0x801D31FF; // type:object size:0x6 scope:local data:string +@1983 = .sdata:0x801D3205; // type:object size:0x4 scope:local +@1984 = .sdata:0x801D3209; // type:object size:0x8 scope:local data:string +@1985 = .sdata:0x801D3211; // type:object size:0x5 scope:local +@1986 = .sdata:0x801D3216; // type:object size:0x7 scope:local +@1987 = .sdata:0x801D321D; // type:object size:0x6 scope:local +@1988 = .sdata:0x801D3223; // type:object size:0x7 scope:local data:string +@1989 = .sdata:0x801D322A; // type:object size:0x3 scope:local +@1990 = .sdata:0x801D322D; // type:object size:0x5 scope:local data:string +@1991 = .sdata:0x801D3232; // type:object size:0x6 scope:local +@1992 = .sdata:0x801D3238; // type:object size:0x5 scope:local data:string +@1993 = .sdata:0x801D323D; // type:object size:0x7 scope:local +@1994 = .sdata:0x801D3244; // type:object size:0x6 scope:local +@1995 = .sdata:0x801D324A; // type:object size:0x6 scope:local data:string +pauseStr$2283 = .sdata:0x801D3250; // type:object size:0x8 scope:local +lbl_801D35C0 = .sdata:0x801D3258; // type:object size:0x8 +lbl_801D35C8 = .sdata:0x801D3260; // type:object size:0x8 +lbl_801D35D0 = .sdata:0x801D3268; // type:object size:0x8 +lbl_801D35D8 = .sdata:0x801D3270; // type:object size:0x8 +colorN$226 = .sdata:0x801D3278; // type:object size:0x4 scope:local data:byte +colorN$271 = .sdata:0x801D327C; // type:object size:0x4 scope:local data:byte +winPrio = .sdata:0x801D3280; // type:object size:0x2 scope:local data:2byte +lbl_801D3288 = .sdata:0x801D3288; // type:object size:0x8 scope:local +lbl_801D3290 = .sdata:0x801D3290; // type:object size:0x8 scope:local +lbl_801D3298 = .sdata:0x801D3298; // type:object size:0x8 scope:local +lbl_801D32A0 = .sdata:0x801D32A0; // type:object size:0x8 scope:local +lbl_801D32A8 = .sdata:0x801D32A8; // type:object size:0x8 scope:local +lbl_801D32B0 = .sdata:0x801D32B0; // type:object size:0x1 scope:local +lbl_801D32B1 = .sdata:0x801D32B1; // type:object size:0x5 scope:local data:string +lbl_801D32B6 = .sdata:0x801D32B6; // type:object size:0x5 scope:local data:string +lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 scope:local data:string +lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 scope:local data:string +lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 scope:local +lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 scope:local +SaveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte +@228 = .sdata:0x801D32DC; // type:object size:0x2 scope:local data:string +@229 = .sdata:0x801D32DE; // type:object size:0x2 scope:local data:string +SlotNameTbl = .sdata:0x801D32E0; // type:object size:0x8 scope:local +lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 scope:local +lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x4 scope:local +slotIconMesTbl = .sdata:0x801D32F0; // type:object size:0x8 scope:local +sjisSpace = .sdata:0x801D32F8; // type:object size:0x3 scope:local data:byte +saveMessWin = .sdata:0x801D32FC; // type:object size:0x4 scope:local data:4byte +SR_PushTime = .sdata:0x801D3300; // type:object size:0x8 scope:local data:2byte +SR_ResetPad = .sdata:0x801D3308; // type:object size:0x1 scope:local data:byte +Xfb = .sdata:0x801D330C; // type:object size:0x8 scope:local data:4byte +nextOvl = .sdata:0x801D3318; // type:object size:0x4 scope:local data:4byte +lbl_801D331C = .sdata:0x801D331C; // type:object size:0x4 scope:local data:byte +lbl_801D3320 = .sdata:0x801D3320; // type:object size:0x6 scope:local data:string +suitMdl = .sdata:0x801D3328; // type:object size:0x2 scope:local data:2byte +suitPlayerMdl = .sdata:0x801D332A; // type:object size:0x2 scope:local data:2byte +suitCurrMot = .sdata:0x801D332C; // type:object size:0x2 scope:local data:2byte +lbl_801D332E = .sdata:0x801D332E; // type:object size:0x5 scope:local data:string +lbl_801D3333 = .sdata:0x801D3333; // type:object size:0x5 scope:local data:string +lbl_801D3338 = .sdata:0x801D3338; // type:object size:0x6 scope:local data:string +lbl_801D333E = .sdata:0x801D333E; // type:object size:0x6 scope:local data:string +lbl_801D3344 = .sdata:0x801D3344; // type:object size:0x6 scope:local data:string +lbl_801D334A = .sdata:0x801D334A; // type:object size:0x6 scope:local data:string +lbl_801D3350 = .sdata:0x801D3350; // type:object size:0x6 scope:local data:string +lbl_801D3356 = .sdata:0x801D3356; // type:object size:0x6 scope:local data:string +lbl_801D335C = .sdata:0x801D335C; // type:object size:0x6 scope:local data:string +lbl_801D3362 = .sdata:0x801D3362; // type:object size:0x6 scope:local data:string +lbl_801D3368 = .sdata:0x801D3368; // type:object size:0x6 scope:local data:string +lbl_801D336E = .sdata:0x801D336E; // type:object size:0x6 scope:local data:string +lbl_801D3374 = .sdata:0x801D3374; // type:object size:0x6 scope:local data:string +lbl_801D337A = .sdata:0x801D337A; // type:object size:0xE scope:local +lbl_801D3388 = .sdata:0x801D3388; // type:object size:0x8 data:2byte +lbl_801D3390 = .sdata:0x801D3390; // type:object size:0x8 data:4byte +lbl_801D3398 = .sdata:0x801D3398; // type:object size:0x8 data:byte +lbl_801D33A0 = .sdata:0x801D33A0; // type:object size:0x2 data:2byte +lbl_801D33A2 = .sdata:0x801D33A2; // type:object size:0x6 data:2byte +lbl_801D33A8 = .sdata:0x801D33A8; // type:object size:0x2 data:2byte +lbl_801D33AA = .sdata:0x801D33AA; // type:object size:0x6 data:2byte +lbl_801D33B0 = .sdata:0x801D33B0; // type:object size:0x2 data:2byte +lbl_801D33B2 = .sdata:0x801D33B2; // type:object size:0x1 data:byte +lbl_801D33B4 = .sdata:0x801D33B4; // type:object size:0x8 +lbl_801D33BC = .sdata:0x801D33BC; // type:object size:0x2 data:2byte +lbl_801D33BE = .sdata:0x801D33BE; // type:object size:0x6 data:2byte +lbl_801D33C4 = .sdata:0x801D33C4; // type:object size:0x1 data:byte +lbl_801D33C5 = .sdata:0x801D33C5; // type:object size:0xB +lbl_801D33D0 = .sdata:0x801D33D0; // type:object size:0x2 data:2byte +lbl_801D33D2 = .sdata:0x801D33D2; // type:object size:0x8 data:2byte +lbl_801D33DA = .sdata:0x801D33DA; // type:object size:0x2 data:2byte +lbl_801D33DC = .sdata:0x801D33DC; // type:object size:0x2 data:2byte +lbl_801D33DE = .sdata:0x801D33DE; // type:object size:0x2 data:2byte +lbl_801D33E2 = .sdata:0x801D33E2; // type:object size:0x2 data:2byte +lbl_801D33E4 = .sdata:0x801D33E4; // type:object size:0x8 +lbl_801D33EC = .sdata:0x801D33EC; // type:object size:0x2 data:2byte +lbl_801D33EE = .sdata:0x801D33EE; // type:object size:0x2 data:2byte +lbl_801D33F0 = .sdata:0x801D33F0; // type:object size:0x2 data:2byte +lbl_801D33F2 = .sdata:0x801D33F2; // type:object size:0x2 data:2byte +lbl_801D33F4 = .sdata:0x801D33F4; // type:object size:0x4 +lbl_801D33F8 = .sdata:0x801D33F8; // type:object size:0x8 +lbl_801D3400 = .sdata:0x801D3400; // type:object size:0x1 data:byte +lbl_801D3402 = .sdata:0x801D3402; // type:object size:0x2 data:2byte +lbl_801D3404 = .sdata:0x801D3404; // type:object size:0x4 data:4byte +lbl_801D3408 = .sdata:0x801D3408; // type:object size:0x8 +lbl_801D3410 = .sdata:0x801D3410; // type:object size:0x8 data:2byte +lbl_801D3418 = .sdata:0x801D3418; // type:object size:0x2 data:2byte +lbl_801D341A = .sdata:0x801D341A; // type:object size:0x6 data:2byte +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x6 +lbl_801D3426 = .sdata:0x801D3426; // type:object size:0x6 +lbl_801D342C = .sdata:0x801D342C; // type:object size:0x2 data:2byte +lbl_801D342E = .sdata:0x801D342E; // type:object size:0xA +lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x2 data:2byte +lbl_801D343A = .sdata:0x801D343A; // type:object size:0x6 data:2byte +lbl_801D3440 = .sdata:0x801D3440; // type:object size:0x2 data:2byte +lbl_801D3442 = .sdata:0x801D3442; // type:object size:0x6 data:2byte +lbl_801D3448 = .sdata:0x801D3448; // type:object size:0x8 +lbl_801D3450 = .sdata:0x801D3450; // type:object size:0x8 +lbl_801D3458 = .sdata:0x801D3458; // type:object size:0x2 data:2byte +lbl_801D345A = .sdata:0x801D345A; // type:object size:0x2 data:2byte +lbl_801D345C = .sdata:0x801D345C; // type:object size:0x2 data:2byte +lbl_801D345E = .sdata:0x801D345E; // type:object size:0x2 data:2byte +lbl_801D3460 = .sdata:0x801D3460; // type:object size:0x3 data:string +lbl_801D3463 = .sdata:0x801D3463; // type:object size:0xD +lbl_801D3470 = .sdata:0x801D3470; // type:object size:0x8 +lbl_801D3478 = .sdata:0x801D3478; // type:object size:0x8 +lbl_801D3480 = .sdata:0x801D3480; // type:object size:0x8 +lbl_801D3488 = .sdata:0x801D3488; // type:object size:0x8 +lbl_801D3490 = .sdata:0x801D3490; // type:object size:0x1 data:byte +lbl_801D3491 = .sdata:0x801D3491; // type:object size:0x7 data:byte +lbl_801D3498 = .sdata:0x801D3498; // type:object size:0x2 data:2byte +lbl_801D349A = .sdata:0x801D349A; // type:object size:0x2 data:2byte +lbl_801D349C = .sdata:0x801D349C; // type:object size:0x2 data:2byte +lbl_801D349E = .sdata:0x801D349E; // type:object size:0x2 data:2byte +lbl_801D34A0 = .sdata:0x801D34A0; // type:object size:0x2 data:2byte +lbl_801D34A2 = .sdata:0x801D34A2; // type:object size:0x2 data:2byte +lbl_801D34A4 = .sdata:0x801D34A4; // type:object size:0x6 data:2byte +lbl_801D34AA = .sdata:0x801D34AA; // type:object size:0x7 data:string +lbl_801D34B1 = .sdata:0x801D34B1; // type:object size:0x7 data:string +lbl_801D34B8 = .sdata:0x801D34B8; // type:object size:0x7 data:string +lbl_801D34BF = .sdata:0x801D34BF; // type:object size:0x7 data:string +lbl_801D34C6 = .sdata:0x801D34C6; // type:object size:0x7 data:string +lbl_801D34CD = .sdata:0x801D34CD; // type:object size:0x6 data:string +lbl_801D34D3 = .sdata:0x801D34D3; // type:object size:0x7 data:string +lbl_801D34DA = .sdata:0x801D34DA; // type:object size:0x6 data:string +lbl_801D34E0 = .sdata:0x801D34E0; // type:object size:0x8 +lbl_801D34E8 = .sdata:0x801D34E8; // type:object size:0x2 data:2byte +lbl_801D34EA = .sdata:0x801D34EA; // type:object size:0x2 data:2byte +lbl_801D34EC = .sdata:0x801D34EC; // type:object size:0x2 data:2byte +lbl_801D34EE = .sdata:0x801D34EE; // type:object size:0x2 data:2byte +lbl_801D34F0 = .sdata:0x801D34F0; // type:object size:0x4 data:4byte +lbl_801D34F4 = .sdata:0x801D34F4; // type:object size:0x4 +lbl_801D34F8 = .sdata:0x801D34F8; // type:object size:0x2 data:2byte +lbl_801D34FA = .sdata:0x801D34FA; // type:object size:0x2 data:2byte +lbl_801D34FC = .sdata:0x801D34FC; // type:object size:0x2 data:2byte +lbl_801D34FE = .sdata:0x801D34FE; // type:object size:0x2 data:2byte +lbl_801D3500 = .sdata:0x801D3500; // type:object size:0x4 data:4byte +lbl_801D3504 = .sdata:0x801D3504; // type:object size:0x6 data:string +lbl_801D350A = .sdata:0x801D350A; // type:object size:0x7 data:string +lbl_801D3511 = .sdata:0x801D3511; // type:object size:0x7 data:string +lbl_801D3518 = .sdata:0x801D3518; // type:object size:0x7 data:string +lbl_801D351F = .sdata:0x801D351F; // type:object size:0x5 data:string +lbl_801D3524 = .sdata:0x801D3524; // type:object size:0x6 data:string +lbl_801D352A = .sdata:0x801D352A; // type:object size:0x6 data:string +lbl_801D3530 = .sdata:0x801D3530; // type:object size:0x6 data:string +lbl_801D3536 = .sdata:0x801D3536; // type:object size:0x4 data:string +lbl_801D353A = .sdata:0x801D353A; // type:object size:0x5 data:string +lbl_801D353F = .sdata:0x801D353F; // type:object size:0x5 data:string +lbl_801D3544 = .sdata:0x801D3544; // type:object size:0xC +pausePad = .sdata:0x801D3550; // type:object size:0x1 scope:local data:byte +pauseSprGrp = .sdata:0x801D3552; // type:object size:0x2 scope:local data:2byte +padConfigSprGrp = .sdata:0x801D3554; // type:object size:0x2 scope:local data:2byte +pauseCursorPos = .sdata:0x801D3556; // type:object size:0x2 scope:local data:2byte +settingsControlWin = .sdata:0x801D3558; // type:object size:0x2 scope:local data:2byte +controlWin = .sdata:0x801D355A; // type:object size:0x2 scope:local data:2byte +quitWin = .sdata:0x801D355C; // type:object size:0x2 scope:local data:2byte +settingsWin = .sdata:0x801D355E; // type:object size:0x2 scope:local data:2byte +__OSCurrHeap = .sdata:0x801D3560; // type:object size:0x8 data:4byte +__OSArenaLo = .sdata:0x801D3568; // type:object size:0x4 scope:local data:4byte +@32 = .sdata:0x801D3570; // type:object size:0x2 scope:local data:string +lbl_801D3578 = .sdata:0x801D3578; // type:object size:0x8 data:2byte +lbl_801D3580 = .sdata:0x801D3580; // type:object size:0x8 +lbl_801D3588 = .sdata:0x801D3588; // type:object size:0x8 data:4byte +lbl_801D3590 = .sdata:0x801D3590; // type:object size:0x8 data:string +autoInvalidation = .sdata:0x801D3598; // type:object size:0x4 scope:local data:4byte +@35 = .sdata:0x801D35A0; // type:object size:0x2 scope:local data:string +@40 = .sdata:0x801D35A4; // type:object size:0x4 scope:local data:string +@41 = .sdata:0x801D35A8; // type:object size:0x3 scope:local data:string +lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x8 data:string +lbl_801D35B8 = .sdata:0x801D35B8; // type:object size:0x8 data:byte +lbl_801D35C0_2 = .sdata:0x801D35C0; // type:object size:0x4 data:4byte +lbl_801D35C4 = .sdata:0x801D35C4; // type:object size:0x4 data:4byte +lbl_801D35C8_2 = .sdata:0x801D35C8; // type:object size:0x4 data:4byte +lbl_801D35CC = .sdata:0x801D35CC; // type:object size:0x4 data:4byte +lbl_801D35D0_2 = .sdata:0x801D35D0; // type:object size:0x4 data:4byte +lbl_801D35D4 = .sdata:0x801D35D4; // type:object size:0x4 +lbl_801D35D8_2 = .sdata:0x801D35D8; // type:object size:0x8 +gx = .sdata:0x801D35E0; // type:object size:0x4 scope:global data:4byte +lbl_801D35E8 = .sdata:0x801D35E8; // type:object size:0x4 +lbl_801D35EC = .sdata:0x801D35EC; // type:object size:0x4 +lbl_801D35F0 = .sdata:0x801D35F0; // type:object size:0x8 +lbl_801D35F8 = .sdata:0x801D35F8; // type:object size:0x8 +lbl_801D3600 = .sdata:0x801D3600; // type:object size:0x8 +lbl_801D3608 = .sdata:0x801D3608; // type:object size:0x8 +lbl_801D3610 = .sdata:0x801D3610; // type:object size:0x8 +lbl_801D3618 = .sdata:0x801D3618; // type:object size:0x8 +lbl_801D3620 = .sdata:0x801D3620; // type:object size:0x8 +lbl_801D3628 = .sdata:0x801D3628; // type:object size:0x8 +lbl_801D3630 = .sdata:0x801D3630; // type:object size:0x8 +lbl_801D3638 = .sdata:0x801D3638; // type:object size:0x8 data:4byte +lbl_801D3640 = .sdata:0x801D3640; // type:object size:0x8 data:2byte +lbl_801D3648 = .sdata:0x801D3648; // type:object size:0x8 +lbl_801D3650 = .sdata:0x801D3650; // type:object size:0x4 data:4byte +lbl_801D3654 = .sdata:0x801D3654; // type:object size:0x4 data:4byte +fragmentID = .sdata:0x801D3658; // type:object size:0x4 scope:local data:4byte +lbl_801D3660 = .sdata:0x801D3660; // type:object size:0x8 +lbl_801D3668 = .sdata:0x801D3668; // type:object size:0x8 +@wstringBase0 = .sdata:0x801D3670; // type:object size:0x2 scope:local +lbl_801D3678 = .sdata:0x801D3678; // type:object size:0x4 data:float +lbl_801D367C = .sdata:0x801D367C; // type:object size:0x4 data:float +lbl_801D3680 = .sdata:0x801D3680; // type:object size:0x8 data:4byte +lbl_801D3688 = .sdata:0x801D3688; // type:object size:0x8 +lbl_801D3690 = .sdata:0x801D3690; // type:object size:0x8 +lbl_801D3698 = .sdata:0x801D3698; // type:object size:0x8 data:2byte +lbl_801D36A0 = .sdata:0x801D36A0; // type:object size:0x1 data:byte +SystemInitF = .sbss:0x801D36C0; // type:object size:0x4 data:4byte +HuDvdErrWait = .sbss:0x801D36C4; // type:object size:0x4 data:4byte +fi_req = .sbss:0x801D36C8; // type:object size:0x4 scope:local +rf_req = .sbss:0x801D36CC; // type:object size:0x4 scope:local +pe_req = .sbss:0x801D36D0; // type:object size:0x4 scope:local +vi_req = .sbss:0x801D36D4; // type:object size:0x4 scope:local +io_req = .sbss:0x801D36D8; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801D36DC; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801D36E0; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801D36E4; // type:object size:0x4 scope:local +tc_req = .sbss:0x801D36E8; // type:object size:0x4 scope:local +cp_req = .sbss:0x801D36EC; // type:object size:0x4 scope:local +total_copy_clks = .sbss:0x801D36F0; // type:object size:0x4 scope:local +clr_pixels_in = .sbss:0x801D36F4; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D36F8; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801D36FC; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801D3700; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801D3704; // type:object size:0x4 scope:local +vstall = .sbss:0x801D3708; // type:object size:0x4 scope:local +vmiss = .sbss:0x801D370C; // type:object size:0x4 scope:local +vcheck = .sbss:0x801D3710; // type:object size:0x4 scope:local +GlobalCounter = .sbss:0x801D3714; // type:object size:0x4 data:4byte +VCounter = .sbss:0x801D3718; // type:object size:0x4 data:4byte +RumbleBit = .sbss:0x801D371C; // type:object size:0x4 scope:local data:4byte +_PadErr = .sbss:0x801D3720; // type:object size:0x4 scope:local +_PadDStkRepOld = .sbss:0x801D3724; // type:object size:0x4 scope:local +_PadDStkRepCnt = .sbss:0x801D3728; // type:object size:0x4 scope:local +_PadDStkRep = .sbss:0x801D372C; // type:object size:0x4 scope:local +_PadDStk = .sbss:0x801D3730; // type:object size:0x4 scope:local +_PadTrigR = .sbss:0x801D3734; // type:object size:0x4 scope:local +_PadTrigL = .sbss:0x801D3738; // type:object size:0x4 scope:local +_PadSubStkY = .sbss:0x801D373C; // type:object size:0x4 scope:local +_PadSubStkX = .sbss:0x801D3740; // type:object size:0x4 scope:local +_PadStkY = .sbss:0x801D3744; // type:object size:0x4 scope:local +_PadStkX = .sbss:0x801D3748; // type:object size:0x4 scope:local +_PadRepCnt = .sbss:0x801D374C; // type:object size:0x8 scope:local +_PadBtnDown = .sbss:0x801D3754; // type:object size:0x8 +_PadBtn = .sbss:0x801D375C; // type:object size:0x8 +HuPadErr = .sbss:0x801D3764; // type:object size:0x4 +HuPadDStkRep = .sbss:0x801D3768; // type:object size:0x4 +HuPadDStk = .sbss:0x801D376C; // type:object size:0x4 +HuPadTrigR = .sbss:0x801D3770; // type:object size:0x4 +HuPadTrigL = .sbss:0x801D3774; // type:object size:0x4 +HuPadSubStkY = .sbss:0x801D3778; // type:object size:0x4 +HuPadSubStkX = .sbss:0x801D377C; // type:object size:0x4 +HuPadStkY = .sbss:0x801D3780; // type:object size:0x4 +HuPadStkX = .sbss:0x801D3784; // type:object size:0x4 +HuPadBtnRep = .sbss:0x801D3788; // type:object size:0x8 +HuPadBtnDown = .sbss:0x801D3790; // type:object size:0x8 data:2byte +HuPadBtn = .sbss:0x801D3798; // type:object size:0x8 +beforeDvdStatus = .sbss:0x801D37A0; // type:object size:0x4 scope:local data:4byte +CallBackStatus = .sbss:0x801D37A4; // type:object size:0x4 scope:local data:4byte +shortAccessSleep = .sbss:0x801D37A8; // type:object size:0x4 scope:local data:4byte +DataDirMax = .sbss:0x801D37AC; // type:object size:0x4 scope:local data:4byte +DirDataSize = .sbss:0x801D37B0; // type:object size:0x4 data:4byte +DemoStatEnable = .sbss:0x801D37B8; // type:object size:0x4 scope:local data:4byte +worstVcount = .sbss:0x801D37BC; // type:object size:0x4 data:4byte +minimumVcountf = .sbss:0x801D37C0; // type:object size:0x4 data:float +minimumVcount = .sbss:0x801D37C4; // type:object size:0x4 data:4byte +DemoCurrentBuffer = .sbss:0x801D37C8; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801D37CC; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801D37D0; // type:object size:0x4 scope:local data:4byte +DefaultFifoObj = .sbss:0x801D37D4; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801D37D8; // type:object size:0x4 data:4byte +currentHeapHandle = .sbss:0x801D37DC; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801D37E0; // type:object size:0x8 data:4byte +saftyFrameF = .sbss:0x801D37E8; // type:object size:0x4 data:4byte +strlinecnt = .sbss:0x801D37EC; // type:object size:0x2 data:2byte +empstrline = .sbss:0x801D37EE; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801D37F0; // type:object size:0x8 data:4byte +procfunc = .sbss:0x801D37F8; // type:object size:0x4 data:4byte +processcnt = .sbss:0x801D37FC; // type:object size:0x2 scope:local data:2byte +processcur = .sbss:0x801D3800; // type:object size:0x4 scope:local data:4byte +processtop = .sbss:0x801D3804; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801D3808; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801D380C; // type:object size:0x2 scope:local data:2byte +HuSprOrderNum = .sbss:0x801D380E; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801D3810; // type:object size:0x8 scope:local data:2byte +MaterialTop = .sbss:0x801D3818; // type:object size:0x4 data:4byte +AttributeTop = .sbss:0x801D381C; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801D3820; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801D3824; // type:object size:0x4 data:4byte +objtop = .sbss:0x801D3828; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801D382C; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801D3830; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801D3834; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801D3838; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801D383C; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801D3840; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801D3844; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801D3848; // type:object size:0x8 scope:local data:4byte +CancelTRXF = .sbss:0x801D3850; // type:object size:0x4 scope:local data:4byte +TL32F = .sbss:0x801D3854; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801D3858; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801D385C; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801D3860; // type:object size:0x2 scope:local data:2byte +curModelID = .sbss:0x801D3864; // type:object size:0x4 scope:local data:4byte +mallocNo = .sbss:0x801D3868; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801D386C; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801D3870; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801D3874; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801D3878; // type:object size:0x2 scope:local data:2byte +quadCnt = .sbss:0x801D387A; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801D387C; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801D387E; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801D3880; // type:object size:0x4 scope:local data:4byte +modelObjNum = .sbss:0x801D3884; // type:object size:0x2 data:2byte +modelMeshNum = .sbss:0x801D3886; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801D3888; // type:object size:0x4 data:4byte +totalTexCacheCnt = .sbss:0x801D388C; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801D3890; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801D3894; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801D3898; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801D389C; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801D38A0; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801D38A4; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801D38A8; // type:object size:0x2 scope:local data:2byte +kColorIdx = .sbss:0x801D38AC; // type:object size:0x4 scope:local data:4byte +kColor = .sbss:0x801D38B0; // type:object size:0x4 scope:local data:byte +projectionMapNo = .sbss:0x801D38B4; // type:object size:0x2 scope:local data:2byte +toonMapNo = .sbss:0x801D38B6; // type:object size:0x2 scope:local data:2byte +shadowMapNo = .sbss:0x801D38B8; // type:object size:0x2 scope:local data:2byte +attachMotionF = .sbss:0x801D38BC; // type:object size:0x4 scope:local data:4byte +vtxModeBak = .sbss:0x801D38C0; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801D38C2; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801D38C4; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801D38C8; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801D38CC; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801D38CE; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801D38D0; // type:object size:0x4 scope:local data:4byte +DrawData = .sbss:0x801D38D4; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801D38D8; // type:object size:0x4 scope:local data:4byte +DLBufP = .sbss:0x801D38DC; // type:object size:0x4 scope:local data:4byte +shadingBak = .sbss:0x801D38E0; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801D38E4; // type:object size:0x1 scope:local data:byte +materialBak = .sbss:0x801D38E8; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801D38EC; // type:object size:0x2 data:2byte +modelKillAllF = .sbss:0x801D38F0; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801D38F4; // type:object size:0x2 scope:local data:2byte +Hu3DCameraExistF = .sbss:0x801D38F6; // type:object size:0x2 data:2byte +Hu3DPauseF = .sbss:0x801D38F8; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801D38FC; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801D3900; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801D3902; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801D3904; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801D3908; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801D390C; // type:object size:0x4 data:4byte +Hu3DShadowCamBit = .sbss:0x801D3910; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801D3914; // type:object size:0x4 data:4byte +reflectMapNo = .sbss:0x801D3918; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801D391A; // type:object size:0x4 data:byte +bitMapPtr = .sbss:0x801D3920; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801D3928; // type:object size:0x1 scope:local data:byte +tokenEndF = .sbss:0x801D392A; // type:object size:0x2 scope:local data:2byte +total_copy_clks = .sbss:0x801D392C; // type:object size:0x4 scope:local data:4byte +clr_pixels_in = .sbss:0x801D3930; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D3934; // type:object size:0x4 +bot_pixels_in = .sbss:0x801D3938; // type:object size:0x4 +top_pixels_out = .sbss:0x801D393C; // type:object size:0x4 +top_pixels_in = .sbss:0x801D3940; // type:object size:0x4 +fi_req = .sbss:0x801D3944; // type:object size:0x4 +rf_req = .sbss:0x801D3948; // type:object size:0x4 +pe_req = .sbss:0x801D394C; // type:object size:0x4 +vi_req = .sbss:0x801D3950; // type:object size:0x4 +io_req = .sbss:0x801D3954; // type:object size:0x4 +dsp_req = .sbss:0x801D3958; // type:object size:0x4 +cpu_wr_req = .sbss:0x801D395C; // type:object size:0x4 +cpu_rd_req = .sbss:0x801D3960; // type:object size:0x4 +tc_req = .sbss:0x801D3964; // type:object size:0x4 +cp_req = .sbss:0x801D3968; // type:object size:0x4 +vstall = .sbss:0x801D396C; // type:object size:0x4 +vmiss = .sbss:0x801D3970; // type:object size:0x4 +vcheck = .sbss:0x801D3974; // type:object size:0x4 +met1 = .sbss:0x801D3978; // type:object size:0x4 +met0 = .sbss:0x801D397C; // type:object size:0x4 +omdispinfo = .sbss:0x801D3980; // type:object size:0x2 data:2byte +omSysExitReq = .sbss:0x801D3982; // type:object size:0x2 data:2byte +omUPauseFlag = .sbss:0x801D3984; // type:object size:0x1 data:byte +omnextovlstat = .sbss:0x801D3988; // type:object size:0x4 scope:local data:4byte +omovlstat = .sbss:0x801D398C; // type:object size:0x4 data:4byte +omnextovlevtno = .sbss:0x801D3990; // type:object size:0x4 data:4byte +omovlevtno = .sbss:0x801D3994; // type:object size:0x4 data:4byte +omovlhisidx = .sbss:0x801D3998; // type:object size:0x4 data:4byte +omcurdll = .sbss:0x801D399C; // type:object size:0x4 data:4byte +omcurovl = .sbss:0x801D39A0; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801D39A4; // type:object size:0x4 data:4byte +omwatchproc = .sbss:0x801D39A8; // type:object size:0x4 data:4byte +omDBGSysKeyObj = .sbss:0x801D39AC; // type:object size:0x4 data:4byte +y_start = .sbss:0x801D39B0; // type:object size:0x4 scope:local data:4byte +x_start = .sbss:0x801D39B4; // type:object size:0x4 scope:local data:4byte +Draw_Color = .sbss:0x801D39B8; // type:object size:0x3 scope:local data:byte +XFB_putc = .sbss:0x801D39BC; // type:object size:0x4 scope:local data:4byte +omDBGMenuButton = .sbss:0x801D39C0; // type:object size:0x2 +CZoom = .sbss:0x801D39C4; // type:object size:0x4 data:float +omDLLFileList = .sbss:0x801D39C8; // type:object size:0x8 data:4byte +frand_seed = .sbss:0x801D39D0; // type:object size:0x8 scope:local data:4byte +fadeStat = .sbss:0x801D39D8; // type:object size:0x1 data:byte +musicOffF = .sbss:0x801D39DC; // type:object size:0x4 data:4byte +Snd3DDistOffset = .sbss:0x801D39E0; // type:object size:0x4 data:float +Snd3DSpeedOffset = .sbss:0x801D39E4; // type:object size:0x4 data:float +Snd3DStartDisOffset = .sbss:0x801D39E8; // type:object size:0x4 data:float +Snd3DFrontSurDisOffset = .sbss:0x801D39EC; // type:object size:0x4 data:float +Snd3DBackSurDisOffset = .sbss:0x801D39F0; // type:object size:0x4 data:float +HuAuxBVol = .sbss:0x801D39F4; // type:object size:0x1 scope:local data:byte +HuAuxAVol = .sbss:0x801D39F5; // type:object size:0x1 scope:local data:byte +auxBNoBak = .sbss:0x801D39F8; // type:object size:0x4 scope:local data:4byte +auxANoBak = .sbss:0x801D39FC; // type:object size:0x4 scope:local data:4byte +sndGroupBak = .sbss:0x801D3A00; // type:object size:0x2 scope:local data:2byte +Hu3DAudVol = .sbss:0x801D3A02; // type:object size:0x6 scope:local data:2byte +Meshno = .sbss:0x801D3A08; // type:object size:0x4 scope:local data:4byte +Meshcnt = .sbss:0x801D3A0C; // type:object size:0x4 scope:local data:4byte +normtop = .sbss:0x801D3A10; // type:object size:0x4 scope:local data:4byte +normenv = .sbss:0x801D3A14; // type:object size:0x4 scope:local data:4byte +vtxenv = .sbss:0x801D3A18; // type:object size:0x4 scope:local data:4byte +CurHsf = .sbss:0x801D3A1C; // type:object size:0x4 scope:local data:4byte +objtop = .sbss:0x801D3A20; // type:object size:0x4 scope:local data:4byte +nMesh = .sbss:0x801D3A24; // type:object size:0x4 scope:local data:4byte +nObj = .sbss:0x801D3A28; // type:object size:0x4 scope:local data:4byte +MtxTop = .sbss:0x801D3A2C; // type:object size:0x4 data:4byte +Vertextop = .sbss:0x801D3A30; // type:object size:0x4 data:4byte +seqLanguage = .sbss:0x801D3A38; // type:object size:0x4 scope:local data:4byte +pauseProcess = .sbss:0x801D3A3C; // type:object size:0x4 scope:local data:4byte +pauseActiveF = .sbss:0x801D3A40; // type:object size:0x4 scope:local data:4byte +pauseExitF = .sbss:0x801D3A44; // type:object size:0x4 scope:local data:4byte +pauseWaitF = .sbss:0x801D3A48; // type:object size:0x4 scope:local data:4byte +seqRecordVal = .sbss:0x801D3A4C; // type:object size:0x4 scope:local data:4byte +seqPauseF = .sbss:0x801D3A50; // type:object size:0x2 scope:local data:2byte +seqSpeed = .sbss:0x801D3A52; // type:object size:0x2 scope:local data:2byte +lbl_801D3A54 = .sbss:0x801D3A54; // type:object size:0x1 data:byte +seqDoneF = .sbss:0x801D3A55; // type:object size:0x1 scope:local data:byte +seqTimer = .sbss:0x801D3A56; // type:object size:0x2 scope:local data:2byte +gid = .sbss:0x801D3A58; // type:object size:0x2 scope:local data:2byte +lbl_801D3DA0 = .sbss:0x801D3A60; // type:object size:0x8 +wipeFadeInF = .sbss:0x801D3A68; // type:object size:0x4 data:4byte +fontAnim = .sbss:0x801D3A70; // type:object size:0x4 data:4byte +LanguageNo = .sbss:0x801D3A74; // type:object size:0x1 scope:local data:byte +comKeyIdx = .sbss:0x801D3A76; // type:object size:0x2 scope:local data:2byte +comKeyIdxNow = .sbss:0x801D3A78; // type:object size:0x2 scope:local data:2byte +mesCharCnt = .sbss:0x801D3A7A; // type:object size:0x2 scope:local data:2byte +cancelCRF = .sbss:0x801D3A7C; // type:object size:0x4 scope:local data:4byte +fontWidthP = .sbss:0x801D3A80; // type:object size:0x4 scope:local data:4byte +winAMemP = .sbss:0x801D3A84; // type:object size:0x4 scope:local data:4byte +winInsertF = .sbss:0x801D3A88; // type:object size:0x1 scope:local data:byte +winTabSize = .sbss:0x801D3A89; // type:object size:0x1 scope:local data:byte +mesWInsert = .sbss:0x801D3A8A; // type:object size:0x8 scope:local +winMaxHeight = .sbss:0x801D3A92; // type:object size:0x2 scope:local data:2byte +winMaxWidth = .sbss:0x801D3A94; // type:object size:0x2 scope:local data:2byte +messDataNo = .sbss:0x801D3A98; // type:object size:0x4 scope:local data:4byte +messDataPtr = .sbss:0x801D3A9C; // type:object size:0x4 data:4byte +winProc = .sbss:0x801D3AA0; // type:object size:0x4 scope:local data:4byte +cardAnimB = .sbss:0x801D3AA4; // type:object size:0x4 scope:local data:4byte +cardAnimA = .sbss:0x801D3AA8; // type:object size:0x4 scope:local data:4byte +cursorAnim = .sbss:0x801D3AAC; // type:object size:0x4 scope:local data:4byte +iconAnim = .sbss:0x801D3AB0; // type:object size:0x4 scope:local data:4byte +UnMountCnt = .sbss:0x801D3AB8; // type:object size:0x1 data:byte +cardWork = .sbss:0x801D3ABC; // type:object size:0x4 scope:local data:4byte +arqIdx = .sbss:0x801D3AC0; // type:object size:0x2 scope:local data:2byte +arqCnt = .sbss:0x801D3AC4; // type:object size:0x4 scope:local data:4byte +ARBase = .sbss:0x801D3AC8; // type:object size:0x4 scope:local data:4byte +effectAMemP = .sbss:0x801D3AD0; // type:object size:0x4 scope:local data:4byte +skipAnimUpdate = .sbss:0x801D3AD4; // type:object size:0x4 scope:local data:4byte +ColisionCount = .sbss:0x801D3AD8; // type:object size:0x4 data:4byte +topvtx = .sbss:0x801D3ADC; // type:object size:0x4 scope:local data:4byte +AttrHsf = .sbss:0x801D3AE0; // type:object size:0x4 scope:local data:4byte +HitFaceCount = .sbss:0x801D3AE4; // type:object size:0x4 data:4byte +nChar = .sbss:0x801D3AE8; // type:object size:0x4 +nMap = .sbss:0x801D3AEC; // type:object size:0x4 data:4byte +AddZ = .sbss:0x801D3AF0; // type:object size:0x4 data:float +AddX = .sbss:0x801D3AF4; // type:object size:0x4 data:float +Initialized = .sbss:0x801D3AF8; // type:object size:0x4 scope:local data:4byte +OldAIDCallback = .sbss:0x801D3AFC; // type:object size:0x4 scope:local data:4byte +AudioSystem = .sbss:0x801D3B00; // type:object size:0x4 scope:local data:4byte +bufIdx = .sbss:0x801D3B04; // type:object size:0x4 scope:local data:4byte +CurAudioBuffer = .sbss:0x801D3B08; // type:object size:0x4 scope:local data:4byte +LastAudioBuffer = .sbss:0x801D3B0C; // type:object size:0x4 scope:local data:4byte +SoundBufferIndex = .sbss:0x801D3B10; // type:object size:0x4 scope:local data:4byte +THPProc = .sbss:0x801D3B18; // type:object size:0x4 data:4byte +THPStart = .sbss:0x801D3B1C; // type:object size:0x2 scope:local data:2byte +THPFrame = .sbss:0x801D3B20; // type:object size:0x4 scope:local data:4byte +THPStat = .sbss:0x801D3B24; // type:object size:0x2 scope:local data:2byte +THPLoopF = .sbss:0x801D3B26; // type:object size:0x2 scope:local data:2byte +decodeThread = .sbss:0x801D3B28; // type:object size:0x4 scope:local data:4byte +decodeStackP = .sbss:0x801D3B2C; // type:object size:0x4 scope:local data:4byte +decodeRate = .sbss:0x801D3B30; // type:object size:0x4 scope:local data:4byte +audioTrack = .sbss:0x801D3B34; // type:object size:0x8 scope:local data:4byte +mgBoardHostEnableF = .sbss:0x801D3B40; // type:object size:0x1 +mgInstExitEnableF = .sbss:0x801D3B44; // type:object size:0x4 +mgPracticeEnableF = .sbss:0x801D3B48; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801D3B4C; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801D3B50; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801D3B54; // type:object size:0x1 +mgBattleStarMax = .sbss:0x801D3B56; // type:object size:0x2 +mgBattleStar = .sbss:0x801D3B58; // type:object size:0x8 +mgTypeCurr = .sbss:0x801D3B60; // type:object size:0x2 +curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte +curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte +saveExecF = .sbss:0x801D3B6C; // type:object size:0x4 +SLSerialNo = .sbss:0x801D3B70; // type:object size:0x8 data:4byte +H_ResetReady = .sbss:0x801D3B78; // type:object size:0x4 scope:local data:4byte +SR_RestartChk = .sbss:0x801D3B7C; // type:object size:0x4 scope:local data:4byte +SR_ExecReset = .sbss:0x801D3B80; // type:object size:0x4 data:4byte +trychkBusyWait = .sbss:0x801D3B84; // type:object size:0x4 scope:local data:4byte +XfbProg = .sbss:0x801D3B88; // type:object size:0x4 scope:local data:4byte +XfbH = .sbss:0x801D3B8C; // type:object size:0x2 scope:local data:2byte +XfbW = .sbss:0x801D3B8E; // type:object size:0x2 scope:local data:2byte +boardMainProc = .sbss:0x801D3B90; // type:object size:0x4 data:4byte +boardObjMan = .sbss:0x801D3B94; // type:object size:0x4 data:4byte +cameraObj = .sbss:0x801D3B98; // type:object size:0x4 scope:local data:4byte +tauntObj = .sbss:0x801D3B9C; // type:object size:0x4 scope:local data:4byte +cameraUseBackup = .sbss:0x801D3BA0; // type:object size:0x4 scope:local data:4byte +createFunc = .sbss:0x801D3BA4; // type:object size:0x4 scope:local data:4byte +destroyFunc = .sbss:0x801D3BA8; // type:object size:0x4 scope:local data:4byte +boardLightSetHook = .sbss:0x801D3BAC; // type:object size:0x4 data:4byte +boardLightResetHook = .sbss:0x801D3BB0; // type:object size:0x4 data:4byte +boardTurnFunc = .sbss:0x801D3BB4; // type:object size:0x4 data:4byte +boardStarGiveHook = .sbss:0x801D3BB8; // type:object size:0x4 data:4byte +boardStarShowNextHook = .sbss:0x801D3BBC; // type:object size:0x4 data:4byte +boardBowserHook = .sbss:0x801D3BC0; // type:object size:0x4 data:4byte +boardTurnStartFunc = .sbss:0x801D3BC4; // type:object size:0x4 data:4byte +filterObj = .sbss:0x801D3BC8; // type:object size:0x4 scope:local data:4byte +confettiObj = .sbss:0x801D3BCC; // type:object size:0x4 scope:local data:4byte +last5GfxObj = .sbss:0x801D3BD0; // type:object size:0x4 scope:local data:4byte +boardRandSeed = .sbss:0x801D3BD4; // type:object size:0x4 data:4byte +boardMainObj = .sbss:0x801D3BD8; // type:object size:0x4 data:4byte +megaDoubleDiceF = .sbss:0x801D3BE0; // type:object size:0x4 scope:local data:4byte +bowserSuitObj = .sbss:0x801D3BE4; // type:object size:0x4 scope:local data:4byte +junctionMask = .sbss:0x801D3BE8; // type:object size:0x4 scope:local data:4byte +junctionObj = .sbss:0x801D3BEC; // type:object size:0x4 scope:local data:4byte +rollObj = .sbss:0x801D3BF0; // type:object size:0x4 scope:local data:4byte +moveAwayObj = .sbss:0x801D3BF4; // type:object size:0x4 scope:local data:4byte +junctionArrowRot = .sbss:0x801D3BF8; // type:object size:0x8 scope:local +moveAwayPlayer = .sbss:0x801D3C00; // type:object size:0x4 scope:local data:byte +itemPrev = .sbss:0x801D3C04; // type:object size:0x1 scope:local data:byte +playerMot = .sbss:0x801D3C06; // type:object size:0x8 scope:local +boardPlayerMdl = .sbss:0x801D3C0E; // type:object size:0xA +lbl_801D3C18 = .sbss:0x801D3C18; // type:object size:0x4 data:4byte +lbl_801D3C1C = .sbss:0x801D3C1C; // type:object size:0x4 data:4byte +lbl_801D3C20 = .sbss:0x801D3C20; // type:object size:0x8 data:2byte +lbl_801D3C28 = .sbss:0x801D3C28; // type:object size:0x4 data:4byte +lbl_801D3C2C = .sbss:0x801D3C2C; // type:object size:0x4 data:4byte +lbl_801D3C30 = .sbss:0x801D3C30; // type:object size:0x8 data:float +lbl_801D3C38 = .sbss:0x801D3C38; // type:object size:0x4 data:4byte +lbl_801D3C3C = .sbss:0x801D3C3C; // type:object size:0x4 data:4byte +lbl_801D3C40 = .sbss:0x801D3C40; // type:object size:0x2 data:2byte +lbl_801D3C42 = .sbss:0x801D3C42; // type:object size:0x2 data:2byte +lbl_801D3C44 = .sbss:0x801D3C44; // type:object size:0x2 data:2byte +lbl_801D3C46 = .sbss:0x801D3C46; // type:object size:0x1 data:byte +lbl_801D3C47 = .sbss:0x801D3C47; // type:object size:0x1 data:byte +lbl_801D3C48 = .sbss:0x801D3C48; // type:object size:0x1 data:byte +lbl_801D3C49 = .sbss:0x801D3C49; // type:object size:0x1 data:byte +lbl_801D3C4A = .sbss:0x801D3C4A; // type:object size:0x1 data:byte +lbl_801D3C4B = .sbss:0x801D3C4B; // type:object size:0x1 data:byte +lbl_801D3C4C = .sbss:0x801D3C4C; // type:object size:0x1 data:byte +lbl_801D3C50 = .sbss:0x801D3C50; // type:object size:0x8 +lbl_801D3C58 = .sbss:0x801D3C58; // type:object size:0x4 data:4byte +lbl_801D3C5C = .sbss:0x801D3C5C; // type:object size:0x1 data:byte +lbl_801D3C60 = .sbss:0x801D3C60; // type:object size:0x4 data:4byte +lbl_801D3C64 = .sbss:0x801D3C64; // type:object size:0x2 data:2byte +lbl_801D3C66 = .sbss:0x801D3C66; // type:object size:0x1 data:byte +lbl_801D3C67 = .sbss:0x801D3C67; // type:object size:0x1 data:byte +lbl_801D3C68 = .sbss:0x801D3C68; // type:object size:0x1 data:byte +lbl_801D3C69 = .sbss:0x801D3C69; // type:object size:0x7 data:byte +lbl_801D3C70 = .sbss:0x801D3C70; // type:object size:0x2 data:2byte +lbl_801D3C74 = .sbss:0x801D3C74; // type:object size:0x4 data:4byte +lbl_801D3C78 = .sbss:0x801D3C78; // type:object size:0x4 data:4byte +lbl_801D3C7C = .sbss:0x801D3C7C; // type:object size:0x4 data:4byte +lbl_801D3C80 = .sbss:0x801D3C80; // type:object size:0x4 data:4byte +lbl_801D3C84 = .sbss:0x801D3C84; // type:object size:0x8 data:2byte +lbl_801D3C8C = .sbss:0x801D3C8C; // type:object size:0x4 data:4byte +lbl_801D3C90 = .sbss:0x801D3C90; // type:object size:0x4 data:4byte +lbl_801D3C94 = .sbss:0x801D3C94; // type:object size:0x4 data:4byte +lbl_801D3C98 = .sbss:0x801D3C98; // type:object size:0x4 data:4byte +lbl_801D3C9C = .sbss:0x801D3C9C; // type:object size:0x8 data:4byte +lbl_801D3CA4 = .sbss:0x801D3CA4; // type:object size:0x2 data:2byte +lbl_801D3CA8 = .sbss:0x801D3CA8; // type:object size:0x4 data:4byte +lbl_801D3CAC = .sbss:0x801D3CAC; // type:object size:0x4 data:4byte +lbl_801D3CB0 = .sbss:0x801D3CB0; // type:object size:0x4 data:4byte +lbl_801D3CB4 = .sbss:0x801D3CB4; // type:object size:0x4 data:4byte +lbl_801D3CB8 = .sbss:0x801D3CB8; // type:object size:0x4 data:4byte +lbl_801D3CBC = .sbss:0x801D3CBC; // type:object size:0x2 data:2byte +lbl_801D3CBE = .sbss:0x801D3CBE; // type:object size:0x1 data:byte +lbl_801D3CC0 = .sbss:0x801D3CC0; // type:object size:0x4 data:4byte +lbl_801D3CC4 = .sbss:0x801D3CC4; // type:object size:0x4 +lbl_801D3CC8 = .sbss:0x801D3CC8; // type:object size:0x4 data:4byte +lbl_801D3CCC = .sbss:0x801D3CCC; // type:object size:0x4 data:4byte +lbl_801D3CD0 = .sbss:0x801D3CD0; // type:object size:0x4 data:4byte +lbl_801D3CD4 = .sbss:0x801D3CD4; // type:object size:0x4 data:4byte +lbl_801D3CD8 = .sbss:0x801D3CD8; // type:object size:0x1 data:byte +lbl_801D3CD9 = .sbss:0x801D3CD9; // type:object size:0x1 data:byte +lbl_801D3CDA = .sbss:0x801D3CDA; // type:object size:0x1 data:byte +lbl_801D3CDB = .sbss:0x801D3CDB; // type:object size:0x1 data:byte +lbl_801D3CDC = .sbss:0x801D3CDC; // type:object size:0x1 data:byte +lbl_801D3CDE = .sbss:0x801D3CDE; // type:object size:0x2 data:2byte +lbl_801D3CE0 = .sbss:0x801D3CE0; // type:object size:0x8 data:4byte +lbl_801D3CE8 = .sbss:0x801D3CE8; // type:object size:0x4 data:4byte +lbl_801D3CEC = .sbss:0x801D3CEC; // type:object size:0x4 data:float +lbl_801D3CF0 = .sbss:0x801D3CF0; // type:object size:0x4 data:float +lbl_801D3CF4 = .sbss:0x801D3CF4; // type:object size:0x2 data:2byte +lbl_801D3CF6 = .sbss:0x801D3CF6; // type:object size:0x1 data:byte +lbl_801D3CF7 = .sbss:0x801D3CF7; // type:object size:0x1 data:byte +lbl_801D3CF8 = .sbss:0x801D3CF8; // type:object size:0x8 data:byte +lbl_801D3D00 = .sbss:0x801D3D00; // type:object size:0x4 data:4byte +lbl_801D3D04 = .sbss:0x801D3D04; // type:object size:0x2 data:2byte +lbl_801D3D08 = .sbss:0x801D3D08; // type:object size:0x4 data:float +lbl_801D3D0C = .sbss:0x801D3D0C; // type:object size:0x2 data:2byte +lbl_801D3D10 = .sbss:0x801D3D10; // type:object size:0x4 data:float +lbl_801D3D14 = .sbss:0x801D3D14; // type:object size:0x2 data:2byte +lbl_801D3D16 = .sbss:0x801D3D16; // type:object size:0x2 data:2byte +lbl_801D3D18 = .sbss:0x801D3D18; // type:object size:0x8 data:byte +lbl_801D3D20 = .sbss:0x801D3D20; // type:object size:0x4 data:4byte +lbl_801D3D24 = .sbss:0x801D3D24; // type:object size:0x4 data:4byte +lbl_801D3D28 = .sbss:0x801D3D28; // type:object size:0x1 data:byte +lbl_801D3D29 = .sbss:0x801D3D29; // type:object size:0x7 data:byte +lbl_801D3D30 = .sbss:0x801D3D30; // type:object size:0x4 data:4byte +lbl_801D3D34 = .sbss:0x801D3D34; // type:object size:0x4 data:4byte +lbl_801D3D38 = .sbss:0x801D3D38; // type:object size:0x4 data:4byte +lbl_801D3D3C = .sbss:0x801D3D3C; // type:object size:0x2 data:2byte +lbl_801D3D40 = .sbss:0x801D3D40; // type:object size:0x4 data:4byte +lbl_801D3D44 = .sbss:0x801D3D44; // type:object size:0x2 data:2byte +lbl_801D3D48 = .sbss:0x801D3D48; // type:object size:0x4 data:4byte +lbl_801D3D4C = .sbss:0x801D3D4C; // type:object size:0x1 data:byte +lbl_801D3D4D = .sbss:0x801D3D4D; // type:object size:0xB +lbl_801D3D58 = .sbss:0x801D3D58; // type:object size:0x4 data:4byte +lbl_801D3D5C = .sbss:0x801D3D5C; // type:object size:0x1 data:byte +lbl_801D3D5D = .sbss:0x801D3D5D; // type:object size:0x1 data:byte +lbl_801D3D5E = .sbss:0x801D3D5E; // type:object size:0x1 data:byte +lbl_801D3D5F = .sbss:0x801D3D5F; // type:object size:0x1 data:byte +lbl_801D3D60 = .sbss:0x801D3D60; // type:object size:0x1 data:byte +lbl_801D3D61 = .sbss:0x801D3D61; // type:object size:0x1 data:byte +lbl_801D3D62 = .sbss:0x801D3D62; // type:object size:0x6 data:byte +lbl_801D3D68 = .sbss:0x801D3D68; // type:object size:0x4 data:4byte +lbl_801D3D6C = .sbss:0x801D3D6C; // type:object size:0x4 data:4byte +lbl_801D3D70 = .sbss:0x801D3D70; // type:object size:0x4 data:4byte +lbl_801D3D74 = .sbss:0x801D3D74; // type:object size:0x4 data:4byte +lbl_801D3D78 = .sbss:0x801D3D78; // type:object size:0x4 data:4byte +lbl_801D3D7C = .sbss:0x801D3D7C; // type:object size:0x4 data:4byte +lbl_801D3D80 = .sbss:0x801D3D80; // type:object size:0x4 data:float +lbl_801D3D84 = .sbss:0x801D3D84; // type:object size:0x6 +lbl_801D3D8A = .sbss:0x801D3D8A; // type:object size:0x1 data:byte +lbl_801D3D8B = .sbss:0x801D3D8B; // type:object size:0x1 data:byte +lbl_801D3D8C = .sbss:0x801D3D8C; // type:object size:0x1 data:byte +lbl_801D3D8E = .sbss:0x801D3D8E; // type:object size:0x6 data:2byte +lbl_801D3D94_2 = .sbss:0x801D3D94; // type:object size:0x4 data:4byte +lbl_801D3D98 = .sbss:0x801D3D98; // type:object size:0x1 data:byte +lbl_801D3D99 = .sbss:0x801D3D99; // type:object size:0x1 data:byte +lbl_801D3D9A = .sbss:0x801D3D9A; // type:object size:0x1 data:byte +lbl_801D3D9B = .sbss:0x801D3D9B; // type:object size:0x1 data:byte +lbl_801D3D9C = .sbss:0x801D3D9C; // type:object size:0x1 data:byte +lbl_801D3DA0_2 = .sbss:0x801D3DA0; // type:object size:0x4 data:4byte +lbl_801D3DA4 = .sbss:0x801D3DA4; // type:object size:0x4 data:4byte +lbl_801D3DA8 = .sbss:0x801D3DA8; // type:object size:0x4 data:float +lbl_801D3DAC = .sbss:0x801D3DAC; // type:object size:0x4 data:float +lbl_801D3DB0 = .sbss:0x801D3DB0; // type:object size:0x8 data:float +lbl_801D3DB8 = .sbss:0x801D3DB8; // type:object size:0x4 data:4byte +lbl_801D3DBC = .sbss:0x801D3DBC; // type:object size:0x8 data:2byte +lbl_801D3DC4 = .sbss:0x801D3DC4; // type:object size:0x4 data:4byte +lbl_801D3DC8 = .sbss:0x801D3DC8; // type:object size:0x4 data:float +lbl_801D3DCC = .sbss:0x801D3DCC; // type:object size:0x8 +lbl_801D3DD4 = .sbss:0x801D3DD4; // type:object size:0x4 data:float +lbl_801D3DD8 = .sbss:0x801D3DD8; // type:object size:0x2 data:2byte +lbl_801D3DDC = .sbss:0x801D3DDC; // type:object size:0x8 data:4byte +lbl_801D3DE4 = .sbss:0x801D3DE4; // type:object size:0x8 data:4byte +lbl_801D3DEC = .sbss:0x801D3DEC; // type:object size:0x2 data:2byte +lbl_801D3DEE = .sbss:0x801D3DEE; // type:object size:0x1 data:byte +lbl_801D3DEF = .sbss:0x801D3DEF; // type:object size:0x1 data:byte +lbl_801D3DF0 = .sbss:0x801D3DF0; // type:object size:0x8 +lbl_801D3DF8 = .sbss:0x801D3DF8; // type:object size:0x4 data:4byte +lbl_801D3DFC = .sbss:0x801D3DFC; // type:object size:0x4 data:4byte +lbl_801D3E00 = .sbss:0x801D3E00; // type:object size:0x4 data:4byte +lbl_801D3E04 = .sbss:0x801D3E04; // type:object size:0x4 data:4byte +lbl_801D3E08 = .sbss:0x801D3E08; // type:object size:0x4 data:4byte +lbl_801D3E0C = .sbss:0x801D3E0C; // type:object size:0x4 data:4byte +lbl_801D3E10 = .sbss:0x801D3E10; // type:object size:0x8 +lbl_801D3E18 = .sbss:0x801D3E18; // type:object size:0x8 +lbl_801D3E20 = .sbss:0x801D3E20; // type:object size:0x4 data:4byte +lbl_801D3E24 = .sbss:0x801D3E24; // type:object size:0x2 data:2byte +lbl_801D3E26 = .sbss:0x801D3E26; // type:object size:0x8 data:2byte +lbl_801D3E2E = .sbss:0x801D3E2E; // type:object size:0x2 data:2byte +lbl_801D3E30 = .sbss:0x801D3E30; // type:object size:0x1 data:byte +lbl_801D3E31 = .sbss:0x801D3E31; // type:object size:0x7 data:byte +lbl_801D3E38 = .sbss:0x801D3E38; // type:object size:0x4 data:4byte +lbl_801D3E3C = .sbss:0x801D3E3C; // type:object size:0x4 data:4byte +lbl_801D3E40 = .sbss:0x801D3E40; // type:object size:0x4 data:4byte +lbl_801D3E44 = .sbss:0x801D3E44; // type:object size:0x4 data:float +lbl_801D3E48 = .sbss:0x801D3E48; // type:object size:0x4 data:float +lbl_801D3E4C = .sbss:0x801D3E4C; // type:object size:0x8 +lbl_801D3E54 = .sbss:0x801D3E54; // type:object size:0x1 data:byte +lbl_801D3E56 = .sbss:0x801D3E56; // type:object size:0x1 data:byte +lbl_801D3E58 = .sbss:0x801D3E58; // type:object size:0x2 data:2byte +lbl_801D3E5A = .sbss:0x801D3E5A; // type:object size:0x1 data:byte +lbl_801D3E5B = .sbss:0x801D3E5B; // type:object size:0x1 data:byte +lbl_801D3E5C = .sbss:0x801D3E5C; // type:object size:0x1 data:byte +lbl_801D3E60 = .sbss:0x801D3E60; // type:object size:0x4 data:4byte +lbl_801D3E64 = .sbss:0x801D3E64; // type:object size:0x4 data:4byte +lbl_801D3E68 = .sbss:0x801D3E68; // type:object size:0x1 data:byte +lbl_801D3E69 = .sbss:0x801D3E69; // type:object size:0x1 data:byte +lbl_801D3E6A = .sbss:0x801D3E6A; // type:object size:0x1 data:byte +lbl_801D3E6B = .sbss:0x801D3E6B; // type:object size:0x1 data:byte +lbl_801D3E6C = .sbss:0x801D3E6C; // type:object size:0x1 data:byte +lbl_801D3E6D = .sbss:0x801D3E6D; // type:object size:0x1 data:byte +lbl_801D3E70 = .sbss:0x801D3E70; // type:object size:0x4 data:4byte +lbl_801D3E74 = .sbss:0x801D3E74; // type:object size:0x4 data:4byte +lbl_801D3E78 = .sbss:0x801D3E78; // type:object size:0x4 data:4byte +lbl_801D3E7C = .sbss:0x801D3E7C; // type:object size:0x4 data:4byte +lbl_801D3E80 = .sbss:0x801D3E80; // type:object size:0x4 data:4byte +lbl_801D3E84 = .sbss:0x801D3E84; // type:object size:0x4 data:4byte +lbl_801D3E88 = .sbss:0x801D3E88; // type:object size:0x4 data:4byte +lbl_801D3E8C = .sbss:0x801D3E8C; // type:object size:0x4 data:4byte +lbl_801D3E90 = .sbss:0x801D3E90; // type:object size:0x3 +lbl_801D3E93 = .sbss:0x801D3E93; // type:object size:0x3 +lbl_801D3E96 = .sbss:0x801D3E96; // type:object size:0x1 data:byte +lbl_801D3E97 = .sbss:0x801D3E97; // type:object size:0x1 data:byte +lbl_801D3E98 = .sbss:0x801D3E98; // type:object size:0x1 data:byte +lbl_801D3E9C = .sbss:0x801D3E9C; // type:object size:0x4 data:4byte +lbl_801D3EA0 = .sbss:0x801D3EA0; // type:object size:0x1 data:byte +lbl_801D3EA1 = .sbss:0x801D3EA1; // type:object size:0x1 data:byte +lbl_801D3EA2 = .sbss:0x801D3EA2; // type:object size:0x6 data:byte +lbl_801D3EA8 = .sbss:0x801D3EA8; // type:object size:0x4 data:4byte +lbl_801D3EAC = .sbss:0x801D3EAC; // type:object size:0x4 data:4byte +lbl_801D3EB0 = .sbss:0x801D3EB0; // type:object size:0x1 data:byte +lbl_801D3EB1 = .sbss:0x801D3EB1; // type:object size:0x1 data:byte +lbl_801D3EB2 = .sbss:0x801D3EB2; // type:object size:0x1 data:byte +lbl_801D3EB4 = .sbss:0x801D3EB4; // type:object size:0x4 +lbl_801D3EB8 = .sbss:0x801D3EB8; // type:object size:0x6 +lbl_801D3EBE = .sbss:0x801D3EBE; // type:object size:0x6 +lbl_801D3EC4 = .sbss:0x801D3EC4; // type:object size:0x1 data:byte +lbl_801D3EC5 = .sbss:0x801D3EC5; // type:object size:0x1 data:byte +lbl_801D3EC6 = .sbss:0x801D3EC6; // type:object size:0x1 data:byte +lbl_801D3EC7 = .sbss:0x801D3EC7; // type:object size:0x1 data:byte +lbl_801D3EC8 = .sbss:0x801D3EC8; // type:object size:0x2 data:2byte +lbl_801D3ECC = .sbss:0x801D3ECC; // type:object size:0x4 data:float +lbl_801D3ED0 = .sbss:0x801D3ED0; // type:object size:0x4 data:4byte +lbl_801D3ED4 = .sbss:0x801D3ED4; // type:object size:0x1 data:byte +lbl_801D3ED8 = .sbss:0x801D3ED8; // type:object size:0x4 data:4byte +lbl_801D3EDC = .sbss:0x801D3EDC; // type:object size:0x8 +lbl_801D3EE4 = .sbss:0x801D3EE4; // type:object size:0x4 data:4byte +lbl_801D3EE8 = .sbss:0x801D3EE8; // type:object size:0x1 data:byte +lbl_801D3EE9 = .sbss:0x801D3EE9; // type:object size:0x1 data:byte +lbl_801D3EEA = .sbss:0x801D3EEA; // type:object size:0x6 data:byte +lbl_801D3EF0 = .sbss:0x801D3EF0; // type:object size:0x4 data:4byte +lbl_801D3EF4 = .sbss:0x801D3EF4; // type:object size:0x4 +lbl_801D3EF8 = .sbss:0x801D3EF8; // type:object size:0x4 +lbl_801D3EFC = .sbss:0x801D3EFC; // type:object size:0x2 data:2byte +lbl_801D3EFE = .sbss:0x801D3EFE; // type:object size:0x2 data:2byte +lbl_801D3F00 = .sbss:0x801D3F00; // type:object size:0x4 data:4byte +lbl_801D3F04 = .sbss:0x801D3F04; // type:object size:0x4 data:4byte +lbl_801D3F08 = .sbss:0x801D3F08; // type:object size:0x4 data:4byte +lbl_801D3F0C = .sbss:0x801D3F0C; // type:object size:0x4 data:4byte +lbl_801D3F10 = .sbss:0x801D3F10; // type:object size:0x4 data:4byte +lbl_801D3F14 = .sbss:0x801D3F14; // type:object size:0x4 data:4byte +lbl_801D3F18 = .sbss:0x801D3F18; // type:object size:0x2 data:2byte +lbl_801D3F1A = .sbss:0x801D3F1A; // type:object size:0x2 data:2byte +lbl_801D3F1C = .sbss:0x801D3F1C; // type:object size:0x1 data:byte +lbl_801D3F1D = .sbss:0x801D3F1D; // type:object size:0x1 data:byte +lbl_801D3F1E = .sbss:0x801D3F1E; // type:object size:0x1 data:byte +lbl_801D3F20 = .sbss:0x801D3F20; // type:object size:0x4 data:4byte +lbl_801D3F24 = .sbss:0x801D3F24; // type:object size:0x4 data:4byte +lbl_801D3F28 = .sbss:0x801D3F28; // type:object size:0x4 data:4byte +lbl_801D3F2C = .sbss:0x801D3F2C; // type:object size:0x8 +lbl_801D3F34 = .sbss:0x801D3F34; // type:object size:0x1 data:byte +lbl_801D3F36 = .sbss:0x801D3F36; // type:object size:0x2 data:2byte +lbl_801D3F38 = .sbss:0x801D3F38; // type:object size:0x1 data:byte +lbl_801D3F39 = .sbss:0x801D3F39; // type:object size:0x1 data:byte +lbl_801D3F3A = .sbss:0x801D3F3A; // type:object size:0x6 data:byte +lbl_801D3F40 = .sbss:0x801D3F40; // type:object size:0x2 data:2byte +lbl_801D3F42 = .sbss:0x801D3F42; // type:object size:0x6 data:2byte +lbl_801D3F48 = .sbss:0x801D3F48; // type:object size:0x4 data:4byte +lbl_801D3F4C = .sbss:0x801D3F4C; // type:object size:0x4 data:4byte +lbl_801D3F50 = .sbss:0x801D3F50; // type:object size:0x4 data:4byte +lbl_801D3F54 = .sbss:0x801D3F54; // type:object size:0x4 data:4byte +lbl_801D3F58 = .sbss:0x801D3F58; // type:object size:0x4 data:4byte +boardTutorialF = .sbss:0x801D3F5C; // type:object size:0x1 data:byte +lbl_801D3F5E = .sbss:0x801D3F5E; // type:object size:0x2 data:2byte +lbl_801D3F60 = .sbss:0x801D3F60; // type:object size:0x1 data:byte +lbl_801D3F61 = .sbss:0x801D3F61; // type:object size:0x1 data:byte +lbl_801D3F62 = .sbss:0x801D3F62; // type:object size:0x1 data:byte +lbl_801D3F64 = .sbss:0x801D3F64; // type:object size:0x4 data:4byte +boardTutorialDirInputTime = .sbss:0x801D3F68; // type:object size:0x2 data:2byte +boardTutorialDirInputY = .sbss:0x801D3F6A; // type:object size:0x1 data:byte +boardTutorialDirInputX = .sbss:0x801D3F6B; // type:object size:0x1 data:byte +lbl_801D3F6C = .sbss:0x801D3F6C; // type:object size:0x4 data:4byte +BootInfo = .sbss:0x801D3F70; // type:object size:0x4 scope:local data:4byte +BI2DebugFlag = .sbss:0x801D3F74; // type:object size:0x4 scope:local data:4byte +BI2DebugFlagHolder = .sbss:0x801D3F78; // type:object size:0x4 scope:local data:4byte +__OSIsGcam = .sbss:0x801D3F7C; // type:object size:0x4 scope:global data:4byte +AreWeInitialized = .sbss:0x801D3F80; // type:object size:0x4 scope:local data:4byte +OSExceptionTable = .sbss:0x801D3F84; // type:object size:0x4 scope:local data:4byte +__OSSavedRegionEnd = .sbss:0x801D3F88; // type:object size:0x4 scope:global data:4byte +__OSSavedRegionStart = .sbss:0x801D3F8C; // type:object size:0x4 scope:global data:4byte +__OSInIPL = .sbss:0x801D3F90; // type:object size:0x4 scope:global data:4byte +__OSStartTime = .sbss:0x801D3F98; // type:object size:0x8 scope:global data:4byte +AlarmQueue = .sbss:0x801D3FA0; // type:object size:0x8 scope:local data:4byte +lbl_801D3FA8 = .sbss:0x801D3FA8; // type:object size:0x4 data:4byte +lbl_801D3FAC = .sbss:0x801D3FAC; // type:object size:0x4 data:4byte +lbl_801D3FB0 = .sbss:0x801D3FB0; // type:object size:0x4 data:4byte +lbl_801D3FB4 = .sbss:0x801D3FB4; // type:object size:0x4 data:4byte +__OSArenaHi = .sbss:0x801D3FB8; // type:object size:0x4 scope:local data:4byte +InterruptHandlerTable = .sbss:0x801D3FC0; // type:object size:0x4 scope:local data:4byte +__OSLastInterruptSrr0 = .sbss:0x801D3FC4; // type:object size:0x4 scope:global data:4byte +__OSLastInterrupt = .sbss:0x801D3FC8; // type:object size:0x2 scope:global data:2byte +__OSLastInterruptTime = .sbss:0x801D3FD0; // type:object size:0x8 scope:global data:4byte +lbl_801D3FD8 = .sbss:0x801D3FD8; // type:object size:0x4 data:4byte +lbl_801D3FDC = .sbss:0x801D3FDC; // type:object size:0x4 data:4byte +lbl_801D3FE0 = .sbss:0x801D3FE0; // type:object size:0x8 data:4byte +ResetFunctionQueue = .sbss:0x801D3FE8; // type:object size:0x8 scope:local data:4byte +lbl_801D3FF0 = .sbss:0x801D3FF0; // type:object size:0x4 data:4byte +lbl_801D3FF4 = .sbss:0x801D3FF4; // type:object size:0x4 data:4byte +lbl_801D3FF8 = .sbss:0x801D3FF8; // type:object size:0x8 data:4byte +lbl_801D4000 = .sbss:0x801D4000; // type:object size:0x4 data:4byte +lbl_801D4004 = .sbss:0x801D4004; // type:object size:0x4 data:4byte +lbl_801D4008 = .sbss:0x801D4008; // type:object size:0x4 data:4byte +lbl_801D400C = .sbss:0x801D400C; // type:object size:0x4 data:4byte +RunQueueBits = .sbss:0x801D4010; // type:object size:0x4 scope:local data:4byte +RunQueueHint = .sbss:0x801D4014; // type:object size:0x4 scope:local data:4byte +Reschedule = .sbss:0x801D4018; // type:object size:0x4 scope:local data:4byte +__DBInterface = .sbss:0x801D4020; // type:object size:0x4 scope:global data:4byte +DBVerbose = .sbss:0x801D4024; // type:object size:0x4 scope:global data:4byte +StopAtNextInt = .sbss:0x801D4028; // type:object size:0x4 scope:local data:4byte +lbl_801D402C = .sbss:0x801D402C; // type:object size:0x4 data:4byte +Callback = .sbss:0x801D4030; // type:object size:0x4 scope:local data:4byte +lbl_801D4034 = .sbss:0x801D4034; // type:object size:0x4 data:4byte +LastResetEnd = .sbss:0x801D4038; // type:object size:0x8 scope:local data:4byte +ResetOccurred = .sbss:0x801D4040; // type:object size:0x4 scope:local data:4byte +WaitingCoverClose = .sbss:0x801D4044; // type:object size:0x4 scope:local data:4byte +lbl_801D4048 = .sbss:0x801D4048; // type:object size:0x4 data:4byte +WorkAroundType = .sbss:0x801D404C; // type:object size:0x4 scope:local data:4byte +WorkAroundSeekLocation = .sbss:0x801D4050; // type:object size:0x4 scope:local data:4byte +lbl_801D4058 = .sbss:0x801D4058; // type:object size:0x4 data:4byte +lbl_801D405C = .sbss:0x801D405C; // type:object size:0x4 data:4byte +lbl_801D4060 = .sbss:0x801D4060; // type:object size:0x4 data:4byte +lbl_801D4064 = .sbss:0x801D4064; // type:object size:0x4 data:4byte +lbl_801D4068 = .sbss:0x801D4068; // type:object size:0x4 data:4byte +NextCommandNumber = .sbss:0x801D406C; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801D4070; // type:object size:0x4 scope:local data:4byte +FstStart = .sbss:0x801D4074; // type:object size:0x4 scope:local data:4byte +FstStringStart = .sbss:0x801D4078; // type:object size:0x4 scope:local data:4byte +MaxEntryNum = .sbss:0x801D407C; // type:object size:0x4 scope:local data:4byte +lbl_801D4080 = .sbss:0x801D4080; // type:object size:0x4 data:4byte +__DVDLongFileNameFlag = .sbss:0x801D4084; // type:object size:0x4 scope:global data:4byte +__DVDThreadQueue = .sbss:0x801D4088; // type:object size:0x8 scope:global +executing = .sbss:0x801D4090; // type:object size:0x4 scope:local data:4byte +currID = .sbss:0x801D4094; // type:object size:0x4 scope:local data:4byte +bootInfo = .sbss:0x801D4098; // type:object size:0x4 scope:local data:4byte +PauseFlag = .sbss:0x801D409C; // type:object size:0x4 scope:local data:4byte +PausingFlag = .sbss:0x801D40A0; // type:object size:0x4 scope:local data:4byte +lbl_801D40A4 = .sbss:0x801D40A4; // type:object size:0x4 data:4byte +FatalErrorFlag = .sbss:0x801D40A8; // type:object size:0x4 scope:local data:4byte +CurrCommand = .sbss:0x801D40AC; // type:object size:0x4 scope:local data:4byte +lbl_801D40B0 = .sbss:0x801D40B0; // type:object size:0x4 data:4byte +lbl_801D40B4 = .sbss:0x801D40B4; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x801D40B8; // type:object size:0x4 scope:local data:4byte +CancelLastError = .sbss:0x801D40BC; // type:object size:0x4 scope:local data:4byte +lbl_801D40C0 = .sbss:0x801D40C0; // type:object size:0x4 data:4byte +lbl_801D40C4 = .sbss:0x801D40C4; // type:object size:0x4 data:4byte +ResetRequired = .sbss:0x801D40C8; // type:object size:0x4 scope:local data:4byte +FirstTimeInBootrom = .sbss:0x801D40CC; // type:object size:0x4 scope:local data:4byte +DVDInitialized = .sbss:0x801D40D0; // type:object size:0x4 scope:local data:4byte +lbl_801D40D4 = .sbss:0x801D40D4; // type:object size:0x4 data:4byte +lbl_801D40D8 = .sbss:0x801D40D8; // type:object size:0x4 data:4byte +bb2 = .sbss:0x801D40DC; // type:object size:0x4 scope:local data:4byte +idTmp = .sbss:0x801D40E0; // type:object size:0x4 scope:local data:4byte +lbl_801D40E8 = .sbss:0x801D40E8; // type:object size:0x4 data:4byte +lbl_801D40EC = .sbss:0x801D40EC; // type:object size:0x4 data:4byte +lbl_801D40F0 = .sbss:0x801D40F0; // type:object size:0x8 +lbl_801D40F8 = .sbss:0x801D40F8; // type:object size:0x4 data:4byte +lbl_801D40FC = .sbss:0x801D40FC; // type:object size:0x4 data:4byte +lbl_801D4100 = .sbss:0x801D4100; // type:object size:0x4 data:4byte +lbl_801D4104 = .sbss:0x801D4104; // type:object size:0x2 data:2byte +lbl_801D4106 = .sbss:0x801D4106; // type:object size:0x2 data:2byte +lbl_801D4108 = .sbss:0x801D4108; // type:object size:0x8 data:4byte +lbl_801D4110 = .sbss:0x801D4110; // type:object size:0x4 data:4byte +lbl_801D4114 = .sbss:0x801D4114; // type:object size:0x4 data:4byte +lbl_801D4118 = .sbss:0x801D4118; // type:object size:0x8 data:4byte +lbl_801D4120 = .sbss:0x801D4120; // type:object size:0x4 data:4byte +lbl_801D4124 = .sbss:0x801D4124; // type:object size:0x4 data:4byte +lbl_801D4128 = .sbss:0x801D4128; // type:object size:0x4 data:4byte +CurrTvMode = .sbss:0x801D412C; // type:object size:0x4 scope:local data:4byte +lbl_801D4130 = .sbss:0x801D4130; // type:object size:0x4 data:4byte +lbl_801D4134 = .sbss:0x801D4134; // type:object size:0x4 data:4byte +lbl_801D4138 = .sbss:0x801D4138; // type:object size:0x8 data:4byte +lbl_801D4140 = .sbss:0x801D4140; // type:object size:0x8 data:4byte +lbl_801D4148 = .sbss:0x801D4148; // type:object size:0x4 data:4byte +lbl_801D414C = .sbss:0x801D414C; // type:object size:0x4 data:4byte +lbl_801D4150 = .sbss:0x801D4150; // type:object size:0x4 data:4byte +lbl_801D4154 = .sbss:0x801D4154; // type:object size:0x4 data:4byte +lbl_801D4158 = .sbss:0x801D4158; // type:object size:0x4 data:4byte +lbl_801D415C = .sbss:0x801D415C; // type:object size:0x4 data:4byte +lbl_801D4160 = .sbss:0x801D4160; // type:object size:0x4 data:4byte +lbl_801D4164 = .sbss:0x801D4164; // type:object size:0x4 data:4byte +lbl_801D4168 = .sbss:0x801D4168; // type:object size:0x4 data:4byte +lbl_801D416C = .sbss:0x801D416C; // type:object size:0x4 data:4byte +lbl_801D4170 = .sbss:0x801D4170; // type:object size:0x4 data:4byte +lbl_801D4174 = .sbss:0x801D4174; // type:object size:0x4 data:4byte +lbl_801D4178 = .sbss:0x801D4178; // type:object size:0x4 data:4byte +lbl_801D417C = .sbss:0x801D417C; // type:object size:0x4 data:4byte +lbl_801D4180 = .sbss:0x801D4180; // type:object size:0x4 data:4byte +lbl_801D4184 = .sbss:0x801D4184; // type:object size:0x4 data:4byte +lbl_801D4188 = .sbss:0x801D4188; // type:object size:0x4 data:4byte +lbl_801D418C = .sbss:0x801D418C; // type:object size:0x4 data:4byte +lbl_801D4190 = .sbss:0x801D4190; // type:object size:0x4 data:4byte +lbl_801D4194 = .sbss:0x801D4194; // type:object size:0x4 data:4byte +lbl_801D4198 = .sbss:0x801D4198; // type:object size:0x4 data:4byte +lbl_801D419C = .sbss:0x801D419C; // type:object size:0x4 data:4byte +lbl_801D41A0 = .sbss:0x801D41A0; // type:object size:0x4 data:4byte +lbl_801D41A4 = .sbss:0x801D41A4; // type:object size:0x4 data:4byte +lbl_801D41A8 = .sbss:0x801D41A8; // type:object size:0x4 data:4byte +lbl_801D41AC = .sbss:0x801D41AC; // type:object size:0x4 data:4byte +lbl_801D41B0 = .sbss:0x801D41B0; // type:object size:0x4 data:4byte +lbl_801D41B4 = .sbss:0x801D41B4; // type:object size:0x4 data:4byte +lbl_801D41B8 = .sbss:0x801D41B8; // type:object size:0x4 data:4byte +lbl_801D41BC = .sbss:0x801D41BC; // type:object size:0x4 data:4byte +lbl_801D41C0 = .sbss:0x801D41C0; // type:object size:0x4 data:4byte +lbl_801D41C4 = .sbss:0x801D41C4; // type:object size:0x4 data:4byte +lbl_801D41C8 = .sbss:0x801D41C8; // type:object size:0x4 data:4byte +__PADSpec = .sbss:0x801D41CC; // type:object size:0x4 scope:global data:4byte +lbl_801D41D0 = .sbss:0x801D41D0; // type:object size:0x4 data:4byte +lbl_801D41D4 = .sbss:0x801D41D4; // type:object size:0x4 data:4byte +lbl_801D41D8 = .sbss:0x801D41D8; // type:object size:0x4 data:4byte +lbl_801D41DC = .sbss:0x801D41DC; // type:object size:0x4 data:4byte +lbl_801D41E0 = .sbss:0x801D41E0; // type:object size:0x8 data:4byte +lbl_801D41E8 = .sbss:0x801D41E8; // type:object size:0x4 data:4byte +lbl_801D41EC = .sbss:0x801D41EC; // type:object size:0x4 data:4byte +lbl_801D41F0 = .sbss:0x801D41F0; // type:object size:0x4 data:4byte +lbl_801D41F4 = .sbss:0x801D41F4; // type:object size:0x4 data:4byte +lbl_801D41F8 = .sbss:0x801D41F8; // type:object size:0x4 data:4byte +lbl_801D41FC = .sbss:0x801D41FC; // type:object size:0x4 data:4byte +lbl_801D4200 = .sbss:0x801D4200; // type:object size:0x4 data:4byte +lbl_801D4204 = .sbss:0x801D4204; // type:object size:0x4 data:4byte +lbl_801D4208 = .sbss:0x801D4208; // type:object size:0x4 data:4byte +lbl_801D420C = .sbss:0x801D420C; // type:object size:0x4 data:4byte +lbl_801D4210 = .sbss:0x801D4210; // type:object size:0x4 data:4byte +lbl_801D4214 = .sbss:0x801D4214; // type:object size:0x4 data:4byte +lbl_801D4218 = .sbss:0x801D4218; // type:object size:0x4 data:4byte +lbl_801D421C = .sbss:0x801D421C; // type:object size:0x4 data:4byte +lbl_801D4220 = .sbss:0x801D4220; // type:object size:0x4 data:4byte +lbl_801D4224 = .sbss:0x801D4224; // type:object size:0x4 data:4byte +lbl_801D4228 = .sbss:0x801D4228; // type:object size:0x4 data:4byte +lbl_801D422C = .sbss:0x801D422C; // type:object size:0x4 data:4byte +lbl_801D4230 = .sbss:0x801D4230; // type:object size:0x4 data:4byte +lbl_801D4234 = .sbss:0x801D4234; // type:object size:0x4 data:4byte +lbl_801D4238 = .sbss:0x801D4238; // type:object size:0x4 data:4byte +lbl_801D423C = .sbss:0x801D423C; // type:object size:0x4 data:4byte +lbl_801D4240 = .sbss:0x801D4240; // type:object size:0x4 data:4byte +lbl_801D4244 = .sbss:0x801D4244; // type:object size:0x4 data:4byte +lbl_801D4248 = .sbss:0x801D4248; // type:object size:0x4 data:4byte +lbl_801D424C = .sbss:0x801D424C; // type:object size:0x4 data:4byte +lbl_801D4250 = .sbss:0x801D4250; // type:object size:0x4 data:4byte +lbl_801D4254 = .sbss:0x801D4254; // type:object size:0x4 data:4byte +lbl_801D4258 = .sbss:0x801D4258; // type:object size:0x8 data:4byte +lbl_801D4260 = .sbss:0x801D4260; // type:object size:0x4 data:4byte +lbl_801D4264 = .sbss:0x801D4264; // type:object size:0x4 data:4byte +lbl_801D4268 = .sbss:0x801D4268; // type:object size:0x4 data:4byte +lbl_801D426C = .sbss:0x801D426C; // type:object size:0x4 data:4byte +lbl_801D4270 = .sbss:0x801D4270; // type:object size:0x4 data:4byte +lbl_801D4274 = .sbss:0x801D4274; // type:object size:0x4 data:4byte +__piReg = .sbss:0x801D4278; // type:object size:0x4 scope:global data:4byte +__cpReg = .sbss:0x801D427C; // type:object size:0x4 scope:global data:4byte +__peReg = .sbss:0x801D4280; // type:object size:0x4 scope:global data:4byte +__memReg = .sbss:0x801D4284; // type:object size:0x4 scope:global data:4byte +lbl_801D4288 = .sbss:0x801D4288; // type:object size:0x4 data:4byte +lbl_801D428C = .sbss:0x801D428C; // type:object size:0x4 data:4byte +lbl_801D4290 = .sbss:0x801D4290; // type:object size:0x4 data:4byte +lbl_801D4294 = .sbss:0x801D4294; // type:object size:0x1 data:byte +lbl_801D4298 = .sbss:0x801D4298; // type:object size:0x4 data:4byte +lbl_801D429C = .sbss:0x801D429C; // type:object size:0x4 data:4byte +lbl_801D42A0 = .sbss:0x801D42A0; // type:object size:0x8 data:4byte +lbl_801D42A8 = .sbss:0x801D42A8; // type:object size:0x4 data:4byte +lbl_801D42AC = .sbss:0x801D42AC; // type:object size:0x4 data:4byte +lbl_801D42B0 = .sbss:0x801D42B0; // type:object size:0x1 data:byte +lbl_801D42B4 = .sbss:0x801D42B4; // type:object size:0xC +lbl_801D42C0 = .sbss:0x801D42C0; // type:object size:0x8 data:4byte +lbl_801D42C8 = .sbss:0x801D42C8; // type:object size:0x4 data:4byte +lbl_801D42CC = .sbss:0x801D42CC; // type:object size:0x4 data:4byte +lbl_801D42D0 = .sbss:0x801D42D0; // type:object size:0x4 data:4byte +lbl_801D42D4 = .sbss:0x801D42D4; // type:object size:0x4 data:4byte +lbl_801D42D8 = .sbss:0x801D42D8; // type:object size:0x4 +cmdTypeAndStatus$371 = .sbss:0x801D42DC; // type:object size:0x4 scope:local +lbl_801D42E0 = .sbss:0x801D42E0; // type:object size:0x8 data:4byte +SamplingRate = .sbss:0x801D42E8; // type:object size:0x4 scope:local data:4byte +lbl_801D4300 = .sbss:0x801D4300; // type:object size:0x20 data:4byte +lbl_801D4320 = .sbss:0x801D4320; // type:object size:0x20 data:4byte +lbl_801D4340 = .sbss:0x801D4340; // type:object size:0x20 data:4byte +lbl_801D4360 = .sbss:0x801D4360; // type:object size:0x20 data:4byte +lbl_801D4380 = .sbss:0x801D4380; // type:object size:0x20 data:4byte +lbl_801D43A0 = .sbss:0x801D43A0; // type:object size:0x4 data:4byte +lbl_801D43A4 = .sbss:0x801D43A4; // type:object size:0x4 data:4byte +lbl_801D43A8 = .sbss:0x801D43A8; // type:object size:0x4 data:4byte +lbl_801D43AC = .sbss:0x801D43AC; // type:object size:0x14 data:4byte +lbl_801D43C0 = .sbss:0x801D43C0; // type:object size:0x20 data:4byte +lbl_801D43E0 = .sbss:0x801D43E0; // type:object size:0x20 data:4byte +lbl_801D4400 = .sbss:0x801D4400; // type:object size:0x4 data:4byte +lbl_801D4404 = .sbss:0x801D4404; // type:object size:0x4 data:4byte +lbl_801D4408 = .sbss:0x801D4408; // type:object size:0x4 data:4byte +lbl_801D440C = .sbss:0x801D440C; // type:object size:0x4 data:4byte +lbl_801D4410 = .sbss:0x801D4410; // type:object size:0x4 data:4byte +lbl_801D4414 = .sbss:0x801D4414; // type:object size:0x4 data:4byte +__global_destructor_chain = .sbss:0x801D4418; // type:object size:0x4 scope:global data:4byte +__aborting = .sbss:0x801D4420; // type:object size:0x4 scope:global data:4byte +__atexit_curr_func = .sbss:0x801D4424; // type:object size:0x4 scope:local data:4byte +__stdio_exit = .sbss:0x801D4428; // type:object size:0x4 scope:global data:4byte +__console_exit = .sbss:0x801D442C; // type:object size:0x4 scope:global data:4byte +lbl_801D4430 = .sbss:0x801D4430; // type:object size:0x8 data:byte +lbl_801D4438 = .sbss:0x801D4438; // type:object size:0x8 data:4byte +lbl_801D4440 = .sbss:0x801D4440; // type:object size:0x8 data:4byte +lbl_801D4448 = .sbss:0x801D4448; // type:object size:0x4 data:4byte +lbl_801D444C = .sbss:0x801D444C; // type:object size:0x1 data:byte +lbl_801D4450 = .sbss:0x801D4450; // type:object size:0x4 data:4byte +lbl_801D4454 = .sbss:0x801D4454; // type:object size:0x4 data:4byte +lbl_801D4458 = .sbss:0x801D4458; // type:object size:0x4 data:4byte +lbl_801D445C = .sbss:0x801D445C; // type:object size:0x4 data:4byte +lbl_801D4460 = .sbss:0x801D4460; // type:object size:0x4 data:4byte +lbl_801D4464 = .sbss:0x801D4464; // type:object size:0x4 data:4byte +lbl_801D4468 = .sbss:0x801D4468; // type:object size:0x1 data:byte +lbl_801D4469 = .sbss:0x801D4469; // type:object size:0x1 data:byte +lbl_801D446C = .sbss:0x801D446C; // type:object size:0x8 data:byte +lbl_801D4474 = .sbss:0x801D4474; // type:object size:0x8 data:byte +lbl_801D447C = .sbss:0x801D447C; // type:object size:0x8 data:byte +lbl_801D4484 = .sbss:0x801D4484; // type:object size:0x8 data:byte +lbl_801D448C = .sbss:0x801D448C; // type:object size:0x4 data:4byte +lbl_801D4490 = .sbss:0x801D4490; // type:object size:0x4 data:4byte +lbl_801D4494 = .sbss:0x801D4494; // type:object size:0x4 data:4byte +lbl_801D4498 = .sbss:0x801D4498; // type:object size:0x4 data:4byte +lbl_801D449C = .sbss:0x801D449C; // type:object size:0x4 data:4byte +lbl_801D44A0 = .sbss:0x801D44A0; // type:object size:0x8 data:byte +lbl_801D44A8 = .sbss:0x801D44A8; // type:object size:0x4 data:4byte +lbl_801D44AC = .sbss:0x801D44AC; // type:object size:0x4 data:4byte +lbl_801D44B0 = .sbss:0x801D44B0; // type:object size:0x4 data:4byte +lbl_801D44B4 = .sbss:0x801D44B4; // type:object size:0x1 data:byte +lbl_801D44B5 = .sbss:0x801D44B5; // type:object size:0x1 data:byte +lbl_801D44B8 = .sbss:0x801D44B8; // type:object size:0x4 data:4byte +lbl_801D44BC = .sbss:0x801D44BC; // type:object size:0x4 data:4byte +lbl_801D44C0 = .sbss:0x801D44C0; // type:object size:0x8 +lbl_801D44C8 = .sbss:0x801D44C8; // type:object size:0x4 data:4byte +lbl_801D44CC = .sbss:0x801D44CC; // type:object size:0x8 +lbl_801D44D4 = .sbss:0x801D44D4; // type:object size:0x4 data:4byte +lbl_801D44D8 = .sbss:0x801D44D8; // type:object size:0x4 data:4byte +lbl_801D44DC = .sbss:0x801D44DC; // type:object size:0x4 data:4byte +lbl_801D44E0 = .sbss:0x801D44E0; // type:object size:0x8 +lbl_801D44E8 = .sbss:0x801D44E8; // type:object size:0x4 data:4byte +lbl_801D44EC = .sbss:0x801D44EC; // type:object size:0x4 data:4byte +lbl_801D44F0 = .sbss:0x801D44F0; // type:object size:0x2 data:2byte +lbl_801D44F2 = .sbss:0x801D44F2; // type:object size:0x2 data:2byte +lbl_801D44F4 = .sbss:0x801D44F4; // type:object size:0x2 data:2byte +lbl_801D44F6 = .sbss:0x801D44F6; // type:object size:0x2 data:2byte +lbl_801D44F8 = .sbss:0x801D44F8; // type:object size:0x2 data:2byte +lbl_801D44FA = .sbss:0x801D44FA; // type:object size:0x6 data:2byte +lbl_801D4500 = .sbss:0x801D4500; // type:object size:0x8 data:4byte +lbl_801D4508 = .sbss:0x801D4508; // type:object size:0x4 data:4byte +lbl_801D450C = .sbss:0x801D450C; // type:object size:0x4 data:4byte +lbl_801D4510 = .sbss:0x801D4510; // type:object size:0x4 data:4byte +lbl_801D4514 = .sbss:0x801D4514; // type:object size:0x4 data:4byte +lbl_801D4518 = .sbss:0x801D4518; // type:object size:0x8 data:byte +lbl_801D4520 = .sbss:0x801D4520; // type:object size:0x4 data:4byte +lbl_801D4524 = .sbss:0x801D4524; // type:object size:0x4 data:4byte +lbl_801D4528 = .sbss:0x801D4528; // type:object size:0x4 data:4byte +lbl_801D452C = .sbss:0x801D452C; // type:object size:0x2 data:2byte +lbl_801D452E = .sbss:0x801D452E; // type:object size:0x1 data:byte +lbl_801D452F = .sbss:0x801D452F; // type:object size:0x1 data:byte +lbl_801D4530 = .sbss:0x801D4530; // type:object size:0x1 data:byte +lbl_801D4531 = .sbss:0x801D4531; // type:object size:0x7 data:byte +lbl_801D4538 = .sbss:0x801D4538; // type:object size:0x8 data:2byte +lbl_801D4540 = .sbss:0x801D4540; // type:object size:0x4 data:4byte +lbl_801D4544 = .sbss:0x801D4544; // type:object size:0x4 data:4byte +lbl_801D4548 = .sbss:0x801D4548; // type:object size:0x4 data:4byte +lbl_801D454C = .sbss:0x801D454C; // type:object size:0x2 data:2byte +lbl_801D4550 = .sbss:0x801D4550; // type:object size:0x4 data:4byte +lbl_801D4554 = .sbss:0x801D4554; // type:object size:0x4 data:4byte +lbl_801D4558 = .sbss:0x801D4558; // type:object size:0x4 data:4byte +lbl_801D455C = .sbss:0x801D455C; // type:object size:0x2 data:2byte +lbl_801D4560 = .sbss:0x801D4560; // type:object size:0x4 data:4byte +lbl_801D4564 = .sbss:0x801D4564; // type:object size:0x4 data:4byte +lbl_801D4568 = .sbss:0x801D4568; // type:object size:0x4 data:4byte +lbl_801D456C = .sbss:0x801D456C; // type:object size:0x4 data:4byte +lbl_801D4570 = .sbss:0x801D4570; // type:object size:0x4 data:4byte +lbl_801D4574 = .sbss:0x801D4574; // type:object size:0x4 data:4byte +lbl_801D4578 = .sbss:0x801D4578; // type:object size:0x8 data:4byte +lbl_801D4580 = .sbss:0x801D4580; // type:object size:0x1 data:byte +lbl_801D4581 = .sbss:0x801D4581; // type:object size:0x1 data:byte +lbl_801D4582 = .sbss:0x801D4582; // type:object size:0x1 data:byte +lbl_801D4583 = .sbss:0x801D4583; // type:object size:0x1 data:byte +lbl_801D4584 = .sbss:0x801D4584; // type:object size:0x1 data:byte +lbl_801D4585 = .sbss:0x801D4585; // type:object size:0x1 data:byte +lbl_801D4588 = .sbss:0x801D4588; // type:object size:0x4 data:4byte +lbl_801D458C = .sbss:0x801D458C; // type:object size:0x4 data:4byte +lbl_801D4590 = .sbss:0x801D4590; // type:object size:0x4 data:4byte +lbl_801D4594 = .sbss:0x801D4594; // type:object size:0x4 data:4byte +lbl_801D4598 = .sbss:0x801D4598; // type:object size:0x4 data:4byte +lbl_801D459C = .sbss:0x801D459C; // type:object size:0x1 data:byte +lbl_801D45A0 = .sbss:0x801D45A0; // type:object size:0x1 data:byte +lbl_801D45A4 = .sbss:0x801D45A4; // type:object size:0x4 data:4byte +lbl_801D45A8 = .sbss:0x801D45A8; // type:object size:0x4 data:4byte +lbl_801D45AC = .sbss:0x801D45AC; // type:object size:0x1 data:byte +lbl_801D45AD = .sbss:0x801D45AD; // type:object size:0x1 data:byte +lbl_801D45AE = .sbss:0x801D45AE; // type:object size:0x1 data:byte +lbl_801D45AF = .sbss:0x801D45AF; // type:object size:0x1 data:byte +lbl_801D45B0 = .sbss:0x801D45B0; // type:object size:0x4 data:4byte +lbl_801D45B4 = .sbss:0x801D45B4; // type:object size:0x4 data:4byte +lbl_801D45B8 = .sbss:0x801D45B8; // type:object size:0x4 data:4byte +lbl_801D45BC = .sbss:0x801D45BC; // type:object size:0x4 data:4byte +lbl_801D45C0 = .sbss:0x801D45C0; // type:object size:0x4 data:4byte +lbl_801D45C4 = .sbss:0x801D45C4; // type:object size:0x4 data:4byte +lbl_801D45C8 = .sbss:0x801D45C8; // type:object size:0x4 data:4byte +lbl_801D45CC = .sbss:0x801D45CC; // type:object size:0x4 data:4byte +lbl_801D45D0 = .sbss:0x801D45D0; // type:object size:0x4 data:4byte +lbl_801D45D4 = .sbss:0x801D45D4; // type:object size:0x2 data:2byte +lbl_801D45D8 = .sbss:0x801D45D8; // type:object size:0x4 data:4byte +lbl_801D45DC = .sbss:0x801D45DC; // type:object size:0x4 data:4byte +lbl_801D45E0 = .sbss:0x801D45E0; // type:object size:0x4 data:4byte +lbl_801D45E4 = .sbss:0x801D45E4; // type:object size:0x4 data:4byte +lbl_801D45E8 = .sbss:0x801D45E8; // type:object size:0x4 data:4byte +lbl_801D45EC = .sbss:0x801D45EC; // type:object size:0x4 data:4byte +lbl_801D45F0 = .sbss:0x801D45F0; // type:object size:0x1 data:byte +lbl_801D45F4 = .sbss:0x801D45F4; // type:object size:0x4 data:4byte +lbl_801D45F8 = .sbss:0x801D45F8; // type:object size:0x4 data:4byte +lbl_801D45FC = .sbss:0x801D45FC; // type:object size:0x4 data:4byte +lbl_801D4600 = .sbss:0x801D4600; // type:object size:0x4 data:4byte +lbl_801D4604 = .sbss:0x801D4604; // type:object size:0x4 data:4byte +lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte +lbl_801D460C = .sbss:0x801D460C; // type:object size:0x1 data:byte +lbl_801D4620 = .sdata2:0x801D4620; // type:object size:0x8 scope:local data:double +lbl_801D4628 = .sdata2:0x801D4628; // type:object size:0x4 scope:local data:float +lbl_801D462C = .sdata2:0x801D462C; // type:object size:0x4 scope:local data:float +lbl_801D4630 = .sdata2:0x801D4630; // type:object size:0x8 scope:local data:double +lbl_801D4638 = .sdata2:0x801D4638; // type:object size:0x4 scope:local data:float +lbl_801D463C = .sdata2:0x801D463C; // type:object size:0x4 scope:local data:float +lbl_801D4640 = .sdata2:0x801D4640; // type:object size:0x4 scope:local data:float +lbl_801D4644 = .sdata2:0x801D4644; // type:object size:0x4 scope:local data:float +lbl_801D4648 = .sdata2:0x801D4648; // type:object size:0x4 scope:local data:float +lbl_801D464C = .sdata2:0x801D464C; // type:object size:0x4 scope:local data:float +lbl_801D4650 = .sdata2:0x801D4650; // type:object size:0x4 scope:local data:float +lbl_801D4654 = .sdata2:0x801D4654; // type:object size:0x4 scope:local data:float +lbl_801D4658 = .sdata2:0x801D4658; // type:object size:0x4 scope:local data:float +lbl_801D4660 = .sdata2:0x801D4660; // type:object size:0x8 scope:local data:double +lbl_801D4668 = .sdata2:0x801D4668; // type:object size:0x8 scope:local data:double +lbl_801D4670 = .sdata2:0x801D4670; // type:object size:0x4 scope:local data:float +lbl_801D4674 = .sdata2:0x801D4674; // type:object size:0x4 scope:local data:float +lbl_801D4678 = .sdata2:0x801D4678; // type:object size:0x4 scope:local data:float +lbl_801D467C = .sdata2:0x801D467C; // type:object size:0x4 scope:local data:float +lbl_801D4680 = .sdata2:0x801D4680; // type:object size:0x8 scope:local data:float +lbl_801D4688 = .sdata2:0x801D4688; // type:object size:0x4 scope:local data:float +lbl_801D468C = .sdata2:0x801D468C; // type:object size:0x4 scope:local data:float +lbl_801D4690 = .sdata2:0x801D4690; // type:object size:0x4 scope:local data:float +lbl_801D4698 = .sdata2:0x801D4698; // type:object size:0x8 scope:local data:double +lbl_801D46A0 = .sdata2:0x801D46A0; // type:object size:0x8 scope:local data:double +lbl_801D46A8 = .sdata2:0x801D46A8; // type:object size:0x8 scope:local data:float +lbl_801D46B0 = .sdata2:0x801D46B0; // type:object size:0x4 scope:local data:float +lbl_801D46B4 = .sdata2:0x801D46B4; // type:object size:0x4 scope:local data:float +lbl_801D46B8 = .sdata2:0x801D46B8; // type:object size:0x4 scope:local data:float +lbl_801D46BC = .sdata2:0x801D46BC; // type:object size:0x4 scope:local data:float +lbl_801D46C0 = .sdata2:0x801D46C0; // type:object size:0x4 scope:local data:float +lbl_801D46C4 = .sdata2:0x801D46C4; // type:object size:0x4 scope:local data:float +lbl_801D46C8 = .sdata2:0x801D46C8; // type:object size:0x4 scope:local data:float +lbl_801D46D0 = .sdata2:0x801D46D0; // type:object size:0x8 scope:local data:double +lbl_801D46D8 = .sdata2:0x801D46D8; // type:object size:0x8 scope:local data:double +lbl_801D46E0 = .sdata2:0x801D46E0; // type:object size:0x8 scope:local data:double +lbl_801D46E8 = .sdata2:0x801D46E8; // type:object size:0x4 scope:local data:float +lbl_801D46EC = .sdata2:0x801D46EC; // type:object size:0x4 scope:local data:float +lbl_801D46F0 = .sdata2:0x801D46F0; // type:object size:0x4 scope:local data:float +lbl_801D46F4 = .sdata2:0x801D46F4; // type:object size:0x4 scope:local data:float +lbl_801D46F8 = .sdata2:0x801D46F8; // type:object size:0x8 scope:local data:double +lbl_801D4700 = .sdata2:0x801D4700; // type:object size:0x8 scope:local data:double +lbl_801D4708 = .sdata2:0x801D4708; // type:object size:0x8 scope:local data:double +lbl_801D4710 = .sdata2:0x801D4710; // type:object size:0x8 scope:local data:double +lbl_801D4718 = .sdata2:0x801D4718; // type:object size:0x4 scope:local data:float +lbl_801D4720 = .sdata2:0x801D4720; // type:object size:0x8 scope:local data:double +lbl_801D4728 = .sdata2:0x801D4728; // type:object size:0x4 scope:local data:float +lbl_801D472C = .sdata2:0x801D472C; // type:object size:0x4 scope:local data:float +lbl_801D4730 = .sdata2:0x801D4730; // type:object size:0x4 scope:local data:float +lbl_801D4734 = .sdata2:0x801D4734; // type:object size:0x4 scope:local data:float +lbl_801D4738 = .sdata2:0x801D4738; // type:object size:0x8 scope:local data:double +lbl_801D4740 = .sdata2:0x801D4740; // type:object size:0x4 scope:local data:float +lbl_801D4744 = .sdata2:0x801D4744; // type:object size:0x4 scope:local data:float +lbl_801D4748 = .sdata2:0x801D4748; // type:object size:0x4 scope:local data:float +lbl_801D474C = .sdata2:0x801D474C; // type:object size:0x4 scope:local data:float +lbl_801D4750 = .sdata2:0x801D4750; // type:object size:0x8 scope:local data:double +lbl_801D4758 = .sdata2:0x801D4758; // type:object size:0x4 scope:local data:float +lbl_801D4760 = .sdata2:0x801D4760; // type:object size:0x8 scope:local data:double +lbl_801D4768 = .sdata2:0x801D4768; // type:object size:0x4 scope:local data:float +lbl_801D476C = .sdata2:0x801D476C; // type:object size:0x4 scope:local data:float +lbl_801D4770 = .sdata2:0x801D4770; // type:object size:0x4 scope:local data:float +lbl_801D4774 = .sdata2:0x801D4774; // type:object size:0x4 scope:local data:float +lbl_801D4778 = .sdata2:0x801D4778; // type:object size:0x4 scope:local data:float +lbl_801D4780 = .sdata2:0x801D4780; // type:object size:0x8 scope:local data:double +lbl_801D4788 = .sdata2:0x801D4788; // type:object size:0x8 scope:local data:double +lbl_801D4790 = .sdata2:0x801D4790; // type:object size:0x8 scope:local data:double +lbl_801D4798 = .sdata2:0x801D4798; // type:object size:0x8 scope:local data:double +lbl_801D47A0 = .sdata2:0x801D47A0; // type:object size:0x4 scope:local data:float +lbl_801D47A4 = .sdata2:0x801D47A4; // type:object size:0x4 scope:local data:float +lbl_801D47A8 = .sdata2:0x801D47A8; // type:object size:0x4 scope:local data:float +lbl_801D47AC = .sdata2:0x801D47AC; // type:object size:0x4 scope:local data:float +lbl_801D47B0 = .sdata2:0x801D47B0; // type:object size:0x4 scope:local data:float +lbl_801D47B4 = .sdata2:0x801D47B4; // type:object size:0x4 scope:local data:float +lbl_801D47B8 = .sdata2:0x801D47B8; // type:object size:0x4 scope:local data:float +lbl_801D47BC = .sdata2:0x801D47BC; // type:object size:0x4 scope:local data:float +lbl_801D47C0 = .sdata2:0x801D47C0; // type:object size:0x8 scope:local data:double +lbl_801D47C8 = .sdata2:0x801D47C8; // type:object size:0x8 scope:local data:float +lbl_801D47D0 = .sdata2:0x801D47D0; // type:object size:0x4 scope:local data:float +lbl_801D47D4 = .sdata2:0x801D47D4; // type:object size:0x4 scope:local data:float +lbl_801D47D8 = .sdata2:0x801D47D8; // type:object size:0x8 scope:local data:double +lbl_801D47E0 = .sdata2:0x801D47E0; // type:object size:0x8 scope:local data:double +lbl_801D47E8 = .sdata2:0x801D47E8; // type:object size:0x4 scope:local data:float +lbl_801D47EC = .sdata2:0x801D47EC; // type:object size:0x4 scope:local data:float +lbl_801D47F0 = .sdata2:0x801D47F0; // type:object size:0x4 scope:local data:float +lbl_801D47F8 = .sdata2:0x801D47F8; // type:object size:0x8 scope:local data:double +lbl_801D4800 = .sdata2:0x801D4800; // type:object size:0x8 scope:local data:double +lbl_801D4808 = .sdata2:0x801D4808; // type:object size:0x8 scope:local data:double +lbl_801D4810 = .sdata2:0x801D4810; // type:object size:0x4 scope:local data:float +lbl_801D4814 = .sdata2:0x801D4814; // type:object size:0x4 scope:local data:float +lbl_801D4818 = .sdata2:0x801D4818; // type:object size:0x8 scope:local data:float +lbl_801D4820 = .sdata2:0x801D4820; // type:object size:0x4 scope:local data:float +lbl_801D4824 = .sdata2:0x801D4824; // type:object size:0x4 scope:local data:float +lbl_801D4828 = .sdata2:0x801D4828; // type:object size:0x8 scope:local data:double +lbl_801D4830 = .sdata2:0x801D4830; // type:object size:0x4 scope:local data:float +lbl_801D4834 = .sdata2:0x801D4834; // type:object size:0x4 scope:local data:float +lbl_801D4838 = .sdata2:0x801D4838; // type:object size:0x4 scope:local data:float +lbl_801D483C = .sdata2:0x801D483C; // type:object size:0x4 scope:local data:float +lbl_801D4840 = .sdata2:0x801D4840; // type:object size:0x8 scope:local data:double +lbl_801D4848 = .sdata2:0x801D4848; // type:object size:0x4 scope:local data:float +lbl_801D4850 = .sdata2:0x801D4850; // type:object size:0x8 scope:local data:double +lbl_801D4858 = .sdata2:0x801D4858; // type:object size:0x8 scope:local data:double +lbl_801D4860 = .sdata2:0x801D4860; // type:object size:0x8 scope:local data:double +lbl_801D4868 = .sdata2:0x801D4868; // type:object size:0x4 scope:local data:float +lbl_801D4870 = .sdata2:0x801D4870; // type:object size:0x8 scope:local data:double +lbl_801D4878 = .sdata2:0x801D4878; // type:object size:0x8 scope:local data:double +lbl_801D4880 = .sdata2:0x801D4880; // type:object size:0x4 scope:local data:float +lbl_801D4888 = .sdata2:0x801D4888; // type:object size:0x8 scope:local data:double +lbl_801D4890 = .sdata2:0x801D4890; // type:object size:0x8 scope:local data:double +lbl_801D4898 = .sdata2:0x801D4898; // type:object size:0x8 scope:local data:double +lbl_801D48A0 = .sdata2:0x801D48A0; // type:object size:0x8 scope:local data:double +lbl_801D48A8 = .sdata2:0x801D48A8; // type:object size:0x4 scope:local data:float +lbl_801D48AC = .sdata2:0x801D48AC; // type:object size:0x4 scope:local data:float +lbl_801D48B0 = .sdata2:0x801D48B0; // type:object size:0x4 scope:local data:float +lbl_801D48B4 = .sdata2:0x801D48B4; // type:object size:0x4 scope:local data:float +lbl_801D48B8 = .sdata2:0x801D48B8; // type:object size:0x8 scope:local data:double +lbl_801D48C0 = .sdata2:0x801D48C0; // type:object size:0x4 scope:local data:float +lbl_801D48C8 = .sdata2:0x801D48C8; // type:object size:0x8 scope:local data:double +lbl_801D48D0 = .sdata2:0x801D48D0; // type:object size:0x8 scope:local data:double +lbl_801D48D8 = .sdata2:0x801D48D8; // type:object size:0x4 scope:local data:float +lbl_801D48E0 = .sdata2:0x801D48E0; // type:object size:0x8 scope:local data:double +lbl_801D48E8 = .sdata2:0x801D48E8; // type:object size:0x4 scope:local data:float +lbl_801D48EC = .sdata2:0x801D48EC; // type:object size:0x4 scope:local data:float +lbl_801D48F0 = .sdata2:0x801D48F0; // type:object size:0x4 scope:local data:float +lbl_801D48F4 = .sdata2:0x801D48F4; // type:object size:0x4 scope:local data:float +lbl_801D48F8 = .sdata2:0x801D48F8; // type:object size:0x8 scope:local data:double +lbl_801D4900 = .sdata2:0x801D4900; // type:object size:0x8 scope:local data:double +lbl_801D4908 = .sdata2:0x801D4908; // type:object size:0x4 scope:local data:float +lbl_801D490C = .sdata2:0x801D490C; // type:object size:0x4 scope:local data:float +lbl_801D4910 = .sdata2:0x801D4910; // type:object size:0x8 scope:local data:double +lbl_801D4918 = .sdata2:0x801D4918; // type:object size:0x4 scope:local data:float +lbl_801D491C = .sdata2:0x801D491C; // type:object size:0x4 scope:local data:float +lbl_801D4920 = .sdata2:0x801D4920; // type:object size:0x4 scope:local data:float +lbl_801D4924 = .sdata2:0x801D4924; // type:object size:0x4 scope:local data:float +lbl_801D4928 = .sdata2:0x801D4928; // type:object size:0x8 scope:local data:double +lbl_801D4930 = .sdata2:0x801D4930; // type:object size:0x8 scope:local data:double +lbl_801D4938 = .sdata2:0x801D4938; // type:object size:0x4 scope:local data:float +lbl_801D493C = .sdata2:0x801D493C; // type:object size:0x4 scope:local data:float +lbl_801D4940 = .sdata2:0x801D4940; // type:object size:0x4 scope:local data:float +lbl_801D4944 = .sdata2:0x801D4944; // type:object size:0x4 scope:local data:float +lbl_801D4948 = .sdata2:0x801D4948; // type:object size:0x4 scope:local data:float +lbl_801D494C = .sdata2:0x801D494C; // type:object size:0x4 scope:local data:float +lbl_801D4950 = .sdata2:0x801D4950; // type:object size:0x4 scope:local data:float +lbl_801D4954 = .sdata2:0x801D4954; // type:object size:0x4 scope:local data:float +lbl_801D4958 = .sdata2:0x801D4958; // type:object size:0x4 scope:local data:float +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x8 data:double +lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x4 scope:local data:float +lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x8 scope:local data:double +lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x8 scope:local data:double +lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x8 scope:local data:double +lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 scope:local data:float +lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 scope:local data:float +lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 scope:local data:float +lbl_801D49A0 = .sdata2:0x801D49A0; // type:object size:0x8 scope:local data:double +lbl_801D49A8 = .sdata2:0x801D49A8; // type:object size:0x4 scope:local data:float +lbl_801D49AC = .sdata2:0x801D49AC; // type:object size:0x4 scope:local data:float +lbl_801D49B0 = .sdata2:0x801D49B0; // type:object size:0x8 scope:local data:double +lbl_801D49B8 = .sdata2:0x801D49B8; // type:object size:0x8 scope:local data:double +lbl_801D49C0 = .sdata2:0x801D49C0; // type:object size:0x8 scope:local data:double +lbl_801D49C8 = .sdata2:0x801D49C8; // type:object size:0x8 scope:local data:double +lbl_801D49D0 = .sdata2:0x801D49D0; // type:object size:0x8 scope:local data:double +lbl_801D49D8 = .sdata2:0x801D49D8; // type:object size:0x8 scope:local data:double +lbl_801D49E0 = .sdata2:0x801D49E0; // type:object size:0x4 scope:local data:float +lbl_801D49E4 = .sdata2:0x801D49E4; // type:object size:0x4 scope:local data:float +lbl_801D49E8 = .sdata2:0x801D49E8; // type:object size:0x8 scope:local data:double +lbl_801D49F0 = .sdata2:0x801D49F0; // type:object size:0x4 scope:local data:float +lbl_801D49F4 = .sdata2:0x801D49F4; // type:object size:0x4 scope:local data:float +lbl_801D49F8 = .sdata2:0x801D49F8; // type:object size:0x4 scope:local data:float +lbl_801D49FC = .sdata2:0x801D49FC; // type:object size:0x4 scope:local data:float +lbl_801D4A00 = .sdata2:0x801D4A00; // type:object size:0x4 scope:local data:float +lbl_801D4A04 = .sdata2:0x801D4A04; // type:object size:0x4 scope:local data:float +lbl_801D4A08 = .sdata2:0x801D4A08; // type:object size:0x4 scope:local data:float +lbl_801D4A0C = .sdata2:0x801D4A0C; // type:object size:0x4 scope:local data:float +lbl_801D4A10 = .sdata2:0x801D4A10; // type:object size:0x4 scope:local data:float +lbl_801D4A14 = .sdata2:0x801D4A14; // type:object size:0x4 scope:local data:float +lbl_801D4A18 = .sdata2:0x801D4A18; // type:object size:0x4 scope:local data:float +lbl_801D4A1C = .sdata2:0x801D4A1C; // type:object size:0x4 scope:local data:float +lbl_801D4A20 = .sdata2:0x801D4A20; // type:object size:0x4 scope:local data:float +lbl_801D4A24 = .sdata2:0x801D4A24; // type:object size:0x4 scope:local data:float +lbl_801D4A28 = .sdata2:0x801D4A28; // type:object size:0x4 scope:local data:float +lbl_801D4A2C = .sdata2:0x801D4A2C; // type:object size:0x4 scope:local data:float +lbl_801D4A30 = .sdata2:0x801D4A30; // type:object size:0x4 scope:local data:float +lbl_801D4A34 = .sdata2:0x801D4A34; // type:object size:0x4 scope:local data:float +lbl_801D4A38 = .sdata2:0x801D4A38; // type:object size:0x8 scope:local data:double +lbl_801D4A40 = .sdata2:0x801D4A40; // type:object size:0x4 scope:local data:float +lbl_801D4A44 = .sdata2:0x801D4A44; // type:object size:0x4 scope:local data:float +lbl_801D4A48 = .sdata2:0x801D4A48; // type:object size:0x8 scope:local data:double +lbl_801D4A50 = .sdata2:0x801D4A50; // type:object size:0x8 scope:local data:double +lbl_801D4A58 = .sdata2:0x801D4A58; // type:object size:0x4 scope:local data:float +lbl_801D4A5C = .sdata2:0x801D4A5C; // type:object size:0x4 scope:local data:float +lbl_801D4A60 = .sdata2:0x801D4A60; // type:object size:0x8 scope:local data:double +lbl_801D4A68 = .sdata2:0x801D4A68; // type:object size:0x4 scope:local data:float +lbl_801D4A6C = .sdata2:0x801D4A6C; // type:object size:0x4 scope:local data:float +lbl_801D4A70 = .sdata2:0x801D4A70; // type:object size:0x4 scope:local data:float +lbl_801D4A74 = .sdata2:0x801D4A74; // type:object size:0x4 scope:local data:float +lbl_801D4A78 = .sdata2:0x801D4A78; // type:object size:0x4 scope:local data:float +lbl_801D4A80 = .sdata2:0x801D4A80; // type:object size:0x8 scope:local data:double +lbl_801D4A88 = .sdata2:0x801D4A88; // type:object size:0x4 scope:local data:float +lbl_801D4A90 = .sdata2:0x801D4A90; // type:object size:0x8 scope:local data:double +lbl_801D4A98 = .sdata2:0x801D4A98; // type:object size:0x4 scope:local data:float +lbl_801D4A9C = .sdata2:0x801D4A9C; // type:object size:0x4 scope:local data:float +lbl_801D4AA0 = .sdata2:0x801D4AA0; // type:object size:0x4 scope:local data:float +lbl_801D4AA4 = .sdata2:0x801D4AA4; // type:object size:0x4 scope:local data:float +lbl_801D4AA8 = .sdata2:0x801D4AA8; // type:object size:0x8 scope:local data:double +lbl_801D4AB0 = .sdata2:0x801D4AB0; // type:object size:0x4 scope:local data:float +lbl_801D4AB8 = .sdata2:0x801D4AB8; // type:object size:0x8 scope:local data:double +lbl_801D4AC0 = .sdata2:0x801D4AC0; // type:object size:0x8 scope:local data:double +lbl_801D4AC8 = .sdata2:0x801D4AC8; // type:object size:0x8 scope:local data:double +lbl_801D4AD0 = .sdata2:0x801D4AD0; // type:object size:0x4 scope:local data:float +lbl_801D4AD8 = .sdata2:0x801D4AD8; // type:object size:0x8 scope:local data:double +lbl_801D4AE0 = .sdata2:0x801D4AE0; // type:object size:0x4 scope:local data:float +lbl_801D4AE4 = .sdata2:0x801D4AE4; // type:object size:0x4 scope:local data:float +lbl_801D4AE8 = .sdata2:0x801D4AE8; // type:object size:0x4 scope:local data:float +lbl_801D4AEC = .sdata2:0x801D4AEC; // type:object size:0x4 scope:local data:float +lbl_801D4AF0 = .sdata2:0x801D4AF0; // type:object size:0x4 scope:local data:float +lbl_801D4AF4 = .sdata2:0x801D4AF4; // type:object size:0x4 scope:local data:float +lbl_801D4AF8 = .sdata2:0x801D4AF8; // type:object size:0x4 scope:local data:float +lbl_801D4AFC = .sdata2:0x801D4AFC; // type:object size:0x4 scope:local data:float +lbl_801D4B00 = .sdata2:0x801D4B00; // type:object size:0x8 scope:local data:double +lbl_801D4B08 = .sdata2:0x801D4B08; // type:object size:0x8 scope:local data:double +lbl_801D4B10 = .sdata2:0x801D4B10; // type:object size:0x8 scope:local data:double +lbl_801D4B18 = .sdata2:0x801D4B18; // type:object size:0x2 scope:local data:2byte +lbl_801D4B1A = .sdata2:0x801D4B1A; // type:object size:0x2 scope:local data:2byte +lbl_801D4B1C = .sdata2:0x801D4B1C; // type:object size:0x2 scope:local data:2byte +lbl_801D4B20 = .sdata2:0x801D4B20; // type:object size:0x4 scope:local data:float +lbl_801D4B24 = .sdata2:0x801D4B24; // type:object size:0x4 scope:local data:float +lbl_801D4B28 = .sdata2:0x801D4B28; // type:object size:0x4 scope:local data:float +lbl_801D4B2C = .sdata2:0x801D4B2C; // type:object size:0x4 scope:local data:float +lbl_801D4B30 = .sdata2:0x801D4B30; // type:object size:0x4 scope:local data:float +lbl_801D4B34 = .sdata2:0x801D4B34; // type:object size:0x4 scope:local data:float +lbl_801D4B38 = .sdata2:0x801D4B38; // type:object size:0x4 scope:local data:float +lbl_801D4B3C = .sdata2:0x801D4B3C; // type:object size:0x4 scope:local data:float +lbl_801D4B40 = .sdata2:0x801D4B40; // type:object size:0x4 scope:local data:float +lbl_801D4B44 = .sdata2:0x801D4B44; // type:object size:0x4 scope:local data:float +lbl_801D4B48 = .sdata2:0x801D4B48; // type:object size:0x8 scope:local data:double +lbl_801D4B50 = .sdata2:0x801D4B50; // type:object size:0x8 scope:local data:double +lbl_801D4B58 = .sdata2:0x801D4B58; // type:object size:0x4 scope:local data:float +lbl_801D4B5C = .sdata2:0x801D4B5C; // type:object size:0x4 scope:local data:float +lbl_801D4B60 = .sdata2:0x801D4B60; // type:object size:0x4 scope:local data:float +lbl_801D4B68 = .sdata2:0x801D4B68; // type:object size:0x8 scope:local data:double +lbl_801D4B70 = .sdata2:0x801D4B70; // type:object size:0x8 scope:local data:double +lbl_801D4B78 = .sdata2:0x801D4B78; // type:object size:0x4 scope:local data:float +lbl_801D4B7C = .sdata2:0x801D4B7C; // type:object size:0x4 scope:local data:float +lbl_801D4B80 = .sdata2:0x801D4B80; // type:object size:0x8 scope:local data:double +lbl_801D4B88 = .sdata2:0x801D4B88; // type:object size:0x4 scope:local data:float +lbl_801D4B8C = .sdata2:0x801D4B8C; // type:object size:0x4 scope:local data:float +lbl_801D4B90 = .sdata2:0x801D4B90; // type:object size:0x8 scope:local data:double +lbl_801D4B98 = .sdata2:0x801D4B98; // type:object size:0x4 scope:local data:float +lbl_801D4BA0 = .sdata2:0x801D4BA0; // type:object size:0x8 scope:local data:double +lbl_801D4BA8 = .sdata2:0x801D4BA8; // type:object size:0x4 scope:local data:float +lbl_801D4BAC = .sdata2:0x801D4BAC; // type:object size:0x4 scope:local data:float +lbl_801D4BB0 = .sdata2:0x801D4BB0; // type:object size:0x4 scope:local data:float +lbl_801D4BB4 = .sdata2:0x801D4BB4; // type:object size:0x4 scope:local data:float +lbl_801D4BB8 = .sdata2:0x801D4BB8; // type:object size:0x8 scope:local data:double +lbl_801D4BC0 = .sdata2:0x801D4BC0; // type:object size:0x4 scope:local data:float +lbl_801D4BC4 = .sdata2:0x801D4BC4; // type:object size:0x4 scope:local data:float +lbl_801D4BC8 = .sdata2:0x801D4BC8; // type:object size:0x4 scope:local data:float +lbl_801D4BCC = .sdata2:0x801D4BCC; // type:object size:0x4 scope:local data:float +lbl_801D4BD0 = .sdata2:0x801D4BD0; // type:object size:0x4 scope:local data:float +lbl_801D4BD8 = .sdata2:0x801D4BD8; // type:object size:0x8 scope:local data:double +lbl_801D4BE0 = .sdata2:0x801D4BE0; // type:object size:0x4 scope:local data:float +lbl_801D4BE4 = .sdata2:0x801D4BE4; // type:object size:0x4 scope:local data:float +lbl_801D4BE8 = .sdata2:0x801D4BE8; // type:object size:0x4 scope:local data:float +lbl_801D4BEC = .sdata2:0x801D4BEC; // type:object size:0x4 scope:local data:float +lbl_801D4BF0 = .sdata2:0x801D4BF0; // type:object size:0x4 scope:local data:float +lbl_801D4BF4 = .sdata2:0x801D4BF4; // type:object size:0x4 scope:local data:float +lbl_801D4BF8 = .sdata2:0x801D4BF8; // type:object size:0x8 scope:local data:double +lbl_801D4C00 = .sdata2:0x801D4C00; // type:object size:0x4 scope:local data:float +lbl_801D4C08 = .sdata2:0x801D4C08; // type:object size:0x8 scope:local data:double +lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x4 scope:local data:float +lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x8 scope:local data:double +lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x4 scope:local data:float +lbl_801D4C24 = .sdata2:0x801D4C24; // type:object size:0x4 scope:local data:float +lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 scope:local data:float +lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x8 scope:local data:double +lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 scope:local data:double +lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 scope:local data:double +lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 scope:local data:float +lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 scope:local data:double +lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x8 scope:local data:double +lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x8 scope:local data:double +lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 scope:local data:double +lbl_801D4C70 = .sdata2:0x801D4C70; // type:object size:0x8 scope:local data:double +lbl_801D4C78 = .sdata2:0x801D4C78; // type:object size:0x8 scope:local data:double +lbl_801D4C80 = .sdata2:0x801D4C80; // type:object size:0x8 scope:local data:double +lbl_801D4C88 = .sdata2:0x801D4C88; // type:object size:0x8 scope:local data:double +lbl_801D4C90 = .sdata2:0x801D4C90; // type:object size:0x8 scope:local data:double +lbl_801D4C98 = .sdata2:0x801D4C98; // type:object size:0x4 scope:local data:float +lbl_801D4C9C = .sdata2:0x801D4C9C; // type:object size:0x4 scope:local data:float +lbl_801D4CA0 = .sdata2:0x801D4CA0; // type:object size:0x4 scope:local data:float +lbl_801D4CA4 = .sdata2:0x801D4CA4; // type:object size:0x4 scope:local data:float +lbl_801D4CA8 = .sdata2:0x801D4CA8; // type:object size:0x8 scope:local data:double +lbl_801D4CB0 = .sdata2:0x801D4CB0; // type:object size:0x4 scope:local data:float +lbl_801D4CB8 = .sdata2:0x801D4CB8; // type:object size:0x8 scope:local data:double +lbl_801D4CC0 = .sdata2:0x801D4CC0; // type:object size:0x8 scope:local data:double +lbl_801D4CC8 = .sdata2:0x801D4CC8; // type:object size:0x4 scope:local data:float +lbl_801D4CCC = .sdata2:0x801D4CCC; // type:object size:0x4 scope:local data:float +lbl_801D4CD0 = .sdata2:0x801D4CD0; // type:object size:0x8 scope:local data:double +lbl_801D4CD8 = .sdata2:0x801D4CD8; // type:object size:0x4 scope:local data:float +lbl_801D4CDC = .sdata2:0x801D4CDC; // type:object size:0x4 scope:local data:float +lbl_801D4CE0 = .sdata2:0x801D4CE0; // type:object size:0x4 scope:local data:float +lbl_801D4CE4 = .sdata2:0x801D4CE4; // type:object size:0x4 scope:local data:float +lbl_801D4CE8 = .sdata2:0x801D4CE8; // type:object size:0x4 scope:local data:float +lbl_801D4CEC = .sdata2:0x801D4CEC; // type:object size:0x4 scope:local data:float +lbl_801D4CF0 = .sdata2:0x801D4CF0; // type:object size:0x8 scope:local data:double +lbl_801D4CF8 = .sdata2:0x801D4CF8; // type:object size:0x4 scope:local data:float +lbl_801D4D00 = .sdata2:0x801D4D00; // type:object size:0x8 scope:local data:double +lbl_801D4D08 = .sdata2:0x801D4D08; // type:object size:0x8 scope:local data:double +lbl_801D4D10 = .sdata2:0x801D4D10; // type:object size:0x4 scope:local data:float +lbl_801D4D18 = .sdata2:0x801D4D18; // type:object size:0x8 scope:local data:double +lbl_801D4D20 = .sdata2:0x801D4D20; // type:object size:0x4 scope:local data:float +lbl_801D4D24 = .sdata2:0x801D4D24; // type:object size:0x4 scope:local data:float +lbl_801D4D28 = .sdata2:0x801D4D28; // type:object size:0x8 scope:local data:double +lbl_801D4D30 = .sdata2:0x801D4D30; // type:object size:0x8 scope:local data:double +lbl_801D4D38 = .sdata2:0x801D4D38; // type:object size:0x4 scope:local data:float +lbl_801D4D3C = .sdata2:0x801D4D3C; // type:object size:0x4 scope:local data:float +lbl_801D4D40 = .sdata2:0x801D4D40; // type:object size:0x4 scope:local data:float +lbl_801D4D48 = .sdata2:0x801D4D48; // type:object size:0x8 scope:local data:double +lbl_801D4D50 = .sdata2:0x801D4D50; // type:object size:0x4 scope:local data:float +lbl_801D4D54 = .sdata2:0x801D4D54; // type:object size:0x4 scope:local data:float +lbl_801D4D58 = .sdata2:0x801D4D58; // type:object size:0x4 scope:local data:float +lbl_801D4D5C = .sdata2:0x801D4D5C; // type:object size:0x4 scope:local data:float +lbl_801D4D60 = .sdata2:0x801D4D60; // type:object size:0x8 scope:local data:double +lbl_801D4D68 = .sdata2:0x801D4D68; // type:object size:0x4 scope:local data:float +lbl_801D4D70 = .sdata2:0x801D4D70; // type:object size:0x8 scope:local data:double +lbl_801D4D78 = .sdata2:0x801D4D78; // type:object size:0x4 scope:local data:float +lbl_801D4D80 = .sdata2:0x801D4D80; // type:object size:0x8 scope:local data:double +lbl_801D4D88 = .sdata2:0x801D4D88; // type:object size:0x8 scope:local data:float +lbl_801D4D90 = .sdata2:0x801D4D90; // type:object size:0x4 scope:local data:float +lbl_801D4D94 = .sdata2:0x801D4D94; // type:object size:0x4 scope:local data:float +lbl_801D4D98 = .sdata2:0x801D4D98; // type:object size:0x4 scope:local data:float +lbl_801D4D9C = .sdata2:0x801D4D9C; // type:object size:0x4 scope:local data:float +lbl_801D4DA0 = .sdata2:0x801D4DA0; // type:object size:0x8 scope:local data:double +lbl_801D4DA8 = .sdata2:0x801D4DA8; // type:object size:0x8 scope:local data:double +lbl_801D4DB0 = .sdata2:0x801D4DB0; // type:object size:0x8 scope:local data:double +lbl_801D4DB8 = .sdata2:0x801D4DB8; // type:object size:0x4 scope:local data:float +lbl_801D4DC0 = .sdata2:0x801D4DC0; // type:object size:0x8 scope:local data:double +lbl_801D4DC8 = .sdata2:0x801D4DC8; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCA = .sdata2:0x801D4DCA; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCC = .sdata2:0x801D4DCC; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCE = .sdata2:0x801D4DCE; // type:object size:0x2 scope:local data:2byte +lbl_801D4DD0 = .sdata2:0x801D4DD0; // type:object size:0x1 scope:local data:byte +lbl_801D4DD1 = .sdata2:0x801D4DD1; // type:object size:0x1 scope:local data:byte +lbl_801D4DD2 = .sdata2:0x801D4DD2; // type:object size:0x1 scope:local data:byte +lbl_801D4DD3 = .sdata2:0x801D4DD3; // type:object size:0x1 scope:local data:byte +lbl_801D4DD4 = .sdata2:0x801D4DD4; // type:object size:0x1 scope:local data:byte +lbl_801D4DD5 = .sdata2:0x801D4DD5; // type:object size:0x1 scope:local data:byte +lbl_801D4DD6 = .sdata2:0x801D4DD6; // type:object size:0x1 scope:local data:byte +lbl_801D4DD7 = .sdata2:0x801D4DD7; // type:object size:0x1 scope:local data:byte +lbl_801D4DD8 = .sdata2:0x801D4DD8; // type:object size:0x1 scope:local data:byte +lbl_801D4DD9 = .sdata2:0x801D4DD9; // type:object size:0x1 scope:local data:byte +lbl_801D4DDA = .sdata2:0x801D4DDA; // type:object size:0x1 scope:local data:byte +lbl_801D4DDB = .sdata2:0x801D4DDB; // type:object size:0x1 scope:local data:byte +lbl_801D4DDC = .sdata2:0x801D4DDC; // type:object size:0x4 scope:local data:float +lbl_801D4DE0 = .sdata2:0x801D4DE0; // type:object size:0x4 scope:local data:float +lbl_801D4DE4 = .sdata2:0x801D4DE4; // type:object size:0x1 scope:local data:byte +lbl_801D4DE5 = .sdata2:0x801D4DE5; // type:object size:0x1 scope:local data:byte +lbl_801D4DE6 = .sdata2:0x801D4DE6; // type:object size:0x1 scope:local data:byte +lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 scope:local data:byte +lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 scope:local data:float +lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 scope:local data:float +lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 scope:local data:float +@293 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float +@294 = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float +@295 = .sdata2:0x801D4E00; // type:object size:0x4 scope:local data:float +lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 scope:local data:float +lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 scope:local data:float +lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 scope:local data:float +lbl_801D4E14 = .sdata2:0x801D4E14; // type:object size:0x4 scope:local data:float +lbl_801D4E18 = .sdata2:0x801D4E18; // type:object size:0x4 scope:local data:float +lbl_801D4E1C = .sdata2:0x801D4E1C; // type:object size:0x4 scope:local data:float +lbl_801D4E20 = .sdata2:0x801D4E20; // type:object size:0x8 scope:local data:double +lbl_801D4E28 = .sdata2:0x801D4E28; // type:object size:0x8 scope:local data:double +lbl_801D4E30 = .sdata2:0x801D4E30; // type:object size:0x4 scope:local data:float +lbl_801D4E34 = .sdata2:0x801D4E34; // type:object size:0x4 scope:local data:float +lbl_801D4E38 = .sdata2:0x801D4E38; // type:object size:0x8 scope:local data:double +lbl_801D4E40 = .sdata2:0x801D4E40; // type:object size:0x8 scope:local data:double +lbl_801D4E48 = .sdata2:0x801D4E48; // type:object size:0x4 scope:local data:float +lbl_801D4E4C = .sdata2:0x801D4E4C; // type:object size:0x4 scope:local data:float +lbl_801D4E50 = .sdata2:0x801D4E50; // type:object size:0x4 scope:local data:float +lbl_801D4E54 = .sdata2:0x801D4E54; // type:object size:0x4 scope:local data:float +lbl_801D4E58 = .sdata2:0x801D4E58; // type:object size:0x4 scope:local data:float +lbl_801D4E5C = .sdata2:0x801D4E5C; // type:object size:0x4 scope:local data:float +lbl_801D4E60 = .sdata2:0x801D4E60; // type:object size:0x8 scope:local data:double +lbl_801D4E68 = .sdata2:0x801D4E68; // type:object size:0x4 scope:local data:float +lbl_801D4E6C = .sdata2:0x801D4E6C; // type:object size:0x4 scope:local data:float +lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x8 scope:local data:double +lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 scope:local data:float +lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 scope:local data:float +lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 scope:local data:float +lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 scope:local data:float +lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 scope:local data:float +lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 scope:local data:float +lbl_801D4E90 = .sdata2:0x801D4E90; // type:object size:0x4 scope:local data:float +lbl_801D4E94 = .sdata2:0x801D4E94; // type:object size:0x4 scope:local data:float +lbl_801D4E98 = .sdata2:0x801D4E98; // type:object size:0x4 scope:local data:float +lbl_801D4E9C = .sdata2:0x801D4E9C; // type:object size:0x4 scope:local data:float +lbl_801D4EA0 = .sdata2:0x801D4EA0; // type:object size:0x4 scope:local data:float +lbl_801D4EA4 = .sdata2:0x801D4EA4; // type:object size:0x4 scope:local data:float +lbl_801D4EA8 = .sdata2:0x801D4EA8; // type:object size:0x4 scope:local data:float +lbl_801D4EAC = .sdata2:0x801D4EAC; // type:object size:0x4 scope:local data:float +lbl_801D4EB0 = .sdata2:0x801D4EB0; // type:object size:0x4 scope:local data:float +lbl_801D4EB4 = .sdata2:0x801D4EB4; // type:object size:0x4 scope:local data:float +lbl_801D4EB8 = .sdata2:0x801D4EB8; // type:object size:0x4 scope:local data:float +lbl_801D4EBC = .sdata2:0x801D4EBC; // type:object size:0x4 scope:local data:float +lbl_801D4EC0 = .sdata2:0x801D4EC0; // type:object size:0x4 scope:local data:float +lbl_801D4EC4 = .sdata2:0x801D4EC4; // type:object size:0x4 scope:local data:float +lbl_801D4EC8 = .sdata2:0x801D4EC8; // type:object size:0x4 scope:local data:float +lbl_801D4ECC = .sdata2:0x801D4ECC; // type:object size:0x4 scope:local data:float +lbl_801D4ED0 = .sdata2:0x801D4ED0; // type:object size:0x4 scope:local data:float +lbl_801D4ED8 = .sdata2:0x801D4ED8; // type:object size:0x8 scope:local data:double +lbl_801D4EE0 = .sdata2:0x801D4EE0; // type:object size:0x8 scope:local data:double +lbl_801D4EE8 = .sdata2:0x801D4EE8; // type:object size:0x4 scope:local data:float +lbl_801D4EF0 = .sdata2:0x801D4EF0; // type:object size:0x8 scope:local data:double +lbl_801D4EF8 = .sdata2:0x801D4EF8; // type:object size:0x4 scope:local data:float +lbl_801D4F00 = .sdata2:0x801D4F00; // type:object size:0x8 scope:local data:double +lbl_801D4F08 = .sdata2:0x801D4F08; // type:object size:0x4 scope:local data:float +lbl_801D4F0C = .sdata2:0x801D4F0C; // type:object size:0x4 scope:local data:float +lbl_801D4F10 = .sdata2:0x801D4F10; // type:object size:0x4 scope:local data:float +lbl_801D4F14 = .sdata2:0x801D4F14; // type:object size:0x4 scope:local data:float +lbl_801D4F18 = .sdata2:0x801D4F18; // type:object size:0x8 scope:local data:double +lbl_801D4F20 = .sdata2:0x801D4F20; // type:object size:0x8 scope:local data:double +lbl_801D4F28 = .sdata2:0x801D4F28; // type:object size:0x4 scope:local data:float +lbl_801D4F2C = .sdata2:0x801D4F2C; // type:object size:0x4 scope:local data:float +lbl_801D4F30 = .sdata2:0x801D4F30; // type:object size:0x4 scope:local data:float +lbl_801D4F34 = .sdata2:0x801D4F34; // type:object size:0x4 scope:local data:float +lbl_801D4F38 = .sdata2:0x801D4F38; // type:object size:0x4 scope:local data:float +lbl_801D4F3C = .sdata2:0x801D4F3C; // type:object size:0x4 scope:local data:float +lbl_801D4F40 = .sdata2:0x801D4F40; // type:object size:0x4 scope:local data:float +lbl_801D4F44 = .sdata2:0x801D4F44; // type:object size:0x4 scope:local data:float +lbl_801D4F48 = .sdata2:0x801D4F48; // type:object size:0x4 scope:local data:float +lbl_801D4F4C = .sdata2:0x801D4F4C; // type:object size:0x4 scope:local data:float +lbl_801D4F50 = .sdata2:0x801D4F50; // type:object size:0x4 scope:local data:float +lbl_801D4F54 = .sdata2:0x801D4F54; // type:object size:0x4 scope:local data:float +lbl_801D4F58 = .sdata2:0x801D4F58; // type:object size:0x4 scope:local data:float +lbl_801D4F5C = .sdata2:0x801D4F5C; // type:object size:0x4 scope:local data:float +lbl_801D4F60 = .sdata2:0x801D4F60; // type:object size:0x4 scope:local data:4byte +lbl_801D4F64 = .sdata2:0x801D4F64; // type:object size:0x4 scope:local data:4byte +lbl_801D4F68 = .sdata2:0x801D4F68; // type:object size:0x4 scope:local data:float +lbl_801D4F6C = .sdata2:0x801D4F6C; // type:object size:0x4 scope:local data:float +lbl_801D4F70 = .sdata2:0x801D4F70; // type:object size:0x4 scope:local data:float +lbl_801D4F74 = .sdata2:0x801D4F74; // type:object size:0x4 scope:local data:float +lbl_801D4F78 = .sdata2:0x801D4F78; // type:object size:0x4 scope:local data:float +lbl_801D4F7C = .sdata2:0x801D4F7C; // type:object size:0x4 scope:local data:float +lbl_801D4F80 = .sdata2:0x801D4F80; // type:object size:0x4 scope:local data:float +lbl_801D4F84 = .sdata2:0x801D4F84; // type:object size:0x4 scope:local data:float +lbl_801D4F88 = .sdata2:0x801D4F88; // type:object size:0x4 scope:local data:float +lbl_801D4F8C = .sdata2:0x801D4F8C; // type:object size:0x2 scope:local data:2byte +lbl_801D4F8E = .sdata2:0x801D4F8E; // type:object size:0x2 data:2byte +lbl_801D4F90 = .sdata2:0x801D4F90; // type:object size:0x2 data:2byte +lbl_801D4F92 = .sdata2:0x801D4F92; // type:object size:0x2 data:2byte +lbl_801D4F94 = .sdata2:0x801D4F94; // type:object size:0x1 data:byte +lbl_801D4F95 = .sdata2:0x801D4F95; // type:object size:0x1 data:byte +lbl_801D4F96 = .sdata2:0x801D4F96; // type:object size:0x1 data:byte +lbl_801D4F97 = .sdata2:0x801D4F97; // type:object size:0x1 data:byte +lbl_801D4F98 = .sdata2:0x801D4F98; // type:object size:0x1 data:byte +lbl_801D4F99 = .sdata2:0x801D4F99; // type:object size:0x1 data:byte +lbl_801D4F9A = .sdata2:0x801D4F9A; // type:object size:0x1 data:byte +lbl_801D4F9B = .sdata2:0x801D4F9B; // type:object size:0x1 data:byte +lbl_801D4F9C = .sdata2:0x801D4F9C; // type:object size:0x4 data:float +lbl_801D4FA0 = .sdata2:0x801D4FA0; // type:object size:0x4 data:float +lbl_801D4FA4 = .sdata2:0x801D4FA4; // type:object size:0x4 data:float +lbl_801D4FA8 = .sdata2:0x801D4FA8; // type:object size:0x4 data:float +lbl_801D4FAC = .sdata2:0x801D4FAC; // type:object size:0x4 data:float +lbl_801D4FB0 = .sdata2:0x801D4FB0; // type:object size:0x4 data:float +lbl_801D4FB8 = .sdata2:0x801D4FB8; // type:object size:0x8 data:double +lbl_801D4FC0 = .sdata2:0x801D4FC0; // type:object size:0x4 data:float +lbl_801D4FC4 = .sdata2:0x801D4FC4; // type:object size:0x4 data:float +lbl_801D4FC8 = .sdata2:0x801D4FC8; // type:object size:0x4 data:float +lbl_801D4FCC = .sdata2:0x801D4FCC; // type:object size:0x4 data:float +lbl_801D4FD0 = .sdata2:0x801D4FD0; // type:object size:0x8 data:float +lbl_801D4FD8 = .sdata2:0x801D4FD8; // type:object size:0x4 +lbl_801D4FDC = .sdata2:0x801D4FDC; // type:object size:0x4 data:float +lbl_801D4FE0 = .sdata2:0x801D4FE0; // type:object size:0x4 data:float +lbl_801D4FE8 = .sdata2:0x801D4FE8; // type:object size:0x8 data:double +lbl_801D4FF0 = .sdata2:0x801D4FF0; // type:object size:0x8 data:double +lbl_801D4FF8 = .sdata2:0x801D4FF8; // type:object size:0x8 data:double +lbl_801D5000 = .sdata2:0x801D5000; // type:object size:0x4 data:float +lbl_801D5004 = .sdata2:0x801D5004; // type:object size:0x4 data:float +lbl_801D5008 = .sdata2:0x801D5008; // type:object size:0x8 data:float +lbl_801D5010 = .sdata2:0x801D5010; // type:object size:0x4 data:float +lbl_801D5014 = .sdata2:0x801D5014; // type:object size:0x4 data:float +lbl_801D5018 = .sdata2:0x801D5018; // type:object size:0x4 data:float +lbl_801D5020 = .sdata2:0x801D5020; // type:object size:0x8 data:double +lbl_801D5028 = .sdata2:0x801D5028; // type:object size:0x8 data:double +lbl_801D5030 = .sdata2:0x801D5030; // type:object size:0x4 data:float +lbl_801D5034 = .sdata2:0x801D5034; // type:object size:0x4 data:float +lbl_801D5038 = .sdata2:0x801D5038; // type:object size:0x4 data:float +lbl_801D503C = .sdata2:0x801D503C; // type:object size:0x4 data:float +lbl_801D5040 = .sdata2:0x801D5040; // type:object size:0x4 data:float +lbl_801D5044 = .sdata2:0x801D5044; // type:object size:0x4 data:float +lbl_801D5048 = .sdata2:0x801D5048; // type:object size:0x4 data:float +lbl_801D504C = .sdata2:0x801D504C; // type:object size:0x4 data:float +lbl_801D5050 = .sdata2:0x801D5050; // type:object size:0x4 data:float +lbl_801D5054 = .sdata2:0x801D5054; // type:object size:0x4 data:float +lbl_801D5058 = .sdata2:0x801D5058; // type:object size:0x4 data:float +lbl_801D505C = .sdata2:0x801D505C; // type:object size:0x4 data:float +lbl_801D5060 = .sdata2:0x801D5060; // type:object size:0x4 data:float +lbl_801D5068 = .sdata2:0x801D5068; // type:object size:0x8 data:double +lbl_801D5070 = .sdata2:0x801D5070; // type:object size:0x4 data:float +lbl_801D5074 = .sdata2:0x801D5074; // type:object size:0x4 data:float +lbl_801D5078 = .sdata2:0x801D5078; // type:object size:0x8 data:float +lbl_801D5080 = .sdata2:0x801D5080; // type:object size:0x1 data:byte +lbl_801D5081 = .sdata2:0x801D5081; // type:object size:0x1 data:byte +lbl_801D5082 = .sdata2:0x801D5082; // type:object size:0x1 data:byte +lbl_801D5083 = .sdata2:0x801D5083; // type:object size:0x1 data:byte +lbl_801D5084 = .sdata2:0x801D5084; // type:object size:0x1 data:byte +lbl_801D5085 = .sdata2:0x801D5085; // type:object size:0x1 data:byte +lbl_801D5086 = .sdata2:0x801D5086; // type:object size:0x1 data:byte +lbl_801D5087 = .sdata2:0x801D5087; // type:object size:0x1 data:byte +lbl_801D5088 = .sdata2:0x801D5088; // type:object size:0x4 data:float +lbl_801D508C = .sdata2:0x801D508C; // type:object size:0x4 data:float +lbl_801D5090 = .sdata2:0x801D5090; // type:object size:0x8 data:double +lbl_801D5098 = .sdata2:0x801D5098; // type:object size:0x8 data:double +lbl_801D50A0 = .sdata2:0x801D50A0; // type:object size:0x8 data:double +lbl_801D50A8 = .sdata2:0x801D50A8; // type:object size:0x4 data:float +lbl_801D50B0 = .sdata2:0x801D50B0; // type:object size:0x8 data:double +lbl_801D50B8 = .sdata2:0x801D50B8; // type:object size:0x4 data:float +lbl_801D50BC = .sdata2:0x801D50BC; // type:object size:0x4 data:float +lbl_801D50C0 = .sdata2:0x801D50C0; // type:object size:0x4 data:float +lbl_801D50C4 = .sdata2:0x801D50C4; // type:object size:0x4 data:float +lbl_801D50C8 = .sdata2:0x801D50C8; // type:object size:0x4 data:float +lbl_801D50CC = .sdata2:0x801D50CC; // type:object size:0x4 data:float +lbl_801D50D0 = .sdata2:0x801D50D0; // type:object size:0x4 data:float +lbl_801D50D4 = .sdata2:0x801D50D4; // type:object size:0x1 data:byte +lbl_801D50D5 = .sdata2:0x801D50D5; // type:object size:0x1 data:byte +lbl_801D50D6 = .sdata2:0x801D50D6; // type:object size:0x1 data:byte +lbl_801D50D7 = .sdata2:0x801D50D7; // type:object size:0x1 data:byte +lbl_801D50D8 = .sdata2:0x801D50D8; // type:object size:0x4 data:float +lbl_801D50DC = .sdata2:0x801D50DC; // type:object size:0x4 data:float +lbl_801D50E0 = .sdata2:0x801D50E0; // type:object size:0x4 data:float +lbl_801D50E4 = .sdata2:0x801D50E4; // type:object size:0x4 data:float +lbl_801D50E8 = .sdata2:0x801D50E8; // type:object size:0x4 data:float +lbl_801D50EC = .sdata2:0x801D50EC; // type:object size:0x4 data:float +lbl_801D50F0 = .sdata2:0x801D50F0; // type:object size:0x4 data:float +lbl_801D50F4 = .sdata2:0x801D50F4; // type:object size:0x4 data:float +lbl_801D50F8 = .sdata2:0x801D50F8; // type:object size:0x4 data:float +lbl_801D50FC = .sdata2:0x801D50FC; // type:object size:0x4 data:float +lbl_801D5100 = .sdata2:0x801D5100; // type:object size:0x4 data:4byte +lbl_801D5104 = .sdata2:0x801D5104; // type:object size:0x4 data:4byte +lbl_801D5108 = .sdata2:0x801D5108; // type:object size:0x4 data:float +lbl_801D5110 = .sdata2:0x801D5110; // type:object size:0x8 data:double +lbl_801D5118 = .sdata2:0x801D5118; // type:object size:0x8 data:double +lbl_801D5120 = .sdata2:0x801D5120; // type:object size:0x4 data:float +lbl_801D5124 = .sdata2:0x801D5124; // type:object size:0x4 data:float +lbl_801D5128 = .sdata2:0x801D5128; // type:object size:0x4 data:float +lbl_801D512C = .sdata2:0x801D512C; // type:object size:0x4 data:float +lbl_801D5130 = .sdata2:0x801D5130; // type:object size:0x4 data:float +lbl_801D5134 = .sdata2:0x801D5134; // type:object size:0x4 data:float +lbl_801D5138 = .sdata2:0x801D5138; // type:object size:0x4 data:float +lbl_801D513C = .sdata2:0x801D513C; // type:object size:0x4 data:float +lbl_801D5140 = .sdata2:0x801D5140; // type:object size:0x4 data:float +lbl_801D5144 = .sdata2:0x801D5144; // type:object size:0x4 data:float +lbl_801D5148 = .sdata2:0x801D5148; // type:object size:0x4 data:float +lbl_801D514C = .sdata2:0x801D514C; // type:object size:0x4 data:float +lbl_801D5150 = .sdata2:0x801D5150; // type:object size:0x4 data:float +lbl_801D5154 = .sdata2:0x801D5154; // type:object size:0x4 data:float +lbl_801D5158 = .sdata2:0x801D5158; // type:object size:0x4 data:float +lbl_801D515C = .sdata2:0x801D515C; // type:object size:0x4 data:float +lbl_801D5160 = .sdata2:0x801D5160; // type:object size:0x4 data:float +lbl_801D5168 = .sdata2:0x801D5168; // type:object size:0x8 data:double +lbl_801D5170 = .sdata2:0x801D5170; // type:object size:0x4 data:float +lbl_801D5174 = .sdata2:0x801D5174; // type:object size:0x4 data:float +lbl_801D5178 = .sdata2:0x801D5178; // type:object size:0x4 data:float +lbl_801D517C = .sdata2:0x801D517C; // type:object size:0x4 data:float +lbl_801D5180 = .sdata2:0x801D5180; // type:object size:0x4 data:float +lbl_801D5184 = .sdata2:0x801D5184; // type:object size:0x4 data:float +lbl_801D5188 = .sdata2:0x801D5188; // type:object size:0x4 data:float +lbl_801D518C = .sdata2:0x801D518C; // type:object size:0x4 data:float +lbl_801D5190 = .sdata2:0x801D5190; // type:object size:0x4 data:float +lbl_801D5194 = .sdata2:0x801D5194; // type:object size:0x4 data:float +lbl_801D5198 = .sdata2:0x801D5198; // type:object size:0x4 data:float +lbl_801D519C = .sdata2:0x801D519C; // type:object size:0x4 data:float +lbl_801D51A0 = .sdata2:0x801D51A0; // type:object size:0x4 data:float +lbl_801D51A8 = .sdata2:0x801D51A8; // type:object size:0x8 data:double +lbl_801D51B0 = .sdata2:0x801D51B0; // type:object size:0x4 data:float +lbl_801D51B4 = .sdata2:0x801D51B4; // type:object size:0x4 data:float +lbl_801D51B8 = .sdata2:0x801D51B8; // type:object size:0x4 data:float +lbl_801D51C0 = .sdata2:0x801D51C0; // type:object size:0x8 data:double +lbl_801D51C8 = .sdata2:0x801D51C8; // type:object size:0x8 data:float +lbl_801D51D0 = .sdata2:0x801D51D0; // type:object size:0x4 data:float +lbl_801D51D4 = .sdata2:0x801D51D4; // type:object size:0x4 data:4byte +lbl_801D51D8 = .sdata2:0x801D51D8; // type:object size:0x4 data:4byte +lbl_801D51DC = .sdata2:0x801D51DC; // type:object size:0x4 data:float +lbl_801D51E0 = .sdata2:0x801D51E0; // type:object size:0x4 data:float +lbl_801D51E8 = .sdata2:0x801D51E8; // type:object size:0x8 data:double +lbl_801D51F0 = .sdata2:0x801D51F0; // type:object size:0x8 data:double +lbl_801D51F8 = .sdata2:0x801D51F8; // type:object size:0x4 data:float +lbl_801D51FC = .sdata2:0x801D51FC; // type:object size:0x4 data:float +lbl_801D5200 = .sdata2:0x801D5200; // type:object size:0x4 data:float +lbl_801D5204 = .sdata2:0x801D5204; // type:object size:0x4 data:float +lbl_801D5208 = .sdata2:0x801D5208; // type:object size:0x8 data:double +lbl_801D5210 = .sdata2:0x801D5210; // type:object size:0x4 data:float +lbl_801D5214 = .sdata2:0x801D5214; // type:object size:0x4 data:float +lbl_801D5218 = .sdata2:0x801D5218; // type:object size:0x4 data:float +lbl_801D521C = .sdata2:0x801D521C; // type:object size:0x4 data:float +lbl_801D5220 = .sdata2:0x801D5220; // type:object size:0x4 data:float +lbl_801D5224 = .sdata2:0x801D5224; // type:object size:0x4 data:float +lbl_801D5228 = .sdata2:0x801D5228; // type:object size:0x4 data:float +lbl_801D522C = .sdata2:0x801D522C; // type:object size:0x4 data:float +lbl_801D5230 = .sdata2:0x801D5230; // type:object size:0x4 data:float +lbl_801D5234 = .sdata2:0x801D5234; // type:object size:0x4 data:float +lbl_801D5238 = .sdata2:0x801D5238; // type:object size:0x4 data:float +lbl_801D523C = .sdata2:0x801D523C; // type:object size:0x4 data:float +lbl_801D5240 = .sdata2:0x801D5240; // type:object size:0x4 data:float +lbl_801D5244 = .sdata2:0x801D5244; // type:object size:0x4 data:4byte +lbl_801D5248 = .sdata2:0x801D5248; // type:object size:0x4 data:4byte +lbl_801D524C = .sdata2:0x801D524C; // type:object size:0x2 data:2byte +lbl_801D524E = .sdata2:0x801D524E; // type:object size:0x2 data:2byte +lbl_801D5250 = .sdata2:0x801D5250; // type:object size:0x2 data:2byte +lbl_801D5252 = .sdata2:0x801D5252; // type:object size:0x2 data:2byte +lbl_801D5254 = .sdata2:0x801D5254; // type:object size:0x4 data:float +lbl_801D5258 = .sdata2:0x801D5258; // type:object size:0x4 data:float +lbl_801D525C = .sdata2:0x801D525C; // type:object size:0x4 data:float +lbl_801D5260 = .sdata2:0x801D5260; // type:object size:0x4 data:float +lbl_801D5264 = .sdata2:0x801D5264; // type:object size:0x4 data:float +lbl_801D5268 = .sdata2:0x801D5268; // type:object size:0x4 data:float +lbl_801D526C = .sdata2:0x801D526C; // type:object size:0x4 data:float +lbl_801D5270 = .sdata2:0x801D5270; // type:object size:0x4 data:float +lbl_801D5274 = .sdata2:0x801D5274; // type:object size:0x4 data:float +lbl_801D5278 = .sdata2:0x801D5278; // type:object size:0x4 data:float +lbl_801D527C = .sdata2:0x801D527C; // type:object size:0x4 data:float +lbl_801D5280 = .sdata2:0x801D5280; // type:object size:0x4 data:float +lbl_801D5284 = .sdata2:0x801D5284; // type:object size:0x4 data:float +lbl_801D5288 = .sdata2:0x801D5288; // type:object size:0x4 data:float +lbl_801D528C = .sdata2:0x801D528C; // type:object size:0x4 data:float +lbl_801D5290 = .sdata2:0x801D5290; // type:object size:0x4 data:float +lbl_801D5294 = .sdata2:0x801D5294; // type:object size:0x4 data:float +lbl_801D5298 = .sdata2:0x801D5298; // type:object size:0x4 data:float +lbl_801D529C = .sdata2:0x801D529C; // type:object size:0x4 data:float +lbl_801D52A0 = .sdata2:0x801D52A0; // type:object size:0x4 data:float +lbl_801D52A4 = .sdata2:0x801D52A4; // type:object size:0x4 data:float +lbl_801D52A8 = .sdata2:0x801D52A8; // type:object size:0x4 data:float +lbl_801D52AC = .sdata2:0x801D52AC; // type:object size:0x4 data:float +lbl_801D52B0 = .sdata2:0x801D52B0; // type:object size:0x4 data:float +lbl_801D52B4 = .sdata2:0x801D52B4; // type:object size:0x4 data:float +lbl_801D52B8 = .sdata2:0x801D52B8; // type:object size:0x4 data:float +lbl_801D52BC = .sdata2:0x801D52BC; // type:object size:0x4 data:float +lbl_801D52C0 = .sdata2:0x801D52C0; // type:object size:0x4 data:float +lbl_801D52C4 = .sdata2:0x801D52C4; // type:object size:0x4 data:float +lbl_801D52C8 = .sdata2:0x801D52C8; // type:object size:0x4 data:float +lbl_801D52CC = .sdata2:0x801D52CC; // type:object size:0x4 data:float +lbl_801D52D0 = .sdata2:0x801D52D0; // type:object size:0x4 data:float +lbl_801D52D4 = .sdata2:0x801D52D4; // type:object size:0x4 data:float +lbl_801D52D8 = .sdata2:0x801D52D8; // type:object size:0x4 data:float +lbl_801D52DC = .sdata2:0x801D52DC; // type:object size:0x4 data:float +lbl_801D52E0 = .sdata2:0x801D52E0; // type:object size:0x4 data:float +lbl_801D52E4 = .sdata2:0x801D52E4; // type:object size:0x4 data:float +lbl_801D52E8 = .sdata2:0x801D52E8; // type:object size:0x8 data:double +lbl_801D52F0 = .sdata2:0x801D52F0; // type:object size:0x8 data:double +lbl_801D52F8 = .sdata2:0x801D52F8; // type:object size:0x4 data:float +lbl_801D52FC = .sdata2:0x801D52FC; // type:object size:0x4 data:float +lbl_801D5300 = .sdata2:0x801D5300; // type:object size:0x4 data:float +lbl_801D5304 = .sdata2:0x801D5304; // type:object size:0x4 data:float +lbl_801D5308 = .sdata2:0x801D5308; // type:object size:0x4 data:float +lbl_801D530C = .sdata2:0x801D530C; // type:object size:0x4 data:float +lbl_801D5310 = .sdata2:0x801D5310; // type:object size:0x4 data:float +lbl_801D5314 = .sdata2:0x801D5314; // type:object size:0x4 data:float +lbl_801D5318 = .sdata2:0x801D5318; // type:object size:0x4 data:float +lbl_801D531C = .sdata2:0x801D531C; // type:object size:0x4 data:float +lbl_801D5320 = .sdata2:0x801D5320; // type:object size:0x4 data:float +lbl_801D5324 = .sdata2:0x801D5324; // type:object size:0x4 data:float +lbl_801D5328 = .sdata2:0x801D5328; // type:object size:0x8 data:double +lbl_801D5330 = .sdata2:0x801D5330; // type:object size:0x4 data:4byte +lbl_801D5334 = .sdata2:0x801D5334; // type:object size:0x4 data:4byte +lbl_801D5338 = .sdata2:0x801D5338; // type:object size:0x1 data:byte +lbl_801D5339 = .sdata2:0x801D5339; // type:object size:0x1 data:byte +lbl_801D533C = .sdata2:0x801D533C; // type:object size:0x4 data:float +lbl_801D5340 = .sdata2:0x801D5340; // type:object size:0x4 data:float +lbl_801D5344 = .sdata2:0x801D5344; // type:object size:0x4 data:float +lbl_801D5348 = .sdata2:0x801D5348; // type:object size:0x4 data:float +lbl_801D534C = .sdata2:0x801D534C; // type:object size:0x4 data:float +lbl_801D5350 = .sdata2:0x801D5350; // type:object size:0x4 data:float +lbl_801D5354 = .sdata2:0x801D5354; // type:object size:0x4 data:float +lbl_801D5358 = .sdata2:0x801D5358; // type:object size:0x8 data:float +lbl_801D5360 = .sdata2:0x801D5360; // type:object size:0x4 data:float +lbl_801D5364 = .sdata2:0x801D5364; // type:object size:0x4 data:float +lbl_801D5368 = .sdata2:0x801D5368; // type:object size:0x4 data:float +lbl_801D536C = .sdata2:0x801D536C; // type:object size:0x4 data:float +lbl_801D5370 = .sdata2:0x801D5370; // type:object size:0x8 +lbl_801D5378 = .sdata2:0x801D5378; // type:object size:0x4 data:float +lbl_801D537C = .sdata2:0x801D537C; // type:object size:0x4 data:float +lbl_801D5380 = .sdata2:0x801D5380; // type:object size:0x4 data:float +lbl_801D5388 = .sdata2:0x801D5388; // type:object size:0x8 data:double +lbl_801D5390 = .sdata2:0x801D5390; // type:object size:0x8 data:double +lbl_801D5398 = .sdata2:0x801D5398; // type:object size:0x4 data:float +lbl_801D539C = .sdata2:0x801D539C; // type:object size:0x4 data:float +lbl_801D53A0 = .sdata2:0x801D53A0; // type:object size:0x4 data:float +lbl_801D53A8 = .sdata2:0x801D53A8; // type:object size:0x8 data:double +lbl_801D53B0 = .sdata2:0x801D53B0; // type:object size:0x4 data:float +lbl_801D53B4 = .sdata2:0x801D53B4; // type:object size:0x4 data:float +lbl_801D53B8 = .sdata2:0x801D53B8; // type:object size:0x4 data:float +lbl_801D53BC = .sdata2:0x801D53BC; // type:object size:0x4 data:float +lbl_801D53C0 = .sdata2:0x801D53C0; // type:object size:0x4 data:float +lbl_801D53C4 = .sdata2:0x801D53C4; // type:object size:0x4 data:float +lbl_801D53C8 = .sdata2:0x801D53C8; // type:object size:0x4 data:float +lbl_801D53CC = .sdata2:0x801D53CC; // type:object size:0x4 data:float +lbl_801D53D0 = .sdata2:0x801D53D0; // type:object size:0x8 data:double +lbl_801D53D8 = .sdata2:0x801D53D8; // type:object size:0x8 data:double +lbl_801D53E0 = .sdata2:0x801D53E0; // type:object size:0x4 data:float +lbl_801D53E8 = .sdata2:0x801D53E8; // type:object size:0x8 data:double +lbl_801D53F0 = .sdata2:0x801D53F0; // type:object size:0x4 data:float +lbl_801D53F4 = .sdata2:0x801D53F4; // type:object size:0x4 data:float +lbl_801D53F8 = .sdata2:0x801D53F8; // type:object size:0x4 data:float +lbl_801D53FC = .sdata2:0x801D53FC; // type:object size:0x4 data:float +lbl_801D5400 = .sdata2:0x801D5400; // type:object size:0x4 data:float +lbl_801D5404 = .sdata2:0x801D5404; // type:object size:0x4 data:float +lbl_801D5408 = .sdata2:0x801D5408; // type:object size:0x4 data:float +lbl_801D540C = .sdata2:0x801D540C; // type:object size:0x4 data:float +lbl_801D5410 = .sdata2:0x801D5410; // type:object size:0x4 data:float +lbl_801D5414 = .sdata2:0x801D5414; // type:object size:0x4 data:float +lbl_801D5418 = .sdata2:0x801D5418; // type:object size:0x4 data:float +lbl_801D541C = .sdata2:0x801D541C; // type:object size:0x4 data:float +lbl_801D5420 = .sdata2:0x801D5420; // type:object size:0x4 data:float +lbl_801D5428 = .sdata2:0x801D5428; // type:object size:0x8 data:double +lbl_801D5430 = .sdata2:0x801D5430; // type:object size:0x8 data:double +lbl_801D5438 = .sdata2:0x801D5438; // type:object size:0x8 data:float +lbl_801D5440 = .sdata2:0x801D5440; // type:object size:0x4 data:float +lbl_801D5444 = .sdata2:0x801D5444; // type:object size:0x4 data:float +lbl_801D5448 = .sdata2:0x801D5448; // type:object size:0x4 data:float +lbl_801D544C = .sdata2:0x801D544C; // type:object size:0x4 data:float +lbl_801D5450 = .sdata2:0x801D5450; // type:object size:0x4 data:float +lbl_801D5454 = .sdata2:0x801D5454; // type:object size:0x4 data:float +lbl_801D5458 = .sdata2:0x801D5458; // type:object size:0x4 data:float +lbl_801D545C = .sdata2:0x801D545C; // type:object size:0x4 data:float +lbl_801D5460 = .sdata2:0x801D5460; // type:object size:0x4 data:float +lbl_801D5464 = .sdata2:0x801D5464; // type:object size:0x4 data:float +lbl_801D5468 = .sdata2:0x801D5468; // type:object size:0x4 data:float +lbl_801D546C = .sdata2:0x801D546C; // type:object size:0x4 data:float +lbl_801D5470 = .sdata2:0x801D5470; // type:object size:0x4 data:float +lbl_801D5474 = .sdata2:0x801D5474; // type:object size:0x4 data:float +lbl_801D5478 = .sdata2:0x801D5478; // type:object size:0x4 data:float +lbl_801D547C = .sdata2:0x801D547C; // type:object size:0x4 data:float +lbl_801D5480 = .sdata2:0x801D5480; // type:object size:0x8 data:double +lbl_801D5488 = .sdata2:0x801D5488; // type:object size:0x4 data:float +lbl_801D548C = .sdata2:0x801D548C; // type:object size:0x4 data:float +lbl_801D5490 = .sdata2:0x801D5490; // type:object size:0x4 data:float +lbl_801D5494 = .sdata2:0x801D5494; // type:object size:0x4 data:float +lbl_801D5498 = .sdata2:0x801D5498; // type:object size:0x4 data:float +lbl_801D549C = .sdata2:0x801D549C; // type:object size:0x4 data:float +lbl_801D54A0 = .sdata2:0x801D54A0; // type:object size:0x4 data:float +lbl_801D54A4 = .sdata2:0x801D54A4; // type:object size:0x4 data:float +lbl_801D54A8 = .sdata2:0x801D54A8; // type:object size:0x8 data:double +lbl_801D54B0 = .sdata2:0x801D54B0; // type:object size:0x8 data:double +lbl_801D54B8 = .sdata2:0x801D54B8; // type:object size:0x4 data:float +lbl_801D54C0 = .sdata2:0x801D54C0; // type:object size:0x8 data:double +lbl_801D54C8 = .sdata2:0x801D54C8; // type:object size:0x8 data:float +lbl_801D54D0 = .sdata2:0x801D54D0; // type:object size:0x8 +lbl_801D54D8 = .sdata2:0x801D54D8; // type:object size:0x4 data:float +lbl_801D54DC = .sdata2:0x801D54DC; // type:object size:0x4 data:float +lbl_801D54E0 = .sdata2:0x801D54E0; // type:object size:0x4 data:float +lbl_801D54E4 = .sdata2:0x801D54E4; // type:object size:0x4 data:float +lbl_801D54E8 = .sdata2:0x801D54E8; // type:object size:0x4 data:float +lbl_801D54EC = .sdata2:0x801D54EC; // type:object size:0x4 data:float +lbl_801D54F0 = .sdata2:0x801D54F0; // type:object size:0x8 data:double +lbl_801D54F8 = .sdata2:0x801D54F8; // type:object size:0x8 data:double +lbl_801D5500 = .sdata2:0x801D5500; // type:object size:0x8 data:double +lbl_801D5508 = .sdata2:0x801D5508; // type:object size:0x4 data:float +lbl_801D550C = .sdata2:0x801D550C; // type:object size:0x4 data:float +lbl_801D5510 = .sdata2:0x801D5510; // type:object size:0x4 data:float +lbl_801D5514 = .sdata2:0x801D5514; // type:object size:0x4 data:4byte +lbl_801D5518 = .sdata2:0x801D5518; // type:object size:0x4 data:4byte +lbl_801D551C = .sdata2:0x801D551C; // type:object size:0x4 data:float +lbl_801D5520 = .sdata2:0x801D5520; // type:object size:0x4 data:float +lbl_801D5524 = .sdata2:0x801D5524; // type:object size:0x4 data:float +lbl_801D5528 = .sdata2:0x801D5528; // type:object size:0x4 data:float +lbl_801D552C = .sdata2:0x801D552C; // type:object size:0x4 data:4byte +lbl_801D5530 = .sdata2:0x801D5530; // type:object size:0x4 data:4byte +lbl_801D5534 = .sdata2:0x801D5534; // type:object size:0x4 data:float +lbl_801D5538 = .sdata2:0x801D5538; // type:object size:0x4 data:float +lbl_801D553C = .sdata2:0x801D553C; // type:object size:0x4 data:float +lbl_801D5540 = .sdata2:0x801D5540; // type:object size:0x4 data:float +lbl_801D5544 = .sdata2:0x801D5544; // type:object size:0x4 data:float +lbl_801D5548 = .sdata2:0x801D5548; // type:object size:0x8 data:double +lbl_801D5550 = .sdata2:0x801D5550; // type:object size:0x4 data:float +lbl_801D5558 = .sdata2:0x801D5558; // type:object size:0x8 data:double +lbl_801D5560 = .sdata2:0x801D5560; // type:object size:0x8 data:double +lbl_801D5568 = .sdata2:0x801D5568; // type:object size:0x8 data:double +lbl_801D5570 = .sdata2:0x801D5570; // type:object size:0x4 data:float +lbl_801D5574 = .sdata2:0x801D5574; // type:object size:0x4 data:float +lbl_801D5578 = .sdata2:0x801D5578; // type:object size:0x4 data:float +lbl_801D557C = .sdata2:0x801D557C; // type:object size:0x4 data:float +lbl_801D5580 = .sdata2:0x801D5580; // type:object size:0x4 data:float +lbl_801D5584 = .sdata2:0x801D5584; // type:object size:0x4 data:float +lbl_801D5588 = .sdata2:0x801D5588; // type:object size:0x4 data:float +lbl_801D558C = .sdata2:0x801D558C; // type:object size:0x4 data:float +lbl_801D5590 = .sdata2:0x801D5590; // type:object size:0x4 data:float +lbl_801D5594 = .sdata2:0x801D5594; // type:object size:0x4 data:float +lbl_801D5598 = .sdata2:0x801D5598; // type:object size:0x4 data:float +lbl_801D55A0 = .sdata2:0x801D55A0; // type:object size:0x8 data:double +lbl_801D55A8 = .sdata2:0x801D55A8; // type:object size:0x4 data:float +lbl_801D55AC = .sdata2:0x801D55AC; // type:object size:0x4 data:float +lbl_801D55B0 = .sdata2:0x801D55B0; // type:object size:0x4 data:float +lbl_801D55B4 = .sdata2:0x801D55B4; // type:object size:0x4 data:float +lbl_801D55B8 = .sdata2:0x801D55B8; // type:object size:0x4 data:float +lbl_801D55BC = .sdata2:0x801D55BC; // type:object size:0x4 data:float +lbl_801D55C0 = .sdata2:0x801D55C0; // type:object size:0x4 data:float +lbl_801D55C4 = .sdata2:0x801D55C4; // type:object size:0x4 data:float +lbl_801D55C8 = .sdata2:0x801D55C8; // type:object size:0x4 data:float +lbl_801D55CC = .sdata2:0x801D55CC; // type:object size:0x4 data:float +lbl_801D55D0 = .sdata2:0x801D55D0; // type:object size:0x4 data:float +lbl_801D55D4 = .sdata2:0x801D55D4; // type:object size:0x4 data:float +lbl_801D55D8 = .sdata2:0x801D55D8; // type:object size:0x4 data:float +lbl_801D55DC = .sdata2:0x801D55DC; // type:object size:0x4 data:float +lbl_801D55E0 = .sdata2:0x801D55E0; // type:object size:0x4 data:float +lbl_801D55E4 = .sdata2:0x801D55E4; // type:object size:0x4 data:float +lbl_801D55E8 = .sdata2:0x801D55E8; // type:object size:0x4 data:float +lbl_801D55EC = .sdata2:0x801D55EC; // type:object size:0x4 data:float +lbl_801D55F0 = .sdata2:0x801D55F0; // type:object size:0x8 data:float +lbl_801D55F8 = .sdata2:0x801D55F8; // type:object size:0x4 data:float +lbl_801D55FC = .sdata2:0x801D55FC; // type:object size:0x4 data:float +lbl_801D5600 = .sdata2:0x801D5600; // type:object size:0x4 data:float +lbl_801D5604 = .sdata2:0x801D5604; // type:object size:0x4 data:float +lbl_801D5608 = .sdata2:0x801D5608; // type:object size:0x4 data:float +lbl_801D560C = .sdata2:0x801D560C; // type:object size:0x4 data:float +lbl_801D5610 = .sdata2:0x801D5610; // type:object size:0x4 data:float +lbl_801D5614 = .sdata2:0x801D5614; // type:object size:0x4 data:float +lbl_801D5618 = .sdata2:0x801D5618; // type:object size:0x4 data:float +lbl_801D561C = .sdata2:0x801D561C; // type:object size:0x4 data:float +lbl_801D5620 = .sdata2:0x801D5620; // type:object size:0x4 data:float +lbl_801D5624 = .sdata2:0x801D5624; // type:object size:0x4 data:float +lbl_801D5628 = .sdata2:0x801D5628; // type:object size:0x8 data:double +lbl_801D5630 = .sdata2:0x801D5630; // type:object size:0x8 data:double +lbl_801D5638 = .sdata2:0x801D5638; // type:object size:0x4 data:float +lbl_801D5640 = .sdata2:0x801D5640; // type:object size:0x8 data:double +lbl_801D5648 = .sdata2:0x801D5648; // type:object size:0x8 data:double +lbl_801D5650 = .sdata2:0x801D5650; // type:object size:0x8 data:double +lbl_801D5658 = .sdata2:0x801D5658; // type:object size:0x4 data:float +lbl_801D5660 = .sdata2:0x801D5660; // type:object size:0x8 data:double +lbl_801D5668 = .sdata2:0x801D5668; // type:object size:0x4 data:float +lbl_801D566C = .sdata2:0x801D566C; // type:object size:0x4 data:float +lbl_801D5670 = .sdata2:0x801D5670; // type:object size:0x4 data:float +lbl_801D5674 = .sdata2:0x801D5674; // type:object size:0x4 data:float +lbl_801D5678 = .sdata2:0x801D5678; // type:object size:0x4 data:float +lbl_801D567C = .sdata2:0x801D567C; // type:object size:0x4 data:float +lbl_801D5680 = .sdata2:0x801D5680; // type:object size:0x4 data:float +lbl_801D5684 = .sdata2:0x801D5684; // type:object size:0x4 data:float +lbl_801D5688 = .sdata2:0x801D5688; // type:object size:0x4 data:float +lbl_801D568C = .sdata2:0x801D568C; // type:object size:0x4 data:float +lbl_801D5690 = .sdata2:0x801D5690; // type:object size:0x4 data:float +lbl_801D5694 = .sdata2:0x801D5694; // type:object size:0x4 data:float +lbl_801D5698 = .sdata2:0x801D5698; // type:object size:0x8 data:float +lbl_801D56A0 = .sdata2:0x801D56A0; // type:object size:0x4 data:float +lbl_801D56A4 = .sdata2:0x801D56A4; // type:object size:0x4 data:float +lbl_801D56A8 = .sdata2:0x801D56A8; // type:object size:0x4 data:float +lbl_801D56AC = .sdata2:0x801D56AC; // type:object size:0x4 data:float +lbl_801D56B0 = .sdata2:0x801D56B0; // type:object size:0x4 data:float +lbl_801D56B4 = .sdata2:0x801D56B4; // type:object size:0x4 data:float +lbl_801D56B8 = .sdata2:0x801D56B8; // type:object size:0x4 data:float +lbl_801D56BC = .sdata2:0x801D56BC; // type:object size:0x4 data:float +lbl_801D56C0 = .sdata2:0x801D56C0; // type:object size:0x4 data:float +lbl_801D56C8 = .sdata2:0x801D56C8; // type:object size:0x8 data:double +lbl_801D56D0 = .sdata2:0x801D56D0; // type:object size:0x8 data:double +lbl_801D56D8 = .sdata2:0x801D56D8; // type:object size:0x8 data:double +lbl_801D56E0 = .sdata2:0x801D56E0; // type:object size:0x4 data:float +lbl_801D56E4 = .sdata2:0x801D56E4; // type:object size:0x4 data:float +lbl_801D56E8 = .sdata2:0x801D56E8; // type:object size:0x4 data:float +lbl_801D56EC = .sdata2:0x801D56EC; // type:object size:0x4 data:float +lbl_801D56F0 = .sdata2:0x801D56F0; // type:object size:0x8 data:double +lbl_801D56F8 = .sdata2:0x801D56F8; // type:object size:0x8 data:double +lbl_801D5700 = .sdata2:0x801D5700; // type:object size:0x4 data:float +lbl_801D5704 = .sdata2:0x801D5704; // type:object size:0x4 data:float +lbl_801D5708 = .sdata2:0x801D5708; // type:object size:0x4 data:float +lbl_801D570C = .sdata2:0x801D570C; // type:object size:0x4 data:float +lbl_801D5710 = .sdata2:0x801D5710; // type:object size:0x4 data:float +lbl_801D5714 = .sdata2:0x801D5714; // type:object size:0x4 data:float +lbl_801D5718 = .sdata2:0x801D5718; // type:object size:0x4 data:float +lbl_801D5720 = .sdata2:0x801D5720; // type:object size:0x8 data:double +lbl_801D5728 = .sdata2:0x801D5728; // type:object size:0x4 data:float +lbl_801D572C = .sdata2:0x801D572C; // type:object size:0x4 data:float +lbl_801D5730 = .sdata2:0x801D5730; // type:object size:0x4 data:float +lbl_801D5734 = .sdata2:0x801D5734; // type:object size:0x4 data:float +lbl_801D5738 = .sdata2:0x801D5738; // type:object size:0x4 data:float +lbl_801D573C = .sdata2:0x801D573C; // type:object size:0x4 data:float +lbl_801D5740 = .sdata2:0x801D5740; // type:object size:0x4 data:float +lbl_801D5744 = .sdata2:0x801D5744; // type:object size:0x4 data:float +lbl_801D5748 = .sdata2:0x801D5748; // type:object size:0x4 data:float +lbl_801D574C = .sdata2:0x801D574C; // type:object size:0x4 data:float +lbl_801D5750 = .sdata2:0x801D5750; // type:object size:0x4 data:float +lbl_801D5754 = .sdata2:0x801D5754; // type:object size:0x4 data:float +lbl_801D5758 = .sdata2:0x801D5758; // type:object size:0x4 data:float +lbl_801D575C = .sdata2:0x801D575C; // type:object size:0x4 data:float +lbl_801D5760 = .sdata2:0x801D5760; // type:object size:0x8 data:float +lbl_801D5768 = .sdata2:0x801D5768; // type:object size:0x4 data:float +lbl_801D576C = .sdata2:0x801D576C; // type:object size:0x4 data:float +lbl_801D5770 = .sdata2:0x801D5770; // type:object size:0x4 data:float +lbl_801D5774 = .sdata2:0x801D5774; // type:object size:0x4 data:float +lbl_801D5778 = .sdata2:0x801D5778; // type:object size:0x4 data:float +lbl_801D577C = .sdata2:0x801D577C; // type:object size:0x4 data:float +lbl_801D5780 = .sdata2:0x801D5780; // type:object size:0x4 data:float +lbl_801D5784 = .sdata2:0x801D5784; // type:object size:0x4 data:float +lbl_801D5788 = .sdata2:0x801D5788; // type:object size:0x4 data:float +lbl_801D578C = .sdata2:0x801D578C; // type:object size:0x4 data:float +lbl_801D5790 = .sdata2:0x801D5790; // type:object size:0x4 data:float +lbl_801D5794 = .sdata2:0x801D5794; // type:object size:0x4 data:float +lbl_801D5798 = .sdata2:0x801D5798; // type:object size:0x8 data:double +lbl_801D57A0 = .sdata2:0x801D57A0; // type:object size:0x8 data:double +lbl_801D57A8 = .sdata2:0x801D57A8; // type:object size:0x8 data:double +lbl_801D57B0 = .sdata2:0x801D57B0; // type:object size:0x4 data:float +lbl_801D57B4 = .sdata2:0x801D57B4; // type:object size:0x4 data:float +lbl_801D57B8 = .sdata2:0x801D57B8; // type:object size:0x4 data:float +lbl_801D57BC = .sdata2:0x801D57BC; // type:object size:0x4 data:float +lbl_801D57C0 = .sdata2:0x801D57C0; // type:object size:0x4 data:float +lbl_801D57C4 = .sdata2:0x801D57C4; // type:object size:0x4 data:float +lbl_801D57C8 = .sdata2:0x801D57C8; // type:object size:0x4 data:float +lbl_801D57D0 = .sdata2:0x801D57D0; // type:object size:0x8 data:double +lbl_801D57D8 = .sdata2:0x801D57D8; // type:object size:0x8 data:double +lbl_801D57E0 = .sdata2:0x801D57E0; // type:object size:0x8 data:double +lbl_801D57E8 = .sdata2:0x801D57E8; // type:object size:0x4 data:float +lbl_801D57EC = .sdata2:0x801D57EC; // type:object size:0x4 data:float +lbl_801D57F0 = .sdata2:0x801D57F0; // type:object size:0x4 data:float +lbl_801D57F4 = .sdata2:0x801D57F4; // type:object size:0x4 data:float +lbl_801D57F8 = .sdata2:0x801D57F8; // type:object size:0x4 data:float +lbl_801D57FC = .sdata2:0x801D57FC; // type:object size:0x4 data:float +lbl_801D5800 = .sdata2:0x801D5800; // type:object size:0x4 data:float +lbl_801D5804 = .sdata2:0x801D5804; // type:object size:0x4 data:float +lbl_801D5808 = .sdata2:0x801D5808; // type:object size:0x4 data:float +lbl_801D580C = .sdata2:0x801D580C; // type:object size:0x4 data:float +lbl_801D5810 = .sdata2:0x801D5810; // type:object size:0x8 data:double +lbl_801D5818 = .sdata2:0x801D5818; // type:object size:0x4 data:float +lbl_801D581C = .sdata2:0x801D581C; // type:object size:0x4 data:float +lbl_801D5820 = .sdata2:0x801D5820; // type:object size:0x4 data:float +lbl_801D5824 = .sdata2:0x801D5824; // type:object size:0x4 data:float +lbl_801D5828 = .sdata2:0x801D5828; // type:object size:0x4 data:float +lbl_801D582C = .sdata2:0x801D582C; // type:object size:0x4 data:float +lbl_801D5830 = .sdata2:0x801D5830; // type:object size:0x4 data:float +lbl_801D5834 = .sdata2:0x801D5834; // type:object size:0x4 data:float +lbl_801D5838 = .sdata2:0x801D5838; // type:object size:0x4 data:float +lbl_801D583C = .sdata2:0x801D583C; // type:object size:0x4 data:float +lbl_801D5840 = .sdata2:0x801D5840; // type:object size:0x4 data:float +lbl_801D5844 = .sdata2:0x801D5844; // type:object size:0x4 data:float +lbl_801D5848 = .sdata2:0x801D5848; // type:object size:0x4 data:float +lbl_801D584C = .sdata2:0x801D584C; // type:object size:0x4 data:float +lbl_801D5850 = .sdata2:0x801D5850; // type:object size:0x4 data:float +lbl_801D5854 = .sdata2:0x801D5854; // type:object size:0x4 data:float +lbl_801D5858 = .sdata2:0x801D5858; // type:object size:0x4 data:float +lbl_801D585C = .sdata2:0x801D585C; // type:object size:0x4 data:float +lbl_801D5860 = .sdata2:0x801D5860; // type:object size:0x4 data:float +lbl_801D5864 = .sdata2:0x801D5864; // type:object size:0x4 data:float +lbl_801D5868 = .sdata2:0x801D5868; // type:object size:0x4 data:float +lbl_801D586C = .sdata2:0x801D586C; // type:object size:0x4 data:float +lbl_801D5870 = .sdata2:0x801D5870; // type:object size:0x4 data:float +lbl_801D5874 = .sdata2:0x801D5874; // type:object size:0x4 data:float +lbl_801D5878 = .sdata2:0x801D5878; // type:object size:0x8 data:double +lbl_801D5880 = .sdata2:0x801D5880; // type:object size:0x8 data:double +lbl_801D5888 = .sdata2:0x801D5888; // type:object size:0x4 data:float +lbl_801D588C = .sdata2:0x801D588C; // type:object size:0x4 data:float +lbl_801D5890 = .sdata2:0x801D5890; // type:object size:0x4 data:float +lbl_801D5894 = .sdata2:0x801D5894; // type:object size:0x4 data:float +lbl_801D5898 = .sdata2:0x801D5898; // type:object size:0x4 data:float +lbl_801D58A0 = .sdata2:0x801D58A0; // type:object size:0x8 data:double +lbl_801D58A8 = .sdata2:0x801D58A8; // type:object size:0x4 data:float +lbl_801D58AC = .sdata2:0x801D58AC; // type:object size:0x4 data:float +lbl_801D58B0 = .sdata2:0x801D58B0; // type:object size:0x4 data:float +lbl_801D58B4 = .sdata2:0x801D58B4; // type:object size:0x4 data:float +lbl_801D58B8 = .sdata2:0x801D58B8; // type:object size:0x4 data:float +lbl_801D58BC = .sdata2:0x801D58BC; // type:object size:0x4 data:float +lbl_801D58C0 = .sdata2:0x801D58C0; // type:object size:0x4 data:float +lbl_801D58C4 = .sdata2:0x801D58C4; // type:object size:0x4 data:float +lbl_801D58C8 = .sdata2:0x801D58C8; // type:object size:0x4 data:float +lbl_801D58CC = .sdata2:0x801D58CC; // type:object size:0x4 data:float +lbl_801D58D0 = .sdata2:0x801D58D0; // type:object size:0x4 data:float +lbl_801D58D8 = .sdata2:0x801D58D8; // type:object size:0x8 data:double +lbl_801D58E0 = .sdata2:0x801D58E0; // type:object size:0x4 data:float +lbl_801D58E4 = .sdata2:0x801D58E4; // type:object size:0x4 data:float +lbl_801D58E8 = .sdata2:0x801D58E8; // type:object size:0x4 data:float +lbl_801D58EC = .sdata2:0x801D58EC; // type:object size:0x4 data:float +lbl_801D58F0 = .sdata2:0x801D58F0; // type:object size:0x4 data:float +lbl_801D58F4 = .sdata2:0x801D58F4; // type:object size:0x4 data:float +lbl_801D58F8 = .sdata2:0x801D58F8; // type:object size:0x4 data:float +lbl_801D58FC = .sdata2:0x801D58FC; // type:object size:0x4 data:float +lbl_801D5900 = .sdata2:0x801D5900; // type:object size:0x4 data:float +lbl_801D5904 = .sdata2:0x801D5904; // type:object size:0x4 data:float +lbl_801D5908 = .sdata2:0x801D5908; // type:object size:0x4 data:float +lbl_801D590C = .sdata2:0x801D590C; // type:object size:0x4 data:float +lbl_801D5910 = .sdata2:0x801D5910; // type:object size:0x4 data:float +lbl_801D5914 = .sdata2:0x801D5914; // type:object size:0x4 data:float +lbl_801D5918 = .sdata2:0x801D5918; // type:object size:0x4 data:float +lbl_801D591C = .sdata2:0x801D591C; // type:object size:0x4 data:float +lbl_801D5920 = .sdata2:0x801D5920; // type:object size:0x4 data:float +lbl_801D5924 = .sdata2:0x801D5924; // type:object size:0x4 data:float +lbl_801D5928 = .sdata2:0x801D5928; // type:object size:0x4 data:float +lbl_801D5930 = .sdata2:0x801D5930; // type:object size:0x8 data:double +lbl_801D5938 = .sdata2:0x801D5938; // type:object size:0x4 data:float +lbl_801D5940 = .sdata2:0x801D5940; // type:object size:0x8 data:double +lbl_801D5948 = .sdata2:0x801D5948; // type:object size:0x4 data:float +lbl_801D594C = .sdata2:0x801D594C; // type:object size:0x4 data:float +lbl_801D5950 = .sdata2:0x801D5950; // type:object size:0x4 data:float +lbl_801D5954 = .sdata2:0x801D5954; // type:object size:0x4 data:float +lbl_801D5958 = .sdata2:0x801D5958; // type:object size:0x4 data:float +lbl_801D5960 = .sdata2:0x801D5960; // type:object size:0x8 data:double +lbl_801D5968 = .sdata2:0x801D5968; // type:object size:0x4 data:float +lbl_801D596C = .sdata2:0x801D596C; // type:object size:0x4 data:float +lbl_801D5970 = .sdata2:0x801D5970; // type:object size:0x4 data:float +lbl_801D5974 = .sdata2:0x801D5974; // type:object size:0x4 data:float +lbl_801D5978 = .sdata2:0x801D5978; // type:object size:0x4 data:float +lbl_801D597C = .sdata2:0x801D597C; // type:object size:0x4 data:float +lbl_801D5980 = .sdata2:0x801D5980; // type:object size:0x4 data:float +lbl_801D5984 = .sdata2:0x801D5984; // type:object size:0x4 data:float +lbl_801D5988 = .sdata2:0x801D5988; // type:object size:0x4 data:float +lbl_801D598C = .sdata2:0x801D598C; // type:object size:0x4 data:float +lbl_801D5990 = .sdata2:0x801D5990; // type:object size:0x4 data:float +lbl_801D5994 = .sdata2:0x801D5994; // type:object size:0x4 data:float +lbl_801D5998 = .sdata2:0x801D5998; // type:object size:0x1 data:byte +lbl_801D5999 = .sdata2:0x801D5999; // type:object size:0x1 data:byte +lbl_801D599A = .sdata2:0x801D599A; // type:object size:0x1 data:byte +lbl_801D599B = .sdata2:0x801D599B; // type:object size:0x1 data:byte +lbl_801D599C = .sdata2:0x801D599C; // type:object size:0x4 data:float +lbl_801D59A0 = .sdata2:0x801D59A0; // type:object size:0x4 data:float +lbl_801D59A4 = .sdata2:0x801D59A4; // type:object size:0x4 data:float +lbl_801D59A8 = .sdata2:0x801D59A8; // type:object size:0x4 data:float +lbl_801D59AC = .sdata2:0x801D59AC; // type:object size:0x4 data:float +lbl_801D59B0 = .sdata2:0x801D59B0; // type:object size:0x8 data:double +lbl_801D59B8 = .sdata2:0x801D59B8; // type:object size:0x8 data:double +lbl_801D59C0 = .sdata2:0x801D59C0; // type:object size:0x4 data:float +lbl_801D59C4 = .sdata2:0x801D59C4; // type:object size:0x4 data:float +lbl_801D59C8 = .sdata2:0x801D59C8; // type:object size:0x4 data:float +lbl_801D59CC = .sdata2:0x801D59CC; // type:object size:0x4 data:float +lbl_801D59D0 = .sdata2:0x801D59D0; // type:object size:0x4 data:float +lbl_801D59D4 = .sdata2:0x801D59D4; // type:object size:0x4 data:float +lbl_801D59D8 = .sdata2:0x801D59D8; // type:object size:0x8 data:double +lbl_801D59E0 = .sdata2:0x801D59E0; // type:object size:0x4 data:float +lbl_801D59E4 = .sdata2:0x801D59E4; // type:object size:0x4 data:float +lbl_801D59E8 = .sdata2:0x801D59E8; // type:object size:0x8 data:double +lbl_801D59F0 = .sdata2:0x801D59F0; // type:object size:0x8 data:float +lbl_801D59F8 = .sdata2:0x801D59F8; // type:object size:0x4 data:float +lbl_801D59FC = .sdata2:0x801D59FC; // type:object size:0x4 data:float +lbl_801D5A00 = .sdata2:0x801D5A00; // type:object size:0x4 data:float +lbl_801D5A04 = .sdata2:0x801D5A04; // type:object size:0x4 data:float +lbl_801D5A08 = .sdata2:0x801D5A08; // type:object size:0x4 data:float +lbl_801D5A0C = .sdata2:0x801D5A0C; // type:object size:0x4 data:float +lbl_801D5A10 = .sdata2:0x801D5A10; // type:object size:0x4 data:float +lbl_801D5A14 = .sdata2:0x801D5A14; // type:object size:0x4 data:float +lbl_801D5A18 = .sdata2:0x801D5A18; // type:object size:0x4 data:float +lbl_801D5A1C = .sdata2:0x801D5A1C; // type:object size:0x4 data:float +lbl_801D5A20 = .sdata2:0x801D5A20; // type:object size:0x2 data:2byte +lbl_801D5A22 = .sdata2:0x801D5A22; // type:object size:0x2 data:2byte +lbl_801D5A24 = .sdata2:0x801D5A24; // type:object size:0x2 data:2byte +lbl_801D5A28 = .sdata2:0x801D5A28; // type:object size:0x4 data:float +lbl_801D5A2C = .sdata2:0x801D5A2C; // type:object size:0x4 data:float +lbl_801D5A30 = .sdata2:0x801D5A30; // type:object size:0x4 data:float +lbl_801D5A34 = .sdata2:0x801D5A34; // type:object size:0x4 data:float +lbl_801D5A38 = .sdata2:0x801D5A38; // type:object size:0x4 data:float +lbl_801D5A3C = .sdata2:0x801D5A3C; // type:object size:0x4 data:float +lbl_801D5A40 = .sdata2:0x801D5A40; // type:object size:0x4 data:float +lbl_801D5A44 = .sdata2:0x801D5A44; // type:object size:0x4 data:float +lbl_801D5A48 = .sdata2:0x801D5A48; // type:object size:0x8 data:double +lbl_801D5A50 = .sdata2:0x801D5A50; // type:object size:0x8 data:double +lbl_801D5A58 = .sdata2:0x801D5A58; // type:object size:0x8 data:double +lbl_801D5A60 = .sdata2:0x801D5A60; // type:object size:0x4 data:float +lbl_801D5A64 = .sdata2:0x801D5A64; // type:object size:0x4 data:float +lbl_801D5A68 = .sdata2:0x801D5A68; // type:object size:0x4 data:float +lbl_801D5A6C = .sdata2:0x801D5A6C; // type:object size:0x4 data:float +lbl_801D5A70 = .sdata2:0x801D5A70; // type:object size:0x4 data:float +lbl_801D5A74 = .sdata2:0x801D5A74; // type:object size:0x4 data:float +lbl_801D5A78 = .sdata2:0x801D5A78; // type:object size:0x4 data:float +lbl_801D5A7C = .sdata2:0x801D5A7C; // type:object size:0x4 data:float +lbl_801D5A80 = .sdata2:0x801D5A80; // type:object size:0x4 data:float +lbl_801D5A88 = .sdata2:0x801D5A88; // type:object size:0x8 data:double +lbl_801D5A90 = .sdata2:0x801D5A90; // type:object size:0x1 data:byte +lbl_801D5A91 = .sdata2:0x801D5A91; // type:object size:0x1 data:byte +lbl_801D5A92 = .sdata2:0x801D5A92; // type:object size:0x1 data:byte +lbl_801D5A94 = .sdata2:0x801D5A94; // type:object size:0x4 data:float +lbl_801D5A98 = .sdata2:0x801D5A98; // type:object size:0x8 data:double +lbl_801D5AA0 = .sdata2:0x801D5AA0; // type:object size:0x8 data:float +lbl_801D5AA8 = .sdata2:0x801D5AA8; // type:object size:0x8 +lbl_801D5AB0 = .sdata2:0x801D5AB0; // type:object size:0x4 data:float +lbl_801D5AB4 = .sdata2:0x801D5AB4; // type:object size:0x4 data:float +lbl_801D5AB8 = .sdata2:0x801D5AB8; // type:object size:0x4 data:float +lbl_801D5ABC = .sdata2:0x801D5ABC; // type:object size:0x4 data:float +lbl_801D5AC0 = .sdata2:0x801D5AC0; // type:object size:0x4 data:float +lbl_801D5AC4 = .sdata2:0x801D5AC4; // type:object size:0x4 data:float +lbl_801D5AC8 = .sdata2:0x801D5AC8; // type:object size:0x4 data:float +lbl_801D5ACC = .sdata2:0x801D5ACC; // type:object size:0x4 data:float +lbl_801D5AD0 = .sdata2:0x801D5AD0; // type:object size:0x4 data:float +lbl_801D5AD4 = .sdata2:0x801D5AD4; // type:object size:0x4 data:float +lbl_801D5AD8 = .sdata2:0x801D5AD8; // type:object size:0x4 data:float +lbl_801D5ADC = .sdata2:0x801D5ADC; // type:object size:0x4 data:float +lbl_801D5AE0 = .sdata2:0x801D5AE0; // type:object size:0x4 data:float +lbl_801D5AE4 = .sdata2:0x801D5AE4; // type:object size:0x4 data:float +lbl_801D5AE8 = .sdata2:0x801D5AE8; // type:object size:0x4 data:float +lbl_801D5AEC = .sdata2:0x801D5AEC; // type:object size:0x4 data:float +lbl_801D5AF0 = .sdata2:0x801D5AF0; // type:object size:0x4 data:float +lbl_801D5AF4 = .sdata2:0x801D5AF4; // type:object size:0x4 data:float +lbl_801D5AF8 = .sdata2:0x801D5AF8; // type:object size:0x4 data:float +lbl_801D5AFC = .sdata2:0x801D5AFC; // type:object size:0x4 data:float +lbl_801D5B00 = .sdata2:0x801D5B00; // type:object size:0x4 data:float +lbl_801D5B08 = .sdata2:0x801D5B08; // type:object size:0x8 data:double +lbl_801D5B10 = .sdata2:0x801D5B10; // type:object size:0x8 data:double +lbl_801D5B18 = .sdata2:0x801D5B18; // type:object size:0x4 data:float +lbl_801D5B1C = .sdata2:0x801D5B1C; // type:object size:0x4 data:float +lbl_801D5B20 = .sdata2:0x801D5B20; // type:object size:0x4 data:float +lbl_801D5B24 = .sdata2:0x801D5B24; // type:object size:0x4 data:float +lbl_801D5B28 = .sdata2:0x801D5B28; // type:object size:0x4 data:float +lbl_801D5B2C = .sdata2:0x801D5B2C; // type:object size:0x4 data:float +lbl_801D5B30 = .sdata2:0x801D5B30; // type:object size:0x4 data:float +lbl_801D5B34 = .sdata2:0x801D5B34; // type:object size:0x4 data:float +lbl_801D5B38 = .sdata2:0x801D5B38; // type:object size:0x8 data:double +lbl_801D5B40 = .sdata2:0x801D5B40; // type:object size:0x4 data:float +lbl_801D5B48 = .sdata2:0x801D5B48; // type:object size:0x8 data:double +lbl_801D5B50 = .sdata2:0x801D5B50; // type:object size:0x4 data:float +lbl_801D5B54 = .sdata2:0x801D5B54; // type:object size:0x4 data:float +lbl_801D5B58 = .sdata2:0x801D5B58; // type:object size:0x1 data:byte +lbl_801D5B59 = .sdata2:0x801D5B59; // type:object size:0x1 data:byte +lbl_801D5B5A = .sdata2:0x801D5B5A; // type:object size:0x1 data:byte +lbl_801D5B5B = .sdata2:0x801D5B5B; // type:object size:0x1 data:byte +lbl_801D5B5C = .sdata2:0x801D5B5C; // type:object size:0x1 data:byte +lbl_801D5B60 = .sdata2:0x801D5B60; // type:object size:0x4 data:float +lbl_801D5B64 = .sdata2:0x801D5B64; // type:object size:0x4 data:float +lbl_801D5B68 = .sdata2:0x801D5B68; // type:object size:0x4 data:float +lbl_801D5B6C = .sdata2:0x801D5B6C; // type:object size:0x4 data:float +lbl_801D5B70 = .sdata2:0x801D5B70; // type:object size:0x4 data:float +lbl_801D5B74 = .sdata2:0x801D5B74; // type:object size:0x4 data:float +lbl_801D5B78 = .sdata2:0x801D5B78; // type:object size:0x4 data:float +lbl_801D5B7C = .sdata2:0x801D5B7C; // type:object size:0x4 data:float +lbl_801D5B80 = .sdata2:0x801D5B80; // type:object size:0x4 data:float +lbl_801D5B84 = .sdata2:0x801D5B84; // type:object size:0x4 data:float +lbl_801D5B88 = .sdata2:0x801D5B88; // type:object size:0x4 data:float +lbl_801D5B8C = .sdata2:0x801D5B8C; // type:object size:0x4 data:float +lbl_801D5B90 = .sdata2:0x801D5B90; // type:object size:0x4 data:float +lbl_801D5B94 = .sdata2:0x801D5B94; // type:object size:0x4 data:float +lbl_801D5B98 = .sdata2:0x801D5B98; // type:object size:0x8 data:double +lbl_801D5BA0 = .sdata2:0x801D5BA0; // type:object size:0x8 data:double +lbl_801D5BA8 = .sdata2:0x801D5BA8; // type:object size:0x4 data:float +lbl_801D5BB0 = .sdata2:0x801D5BB0; // type:object size:0x8 data:double +lbl_801D5BB8 = .sdata2:0x801D5BB8; // type:object size:0x8 data:double +lbl_801D5BC0 = .sdata2:0x801D5BC0; // type:object size:0x8 data:double +lbl_801D5BC8 = .sdata2:0x801D5BC8; // type:object size:0x8 data:double +lbl_801D5BD0 = .sdata2:0x801D5BD0; // type:object size:0x4 data:float +lbl_801D5BD8 = .sdata2:0x801D5BD8; // type:object size:0x8 data:double +lbl_801D5BE0 = .sdata2:0x801D5BE0; // type:object size:0x4 data:float +lbl_801D5BE4 = .sdata2:0x801D5BE4; // type:object size:0x4 data:float +lbl_801D5BE8 = .sdata2:0x801D5BE8; // type:object size:0x4 data:float +lbl_801D5BF0 = .sdata2:0x801D5BF0; // type:object size:0x8 data:double +lbl_801D5BF8 = .sdata2:0x801D5BF8; // type:object size:0x8 data:double +lbl_801D5C00 = .sdata2:0x801D5C00; // type:object size:0x4 data:float +lbl_801D5C08 = .sdata2:0x801D5C08; // type:object size:0x8 data:double +lbl_801D5C10 = .sdata2:0x801D5C10; // type:object size:0x4 data:float +lbl_801D5C14 = .sdata2:0x801D5C14; // type:object size:0x4 data:float +lbl_801D5C18 = .sdata2:0x801D5C18; // type:object size:0x4 data:float +lbl_801D5C1C = .sdata2:0x801D5C1C; // type:object size:0x4 data:float +lbl_801D5C20 = .sdata2:0x801D5C20; // type:object size:0x8 data:double +lbl_801D5C28 = .sdata2:0x801D5C28; // type:object size:0x8 data:double +lbl_801D5C30 = .sdata2:0x801D5C30; // type:object size:0x4 data:float +lbl_801D5C34 = .sdata2:0x801D5C34; // type:object size:0x4 data:float +lbl_801D5C38 = .sdata2:0x801D5C38; // type:object size:0x4 data:float +lbl_801D5C40 = .sdata2:0x801D5C40; // type:object size:0x8 data:double +lbl_801D5C48 = .sdata2:0x801D5C48; // type:object size:0x4 data:float +lbl_801D5C4C = .sdata2:0x801D5C4C; // type:object size:0x4 data:float +lbl_801D5C50 = .sdata2:0x801D5C50; // type:object size:0x4 data:float +lbl_801D5C54 = .sdata2:0x801D5C54; // type:object size:0x4 data:float +lbl_801D5C58 = .sdata2:0x801D5C58; // type:object size:0x8 data:double +lbl_801D5C60 = .sdata2:0x801D5C60; // type:object size:0x4 data:float +lbl_801D5C64 = .sdata2:0x801D5C64; // type:object size:0x4 data:float +lbl_801D5C68 = .sdata2:0x801D5C68; // type:object size:0x4 data:float +lbl_801D5C6C = .sdata2:0x801D5C6C; // type:object size:0x4 data:float +lbl_801D5C70 = .sdata2:0x801D5C70; // type:object size:0x4 data:float +lbl_801D5C74 = .sdata2:0x801D5C74; // type:object size:0x4 data:float +lbl_801D5C78 = .sdata2:0x801D5C78; // type:object size:0x4 data:float +lbl_801D5C7C = .sdata2:0x801D5C7C; // type:object size:0x4 data:float +lbl_801D5C80 = .sdata2:0x801D5C80; // type:object size:0x4 data:float +lbl_801D5C84 = .sdata2:0x801D5C84; // type:object size:0x4 data:float +lbl_801D5C88 = .sdata2:0x801D5C88; // type:object size:0x4 data:float +lbl_801D5C8C = .sdata2:0x801D5C8C; // type:object size:0x1 data:byte +lbl_801D5C8D = .sdata2:0x801D5C8D; // type:object size:0x1 data:byte +lbl_801D5C90 = .sdata2:0x801D5C90; // type:object size:0x4 data:float +lbl_801D5C98 = .sdata2:0x801D5C98; // type:object size:0x8 data:double +lbl_801D5CA0 = .sdata2:0x801D5CA0; // type:object size:0x8 data:double +lbl_801D5CA8 = .sdata2:0x801D5CA8; // type:object size:0x8 data:double +lbl_801D5CB0 = .sdata2:0x801D5CB0; // type:object size:0x8 data:double +lbl_801D5CB8 = .sdata2:0x801D5CB8; // type:object size:0x4 data:float +lbl_801D5CBC = .sdata2:0x801D5CBC; // type:object size:0x4 data:float +lbl_801D5CC0 = .sdata2:0x801D5CC0; // type:object size:0x8 data:double +lbl_801D5CC8 = .sdata2:0x801D5CC8; // type:object size:0x4 data:float +lbl_801D5CCC = .sdata2:0x801D5CCC; // type:object size:0x4 data:float +lbl_801D5CD0 = .sdata2:0x801D5CD0; // type:object size:0x8 data:double +lbl_801D5CD8 = .sdata2:0x801D5CD8; // type:object size:0x4 data:float +lbl_801D5CDC = .sdata2:0x801D5CDC; // type:object size:0x2 data:2byte +lbl_801D5CDE = .sdata2:0x801D5CDE; // type:object size:0x2 data:2byte +lbl_801D5CE0 = .sdata2:0x801D5CE0; // type:object size:0x2 data:2byte +lbl_801D5CE4 = .sdata2:0x801D5CE4; // type:object size:0x4 data:float +lbl_801D5CE8 = .sdata2:0x801D5CE8; // type:object size:0x4 data:float +lbl_801D5CEC = .sdata2:0x801D5CEC; // type:object size:0x4 data:float +lbl_801D5CF0 = .sdata2:0x801D5CF0; // type:object size:0x2 data:2byte +lbl_801D5CF2 = .sdata2:0x801D5CF2; // type:object size:0x2 data:2byte +lbl_801D5CF4 = .sdata2:0x801D5CF4; // type:object size:0x2 data:2byte +lbl_801D5CF8 = .sdata2:0x801D5CF8; // type:object size:0x4 data:float +lbl_801D5CFC = .sdata2:0x801D5CFC; // type:object size:0x4 data:float +lbl_801D5D00 = .sdata2:0x801D5D00; // type:object size:0x4 data:float +lbl_801D5D04 = .sdata2:0x801D5D04; // type:object size:0x4 data:float +lbl_801D5D08 = .sdata2:0x801D5D08; // type:object size:0x4 data:float +lbl_801D5D0C = .sdata2:0x801D5D0C; // type:object size:0x4 data:float +lbl_801D5D10 = .sdata2:0x801D5D10; // type:object size:0x4 data:float +lbl_801D5D18 = .sdata2:0x801D5D18; // type:object size:0x8 data:double +lbl_801D5D20 = .sdata2:0x801D5D20; // type:object size:0x4 data:float +lbl_801D5D24 = .sdata2:0x801D5D24; // type:object size:0x4 data:float +lbl_801D5D28 = .sdata2:0x801D5D28; // type:object size:0x4 data:float +lbl_801D5D2C = .sdata2:0x801D5D2C; // type:object size:0x4 data:float +lbl_801D5D30 = .sdata2:0x801D5D30; // type:object size:0x4 data:float +lbl_801D5D34 = .sdata2:0x801D5D34; // type:object size:0x4 data:float +lbl_801D5D38 = .sdata2:0x801D5D38; // type:object size:0x4 data:float +lbl_801D5D40 = .sdata2:0x801D5D40; // type:object size:0x8 data:double +lbl_801D5D48 = .sdata2:0x801D5D48; // type:object size:0x8 data:double +lbl_801D5D50 = .sdata2:0x801D5D50; // type:object size:0x8 data:double +lbl_801D5D58 = .sdata2:0x801D5D58; // type:object size:0x4 data:float +lbl_801D5D5C = .sdata2:0x801D5D5C; // type:object size:0x4 data:float +lbl_801D5D60 = .sdata2:0x801D5D60; // type:object size:0x4 data:float +lbl_801D5D64 = .sdata2:0x801D5D64; // type:object size:0x4 data:float +lbl_801D5D68 = .sdata2:0x801D5D68; // type:object size:0x4 data:float +lbl_801D5D6C = .sdata2:0x801D5D6C; // type:object size:0x4 data:float +lbl_801D5D70 = .sdata2:0x801D5D70; // type:object size:0x4 data:float +lbl_801D5D74 = .sdata2:0x801D5D74; // type:object size:0x4 data:float +lbl_801D5D78 = .sdata2:0x801D5D78; // type:object size:0x4 data:float +lbl_801D5D7C = .sdata2:0x801D5D7C; // type:object size:0x4 data:float +lbl_801D5D80 = .sdata2:0x801D5D80; // type:object size:0x4 data:float +lbl_801D5D84 = .sdata2:0x801D5D84; // type:object size:0x4 data:float +lbl_801D5D88 = .sdata2:0x801D5D88; // type:object size:0x4 data:float +lbl_801D5D8C = .sdata2:0x801D5D8C; // type:object size:0x4 data:float +lbl_801D5D90 = .sdata2:0x801D5D90; // type:object size:0x4 data:float +lbl_801D5D94 = .sdata2:0x801D5D94; // type:object size:0x4 data:float +lbl_801D5D98 = .sdata2:0x801D5D98; // type:object size:0x4 data:float +lbl_801D5D9C = .sdata2:0x801D5D9C; // type:object size:0x4 data:float +lbl_801D5DA0 = .sdata2:0x801D5DA0; // type:object size:0x4 data:float +lbl_801D5DA4 = .sdata2:0x801D5DA4; // type:object size:0x4 data:float +lbl_801D5DA8 = .sdata2:0x801D5DA8; // type:object size:0x8 data:double +lbl_801D5DB0 = .sdata2:0x801D5DB0; // type:object size:0x8 data:double +lbl_801D5DB8 = .sdata2:0x801D5DB8; // type:object size:0x4 data:float +lbl_801D5DC0 = .sdata2:0x801D5DC0; // type:object size:0x8 data:double +lbl_801D5DC8 = .sdata2:0x801D5DC8; // type:object size:0x8 data:double +lbl_801D5DD0 = .sdata2:0x801D5DD0; // type:object size:0x4 data:float +lbl_801D5DD4 = .sdata2:0x801D5DD4; // type:object size:0x4 data:float +lbl_801D5DD8 = .sdata2:0x801D5DD8; // type:object size:0x4 data:float +lbl_801D5DDC = .sdata2:0x801D5DDC; // type:object size:0x4 data:float +lbl_801D5DE0 = .sdata2:0x801D5DE0; // type:object size:0x4 data:float +lbl_801D5DE4 = .sdata2:0x801D5DE4; // type:object size:0x4 data:float +lbl_801D5DE8 = .sdata2:0x801D5DE8; // type:object size:0x4 data:float +lbl_801D5DEC = .sdata2:0x801D5DEC; // type:object size:0x4 data:float +lbl_801D5DF0 = .sdata2:0x801D5DF0; // type:object size:0x4 data:float +lbl_801D5DF4 = .sdata2:0x801D5DF4; // type:object size:0x4 data:float +lbl_801D5DF8 = .sdata2:0x801D5DF8; // type:object size:0x4 data:float +lbl_801D5DFC = .sdata2:0x801D5DFC; // type:object size:0x4 data:float +lbl_801D5E00 = .sdata2:0x801D5E00; // type:object size:0x4 data:float +lbl_801D5E04 = .sdata2:0x801D5E04; // type:object size:0x4 data:float +lbl_801D5E08 = .sdata2:0x801D5E08; // type:object size:0x4 data:float +lbl_801D5E0C = .sdata2:0x801D5E0C; // type:object size:0x4 data:float +lbl_801D5E10 = .sdata2:0x801D5E10; // type:object size:0x4 data:float +lbl_801D5E14 = .sdata2:0x801D5E14; // type:object size:0x4 data:float +lbl_801D5E18 = .sdata2:0x801D5E18; // type:object size:0x4 data:float +lbl_801D5E20 = .sdata2:0x801D5E20; // type:object size:0x8 data:double +lbl_801D5E28 = .sdata2:0x801D5E28; // type:object size:0x8 data:double +lbl_801D5E30 = .sdata2:0x801D5E30; // type:object size:0x8 data:double +lbl_801D5E38 = .sdata2:0x801D5E38; // type:object size:0x8 data:double +lbl_801D5E40 = .sdata2:0x801D5E40; // type:object size:0x4 data:float +lbl_801D5E44 = .sdata2:0x801D5E44; // type:object size:0x4 data:float +lbl_801D5E48 = .sdata2:0x801D5E48; // type:object size:0x4 data:float +lbl_801D5E4C = .sdata2:0x801D5E4C; // type:object size:0x4 data:float +lbl_801D5E50 = .sdata2:0x801D5E50; // type:object size:0x4 data:float +lbl_801D5E54 = .sdata2:0x801D5E54; // type:object size:0x4 data:float +lbl_801D5E58 = .sdata2:0x801D5E58; // type:object size:0x4 data:float +lbl_801D5E5C = .sdata2:0x801D5E5C; // type:object size:0x4 data:float +lbl_801D5E60 = .sdata2:0x801D5E60; // type:object size:0x4 data:float +lbl_801D5E64 = .sdata2:0x801D5E64; // type:object size:0x4 data:float +lbl_801D5E68 = .sdata2:0x801D5E68; // type:object size:0x4 data:float +lbl_801D5E6C = .sdata2:0x801D5E6C; // type:object size:0x4 data:float +lbl_801D5E70 = .sdata2:0x801D5E70; // type:object size:0x4 data:float +lbl_801D5E74 = .sdata2:0x801D5E74; // type:object size:0x4 data:float +lbl_801D5E78 = .sdata2:0x801D5E78; // type:object size:0x4 data:float +lbl_801D5E7C = .sdata2:0x801D5E7C; // type:object size:0x4 data:float +lbl_801D5E80 = .sdata2:0x801D5E80; // type:object size:0x4 data:float +lbl_801D5E84 = .sdata2:0x801D5E84; // type:object size:0x4 data:float +lbl_801D5E88 = .sdata2:0x801D5E88; // type:object size:0x4 data:float +lbl_801D5E8C = .sdata2:0x801D5E8C; // type:object size:0x4 data:float +lbl_801D5E90 = .sdata2:0x801D5E90; // type:object size:0x4 data:float +lbl_801D5E94 = .sdata2:0x801D5E94; // type:object size:0x4 data:float +lbl_801D5E98 = .sdata2:0x801D5E98; // type:object size:0x8 data:double +lbl_801D5EA0 = .sdata2:0x801D5EA0; // type:object size:0x8 data:double +lbl_801D5EA8 = .sdata2:0x801D5EA8; // type:object size:0x4 data:float +lbl_801D5EAC = .sdata2:0x801D5EAC; // type:object size:0x4 data:float +lbl_801D5EB0 = .sdata2:0x801D5EB0; // type:object size:0x8 data:double +lbl_801D5EB8 = .sdata2:0x801D5EB8; // type:object size:0x4 data:float +lbl_801D5EBC = .sdata2:0x801D5EBC; // type:object size:0x4 data:float +lbl_801D5EC0 = .sdata2:0x801D5EC0; // type:object size:0x4 data:float +lbl_801D5EC4 = .sdata2:0x801D5EC4; // type:object size:0x4 data:float +lbl_801D5EC8 = .sdata2:0x801D5EC8; // type:object size:0x4 data:float +lbl_801D5ECC = .sdata2:0x801D5ECC; // type:object size:0x4 data:float +lbl_801D5ED0 = .sdata2:0x801D5ED0; // type:object size:0x4 data:float +lbl_801D5ED4 = .sdata2:0x801D5ED4; // type:object size:0x4 data:float +lbl_801D5ED8 = .sdata2:0x801D5ED8; // type:object size:0x4 data:float +lbl_801D5EDC = .sdata2:0x801D5EDC; // type:object size:0x4 data:float +lbl_801D5EE0 = .sdata2:0x801D5EE0; // type:object size:0x4 data:float +lbl_801D5EE4 = .sdata2:0x801D5EE4; // type:object size:0x4 data:float +lbl_801D5EE8 = .sdata2:0x801D5EE8; // type:object size:0x4 data:float +lbl_801D5EEC = .sdata2:0x801D5EEC; // type:object size:0x4 data:float +lbl_801D5EF0 = .sdata2:0x801D5EF0; // type:object size:0x4 data:float +lbl_801D5EF4 = .sdata2:0x801D5EF4; // type:object size:0x4 data:float +lbl_801D5EF8 = .sdata2:0x801D5EF8; // type:object size:0x4 data:float +lbl_801D5EFC = .sdata2:0x801D5EFC; // type:object size:0x4 data:float +lbl_801D5F00 = .sdata2:0x801D5F00; // type:object size:0x4 data:float +lbl_801D5F04 = .sdata2:0x801D5F04; // type:object size:0x4 data:float +lbl_801D5F08 = .sdata2:0x801D5F08; // type:object size:0x4 data:float +lbl_801D5F10 = .sdata2:0x801D5F10; // type:object size:0x8 data:double +lbl_801D5F18 = .sdata2:0x801D5F18; // type:object size:0x8 data:double +lbl_801D5F20 = .sdata2:0x801D5F20; // type:object size:0x8 data:double +lbl_801D5F28 = .sdata2:0x801D5F28; // type:object size:0x8 data:double +lbl_801D5F30 = .sdata2:0x801D5F30; // type:object size:0x4 data:float +lbl_801D5F34 = .sdata2:0x801D5F34; // type:object size:0x4 data:float +lbl_801D5F38 = .sdata2:0x801D5F38; // type:object size:0x4 data:float +lbl_801D5F3C = .sdata2:0x801D5F3C; // type:object size:0x4 data:float +lbl_801D5F40 = .sdata2:0x801D5F40; // type:object size:0x4 data:float +lbl_801D5F44 = .sdata2:0x801D5F44; // type:object size:0x4 data:float +lbl_801D5F48 = .sdata2:0x801D5F48; // type:object size:0x4 data:float +lbl_801D5F4C = .sdata2:0x801D5F4C; // type:object size:0x4 data:float +lbl_801D5F50 = .sdata2:0x801D5F50; // type:object size:0x4 data:float +lbl_801D5F54 = .sdata2:0x801D5F54; // type:object size:0x1 data:byte +lbl_801D5F55 = .sdata2:0x801D5F55; // type:object size:0x1 data:byte +lbl_801D5F56 = .sdata2:0x801D5F56; // type:object size:0x1 data:byte +lbl_801D5F57 = .sdata2:0x801D5F57; // type:object size:0x1 data:byte +lbl_801D5F58 = .sdata2:0x801D5F58; // type:object size:0x8 data:float +lbl_801D5F60 = .sdata2:0x801D5F60; // type:object size:0x4 data:float +lbl_801D5F64 = .sdata2:0x801D5F64; // type:object size:0x4 data:float +lbl_801D5F68 = .sdata2:0x801D5F68; // type:object size:0x4 data:float +lbl_801D5F6C = .sdata2:0x801D5F6C; // type:object size:0x4 data:float +lbl_801D5F70 = .sdata2:0x801D5F70; // type:object size:0x4 data:float +lbl_801D5F74 = .sdata2:0x801D5F74; // type:object size:0x4 data:float +lbl_801D5F78 = .sdata2:0x801D5F78; // type:object size:0x4 data:float +lbl_801D5F7C = .sdata2:0x801D5F7C; // type:object size:0x4 data:float +lbl_801D5F80 = .sdata2:0x801D5F80; // type:object size:0x4 data:float +lbl_801D5F84 = .sdata2:0x801D5F84; // type:object size:0x4 data:float +lbl_801D5F88 = .sdata2:0x801D5F88; // type:object size:0x4 data:float +lbl_801D5F8C = .sdata2:0x801D5F8C; // type:object size:0x4 data:float +lbl_801D5F90 = .sdata2:0x801D5F90; // type:object size:0x4 data:float +lbl_801D5F94 = .sdata2:0x801D5F94; // type:object size:0x4 data:float +lbl_801D5F98 = .sdata2:0x801D5F98; // type:object size:0x4 data:float +lbl_801D5F9C = .sdata2:0x801D5F9C; // type:object size:0x4 data:float +lbl_801D5FA0 = .sdata2:0x801D5FA0; // type:object size:0x4 data:float +lbl_801D5FA4 = .sdata2:0x801D5FA4; // type:object size:0x4 data:float +lbl_801D5FA8 = .sdata2:0x801D5FA8; // type:object size:0x4 data:float +lbl_801D5FAC = .sdata2:0x801D5FAC; // type:object size:0x4 data:float +lbl_801D5FB0 = .sdata2:0x801D5FB0; // type:object size:0x4 data:float +lbl_801D5FB4 = .sdata2:0x801D5FB4; // type:object size:0x4 data:float +lbl_801D5FB8 = .sdata2:0x801D5FB8; // type:object size:0x4 data:float +lbl_801D5FBC = .sdata2:0x801D5FBC; // type:object size:0x4 data:float +lbl_801D5FC0 = .sdata2:0x801D5FC0; // type:object size:0x4 data:float +lbl_801D5FC4 = .sdata2:0x801D5FC4; // type:object size:0x4 data:float +lbl_801D5FC8 = .sdata2:0x801D5FC8; // type:object size:0x4 data:float +lbl_801D5FCC = .sdata2:0x801D5FCC; // type:object size:0x4 data:float +lbl_801D5FD0 = .sdata2:0x801D5FD0; // type:object size:0x4 data:float +lbl_801D5FD4 = .sdata2:0x801D5FD4; // type:object size:0x4 data:float +lbl_801D5FD8 = .sdata2:0x801D5FD8; // type:object size:0x4 data:float +lbl_801D5FDC = .sdata2:0x801D5FDC; // type:object size:0x4 data:float +lbl_801D5FE0 = .sdata2:0x801D5FE0; // type:object size:0x4 data:float +lbl_801D5FE4 = .sdata2:0x801D5FE4; // type:object size:0x4 data:float +lbl_801D5FE8 = .sdata2:0x801D5FE8; // type:object size:0x4 data:float +lbl_801D5FEC = .sdata2:0x801D5FEC; // type:object size:0x4 data:float +lbl_801D5FF0 = .sdata2:0x801D5FF0; // type:object size:0x4 data:float +lbl_801D5FF4 = .sdata2:0x801D5FF4; // type:object size:0x4 data:float +lbl_801D5FF8 = .sdata2:0x801D5FF8; // type:object size:0x4 data:float +lbl_801D5FFC = .sdata2:0x801D5FFC; // type:object size:0x4 data:float +lbl_801D6000 = .sdata2:0x801D6000; // type:object size:0x4 data:float +lbl_801D6004 = .sdata2:0x801D6004; // type:object size:0x4 data:float +lbl_801D6008 = .sdata2:0x801D6008; // type:object size:0x8 data:double +lbl_801D6010 = .sdata2:0x801D6010; // type:object size:0x8 data:float +lbl_801D6018 = .sdata2:0x801D6018; // type:object size:0x4 data:float +lbl_801D601C = .sdata2:0x801D601C; // type:object size:0x4 data:float +lbl_801D6020 = .sdata2:0x801D6020; // type:object size:0x4 data:float +lbl_801D6024 = .sdata2:0x801D6024; // type:object size:0x4 data:float +lbl_801D6028 = .sdata2:0x801D6028; // type:object size:0x8 data:float +lbl_801D6030 = .sdata2:0x801D6030; // type:object size:0x4 data:float +lbl_801D6034 = .sdata2:0x801D6034; // type:object size:0x4 data:float +lbl_801D6038 = .sdata2:0x801D6038; // type:object size:0x4 data:float +lbl_801D603C = .sdata2:0x801D603C; // type:object size:0x4 data:float +lbl_801D6040 = .sdata2:0x801D6040; // type:object size:0x4 data:float +lbl_801D6044 = .sdata2:0x801D6044; // type:object size:0x4 data:float +lbl_801D6048 = .sdata2:0x801D6048; // type:object size:0x4 data:float +lbl_801D604C = .sdata2:0x801D604C; // type:object size:0x4 data:float +lbl_801D6050 = .sdata2:0x801D6050; // type:object size:0x4 data:float +lbl_801D6054 = .sdata2:0x801D6054; // type:object size:0x4 data:float +lbl_801D6058 = .sdata2:0x801D6058; // type:object size:0x4 data:float +lbl_801D605C = .sdata2:0x801D605C; // type:object size:0x4 data:float +lbl_801D6060 = .sdata2:0x801D6060; // type:object size:0x8 data:double +lbl_801D6068 = .sdata2:0x801D6068; // type:object size:0x8 data:double +lbl_801D6070 = .sdata2:0x801D6070; // type:object size:0x4 data:float +lbl_801D6074 = .sdata2:0x801D6074; // type:object size:0x4 data:float +lbl_801D6078 = .sdata2:0x801D6078; // type:object size:0x4 data:float +lbl_801D607C = .sdata2:0x801D607C; // type:object size:0x4 data:float +lbl_801D6080 = .sdata2:0x801D6080; // type:object size:0x4 data:float +lbl_801D6084 = .sdata2:0x801D6084; // type:object size:0x4 data:float +lbl_801D6088 = .sdata2:0x801D6088; // type:object size:0x8 data:double +lbl_801D6090 = .sdata2:0x801D6090; // type:object size:0x8 data:double +lbl_801D6098 = .sdata2:0x801D6098; // type:object size:0x8 data:float +lbl_801D60A0 = .sdata2:0x801D60A0; // type:object size:0x4 data:float +lbl_801D60A8 = .sdata2:0x801D60A8; // type:object size:0x8 data:double +lbl_801D60B0 = .sdata2:0x801D60B0; // type:object size:0x4 data:4byte +lbl_801D60B4 = .sdata2:0x801D60B4; // type:object size:0x4 data:4byte +lbl_801D60B8 = .sdata2:0x801D60B8; // type:object size:0x4 data:4byte +lbl_801D60BC = .sdata2:0x801D60BC; // type:object size:0x4 data:float +lbl_801D60C0 = .sdata2:0x801D60C0; // type:object size:0x4 data:float +lbl_801D60C4 = .sdata2:0x801D60C4; // type:object size:0x4 data:float +lbl_801D60C8 = .sdata2:0x801D60C8; // type:object size:0x8 data:double +lbl_801D60D0 = .sdata2:0x801D60D0; // type:object size:0x8 data:float +lbl_801D60D8 = .sdata2:0x801D60D8; // type:object size:0x4 data:float +lbl_801D60DC = .sdata2:0x801D60DC; // type:object size:0x4 data:float +lbl_801D60E0 = .sdata2:0x801D60E0; // type:object size:0x4 data:float +lbl_801D60E4 = .sdata2:0x801D60E4; // type:object size:0x4 data:float +lbl_801D60E8 = .sdata2:0x801D60E8; // type:object size:0x4 data:float +lbl_801D60EC = .sdata2:0x801D60EC; // type:object size:0x4 data:float +lbl_801D60F0 = .sdata2:0x801D60F0; // type:object size:0x4 data:float +lbl_801D60F4 = .sdata2:0x801D60F4; // type:object size:0x4 data:float +lbl_801D60F8 = .sdata2:0x801D60F8; // type:object size:0x4 data:float +lbl_801D60FC = .sdata2:0x801D60FC; // type:object size:0x4 data:float +lbl_801D6100 = .sdata2:0x801D6100; // type:object size:0x4 data:float +lbl_801D6104 = .sdata2:0x801D6104; // type:object size:0x4 data:float +lbl_801D6108 = .sdata2:0x801D6108; // type:object size:0x4 data:float +lbl_801D6110 = .sdata2:0x801D6110; // type:object size:0x8 data:double +lbl_801D6118 = .sdata2:0x801D6118; // type:object size:0x8 data:double +lbl_801D6120 = .sdata2:0x801D6120; // type:object size:0x8 data:float +lbl_801D6128 = .sdata2:0x801D6128; // type:object size:0x4 data:float +lbl_801D6130 = .sdata2:0x801D6130; // type:object size:0x8 data:double +lbl_801D6138 = .sdata2:0x801D6138; // type:object size:0x4 data:float +lbl_801D613C = .sdata2:0x801D613C; // type:object size:0x4 data:float +lbl_801D6140 = .sdata2:0x801D6140; // type:object size:0x4 data:float +lbl_801D6144 = .sdata2:0x801D6144; // type:object size:0x4 data:float +lbl_801D6148 = .sdata2:0x801D6148; // type:object size:0x4 data:float +lbl_801D614C = .sdata2:0x801D614C; // type:object size:0x4 data:float +lbl_801D6150 = .sdata2:0x801D6150; // type:object size:0x4 data:float +lbl_801D6154 = .sdata2:0x801D6154; // type:object size:0x4 data:float +lbl_801D6158 = .sdata2:0x801D6158; // type:object size:0x4 data:float +lbl_801D6160 = .sdata2:0x801D6160; // type:object size:0x8 data:double +lbl_801D6168 = .sdata2:0x801D6168; // type:object size:0x4 data:float +lbl_801D616C = .sdata2:0x801D616C; // type:object size:0x4 data:float +lbl_801D6170 = .sdata2:0x801D6170; // type:object size:0x8 data:double +lbl_801D6178 = .sdata2:0x801D6178; // type:object size:0x4 data:float +lbl_801D6180 = .sdata2:0x801D6180; // type:object size:0x8 data:double +lbl_801D6188 = .sdata2:0x801D6188; // type:object size:0x4 data:float +lbl_801D6190 = .sdata2:0x801D6190; // type:object size:0x8 data:double +lbl_801D6198 = .sdata2:0x801D6198; // type:object size:0x4 data:float +lbl_801D619C = .sdata2:0x801D619C; // type:object size:0x4 data:float +lbl_801D61A0 = .sdata2:0x801D61A0; // type:object size:0x4 data:float +lbl_801D61A8 = .sdata2:0x801D61A8; // type:object size:0x8 data:double +lbl_801D61B0 = .sdata2:0x801D61B0; // type:object size:0x4 data:float +lbl_801D61B4 = .sdata2:0x801D61B4; // type:object size:0x4 data:float +lbl_801D61B8 = .sdata2:0x801D61B8; // type:object size:0x8 data:double +lbl_801D61C0 = .sdata2:0x801D61C0; // type:object size:0x4 data:float +lbl_801D61C4 = .sdata2:0x801D61C4; // type:object size:0x4 data:float +lbl_801D61C8 = .sdata2:0x801D61C8; // type:object size:0x4 data:float +lbl_801D61CC = .sdata2:0x801D61CC; // type:object size:0x4 data:float +lbl_801D61D0 = .sdata2:0x801D61D0; // type:object size:0x4 data:float +lbl_801D61D8 = .sdata2:0x801D61D8; // type:object size:0x8 data:double +lbl_801D61E0 = .sdata2:0x801D61E0; // type:object size:0x4 data:4byte +lbl_801D61E8 = .sdata2:0x801D61E8; // type:object size:0x8 data:double +lbl_801D61F0 = .sdata2:0x801D61F0; // type:object size:0x8 data:double +lbl_801D61F8 = .sdata2:0x801D61F8; // type:object size:0x8 data:double +lbl_801D6200 = .sdata2:0x801D6200; // type:object size:0x8 data:double +lbl_801D6208 = .sdata2:0x801D6208; // type:object size:0x8 data:double +lbl_801D6210 = .sdata2:0x801D6210; // type:object size:0x8 data:double +lbl_801D6218 = .sdata2:0x801D6218; // type:object size:0x8 data:double +lbl_801D6220 = .sdata2:0x801D6220; // type:object size:0x8 data:double +lbl_801D6228 = .sdata2:0x801D6228; // type:object size:0x8 data:double +lbl_801D6230 = .sdata2:0x801D6230; // type:object size:0x8 data:double +lbl_801D6238 = .sdata2:0x801D6238; // type:object size:0x8 data:double +lbl_801D6240 = .sdata2:0x801D6240; // type:object size:0x8 data:double +lbl_801D6248 = .sdata2:0x801D6248; // type:object size:0x8 data:double +lbl_801D6250 = .sdata2:0x801D6250; // type:object size:0x8 data:double +lbl_801D6258 = .sdata2:0x801D6258; // type:object size:0x8 data:double +lbl_801D6260 = .sdata2:0x801D6260; // type:object size:0x8 data:double +lbl_801D6268 = .sdata2:0x801D6268; // type:object size:0x8 data:double +lbl_801D6270 = .sdata2:0x801D6270; // type:object size:0x8 data:double +lbl_801D6278 = .sdata2:0x801D6278; // type:object size:0x8 data:double +lbl_801D6280 = .sdata2:0x801D6280; // type:object size:0x8 data:double +lbl_801D6288 = .sdata2:0x801D6288; // type:object size:0x8 data:double +lbl_801D6290 = .sdata2:0x801D6290; // type:object size:0x8 data:double +lbl_801D6298 = .sdata2:0x801D6298; // type:object size:0x8 data:double +lbl_801D62A0 = .sdata2:0x801D62A0; // type:object size:0x8 data:double +lbl_801D62A8 = .sdata2:0x801D62A8; // type:object size:0x8 data:double +lbl_801D62B0 = .sdata2:0x801D62B0; // type:object size:0x8 data:double +lbl_801D62B8 = .sdata2:0x801D62B8; // type:object size:0x8 data:double +lbl_801D62C0 = .sdata2:0x801D62C0; // type:object size:0x8 data:double +lbl_801D62C8 = .sdata2:0x801D62C8; // type:object size:0x8 data:double +lbl_801D62D0 = .sdata2:0x801D62D0; // type:object size:0x8 data:double +lbl_801D62D8 = .sdata2:0x801D62D8; // type:object size:0x8 data:double +lbl_801D62E0 = .sdata2:0x801D62E0; // type:object size:0x8 data:double +lbl_801D62E8 = .sdata2:0x801D62E8; // type:object size:0x8 data:double +lbl_801D62F0 = .sdata2:0x801D62F0; // type:object size:0x8 data:double +lbl_801D62F8 = .sdata2:0x801D62F8; // type:object size:0x8 data:double +lbl_801D6300 = .sdata2:0x801D6300; // type:object size:0x8 data:double +lbl_801D6308 = .sdata2:0x801D6308; // type:object size:0x8 data:double +lbl_801D6310 = .sdata2:0x801D6310; // type:object size:0x8 data:double +lbl_801D6318 = .sdata2:0x801D6318; // type:object size:0x8 data:double +lbl_801D6320 = .sdata2:0x801D6320; // type:object size:0x8 data:double +lbl_801D6328 = .sdata2:0x801D6328; // type:object size:0x8 data:double +lbl_801D6330 = .sdata2:0x801D6330; // type:object size:0x8 data:double +lbl_801D6338 = .sdata2:0x801D6338; // type:object size:0x8 data:double +lbl_801D6340 = .sdata2:0x801D6340; // type:object size:0x8 data:double +lbl_801D6348 = .sdata2:0x801D6348; // type:object size:0x8 data:double +lbl_801D6350 = .sdata2:0x801D6350; // type:object size:0x8 data:double +lbl_801D6358 = .sdata2:0x801D6358; // type:object size:0x8 data:double +lbl_801D6360 = .sdata2:0x801D6360; // type:object size:0x8 data:double +lbl_801D6368 = .sdata2:0x801D6368; // type:object size:0x8 data:double +lbl_801D6370 = .sdata2:0x801D6370; // type:object size:0x8 data:double +lbl_801D6378 = .sdata2:0x801D6378; // type:object size:0x8 data:double +lbl_801D6380 = .sdata2:0x801D6380; // type:object size:0x8 data:double +lbl_801D6388 = .sdata2:0x801D6388; // type:object size:0x8 data:double +lbl_801D6390 = .sdata2:0x801D6390; // type:object size:0x8 data:double +lbl_801D6398 = .sdata2:0x801D6398; // type:object size:0x8 data:double +lbl_801D63A0 = .sdata2:0x801D63A0; // type:object size:0x8 data:double +lbl_801D63A8 = .sdata2:0x801D63A8; // type:object size:0x8 data:double +lbl_801D63B0 = .sdata2:0x801D63B0; // type:object size:0x8 data:double +lbl_801D63B8 = .sdata2:0x801D63B8; // type:object size:0x8 data:double +lbl_801D63C0 = .sdata2:0x801D63C0; // type:object size:0x8 data:double +lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 data:double +lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 data:double +lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x8 data:double +lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 data:double +lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x8 data:double +lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x8 data:double +lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x8 data:double +lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 data:double +lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 data:double +lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x8 data:double +lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x8 data:double +lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x8 data:double +lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x8 data:double +lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x8 data:double +lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x8 data:double +lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x8 data:double +lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 data:double +lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 data:double +lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 data:double +lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x8 data:double +lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 data:double +lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x8 data:double +lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x8 data:double +lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x8 data:double +lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x8 data:double +lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x8 data:double +lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 data:double +lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x8 data:double +lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 data:double +lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x8 data:double +lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 data:double +lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x8 data:double +lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 data:double +lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x8 data:double +lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x8 data:double +lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 data:double +lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x8 data:double +lbl_801D64F0 = .sdata2:0x801D64F0; // type:object size:0x8 data:double +lbl_801D64F8 = .sdata2:0x801D64F8; // type:object size:0x8 data:double +lbl_801D6500 = .sdata2:0x801D6500; // type:object size:0x8 data:double +lbl_801D6508 = .sdata2:0x801D6508; // type:object size:0x8 data:double +lbl_801D6510 = .sdata2:0x801D6510; // type:object size:0x8 data:double +lbl_801D6518 = .sdata2:0x801D6518; // type:object size:0x8 data:double +lbl_801D6520 = .sdata2:0x801D6520; // type:object size:0x8 data:double +lbl_801D6528 = .sdata2:0x801D6528; // type:object size:0x8 data:double +lbl_801D6530 = .sdata2:0x801D6530; // type:object size:0x8 data:double +lbl_801D6538 = .sdata2:0x801D6538; // type:object size:0x8 data:double +lbl_801D6540 = .sdata2:0x801D6540; // type:object size:0x8 data:double +lbl_801D6548 = .sdata2:0x801D6548; // type:object size:0x8 data:double +lbl_801D6550 = .sdata2:0x801D6550; // type:object size:0x8 data:double +lbl_801D6558 = .sdata2:0x801D6558; // type:object size:0x8 data:double +lbl_801D6560 = .sdata2:0x801D6560; // type:object size:0x8 data:double +lbl_801D6568 = .sdata2:0x801D6568; // type:object size:0x8 data:double +lbl_801D6570 = .sdata2:0x801D6570; // type:object size:0x8 data:double +lbl_801D6578 = .sdata2:0x801D6578; // type:object size:0x8 data:double +lbl_801D6580 = .sdata2:0x801D6580; // type:object size:0x8 data:double +lbl_801D6588 = .sdata2:0x801D6588; // type:object size:0x8 data:double +lbl_801D6590 = .sdata2:0x801D6590; // type:object size:0x8 data:double +lbl_801D6598 = .sdata2:0x801D6598; // type:object size:0x8 data:double +lbl_801D65A0 = .sdata2:0x801D65A0; // type:object size:0x8 data:double +lbl_801D65A8 = .sdata2:0x801D65A8; // type:object size:0x8 data:double +lbl_801D65B0 = .sdata2:0x801D65B0; // type:object size:0x8 data:double +lbl_801D65B8 = .sdata2:0x801D65B8; // type:object size:0x8 data:double +lbl_801D65C0 = .sdata2:0x801D65C0; // type:object size:0x8 data:double +lbl_801D65C8 = .sdata2:0x801D65C8; // type:object size:0x8 data:double +lbl_801D65D0 = .sdata2:0x801D65D0; // type:object size:0x8 data:double +lbl_801D65D8 = .sdata2:0x801D65D8; // type:object size:0x8 data:double +lbl_801D65E0 = .sdata2:0x801D65E0; // type:object size:0x8 data:double +lbl_801D65E8 = .sdata2:0x801D65E8; // type:object size:0x8 data:double +lbl_801D65F0 = .sdata2:0x801D65F0; // type:object size:0x8 data:double +lbl_801D65F8 = .sdata2:0x801D65F8; // type:object size:0x8 data:double +lbl_801D6600 = .sdata2:0x801D6600; // type:object size:0x8 data:double +lbl_801D6608 = .sdata2:0x801D6608; // type:object size:0x8 data:double +lbl_801D6610 = .sdata2:0x801D6610; // type:object size:0x8 data:double +lbl_801D6618 = .sdata2:0x801D6618; // type:object size:0x8 data:double +lbl_801D6620 = .sdata2:0x801D6620; // type:object size:0x8 data:double +lbl_801D6628 = .sdata2:0x801D6628; // type:object size:0x8 data:double +lbl_801D6630 = .sdata2:0x801D6630; // type:object size:0x8 data:double +lbl_801D6638 = .sdata2:0x801D6638; // type:object size:0x8 data:double +lbl_801D6640 = .sdata2:0x801D6640; // type:object size:0x8 data:double +lbl_801D6648 = .sdata2:0x801D6648; // type:object size:0x8 data:double +lbl_801D6650 = .sdata2:0x801D6650; // type:object size:0x4 data:float +lbl_801D6654 = .sdata2:0x801D6654; // type:object size:0x4 data:float +lbl_801D6658 = .sdata2:0x801D6658; // type:object size:0x4 data:float +lbl_801D6660 = .sdata2:0x801D6660; // type:object size:0x8 data:double +lbl_801D6668 = .sdata2:0x801D6668; // type:object size:0x8 data:double +lbl_801D6670 = .sdata2:0x801D6670; // type:object size:0x4 data:float +lbl_801D6674 = .sdata2:0x801D6674; // type:object size:0x4 data:float +lbl_801D6678 = .sdata2:0x801D6678; // type:object size:0x4 data:float +lbl_801D667C = .sdata2:0x801D667C; // type:object size:0x4 data:float +lbl_801D6680 = .sdata2:0x801D6680; // type:object size:0x4 data:float +lbl_801D6684 = .sdata2:0x801D6684; // type:object size:0x4 data:float +lbl_801D6688 = .sdata2:0x801D6688; // type:object size:0x4 data:float +lbl_801D668C = .sdata2:0x801D668C; // type:object size:0x4 data:float +lbl_801D6690 = .sdata2:0x801D6690; // type:object size:0x4 data:float +lbl_801D6698 = .sdata2:0x801D6698; // type:object size:0x8 data:double +lbl_801D66A0 = .sdata2:0x801D66A0; // type:object size:0x8 data:double +lbl_801D66A8 = .sdata2:0x801D66A8; // type:object size:0x4 data:float +lbl_801D66AC = .sdata2:0x801D66AC; // type:object size:0x4 data:float +lbl_801D66B0 = .sdata2:0x801D66B0; // type:object size:0x4 data:float +lbl_801D66B8 = .sdata2:0x801D66B8; // type:object size:0x8 data:double +lbl_801D66C0 = .sdata2:0x801D66C0; // type:object size:0x8 data:float +lbl_801D66C8 = .sdata2:0x801D66C8; // type:object size:0x4 data:float +lbl_801D66CC = .sdata2:0x801D66CC; // type:object size:0x4 data:float +lbl_801D66D0 = .sdata2:0x801D66D0; // type:object size:0x4 data:float +lbl_801D66D8 = .sdata2:0x801D66D8; // type:object size:0x8 data:double +lbl_801D66E0 = .sdata2:0x801D66E0; // type:object size:0x8 data:double +lbl_801D66E8 = .sdata2:0x801D66E8; // type:object size:0x4 data:float +lbl_801D66EC = .sdata2:0x801D66EC; // type:object size:0x4 data:float +lbl_801D66F0 = .sdata2:0x801D66F0; // type:object size:0x4 data:float +lbl_801D66F8 = .sdata2:0x801D66F8; // type:object size:0x8 data:double +lbl_801D6700 = .sdata2:0x801D6700; // type:object size:0x4 data:float +lbl_801D6708 = .sdata2:0x801D6708; // type:object size:0x8 data:double +lbl_801D6710 = .sdata2:0x801D6710; // type:object size:0x4 data:float +lbl_801D6714 = .sdata2:0x801D6714; // type:object size:0x4 data:float +lbl_801D6718 = .sdata2:0x801D6718; // type:object size:0x8 data:double +lbl_801D6720 = .sdata2:0x801D6720; // type:object size:0x4 data:float +lbl_801D6728 = .sdata2:0x801D6728; // type:object size:0x8 data:double +lbl_801D6730 = .sdata2:0x801D6730; // type:object size:0x4 data:float +lbl_801D6734 = .sdata2:0x801D6734; // type:object size:0x4 data:float +lbl_801D6738 = .sdata2:0x801D6738; // type:object size:0x4 data:float +lbl_801D6740 = .sdata2:0x801D6740; // type:object size:0x8 data:double +lbl_801D6748 = .sdata2:0x801D6748; // type:object size:0x4 data:float +lbl_801D6750 = .sdata2:0x801D6750; // type:object size:0x8 data:double +lbl_801D6758 = .sdata2:0x801D6758; // type:object size:0x4 data:float +lbl_801D675C = .sdata2:0x801D675C; // type:object size:0x4 data:float +lbl_801D6760 = .sdata2:0x801D6760; // type:object size:0x8 data:float +lbl_801D6768 = .sdata2:0x801D6768; // type:object size:0x4 data:float +lbl_801D6770 = .sdata2:0x801D6770; // type:object size:0x8 data:double +lbl_801D6778 = .sdata2:0x801D6778; // type:object size:0x4 data:float +lbl_801D677C = .sdata2:0x801D677C; // type:object size:0x4 data:float +lbl_801D6780 = .sdata2:0x801D6780; // type:object size:0x8 data:double +lbl_801D6788 = .sdata2:0x801D6788; // type:object size:0x4 data:float +lbl_801D678C = .sdata2:0x801D678C; // type:object size:0x4 data:float +lbl_801D6790 = .sdata2:0x801D6790; // type:object size:0x8 data:double +lbl_801D6798 = .sdata2:0x801D6798; // type:object size:0x4 data:float +lbl_801D679C = .sdata2:0x801D679C; // type:object size:0x4 data:float +lbl_801D67A0 = .sdata2:0x801D67A0; // type:object size:0x4 data:float +lbl_801D67A4 = .sdata2:0x801D67A4; // type:object size:0x4 data:float +lbl_801D67A8 = .sdata2:0x801D67A8; // type:object size:0x4 data:float +lbl_801D67AC = .sdata2:0x801D67AC; // type:object size:0x4 data:float +lbl_801D67B0 = .sdata2:0x801D67B0; // type:object size:0x8 data:float +lbl_801D67B8 = .sdata2:0x801D67B8; // type:object size:0x4 data:float +lbl_801D67C0 = .sdata2:0x801D67C0; // type:object size:0x8 data:double +lbl_801D67C8 = .sdata2:0x801D67C8; // type:object size:0x8 data:double +lbl_801D67D0 = .sdata2:0x801D67D0; // type:object size:0x8 data:float +lbl_801D67D8 = .sdata2:0x801D67D8; // type:object size:0x4 data:float +lbl_801D67DC = .sdata2:0x801D67DC; // type:object size:0x4 data:float +lbl_801D67E0 = .sdata2:0x801D67E0; // type:object size:0x4 data:float +lbl_801D67E8 = .sdata2:0x801D67E8; // type:object size:0x8 data:double +lbl_801D67F0 = .sdata2:0x801D67F0; // type:object size:0x4 data:float +lbl_801D67F4 = .sdata2:0x801D67F4; // type:object size:0x4 data:float +lbl_801D67F8 = .sdata2:0x801D67F8; // type:object size:0x4 data:float +lbl_801D67FC = .sdata2:0x801D67FC; // type:object size:0x4 data:float +lbl_801D6800 = .sdata2:0x801D6800; // type:object size:0x4 data:float +lbl_801D6804 = .sdata2:0x801D6804; // type:object size:0x4 data:float +lbl_801D6808 = .sdata2:0x801D6808; // type:object size:0x8 data:double +lbl_801D6810 = .sdata2:0x801D6810; // type:object size:0x4 data:float +lbl_801D6814 = .sdata2:0x801D6814; // type:object size:0x4 data:float +lbl_801D6818 = .sdata2:0x801D6818; // type:object size:0x8 data:double +lbl_801D6820 = .sdata2:0x801D6820; // type:object size:0x4 data:float +lbl_801D6824 = .sdata2:0x801D6824; // type:object size:0x4 data:float +lbl_801D6828 = .sdata2:0x801D6828; // type:object size:0x8 data:double +lbl_801D6830 = .sdata2:0x801D6830; // type:object size:0x4 data:float +lbl_801D6834 = .sdata2:0x801D6834; // type:object size:0x4 data:float +lbl_801D6838 = .sdata2:0x801D6838; // type:object size:0x4 data:float +lbl_801D683C = .sdata2:0x801D683C; // type:object size:0x4 data:float +lbl_801D6840 = .sdata2:0x801D6840; // type:object size:0x4 data:float +lbl_801D6844 = .sdata2:0x801D6844; // type:object size:0x4 data:float +lbl_801D6848 = .sdata2:0x801D6848; // type:object size:0x8 data:double +lbl_801D6850 = .sdata2:0x801D6850; // type:object size:0x4 data:float +lbl_801D6854 = .sdata2:0x801D6854; // type:object size:0x4 data:float +lbl_801D6858 = .sdata2:0x801D6858; // type:object size:0x8 data:double +lbl_801D6860 = .sdata2:0x801D6860; // type:object size:0x8 data:double +lbl_801D6868 = .sdata2:0x801D6868; // type:object size:0x4 data:float +lbl_801D686C = .sdata2:0x801D686C; // type:object size:0x4 data:float +lbl_801D6870 = .sdata2:0x801D6870; // type:object size:0x4 data:float +lbl_801D6878 = .sdata2:0x801D6878; // type:object size:0x8 data:double +lbl_801D6880 = .sdata2:0x801D6880; // type:object size:0x4 data:4byte +lbl_801D6884 = .sdata2:0x801D6884; // type:object size:0x4 data:4byte +lbl_801D6888 = .sdata2:0x801D6888; // type:object size:0x4 data:float +lbl_801D688C = .sdata2:0x801D688C; // type:object size:0x4 data:float +lbl_801D6890 = .sdata2:0x801D6890; // type:object size:0x4 data:float +lbl_801D6894 = .sdata2:0x801D6894; // type:object size:0x4 data:float +lbl_801D6898 = .sdata2:0x801D6898; // type:object size:0x8 data:double +lbl_801D68A0 = .sbss2:0x801D68A0; // type:object size:0x4 scope:local data:byte +lbl_801D68A4 = .sbss2:0x801D68A4; // type:object size:0x4 scope:local data:byte diff --git a/config/GMPP01_00/build.sha1 b/config/GMPP01_00/build.sha1 new file mode 100644 index 00000000..3cccde01 --- /dev/null +++ b/config/GMPP01_00/build.sha1 @@ -0,0 +1,100 @@ +65ef91650e9201047f50a3c39c7693a21fff2b29 build/GMPP01_00/main.dol +7101a759bcd45edee5bbc00a36d347c1f787c2a1 build/GMPP01_00/_minigameDll/_minigameDll.rel +b60fe8dd6faa20663224d64651b80c25b9b202ef build/GMPP01_00/bootDll/bootDll.rel +eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 build/GMPP01_00/instDll/instDll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m302Dll/m302Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m303Dll/m303Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m330Dll/m330Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m333Dll/m333Dll.rel +cd3532af828e8217924296c4cadbd31ddd915a05 build/GMPP01_00/m402Dll/m402Dll.rel +b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 build/GMPP01_00/m403Dll/m403Dll.rel +56c825a1e0bbe33e3a0e1e70396c21af9b575243 build/GMPP01_00/m404Dll/m404Dll.rel +cc76ded0a41aea632fd9b3c5e37fe6d847107d91 build/GMPP01_00/m405Dll/m405Dll.rel +5c2aee9c8f10dc763c9ff763874f3a4b58880f02 build/GMPP01_00/m406Dll/m406Dll.rel +7133701b7c28a66f9d24ab64081e472d458dad51 build/GMPP01_00/m407dll/m407dll.rel +6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 build/GMPP01_00/m408Dll/m408Dll.rel +71a91946651b40cc217b08d293f23fbf01c7407a build/GMPP01_00/m409Dll/m409Dll.rel +e938c2f354224a6a5a7b015f9abae596298788ee build/GMPP01_00/m410Dll/m410Dll.rel +e29bae44753c7ce8e5213881b10d6b27c02c4f7a build/GMPP01_00/m411Dll/m411Dll.rel +23da1cff677f992bb76dcbf4a9f9061542b4be7f build/GMPP01_00/m412Dll/m412Dll.rel +6ed381e5b4d75eeab2c3ded39473a482f61ee32d build/GMPP01_00/m413Dll/m413Dll.rel +902f32cc75ac0030c7c531dbeefda055bc8d7f27 build/GMPP01_00/m414Dll/m414Dll.rel +7063ae505540bafebf802128d8d2f394b7f6f921 build/GMPP01_00/m415Dll/m415Dll.rel +2979d5f934b9099116fbd943a91d6a3bb56e6ec0 build/GMPP01_00/m416Dll/m416Dll.rel +b20482a2af7c839456fe7580dcbd92ca9984ec71 build/GMPP01_00/m417Dll/m417Dll.rel +762f56820668c74cdcde436a08419bdb59a35a89 build/GMPP01_00/m418Dll/m418Dll.rel +5fba3dfcfca6ef78eb46833f665019bca641063e build/GMPP01_00/m419Dll/m419Dll.rel +bb514277a33821093fd2acfae2cb86531b317d17 build/GMPP01_00/m420dll/m420dll.rel +216ba8bbc8905f33370ae651d478f6bd56c17b27 build/GMPP01_00/m421Dll/m421Dll.rel +6c152ddb5f518c9c6444030dfc30ab53ef931b40 build/GMPP01_00/m422Dll/m422Dll.rel +db80fcb993ce09d808de29d2488f2b1ab2afc8cd build/GMPP01_00/m423Dll/m423Dll.rel +827da0897edcc2706a3623722430d4e70512c653 build/GMPP01_00/m424Dll/m424Dll.rel +26eb36bfc9106af2462a0d7e013f5321dbaecdd1 build/GMPP01_00/m425Dll/m425Dll.rel +04b649fb6eb248e506cf15fdcfbed3e915a80682 build/GMPP01_00/m426Dll/m426Dll.rel +810a1c91f794897862ac9b6a4e076a70c6b0238a build/GMPP01_00/m427Dll/m427Dll.rel +888af662a228e349ea6a0c60e19de74f8fa47914 build/GMPP01_00/m428Dll/m428Dll.rel +88b2330f175d1346a71f67491dcf9eff62d2d2d1 build/GMPP01_00/m429Dll/m429Dll.rel +e611007dd71ab515de65e9a6879f0508193fd58a build/GMPP01_00/m430Dll/m430Dll.rel +6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad build/GMPP01_00/m431Dll/m431Dll.rel +17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d build/GMPP01_00/m432Dll/m432Dll.rel +ce90f494ced6f2611603c247bdc733a458b5a523 build/GMPP01_00/m433Dll/m433Dll.rel +100fe402942821dc8e5753f3cada5e2bf5ab6214 build/GMPP01_00/m434Dll/m434Dll.rel +4936db381fa068395cff28c0d635c5ec7cc7218f build/GMPP01_00/m435Dll/m435Dll.rel +ba1c3bdc5f250996a5c873791347ce4c20b38692 build/GMPP01_00/m436Dll/m436Dll.rel +7273786a2995182baf9a85148c5974097999fe8e build/GMPP01_00/m437Dll/m437Dll.rel +d7c4bdf1729695a7348f8a36de2911db7aa24abb build/GMPP01_00/m438Dll/m438Dll.rel +4d5a719b49edb55e0b0b52c0d81b31c14d197d20 build/GMPP01_00/m439Dll/m439Dll.rel +469b18886221ae8a5b90f3e85b01ce6a01befb0b build/GMPP01_00/m440Dll/m440Dll.rel +7d6e99b67d2dde25d3fc75ac314c2a69be34137e build/GMPP01_00/m441Dll/m441Dll.rel +63af3c4f33fd362f17aa1be9f764d0549f92598d build/GMPP01_00/m442Dll/m442Dll.rel +5118a0bab1877455eae9002c3cc561d3360fd792 build/GMPP01_00/m443Dll/m443Dll.rel +4939f755142efe362f67898358fff1cdeffe508e build/GMPP01_00/m444dll/m444dll.rel +02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 build/GMPP01_00/m445Dll/m445Dll.rel +2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 build/GMPP01_00/m446dll/m446dll.rel +0640357fe4d0148dac4bc382c8231410e24fe951 build/GMPP01_00/m447dll/m447dll.rel +78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 build/GMPP01_00/m448Dll/m448Dll.rel +fcf6e4b0089e19ffddf01a119c8c515a4acc943a build/GMPP01_00/m449Dll/m449Dll.rel +ebcf95781e8078813ed041dd0a869ae2e413679b build/GMPP01_00/m450Dll/m450Dll.rel +aa16b743f7b64f22abfd8bb93646883cc73bd7e0 build/GMPP01_00/m451Dll/m451Dll.rel +f6fd7a6537e56c535d02ac4a48c9008605f93ea1 build/GMPP01_00/m453Dll/m453Dll.rel +cc3431f55b523d474a952f3a0e927fac6b5402ab build/GMPP01_00/m455Dll/m455Dll.rel +09797251306bbd0f6fd712d6f832128ca8c58690 build/GMPP01_00/m456Dll/m456Dll.rel +8a992a09077fd5e1f6ca3e717547792938a519c1 build/GMPP01_00/m457Dll/m457Dll.rel +5dea2127d51d621b30d78b22cfa32327797e6e0b build/GMPP01_00/m458Dll/m458Dll.rel +e96dafe5949909cb7cc839174aa38e8e6661a63b build/GMPP01_00/m459dll/m459dll.rel +ea1e0bda22675840d39c74117e2a11ffe45f8dd4 build/GMPP01_00/m460Dll/m460Dll.rel +8d515f3b92a786df53bb88291b5cfc4bc59a3c8d build/GMPP01_00/m461Dll/m461Dll.rel +f02ba47e4459d9b0de174c5619a4efe61942962d build/GMPP01_00/m462Dll/m462Dll.rel +352ad6d84ded6cf28b9ff2f9e5da8812ac9164db build/GMPP01_00/m463Dll/m463Dll.rel +4705ada9d259a81ab2815fee3516f6217d848dd9 build/GMPP01_00/mentDll/mentDll.rel +b966ce340e98dbda624ff80f96c78d51ff1ed687 build/GMPP01_00/messDll/messDll.rel +7a3fed787df2d1bc942efd56a160eaf59605b94f build/GMPP01_00/mgmodedll/mgmodedll.rel +1e5bf1777b1470fcead2174c25b291b8f0513284 build/GMPP01_00/modeltestDll/modeltestDll.rel +d958038528a774801a4f5a0aee9e7aaae4bd94ce build/GMPP01_00/modeseldll/modeseldll.rel +a3e1e06937703f98191f4080e092bf06c4f449b3 build/GMPP01_00/mpexDll/mpexDll.rel +86ff8288bb92472376d02cade1d3c9603b613c57 build/GMPP01_00/msetupDll/msetupDll.rel +ea9878a7af1787c0789d29bf812e1d9972c2ff20 build/GMPP01_00/mstory2Dll/mstory2Dll.rel +58decb3dba8e167bd2c238a55339888469a07381 build/GMPP01_00/mstory3Dll/mstory3Dll.rel +a8eee3981f4965412490cb9eef76aaa798957db1 build/GMPP01_00/mstory4Dll/mstory4Dll.rel +0fd54549734531303fb5471690cee96709833114 build/GMPP01_00/mstoryDll/mstoryDll.rel +45619d95e61d9296f25d94d7c6756f397fb89bee build/GMPP01_00/nisDll/nisDll.rel +1304967e3aa58a46492d4c736a7c86cf8a3b2e11 build/GMPP01_00/option/option.rel +7845814c6be2546930cfd8e0b9dec263fc1a959f build/GMPP01_00/present/present.rel +d9bd10433d1e2a6c0c4d9f942b766d743f99deec build/GMPP01_00/resultDll/resultDll.rel +c13262cf14f00e1d70bd65d20bbf988479816ca7 build/GMPP01_00/safDll/safDll.rel +51f53e1398c86c5a22251a457e3af86339b4b11f build/GMPP01_00/selmenuDll/selmenuDll.rel +af869e37d004f687fab2ff6897d75d6c15e31a00 build/GMPP01_00/staffDll/staffDll.rel +21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 build/GMPP01_00/subchrselDll/subchrselDll.rel +70ee81af67a4f55de2fef65823583d22312f09be build/GMPP01_00/w01Dll/w01Dll.rel +33b5663ece821df4dbc50870e00de0e22e099efd build/GMPP01_00/w02Dll/w02Dll.rel +97aa16f847cdf2d6fd014f06df14c55f5f02024d build/GMPP01_00/w03Dll/w03Dll.rel +135cf03d803b9d8d39721b2a96769909aa719ee6 build/GMPP01_00/w04Dll/w04Dll.rel +e6d07092b69cc3b0514d9c12e3f5949edeb25f5f build/GMPP01_00/w05Dll/w05Dll.rel +0d5445461f58fac4c043c75bed7237b7f4045188 build/GMPP01_00/w06Dll/w06Dll.rel +5678fedd4a0490aeb9703328e959fdedea7da117 build/GMPP01_00/w10Dll/w10Dll.rel +58ae9e311cc8bd0291921480f423e2ad4774e1a2 build/GMPP01_00/w20Dll/w20Dll.rel +8ea052be8c7585a1ab152682a0698b631c5b566f build/GMPP01_00/w21Dll/w21Dll.rel +8987f11fafd11f69161ca275967afe9c8b4e7b20 build/GMPP01_00/ztardll/ztardll.rel +d59c60b0149a85782fa98d1a4da6cc768a09b473 build/GMPP01_00/E3setupDLL/E3setupDLL.rel +eba8a17e8b263bc9cd601b1aea7e698a8785416a build/GMPP01_00/m300Dll/m300Dll.rel +c457a4a45ebae776331484ba94f5798041a77a57 build/GMPP01_00/m401Dll/m401Dll.rel diff --git a/config/GMPP01_00/config.yml b/config/GMPP01_00/config.yml new file mode 100644 index 00000000..997b2d75 --- /dev/null +++ b/config/GMPP01_00/config.yml @@ -0,0 +1,660 @@ +object_base: orig/GMPP01_00 +object: sys/main.dol +hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 +symbols: config/GMPP01_00/symbols.txt +splits: config/GMPP01_00/splits.txt +quick_analysis: true # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, lbl_801D40D0] +detect_objects: true +detect_strings: true +fill_gaps: true +modules: +- object: files/dll/_minigameDll.rel + hash: 7101a759bcd45edee5bbc00a36d347c1f787c2a1 + symbols: config/GMPP01_00/rels/_minigameDll/symbols.txt + splits: config/GMPP01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + hash: b60fe8dd6faa20663224d64651b80c25b9b202ef + symbols: config/GMPP01_00/rels/bootDll/symbols.txt + splits: config/GMPP01_00/rels/bootDll/splits.txt + links: [] + extract: + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc +- object: files/dll/instDll.rel + hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 + symbols: config/GMPP01_00/rels/instDll/symbols.txt + splits: config/GMPP01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m302Dll/symbols.txt + splits: config/GMPP01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m303Dll/symbols.txt + splits: config/GMPP01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m330Dll/symbols.txt + splits: config/GMPP01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m333Dll/symbols.txt + splits: config/GMPP01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + hash: cd3532af828e8217924296c4cadbd31ddd915a05 + symbols: config/GMPP01_00/rels/m402Dll/symbols.txt + splits: config/GMPP01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + hash: b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 + symbols: config/GMPP01_00/rels/m403Dll/symbols.txt + splits: config/GMPP01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + hash: 56c825a1e0bbe33e3a0e1e70396c21af9b575243 + symbols: config/GMPP01_00/rels/m404Dll/symbols.txt + splits: config/GMPP01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + hash: cc76ded0a41aea632fd9b3c5e37fe6d847107d91 + symbols: config/GMPP01_00/rels/m405Dll/symbols.txt + splits: config/GMPP01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + hash: 5c2aee9c8f10dc763c9ff763874f3a4b58880f02 + symbols: config/GMPP01_00/rels/m406Dll/symbols.txt + splits: config/GMPP01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + hash: 7133701b7c28a66f9d24ab64081e472d458dad51 + symbols: config/GMPP01_00/rels/m407dll/symbols.txt + splits: config/GMPP01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + hash: 6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 + symbols: config/GMPP01_00/rels/m408Dll/symbols.txt + splits: config/GMPP01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + hash: 71a91946651b40cc217b08d293f23fbf01c7407a + symbols: config/GMPP01_00/rels/m409Dll/symbols.txt + splits: config/GMPP01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + hash: e938c2f354224a6a5a7b015f9abae596298788ee + symbols: config/GMPP01_00/rels/m410Dll/symbols.txt + splits: config/GMPP01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + hash: e29bae44753c7ce8e5213881b10d6b27c02c4f7a + symbols: config/GMPP01_00/rels/m411Dll/symbols.txt + splits: config/GMPP01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + hash: 23da1cff677f992bb76dcbf4a9f9061542b4be7f + symbols: config/GMPP01_00/rels/m412Dll/symbols.txt + splits: config/GMPP01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + hash: 6ed381e5b4d75eeab2c3ded39473a482f61ee32d + symbols: config/GMPP01_00/rels/m413Dll/symbols.txt + splits: config/GMPP01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + hash: 902f32cc75ac0030c7c531dbeefda055bc8d7f27 + symbols: config/GMPP01_00/rels/m414Dll/symbols.txt + splits: config/GMPP01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + hash: 7063ae505540bafebf802128d8d2f394b7f6f921 + symbols: config/GMPP01_00/rels/m415Dll/symbols.txt + splits: config/GMPP01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + hash: 2979d5f934b9099116fbd943a91d6a3bb56e6ec0 + symbols: config/GMPP01_00/rels/m416Dll/symbols.txt + splits: config/GMPP01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + hash: b20482a2af7c839456fe7580dcbd92ca9984ec71 + symbols: config/GMPP01_00/rels/m417Dll/symbols.txt + splits: config/GMPP01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + hash: 762f56820668c74cdcde436a08419bdb59a35a89 + symbols: config/GMPP01_00/rels/m418Dll/symbols.txt + splits: config/GMPP01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + hash: 5fba3dfcfca6ef78eb46833f665019bca641063e + symbols: config/GMPP01_00/rels/m419Dll/symbols.txt + splits: config/GMPP01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + hash: bb514277a33821093fd2acfae2cb86531b317d17 + symbols: config/GMPP01_00/rels/m420dll/symbols.txt + splits: config/GMPP01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + hash: 216ba8bbc8905f33370ae651d478f6bd56c17b27 + symbols: config/GMPP01_00/rels/m421Dll/symbols.txt + splits: config/GMPP01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + hash: 6c152ddb5f518c9c6444030dfc30ab53ef931b40 + symbols: config/GMPP01_00/rels/m422Dll/symbols.txt + splits: config/GMPP01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + hash: db80fcb993ce09d808de29d2488f2b1ab2afc8cd + symbols: config/GMPP01_00/rels/m423Dll/symbols.txt + splits: config/GMPP01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + hash: 827da0897edcc2706a3623722430d4e70512c653 + symbols: config/GMPP01_00/rels/m424Dll/symbols.txt + splits: config/GMPP01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + hash: 26eb36bfc9106af2462a0d7e013f5321dbaecdd1 + symbols: config/GMPP01_00/rels/m425Dll/symbols.txt + splits: config/GMPP01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + hash: 04b649fb6eb248e506cf15fdcfbed3e915a80682 + symbols: config/GMPP01_00/rels/m426Dll/symbols.txt + splits: config/GMPP01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + hash: 810a1c91f794897862ac9b6a4e076a70c6b0238a + symbols: config/GMPP01_00/rels/m427Dll/symbols.txt + splits: config/GMPP01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + hash: 888af662a228e349ea6a0c60e19de74f8fa47914 + symbols: config/GMPP01_00/rels/m428Dll/symbols.txt + splits: config/GMPP01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + hash: 88b2330f175d1346a71f67491dcf9eff62d2d2d1 + symbols: config/GMPP01_00/rels/m429Dll/symbols.txt + splits: config/GMPP01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + hash: e611007dd71ab515de65e9a6879f0508193fd58a + symbols: config/GMPP01_00/rels/m430Dll/symbols.txt + splits: config/GMPP01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + hash: 6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad + symbols: config/GMPP01_00/rels/m431Dll/symbols.txt + splits: config/GMPP01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + hash: 17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d + symbols: config/GMPP01_00/rels/m432Dll/symbols.txt + splits: config/GMPP01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + hash: ce90f494ced6f2611603c247bdc733a458b5a523 + symbols: config/GMPP01_00/rels/m433Dll/symbols.txt + splits: config/GMPP01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + hash: 100fe402942821dc8e5753f3cada5e2bf5ab6214 + symbols: config/GMPP01_00/rels/m434Dll/symbols.txt + splits: config/GMPP01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + hash: 4936db381fa068395cff28c0d635c5ec7cc7218f + symbols: config/GMPP01_00/rels/m435Dll/symbols.txt + splits: config/GMPP01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + hash: ba1c3bdc5f250996a5c873791347ce4c20b38692 + symbols: config/GMPP01_00/rels/m436Dll/symbols.txt + splits: config/GMPP01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + hash: 7273786a2995182baf9a85148c5974097999fe8e + symbols: config/GMPP01_00/rels/m437Dll/symbols.txt + splits: config/GMPP01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + hash: d7c4bdf1729695a7348f8a36de2911db7aa24abb + symbols: config/GMPP01_00/rels/m438Dll/symbols.txt + splits: config/GMPP01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + hash: 4d5a719b49edb55e0b0b52c0d81b31c14d197d20 + symbols: config/GMPP01_00/rels/m439Dll/symbols.txt + splits: config/GMPP01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + hash: 469b18886221ae8a5b90f3e85b01ce6a01befb0b + symbols: config/GMPP01_00/rels/m440Dll/symbols.txt + splits: config/GMPP01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + hash: 7d6e99b67d2dde25d3fc75ac314c2a69be34137e + symbols: config/GMPP01_00/rels/m441Dll/symbols.txt + splits: config/GMPP01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + hash: 63af3c4f33fd362f17aa1be9f764d0549f92598d + symbols: config/GMPP01_00/rels/m442Dll/symbols.txt + splits: config/GMPP01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + hash: 5118a0bab1877455eae9002c3cc561d3360fd792 + symbols: config/GMPP01_00/rels/m443Dll/symbols.txt + splits: config/GMPP01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + hash: 4939f755142efe362f67898358fff1cdeffe508e + symbols: config/GMPP01_00/rels/m444dll/symbols.txt + splits: config/GMPP01_00/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + hash: 02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 + symbols: config/GMPP01_00/rels/m445Dll/symbols.txt + splits: config/GMPP01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + hash: 2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 + symbols: config/GMPP01_00/rels/m446dll/symbols.txt + splits: config/GMPP01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + hash: 0640357fe4d0148dac4bc382c8231410e24fe951 + symbols: config/GMPP01_00/rels/m447dll/symbols.txt + splits: config/GMPP01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + hash: 78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 + symbols: config/GMPP01_00/rels/m448Dll/symbols.txt + splits: config/GMPP01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + hash: fcf6e4b0089e19ffddf01a119c8c515a4acc943a + symbols: config/GMPP01_00/rels/m449Dll/symbols.txt + splits: config/GMPP01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + hash: ebcf95781e8078813ed041dd0a869ae2e413679b + symbols: config/GMPP01_00/rels/m450Dll/symbols.txt + splits: config/GMPP01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + hash: aa16b743f7b64f22abfd8bb93646883cc73bd7e0 + symbols: config/GMPP01_00/rels/m451Dll/symbols.txt + splits: config/GMPP01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + hash: f6fd7a6537e56c535d02ac4a48c9008605f93ea1 + symbols: config/GMPP01_00/rels/m453Dll/symbols.txt + splits: config/GMPP01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + hash: cc3431f55b523d474a952f3a0e927fac6b5402ab + symbols: config/GMPP01_00/rels/m455Dll/symbols.txt + splits: config/GMPP01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + hash: 09797251306bbd0f6fd712d6f832128ca8c58690 + symbols: config/GMPP01_00/rels/m456Dll/symbols.txt + splits: config/GMPP01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + hash: 8a992a09077fd5e1f6ca3e717547792938a519c1 + symbols: config/GMPP01_00/rels/m457Dll/symbols.txt + splits: config/GMPP01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + hash: 5dea2127d51d621b30d78b22cfa32327797e6e0b + symbols: config/GMPP01_00/rels/m458Dll/symbols.txt + splits: config/GMPP01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + hash: e96dafe5949909cb7cc839174aa38e8e6661a63b + symbols: config/GMPP01_00/rels/m459dll/symbols.txt + splits: config/GMPP01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + hash: ea1e0bda22675840d39c74117e2a11ffe45f8dd4 + symbols: config/GMPP01_00/rels/m460Dll/symbols.txt + splits: config/GMPP01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + hash: 8d515f3b92a786df53bb88291b5cfc4bc59a3c8d + symbols: config/GMPP01_00/rels/m461Dll/symbols.txt + splits: config/GMPP01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + hash: f02ba47e4459d9b0de174c5619a4efe61942962d + symbols: config/GMPP01_00/rels/m462Dll/symbols.txt + splits: config/GMPP01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + hash: 352ad6d84ded6cf28b9ff2f9e5da8812ac9164db + symbols: config/GMPP01_00/rels/m463Dll/symbols.txt + splits: config/GMPP01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + hash: 4705ada9d259a81ab2815fee3516f6217d848dd9 + symbols: config/GMPP01_00/rels/mentDll/symbols.txt + splits: config/GMPP01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/messDll.rel + hash: b966ce340e98dbda624ff80f96c78d51ff1ed687 + symbols: config/GMPP01_00/rels/messDll/symbols.txt + splits: config/GMPP01_00/rels/messDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + hash: 7a3fed787df2d1bc942efd56a160eaf59605b94f + symbols: config/GMPP01_00/rels/mgmodedll/symbols.txt + splits: config/GMPP01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + hash: 1e5bf1777b1470fcead2174c25b291b8f0513284 + symbols: config/GMPP01_00/rels/modeltestDll/symbols.txt + splits: config/GMPP01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + hash: d958038528a774801a4f5a0aee9e7aaae4bd94ce + symbols: config/GMPP01_00/rels/modeseldll/symbols.txt + splits: config/GMPP01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + hash: a3e1e06937703f98191f4080e092bf06c4f449b3 + symbols: config/GMPP01_00/rels/mpexDll/symbols.txt + splits: config/GMPP01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + hash: 86ff8288bb92472376d02cade1d3c9603b613c57 + symbols: config/GMPP01_00/rels/msetupDll/symbols.txt + splits: config/GMPP01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + hash: ea9878a7af1787c0789d29bf812e1d9972c2ff20 + symbols: config/GMPP01_00/rels/mstory2Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + hash: 58decb3dba8e167bd2c238a55339888469a07381 + symbols: config/GMPP01_00/rels/mstory3Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + hash: a8eee3981f4965412490cb9eef76aaa798957db1 + symbols: config/GMPP01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + hash: 0fd54549734531303fb5471690cee96709833114 + symbols: config/GMPP01_00/rels/mstoryDll/symbols.txt + splits: config/GMPP01_00/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + hash: 45619d95e61d9296f25d94d7c6756f397fb89bee + symbols: config/GMPP01_00/rels/nisDll/symbols.txt + splits: config/GMPP01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + hash: 1304967e3aa58a46492d4c736a7c86cf8a3b2e11 + symbols: config/GMPP01_00/rels/option/symbols.txt + splits: config/GMPP01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + hash: 7845814c6be2546930cfd8e0b9dec263fc1a959f + symbols: config/GMPP01_00/rels/present/symbols.txt + splits: config/GMPP01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + hash: d9bd10433d1e2a6c0c4d9f942b766d743f99deec + symbols: config/GMPP01_00/rels/resultDll/symbols.txt + splits: config/GMPP01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + hash: c13262cf14f00e1d70bd65d20bbf988479816ca7 + symbols: config/GMPP01_00/rels/safDll/symbols.txt + splits: config/GMPP01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + hash: 51f53e1398c86c5a22251a457e3af86339b4b11f + symbols: config/GMPP01_00/rels/selmenuDll/symbols.txt + splits: config/GMPP01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + hash: af869e37d004f687fab2ff6897d75d6c15e31a00 + symbols: config/GMPP01_00/rels/staffDll/symbols.txt + splits: config/GMPP01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + hash: 21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 + symbols: config/GMPP01_00/rels/subchrselDll/symbols.txt + splits: config/GMPP01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + hash: 70ee81af67a4f55de2fef65823583d22312f09be + symbols: config/GMPP01_00/rels/w01Dll/symbols.txt + splits: config/GMPP01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + hash: 33b5663ece821df4dbc50870e00de0e22e099efd + symbols: config/GMPP01_00/rels/w02Dll/symbols.txt + splits: config/GMPP01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + hash: 97aa16f847cdf2d6fd014f06df14c55f5f02024d + symbols: config/GMPP01_00/rels/w03Dll/symbols.txt + splits: config/GMPP01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + hash: 135cf03d803b9d8d39721b2a96769909aa719ee6 + symbols: config/GMPP01_00/rels/w04Dll/symbols.txt + splits: config/GMPP01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + hash: e6d07092b69cc3b0514d9c12e3f5949edeb25f5f + symbols: config/GMPP01_00/rels/w05Dll/symbols.txt + splits: config/GMPP01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + hash: 0d5445461f58fac4c043c75bed7237b7f4045188 + symbols: config/GMPP01_00/rels/w06Dll/symbols.txt + splits: config/GMPP01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + hash: 5678fedd4a0490aeb9703328e959fdedea7da117 + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 + symbols: config/GMPP01_00/rels/w20Dll/symbols.txt + splits: config/GMPP01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + hash: 8ea052be8c7585a1ab152682a0698b631c5b566f + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 + symbols: config/GMPP01_00/rels/ztardll/symbols.txt + splits: config/GMPP01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + hash: d59c60b0149a85782fa98d1a4da6cc768a09b473 + symbols: config/GMPP01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPP01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a + symbols: config/GMPP01_00/rels/m300Dll/symbols.txt + splits: config/GMPP01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + hash: c457a4a45ebae776331484ba94f5798041a77a57 + symbols: config/GMPP01_00/rels/m401Dll/symbols.txt + splits: config/GMPP01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_fr + binary: coveropen_fr.bin + header: coveropen_fr.inc +- symbol: fatalerror_fr + binary: fatalerror_fr.bin + header: fatalerror_fr.inc +- symbol: loading_fr + binary: loading_fr.bin + header: loading_fr.inc +- symbol: nodisc_fr + binary: nodisc_fr.bin + header: nodisc_fr.inc +- symbol: retryerror_fr + binary: retryerror_fr.bin + header: retryerror_fr.inc +- symbol: wrongdisc_fr + binary: wrongdisc_fr.bin + header: wrongdisc_fr.inc +- symbol: coveropen_ge + binary: coveropen_ge.bin + header: coveropen_ge.inc +- symbol: fatalerror_ge + binary: fatalerror_ge.bin + header: fatalerror_ge.inc +- symbol: loading_ge + binary: loading_ge.bin + header: loading_ge.inc +- symbol: nodisc_ge + binary: nodisc_ge.bin + header: nodisc_ge.inc +- symbol: retryerror_ge + binary: retryerror_ge.bin + header: retryerror_ge.inc +- symbol: wrongdisc_ge + binary: wrongdisc_ge.bin + header: wrongdisc_ge.inc +- symbol: coveropen_it + binary: coveropen_it.bin + header: coveropen_it.inc +- symbol: fatalerror_it + binary: fatalerror_it.bin + header: fatalerror_it.inc +- symbol: loading_it + binary: loading_it.bin + header: loading_it.inc +- symbol: nodisc_it + binary: nodisc_it.bin + header: nodisc_it.inc +- symbol: retryerror_it + binary: retryerror_it.bin + header: retryerror_it.inc +- symbol: wrongdisc_it + binary: wrongdisc_it.bin + header: wrongdisc_it.inc +- symbol: coveropen_sp + binary: coveropen_sp.bin + header: coveropen_sp.inc +- symbol: fatalerror_sp + binary: fatalerror_sp.bin + header: fatalerror_sp.inc +- symbol: loading_sp + binary: loading_sp.bin + header: loading_sp.inc +- symbol: nodisc_sp + binary: nodisc_sp.bin + header: nodisc_sp.inc +- symbol: retryerror_sp + binary: retryerror_sp.bin + header: retryerror_sp.inc +- symbol: wrongdisc_sp + binary: wrongdisc_sp.bin + header: wrongdisc_sp.inc diff --git a/config/GMPP01_00/rels/E3setupDLL/splits.txt b/config/GMPP01_00/rels/E3setupDLL/splits.txt new file mode 100644 index 00000000..d5a4c674 --- /dev/null +++ b/config/GMPP01_00/rels/E3setupDLL/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .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 diff --git a/config/GMPP01_00/rels/E3setupDLL/symbols.txt b/config/GMPP01_00/rels/E3setupDLL/symbols.txt new file mode 100644 index 00000000..4089dcf6 --- /dev/null +++ b/config/GMPP01_00/rels/E3setupDLL/symbols.txt @@ -0,0 +1,205 @@ +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 +ObjectSetup = .text:0x000013DC; // type:function size:0x108 +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 +E3PadRead = .text:0x00001E54; // type:function size:0x1C0 +MotionMaxTimeGet = .text:0x00002014; // type:function size:0x78 +MotionShiftTimeGet = .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 +CheckCharSel = .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 +UpdateRumbleCfg = .text:0x000041A4; // type:function size:0x2DC scope:local +InitRumbleCfg = .text:0x00004480; // type:function size:0x520 scope:local +UpdateModeSel = .text:0x000049A0; // type:function size:0x59C scope:local +InitModeSel = .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_0 = .rodata:0x00000000; // type:object size:0x10 +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_2_data_0 = .data:0x00000000; // type:object size:0x24 data:float +lbl_2_data_24 = .data:0x00000024; // type:object size:0x11 scope:local 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 data:string +lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16 data:string +lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16 data:string +lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 data:string +lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD data:string +lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 data:string +lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD data:string +lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 data:string +lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 data:string +lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 data:string +lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 data:string +lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 data:string +lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x16 data:string +mgNameTestTbl = .data:0x000001C0; // type:object size:0x34 scope:local +cursorYOfsTbl = .data:0x000001F4; // type:object size:0x14 scope:local data:float +mgPicTbl = .data:0x00000208; // type:object size:0x34 scope:local +startText = .data:0x0000023C; // type:object size:0x10 scope:local data:string +shadowPos = .data:0x00000250; // type:object size:0xC scope:local +shadowTarget = .data:0x0000025C; // type:object size:0xC scope:local +shadowUp = .data:0x00000268; // type:object size:0xC scope:local +lbl_2_data_274 = .data:0x00000274; // type:object size:0x60 data:float +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 scope:local +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 data:float +charComSfxTbl = .data:0x00000378; // type:object size:0x20 scope:local +lbl_2_data_398 = .data:0x00000398; // type:object size:0xF scope:local data:string +charSpriteTbl = .data:0x000003A8; // type:object size:0x20 scope:local +cursorSpriteTbl = .data:0x000003C8; // type:object size:0x14 scope:local +hiliteSprTbl = .data:0x000003DC; // type:object size:0x14 scope:local +rumbleMess = .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 +camViewTbl = .data:0x00000418; // type:object size:0x60 scope:local data:float +lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 data:float +lbl_2_data_49C = .data:0x0000049C; // type:object size:0x24 data:float +lbl_2_data_4C0 = .data:0x000004C0; // type:object size:0x10 +lbl_2_bss_0 = .bss:0x00000000; // type:object size:0xA data:2byte +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_E = .bss:0x0000000E; // 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 +mgPicObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +mgSelectObj = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +mgInterfaceObj = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +mgDefault = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +repBtn = .bss:0x00000028; // type:object size:0x2 scope:local data:2byte +lbl_2_bss_2A = .bss:0x0000002A; // type:object size:0xA data:2byte +lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 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 +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +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 +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 +e3OvlWatchObj = .bss:0x00000090; // 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 +e3ExitEnableF = .bss:0x000000B4; // type:object size:0x4 data:4byte +e3EvtNo = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte +e3ConfigPlayerCnt = .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 diff --git a/config/GMPP01_00/rels/_minigameDll/splits.txt b/config/GMPP01_00/rels/_minigameDll/splits.txt new file mode 100644 index 00000000..7a4d7e18 --- /dev/null +++ b/config/GMPP01_00/rels/_minigameDll/splits.txt @@ -0,0 +1,14 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/_minigameDLL/_minigameDLL.c: + .text start:0x000000A0 end:0x000000F0 + .rodata start:0x00000000 end:0x00000010 + .data start:0x00000000 end:0x00000014 diff --git a/config/GMPP01_00/rels/_minigameDll/symbols.txt b/config/GMPP01_00/rels/_minigameDll/symbols.txt new file mode 100644 index 00000000..032e2444 --- /dev/null +++ b/config/GMPP01_00/rels/_minigameDll/symbols.txt @@ -0,0 +1,7 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x2C +fn_1_CC = .text:0x000000CC; // type:function size:0x24 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 data:string diff --git a/config/GMPP01_00/rels/bootDll/splits.txt b/config/GMPP01_00/rels/bootDll/splits.txt new file mode 100644 index 00000000..593d873d --- /dev/null +++ b/config/GMPP01_00/rels/bootDll/splits.txt @@ -0,0 +1,21 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/bootDll/main.c: + .text start:0x000000A0 end:0x00002AE0 + .rodata start:0x00000000 end:0x000000F8 + .data start:0x00000000 end:0x00003120 + .bss start:0x00000000 end:0x00000060 + +REL/bootDll/language.c: + .text start:0x00002AE0 end:0x00003D9C + .rodata start:0x000000F8 end:0x000001A0 + .data start:0x00003120 end:0x00003156 diff --git a/config/GMPP01_00/rels/bootDll/symbols.txt b/config/GMPP01_00/rels/bootDll/symbols.txt new file mode 100644 index 00000000..fa5f8812 --- /dev/null +++ b/config/GMPP01_00/rels/bootDll/symbols.txt @@ -0,0 +1,110 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x204 +BootExec = .text:0x000002A4; // type:function size:0x8B4 +UpdateDemoMess = .text:0x00000B58; // type:function size:0xC8 scope:local +DebugCamOutView = .text:0x00000C20; // type:function size:0x3B4 +DebugCamUpdate = .text:0x00000FD4; // type:function size:0xB88 +BootTitleCreate = .text:0x00001B5C; // type:function size:0x460 +BootTitleExec = .text:0x00001FBC; // type:function size:0xAA0 +NintendoDataDecode = .text:0x00002A5C; // type:function size:0x84 +LanguageMenuExec = .text:0x00002AE0; // type:function size:0x10C8 +LanguageBootGet = .text:0x00003BA8; // type:function size:0x1F4 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string +lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string +demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte +debugCamTbl = .data:0x00000050; // type:object size:0x4 scope:local +lbl_1_data_54 = .data:0x00000054; // type:object size:0x1A data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x13 data:string +lbl_1_data_81 = .data:0x00000081; // type:object size:0x1F +nintendoData = .data:0x000000A0; // type:object size:0x307D align:32 +flagFileTbl = .data:0x00003120; // type:object size:0x14 scope:local +lbl_1_data_3134 = .data:0x00003134; // type:object size:0x5 data:string +lbl_1_data_3139 = .data:0x00003139; // type:object size:0xD data:string +lbl_1_data_3146 = .data:0x00003146; // type:object size:0x10 data:string +debugCamOnF = .bss:0x00000000; // type:object size:0x4 data:4byte +initLanguageF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4 = .bss:0x00000008; // type:object size:0x2 +bootGrpId = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte +titleMdlId = .bss:0x0000000C; // type:object size:0x6 scope:local data:2byte +demoWinId = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_10 = .bss:0x00000014; // type:object size:0xC data:float +debugCamZoom = .bss:0x00000020; // type:object size:0x8 data:float +debugCamPos = .bss:0x00000028; // type:object size:0x18 data:float +debugCamRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +debugOutView = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_00/rels/instDll/splits.txt b/config/GMPP01_00/rels/instDll/splits.txt new file mode 100644 index 00000000..83d6ff27 --- /dev/null +++ b/config/GMPP01_00/rels/instDll/splits.txt @@ -0,0 +1,21 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x00000208 + .data start:0x00000000 end:0x00000150 + .bss start:0x00000000 end:0x00000064 + +REL/instDll/font.c: + .text start:0x00005EA4 end:0x0000629C + .rodata start:0x00000208 end:0x00000210 + .data start:0x00000150 end:0x00000610 diff --git a/config/GMPP01_00/rels/instDll/symbols.txt b/config/GMPP01_00/rels/instDll/symbols.txt new file mode 100644 index 00000000..da39c5b5 --- /dev/null +++ b/config/GMPP01_00/rels/instDll/symbols.txt @@ -0,0 +1,149 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x8F4 +InstMain = .text:0x00000994; // type:function size:0xE50 scope:local +InstPlayerMain = .text:0x000017E4; // type:function size:0xA28 scope:local +InstHostMain = .text:0x0000220C; // type:function size:0x5F8 scope:local +InstWinMain = .text:0x00002804; // type:function size:0x79C scope:local +InstNameMain = .text:0x00002FA0; // type:function size:0x11D4 scope:local +CameraOutView = .text:0x00004174; // type:function size:0x3B4 scope:local +CameraDebug = .text:0x00004528; // type:function size:0xB88 scope:local +InstPicDraw = .text:0x000050B0; // type:function size:0xAB4 scope:local +ShadowDraw = .text:0x00005B64; // type:function size:0x340 scope:local +FontCreate = .text:0x00005EA4; // type:function size:0x3F8 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +instMode = .data:0x00000000; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 scope:local data:string +instGrpTbl = .data:0x00000026; // type:object size:0x20 scope:local +instPlayerNumTbl = .data:0x00000046; // type:object size:0x8 scope:local +instBoxFile = .data:0x00000050; // type:object size:0x20 scope:local +instBackFile = .data:0x00000070; // type:object size:0x20 scope:local +lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 scope:local data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 scope:local data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 scope:local data:string +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 scope:local data:string +playerPosNameTbl = .data:0x000000B0; // type:object size:0x10 scope:local +playerDelayTbl = .data:0x000000C0; // type:object size:0x4 scope:local +hostFileTbl = .data:0x000000C4; // type:object size:0x48 scope:local +hostSeTbl = .data:0x0000010C; // type:object size:0x18 scope:local +instNamePosTbl = .data:0x00000124; // type:object size:0x20 scope:local data:float +cameraMask$858 = .data:0x00000144; // type:object size:0x4 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0x4 scope:local +instPicRadius = .data:0x0000014C; // type:object size:0x4 scope:local data:float +FontCharFile = .data:0x00000150; // type:object size:0x4C0 scope:local +debugCamOnF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +instBusyF = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte +instPage = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +LanguageNo = .bss:0x00000008; // type:object size:0x1 scope:local data:byte +instFov = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +instMesOfs = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte +instHostNo = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +instMgNo = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +instPicAnim = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +instBoxMdlId = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +cameraZoom = .bss:0x00000020; // type:object size:0x8 data:float +cameraPos = .bss:0x00000028; // type:object size:0x18 data:float +cameraRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +outViewObj = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_00/rels/m300Dll/splits.txt b/config/GMPP01_00/rels/m300Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m300Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m300Dll/symbols.txt b/config/GMPP01_00/rels/m300Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m300Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m302Dll/splits.txt b/config/GMPP01_00/rels/m302Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m302Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m302Dll/symbols.txt b/config/GMPP01_00/rels/m302Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m302Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m303Dll/splits.txt b/config/GMPP01_00/rels/m303Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m303Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m303Dll/symbols.txt b/config/GMPP01_00/rels/m303Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m303Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m330Dll/splits.txt b/config/GMPP01_00/rels/m330Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m330Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m330Dll/symbols.txt b/config/GMPP01_00/rels/m330Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m330Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m333Dll/splits.txt b/config/GMPP01_00/rels/m333Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m333Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m333Dll/symbols.txt b/config/GMPP01_00/rels/m333Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m333Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m401Dll/splits.txt b/config/GMPP01_00/rels/m401Dll/splits.txt new file mode 100644 index 00000000..d7d2d541 --- /dev/null +++ b/config/GMPP01_00/rels/m401Dll/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x00010244 + .rodata start:0x00000000 end:0x00000450 + .data start:0x00000000 end:0x00000478 + .bss start:0x00000000 end:0x00000120 + +REL/m401Dll/main_ex.c: + .text start:0x00010244 end:0x00014E18 + .rodata start:0x00000450 end:0x000005E8 + .data start:0x00000478 end:0x00000498 + .bss start:0x00000120 end:0x00000254 diff --git a/config/GMPP01_00/rels/m401Dll/symbols.txt b/config/GMPP01_00/rels/m401Dll/symbols.txt new file mode 100644 index 00000000..bab1a956 --- /dev/null +++ b/config/GMPP01_00/rels/m401Dll/symbols.txt @@ -0,0 +1,522 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .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 +fn_2_AEC = .text:0x00000AEC; // type:function size:0x130 +fn_2_C1C = .text:0x00000C1C; // type:function size:0x5B4 +fn_2_11D0 = .text:0x000011D0; // type:function size:0x3F4 +fn_2_15C4 = .text:0x000015C4; // type:function size:0xD8 +fn_2_169C = .text:0x0000169C; // type:function size:0x1BC +fn_2_1858 = .text:0x00001858; // type:function size:0x1E0 +fn_2_1A38 = .text:0x00001A38; // type:function size:0x148 +fn_2_1B80 = .text:0x00001B80; // type:function size:0x170 +fn_2_1CF0 = .text:0x00001CF0; // type:function size:0xF8 +fn_2_1DE8 = .text:0x00001DE8; // type:function size:0x2C8 +fn_2_20B0 = .text:0x000020B0; // type:function size:0x148 +fn_2_21F8 = .text:0x000021F8; // type:function size:0x4E8 +fn_2_26E0 = .text:0x000026E0; // type:function size:0x5DC +fn_2_2CBC = .text:0x00002CBC; // type:function size:0xA8 +fn_2_2D64 = .text:0x00002D64; // type:function size:0x68 +fn_2_2DCC = .text:0x00002DCC; // type:function size:0x54 +fn_2_2E20 = .text:0x00002E20; // type:function size:0xB0 +fn_2_2ED0 = .text:0x00002ED0; // type:function size:0xCC +fn_2_2F9C = .text:0x00002F9C; // type:function size:0x4 +fn_2_2FA0 = .text:0x00002FA0; // type:function size:0x4 +fn_2_2FA4 = .text:0x00002FA4; // type:function size:0x410 +fn_2_33B4 = .text:0x000033B4; // type:function size:0x104 +fn_2_34B8 = .text:0x000034B8; // type:function size:0x380 +fn_2_3838 = .text:0x00003838; // type:function size:0x2EC +fn_2_3B24 = .text:0x00003B24; // type:function size:0x404 +fn_2_3F28 = .text:0x00003F28; // type:function size:0x978 +fn_2_48A0 = .text:0x000048A0; // type:function size:0x1420 +fn_2_5CC0 = .text:0x00005CC0; // type:function size:0x93C +fn_2_65FC = .text:0x000065FC; // type:function size:0x4F8 +fn_2_6AF4 = .text:0x00006AF4; // type:function size:0x50 +fn_2_6B44 = .text:0x00006B44; // type:function size:0x150 +fn_2_6C94 = .text:0x00006C94; // type:function size:0x9AC +fn_2_7640 = .text:0x00007640; // type:function size:0x6C +fn_2_76AC = .text:0x000076AC; // type:function size:0x280 +fn_2_792C = .text:0x0000792C; // type:function size:0x310 +fn_2_7C3C = .text:0x00007C3C; // type:function size:0x78 +fn_2_7CB4 = .text:0x00007CB4; // type:function size:0x1B8 +fn_2_7E6C = .text:0x00007E6C; // type:function size:0x70 +fn_2_7EDC = .text:0x00007EDC; // type:function size:0x574 +fn_2_8450 = .text:0x00008450; // type:function size:0x2EC +fn_2_873C = .text:0x0000873C; // type:function size:0x12C +fn_2_8868 = .text:0x00008868; // type:function size:0x100 +fn_2_8968 = .text:0x00008968; // type:function size:0x1F0 +fn_2_8B58 = .text:0x00008B58; // type:function size:0x100 +fn_2_8C58 = .text:0x00008C58; // type:function size:0x21C +fn_2_8E74 = .text:0x00008E74; // type:function size:0x338 +fn_2_91AC = .text:0x000091AC; // type:function size:0xEC +fn_2_9298 = .text:0x00009298; // type:function size:0x34C +fn_2_95E4 = .text:0x000095E4; // type:function size:0x150 +fn_2_9734 = .text:0x00009734; // type:function size:0x68 +fn_2_979C = .text:0x0000979C; // type:function size:0xF0 +fn_2_988C = .text:0x0000988C; // type:function size:0x118 +fn_2_99A4 = .text:0x000099A4; // type:function size:0x1EC +fn_2_9B90 = .text:0x00009B90; // type:function size:0x170 +fn_2_9D00 = .text:0x00009D00; // type:function size:0x128 +fn_2_9E28 = .text:0x00009E28; // type:function size:0x288 +fn_2_A0B0 = .text:0x0000A0B0; // type:function size:0x268 +fn_2_A318 = .text:0x0000A318; // type:function size:0x58C +fn_2_A8A4 = .text:0x0000A8A4; // type:function size:0x70 +fn_2_A914 = .text:0x0000A914; // type:function size:0x2C +fn_2_A940 = .text:0x0000A940; // type:function size:0x2EC +fn_2_AC2C = .text:0x0000AC2C; // type:function size:0x1164 +fn_2_BD90 = .text:0x0000BD90; // type:function size:0x3A0 +fn_2_C130 = .text:0x0000C130; // type:function size:0x5B0 +fn_2_C6E0 = .text:0x0000C6E0; // type:function size:0x164 +fn_2_C844 = .text:0x0000C844; // type:function size:0x270 +fn_2_CAB4 = .text:0x0000CAB4; // type:function size:0x5D8 +fn_2_D08C = .text:0x0000D08C; // type:function size:0xF8 +fn_2_D184 = .text:0x0000D184; // type:function size:0x268 +fn_2_D3EC = .text:0x0000D3EC; // type:function size:0x4E4 +fn_2_D8D0 = .text:0x0000D8D0; // type:function size:0x300 +fn_2_DBD0 = .text:0x0000DBD0; // type:function size:0x250 +fn_2_DE20 = .text:0x0000DE20; // type:function size:0xA0 +fn_2_DEC0 = .text:0x0000DEC0; // type:function size:0x390 +fn_2_E250 = .text:0x0000E250; // type:function size:0x118 +fn_2_E368 = .text:0x0000E368; // type:function size:0xBC +fn_2_E424 = .text:0x0000E424; // type:function size:0x24C +fn_2_E670 = .text:0x0000E670; // type:function size:0x30 +fn_2_E6A0 = .text:0x0000E6A0; // type:function size:0x20 +fn_2_E6C0 = .text:0x0000E6C0; // type:function size:0x2C +fn_2_E6EC = .text:0x0000E6EC; // type:function size:0x1090 +fn_2_F77C = .text:0x0000F77C; // type:function size:0x4C8 +fn_2_FC44 = .text:0x0000FC44; // type:function size:0x358 +fn_2_FF9C = .text:0x0000FF9C; // type:function size:0x2A8 +fn_2_10244 = .text:0x00010244; // type:function size:0x1DC +fn_2_10420 = .text:0x00010420; // type:function size:0x2F4 +fn_2_10714 = .text:0x00010714; // type:function size:0x8C +fn_2_107A0 = .text:0x000107A0; // type:function size:0x12C +fn_2_108CC = .text:0x000108CC; // type:function size:0xB8 +fn_2_10984 = .text:0x00010984; // type:function size:0x88 +fn_2_10A0C = .text:0x00010A0C; // type:function size:0x80 +fn_2_10A8C = .text:0x00010A8C; // type:function size:0x924 +fn_2_113B0 = .text:0x000113B0; // type:function size:0x504 +fn_2_118B4 = .text:0x000118B4; // type:function size:0x1B8 +fn_2_11A6C = .text:0x00011A6C; // type:function size:0x110 +fn_2_11B7C = .text:0x00011B7C; // type:function size:0xB8 +fn_2_11C34 = .text:0x00011C34; // type:function size:0x110 +fn_2_11D44 = .text:0x00011D44; // type:function size:0x104 +fn_2_11E48 = .text:0x00011E48; // type:function size:0xB8 +fn_2_11F00 = .text:0x00011F00; // type:function size:0xB8 +fn_2_11FB8 = .text:0x00011FB8; // type:function size:0x444 +fn_2_123FC = .text:0x000123FC; // type:function size:0x2D0 +fn_2_126CC = .text:0x000126CC; // type:function size:0x2C +fn_2_126F8 = .text:0x000126F8; // type:function size:0x43C +fn_2_12B34 = .text:0x00012B34; // type:function size:0x4EC +fn_2_13020 = .text:0x00013020; // type:function size:0x4F0 +fn_2_13510 = .text:0x00013510; // type:function size:0x670 +fn_2_13B80 = .text:0x00013B80; // type:function size:0x634 +fn_2_141B4 = .text:0x000141B4; // type:function size:0x120 +fn_2_142D4 = .text:0x000142D4; // type:function size:0x4 +fn_2_142D8 = .text:0x000142D8; // type:function size:0x36C +fn_2_14644 = .text:0x00014644; // type:function size:0xF8 +fn_2_1473C = .text:0x0001473C; // type:function size:0x7C +fn_2_147B8 = .text:0x000147B8; // type:function size:0x660 +_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 scope:local data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 scope:local data:4byte +lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 scope:local data:2byte +lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 scope:local data:double +lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float +lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 +lbl_2_data_14 = .data:0x00000014; // type:object size:0xC +lbl_2_data_20 = .data:0x00000020; // type:object size:0xC +lbl_2_data_2C = .data:0x0000002C; // type:object size:0x4 +lbl_2_data_30 = .data:0x00000030; // type:object size:0xC data:float +lbl_2_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_2_data_48 = .data:0x00000048; // type:object size:0xC data:float +lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B scope:local data:string +lbl_2_data_6F = .data:0x0000006F; // type:object size:0x11 +lbl_2_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_2_data_A0 = .data:0x000000A0; // type:object size:0x14 +lbl_2_data_B4 = .data:0x000000B4; // type:object size:0x18 +lbl_2_data_CC = .data:0x000000CC; // type:object size:0x28 +lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 scope:local data:string +lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 scope:local data:string +lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 scope:local data:string +lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 scope:local data:string +lbl_2_data_118 = .data:0x00000118; // type:object size:0xC +lbl_2_data_124 = .data:0x00000124; // type:object size:0x34 data:4byte +lbl_2_data_158 = .data:0x00000158; // type:object size:0x140 +lbl_2_data_298 = .data:0x00000298; // type:object size:0x30 +lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30 +jumptable_2_data_2F8 = .data:0x000002F8; // type:object size:0x30 scope:local +lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8 +lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0 +lbl_2_data_424 = .data:0x00000424; // type:object size:0x8 +lbl_2_data_42C = .data:0x0000042C; // type:object size:0x28 +lbl_2_data_454 = .data:0x00000454; // type:object size:0xC scope:local data:string +lbl_2_data_460 = .data:0x00000460; // type:object size:0xC +lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 scope:local data:string +lbl_2_data_471 = .data:0x00000471; // type:object size:0x7 +jumptable_2_data_478 = .data:0x00000478; // type:object size:0x20 scope:local +lbl_2_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_2_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_2_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x10 data:4byte +lbl_2_bss_2C = .bss:0x0000002C; // type:object size:0xC data:float +lbl_2_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0xC data:float +lbl_2_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_2_bss_60 = .bss:0x00000060; // type:object size:0xC data:float +lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0xC data:float +lbl_2_bss_78 = .bss:0x00000078; // type:object size:0xC data:float +lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_2_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x14 data:4byte +lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x2 data:2byte +lbl_2_bss_AA = .bss:0x000000AA; // type:object size:0x8 data:2byte +lbl_2_bss_B2 = .bss:0x000000B2; // type:object size:0x8 data:2byte +lbl_2_bss_BA = .bss:0x000000BA; // 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:0x2 data:2byte +lbl_2_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_2_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_2_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_2_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_2_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_2_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_2_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_2_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_2_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_2_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_2_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_2_bss_100 = .bss:0x00000100; // type:object size:0x8 data:4byte +lbl_2_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_2_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_2_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_2_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_2_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_2_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_2_bss_120 = .bss:0x00000120; // type:object size:0x2 data:2byte +lbl_2_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_2_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_2_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:float +lbl_2_bss_134 = .bss:0x00000134; // type:object size:0x2 data:2byte +lbl_2_bss_136 = .bss:0x00000136; // type:object size:0x8 +lbl_2_bss_13E = .bss:0x0000013E; // type:object size:0xE2 +lbl_2_bss_220 = .bss:0x00000220; // type:object size:0x18 data:4byte +lbl_2_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_2_bss_23C = .bss:0x0000023C; // type:object size:0x4 data:4byte +lbl_2_bss_240 = .bss:0x00000240; // type:object size:0x4 data:4byte +lbl_2_bss_244 = .bss:0x00000244; // type:object size:0x4 data:4byte +lbl_2_bss_248 = .bss:0x00000248; // type:object size:0x4 data:4byte +lbl_2_bss_24C = .bss:0x0000024C; // type:object size:0x4 data:4byte +lbl_2_bss_250 = .bss:0x00000250; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m402Dll/splits.txt b/config/GMPP01_00/rels/m402Dll/splits.txt new file mode 100644 index 00000000..61b6a88d --- /dev/null +++ b/config/GMPP01_00/rels/m402Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m402Dll/main.c: + .text start:0x00000000 end:0x00009B6C + .rodata start:0x00000000 end:0x00000194 + .data start:0x00000000 end:0x000004C6 + .bss start:0x00000000 end:0x00000210 diff --git a/config/GMPP01_00/rels/m402Dll/symbols.txt b/config/GMPP01_00/rels/m402Dll/symbols.txt new file mode 100644 index 00000000..d31e3908 --- /dev/null +++ b/config/GMPP01_00/rels/m402Dll/symbols.txt @@ -0,0 +1,206 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 scope:local +fn_1_24 = .text:0x00000024; // type:function size:0x88 scope:local +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 scope:local +fn_1_150 = .text:0x00000150; // type:function size:0x24 scope:local +fn_1_174 = .text:0x00000174; // type:function size:0x164 scope:local +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C scope:local +fn_1_414 = .text:0x00000414; // type:function size:0x58 scope:local +fn_1_46C = .text:0x0000046C; // type:function size:0x114 scope:local +fn_1_580 = .text:0x00000580; // type:function size:0x204 scope:local +fn_1_798 = .text:0x00000784; // type:function size:0x240 scope:local +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 scope:local +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C scope:local +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 scope:local +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C scope:local +fn_1_1350 = .text:0x00001300; // type:function size:0x8C scope:local +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 scope:local +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 scope:local +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 scope:local +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 scope:local +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 scope:local +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 scope:local +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 scope:local +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C scope:local +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 scope:local +_prolog = .text:0x00002364; // type:function size:0x54 scope:global +_epilog = .text:0x000023B8; // type:function size:0x4C scope:global +fn_1_2454 = .text:0x00002404; // type:function size:0x2F0 scope:local +fn_1_2744 = .text:0x000026F4; // type:function size:0x64 scope:local +fn_1_27A8 = .text:0x00002758; // type:function size:0xD8 scope:local +fn_1_2880 = .text:0x00002830; // type:function size:0xF0 scope:local +fn_1_2970 = .text:0x00002920; // type:function size:0x1C0 scope:local +fn_1_2B30 = .text:0x00002AE0; // type:function size:0x28C scope:local +fn_1_2DBC = .text:0x00002D6C; // type:function size:0x380 scope:local +fn_1_313C = .text:0x000030EC; // type:function size:0xC8 scope:local +fn_1_3204 = .text:0x000031B4; // type:function size:0xF8C scope:local +fn_1_4190 = .text:0x00004140; // type:function size:0xF4 scope:local +fn_1_4284 = .text:0x00004234; // type:function size:0x154 scope:local +fn_1_43D8 = .text:0x00004388; // type:function size:0x1FF0 scope:local +fn_1_63C8 = .text:0x00006378; // type:function size:0x490 scope:local +fn_1_6858 = .text:0x00006808; // type:function size:0x4 scope:local +fn_1_685C = .text:0x0000680C; // type:function size:0x258 scope:local +fn_1_6AB4 = .text:0x00006A64; // type:function size:0x3B0 scope:local +fn_1_6E64 = .text:0x00006E14; // type:function size:0x1BC scope:local +fn_1_7020 = .text:0x00006FD0; // type:function size:0xC4 scope:local +fn_1_70E4 = .text:0x00007094; // type:function size:0x86C scope:local +fn_1_7950 = .text:0x00007900; // type:function size:0x19C scope:local +fn_1_7AEC = .text:0x00007A9C; // type:function size:0x25C scope:local +fn_1_7D48 = .text:0x00007CF8; // type:function size:0x4 scope:local +fn_1_7D4C = .text:0x00007CFC; // type:function size:0x134 scope:local +fn_1_7E80 = .text:0x00007E30; // type:function size:0x4 scope:local +fn_1_7E84 = .text:0x00007E34; // type:function size:0x1C4 scope:local +fn_1_8048 = .text:0x00007FF8; // type:function size:0x1D0 scope:local +fn_1_8218 = .text:0x000081C8; // type:function size:0xE38 scope:local +fn_1_9058 = .text:0x00009000; // type:function size:0x1EC scope:local +ObjectSetup = .text:0x000091EC; // type:function size:0x8B0 +fn_1_9AF4 = .text:0x00009A9C; // type:function size:0xD0 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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 scope:local +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC scope:local data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC scope:local +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC scope:local data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC scope:local +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC scope:local +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 scope:local +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC scope:local +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC scope:local +lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC scope:local +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 scope:local +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 scope:local +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 scope:local +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A scope:local data:string +lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 scope:local data:string +lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 scope:local data:string +lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F scope:local +jumptable_1_data_430 = .data:0x00000430; // type:object size:0x40 scope:local +lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 scope:local data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE scope:local +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 scope:local data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 scope:local +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 scope:local data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 scope:local data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC scope:local data:4byte diff --git a/config/GMPP01_00/rels/m403Dll/splits.txt b/config/GMPP01_00/rels/m403Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m403Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m403Dll/symbols.txt b/config/GMPP01_00/rels/m403Dll/symbols.txt new file mode 100644 index 00000000..33bec762 --- /dev/null +++ b/config/GMPP01_00/rels/m403Dll/symbols.txt @@ -0,0 +1,259 @@ +_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 +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 +fn_1_1214 = .text:0x00001214; // type:function size:0x60 +fn_1_1274 = .text:0x00001274; // type:function size:0x1EC +fn_1_1460 = .text:0x00001460; // type:function size:0x288 +fn_1_16E8 = .text:0x000016E8; // type:function size:0x104 +fn_1_17EC = .text:0x000017EC; // type:function size:0x274 +fn_1_1A60 = .text:0x00001A60; // type:function size:0xA0 +fn_1_1B00 = .text:0x00001B00; // type:function size:0x2B8 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x28 +fn_1_1DE0 = .text:0x00001DE0; // type:function size:0x388 +fn_1_2168 = .text:0x00002168; // type:function size:0x14C +fn_1_22B4 = .text:0x000022B4; // type:function size:0x2F4 +fn_1_25A8 = .text:0x000025A8; // type:function size:0xA44 +fn_1_2FEC = .text:0x00002FEC; // type:function size:0x824 +fn_1_3810 = .text:0x00003810; // type:function size:0x94 +fn_1_38A4 = .text:0x000038A4; // type:function size:0x2EC +fn_1_3B90 = .text:0x00003B90; // type:function size:0x1EC +fn_1_3D7C = .text:0x00003D7C; // type:function size:0xE0 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0x1C0 +fn_1_401C = .text:0x0000401C; // type:function size:0x9C +fn_1_40B8 = .text:0x000040B8; // type:function size:0x480 +fn_1_4538 = .text:0x00004538; // type:function size:0x54 +fn_1_458C = .text:0x0000458C; // type:function size:0x168 +fn_1_46F4 = .text:0x000046F4; // type:function size:0x120 +fn_1_4814 = .text:0x00004814; // type:function size:0x30C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x78 +fn_1_4B98 = .text:0x00004B98; // type:function size:0x11C +fn_1_4CB4 = .text:0x00004CB4; // type:function size:0x78 +fn_1_4D2C = .text:0x00004D2C; // type:function size:0x2D8 +fn_1_5004 = .text:0x00005004; // type:function size:0x2B8 +fn_1_52BC = .text:0x000052BC; // type:function size:0x154 +fn_1_5410 = .text:0x00005410; // type:function size:0x3E0 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x214 +fn_1_5A04 = .text:0x00005A04; // type:function size:0x198 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0xD8 +fn_1_5C74 = .text:0x00005C74; // type:function size:0xBC +fn_1_5D30 = .text:0x00005D30; // type:function size:0x33C +fn_1_606C = .text:0x0000606C; // type:function size:0x4B0 +fn_1_651C = .text:0x0000651C; // type:function size:0x260 +fn_1_677C = .text:0x0000677C; // type:function size:0x20 +fn_1_679C = .text:0x0000679C; // type:function size:0x84 +fn_1_6820 = .text:0x00006820; // type:function size:0x4 +fn_1_6824 = .text:0x00006824; // type:function size:0x16C +fn_1_6990 = .text:0x00006990; // type:function size:0x318 +fn_1_6CA8 = .text:0x00006CA8; // type:function size:0x240 +fn_1_6EE8 = .text:0x00006EE8; // type:function size:0x110 +fn_1_6FF8 = .text:0x00006FF8; // type:function size:0x400 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x5B4 +fn_1_79AC = .text:0x000079AC; // type:function size:0xFC +fn_1_7AA8 = .text:0x00007AA8; // type:function size:0x88 +fn_1_7B30 = .text:0x00007B30; // type:function size:0xB4 +fn_1_7BE4 = .text:0x00007BE4; // type:function size:0x4C +fn_1_7C30 = .text:0x00007C30; // type:function size:0x10 +fn_1_7C40 = .text:0x00007C40; // type:function size:0x20 +fn_1_7C60 = .text:0x00007C60; // type:function size:0x10 +fn_1_7C70 = .text:0x00007C70; // type:function size:0xA4 +fn_1_7D14 = .text:0x00007D14; // type:function size:0x274 +fn_1_7F88 = .text:0x00007F88; // type:function size:0x15C +fn_1_80E4 = .text:0x000080E4; // type:function size:0x180 +fn_1_8264 = .text:0x00008264; // type:function size:0x10 +fn_1_8274 = .text:0x00008274; // type:function size:0x10 +fn_1_8284 = .text:0x00008284; // type:function size:0x5C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x1A0 +fn_1_8480 = .text:0x00008480; // type:function size:0x200 +fn_1_8680 = .text:0x00008680; // type:function size:0x30 +fn_1_86B0 = .text:0x000086B0; // type:function size:0x8CC +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x9 data:byte +lbl_1_rodata_AD = .rodata:0x000000AD; // type:object size:0xB data:byte +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x20 +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x18 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0xC data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x18 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x14 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m404Dll/splits.txt b/config/GMPP01_00/rels/m404Dll/splits.txt new file mode 100644 index 00000000..a69fcd5d --- /dev/null +++ b/config/GMPP01_00/rels/m404Dll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x00000148 + .data start:0x00000000 end:0x00000A0C + .bss start:0x00000000 end:0x0000005C diff --git a/config/GMPP01_00/rels/m404Dll/symbols.txt b/config/GMPP01_00/rels/m404Dll/symbols.txt new file mode 100644 index 00000000..9a309233 --- /dev/null +++ b/config/GMPP01_00/rels/m404Dll/symbols.txt @@ -0,0 +1,155 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .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 +fn_1_400 = .text:0x00000400; // type:function size:0x384 +fn_1_784 = .text:0x00000784; // type:function size:0x5C +fn_1_7E0 = .text:0x000007E0; // type:function size:0x2BC +fn_1_A9C = .text:0x00000A9C; // type:function size:0x234 +fn_1_CD0 = .text:0x00000CD0; // type:function size:0x30 +fn_1_D00 = .text:0x00000D00; // type:function size:0xEC +fn_1_DEC = .text:0x00000DEC; // type:function size:0x5C +fn_1_E48 = .text:0x00000E48; // type:function size:0x8C +fn_1_ED4 = .text:0x00000ED4; // type:function size:0x9C +fn_1_F70 = .text:0x00000F70; // type:function size:0x1F0 +fn_1_1160 = .text:0x00001160; // type:function size:0x1E4 +fn_1_1344 = .text:0x00001344; // type:function size:0x7B8 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0x184 +fn_1_1C80 = .text:0x00001C80; // type:function size:0xA8 +fn_1_1D28 = .text:0x00001D28; // type:function size:0xD0 +fn_1_1DF8 = .text:0x00001DF8; // type:function size:0x38C +fn_1_2184 = .text:0x00002184; // type:function size:0xD38 +fn_1_2EBC = .text:0x00002EBC; // type:function size:0xB7C +fn_1_3A38 = .text:0x00003A38; // type:function size:0x3F4 +fn_1_3E2C = .text:0x00003E2C; // type:function size:0x104 +fn_1_3F30 = .text:0x00003F30; // type:function size:0x52C +fn_1_445C = .text:0x0000445C; // type:function size:0x44 +fn_1_44A0 = .text:0x000044A0; // type:function size:0x7DC +fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2D0 +fn_1_4F4C = .text:0x00004F4C; // type:function size:0x32C +fn_1_5278 = .text:0x00005278; // type:function size:0x2C4 +fn_1_553C = .text:0x0000553C; // type:function size:0x5C +fn_1_5598 = .text:0x00005598; // type:function size:0x58 +fn_1_55F0 = .text:0x000055F0; // type:function size:0x4 +fn_1_55F4 = .text:0x000055F4; // type:function size:0x1AC +fn_1_57A0 = .text:0x000057A0; // type:function size:0x4 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x140 +fn_1_58E4 = .text:0x000058E4; // type:function size:0x480 +fn_1_5D64 = .text:0x00005D64; // type:function size:0x110 +fn_1_5E74 = .text:0x00005E74; // type:function size:0x208 +fn_1_607C = .text:0x0000607C; // type:function size:0x1CC +fn_1_6248 = .text:0x00006248; // type:function size:0x1F8 +fn_1_6440 = .text:0x00006440; // type:function size:0x4C +fn_1_648C = .text:0x0000648C; // type:function size:0x250 +fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x20 scope:local data:byte +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x248 +lbl_1_data_248 = .data:0x00000248; // type:object size:0x260 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x290 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x38 data:float +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:float +lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float +lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC +lbl_1_data_798 = .data:0x00000798; // type:object size:0xC +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x23 scope:local data:string +lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte +jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local +lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C scope:local data:string +lbl_1_data_810 = .data:0x00000810; // type:object size:0xC +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x20 +lbl_1_data_86C = .data:0x0000086C; // type:object size:0x20 +lbl_1_data_88C = .data:0x0000088C; // type:object size:0x4 data:4byte +lbl_1_data_890 = .data:0x00000890; // type:object size:0x28 +lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x20 +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 +lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:wstring +lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x19 scope:local data:string +lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 +lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 scope:local data:string +lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 scope:local data:string +lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 scope:local data:string +lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 scope:local data:string +lbl_1_data_98C = .data:0x0000098C; // type:object size:0x10 +lbl_1_data_99C = .data:0x0000099C; // type:object size:0x10 +lbl_1_data_9AC = .data:0x000009AC; // type:object size:0x30 +lbl_1_data_9DC = .data:0x000009DC; // type:object size:0x18 data:4byte +lbl_1_data_9F4 = .data:0x000009F4; // type:object size:0x18 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m405Dll/splits.txt b/config/GMPP01_00/rels/m405Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m405Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m405Dll/symbols.txt b/config/GMPP01_00/rels/m405Dll/symbols.txt new file mode 100644 index 00000000..0dccfd63 --- /dev/null +++ b/config/GMPP01_00/rels/m405Dll/symbols.txt @@ -0,0 +1,256 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0xCC +fn_1_2430 = .text:0x00002430; // type:function size:0x88 +fn_1_24B8 = .text:0x000024B8; // type:function size:0x20C +fn_1_26C4 = .text:0x000026C4; // type:function size:0xF8 +fn_1_27BC = .text:0x000027BC; // type:function size:0x2A0 +fn_1_2A5C = .text:0x00002A5C; // type:function size:0xCF8 +fn_1_3754 = .text:0x00003754; // type:function size:0x778 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x24 +fn_1_3EF0 = .text:0x00003EF0; // type:function size:0xE4 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x6DC +fn_1_46B0 = .text:0x000046B0; // type:function size:0x828 +fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x4DC +fn_1_53B4 = .text:0x000053B4; // type:function size:0x12C +fn_1_54E0 = .text:0x000054E0; // type:function size:0x4C +fn_1_552C = .text:0x0000552C; // type:function size:0xE8 +fn_1_5614 = .text:0x00005614; // type:function size:0xF8 +_prolog = .text:0x0000570C; // type:function size:0x54 scope:global +_epilog = .text:0x00005760; // type:function size:0x4C scope:global +fn_1_57AC = .text:0x000057AC; // type:function size:0xA4 +fn_1_5850 = .text:0x00005850; // type:function size:0x288 +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x214 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x90 +fn_1_5D7C = .text:0x00005D7C; // type:function size:0x274 +fn_1_5FF0 = .text:0x00005FF0; // type:function size:0x57C +fn_1_656C = .text:0x0000656C; // type:function size:0x26C +fn_1_67D8 = .text:0x000067D8; // type:function size:0xA4 +fn_1_687C = .text:0x0000687C; // type:function size:0x330 +fn_1_6BAC = .text:0x00006BAC; // type:function size:0xD90 +fn_1_793C = .text:0x0000793C; // type:function size:0x828 +fn_1_8164 = .text:0x00008164; // type:function size:0x93C +fn_1_8AA0 = .text:0x00008AA0; // type:function size:0x798 +fn_1_9238 = .text:0x00009238; // type:function size:0x1A50 +fn_1_AC88 = .text:0x0000AC88; // type:function size:0x3CC +fn_1_B054 = .text:0x0000B054; // type:function size:0x4EC +fn_1_B540 = .text:0x0000B540; // type:function size:0x16C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x1 data:byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1 data:byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x1 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 data:2byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x48 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1 data:byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x14 +lbl_1_data_100 = .data:0x00000100; // type:object size:0xC +lbl_1_data_10C = .data:0x0000010C; // type:object size:0xC data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0xC data:4byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0xC data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0xC data:4byte +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xC data:4byte +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0xC +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 +lbl_1_data_170 = .data:0x00000170; // type:object size:0xC +lbl_1_data_17C = .data:0x0000017C; // type:object size:0xC +lbl_1_data_188 = .data:0x00000188; // type:object size:0x100 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x10 +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x50 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x18 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x14 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xA +lbl_1_data_346 = .data:0x00000346; // type:object size:0xA +lbl_1_data_350 = .data:0x00000350; // type:object size:0x8 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x8 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 +lbl_1_data_370 = .data:0x00000370; // type:object size:0x50 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x50 +lbl_1_data_410 = .data:0x00000410; // type:object size:0xC data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x16 data:string +lbl_1_data_432 = .data:0x00000432; // type:object size:0x1D data:string +lbl_1_data_44F = .data:0x0000044F; // type:object size:0x1D +jumptable_1_data_46C = .data:0x0000046C; // type:object size:0x24 scope:local +lbl_1_data_490 = .data:0x00000490; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x18 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x18 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x18 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x18 data:float +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x2 data:2byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x1 data:byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x500 data:float +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x2C data:4byte +lbl_1_bss_5D8 = .bss:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x4 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x4 data:4byte +lbl_1_bss_5E4 = .bss:0x000005E4; // type:object size:0x4 data:4byte +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x100 +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x40 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x4 data:float +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x2 data:2byte +lbl_1_bss_736 = .bss:0x00000736; // type:object size:0x2 data:2byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0x4 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x4 data:4byte +lbl_1_bss_740 = .bss:0x00000740; // type:object size:0x4 data:4byte +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0xC data:float +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0xC data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0xC data:float +lbl_1_bss_768 = .bss:0x00000768; // type:object size:0xC data:4byte +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:4byte +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x18 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m406Dll/splits.txt b/config/GMPP01_00/rels/m406Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m406Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m406Dll/symbols.txt b/config/GMPP01_00/rels/m406Dll/symbols.txt new file mode 100644 index 00000000..6be5c2a5 --- /dev/null +++ b/config/GMPP01_00/rels/m406Dll/symbols.txt @@ -0,0 +1,438 @@ +_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:0x318 +fn_1_3B8 = .text:0x000003B8; // type:function size:0x54 +fn_1_40C = .text:0x0000040C; // type:function size:0xD00 +fn_1_110C = .text:0x0000110C; // type:function size:0x5C +fn_1_1168 = .text:0x00001168; // type:function size:0xC4 +fn_1_122C = .text:0x0000122C; // type:function size:0x10 +fn_1_123C = .text:0x0000123C; // type:function size:0x38 +fn_1_1274 = .text:0x00001274; // type:function size:0x10 +fn_1_1284 = .text:0x00001284; // type:function size:0x38 +fn_1_12BC = .text:0x000012BC; // type:function size:0x84 +fn_1_1340 = .text:0x00001340; // type:function size:0x1DC +fn_1_151C = .text:0x0000151C; // type:function size:0x4 +fn_1_1520 = .text:0x00001520; // type:function size:0x4 +fn_1_1524 = .text:0x00001524; // type:function size:0xAC +fn_1_15D0 = .text:0x000015D0; // type:function size:0x26C +fn_1_183C = .text:0x0000183C; // type:function size:0x35C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x10 +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0x118 +fn_1_1CC0 = .text:0x00001CC0; // type:function size:0x250 +fn_1_1F10 = .text:0x00001F10; // type:function size:0x3F8 +fn_1_2308 = .text:0x00002308; // type:function size:0x624 +fn_1_292C = .text:0x0000292C; // type:function size:0x2C0 +fn_1_2BEC = .text:0x00002BEC; // type:function size:0x38 +fn_1_2C24 = .text:0x00002C24; // type:function size:0x440 +fn_1_3064 = .text:0x00003064; // type:function size:0xF4 +fn_1_3158 = .text:0x00003158; // type:function size:0xF2C +fn_1_4084 = .text:0x00004084; // type:function size:0x4E4 +fn_1_4568 = .text:0x00004568; // type:function size:0x54 +fn_1_45BC = .text:0x000045BC; // type:function size:0x3A8 +fn_1_4964 = .text:0x00004964; // type:function size:0x1810 +fn_1_6174 = .text:0x00006174; // type:function size:0x190 +fn_1_6304 = .text:0x00006304; // type:function size:0x1F4 +fn_1_64F8 = .text:0x000064F8; // type:function size:0x1FC +fn_1_66F4 = .text:0x000066F4; // type:function size:0xD8 +fn_1_67CC = .text:0x000067CC; // type:function size:0x1A0 +fn_1_696C = .text:0x0000696C; // type:function size:0x54 +fn_1_69C0 = .text:0x000069C0; // type:function size:0x84 +fn_1_6A44 = .text:0x00006A44; // type:function size:0x118 +fn_1_6B5C = .text:0x00006B5C; // type:function size:0x58 +fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x370 +fn_1_6F24 = .text:0x00006F24; // type:function size:0xD8 +fn_1_6FFC = .text:0x00006FFC; // type:function size:0x180 +fn_1_717C = .text:0x0000717C; // type:function size:0x48 +fn_1_71C4 = .text:0x000071C4; // type:function size:0x134 +fn_1_72F8 = .text:0x000072F8; // type:function size:0x3B0 +fn_1_76A8 = .text:0x000076A8; // type:function size:0x70 +fn_1_7718 = .text:0x00007718; // type:function size:0xD8 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x1C0 +fn_1_79B0 = .text:0x000079B0; // type:function size:0x48 +fn_1_79F8 = .text:0x000079F8; // type:function size:0x134 +fn_1_7B2C = .text:0x00007B2C; // type:function size:0x70 +fn_1_7B9C = .text:0x00007B9C; // type:function size:0xB0 +fn_1_7C4C = .text:0x00007C4C; // type:function size:0x160 +fn_1_7DAC = .text:0x00007DAC; // type:function size:0x4 +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x120 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xB0 +fn_1_7F80 = .text:0x00007F80; // type:function size:0x180 +fn_1_8100 = .text:0x00008100; // type:function size:0x4 +fn_1_8104 = .text:0x00008104; // type:function size:0x140 +fn_1_8244 = .text:0x00008244; // type:function size:0x84 +fn_1_82C8 = .text:0x000082C8; // type:function size:0xCD0 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x248 +fn_1_91E0 = .text:0x000091E0; // type:function size:0x2DC +fn_1_94BC = .text:0x000094BC; // type:function size:0x4 +fn_1_94C0 = .text:0x000094C0; // type:function size:0xAB8 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x300 +fn_1_A278 = .text:0x0000A278; // type:function size:0x50 +fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0xAEC +fn_1_ADB4 = .text:0x0000ADB4; // type:function size:0x350 +fn_1_B104 = .text:0x0000B104; // type:function size:0xDC +fn_1_B1E0 = .text:0x0000B1E0; // type:function size:0x7C +fn_1_B25C = .text:0x0000B25C; // type:function size:0x1C0 +fn_1_B41C = .text:0x0000B41C; // type:function size:0x54 +fn_1_B470 = .text:0x0000B470; // type:function size:0x4 +fn_1_B474 = .text:0x0000B474; // type:function size:0x488 +fn_1_B8FC = .text:0x0000B8FC; // type:function size:0x31C +fn_1_BC18 = .text:0x0000BC18; // type:function size:0x8DC +fn_1_C4F4 = .text:0x0000C4F4; // type:function size:0x378 +fn_1_C86C = .text:0x0000C86C; // type:function size:0x4C8 +fn_1_CD34 = .text:0x0000CD34; // type:function size:0xA4 +fn_1_CDD8 = .text:0x0000CDD8; // type:function size:0x14C +fn_1_CF24 = .text:0x0000CF24; // type:function size:0x74 +fn_1_CF98 = .text:0x0000CF98; // type:function size:0xD4 +fn_1_D06C = .text:0x0000D06C; // type:function size:0xD0 +fn_1_D13C = .text:0x0000D13C; // type:function size:0x34C +fn_1_D488 = .text:0x0000D488; // type:function size:0x90 +fn_1_D518 = .text:0x0000D518; // type:function size:0xB4 +fn_1_D5CC = .text:0x0000D5CC; // type:function size:0x90 +fn_1_D65C = .text:0x0000D65C; // type:function size:0x254 +fn_1_D8B0 = .text:0x0000D8B0; // type:function size:0x5C +fn_1_D90C = .text:0x0000D90C; // type:function size:0x490 +fn_1_DD9C = .text:0x0000DD9C; // type:function size:0xE4 +fn_1_DE80 = .text:0x0000DE80; // type:function size:0x3B4 +fn_1_E234 = .text:0x0000E234; // type:function size:0xF80 +fn_1_F1B4 = .text:0x0000F1B4; // type:function size:0x500 +fn_1_F6B4 = .text:0x0000F6B4; // type:function size:0x3BC +fn_1_FA70 = .text:0x0000FA70; // type:function size:0xC0C +fn_1_1067C = .text:0x0001067C; // type:function size:0xE8 +fn_1_10764 = .text:0x00010764; // type:function size:0x9E4 +fn_1_11148 = .text:0x00011148; // type:function size:0x448 +fn_1_11590 = .text:0x00011590; // type:function size:0x31C +fn_1_118AC = .text:0x000118AC; // type:function size:0x228 +fn_1_11AD4 = .text:0x00011AD4; // type:function size:0x5E0 +fn_1_120B4 = .text:0x000120B4; // type:function size:0x1D0 +fn_1_12284 = .text:0x00012284; // type:function size:0xDC +fn_1_12360 = .text:0x00012360; // type:function size:0x4EC +fn_1_1284C = .text:0x0001284C; // type:function size:0x5C +fn_1_128A8 = .text:0x000128A8; // type:function size:0x22C +fn_1_12AD4 = .text:0x00012AD4; // type:function size:0xD4 +fn_1_12BA8 = .text:0x00012BA8; // type:function size:0x48 +fn_1_12BF0 = .text:0x00012BF0; // type:function size:0x38 +fn_1_12C28 = .text:0x00012C28; // type:function size:0x8C +fn_1_12CB4 = .text:0x00012CB4; // type:function size:0xAE4 +fn_1_13798 = .text:0x00013798; // type:function size:0x4 +fn_1_1379C = .text:0x0001379C; // type:function size:0x3DC +fn_1_13B78 = .text:0x00013B78; // type:function size:0x6C +fn_1_13BE4 = .text:0x00013BE4; // type:function size:0x11C +fn_1_13D00 = .text:0x00013D00; // type:function size:0x7E4 +fn_1_144E4 = .text:0x000144E4; // type:function size:0x330 +_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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x348 +lbl_1_data_438 = .data:0x00000438; // type:object size:0x348 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 data:float +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x2 data:2byte +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x1C +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x1C +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x18 +lbl_1_data_7F8 = .data:0x000007F8; // type:object size:0xC +lbl_1_data_804 = .data:0x00000804; // type:object size:0xC +lbl_1_data_810 = .data:0x00000810; // type:object size:0x4 +lbl_1_data_814 = .data:0x00000814; // type:object size:0xC +lbl_1_data_820 = .data:0x00000820; // type:object size:0xC +lbl_1_data_82C = .data:0x0000082C; // type:object size:0xC +lbl_1_data_838 = .data:0x00000838; // type:object size:0xC +lbl_1_data_844 = .data:0x00000844; // type:object size:0xC +lbl_1_data_850 = .data:0x00000850; // type:object size:0x20 +lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F scope:local data:string +lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte +lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte +lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte +lbl_1_data_89B = .data:0x0000089B; // type:object size:0x1 data:byte +lbl_1_data_89F = .data:0x0000089F; // type:object size:0x5 data:byte +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10 +lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC +lbl_1_data_8D0 = .data:0x000008D0; // type:object size:0xC +lbl_1_data_8DC = .data:0x000008DC; // type:object size:0x4 +lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30 +lbl_1_data_910 = .data:0x00000910; // type:object size:0x20 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 +lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 +lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 scope:local data:string +lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 scope:local data:string +lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A scope:local data:string +lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C +lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 +lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 +lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 +lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 +lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 +lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C scope:local data:string +lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte +lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 +lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0xC data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x50 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x8 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x4 data:4byte +lbl_1_bss_1C8 = .bss:0x000001C8; // type:object size:0x4 data:4byte +lbl_1_bss_1CC = .bss:0x000001CC; // type:object size:0x4 data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0xC +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x2 data:2byte +lbl_1_bss_1F6 = .bss:0x000001F6; // type:object size:0x2 data:2byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m407dll/splits.txt b/config/GMPP01_00/rels/m407dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m407dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m407dll/symbols.txt b/config/GMPP01_00/rels/m407dll/symbols.txt new file mode 100644 index 00000000..51e3c09c --- /dev/null +++ b/config/GMPP01_00/rels/m407dll/symbols.txt @@ -0,0 +1,271 @@ +_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:0x54 +fn_1_F4 = .text:0x000000F4; // type:function size:0xA0 +fn_1_194 = .text:0x00000194; // type:function size:0x50 +fn_1_1E4 = .text:0x000001E4; // type:function size:0x54 +fn_1_238 = .text:0x00000238; // type:function size:0x54 +fn_1_28C = .text:0x0000028C; // type:function size:0x54 +fn_1_2E0 = .text:0x000002E0; // type:function size:0x54 +fn_1_334 = .text:0x00000334; // type:function size:0x54 +fn_1_388 = .text:0x00000388; // type:function size:0x3C +fn_1_3C4 = .text:0x000003C4; // type:function size:0x40 +fn_1_404 = .text:0x00000404; // type:function size:0xBC +fn_1_4C0 = .text:0x000004C0; // type:function size:0x48 +fn_1_508 = .text:0x00000508; // type:function size:0x34 +fn_1_53C = .text:0x0000053C; // type:function size:0x2C +fn_1_568 = .text:0x00000568; // type:function size:0xC0 +fn_1_628 = .text:0x00000628; // type:function size:0x24 +fn_1_64C = .text:0x0000064C; // type:function size:0x350 +fn_1_99C = .text:0x0000099C; // type:function size:0x80 +fn_1_A1C = .text:0x00000A1C; // type:function size:0x6C +fn_1_A88 = .text:0x00000A88; // type:function size:0x4 +fn_1_A8C = .text:0x00000A8C; // type:function size:0x1CC +fn_1_C58 = .text:0x00000C58; // type:function size:0x9C +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xC0 +fn_1_DB4 = .text:0x00000DB4; // type:function size:0x1D8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x158 +fn_1_11CC = .text:0x000011CC; // type:function size:0x218 +fn_1_13E4 = .text:0x000013E4; // type:function size:0x7C +fn_1_1460 = .text:0x00001460; // type:function size:0x90 +fn_1_14F0 = .text:0x000014F0; // type:function size:0xE8 +fn_1_15D8 = .text:0x000015D8; // type:function size:0x54 +fn_1_162C = .text:0x0000162C; // type:function size:0x460 +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x90 +fn_1_1B1C = .text:0x00001B1C; // type:function size:0x18C +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4 +fn_1_1CAC = .text:0x00001CAC; // type:function size:0x28 +fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x34 +fn_1_1D08 = .text:0x00001D08; // type:function size:0x28 +fn_1_1D30 = .text:0x00001D30; // type:function size:0x34 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x14 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x28 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x16C +fn_1_1F1C = .text:0x00001F1C; // type:function size:0x108 +fn_1_2024 = .text:0x00002024; // type:function size:0x330 +fn_1_2354 = .text:0x00002354; // type:function size:0x19C +fn_1_24F0 = .text:0x000024F0; // type:function size:0x74 +fn_1_2564 = .text:0x00002564; // type:function size:0x5C +fn_1_25C0 = .text:0x000025C0; // type:function size:0x10C +fn_1_26CC = .text:0x000026CC; // type:function size:0xA4 +fn_1_2770 = .text:0x00002770; // type:function size:0x110 +fn_1_2880 = .text:0x00002880; // type:function size:0x38 +fn_1_28B8 = .text:0x000028B8; // type:function size:0x1C +fn_1_28D4 = .text:0x000028D4; // type:function size:0x10 +fn_1_28E4 = .text:0x000028E4; // type:function size:0x28 +fn_1_290C = .text:0x0000290C; // type:function size:0x24 +fn_1_2930 = .text:0x00002930; // type:function size:0x24C +fn_1_2B7C = .text:0x00002B7C; // type:function size:0x67C +fn_1_31F8 = .text:0x000031F8; // type:function size:0x168 +fn_1_3360 = .text:0x00003360; // type:function size:0x4 +fn_1_3364 = .text:0x00003364; // type:function size:0x140 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x22C +fn_1_36D0 = .text:0x000036D0; // type:function size:0xE0 +fn_1_37B0 = .text:0x000037B0; // type:function size:0x318 +fn_1_3AC8 = .text:0x00003AC8; // type:function size:0xA0 +fn_1_3B68 = .text:0x00003B68; // type:function size:0x50 +fn_1_3BB8 = .text:0x00003BB8; // type:function size:0x170 +fn_1_3D28 = .text:0x00003D28; // type:function size:0x24 +fn_1_3D4C = .text:0x00003D4C; // type:function size:0xE8 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x148 +fn_1_3F7C = .text:0x00003F7C; // type:function size:0x74 +fn_1_3FF0 = .text:0x00003FF0; // type:function size:0x4 +fn_1_3FF4 = .text:0x00003FF4; // type:function size:0x100 +fn_1_40F4 = .text:0x000040F4; // type:function size:0xD8 +fn_1_41CC = .text:0x000041CC; // type:function size:0x328 +fn_1_44F4 = .text:0x000044F4; // type:function size:0x50 +fn_1_4544 = .text:0x00004544; // type:function size:0x118 +fn_1_465C = .text:0x0000465C; // type:function size:0x24 +fn_1_4680 = .text:0x00004680; // type:function size:0x6C +fn_1_46EC = .text:0x000046EC; // type:function size:0x11C +fn_1_4808 = .text:0x00004808; // type:function size:0x50 +fn_1_4858 = .text:0x00004858; // type:function size:0x4 +fn_1_485C = .text:0x0000485C; // type:function size:0x124 +fn_1_4980 = .text:0x00004980; // type:function size:0x1FC +fn_1_4B7C = .text:0x00004B7C; // type:function size:0xC0 +fn_1_4C3C = .text:0x00004C3C; // type:function size:0x30 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0xA0 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x48 +fn_1_4D54 = .text:0x00004D54; // type:function size:0x138 +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x11C +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x134 +fn_1_50DC = .text:0x000050DC; // type:function size:0xFC +fn_1_51D8 = .text:0x000051D8; // type:function size:0xC8 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x10C +fn_1_53AC = .text:0x000053AC; // type:function size:0x1BC +fn_1_5568 = .text:0x00005568; // type:function size:0xBC +fn_1_5624 = .text:0x00005624; // type:function size:0x1D4 +fn_1_57F8 = .text:0x000057F8; // type:function size:0x27C +fn_1_5A74 = .text:0x00005A74; // type:function size:0x130 +fn_1_5BA4 = .text:0x00005BA4; // type:function size:0xAC +fn_1_5C50 = .text:0x00005C50; // type:function size:0x270 +fn_1_5EC0 = .text:0x00005EC0; // type:function size:0x74 +fn_1_5F34 = .text:0x00005F34; // type:function size:0x50 +fn_1_5F84 = .text:0x00005F84; // type:function size:0x24 +fn_1_5FA8 = .text:0x00005FA8; // type:function size:0x30 +fn_1_5FD8 = .text:0x00005FD8; // type:function size:0x1BC +fn_1_6194 = .text:0x00006194; // type:function size:0x78 +fn_1_620C = .text:0x0000620C; // type:function size:0x88 +fn_1_6294 = .text:0x00006294; // type:function size:0x164 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x100 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x20 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x1C +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xC +lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float +lbl_1_data_208 = .data:0x00000208; // type:object size:0xC +lbl_1_data_214 = .data:0x00000214; // type:object size:0x4 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x10 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte +lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte +lbl_1_data_258 = .data:0x00000258; // type:object size:0x14 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0xC +lbl_1_data_278 = .data:0x00000278; // type:object size:0x10 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x14 +lbl_1_data_29C = .data:0x0000029C; // type:object size:0xC +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC +lbl_1_data_2F8 = .data:0x000002F8; // type:object size:0xC +lbl_1_data_304 = .data:0x00000304; // type:object size:0x4 +lbl_1_data_308 = .data:0x00000308; // type:object size:0xC +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x4 +lbl_1_data_324 = .data:0x00000324; // type:object size:0xC +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0xC +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2A +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte +lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18 +lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10 +lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x8 data:4byte +lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10 +lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x8 data:4byte +lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190 +lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x8 data:4byte +lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte +lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte +lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x8 data:4byte +lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte +lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m408Dll/splits.txt b/config/GMPP01_00/rels/m408Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m408Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m408Dll/symbols.txt b/config/GMPP01_00/rels/m408Dll/symbols.txt new file mode 100644 index 00000000..650a8242 --- /dev/null +++ b/config/GMPP01_00/rels/m408Dll/symbols.txt @@ -0,0 +1,548 @@ +_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:0x47C +fn_1_51C = .text:0x0000051C; // type:function size:0x50 +fn_1_56C = .text:0x0000056C; // type:function size:0x438 +fn_1_9A4 = .text:0x000009A4; // type:function size:0x4C +fn_1_9F0 = .text:0x000009F0; // type:function size:0x50 +fn_1_A40 = .text:0x00000A40; // type:function size:0x298 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x220 +fn_1_EF8 = .text:0x00000EF8; // type:function size:0x3A8 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x1EC +fn_1_148C = .text:0x0000148C; // type:function size:0x434 +fn_1_18C0 = .text:0x000018C0; // type:function size:0x80 +fn_1_1940 = .text:0x00001940; // type:function size:0x120 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x98 +fn_1_1AF8 = .text:0x00001AF8; // type:function size:0xF0 +fn_1_1BE8 = .text:0x00001BE8; // type:function size:0x26C +fn_1_1E54 = .text:0x00001E54; // type:function size:0x68 +fn_1_1EBC = .text:0x00001EBC; // type:function size:0x718 +fn_1_25D4 = .text:0x000025D4; // type:function size:0x110 +fn_1_26E4 = .text:0x000026E4; // type:function size:0x8C8 +fn_1_2FAC = .text:0x00002FAC; // type:function size:0x924 +fn_1_38D0 = .text:0x000038D0; // type:function size:0x5B0 +fn_1_3E80 = .text:0x00003E80; // type:function size:0xBD8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0x640 +fn_1_5098 = .text:0x00005098; // type:function size:0x44C +fn_1_54E4 = .text:0x000054E4; // type:function size:0x1A0 +fn_1_5684 = .text:0x00005684; // type:function size:0x41C +fn_1_5AA0 = .text:0x00005AA0; // type:function size:0x14 +fn_1_5AB4 = .text:0x00005AB4; // type:function size:0x318 +fn_1_5DCC = .text:0x00005DCC; // type:function size:0x430 +fn_1_61FC = .text:0x000061FC; // type:function size:0x344 +fn_1_6540 = .text:0x00006540; // type:function size:0x284 +fn_1_67C4 = .text:0x000067C4; // type:function size:0xA4 +fn_1_6868 = .text:0x00006868; // type:function size:0x10 +fn_1_6878 = .text:0x00006878; // type:function size:0x10 +fn_1_6888 = .text:0x00006888; // type:function size:0x10 +fn_1_6898 = .text:0x00006898; // type:function size:0x4 +fn_1_689C = .text:0x0000689C; // type:function size:0x8 +fn_1_68A4 = .text:0x000068A4; // type:function size:0x4 +fn_1_68A8 = .text:0x000068A8; // type:function size:0x1C +fn_1_68C4 = .text:0x000068C4; // type:function size:0x364 +fn_1_6C28 = .text:0x00006C28; // type:function size:0x324 +fn_1_6F4C = .text:0x00006F4C; // type:function size:0x66C +fn_1_75B8 = .text:0x000075B8; // type:function size:0x260 +fn_1_7818 = .text:0x00007818; // type:function size:0xC0 +fn_1_78D8 = .text:0x000078D8; // type:function size:0x748 +fn_1_8020 = .text:0x00008020; // type:function size:0x15C +fn_1_817C = .text:0x0000817C; // type:function size:0x348 +fn_1_84C4 = .text:0x000084C4; // type:function size:0x378 +fn_1_883C = .text:0x0000883C; // type:function size:0x11C +fn_1_8958 = .text:0x00008958; // type:function size:0xC8 +fn_1_8A20 = .text:0x00008A20; // type:function size:0x58C +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x568 +fn_1_9514 = .text:0x00009514; // type:function size:0x25C +fn_1_9770 = .text:0x00009770; // type:function size:0x258 +fn_1_99C8 = .text:0x000099C8; // type:function size:0x96C +fn_1_A334 = .text:0x0000A334; // type:function size:0x48 +fn_1_A37C = .text:0x0000A37C; // type:function size:0x16C +fn_1_A4E8 = .text:0x0000A4E8; // type:function size:0x3AC +fn_1_A894 = .text:0x0000A894; // type:function size:0x760 +fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x70C +fn_1_B700 = .text:0x0000B700; // type:function size:0x494 +fn_1_BB94 = .text:0x0000BB94; // type:function size:0x24C +fn_1_BDE0 = .text:0x0000BDE0; // type:function size:0x5E0 +fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x7C +fn_1_C43C = .text:0x0000C43C; // type:function size:0x10 +fn_1_C44C = .text:0x0000C44C; // type:function size:0x98 +fn_1_C4E4 = .text:0x0000C4E4; // type:function size:0x4C +fn_1_C530 = .text:0x0000C530; // type:function size:0x7E4 +fn_1_CD14 = .text:0x0000CD14; // type:function size:0x154 +fn_1_CE68 = .text:0x0000CE68; // type:function size:0x84 +fn_1_CEEC = .text:0x0000CEEC; // type:function size:0x118 +fn_1_D004 = .text:0x0000D004; // type:function size:0x6EC +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x288 +fn_1_D978 = .text:0x0000D978; // type:function size:0xF4 +fn_1_DA6C = .text:0x0000DA6C; // type:function size:0x564 +fn_1_DFD0 = .text:0x0000DFD0; // type:function size:0x340 +fn_1_E310 = .text:0x0000E310; // type:function size:0x6A4 +fn_1_E9B4 = .text:0x0000E9B4; // type:function size:0x544 +fn_1_EEF8 = .text:0x0000EEF8; // type:function size:0x174 +fn_1_F06C = .text:0x0000F06C; // type:function size:0x444 +fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0xB4 +fn_1_F564 = .text:0x0000F564; // type:function size:0x33C +fn_1_F8A0 = .text:0x0000F8A0; // type:function size:0x2F8 +fn_1_FB98 = .text:0x0000FB98; // type:function size:0x8EC +fn_1_10484 = .text:0x00010484; // type:function size:0x3AC +fn_1_10830 = .text:0x00010830; // type:function size:0x330 +fn_1_10B60 = .text:0x00010B60; // type:function size:0xB10 +fn_1_11670 = .text:0x00011670; // type:function size:0x54 +fn_1_116C4 = .text:0x000116C4; // type:function size:0xBC +fn_1_11780 = .text:0x00011780; // type:function size:0x150 +fn_1_118D0 = .text:0x000118D0; // type:function size:0x90 +fn_1_11960 = .text:0x00011960; // type:function size:0x4DC +fn_1_11E3C = .text:0x00011E3C; // type:function size:0x518 +fn_1_12354 = .text:0x00012354; // type:function size:0x74 +fn_1_123C8 = .text:0x000123C8; // type:function size:0x2A8 +fn_1_12670 = .text:0x00012670; // type:function size:0x4 +fn_1_12674 = .text:0x00012674; // type:function size:0x12C +fn_1_127A0 = .text:0x000127A0; // type:function size:0x4CC +fn_1_12C6C = .text:0x00012C6C; // type:function size:0x3F0 +fn_1_1305C = .text:0x0001305C; // type:function size:0x47C +fn_1_134D8 = .text:0x000134D8; // type:function size:0x348 +fn_1_13820 = .text:0x00013820; // type:function size:0x568 +fn_1_13D88 = .text:0x00013D88; // type:function size:0x2E4 +fn_1_1406C = .text:0x0001406C; // type:function size:0x464 +fn_1_144D0 = .text:0x000144D0; // type:function size:0x8E4 +fn_1_14DB4 = .text:0x00014DB4; // type:function size:0x3F0 +fn_1_151A4 = .text:0x000151A4; // type:function size:0x43C +fn_1_155E0 = .text:0x000155E0; // type:function size:0x38 +fn_1_15618 = .text:0x00015618; // type:function size:0x40 +fn_1_15658 = .text:0x00015658; // type:function size:0x4F8 +fn_1_15B50 = .text:0x00015B50; // type:function size:0x7C +fn_1_15BCC = .text:0x00015BCC; // type:function size:0xD8 +fn_1_15CA4 = .text:0x00015CA4; // type:function size:0xC0 +fn_1_15D64 = .text:0x00015D64; // type:function size:0x568 +fn_1_162CC = .text:0x000162CC; // type:function size:0xFC +_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:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x30 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x10 data:4byte +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x20 data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x38 data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x48 +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x10 data:4byte +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x10 data:4byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x28 data:2byte +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x10 data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x10 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:double +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_68C = .rodata:0x0000068C; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x4 data:float +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C4 = .rodata:0x000006C4; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x8 data:double +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x8 data:double +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x4 data:float +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_75C = .rodata:0x0000075C; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0x4 data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x4 data:float +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x4 data:float +lbl_1_rodata_774 = .rodata:0x00000774; // type:object size:0x4 data:float +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x8 data:double +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x4 data:float +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:float +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x4 data:float +lbl_1_rodata_7B0 = .rodata:0x000007B0; // type:object size:0x4 data:float +lbl_1_rodata_7B4 = .rodata:0x000007B4; // type:object size:0x4 data:float +lbl_1_rodata_7B8 = .rodata:0x000007B8; // type:object size:0x8 data:double +lbl_1_rodata_7C0 = .rodata:0x000007C0; // type:object size:0x4 data:float +lbl_1_rodata_7C4 = .rodata:0x000007C4; // type:object size:0x4 data:float +lbl_1_rodata_7C8 = .rodata:0x000007C8; // type:object size:0x4 data:float +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x8 data:double +lbl_1_rodata_7D8 = .rodata:0x000007D8; // type:object size:0x8 data:double +lbl_1_rodata_7E0 = .rodata:0x000007E0; // type:object size:0x4 data:float +lbl_1_rodata_7E4 = .rodata:0x000007E4; // type:object size:0x4 data:float +lbl_1_rodata_7E8 = .rodata:0x000007E8; // type:object size:0x4 data:float +lbl_1_rodata_7EC = .rodata:0x000007EC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC +lbl_1_data_38 = .data:0x00000038; // type:object size:0x20 +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 data:string +lbl_1_data_83 = .data:0x00000083; // type:object size:0x7 data:string +lbl_1_data_8A = .data:0x0000008A; // type:object size:0x7 data:string +lbl_1_data_91 = .data:0x00000091; // type:object size:0x7 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x28 +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x20 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x40 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x58 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x24 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x24 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x24 +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x2E8 +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x10 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x4 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x30 +jumptable_1_data_550 = .data:0x00000550; // type:object size:0x24 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x14 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x6 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x8 data:4byte +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:0xC +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x50 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0xC data:float +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0xC data:float +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x2 data:2byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x8 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1C data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0xC00 +lbl_1_bss_D6C = .bss:0x00000D6C; // type:object size:0x30 +lbl_1_bss_D9C = .bss:0x00000D9C; // type:object size:0x4 data:4byte +lbl_1_bss_DA0 = .bss:0x00000DA0; // type:object size:0x4 data:4byte +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x6800 data:float +lbl_1_bss_75A4 = .bss:0x000075A4; // type:object size:0x4 data:4byte +lbl_1_bss_75A8 = .bss:0x000075A8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m409Dll/splits.txt b/config/GMPP01_00/rels/m409Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m409Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m409Dll/symbols.txt b/config/GMPP01_00/rels/m409Dll/symbols.txt new file mode 100644 index 00000000..54b3dcb3 --- /dev/null +++ b/config/GMPP01_00/rels/m409Dll/symbols.txt @@ -0,0 +1,332 @@ +_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:0x394 +fn_1_434 = .text:0x00000434; // type:function size:0x78 +fn_1_4AC = .text:0x000004AC; // type:function size:0x78 +fn_1_524 = .text:0x00000524; // type:function size:0x65C +fn_1_B80 = .text:0x00000B80; // type:function size:0x25C +fn_1_DDC = .text:0x00000DDC; // type:function size:0x194 +fn_1_F70 = .text:0x00000F70; // type:function size:0x178 +fn_1_10E8 = .text:0x000010E8; // type:function size:0xA8C +fn_1_1B74 = .text:0x00001B74; // type:function size:0x524 +fn_1_2098 = .text:0x00002098; // type:function size:0x354 +fn_1_23EC = .text:0x000023EC; // type:function size:0x28 +fn_1_2414 = .text:0x00002414; // type:function size:0x40 +fn_1_2454 = .text:0x00002454; // type:function size:0x30 +fn_1_2484 = .text:0x00002484; // type:function size:0x948 +fn_1_2DCC = .text:0x00002DCC; // type:function size:0xA74 +fn_1_3840 = .text:0x00003840; // type:function size:0x148 +fn_1_3988 = .text:0x00003988; // type:function size:0x150 +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x5CC +fn_1_40A4 = .text:0x000040A4; // type:function size:0x7C +fn_1_4120 = .text:0x00004120; // type:function size:0x5C +fn_1_417C = .text:0x0000417C; // type:function size:0x374 +fn_1_44F0 = .text:0x000044F0; // type:function size:0xB0C +fn_1_4FFC = .text:0x00004FFC; // type:function size:0x40C +fn_1_5408 = .text:0x00005408; // type:function size:0x1D8 +fn_1_55E0 = .text:0x000055E0; // type:function size:0x1FC +fn_1_57DC = .text:0x000057DC; // type:function size:0x104 +fn_1_58E0 = .text:0x000058E0; // type:function size:0x138 +fn_1_5A18 = .text:0x00005A18; // type:function size:0x544 +fn_1_5F5C = .text:0x00005F5C; // type:function size:0x60 +fn_1_5FBC = .text:0x00005FBC; // type:function size:0x38 +fn_1_5FF4 = .text:0x00005FF4; // type:function size:0x38 +fn_1_602C = .text:0x0000602C; // type:function size:0x5DC +fn_1_6608 = .text:0x00006608; // type:function size:0xCC +fn_1_66D4 = .text:0x000066D4; // type:function size:0xA4 +fn_1_6778 = .text:0x00006778; // type:function size:0x68 +fn_1_67E0 = .text:0x000067E0; // type:function size:0x120 +fn_1_6900 = .text:0x00006900; // type:function size:0x28 +fn_1_6928 = .text:0x00006928; // type:function size:0xA1C +fn_1_7344 = .text:0x00007344; // type:function size:0xCA4 +fn_1_7FE8 = .text:0x00007FE8; // type:function size:0x850 +fn_1_8838 = .text:0x00008838; // type:function size:0x4D0 +fn_1_8D08 = .text:0x00008D08; // type:function size:0x64 +fn_1_8D6C = .text:0x00008D6C; // type:function size:0x454 +fn_1_91C0 = .text:0x000091C0; // type:function size:0x46C +fn_1_962C = .text:0x0000962C; // type:function size:0xF58 +fn_1_A584 = .text:0x0000A584; // type:function size:0x43C +fn_1_A9C0 = .text:0x0000A9C0; // type:function size:0x1F4 +fn_1_ABB4 = .text:0x0000ABB4; // type:function size:0x54 +fn_1_AC08 = .text:0x0000AC08; // type:function size:0x138 +fn_1_AD40 = .text:0x0000AD40; // type:function size:0x154 +fn_1_AE94 = .text:0x0000AE94; // type:function size:0x78 +fn_1_AF0C = .text:0x0000AF0C; // type:function size:0x11C +fn_1_B028 = .text:0x0000B028; // type:function size:0x78 +fn_1_B0A0 = .text:0x0000B0A0; // type:function size:0x2D8 +fn_1_B378 = .text:0x0000B378; // type:function size:0x198 +fn_1_B510 = .text:0x0000B510; // type:function size:0xD8 +fn_1_B5E8 = .text:0x0000B5E8; // type:function size:0xBC +fn_1_B6A4 = .text:0x0000B6A4; // type:function size:0x33C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x4B0 +fn_1_BE90 = .text:0x0000BE90; // type:function size:0xA8 +fn_1_BF38 = .text:0x0000BF38; // type:function size:0x50 +fn_1_BF88 = .text:0x0000BF88; // type:function size:0x138 +fn_1_C0C0 = .text:0x0000C0C0; // type:function size:0xA4 +fn_1_C164 = .text:0x0000C164; // type:function size:0xA34 +fn_1_CB98 = .text:0x0000CB98; // type:function size:0x118 +fn_1_CCB0 = .text:0x0000CCB0; // type:function size:0x1C +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0x2C +fn_1_CCF8 = .text:0x0000CCF8; // type:function size:0x184 +fn_1_CE7C = .text:0x0000CE7C; // type:function size:0xA0 +fn_1_CF1C = .text:0x0000CF1C; // type:function size:0xA8 +fn_1_CFC4 = .text:0x0000CFC4; // type:function size:0x8C +fn_1_D050 = .text:0x0000D050; // type:function size:0x98 +fn_1_D0E8 = .text:0x0000D0E8; // type:function size:0x348 +fn_1_D430 = .text:0x0000D430; // type:function size:0x618 +fn_1_DA48 = .text:0x0000DA48; // type:function size:0x370 +fn_1_DDB8 = .text:0x0000DDB8; // type:function size:0x13C +fn_1_DEF4 = .text:0x0000DEF4; // type:function size:0x2C +fn_1_DF20 = .text:0x0000DF20; // type:function size:0x308 +fn_1_E228 = .text:0x0000E228; // type:function size:0x80 +fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x520 +fn_1_E7C8 = .text:0x0000E7C8; // type:function size:0x50 +fn_1_E818 = .text:0x0000E818; // type:function size:0x44 +fn_1_E85C = .text:0x0000E85C; // type:function size:0x70 +fn_1_E8CC = .text:0x0000E8CC; // type:function size:0x74 +fn_1_E940 = .text:0x0000E940; // type:function size:0x5C +fn_1_E99C = .text:0x0000E99C; // type:function size:0x88 +fn_1_EA24 = .text:0x0000EA24; // type:function size:0x8C +fn_1_EAB0 = .text:0x0000EAB0; // type:function size:0x44 +fn_1_EAF4 = .text:0x0000EAF4; // type:function size:0x70 +fn_1_EB64 = .text:0x0000EB64; // type:function size:0x74 +fn_1_EBD8 = .text:0x0000EBD8; // type:function size:0x44 +fn_1_EC1C = .text:0x0000EC1C; // type:function size:0x70 +fn_1_EC8C = .text:0x0000EC8C; // type:function size:0x74 +fn_1_ED00 = .text:0x0000ED00; // type:function size:0x44 +fn_1_ED44 = .text:0x0000ED44; // type:function size:0x70 +fn_1_EDB4 = .text:0x0000EDB4; // type:function size:0x70 +fn_1_EE24 = .text:0x0000EE24; // type:function size:0x44 +fn_1_EE68 = .text:0x0000EE68; // type:function size:0x70 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x70 +fn_1_EF48 = .text:0x0000EF48; // type:function size:0x5C +fn_1_EFA4 = .text:0x0000EFA4; // type:function size:0x80 +fn_1_F024 = .text:0x0000F024; // type:function size:0x74 +fn_1_F098 = .text:0x0000F098; // type:function size:0x78 +fn_1_F110 = .text:0x0000F110; // type:function size:0x6C +fn_1_F17C = .text:0x0000F17C; // type:function size:0x78 +fn_1_F1F4 = .text:0x0000F1F4; // type:function size:0x98 +fn_1_F28C = .text:0x0000F28C; // type:function size:0x6C +fn_1_F2F8 = .text:0x0000F2F8; // type:function size:0x78 +fn_1_F370 = .text:0x0000F370; // type:function size:0x98 +fn_1_F408 = .text:0x0000F408; // type:function size:0x70 +fn_1_F478 = .text:0x0000F478; // type:function size:0x78 +fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x98 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x100 +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x9 data:string +lbl_1_data_CD = .data:0x000000CD; // type:object size:0x9 data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x3 data:string +lbl_1_data_D9 = .data:0x000000D9; // type:object size:0x10 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x26 data:string +lbl_1_data_10F = .data:0x0000010F; // type:object size:0x2D +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x1C +lbl_1_data_158 = .data:0x00000158; // type:object size:0x20 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x40 +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x14 +jumptable_1_data_1CC = .data:0x000001CC; // type:object size:0x20 scope:local +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +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:0x1 data:byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x1 data:byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte +lbl_1_bss_21 = .bss:0x00000021; // type:object size:0x1 data:byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x9C data:2byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x8 data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x14 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x2 data:2byte +lbl_1_bss_106 = .bss:0x00000106; // type:object size:0x2 data:2byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x2 data:2byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x280 data:float +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x10 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m410Dll/splits.txt b/config/GMPP01_00/rels/m410Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m410Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m410Dll/symbols.txt b/config/GMPP01_00/rels/m410Dll/symbols.txt new file mode 100644 index 00000000..8d84a25d --- /dev/null +++ b/config/GMPP01_00/rels/m410Dll/symbols.txt @@ -0,0 +1,316 @@ +_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:0x444 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xC4 +fn_1_5A8 = .text:0x000005A8; // type:function size:0x94 +fn_1_63C = .text:0x0000063C; // type:function size:0x16C +fn_1_7A8 = .text:0x000007A8; // type:function size:0x314 +fn_1_ABC = .text:0x00000ABC; // type:function size:0x330 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x204 +fn_1_FF0 = .text:0x00000FF0; // type:function size:0x3AC +fn_1_139C = .text:0x0000139C; // type:function size:0x2AC +fn_1_1648 = .text:0x00001648; // type:function size:0x380 +fn_1_19C8 = .text:0x000019C8; // type:function size:0xB4 +fn_1_1A7C = .text:0x00001A7C; // type:function size:0x6F0 +fn_1_216C = .text:0x0000216C; // type:function size:0x1C +fn_1_2188 = .text:0x00002188; // type:function size:0x664 +fn_1_27EC = .text:0x000027EC; // type:function size:0x18 +fn_1_2804 = .text:0x00002804; // type:function size:0x18 +fn_1_281C = .text:0x0000281C; // type:function size:0x18 +fn_1_2834 = .text:0x00002834; // type:function size:0x18 +fn_1_284C = .text:0x0000284C; // type:function size:0x18 +fn_1_2864 = .text:0x00002864; // type:function size:0x18 +fn_1_287C = .text:0x0000287C; // type:function size:0x30 +fn_1_28AC = .text:0x000028AC; // type:function size:0x30 +fn_1_28DC = .text:0x000028DC; // type:function size:0x38 +fn_1_2914 = .text:0x00002914; // type:function size:0x348 +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x378 +fn_1_2FD4 = .text:0x00002FD4; // type:function size:0x11C +fn_1_30F0 = .text:0x000030F0; // type:function size:0xB4 +fn_1_31A4 = .text:0x000031A4; // type:function size:0x54 +fn_1_31F8 = .text:0x000031F8; // type:function size:0x4 +fn_1_31FC = .text:0x000031FC; // type:function size:0x154 +fn_1_3350 = .text:0x00003350; // type:function size:0x58 +fn_1_33A8 = .text:0x000033A8; // type:function size:0xDC +fn_1_3484 = .text:0x00003484; // type:function size:0x3C +fn_1_34C0 = .text:0x000034C0; // type:function size:0x154 +fn_1_3614 = .text:0x00003614; // type:function size:0x5CC +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0xCF8 +fn_1_48D8 = .text:0x000048D8; // type:function size:0x32C +fn_1_4C04 = .text:0x00004C04; // type:function size:0x3E8 +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x5DC +fn_1_55C8 = .text:0x000055C8; // type:function size:0x3C4 +fn_1_598C = .text:0x0000598C; // type:function size:0x168 +fn_1_5AF4 = .text:0x00005AF4; // type:function size:0x1AC +fn_1_5CA0 = .text:0x00005CA0; // type:function size:0x23C +fn_1_5EDC = .text:0x00005EDC; // type:function size:0x300 +fn_1_61DC = .text:0x000061DC; // type:function size:0x188 +fn_1_6364 = .text:0x00006364; // type:function size:0x354 +fn_1_66B8 = .text:0x000066B8; // type:function size:0x11C +fn_1_67D4 = .text:0x000067D4; // type:function size:0x194 +fn_1_6968 = .text:0x00006968; // type:function size:0x41C +fn_1_6D84 = .text:0x00006D84; // type:function size:0x30 +fn_1_6DB4 = .text:0x00006DB4; // type:function size:0x384 +fn_1_7138 = .text:0x00007138; // type:function size:0x32C +fn_1_7464 = .text:0x00007464; // type:function size:0x30 +fn_1_7494 = .text:0x00007494; // type:function size:0x8C +fn_1_7520 = .text:0x00007520; // type:function size:0x80 +fn_1_75A0 = .text:0x000075A0; // type:function size:0x114 +fn_1_76B4 = .text:0x000076B4; // type:function size:0xEC +fn_1_77A0 = .text:0x000077A0; // type:function size:0x44 +fn_1_77E4 = .text:0x000077E4; // type:function size:0x10 +fn_1_77F4 = .text:0x000077F4; // type:function size:0x48 +fn_1_783C = .text:0x0000783C; // type:function size:0x48 +fn_1_7884 = .text:0x00007884; // type:function size:0x170 +fn_1_79F4 = .text:0x000079F4; // type:function size:0xCC +fn_1_7AC0 = .text:0x00007AC0; // type:function size:0x36C +fn_1_7E2C = .text:0x00007E2C; // type:function size:0x23C +fn_1_8068 = .text:0x00008068; // type:function size:0x34 +fn_1_809C = .text:0x0000809C; // type:function size:0x374 +fn_1_8410 = .text:0x00008410; // type:function size:0x264 +fn_1_8674 = .text:0x00008674; // type:function size:0x260 +fn_1_88D4 = .text:0x000088D4; // type:function size:0x138 +fn_1_8A0C = .text:0x00008A0C; // type:function size:0xAC +fn_1_8AB8 = .text:0x00008AB8; // type:function size:0x584 +fn_1_903C = .text:0x0000903C; // type:function size:0x6B4 +fn_1_96F0 = .text:0x000096F0; // type:function size:0x39C +fn_1_9A8C = .text:0x00009A8C; // type:function size:0x1F4 +fn_1_9C80 = .text:0x00009C80; // type:function size:0x188 +fn_1_9E08 = .text:0x00009E08; // type:function size:0xF0 +fn_1_9EF8 = .text:0x00009EF8; // type:function size:0x74 +fn_1_9F6C = .text:0x00009F6C; // type:function size:0x134 +fn_1_A0A0 = .text:0x0000A0A0; // type:function size:0x31C +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x468 +fn_1_A824 = .text:0x0000A824; // type:function size:0x17C +fn_1_A9A0 = .text:0x0000A9A0; // type:function size:0x79C +fn_1_B13C = .text:0x0000B13C; // type:function size:0x644 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x10 data:4byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x10 data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x20 data:4byte +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x1 data:byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x3C +lbl_1_data_88 = .data:0x00000088; // type:object size:0x3C +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x14 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2 data:2byte +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x20 +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x8 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_data_114 = .data:0x00000114; // type:object size:0x1C +lbl_1_data_130 = .data:0x00000130; // type:object size:0x10 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x20 +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x20 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x28 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xA0 +lbl_1_data_274 = .data:0x00000274; // type:object size:0x20 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x20 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x6 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x10 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m411Dll/splits.txt b/config/GMPP01_00/rels/m411Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m411Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m411Dll/symbols.txt b/config/GMPP01_00/rels/m411Dll/symbols.txt new file mode 100644 index 00000000..a4cd3909 --- /dev/null +++ b/config/GMPP01_00/rels/m411Dll/symbols.txt @@ -0,0 +1,278 @@ +_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:0xDE0 +fn_1_E80 = .text:0x00000E80; // type:function size:0x10C +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x424 +fn_1_1498 = .text:0x00001498; // type:function size:0x88 +fn_1_1520 = .text:0x00001520; // type:function size:0x72C +fn_1_1C4C = .text:0x00001C4C; // type:function size:0x47C +fn_1_20C8 = .text:0x000020C8; // type:function size:0x508 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xEE0 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x5B0 +fn_1_3A60 = .text:0x00003A60; // type:function size:0x3C +fn_1_3A9C = .text:0x00003A9C; // type:function size:0x3C +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x3C +fn_1_3B14 = .text:0x00003B14; // type:function size:0x3C +fn_1_3B50 = .text:0x00003B50; // type:function size:0x3E4 +fn_1_3F34 = .text:0x00003F34; // type:function size:0x2E4 +fn_1_4218 = .text:0x00004218; // type:function size:0x23C +fn_1_4454 = .text:0x00004454; // type:function size:0x514 +fn_1_4968 = .text:0x00004968; // type:function size:0x248 +fn_1_4BB0 = .text:0x00004BB0; // type:function size:0x2DC +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x1F0 +fn_1_507C = .text:0x0000507C; // type:function size:0x308 +fn_1_5384 = .text:0x00005384; // type:function size:0xC8 +fn_1_544C = .text:0x0000544C; // type:function size:0x108 +fn_1_5554 = .text:0x00005554; // type:function size:0x368 +fn_1_58BC = .text:0x000058BC; // type:function size:0x54 +fn_1_5910 = .text:0x00005910; // type:function size:0x448 +fn_1_5D58 = .text:0x00005D58; // type:function size:0xB8 +fn_1_5E10 = .text:0x00005E10; // type:function size:0xC0 +fn_1_5ED0 = .text:0x00005ED0; // type:function size:0x6C +fn_1_5F3C = .text:0x00005F3C; // type:function size:0x4EC +fn_1_6428 = .text:0x00006428; // type:function size:0x3F8 +fn_1_6820 = .text:0x00006820; // type:function size:0x21C +fn_1_6A3C = .text:0x00006A3C; // type:function size:0x2B8 +fn_1_6CF4 = .text:0x00006CF4; // type:function size:0xE4 +fn_1_6DD8 = .text:0x00006DD8; // type:function size:0xC4 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xAC +fn_1_6F48 = .text:0x00006F48; // type:function size:0x680 +fn_1_75C8 = .text:0x000075C8; // type:function size:0xB8 +fn_1_7680 = .text:0x00007680; // type:function size:0xB8 +fn_1_7738 = .text:0x00007738; // type:function size:0x1348 +fn_1_8A80 = .text:0x00008A80; // type:function size:0x33C +fn_1_8DBC = .text:0x00008DBC; // type:function size:0x6D4 +fn_1_9490 = .text:0x00009490; // type:function size:0x730 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x444 +fn_1_A004 = .text:0x0000A004; // type:function size:0x78 +fn_1_A07C = .text:0x0000A07C; // type:function size:0xA4 +fn_1_A120 = .text:0x0000A120; // type:function size:0x394 +fn_1_A4B4 = .text:0x0000A4B4; // type:function size:0x2D4 +fn_1_A788 = .text:0x0000A788; // type:function size:0x528 +fn_1_ACB0 = .text:0x0000ACB0; // type:function size:0xA8 +fn_1_AD58 = .text:0x0000AD58; // type:function size:0xB48 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xE data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0xE data:string +lbl_1_data_94 = .data:0x00000094; // type:object size:0xE data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xE data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0xE data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xE data:string +lbl_1_data_DA = .data:0x000000DA; // type:object size:0xE data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xE data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x78 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x20 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x24 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x20 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x14 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0xB data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0xB data:string +lbl_1_data_2FA = .data:0x000002FA; // type:object size:0x8 data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xA +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x10 +lbl_1_data_31C = .data:0x0000031C; // type:object size:0xC data:string +lbl_1_data_328 = .data:0x00000328; // type:object size:0x7 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x7 data:string +lbl_1_data_336 = .data:0x00000336; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x60 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x60 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x10 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x33C data:float +lbl_1_bss_474 = .bss:0x00000474; // type:object size:0x9B0 +lbl_1_bss_E24 = .bss:0x00000E24; // type:object size:0x4 data:float +lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0xC data:4byte +lbl_1_bss_E38 = .bss:0x00000E38; // type:object size:0x4 data:4byte +lbl_1_bss_E3C = .bss:0x00000E3C; // type:object size:0x4 data:4byte +lbl_1_bss_E40 = .bss:0x00000E40; // type:object size:0x4 data:4byte +lbl_1_bss_E44 = .bss:0x00000E44; // type:object size:0x28 data:4byte +lbl_1_bss_E6C = .bss:0x00000E6C; // type:object size:0x28 data:4byte +lbl_1_bss_E94 = .bss:0x00000E94; // type:object size:0x4 data:4byte +lbl_1_bss_E98 = .bss:0x00000E98; // type:object size:0x4 data:4byte +lbl_1_bss_E9C = .bss:0x00000E9C; // type:object size:0x2 data:2byte +lbl_1_bss_E9E = .bss:0x00000E9E; // type:object size:0x2 data:2byte +lbl_1_bss_EA0 = .bss:0x00000EA0; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m412Dll/splits.txt b/config/GMPP01_00/rels/m412Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m412Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m412Dll/symbols.txt b/config/GMPP01_00/rels/m412Dll/symbols.txt new file mode 100644 index 00000000..577e6f3e --- /dev/null +++ b/config/GMPP01_00/rels/m412Dll/symbols.txt @@ -0,0 +1,190 @@ +_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:0x64C +fn_1_6EC = .text:0x000006EC; // type:function size:0x50 +fn_1_73C = .text:0x0000073C; // type:function size:0x80 +fn_1_7BC = .text:0x000007BC; // type:function size:0xD8 +fn_1_894 = .text:0x00000894; // type:function size:0x4 +fn_1_898 = .text:0x00000898; // type:function size:0x24 +fn_1_8BC = .text:0x000008BC; // type:function size:0x144C +fn_1_1D08 = .text:0x00001D08; // type:function size:0x80 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x34 +fn_1_1DBC = .text:0x00001DBC; // type:function size:0x258 +fn_1_2014 = .text:0x00002014; // type:function size:0x50 +fn_1_2064 = .text:0x00002064; // type:function size:0x6A4 +fn_1_2708 = .text:0x00002708; // type:function size:0xBC +fn_1_27C4 = .text:0x000027C4; // type:function size:0x258 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0xF2C +fn_1_3948 = .text:0x00003948; // type:function size:0x128C +fn_1_4BD4 = .text:0x00004BD4; // type:function size:0xB8 +fn_1_4C8C = .text:0x00004C8C; // type:function size:0x1BC +fn_1_4E48 = .text:0x00004E48; // type:function size:0x404 +fn_1_524C = .text:0x0000524C; // type:function size:0xC0 +fn_1_530C = .text:0x0000530C; // type:function size:0x6C +fn_1_5378 = .text:0x00005378; // type:function size:0x6C +fn_1_53E4 = .text:0x000053E4; // type:function size:0x228 +fn_1_560C = .text:0x0000560C; // type:function size:0x21C +fn_1_5828 = .text:0x00005828; // type:function size:0xD5C +fn_1_6584 = .text:0x00006584; // type:function size:0x104 +fn_1_6688 = .text:0x00006688; // type:function size:0x17C +fn_1_6804 = .text:0x00006804; // type:function size:0x144C +fn_1_7C50 = .text:0x00007C50; // type:function size:0x23BC +fn_1_A00C = .text:0x0000A00C; // type:function size:0x5FC +fn_1_A608 = .text:0x0000A608; // type:function size:0x470 +fn_1_AA78 = .text:0x0000AA78; // type:function size:0x340 +fn_1_ADB8 = .text:0x0000ADB8; // type:function size:0x374 +fn_1_B12C = .text:0x0000B12C; // type:function size:0x24 +fn_1_B150 = .text:0x0000B150; // type:function size:0x60 +fn_1_B1B0 = .text:0x0000B1B0; // type:function size:0x498 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string +lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string +lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string +lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string +lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string +lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string +lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string +lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string +lbl_1_data_307 = .data:0x00000307; // type:object size:0x9 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 +lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114 +lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float +lbl_1_bss_25C = .bss:0x0000025C; // type:object size:0xC data:float +lbl_1_bss_268 = .bss:0x00000268; // type:object size:0xC data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 data:4byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x80 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x44 data:2byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x198 +lbl_1_bss_4D4 = .bss:0x000004D4; // type:object size:0x2A0 +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:float +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x4 data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float +lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte +lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m413Dll/splits.txt b/config/GMPP01_00/rels/m413Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m413Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m413Dll/symbols.txt b/config/GMPP01_00/rels/m413Dll/symbols.txt new file mode 100644 index 00000000..a3598af6 --- /dev/null +++ b/config/GMPP01_00/rels/m413Dll/symbols.txt @@ -0,0 +1,211 @@ +_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:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0x134 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xBC +fn_1_57C = .text:0x0000057C; // type:function size:0x154 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x128 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x6C8 +fn_1_EC0 = .text:0x00000EC0; // type:function size:0x1F8 +fn_1_10B8 = .text:0x000010B8; // type:function size:0x90C +fn_1_19C4 = .text:0x000019C4; // type:function size:0x4 +fn_1_19C8 = .text:0x000019C8; // type:function size:0x38DC +fn_1_52A4 = .text:0x000052A4; // type:function size:0x3824 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x148 +fn_1_8C10 = .text:0x00008C10; // type:function size:0x192C +fn_1_A53C = .text:0x0000A53C; // type:function size:0x1188 +fn_1_B6C4 = .text:0x0000B6C4; // type:function size:0x101C +fn_1_C6E0 = .text:0x0000C6E0; // type:function size:0x4D4 +fn_1_CBB4 = .text:0x0000CBB4; // type:function size:0x78C +fn_1_D340 = .text:0x0000D340; // type:function size:0x60 +fn_1_D3A0 = .text:0x0000D3A0; // type:function size:0x360 +fn_1_D700 = .text:0x0000D700; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x4 data:float +lbl_1_rodata_890 = .rodata:0x00000890; // type:object size:0x1C data:4byte +lbl_1_rodata_8AC = .rodata:0x000008AC; // type:object size:0x4 data:float +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x8 data:double +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x4 data:float +lbl_1_rodata_8C4 = .rodata:0x000008C4; // type:object size:0x4 data:float +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x8 data:double +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x4 data:float +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x8 data:double +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x4 data:float +lbl_1_rodata_8FC = .rodata:0x000008FC; // type:object size:0x4 data:float +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x8 data:double +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0x4 data:float +lbl_1_rodata_918 = .rodata:0x00000918; // type:object size:0xC data:byte +lbl_1_rodata_924 = .rodata:0x00000924; // type:object size:0x18 data:4byte +lbl_1_rodata_93C = .rodata:0x0000093C; // type:object size:0x8 data:byte +lbl_1_rodata_944 = .rodata:0x00000944; // type:object size:0x10 data:4byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x1 data:byte +lbl_1_rodata_958 = .rodata:0x00000958; // type:object size:0x10 data:4byte +lbl_1_rodata_968 = .rodata:0x00000968; // type:object size:0x10 data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x2C data:4byte +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x70 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x18 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x28 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2580 +lbl_1_bss_2680 = .bss:0x00002680; // type:object size:0x4 data:4byte +lbl_1_bss_2684 = .bss:0x00002684; // type:object size:0x3E8 +lbl_1_bss_2A6C = .bss:0x00002A6C; // type:object size:0x4E18 +lbl_1_bss_7884 = .bss:0x00007884; // type:object size:0x30 diff --git a/config/GMPP01_00/rels/m414Dll/splits.txt b/config/GMPP01_00/rels/m414Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m414Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m414Dll/symbols.txt b/config/GMPP01_00/rels/m414Dll/symbols.txt new file mode 100644 index 00000000..b04c8e01 --- /dev/null +++ b/config/GMPP01_00/rels/m414Dll/symbols.txt @@ -0,0 +1,183 @@ +_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:0x87C +fn_1_91C = .text:0x0000091C; // type:function size:0x268 +fn_1_B84 = .text:0x00000B84; // type:function size:0x154 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x7C +fn_1_D54 = .text:0x00000D54; // type:function size:0x634 +fn_1_1388 = .text:0x00001388; // type:function size:0x3C +fn_1_13C4 = .text:0x000013C4; // type:function size:0x3C +fn_1_1400 = .text:0x00001400; // type:function size:0x3C +fn_1_143C = .text:0x0000143C; // type:function size:0x3C +fn_1_1478 = .text:0x00001478; // type:function size:0x214 +fn_1_168C = .text:0x0000168C; // type:function size:0x3C +fn_1_16C8 = .text:0x000016C8; // type:function size:0x3C +fn_1_1704 = .text:0x00001704; // type:function size:0x3C +fn_1_1740 = .text:0x00001740; // type:function size:0x3C +fn_1_177C = .text:0x0000177C; // type:function size:0x3DC +fn_1_1B58 = .text:0x00001B58; // type:function size:0x3C +fn_1_1B94 = .text:0x00001B94; // type:function size:0x3C +fn_1_1BD0 = .text:0x00001BD0; // type:function size:0x3C +fn_1_1C0C = .text:0x00001C0C; // type:function size:0x3C +fn_1_1C48 = .text:0x00001C48; // type:function size:0x1BC +fn_1_1E04 = .text:0x00001E04; // type:function size:0x1B78 +fn_1_397C = .text:0x0000397C; // type:function size:0xDC +fn_1_3A58 = .text:0x00003A58; // type:function size:0xDC +fn_1_3B34 = .text:0x00003B34; // type:function size:0x214 +fn_1_3D48 = .text:0x00003D48; // type:function size:0x184 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x3E0 +fn_1_42AC = .text:0x000042AC; // type:function size:0x958 +fn_1_4C04 = .text:0x00004C04; // type:function size:0x70 +fn_1_4C74 = .text:0x00004C74; // type:function size:0x19C +fn_1_4E10 = .text:0x00004E10; // type:function size:0x744 +fn_1_5554 = .text:0x00005554; // type:function size:0xD0 +fn_1_5624 = .text:0x00005624; // type:function size:0xD8 +fn_1_56FC = .text:0x000056FC; // type:function size:0x84 +fn_1_5780 = .text:0x00005780; // type:function size:0x2BC +fn_1_5A3C = .text:0x00005A3C; // type:function size:0x4AC +fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x24C +fn_1_6134 = .text:0x00006134; // type:function size:0x418 +fn_1_654C = .text:0x0000654C; // type:function size:0x90 +fn_1_65DC = .text:0x000065DC; // type:function size:0x68 +fn_1_6644 = .text:0x00006644; // type:function size:0x10B0 +fn_1_76F4 = .text:0x000076F4; // type:function size:0x2B4 +fn_1_79A8 = .text:0x000079A8; // type:function size:0x620 +fn_1_7FC8 = .text:0x00007FC8; // type:function size:0x90C +fn_1_88D4 = .text:0x000088D4; // type:function size:0x78 +fn_1_894C = .text:0x0000894C; // type:function size:0xC4 +fn_1_8A10 = .text:0x00008A10; // type:function size:0x60 +fn_1_8A70 = .text:0x00008A70; // type:function size:0x450 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x20 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x10 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x10 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x60 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x3C +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x3C +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x3C +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x10 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x820 data:2byte +lbl_1_bss_910 = .bss:0x00000910; // type:object size:0x10 data:float +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x10 data:float +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x8 data:4byte +lbl_1_bss_938 = .bss:0x00000938; // type:object size:0x40 +lbl_1_bss_978 = .bss:0x00000978; // type:object size:0x4 data:4byte +lbl_1_bss_97C = .bss:0x0000097C; // type:object size:0x10 +lbl_1_bss_98C = .bss:0x0000098C; // type:object size:0x4 data:4byte +lbl_1_bss_990 = .bss:0x00000990; // type:object size:0x80 +lbl_1_bss_A10 = .bss:0x00000A10; // type:object size:0x2 data:2byte +lbl_1_bss_A12 = .bss:0x00000A12; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m415Dll/splits.txt b/config/GMPP01_00/rels/m415Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m415Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m415Dll/symbols.txt b/config/GMPP01_00/rels/m415Dll/symbols.txt new file mode 100644 index 00000000..f68c9a44 --- /dev/null +++ b/config/GMPP01_00/rels/m415Dll/symbols.txt @@ -0,0 +1,234 @@ +_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:0x39C +fn_1_43C = .text:0x0000043C; // type:function size:0x74 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x328 +fn_1_7D8 = .text:0x000007D8; // type:function size:0xCE0 +fn_1_14B8 = .text:0x000014B8; // type:function size:0x64 +fn_1_151C = .text:0x0000151C; // type:function size:0xAC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x390 +fn_1_1958 = .text:0x00001958; // type:function size:0x100 +fn_1_1A58 = .text:0x00001A58; // type:function size:0x10B8 +fn_1_2B10 = .text:0x00002B10; // type:function size:0xFC +fn_1_2C0C = .text:0x00002C0C; // type:function size:0x274 +fn_1_2E80 = .text:0x00002E80; // type:function size:0xA0 +fn_1_2F20 = .text:0x00002F20; // type:function size:0x2B8 +fn_1_31D8 = .text:0x000031D8; // type:function size:0x28 +fn_1_3200 = .text:0x00003200; // type:function size:0x438 +fn_1_3638 = .text:0x00003638; // type:function size:0x124 +fn_1_375C = .text:0x0000375C; // type:function size:0x3E0 +fn_1_3B3C = .text:0x00003B3C; // type:function size:0xB1C +fn_1_4658 = .text:0x00004658; // type:function size:0x14C0 +fn_1_5B18 = .text:0x00005B18; // type:function size:0x490 +fn_1_5FA8 = .text:0x00005FA8; // type:function size:0x354 +fn_1_62FC = .text:0x000062FC; // type:function size:0x64 +fn_1_6360 = .text:0x00006360; // type:function size:0x40 +fn_1_63A0 = .text:0x000063A0; // type:function size:0xA0 +fn_1_6440 = .text:0x00006440; // type:function size:0x94 +fn_1_64D4 = .text:0x000064D4; // type:function size:0xA8 +fn_1_657C = .text:0x0000657C; // type:function size:0x108 +fn_1_6684 = .text:0x00006684; // type:function size:0x20 +fn_1_66A4 = .text:0x000066A4; // type:function size:0xF0 +fn_1_6794 = .text:0x00006794; // type:function size:0x54 +fn_1_67E8 = .text:0x000067E8; // type:function size:0x168 +fn_1_6950 = .text:0x00006950; // type:function size:0x120 +fn_1_6A70 = .text:0x00006A70; // type:function size:0x30C +fn_1_6D7C = .text:0x00006D7C; // type:function size:0x78 +fn_1_6DF4 = .text:0x00006DF4; // type:function size:0x11C +fn_1_6F10 = .text:0x00006F10; // type:function size:0x78 +fn_1_6F88 = .text:0x00006F88; // type:function size:0x2D8 +fn_1_7260 = .text:0x00007260; // type:function size:0x2B8 +fn_1_7518 = .text:0x00007518; // type:function size:0x154 +fn_1_766C = .text:0x0000766C; // type:function size:0x3E0 +fn_1_7A4C = .text:0x00007A4C; // type:function size:0x214 +fn_1_7C60 = .text:0x00007C60; // type:function size:0x198 +fn_1_7DF8 = .text:0x00007DF8; // type:function size:0xD8 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xBC +fn_1_7F8C = .text:0x00007F8C; // type:function size:0x33C +fn_1_82C8 = .text:0x000082C8; // type:function size:0x4B0 +fn_1_8778 = .text:0x00008778; // type:function size:0x138 +fn_1_88B0 = .text:0x000088B0; // type:function size:0xD08 +fn_1_95B8 = .text:0x000095B8; // type:function size:0x12C +fn_1_96E4 = .text:0x000096E4; // type:function size:0x1C +fn_1_9700 = .text:0x00009700; // type:function size:0x2C +fn_1_972C = .text:0x0000972C; // type:function size:0x1C +fn_1_9748 = .text:0x00009748; // type:function size:0x184 +fn_1_98CC = .text:0x000098CC; // type:function size:0xA0 +fn_1_996C = .text:0x0000996C; // type:function size:0xA8 +fn_1_9A14 = .text:0x00009A14; // type:function size:0x8C +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x98 +fn_1_9B38 = .text:0x00009B38; // type:function size:0x288 +fn_1_9DC0 = .text:0x00009DC0; // type:function size:0x508 +fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0x530 +fn_1_A7F8 = .text:0x0000A7F8; // type:function size:0x120 +fn_1_A918 = .text:0x0000A918; // type:function size:0x2C +fn_1_A944 = .text:0x0000A944; // type:function size:0x3A8 +fn_1_ACEC = .text:0x0000ACEC; // type:function size:0x254 +fn_1_AF40 = .text:0x0000AF40; // type:function size:0x80 +fn_1_AFC0 = .text:0x0000AFC0; // type:function size:0x70 +fn_1_B030 = .text:0x0000B030; // type:function size:0x80 +fn_1_B0B0 = .text:0x0000B0B0; // type:function size:0x57C +fn_1_B62C = .text:0x0000B62C; // type:function size:0x230 +fn_1_B85C = .text:0x0000B85C; // type:function size:0x6C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x70 +fn_1_B938 = .text:0x0000B938; // type:function size:0x74 +fn_1_B9AC = .text:0x0000B9AC; // type:function size:0x84 +fn_1_BA30 = .text:0x0000BA30; // type:function size:0x88 +fn_1_BAB8 = .text:0x0000BAB8; // type:function size:0x8C +fn_1_BB44 = .text:0x0000BB44; // type:function size:0x6C +fn_1_BBB0 = .text:0x0000BBB0; // type:function size:0x70 +fn_1_BC20 = .text:0x0000BC20; // type:function size:0x74 +fn_1_BC94 = .text:0x0000BC94; // type:function size:0x6C +fn_1_BD00 = .text:0x0000BD00; // type:function size:0x70 +fn_1_BD70 = .text:0x0000BD70; // type:function size:0x74 +fn_1_BDE4 = .text:0x0000BDE4; // type:function size:0x44 +fn_1_BE28 = .text:0x0000BE28; // type:function size:0x70 +fn_1_BE98 = .text:0x0000BE98; // type:function size:0x70 +fn_1_BF08 = .text:0x0000BF08; // type:function size:0x44 +fn_1_BF4C = .text:0x0000BF4C; // type:function size:0x70 +fn_1_BFBC = .text:0x0000BFBC; // type:function size:0x70 +fn_1_C02C = .text:0x0000C02C; // type:function size:0x5C +fn_1_C088 = .text:0x0000C088; // type:function size:0x80 +fn_1_C108 = .text:0x0000C108; // type:function size:0x74 +fn_1_C17C = .text:0x0000C17C; // type:function size:0x78 +fn_1_C1F4 = .text:0x0000C1F4; // type:function size:0x68 +fn_1_C25C = .text:0x0000C25C; // type:function size:0x6C +fn_1_C2C8 = .text:0x0000C2C8; // type:function size:0x68 +fn_1_C330 = .text:0x0000C330; // type:function size:0x6C +fn_1_C39C = .text:0x0000C39C; // type:function size:0x6C +fn_1_C408 = .text:0x0000C408; // type:function size:0x78 +fn_1_C480 = .text:0x0000C480; // type:function size:0x98 +fn_1_C518 = .text:0x0000C518; // type:function size:0x6C +fn_1_C584 = .text:0x0000C584; // type:function size:0x78 +fn_1_C5FC = .text:0x0000C5FC; // type:function size:0x98 +fn_1_C694 = .text:0x0000C694; // type:function size:0x70 +fn_1_C704 = .text:0x0000C704; // type:function size:0x78 +fn_1_C77C = .text:0x0000C77C; // type:function size:0x98 +fn_1_C814 = .text:0x0000C814; // type:function size:0x40 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 data:byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0xB +lbl_1_data_80 = .data:0x00000080; // type:object size:0x28 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x30 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x30 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x200 +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0x100 +lbl_1_bss_334 = .bss:0x00000334; // type:object size:0x4 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0x2 data:2byte +lbl_1_bss_33A = .bss:0x0000033A; // type:object size:0x8 data:2byte +lbl_1_bss_342 = .bss:0x00000342; // type:object size:0x2 data:2byte +lbl_1_bss_344 = .bss:0x00000344; // type:object size:0x2 data:2byte +lbl_1_bss_346 = .bss:0x00000346; // type:object size:0x2 data:2byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x2 data:2byte +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x10 +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x4 data:4byte +lbl_1_bss_360 = .bss:0x00000360; // type:object size:0x4 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x4 data:4byte +lbl_1_bss_368 = .bss:0x00000368; // type:object size:0x4 data:4byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x44 data:4byte diff --git a/config/GMPP01_00/rels/m416Dll/splits.txt b/config/GMPP01_00/rels/m416Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m416Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m416Dll/symbols.txt b/config/GMPP01_00/rels/m416Dll/symbols.txt new file mode 100644 index 00000000..8a25d373 --- /dev/null +++ b/config/GMPP01_00/rels/m416Dll/symbols.txt @@ -0,0 +1,209 @@ +_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:0x3B8 +fn_1_458 = .text:0x00000458; // type:function size:0xA4 +fn_1_4FC = .text:0x000004FC; // type:function size:0xCEC +fn_1_11E8 = .text:0x000011E8; // type:function size:0x58 +fn_1_1240 = .text:0x00001240; // type:function size:0x10 +fn_1_1250 = .text:0x00001250; // type:function size:0x10 +fn_1_1260 = .text:0x00001260; // type:function size:0x220 +fn_1_1480 = .text:0x00001480; // type:function size:0x68 +fn_1_14E8 = .text:0x000014E8; // type:function size:0x84 +fn_1_156C = .text:0x0000156C; // type:function size:0x3F8 +fn_1_1964 = .text:0x00001964; // type:function size:0x178 +fn_1_1ADC = .text:0x00001ADC; // type:function size:0x1A4 +fn_1_1C80 = .text:0x00001C80; // type:function size:0x104 +fn_1_1D84 = .text:0x00001D84; // type:function size:0xBAC +fn_1_2930 = .text:0x00002930; // type:function size:0xAC +fn_1_29DC = .text:0x000029DC; // type:function size:0x4C8 +fn_1_2EA4 = .text:0x00002EA4; // type:function size:0x778 +fn_1_361C = .text:0x0000361C; // type:function size:0x280 +fn_1_389C = .text:0x0000389C; // type:function size:0x54 +fn_1_38F0 = .text:0x000038F0; // type:function size:0x10D4 +fn_1_49C4 = .text:0x000049C4; // type:function size:0x640 +fn_1_5004 = .text:0x00005004; // type:function size:0x54 +fn_1_5058 = .text:0x00005058; // type:function size:0x264 +fn_1_52BC = .text:0x000052BC; // type:function size:0x274 +fn_1_5530 = .text:0x00005530; // type:function size:0x704 +fn_1_5C34 = .text:0x00005C34; // type:function size:0xE4 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x60 +fn_1_5D78 = .text:0x00005D78; // type:function size:0x3C4 +fn_1_613C = .text:0x0000613C; // type:function size:0x504 +fn_1_6640 = .text:0x00006640; // type:function size:0x4A8 +fn_1_6AE8 = .text:0x00006AE8; // type:function size:0x304 +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x70 +fn_1_6E5C = .text:0x00006E5C; // type:function size:0x240 +fn_1_709C = .text:0x0000709C; // type:function size:0x250 +fn_1_72EC = .text:0x000072EC; // type:function size:0x6E4 +fn_1_79D0 = .text:0x000079D0; // type:function size:0x84 +fn_1_7A54 = .text:0x00007A54; // type:function size:0x20 +fn_1_7A74 = .text:0x00007A74; // type:function size:0x300 +fn_1_7D74 = .text:0x00007D74; // type:function size:0x1BC +fn_1_7F30 = .text:0x00007F30; // type:function size:0x484 +fn_1_83B4 = .text:0x000083B4; // type:function size:0x550 +fn_1_8904 = .text:0x00008904; // type:function size:0xB8 +fn_1_89BC = .text:0x000089BC; // type:function size:0x4E4 +fn_1_8EA0 = .text:0x00008EA0; // type:function size:0x14 +fn_1_8EB4 = .text:0x00008EB4; // type:function size:0xAC +fn_1_8F60 = .text:0x00008F60; // type:function size:0x90 +fn_1_8FF0 = .text:0x00008FF0; // type:function size:0x4 +fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x34 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +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:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x1 data:byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x1 data:byte +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x1 data:byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +jumptable_1_data_68 = .data:0x00000068; // type:object size:0x2C scope:local +lbl_1_data_94 = .data:0x00000094; // type:object size:0x1C data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x40 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1C +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x48 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x18 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x30 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x20 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC data:4byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x48 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x1 data:byte +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x60 data:float +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x18 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x10 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x900 +lbl_1_bss_914 = .bss:0x00000914; // type:object size:0x4 data:4byte +lbl_1_bss_918 = .bss:0x00000918; // type:object size:0x2 data:2byte +lbl_1_bss_91A = .bss:0x0000091A; // type:object size:0x6 data:2byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x4 data:float +lbl_1_bss_924 = .bss:0x00000924; // type:object size:0x2 data:2byte +lbl_1_bss_926 = .bss:0x00000926; // type:object size:0x2 data:2byte +lbl_1_bss_928 = .bss:0x00000928; // type:object size:0x2 data:2byte +lbl_1_bss_92A = .bss:0x0000092A; // type:object size:0x2 data:2byte +lbl_1_bss_92E = .bss:0x0000092E; // type:object size:0x2 data:2byte +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x20 data:4byte +lbl_1_bss_950 = .bss:0x00000950; // type:object size:0x4 data:4byte +lbl_1_bss_954 = .bss:0x00000954; // type:object size:0x4 data:4byte +lbl_1_bss_958 = .bss:0x00000958; // type:object size:0x4 data:4byte +lbl_1_bss_95C = .bss:0x0000095C; // type:object size:0x2 data:2byte +lbl_1_bss_960 = .bss:0x00000960; // type:object size:0x8 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x800 data:2byte +lbl_1_bss_1168 = .bss:0x00001168; // type:object size:0x2 data:2byte +lbl_1_bss_116C = .bss:0x0000116C; // type:object size:0x8 data:float +lbl_1_bss_1174 = .bss:0x00001174; // type:object size:0x8 +lbl_1_bss_117C = .bss:0x0000117C; // type:object size:0x4 data:float +lbl_1_bss_1180 = .bss:0x00001180; // type:object size:0x4 data:4byte +lbl_1_bss_1184 = .bss:0x00001184; // type:object size:0x4 data:4byte +lbl_1_bss_1188 = .bss:0x00001188; // type:object size:0x4 data:4byte +lbl_1_bss_118C = .bss:0x0000118C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m417Dll/splits.txt b/config/GMPP01_00/rels/m417Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m417Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m417Dll/symbols.txt b/config/GMPP01_00/rels/m417Dll/symbols.txt new file mode 100644 index 00000000..f539c02c --- /dev/null +++ b/config/GMPP01_00/rels/m417Dll/symbols.txt @@ -0,0 +1,361 @@ +_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:0x438 +fn_1_4D8 = .text:0x000004D8; // type:function size:0xD8 +fn_1_5B0 = .text:0x000005B0; // type:function size:0x250 +fn_1_800 = .text:0x00000800; // type:function size:0x190 +fn_1_990 = .text:0x00000990; // type:function size:0x518 +fn_1_EA8 = .text:0x00000EA8; // type:function size:0x534 +fn_1_13DC = .text:0x000013DC; // type:function size:0x3E4 +fn_1_17C0 = .text:0x000017C0; // type:function size:0x4E8 +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4B0 +fn_1_2158 = .text:0x00002158; // type:function size:0x570 +fn_1_26C8 = .text:0x000026C8; // type:function size:0x18 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x18 +fn_1_26F8 = .text:0x000026F8; // type:function size:0x18 +fn_1_2710 = .text:0x00002710; // type:function size:0x18 +fn_1_2728 = .text:0x00002728; // type:function size:0x18 +fn_1_2740 = .text:0x00002740; // type:function size:0x30 +fn_1_2770 = .text:0x00002770; // type:function size:0x30 +fn_1_27A0 = .text:0x000027A0; // type:function size:0x30 +fn_1_27D0 = .text:0x000027D0; // type:function size:0x38 +fn_1_2808 = .text:0x00002808; // type:function size:0x40 +fn_1_2848 = .text:0x00002848; // type:function size:0x348 +fn_1_2B90 = .text:0x00002B90; // type:function size:0x378 +fn_1_2F08 = .text:0x00002F08; // type:function size:0x11C +fn_1_3024 = .text:0x00003024; // type:function size:0xB4 +fn_1_30D8 = .text:0x000030D8; // type:function size:0x34 +fn_1_310C = .text:0x0000310C; // type:function size:0x168 +fn_1_3274 = .text:0x00003274; // type:function size:0x140 +fn_1_33B4 = .text:0x000033B4; // type:function size:0x4C +fn_1_3400 = .text:0x00003400; // type:function size:0x134 +fn_1_3534 = .text:0x00003534; // type:function size:0x40 +fn_1_3574 = .text:0x00003574; // type:function size:0x22C +fn_1_37A0 = .text:0x000037A0; // type:function size:0x37C +fn_1_3B1C = .text:0x00003B1C; // type:function size:0xA8 +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x190 +fn_1_3D54 = .text:0x00003D54; // type:function size:0x4 +fn_1_3D58 = .text:0x00003D58; // type:function size:0xE70 +fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x29C +fn_1_4E64 = .text:0x00004E64; // type:function size:0x94C +fn_1_57B0 = .text:0x000057B0; // type:function size:0x68C +fn_1_5E3C = .text:0x00005E3C; // type:function size:0x210 +fn_1_604C = .text:0x0000604C; // type:function size:0xAB8 +fn_1_6B04 = .text:0x00006B04; // type:function size:0x5C +fn_1_6B60 = .text:0x00006B60; // type:function size:0x34 +fn_1_6B94 = .text:0x00006B94; // type:function size:0x1D0 +fn_1_6D64 = .text:0x00006D64; // type:function size:0x7AC +fn_1_7510 = .text:0x00007510; // type:function size:0xAC +fn_1_75BC = .text:0x000075BC; // type:function size:0x34 +fn_1_75F0 = .text:0x000075F0; // type:function size:0x10 +fn_1_7600 = .text:0x00007600; // type:function size:0x24 +fn_1_7624 = .text:0x00007624; // type:function size:0x298 +fn_1_78BC = .text:0x000078BC; // type:function size:0xAC +fn_1_7968 = .text:0x00007968; // type:function size:0xC0 +fn_1_7A28 = .text:0x00007A28; // type:function size:0xC +fn_1_7A34 = .text:0x00007A34; // type:function size:0x234 +fn_1_7C68 = .text:0x00007C68; // type:function size:0x24 +fn_1_7C8C = .text:0x00007C8C; // type:function size:0x670 +fn_1_82FC = .text:0x000082FC; // type:function size:0x3EC +fn_1_86E8 = .text:0x000086E8; // type:function size:0x424 +fn_1_8B0C = .text:0x00008B0C; // type:function size:0x224 +fn_1_8D30 = .text:0x00008D30; // type:function size:0x114 +fn_1_8E44 = .text:0x00008E44; // type:function size:0x39C +fn_1_91E0 = .text:0x000091E0; // type:function size:0xB8 +fn_1_9298 = .text:0x00009298; // type:function size:0x784 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x1F8 +fn_1_9C14 = .text:0x00009C14; // type:function size:0x3EC +fn_1_A000 = .text:0x0000A000; // type:function size:0xD34 +fn_1_AD34 = .text:0x0000AD34; // type:function size:0xA0 +fn_1_ADD4 = .text:0x0000ADD4; // type:function size:0x4FC +fn_1_B2D0 = .text:0x0000B2D0; // type:function size:0x5E0 +fn_1_B8B0 = .text:0x0000B8B0; // type:function size:0x1A4 +fn_1_BA54 = .text:0x0000BA54; // type:function size:0x74 +fn_1_BAC8 = .text:0x0000BAC8; // type:function size:0x1E8 +fn_1_BCB0 = .text:0x0000BCB0; // type:function size:0x3C +fn_1_BCEC = .text:0x0000BCEC; // type:function size:0xF0 +fn_1_BDDC = .text:0x0000BDDC; // type:function size:0x214 +fn_1_BFF0 = .text:0x0000BFF0; // type:function size:0xA0 +fn_1_C090 = .text:0x0000C090; // type:function size:0x3E4 +fn_1_C474 = .text:0x0000C474; // type:function size:0x224 +fn_1_C698 = .text:0x0000C698; // type:function size:0x134 +fn_1_C7CC = .text:0x0000C7CC; // type:function size:0xF0 +_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:0xC scope:local data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x40 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x84 +lbl_1_data_114 = .data:0x00000114; // type:object size:0xDC +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:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x38 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x110 data:float +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x700 data:4byte +lbl_1_bss_878 = .bss:0x00000878; // type:object size:0x8 data:4byte +lbl_1_bss_880 = .bss:0x00000880; // type:object size:0x4 data:4byte +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x4 data:4byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x10 +lbl_1_bss_898 = .bss:0x00000898; // type:object size:0x10 data:4byte +lbl_1_bss_8A8 = .bss:0x000008A8; // type:object size:0x4 data:4byte +lbl_1_bss_8AC = .bss:0x000008AC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m418Dll/splits.txt b/config/GMPP01_00/rels/m418Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m418Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m418Dll/symbols.txt b/config/GMPP01_00/rels/m418Dll/symbols.txt new file mode 100644 index 00000000..e44b8b6a --- /dev/null +++ b/config/GMPP01_00/rels/m418Dll/symbols.txt @@ -0,0 +1,304 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x74 +fn_1_74 = .text:0x00000074; // type:function size:0xE4 +fn_1_158 = .text:0x00000158; // type:function size:0x28 +fn_1_180 = .text:0x00000180; // type:function size:0xC8 +fn_1_248 = .text:0x00000248; // type:function size:0x20 +fn_1_268 = .text:0x00000268; // type:function size:0x298 +fn_1_500 = .text:0x00000500; // type:function size:0x118 +fn_1_618 = .text:0x00000618; // type:function size:0xC4 +fn_1_6DC = .text:0x000006DC; // type:function size:0x38 +fn_1_714 = .text:0x00000714; // type:function size:0x34 +fn_1_748 = .text:0x00000748; // type:function size:0x38 +fn_1_780 = .text:0x00000780; // type:function size:0x1C8 +fn_1_948 = .text:0x00000948; // type:function size:0x48 +fn_1_990 = .text:0x00000990; // type:function size:0x110 +fn_1_AA0 = .text:0x00000AA0; // type:function size:0xA4 +fn_1_B44 = .text:0x00000B44; // type:function size:0x328 +fn_1_E6C = .text:0x00000E6C; // type:function size:0x67C +fn_1_14E8 = .text:0x000014E8; // type:function size:0x3BC +fn_1_18A4 = .text:0x000018A4; // type:function size:0x50 +fn_1_18F4 = .text:0x000018F4; // type:function size:0x7B4 +fn_1_20A8 = .text:0x000020A8; // type:function size:0xC8 +fn_1_2170 = .text:0x00002170; // type:function size:0x71C +fn_1_288C = .text:0x0000288C; // type:function size:0x10C +fn_1_2998 = .text:0x00002998; // type:function size:0x224 +fn_1_2BBC = .text:0x00002BBC; // type:function size:0x48 +fn_1_2C04 = .text:0x00002C04; // type:function size:0x448 +fn_1_304C = .text:0x0000304C; // type:function size:0xE4 +fn_1_3130 = .text:0x00003130; // type:function size:0x108 +fn_1_3238 = .text:0x00003238; // type:function size:0x1C8 +fn_1_3400 = .text:0x00003400; // type:function size:0x3C +fn_1_343C = .text:0x0000343C; // type:function size:0xA6C +fn_1_3EA8 = .text:0x00003EA8; // type:function size:0x814 +fn_1_46BC = .text:0x000046BC; // type:function size:0x5C0 +fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2DC +fn_1_4F58 = .text:0x00004F58; // type:function size:0x3F8 +fn_1_5350 = .text:0x00005350; // type:function size:0xE4 +fn_1_5434 = .text:0x00005434; // type:function size:0x150 +fn_1_5584 = .text:0x00005584; // type:function size:0x120 +fn_1_56A4 = .text:0x000056A4; // type:function size:0xBC +fn_1_5760 = .text:0x00005760; // type:function size:0x7C +fn_1_57DC = .text:0x000057DC; // type:function size:0x18C +fn_1_5968 = .text:0x00005968; // type:function size:0xFC +fn_1_5A64 = .text:0x00005A64; // type:function size:0x2BC +fn_1_5D20 = .text:0x00005D20; // type:function size:0x30 +fn_1_5D50 = .text:0x00005D50; // type:function size:0x98 +fn_1_5DE8 = .text:0x00005DE8; // type:function size:0x248 +fn_1_6030 = .text:0x00006030; // type:function size:0x2DC +fn_1_630C = .text:0x0000630C; // type:function size:0xE4 +fn_1_63F0 = .text:0x000063F0; // type:function size:0x118 +fn_1_6508 = .text:0x00006508; // type:function size:0x108 +fn_1_6610 = .text:0x00006610; // type:function size:0x128 +fn_1_6738 = .text:0x00006738; // type:function size:0xC8 +fn_1_6800 = .text:0x00006800; // type:function size:0x10C +fn_1_690C = .text:0x0000690C; // type:function size:0x4B8 +fn_1_6DC4 = .text:0x00006DC4; // type:function size:0xA0 +fn_1_6E64 = .text:0x00006E64; // type:function size:0x48 +fn_1_6EAC = .text:0x00006EAC; // type:function size:0x84 +fn_1_6F30 = .text:0x00006F30; // type:function size:0x35C +fn_1_728C = .text:0x0000728C; // type:function size:0x4 +fn_1_7290 = .text:0x00007290; // type:function size:0x2D8 +fn_1_7568 = .text:0x00007568; // type:function size:0x74 +fn_1_75DC = .text:0x000075DC; // type:function size:0x214 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x68 +fn_1_7858 = .text:0x00007858; // type:function size:0x208 +fn_1_7A60 = .text:0x00007A60; // type:function size:0x100 +fn_1_7B60 = .text:0x00007B60; // type:function size:0x218 +fn_1_7D78 = .text:0x00007D78; // type:function size:0xA4 +fn_1_7E1C = .text:0x00007E1C; // type:function size:0xF8 +fn_1_7F14 = .text:0x00007F14; // type:function size:0xB8 +fn_1_7FCC = .text:0x00007FCC; // type:function size:0x1CC +fn_1_8198 = .text:0x00008198; // type:function size:0x4 +fn_1_819C = .text:0x0000819C; // type:function size:0x2DC +fn_1_8478 = .text:0x00008478; // type:function size:0x30 +fn_1_84A8 = .text:0x000084A8; // type:function size:0x98 +fn_1_8540 = .text:0x00008540; // type:function size:0x120 +fn_1_8660 = .text:0x00008660; // type:function size:0xC0 +fn_1_8720 = .text:0x00008720; // type:function size:0xA8 +fn_1_87C8 = .text:0x000087C8; // type:function size:0xBC +fn_1_8884 = .text:0x00008884; // type:function size:0x28 +fn_1_88AC = .text:0x000088AC; // type:function size:0xFC +fn_1_89A8 = .text:0x000089A8; // type:function size:0x164 +fn_1_8B0C = .text:0x00008B0C; // type:function size:0x170 +fn_1_8C7C = .text:0x00008C7C; // type:function size:0xEC +fn_1_8D68 = .text:0x00008D68; // type:function size:0x204 +fn_1_8F6C = .text:0x00008F6C; // type:function size:0x120 +fn_1_908C = .text:0x0000908C; // type:function size:0x48 +fn_1_90D4 = .text:0x000090D4; // type:function size:0x64 +fn_1_9138 = .text:0x00009138; // type:function size:0xA4 +fn_1_91DC = .text:0x000091DC; // type:function size:0x108 +fn_1_92E4 = .text:0x000092E4; // type:function size:0x48 +fn_1_932C = .text:0x0000932C; // type:function size:0x30 +fn_1_935C = .text:0x0000935C; // type:function size:0x98 +fn_1_93F4 = .text:0x000093F4; // type:function size:0x130 +fn_1_9524 = .text:0x00009524; // type:function size:0x60 +fn_1_9584 = .text:0x00009584; // type:function size:0x618 +fn_1_9B9C = .text:0x00009B9C; // type:function size:0x3F0 +fn_1_9F8C = .text:0x00009F8C; // type:function size:0x1BC +_prolog = .text:0x0000A148; // type:function size:0x54 scope:global +_epilog = .text:0x0000A19C; // type:function size:0x4C scope:global +fn_1_A1E8 = .text:0x0000A1E8; // type:function size:0x398 +fn_1_A580 = .text:0x0000A580; // type:function size:0x398 +fn_1_A918 = .text:0x0000A918; // type:function size:0x20 +fn_1_A938 = .text:0x0000A938; // type:function size:0x28 +fn_1_A960 = .text:0x0000A960; // type:function size:0xC8 +fn_1_AA28 = .text:0x0000AA28; // type:function size:0xBC +fn_1_AAE4 = .text:0x0000AAE4; // type:function size:0xD8 +fn_1_ABBC = .text:0x0000ABBC; // type:function size:0x150 +fn_1_AD0C = .text:0x0000AD0C; // type:function size:0x178 +fn_1_AE84 = .text:0x0000AE84; // type:function size:0x50 +fn_1_AED4 = .text:0x0000AED4; // type:function size:0x5C +fn_1_AF30 = .text:0x0000AF30; // type:function size:0x88 +fn_1_AFB8 = .text:0x0000AFB8; // type:function size:0x74 +fn_1_B02C = .text:0x0000B02C; // type:function size:0x94 +fn_1_B0C0 = .text:0x0000B0C0; // type:function size:0x3C +fn_1_B0FC = .text:0x0000B0FC; // type:function size:0x318 +fn_1_B414 = .text:0x0000B414; // type:function size:0x3C +fn_1_B450 = .text:0x0000B450; // type:function size:0x4C +fn_1_B49C = .text:0x0000B49C; // type:function size:0x26C +fn_1_B708 = .text:0x0000B708; // type:function size:0x26C +fn_1_B974 = .text:0x0000B974; // type:function size:0x27C +fn_1_BBF0 = .text:0x0000BBF0; // type:function size:0x2B4 +fn_1_BEA4 = .text:0x0000BEA4; // type:function size:0x46C +fn_1_C310 = .text:0x0000C310; // type:function size:0x454 +fn_1_C764 = .text:0x0000C764; // type:function size:0x48C +fn_1_CBF0 = .text:0x0000CBF0; // type:function size:0x658 +fn_1_D248 = .text:0x0000D248; // type:function size:0x4C4 +fn_1_D70C = .text:0x0000D70C; // type:function size:0x4FC +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x6C8 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte +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:0x8 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0xC data:4byte +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0xC data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C scope:local data:4byte +jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x24 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x60 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x30 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x84 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x30 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x48 +lbl_1_data_444 = .data:0x00000444; // type:object size:0x60 +jumptable_1_data_4A4 = .data:0x000004A4; // type:object size:0x28 scope:local +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:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xB4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x54 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x70 +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x14 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4C data:4byte +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x2C data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x180 +lbl_1_bss_3EC = .bss:0x000003EC; // type:object size:0x44 data:4byte diff --git a/config/GMPP01_00/rels/m419Dll/splits.txt b/config/GMPP01_00/rels/m419Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m419Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m419Dll/symbols.txt b/config/GMPP01_00/rels/m419Dll/symbols.txt new file mode 100644 index 00000000..cf313005 --- /dev/null +++ b/config/GMPP01_00/rels/m419Dll/symbols.txt @@ -0,0 +1,184 @@ +_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:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xDC +fn_1_57C = .text:0x0000057C; // type:function size:0x2CC +fn_1_848 = .text:0x00000848; // type:function size:0x288 +fn_1_AD0 = .text:0x00000AD0; // type:function size:0x488 +fn_1_F58 = .text:0x00000F58; // type:function size:0x102C +fn_1_1F84 = .text:0x00001F84; // type:function size:0x128 +fn_1_20AC = .text:0x000020AC; // type:function size:0x128 +fn_1_21D4 = .text:0x000021D4; // type:function size:0x80 +fn_1_2254 = .text:0x00002254; // type:function size:0x4F0 +fn_1_2744 = .text:0x00002744; // type:function size:0x498 +fn_1_2BDC = .text:0x00002BDC; // type:function size:0x220 +fn_1_2DFC = .text:0x00002DFC; // type:function size:0x4FC +fn_1_32F8 = .text:0x000032F8; // type:function size:0x154 +fn_1_344C = .text:0x0000344C; // type:function size:0x1398 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x33C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x334 +fn_1_4E54 = .text:0x00004E54; // type:function size:0xB8 +fn_1_4F0C = .text:0x00004F0C; // type:function size:0xC0 +fn_1_4FCC = .text:0x00004FCC; // type:function size:0x6C +fn_1_5038 = .text:0x00005038; // type:function size:0x6C +fn_1_50A4 = .text:0x000050A4; // type:function size:0x244 +fn_1_52E8 = .text:0x000052E8; // type:function size:0x570 +fn_1_5858 = .text:0x00005858; // type:function size:0x104 +fn_1_595C = .text:0x0000595C; // type:function size:0x17C +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x45C +fn_1_5F34 = .text:0x00005F34; // type:function size:0x358 +fn_1_628C = .text:0x0000628C; // type:function size:0x334 +fn_1_65C0 = .text:0x000065C0; // type:function size:0x1E0 +fn_1_67A0 = .text:0x000067A0; // type:function size:0x564 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x198 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xA18 +fn_1_78B4 = .text:0x000078B4; // type:function size:0x223C +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x130C +fn_1_ADFC = .text:0x0000ADFC; // type:function size:0x258 +fn_1_B054 = .text:0x0000B054; // type:function size:0x2E78 +fn_1_DECC = .text:0x0000DECC; // type:function size:0x70 +fn_1_DF3C = .text:0x0000DF3C; // type:function size:0x5C +fn_1_DF98 = .text:0x0000DF98; // type:function size:0x17A4 +fn_1_F73C = .text:0x0000F73C; // type:function size:0x280 +fn_1_F9BC = .text:0x0000F9BC; // type:function size:0x89C +fn_1_10258 = .text:0x00010258; // type:function size:0x248 +fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 +fn_1_10500 = .text:0x00010500; // type:function size:0x3D8 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x20 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0xC data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0xC data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0xB8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x10 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x58 data:2byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x18 data:2byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x380 +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x10 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x10 +lbl_1_bss_5A4 = .bss:0x000005A4; // type:object size:0x4 data:4byte +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0x4 data:4byte +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x4 data:4byte +lbl_1_bss_5B0 = .bss:0x000005B0; // type:object size:0x4 data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x2 data:2byte +lbl_1_bss_5BA = .bss:0x000005BA; // type:object size:0x2 data:2byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x2 data:2byte +lbl_1_bss_5BE = .bss:0x000005BE; // type:object size:0x2 data:2byte +lbl_1_bss_5C2 = .bss:0x000005C2; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m420dll/splits.txt b/config/GMPP01_00/rels/m420dll/splits.txt new file mode 100644 index 00000000..08f811fa --- /dev/null +++ b/config/GMPP01_00/rels/m420dll/splits.txt @@ -0,0 +1,36 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m420dll/main.c: + .text start:0x000000A0 end:0x00000D80 + .rodata start:0x00000000 end:0x00000098 + .bss start:0x00000000 end:0x00000030 + +REL/m420dll/camera.c: + .text start:0x00000D80 end:0x00001B74 + .rodata start:0x00000098 end:0x000000F8 + .data start:0x00000000 end:0x00000050 + .bss start:0x00000030 end:0x000000B0 + +REL/m420dll/player.c: + .text start:0x00001B74 end:0x0000494C + .rodata start:0x000000F8 end:0x00000360 + .data start:0x00000050 end:0x00000138 + +REL/m420dll/map.c: + .text start:0x0000494C end:0x0000891C + .rodata start:0x00000360 end:0x00000570 + .data start:0x00000138 end:0x00000171 + .bss start:0x000000B0 end:0x00000A48 + +REL/m420dll/rand.c: + .text start:0x0000891C end:0x00008960 + .bss start:0x00000A48 end:0x00000A4C diff --git a/config/GMPP01_00/rels/m420dll/symbols.txt b/config/GMPP01_00/rels/m420dll/symbols.txt new file mode 100644 index 00000000..95aa9732 --- /dev/null +++ b/config/GMPP01_00/rels/m420dll/symbols.txt @@ -0,0 +1,252 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x78 +fn_1_118 = .text:0x00000118; // type:function size:0x80 +fn_1_198 = .text:0x00000198; // type:function size:0x23C +fn_1_3D4 = .text:0x000003D4; // type:function size:0x68 +fn_1_43C = .text:0x0000043C; // type:function size:0x8C0 +fn_1_D14 = .text:0x00000CFC; // type:function size:0x84 +fn_1_D98 = .text:0x00000D80; // type:function size:0x1B0 +fn_1_F48 = .text:0x00000F30; // type:function size:0x2C +fn_1_F74 = .text:0x00000F5C; // type:function size:0xBC +fn_1_1030 = .text:0x00001018; // type:function size:0xBC +fn_1_10EC = .text:0x000010D4; // type:function size:0x98 +fn_1_1184 = .text:0x0000116C; // type:function size:0x718 +fn_1_189C = .text:0x00001884; // type:function size:0x214 +fn_1_1AB0 = .text:0x00001A98; // type:function size:0xDC +fn_1_1B8C = .text:0x00001B74; // type:function size:0x288 +fn_1_1E14 = .text:0x00001DFC; // type:function size:0x50 +fn_1_1E64 = .text:0x00001E4C; // type:function size:0xB0 +fn_1_1F14 = .text:0x00001EFC; // type:function size:0x40 +fn_1_1F54 = .text:0x00001F3C; // type:function size:0x40 +fn_1_1F94 = .text:0x00001F7C; // type:function size:0x78 +fn_1_200C = .text:0x00001FF4; // type:function size:0xE0 +fn_1_20EC = .text:0x000020D4; // type:function size:0x30 +fn_1_211C = .text:0x00002104; // type:function size:0x58 +fn_1_2174 = .text:0x0000215C; // type:function size:0x54 +fn_1_21C8 = .text:0x000021B0; // type:function size:0x98 +fn_1_2260 = .text:0x00002248; // type:function size:0x6C +fn_1_22CC = .text:0x000022B4; // type:function size:0x4A0 +fn_1_276C = .text:0x00002754; // type:function size:0x574 +fn_1_2CE0 = .text:0x00002CC8; // type:function size:0x9C +fn_1_2D7C = .text:0x00002D64; // type:function size:0x12C +fn_1_2EA8 = .text:0x00002E90; // type:function size:0x1F0 +fn_1_3098 = .text:0x00003080; // type:function size:0x1D4 +fn_1_326C = .text:0x00003254; // type:function size:0x1E4 +fn_1_3450 = .text:0x00003438; // type:function size:0x5C +fn_1_34AC = .text:0x00003494; // type:function size:0xB0 +fn_1_355C = .text:0x00003544; // type:function size:0x188 +fn_1_36E4 = .text:0x000036CC; // type:function size:0x68 +fn_1_374C = .text:0x00003734; // type:function size:0x40 +fn_1_378C = .text:0x00003774; // type:function size:0xC8 +fn_1_3854 = .text:0x0000383C; // type:function size:0x11C +fn_1_3970 = .text:0x00003958; // type:function size:0x624 +fn_1_3F94 = .text:0x00003F7C; // type:function size:0x300 +fn_1_4294 = .text:0x0000427C; // type:function size:0x2E0 +fn_1_4574 = .text:0x0000455C; // type:function size:0x1F8 +fn_1_476C = .text:0x00004754; // type:function size:0x1F8 +fn_1_4964 = .text:0x0000494C; // type:function size:0x1008 +fn_1_596C = .text:0x00005954; // type:function size:0x88 +fn_1_59F4 = .text:0x000059DC; // type:function size:0x88 +fn_1_5A7C = .text:0x00005A64; // type:function size:0x2C +fn_1_5AA8 = .text:0x00005A90; // type:function size:0x1E4 +fn_1_5C8C = .text:0x00005C74; // type:function size:0x464 +fn_1_60F0 = .text:0x000060D8; // type:function size:0x178 +fn_1_6268 = .text:0x00006250; // type:function size:0x104 +fn_1_636C = .text:0x00006354; // type:function size:0x80 +fn_1_63EC = .text:0x000063D4; // type:function size:0x120 +fn_1_650C = .text:0x000064F4; // type:function size:0x48 +fn_1_6554 = .text:0x0000653C; // type:function size:0x10C +fn_1_6660 = .text:0x00006648; // type:function size:0x10 +fn_1_6670 = .text:0x00006658; // type:function size:0x2C +fn_1_669C = .text:0x00006684; // type:function size:0x8C +fn_1_6728 = .text:0x00006710; // type:function size:0x7C +fn_1_67A4 = .text:0x0000678C; // type:function size:0x44 +fn_1_67E8 = .text:0x000067D0; // type:function size:0x28 +fn_1_6810 = .text:0x000067F8; // type:function size:0x10 +fn_1_6820 = .text:0x00006808; // type:function size:0x64 +fn_1_6884 = .text:0x0000686C; // type:function size:0xCC +fn_1_6950 = .text:0x00006938; // type:function size:0x3BC +fn_1_6D0C = .text:0x00006CF4; // type:function size:0x50 +fn_1_6D5C = .text:0x00006D44; // type:function size:0x94 +fn_1_6DF0 = .text:0x00006DD8; // type:function size:0x440 +fn_1_7230 = .text:0x00007218; // type:function size:0x98 +fn_1_72C8 = .text:0x000072B0; // type:function size:0x98 +fn_1_7360 = .text:0x00007348; // type:function size:0x98 +fn_1_73F8 = .text:0x000073E0; // type:function size:0x100 +fn_1_74F8 = .text:0x000074E0; // type:function size:0x20C +fn_1_7704 = .text:0x000076EC; // type:function size:0x720 +fn_1_7E24 = .text:0x00007E0C; // type:function size:0x41C +fn_1_8240 = .text:0x00008228; // type:function size:0x1D4 +fn_1_8414 = .text:0x000083FC; // type:function size:0x520 +fn_1_8934 = .text:0x0000891C; // type:function size:0x10 +fn_1_8944 = .text:0x0000892C; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 scope:local +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 scope:local +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C scope:local +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C scope:local +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E scope:local data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x10 scope:local data:string +lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B scope:local data:string +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x1 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0xD scope:local 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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x1C data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x1C data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x1C data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x80 data:float +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x8AC data:4byte +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x2 data:2byte +lbl_1_bss_9F0 = .bss:0x000009F0; // type:object size:0x38 data:2byte +lbl_1_bss_A28 = .bss:0x00000A28; // type:object size:0x4 data:4byte +lbl_1_bss_A2C = .bss:0x00000A2C; // type:object size:0x10 data:4byte +lbl_1_bss_A3C = .bss:0x00000A3C; // type:object size:0x4 data:4byte +lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x4 data:4byte +lbl_1_bss_A48 = .bss:0x00000A48; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m421Dll/splits.txt b/config/GMPP01_00/rels/m421Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m421Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m421Dll/symbols.txt b/config/GMPP01_00/rels/m421Dll/symbols.txt new file mode 100644 index 00000000..30da45c8 --- /dev/null +++ b/config/GMPP01_00/rels/m421Dll/symbols.txt @@ -0,0 +1,269 @@ +_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:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xD8 +fn_1_578 = .text:0x00000578; // type:function size:0x20C +fn_1_784 = .text:0x00000784; // type:function size:0x134 +fn_1_8B8 = .text:0x000008B8; // type:function size:0x404 +fn_1_CBC = .text:0x00000CBC; // type:function size:0x430 +fn_1_10EC = .text:0x000010EC; // type:function size:0x340 +fn_1_142C = .text:0x0000142C; // type:function size:0x424 +fn_1_1850 = .text:0x00001850; // type:function size:0x440 +fn_1_1C90 = .text:0x00001C90; // type:function size:0x4AC +fn_1_213C = .text:0x0000213C; // type:function size:0x70 +fn_1_21AC = .text:0x000021AC; // type:function size:0x87C +fn_1_2A28 = .text:0x00002A28; // type:function size:0x190 +fn_1_2BB8 = .text:0x00002BB8; // type:function size:0x468 +fn_1_3020 = .text:0x00003020; // type:function size:0xB0 +fn_1_30D0 = .text:0x000030D0; // type:function size:0x264 +fn_1_3334 = .text:0x00003334; // type:function size:0x28 +fn_1_335C = .text:0x0000335C; // type:function size:0x5A0 +fn_1_38FC = .text:0x000038FC; // type:function size:0x254 +fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x14 +fn_1_3B78 = .text:0x00003B78; // type:function size:0x9C +fn_1_3C14 = .text:0x00003C14; // type:function size:0x9C +fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x68 +fn_1_3D18 = .text:0x00003D18; // type:function size:0x6C +fn_1_3D84 = .text:0x00003D84; // type:function size:0x98 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0x18 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x18 +fn_1_3E4C = .text:0x00003E4C; // type:function size:0x18 +fn_1_3E64 = .text:0x00003E64; // type:function size:0x18 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x7C +fn_1_3EF8 = .text:0x00003EF8; // type:function size:0x30 +fn_1_3F28 = .text:0x00003F28; // type:function size:0x40 +fn_1_3F68 = .text:0x00003F68; // type:function size:0x30 +fn_1_3F98 = .text:0x00003F98; // type:function size:0x30 +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x30 +fn_1_3FF8 = .text:0x00003FF8; // type:function size:0x38 +fn_1_4030 = .text:0x00004030; // type:function size:0x208 +fn_1_4238 = .text:0x00004238; // type:function size:0x240 +fn_1_4478 = .text:0x00004478; // type:function size:0x11C +fn_1_4594 = .text:0x00004594; // type:function size:0xB4 +fn_1_4648 = .text:0x00004648; // type:function size:0x268 +fn_1_48B0 = .text:0x000048B0; // type:function size:0x24 +fn_1_48D4 = .text:0x000048D4; // type:function size:0x62C +fn_1_4F00 = .text:0x00004F00; // type:function size:0x160 +fn_1_5060 = .text:0x00005060; // type:function size:0x368 +fn_1_53C8 = .text:0x000053C8; // type:function size:0x3C4 +fn_1_578C = .text:0x0000578C; // type:function size:0x410 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x5E8 +fn_1_6184 = .text:0x00006184; // type:function size:0x27C +fn_1_6400 = .text:0x00006400; // type:function size:0x2B4 +fn_1_66B4 = .text:0x000066B4; // type:function size:0xB8 +fn_1_676C = .text:0x0000676C; // type:function size:0x5DC +fn_1_6D48 = .text:0x00006D48; // type:function size:0x730 +fn_1_7478 = .text:0x00007478; // type:function size:0x1F8 +fn_1_7670 = .text:0x00007670; // type:function size:0x430 +fn_1_7AA0 = .text:0x00007AA0; // type:function size:0x418 +fn_1_7EB8 = .text:0x00007EB8; // type:function size:0x208 +fn_1_80C0 = .text:0x000080C0; // type:function size:0x87C +fn_1_893C = .text:0x0000893C; // type:function size:0xB38 +fn_1_9474 = .text:0x00009474; // type:function size:0xF8 +fn_1_956C = .text:0x0000956C; // type:function size:0x2C0 +fn_1_982C = .text:0x0000982C; // type:function size:0x18C +fn_1_99B8 = .text:0x000099B8; // type:function size:0x74 +fn_1_9A2C = .text:0x00009A2C; // type:function size:0x1D0 +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x3C +fn_1_9C38 = .text:0x00009C38; // type:function size:0x198 +fn_1_9DD0 = .text:0x00009DD0; // type:function size:0x758 +fn_1_A528 = .text:0x0000A528; // type:function size:0x640 +fn_1_AB68 = .text:0x0000AB68; // type:function size:0x4 +fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x70 +fn_1_ABDC = .text:0x0000ABDC; // type:function size:0x580 +fn_1_B15C = .text:0x0000B15C; // type:function size:0x60 +fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x4 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x1D8 +fn_1_B398 = .text:0x0000B398; // type:function size:0x4 +fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 +_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:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x50 +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x14 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x10 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x10 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x10 data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x30 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x30 data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xC data:4byte +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1 data:byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x1A +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x20 +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x18 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x78 +lbl_1_data_234 = .data:0x00000234; // type:object size:0x30 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0xC +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0xC +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0xC +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:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m422Dll/splits.txt b/config/GMPP01_00/rels/m422Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m422Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m422Dll/symbols.txt b/config/GMPP01_00/rels/m422Dll/symbols.txt new file mode 100644 index 00000000..118c4a8d --- /dev/null +++ b/config/GMPP01_00/rels/m422Dll/symbols.txt @@ -0,0 +1,249 @@ +_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:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x31C0 +fn_1_34BC = .text:0x000034BC; // type:function size:0x6B8 +fn_1_3B74 = .text:0x00003B74; // type:function size:0x4E60 +fn_1_89D4 = .text:0x000089D4; // type:function size:0xA28 +fn_1_93FC = .text:0x000093FC; // type:function size:0x4F0 +fn_1_98EC = .text:0x000098EC; // type:function size:0x134C +fn_1_AC38 = .text:0x0000AC38; // type:function size:0x3B8 +fn_1_AFF0 = .text:0x0000AFF0; // type:function size:0x54 +fn_1_B044 = .text:0x0000B044; // type:function size:0x428 +fn_1_B46C = .text:0x0000B46C; // type:function size:0xAC +_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:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x1 data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 +lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C +lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte +lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xB0 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 diff --git a/config/GMPP01_00/rels/m423Dll/splits.txt b/config/GMPP01_00/rels/m423Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m423Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m423Dll/symbols.txt b/config/GMPP01_00/rels/m423Dll/symbols.txt new file mode 100644 index 00000000..7087bc41 --- /dev/null +++ b/config/GMPP01_00/rels/m423Dll/symbols.txt @@ -0,0 +1,367 @@ +_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:0x278 +fn_1_318 = .text:0x00000318; // type:function size:0x98 +fn_1_3B0 = .text:0x000003B0; // type:function size:0xA44 +fn_1_DF4 = .text:0x00000DF4; // type:function size:0x64 +fn_1_E58 = .text:0x00000E58; // type:function size:0xA0 +fn_1_EF8 = .text:0x00000EF8; // type:function size:0x10 +fn_1_F08 = .text:0x00000F08; // type:function size:0x50 +fn_1_F58 = .text:0x00000F58; // type:function size:0x244 +fn_1_119C = .text:0x0000119C; // type:function size:0x34 +fn_1_11D0 = .text:0x000011D0; // type:function size:0x60 +fn_1_1230 = .text:0x00001230; // type:function size:0x68 +fn_1_1298 = .text:0x00001298; // type:function size:0x100 +fn_1_1398 = .text:0x00001398; // type:function size:0xA4 +fn_1_143C = .text:0x0000143C; // type:function size:0x5C +fn_1_1498 = .text:0x00001498; // type:function size:0x45C +fn_1_18F4 = .text:0x000018F4; // type:function size:0x260 +fn_1_1B54 = .text:0x00001B54; // type:function size:0x400 +fn_1_1F54 = .text:0x00001F54; // type:function size:0x334 +fn_1_2288 = .text:0x00002288; // type:function size:0x394 +fn_1_261C = .text:0x0000261C; // type:function size:0x394 +fn_1_29B0 = .text:0x000029B0; // type:function size:0x4 +fn_1_29B4 = .text:0x000029B4; // type:function size:0x24C +fn_1_2C00 = .text:0x00002C00; // type:function size:0x8D0 +fn_1_34D0 = .text:0x000034D0; // type:function size:0x50 +fn_1_3520 = .text:0x00003520; // type:function size:0x370 +fn_1_3890 = .text:0x00003890; // type:function size:0x1C0 +fn_1_3A50 = .text:0x00003A50; // type:function size:0xC +fn_1_3A5C = .text:0x00003A5C; // type:function size:0x28 +fn_1_3A84 = .text:0x00003A84; // type:function size:0x170 +fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x3E4 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x798 +fn_1_4770 = .text:0x00004770; // type:function size:0x1628 +fn_1_5D98 = .text:0x00005D98; // type:function size:0x1B6C +fn_1_7904 = .text:0x00007904; // type:function size:0xC +fn_1_7910 = .text:0x00007910; // type:function size:0x4C +fn_1_795C = .text:0x0000795C; // type:function size:0x100 +fn_1_7A5C = .text:0x00007A5C; // type:function size:0x18C +fn_1_7BE8 = .text:0x00007BE8; // type:function size:0xA0 +fn_1_7C88 = .text:0x00007C88; // type:function size:0x780 +fn_1_8408 = .text:0x00008408; // type:function size:0x70 +fn_1_8478 = .text:0x00008478; // type:function size:0x97C +fn_1_8DF4 = .text:0x00008DF4; // type:function size:0x910 +fn_1_9704 = .text:0x00009704; // type:function size:0x50 +fn_1_9754 = .text:0x00009754; // type:function size:0x28C +fn_1_99E0 = .text:0x000099E0; // type:function size:0x1100 +fn_1_AAE0 = .text:0x0000AAE0; // type:function size:0xC +fn_1_AAEC = .text:0x0000AAEC; // type:function size:0x28 +fn_1_AB14 = .text:0x0000AB14; // type:function size:0x238 +fn_1_AD4C = .text:0x0000AD4C; // type:function size:0x74 +fn_1_ADC0 = .text:0x0000ADC0; // type:function size:0x1E4 +fn_1_AFA4 = .text:0x0000AFA4; // type:function size:0x84 +fn_1_B028 = .text:0x0000B028; // type:function size:0x254 +fn_1_B27C = .text:0x0000B27C; // type:function size:0x68 +fn_1_B2E4 = .text:0x0000B2E4; // type:function size:0x160 +fn_1_B444 = .text:0x0000B444; // type:function size:0x12C +fn_1_B570 = .text:0x0000B570; // type:function size:0x8A8 +fn_1_BE18 = .text:0x0000BE18; // type:function size:0x7C0 +fn_1_C5D8 = .text:0x0000C5D8; // type:function size:0x1498 +fn_1_DA70 = .text:0x0000DA70; // type:function size:0x108 +fn_1_DB78 = .text:0x0000DB78; // type:function size:0x190 +fn_1_DD08 = .text:0x0000DD08; // type:function size:0x5C +fn_1_DD64 = .text:0x0000DD64; // type:function size:0x14C +fn_1_DEB0 = .text:0x0000DEB0; // type:function size:0x44C +fn_1_E2FC = .text:0x0000E2FC; // type:function size:0xD4 +fn_1_E3D0 = .text:0x0000E3D0; // type:function size:0xA0 +fn_1_E470 = .text:0x0000E470; // type:function size:0x4 +fn_1_E474 = .text:0x0000E474; // type:function size:0x12C +fn_1_E5A0 = .text:0x0000E5A0; // type:function size:0x8C +fn_1_E62C = .text:0x0000E62C; // type:function size:0x120 +fn_1_E74C = .text:0x0000E74C; // type:function size:0x6C +fn_1_E7B8 = .text:0x0000E7B8; // type:function size:0x8CC +fn_1_F084 = .text:0x0000F084; // type:function size:0x630 +fn_1_F6B4 = .text:0x0000F6B4; // type:function size:0x11C +fn_1_F7D0 = .text:0x0000F7D0; // type:function size:0x50 +fn_1_F820 = .text:0x0000F820; // type:function size:0x360 +fn_1_FB80 = .text:0x0000FB80; // type:function size:0x4D0 +fn_1_10050 = .text:0x00010050; // type:function size:0x88 +fn_1_100D8 = .text:0x000100D8; // type:function size:0x90 +fn_1_10168 = .text:0x00010168; // type:function size:0xB4 +fn_1_1021C = .text:0x0001021C; // type:function size:0x3A4 +fn_1_105C0 = .text:0x000105C0; // type:function size:0xAC +fn_1_1066C = .text:0x0001066C; // type:function size:0x4 +fn_1_10670 = .text:0x00010670; // type:function size:0x10 +fn_1_10680 = .text:0x00010680; // type:function size:0x198 +fn_1_10818 = .text:0x00010818; // type:function size:0x4F0 +fn_1_10D08 = .text:0x00010D08; // type:function size:0x440 +fn_1_11148 = .text:0x00011148; // type:function size:0x10C +fn_1_11254 = .text:0x00011254; // type:function size:0x4B0 +fn_1_11704 = .text:0x00011704; // type:function size:0x33C +fn_1_11A40 = .text:0x00011A40; // type:function size:0x8DC +fn_1_1231C = .text:0x0001231C; // type:function size:0x118 +fn_1_12434 = .text:0x00012434; // type:function size:0x250 +fn_1_12684 = .text:0x00012684; // type:function size:0x3F8 +fn_1_12A7C = .text:0x00012A7C; // type:function size:0xB4 +fn_1_12B30 = .text:0x00012B30; // type:function size:0x27C +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x100 +fn_1_12EAC = .text:0x00012EAC; // type:function size:0xFC +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x4E4 +fn_1_1348C = .text:0x0001348C; // type:function size:0x330 +fn_1_137BC = .text:0x000137BC; // type:function size:0x148 +fn_1_13904 = .text:0x00013904; // type:function size:0x78C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x1 data:byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 +lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 +jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x1 data:byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x1 data:byte +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x1 data:byte +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x5 data:byte +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC +lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 +lbl_1_data_574 = .data:0x00000574; // type:object size:0xC +lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local +lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local +lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 +lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 +lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 +jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x3C data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +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:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x10 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x10 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m424Dll/splits.txt b/config/GMPP01_00/rels/m424Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m424Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m424Dll/symbols.txt b/config/GMPP01_00/rels/m424Dll/symbols.txt new file mode 100644 index 00000000..73453dab --- /dev/null +++ b/config/GMPP01_00/rels/m424Dll/symbols.txt @@ -0,0 +1,314 @@ +_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:0x1C4 +fn_1_264 = .text:0x00000264; // type:function size:0x1B8 +fn_1_41C = .text:0x0000041C; // type:function size:0xAB8 +fn_1_ED4 = .text:0x00000ED4; // type:function size:0x60 +fn_1_F34 = .text:0x00000F34; // type:function size:0xA0 +fn_1_FD4 = .text:0x00000FD4; // type:function size:0x10 +fn_1_FE4 = .text:0x00000FE4; // type:function size:0x1FC +fn_1_11E0 = .text:0x000011E0; // type:function size:0x4 +fn_1_11E4 = .text:0x000011E4; // type:function size:0x4 +fn_1_11E8 = .text:0x000011E8; // type:function size:0x10 +fn_1_11F8 = .text:0x000011F8; // type:function size:0x154 +fn_1_134C = .text:0x0000134C; // type:function size:0x118 +fn_1_1464 = .text:0x00001464; // type:function size:0x250 +fn_1_16B4 = .text:0x000016B4; // type:function size:0x3F8 +fn_1_1AAC = .text:0x00001AAC; // type:function size:0xD4 +fn_1_1B80 = .text:0x00001B80; // type:function size:0x2C +fn_1_1BAC = .text:0x00001BAC; // type:function size:0x264 +fn_1_1E10 = .text:0x00001E10; // type:function size:0x314 +fn_1_2124 = .text:0x00002124; // type:function size:0xC +fn_1_2130 = .text:0x00002130; // type:function size:0x74 +fn_1_21A4 = .text:0x000021A4; // type:function size:0x70 +fn_1_2214 = .text:0x00002214; // type:function size:0x218 +fn_1_242C = .text:0x0000242C; // type:function size:0xF4 +fn_1_2520 = .text:0x00002520; // type:function size:0x94 +fn_1_25B4 = .text:0x000025B4; // type:function size:0xB0 +fn_1_2664 = .text:0x00002664; // type:function size:0xB0 +fn_1_2714 = .text:0x00002714; // type:function size:0x160 +fn_1_2874 = .text:0x00002874; // type:function size:0x20 +fn_1_2894 = .text:0x00002894; // type:function size:0x598 +fn_1_2E2C = .text:0x00002E2C; // type:function size:0x4 +fn_1_2E30 = .text:0x00002E30; // type:function size:0x384 +fn_1_31B4 = .text:0x000031B4; // type:function size:0x63C +fn_1_37F0 = .text:0x000037F0; // type:function size:0xA24 +fn_1_4214 = .text:0x00004214; // type:function size:0x478 +fn_1_468C = .text:0x0000468C; // type:function size:0x4 +fn_1_4690 = .text:0x00004690; // type:function size:0x234 +fn_1_48C4 = .text:0x000048C4; // type:function size:0x1C0 +fn_1_4A84 = .text:0x00004A84; // type:function size:0x588 +fn_1_500C = .text:0x0000500C; // type:function size:0x1020 +fn_1_602C = .text:0x0000602C; // type:function size:0x40 +fn_1_606C = .text:0x0000606C; // type:function size:0xA0 +fn_1_610C = .text:0x0000610C; // type:function size:0x94 +fn_1_61A0 = .text:0x000061A0; // type:function size:0x84 +fn_1_6224 = .text:0x00006224; // type:function size:0x4C +fn_1_6270 = .text:0x00006270; // type:function size:0x54 +fn_1_62C4 = .text:0x000062C4; // type:function size:0x13C +fn_1_6400 = .text:0x00006400; // type:function size:0x168 +fn_1_6568 = .text:0x00006568; // type:function size:0x120 +fn_1_6688 = .text:0x00006688; // type:function size:0x39C +fn_1_6A24 = .text:0x00006A24; // type:function size:0x2E0 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x38C +fn_1_7090 = .text:0x00007090; // type:function size:0x384 +fn_1_7414 = .text:0x00007414; // type:function size:0x3A4 +fn_1_77B8 = .text:0x000077B8; // type:function size:0x238 +fn_1_79F0 = .text:0x000079F0; // type:function size:0x2A4 +fn_1_7C94 = .text:0x00007C94; // type:function size:0x130 +fn_1_7DC4 = .text:0x00007DC4; // type:function size:0x198 +fn_1_7F5C = .text:0x00007F5C; // type:function size:0xD8 +fn_1_8034 = .text:0x00008034; // type:function size:0xBC +fn_1_80F0 = .text:0x000080F0; // type:function size:0x33C +fn_1_842C = .text:0x0000842C; // type:function size:0x4B0 +fn_1_88DC = .text:0x000088DC; // type:function size:0x3C +fn_1_8918 = .text:0x00008918; // type:function size:0x2C +fn_1_8944 = .text:0x00008944; // type:function size:0x2C +fn_1_8970 = .text:0x00008970; // type:function size:0x2C +fn_1_899C = .text:0x0000899C; // type:function size:0x2C +fn_1_89C8 = .text:0x000089C8; // type:function size:0x2C +fn_1_89F4 = .text:0x000089F4; // type:function size:0x2C +fn_1_8A20 = .text:0x00008A20; // type:function size:0x7C +fn_1_8A9C = .text:0x00008A9C; // type:function size:0x1D0 +fn_1_8C6C = .text:0x00008C6C; // type:function size:0x404 +fn_1_9070 = .text:0x00009070; // type:function size:0x374 +fn_1_93E4 = .text:0x000093E4; // type:function size:0xB4 +fn_1_9498 = .text:0x00009498; // type:function size:0x2C +fn_1_94C4 = .text:0x000094C4; // type:function size:0x594 +fn_1_9A58 = .text:0x00009A58; // type:function size:0x13F4 +fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xC +fn_1_AE58 = .text:0x0000AE58; // type:function size:0x938 +fn_1_B790 = .text:0x0000B790; // type:function size:0x68 +fn_1_B7F8 = .text:0x0000B7F8; // type:function size:0x84 +fn_1_B87C = .text:0x0000B87C; // type:function size:0x24 +fn_1_B8A0 = .text:0x0000B8A0; // type:function size:0x78 +fn_1_B918 = .text:0x0000B918; // type:function size:0x78 +fn_1_B990 = .text:0x0000B990; // type:function size:0x44 +fn_1_B9D4 = .text:0x0000B9D4; // type:function size:0x830 +fn_1_C204 = .text:0x0000C204; // type:function size:0xD0 +fn_1_C2D4 = .text:0x0000C2D4; // type:function size:0x324 +fn_1_C5F8 = .text:0x0000C5F8; // type:function size:0x250 +fn_1_C848 = .text:0x0000C848; // type:function size:0x24 +fn_1_C86C = .text:0x0000C86C; // type:function size:0x124 +fn_1_C990 = .text:0x0000C990; // type:function size:0x4D8 +fn_1_CE68 = .text:0x0000CE68; // type:function size:0x8C +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0x80 +fn_1_CF74 = .text:0x0000CF74; // type:function size:0x90 +fn_1_D004 = .text:0x0000D004; // type:function size:0x64 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0xC data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x5C +jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:4byte +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x30 data:float +lbl_1_data_210 = .data:0x00000210; // type:object size:0xC data:float +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x8 +jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x534 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x18 +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x10 data:4byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x84 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m425Dll/splits.txt b/config/GMPP01_00/rels/m425Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m425Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m425Dll/symbols.txt b/config/GMPP01_00/rels/m425Dll/symbols.txt new file mode 100644 index 00000000..4e26a147 --- /dev/null +++ b/config/GMPP01_00/rels/m425Dll/symbols.txt @@ -0,0 +1,300 @@ +_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:0x3C0 +fn_1_460 = .text:0x00000460; // type:function size:0x20 +fn_1_480 = .text:0x00000480; // type:function size:0x464 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x65C +fn_1_F40 = .text:0x00000F40; // type:function size:0x60 +fn_1_FA0 = .text:0x00000FA0; // type:function size:0x524 +fn_1_14C4 = .text:0x000014C4; // type:function size:0x120 +fn_1_15E4 = .text:0x000015E4; // type:function size:0xC4 +fn_1_16A8 = .text:0x000016A8; // type:function size:0x490 +fn_1_1B38 = .text:0x00001B38; // type:function size:0xC44 +fn_1_277C = .text:0x0000277C; // type:function size:0xEC +fn_1_2868 = .text:0x00002868; // type:function size:0x224 +fn_1_2A8C = .text:0x00002A8C; // type:function size:0x98 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x34C +fn_1_2E70 = .text:0x00002E70; // type:function size:0x568 +fn_1_33D8 = .text:0x000033D8; // type:function size:0x384 +fn_1_375C = .text:0x0000375C; // type:function size:0x76C +fn_1_3EC8 = .text:0x00003EC8; // type:function size:0xB0 +fn_1_3F78 = .text:0x00003F78; // type:function size:0xB08 +fn_1_4A80 = .text:0x00004A80; // type:function size:0x5BC +fn_1_503C = .text:0x0000503C; // type:function size:0x524 +fn_1_5560 = .text:0x00005560; // type:function size:0xA0 +fn_1_5600 = .text:0x00005600; // type:function size:0xA8 +fn_1_56A8 = .text:0x000056A8; // type:function size:0x8C +fn_1_5734 = .text:0x00005734; // type:function size:0x98 +fn_1_57CC = .text:0x000057CC; // type:function size:0x44C +fn_1_5C18 = .text:0x00005C18; // type:function size:0x8B4 +fn_1_64CC = .text:0x000064CC; // type:function size:0x54 +fn_1_6520 = .text:0x00006520; // type:function size:0x78 +fn_1_6598 = .text:0x00006598; // type:function size:0x11C +fn_1_66B4 = .text:0x000066B4; // type:function size:0x78 +fn_1_672C = .text:0x0000672C; // type:function size:0x2D8 +fn_1_6A04 = .text:0x00006A04; // type:function size:0x1CC +fn_1_6BD0 = .text:0x00006BD0; // type:function size:0x30 +fn_1_6C00 = .text:0x00006C00; // type:function size:0xC8 +fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x12C +fn_1_6DF4 = .text:0x00006DF4; // type:function size:0xC8 +fn_1_6EBC = .text:0x00006EBC; // type:function size:0x69D8 +fn_1_D894 = .text:0x0000D894; // type:function size:0x10 +fn_1_D8A4 = .text:0x0000D8A4; // type:function size:0x10 +fn_1_D8B4 = .text:0x0000D8B4; // type:function size:0x10 +fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x10 +fn_1_D8D4 = .text:0x0000D8D4; // type:function size:0xCC +fn_1_D9A0 = .text:0x0000D9A0; // type:function size:0x19C +fn_1_DB3C = .text:0x0000DB3C; // type:function size:0x2F8 +fn_1_DE34 = .text:0x0000DE34; // type:function size:0x3D4 +fn_1_E208 = .text:0x0000E208; // type:function size:0x704 +fn_1_E90C = .text:0x0000E90C; // type:function size:0x18B0 +fn_1_101BC = .text:0x000101BC; // type:function size:0x828 +fn_1_109E4 = .text:0x000109E4; // type:function size:0x318 +fn_1_10CFC = .text:0x00010CFC; // type:function size:0x60 +fn_1_10D5C = .text:0x00010D5C; // type:function size:0x60 +fn_1_10DBC = .text:0x00010DBC; // type:function size:0x88 +fn_1_10E44 = .text:0x00010E44; // type:function size:0xBC +fn_1_10F00 = .text:0x00010F00; // type:function size:0x38C +fn_1_1128C = .text:0x0001128C; // type:function size:0x78 +fn_1_11304 = .text:0x00011304; // type:function size:0x11C +fn_1_11420 = .text:0x00011420; // type:function size:0x3C +fn_1_1145C = .text:0x0001145C; // type:function size:0x180 +fn_1_115DC = .text:0x000115DC; // type:function size:0x110 +fn_1_116EC = .text:0x000116EC; // type:function size:0x390 +fn_1_11A7C = .text:0x00011A7C; // type:function size:0x46C +fn_1_11EE8 = .text:0x00011EE8; // type:function size:0x7B4 +_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:0x10 data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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:0xC0 +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 +lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 +jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local +jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x20 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x1 data:byte +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x630 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x2 data:2byte +lbl_1_bss_642 = .bss:0x00000642; // type:object size:0x2 data:2byte +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x2 data:2byte +lbl_1_bss_646 = .bss:0x00000646; // type:object size:0x2 data:2byte +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0x2 data:2byte +lbl_1_bss_64C = .bss:0x0000064C; // type:object size:0x10 +lbl_1_bss_65C = .bss:0x0000065C; // type:object size:0x4 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x4 data:4byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x4 data:4byte +lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x8 data:4byte +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float +lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte +lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x4 data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x4 data:4byte +lbl_1_bss_6EC = .bss:0x000006EC; // type:object size:0x4 data:4byte +lbl_1_bss_6F0 = .bss:0x000006F0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m426Dll/splits.txt b/config/GMPP01_00/rels/m426Dll/splits.txt new file mode 100644 index 00000000..a7a72393 --- /dev/null +++ b/config/GMPP01_00/rels/m426Dll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m426Dll/main.c: + .text start:0x000000A0 end:0x00009AC4 + .rodata start:0x00000000 end:0x000001DC + .data start:0x00000000 end:0x00000368 + .bss start:0x00000000 end:0x0000009C diff --git a/config/GMPP01_00/rels/m426Dll/symbols.txt b/config/GMPP01_00/rels/m426Dll/symbols.txt new file mode 100644 index 00000000..81681170 --- /dev/null +++ b/config/GMPP01_00/rels/m426Dll/symbols.txt @@ -0,0 +1,225 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x16C +fn_1_20C = .text:0x0000020C; // type:function size:0x124 +fn_1_330 = .text:0x00000330; // type:function size:0xA80 +fn_1_DB8 = .text:0x00000DB0; // type:function size:0x60 +fn_1_E18 = .text:0x00000E10; // type:function size:0xA0 +fn_1_EB8 = .text:0x00000EB0; // type:function size:0x14C +fn_1_1004 = .text:0x00000FFC; // type:function size:0x178 +fn_1_117C = .text:0x00001174; // type:function size:0x70 +fn_1_11EC = .text:0x000011E4; // type:function size:0x70 +fn_1_125C = .text:0x00001254; // type:function size:0x49C +fn_1_16F8 = .text:0x000016F0; // type:function size:0x13F4 +fn_1_2AC8 = .text:0x00002AE4; // type:function size:0x14 +fn_1_2ADC = .text:0x00002AF8; // type:function size:0x98 +fn_1_2B74 = .text:0x00002B90; // type:function size:0x368 +fn_1_2EDC = .text:0x00002EF8; // type:function size:0x80 +fn_1_2F5C = .text:0x00002F78; // type:function size:0x6F8 +fn_1_3654 = .text:0x00003670; // type:function size:0x70 +fn_1_36C4 = .text:0x000036E0; // type:function size:0x50 +fn_1_3714 = .text:0x00003730; // type:function size:0x7E8 +fn_1_3EFC = .text:0x00003F18; // type:function size:0x700 +fn_1_45FC = .text:0x00004618; // type:function size:0x48 +fn_1_4644 = .text:0x00004660; // type:function size:0x60 +fn_1_46A4 = .text:0x000046C0; // type:function size:0x94 +fn_1_4738 = .text:0x00004754; // type:function size:0x15C +fn_1_4894 = .text:0x000048B0; // type:function size:0x5C +fn_1_48F0 = .text:0x0000490C; // type:function size:0x178 +fn_1_4A68 = .text:0x00004A84; // type:function size:0x8C +fn_1_4AF4 = .text:0x00004B10; // type:function size:0x3D0 +fn_1_4EC4 = .text:0x00004EE0; // type:function size:0x50 +fn_1_4F14 = .text:0x00004F30; // type:function size:0x220 +fn_1_5134 = .text:0x00005150; // type:function size:0xA20 +fn_1_5B34 = .text:0x00005B70; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B84; // type:function size:0x40 +fn_1_5B88 = .text:0x00005BC4; // type:function size:0xE4 +fn_1_5C6C = .text:0x00005CA8; // type:function size:0xD0 +fn_1_5D3C = .text:0x00005D78; // type:function size:0x130 +fn_1_5E6C = .text:0x00005EA8; // type:function size:0x50 +fn_1_5EBC = .text:0x00005EF8; // type:function size:0x14C +fn_1_6008 = .text:0x00006044; // type:function size:0x178 +fn_1_6180 = .text:0x000061BC; // type:function size:0x60 +fn_1_61E0 = .text:0x0000621C; // type:function size:0x68 +fn_1_6248 = .text:0x00006284; // type:function size:0xC8 +fn_1_6310 = .text:0x0000634C; // type:function size:0xA8 +fn_1_63B8 = .text:0x000063F4; // type:function size:0x1DC +fn_1_6594 = .text:0x000065D0; // type:function size:0x50 +fn_1_65E4 = .text:0x00006620; // type:function size:0x120 +fn_1_6704 = .text:0x00006740; // type:function size:0x118 +fn_1_681C = .text:0x00006858; // type:function size:0x28 +fn_1_6844 = .text:0x00006880; // type:function size:0x44 +fn_1_6888 = .text:0x000068C4; // type:function size:0x15C +fn_1_69E4 = .text:0x00006A20; // type:function size:0x50 +fn_1_6A34 = .text:0x00006A70; // type:function size:0x38C +fn_1_6DC0 = .text:0x00006DFC; // type:function size:0x410 +fn_1_71D0 = .text:0x0000720C; // type:function size:0xA8 +fn_1_7278 = .text:0x000072B4; // type:function size:0xB0 +fn_1_7328 = .text:0x00007364; // type:function size:0xB4 +fn_1_73DC = .text:0x00007418; // type:function size:0x1B0 +fn_1_758C = .text:0x000075C8; // type:function size:0x20 +fn_1_75AC = .text:0x000075E8; // type:function size:0x4 +fn_1_75B0 = .text:0x000075EC; // type:function size:0xC +fn_1_75BC = .text:0x000075F8; // type:function size:0x38 +fn_1_75F4 = .text:0x00007630; // type:function size:0x118 +fn_1_770C = .text:0x00007748; // type:function size:0x250 +fn_1_795C = .text:0x00007998; // type:function size:0x46C +fn_1_7DC8 = .text:0x00007E04; // type:function size:0x314 +fn_1_80DC = .text:0x00008118; // type:function size:0x7D8 +fn_1_88B4 = .text:0x000088F0; // type:function size:0x55C +fn_1_8E10 = .text:0x00008E4C; // type:function size:0x38 +fn_1_8E48 = .text:0x00008E84; // type:function size:0x2E8 +fn_1_9130 = .text:0x0000916C; // type:function size:0x100 +fn_1_9230 = .text:0x0000926C; // type:function size:0x314 +fn_1_9544 = .text:0x00009580; // type:function size:0x1D8 +fn_1_971C = .text:0x00009758; // type:function size:0x7C +fn_1_9798 = .text:0x000097D4; // type:function size:0x54 +fn_1_97EC = .text:0x00009828; // type:function size:0x7C +fn_1_9868 = .text:0x000098A4; // type:function size:0x7C +fn_1_98E4 = .text:0x00009920; // type:function size:0x78 +fn_1_995C = .text:0x00009998; // type:function size:0x12C +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 scope:local data:byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 +lbl_1_data_30 = .data:0x00000030; // type:object size:0xC +lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_1_data_48 = .data:0x00000048; // type:object size:0x1 data:byte +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 scope:local data:string +jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x60 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x8 +jumptable_1_data_1D8 = .data:0x000001D8; // type:object size:0x28 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x8 +lbl_1_data_220 = .data:0x00000220; // type:object size:0xC +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x20 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x30 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x10 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x20 +jumptable_1_data_2DC = .data:0x000002DC; // type:object size:0x1C scope:local +jumptable_1_data_2F8 = .data:0x000002F8; // type:object size:0x1C scope:local +jumptable_1_data_314 = .data:0x00000314; // type:object size:0x1C scope:local +jumptable_1_data_330 = .data:0x00000330; // type:object size:0x1C scope:local +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x1C scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x1 data:byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x10 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m427Dll/splits.txt b/config/GMPP01_00/rels/m427Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m427Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m427Dll/symbols.txt b/config/GMPP01_00/rels/m427Dll/symbols.txt new file mode 100644 index 00000000..2ca9cb3f --- /dev/null +++ b/config/GMPP01_00/rels/m427Dll/symbols.txt @@ -0,0 +1,439 @@ +_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:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0x64 +fn_1_300 = .text:0x00000300; // type:function size:0x1360 +fn_1_1660 = .text:0x00001660; // type:function size:0x60 +fn_1_16C0 = .text:0x000016C0; // type:function size:0xC4 +fn_1_1784 = .text:0x00001784; // type:function size:0x10 +fn_1_1794 = .text:0x00001794; // type:function size:0xCC +fn_1_1860 = .text:0x00001860; // type:function size:0x20 +fn_1_1880 = .text:0x00001880; // type:function size:0xD0 +fn_1_1950 = .text:0x00001950; // type:function size:0x5E0 +fn_1_1F30 = .text:0x00001F30; // type:function size:0x254 +fn_1_2184 = .text:0x00002184; // type:function size:0x60 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x144 +fn_1_2328 = .text:0x00002328; // type:function size:0x1E4 +fn_1_250C = .text:0x0000250C; // type:function size:0x1E4 +fn_1_26F0 = .text:0x000026F0; // type:function size:0x28 +fn_1_2718 = .text:0x00002718; // type:function size:0x64 +fn_1_277C = .text:0x0000277C; // type:function size:0x390 +fn_1_2B0C = .text:0x00002B0C; // type:function size:0x4 +fn_1_2B10 = .text:0x00002B10; // type:function size:0x4 +fn_1_2B14 = .text:0x00002B14; // type:function size:0x1C0 +fn_1_2CD4 = .text:0x00002CD4; // type:function size:0x1F8 +fn_1_2ECC = .text:0x00002ECC; // type:function size:0x8C +fn_1_2F58 = .text:0x00002F58; // type:function size:0x1F8 +fn_1_3150 = .text:0x00003150; // type:function size:0x188 +fn_1_32D8 = .text:0x000032D8; // type:function size:0x8 +fn_1_32E0 = .text:0x000032E0; // type:function size:0x438 +fn_1_3718 = .text:0x00003718; // type:function size:0x35C +fn_1_3A74 = .text:0x00003A74; // type:function size:0x98 +fn_1_3B0C = .text:0x00003B0C; // type:function size:0x29C +fn_1_3DA8 = .text:0x00003DA8; // type:function size:0x9C +fn_1_3E44 = .text:0x00003E44; // type:function size:0x3C0 +fn_1_4204 = .text:0x00004204; // type:function size:0x2DC +fn_1_44E0 = .text:0x000044E0; // type:function size:0x7C +fn_1_455C = .text:0x0000455C; // type:function size:0x37C +fn_1_48D8 = .text:0x000048D8; // type:function size:0x490 +fn_1_4D68 = .text:0x00004D68; // type:function size:0x324 +fn_1_508C = .text:0x0000508C; // type:function size:0x6C +fn_1_50F8 = .text:0x000050F8; // type:function size:0x480 +fn_1_5578 = .text:0x00005578; // type:function size:0xC00 +fn_1_6178 = .text:0x00006178; // type:function size:0x5D4 +fn_1_674C = .text:0x0000674C; // type:function size:0xB84 +fn_1_72D0 = .text:0x000072D0; // type:function size:0xD8 +fn_1_73A8 = .text:0x000073A8; // type:function size:0x590 +fn_1_7938 = .text:0x00007938; // type:function size:0x2E8 +fn_1_7C20 = .text:0x00007C20; // type:function size:0x22C +fn_1_7E4C = .text:0x00007E4C; // type:function size:0xD8 +fn_1_7F24 = .text:0x00007F24; // type:function size:0x69C +fn_1_85C0 = .text:0x000085C0; // type:function size:0x194 +fn_1_8754 = .text:0x00008754; // type:function size:0x6B4 +fn_1_8E08 = .text:0x00008E08; // type:function size:0x174 +fn_1_8F7C = .text:0x00008F7C; // type:function size:0x250 +fn_1_91CC = .text:0x000091CC; // type:function size:0x60 +fn_1_922C = .text:0x0000922C; // type:function size:0xD8 +fn_1_9304 = .text:0x00009304; // type:function size:0xD4 +fn_1_93D8 = .text:0x000093D8; // type:function size:0xD0 +fn_1_94A8 = .text:0x000094A8; // type:function size:0x12C +fn_1_95D4 = .text:0x000095D4; // type:function size:0x370 +fn_1_9944 = .text:0x00009944; // type:function size:0x44 +fn_1_9988 = .text:0x00009988; // type:function size:0x48 +fn_1_99D0 = .text:0x000099D0; // type:function size:0x48 +fn_1_9A18 = .text:0x00009A18; // type:function size:0x74 +fn_1_9A8C = .text:0x00009A8C; // type:function size:0x74 +fn_1_9B00 = .text:0x00009B00; // type:function size:0x74 +fn_1_9B74 = .text:0x00009B74; // type:function size:0x5C0 +fn_1_A134 = .text:0x0000A134; // type:function size:0xAC +fn_1_A1E0 = .text:0x0000A1E0; // type:function size:0x604 +fn_1_A7E4 = .text:0x0000A7E4; // type:function size:0x680 +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x31C +fn_1_B180 = .text:0x0000B180; // type:function size:0x238 +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0x960 +fn_1_BD18 = .text:0x0000BD18; // type:function size:0x428 +fn_1_C140 = .text:0x0000C140; // type:function size:0xAC +fn_1_C1EC = .text:0x0000C1EC; // type:function size:0xAC +fn_1_C298 = .text:0x0000C298; // type:function size:0x10 +fn_1_C2A8 = .text:0x0000C2A8; // type:function size:0xC +fn_1_C2B4 = .text:0x0000C2B4; // type:function size:0xD8 +fn_1_C38C = .text:0x0000C38C; // type:function size:0x7C +fn_1_C408 = .text:0x0000C408; // type:function size:0x10C +fn_1_C514 = .text:0x0000C514; // type:function size:0x164 +fn_1_C678 = .text:0x0000C678; // type:function size:0xE0 +fn_1_C758 = .text:0x0000C758; // type:function size:0xAC0 +fn_1_D218 = .text:0x0000D218; // type:function size:0x204 +fn_1_D41C = .text:0x0000D41C; // type:function size:0xCC +fn_1_D4E8 = .text:0x0000D4E8; // type:function size:0x140 +fn_1_D628 = .text:0x0000D628; // type:function size:0x544 +fn_1_DB6C = .text:0x0000DB6C; // type:function size:0x60 +fn_1_DBCC = .text:0x0000DBCC; // type:function size:0x2C +fn_1_DBF8 = .text:0x0000DBF8; // type:function size:0x58 +fn_1_DC50 = .text:0x0000DC50; // type:function size:0x38 +fn_1_DC88 = .text:0x0000DC88; // type:function size:0x38 +fn_1_DCC0 = .text:0x0000DCC0; // type:function size:0x5DC +fn_1_E29C = .text:0x0000E29C; // type:function size:0xCC +fn_1_E368 = .text:0x0000E368; // type:function size:0xA4 +fn_1_E40C = .text:0x0000E40C; // type:function size:0x68 +fn_1_E474 = .text:0x0000E474; // type:function size:0x504 +fn_1_E978 = .text:0x0000E978; // type:function size:0x2C8 +fn_1_EC40 = .text:0x0000EC40; // type:function size:0x20 +fn_1_EC60 = .text:0x0000EC60; // type:function size:0x20 +fn_1_EC80 = .text:0x0000EC80; // type:function size:0x44C +fn_1_F0CC = .text:0x0000F0CC; // type:function size:0x1750 +fn_1_1081C = .text:0x0001081C; // type:function size:0x75C +fn_1_10F78 = .text:0x00010F78; // type:function size:0x5C +fn_1_10FD4 = .text:0x00010FD4; // type:function size:0x100 +fn_1_110D4 = .text:0x000110D4; // type:function size:0xD8 +fn_1_111AC = .text:0x000111AC; // type:function size:0xD8 +fn_1_11284 = .text:0x00011284; // type:function size:0x158 +fn_1_113DC = .text:0x000113DC; // type:function size:0x4C +fn_1_11428 = .text:0x00011428; // type:function size:0x178 +fn_1_115A0 = .text:0x000115A0; // type:function size:0x40C +fn_1_119AC = .text:0x000119AC; // type:function size:0xB4 +fn_1_11A60 = .text:0x00011A60; // type:function size:0x464 +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x63C +fn_1_12500 = .text:0x00012500; // type:function size:0x4 +fn_1_12504 = .text:0x00012504; // type:function size:0x68 +fn_1_1256C = .text:0x0001256C; // type:function size:0x588 +fn_1_12AF4 = .text:0x00012AF4; // type:function size:0x141C +fn_1_13F10 = .text:0x00013F10; // type:function size:0x94 +fn_1_13FA4 = .text:0x00013FA4; // type:function size:0x4 +fn_1_13FA8 = .text:0x00013FA8; // type:function size:0x14FC +fn_1_154A4 = .text:0x000154A4; // type:function size:0x4 +fn_1_154A8 = .text:0x000154A8; // type:function size:0x124 +fn_1_155CC = .text:0x000155CC; // type:function size:0x134 +fn_1_15700 = .text:0x00015700; // type:function size:0x1C4 +fn_1_158C4 = .text:0x000158C4; // type:function size:0x218 +fn_1_15ADC = .text:0x00015ADC; // type:function size:0x420 +fn_1_15EFC = .text:0x00015EFC; // type:function size:0xC0 +fn_1_15FBC = .text:0x00015FBC; // type:function size:0xAC +fn_1_16068 = .text:0x00016068; // type:function size:0x58 +fn_1_160C0 = .text:0x000160C0; // type:function size:0x18C +fn_1_1624C = .text:0x0001624C; // type:function size:0x334 +fn_1_16580 = .text:0x00016580; // type:function size:0x118 +fn_1_16698 = .text:0x00016698; // type:function size:0x250 +fn_1_168E8 = .text:0x000168E8; // type:function size:0x3F8 +fn_1_16CE0 = .text:0x00016CE0; // type:function size:0x148 +fn_1_16E28 = .text:0x00016E28; // type:function size:0xBC +fn_1_16EE4 = .text:0x00016EE4; // type:function size:0x150 +fn_1_17034 = .text:0x00017034; // type:function size:0x1F0 +fn_1_17224 = .text:0x00017224; // type:function size:0x4 +fn_1_17228 = .text:0x00017228; // type:function size:0xB4 +fn_1_172DC = .text:0x000172DC; // type:function size:0x140 +fn_1_1741C = .text:0x0001741C; // type:function size:0xA4 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A scope:local data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x8 +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x8 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x10 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x90 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x27 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float +lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float +lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x10 +lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C +lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 +lbl_1_data_5D0 = .data:0x000005D0; // type:object size:0x8 +jumptable_1_data_5D8 = .data:0x000005D8; // type:object size:0x20 scope:local +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x8 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x8 +lbl_1_data_608 = .data:0x00000608; // type:object size:0x10 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x10 +jumptable_1_data_628 = .data:0x00000628; // type:object size:0x20 scope:local +lbl_1_data_648 = .data:0x00000648; // type:object size:0x4 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1 data:byte +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x40 +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x8 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x1 data:byte +lbl_1_bss_91 = .bss:0x00000091; // type:object size:0x1 data:byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4C data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x60 data:2byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x3F0 data:byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0x8 data:4byte +lbl_1_bss_550 = .bss:0x00000550; // type:object size:0x4 data:4byte +lbl_1_bss_554 = .bss:0x00000554; // type:object size:0x4 data:4byte +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x10 +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x8 +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x4 data:4byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x4 data:4byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x4 data:4byte +lbl_1_bss_58C = .bss:0x0000058C; // type:object size:0x4 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x4 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m428Dll/splits.txt b/config/GMPP01_00/rels/m428Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m428Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m428Dll/symbols.txt b/config/GMPP01_00/rels/m428Dll/symbols.txt new file mode 100644 index 00000000..dff9c748 --- /dev/null +++ b/config/GMPP01_00/rels/m428Dll/symbols.txt @@ -0,0 +1,410 @@ +_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:0x1C0 +fn_1_478 = .text:0x00000478; // type:function size:0x21A0 +fn_1_2618 = .text:0x00002618; // type:function size:0x50 +fn_1_2668 = .text:0x00002668; // type:function size:0xC4 +fn_1_272C = .text:0x0000272C; // type:function size:0x10 +fn_1_273C = .text:0x0000273C; // type:function size:0x2F8 +fn_1_2A34 = .text:0x00002A34; // type:function size:0x4 +fn_1_2A38 = .text:0x00002A38; // type:function size:0x4 +fn_1_2A3C = .text:0x00002A3C; // type:function size:0x10 +fn_1_2A4C = .text:0x00002A4C; // type:function size:0xCC +fn_1_2B18 = .text:0x00002B18; // type:function size:0x1C4 +fn_1_2CDC = .text:0x00002CDC; // type:function size:0x19C +fn_1_2E78 = .text:0x00002E78; // type:function size:0xD38 +fn_1_3BB0 = .text:0x00003BB0; // type:function size:0x540 +fn_1_40F0 = .text:0x000040F0; // type:function size:0xCC +fn_1_41BC = .text:0x000041BC; // type:function size:0xF4 +fn_1_42B0 = .text:0x000042B0; // type:function size:0xC0 +fn_1_4370 = .text:0x00004370; // type:function size:0xA4 +fn_1_4414 = .text:0x00004414; // type:function size:0x268 +fn_1_467C = .text:0x0000467C; // type:function size:0x20 +fn_1_469C = .text:0x0000469C; // type:function size:0x10C +fn_1_47A8 = .text:0x000047A8; // type:function size:0x420 +fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x2C8 +fn_1_4E90 = .text:0x00004E90; // type:function size:0x34 +fn_1_4EC4 = .text:0x00004EC4; // type:function size:0x8C +fn_1_4F50 = .text:0x00004F50; // type:function size:0x2DC +fn_1_522C = .text:0x0000522C; // type:function size:0xF8 +fn_1_5324 = .text:0x00005324; // type:function size:0x4 +fn_1_5328 = .text:0x00005328; // type:function size:0x94 +fn_1_53BC = .text:0x000053BC; // type:function size:0x1E8 +fn_1_55A4 = .text:0x000055A4; // type:function size:0x12C +fn_1_56D0 = .text:0x000056D0; // type:function size:0x648 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x5B4 +fn_1_62CC = .text:0x000062CC; // type:function size:0xF2C +fn_1_71F8 = .text:0x000071F8; // type:function size:0xE8 +fn_1_72E0 = .text:0x000072E0; // type:function size:0x40 +fn_1_7320 = .text:0x00007320; // type:function size:0xC8 +fn_1_73E8 = .text:0x000073E8; // type:function size:0x94 +fn_1_747C = .text:0x0000747C; // type:function size:0x84 +fn_1_7500 = .text:0x00007500; // type:function size:0x4C +fn_1_754C = .text:0x0000754C; // type:function size:0x54 +fn_1_75A0 = .text:0x000075A0; // type:function size:0x13C +fn_1_76DC = .text:0x000076DC; // type:function size:0x168 +fn_1_7844 = .text:0x00007844; // type:function size:0x120 +fn_1_7964 = .text:0x00007964; // type:function size:0x39C +fn_1_7D00 = .text:0x00007D00; // type:function size:0x2E0 +fn_1_7FE0 = .text:0x00007FE0; // type:function size:0x198 +fn_1_8178 = .text:0x00008178; // type:function size:0xD8 +fn_1_8250 = .text:0x00008250; // type:function size:0xBC +fn_1_830C = .text:0x0000830C; // type:function size:0x33C +fn_1_8648 = .text:0x00008648; // type:function size:0x4B0 +fn_1_8AF8 = .text:0x00008AF8; // type:function size:0x78 +fn_1_8B70 = .text:0x00008B70; // type:function size:0x11C +fn_1_8C8C = .text:0x00008C8C; // type:function size:0x78 +fn_1_8D04 = .text:0x00008D04; // type:function size:0x2D8 +fn_1_8FDC = .text:0x00008FDC; // type:function size:0x2B8 +fn_1_9294 = .text:0x00009294; // type:function size:0x154 +fn_1_93E8 = .text:0x000093E8; // type:function size:0x3E0 +fn_1_97C8 = .text:0x000097C8; // type:function size:0x214 +fn_1_99DC = .text:0x000099DC; // type:function size:0xA0 +fn_1_9A7C = .text:0x00009A7C; // type:function size:0xAC +fn_1_9B28 = .text:0x00009B28; // type:function size:0x30C +fn_1_9E34 = .text:0x00009E34; // type:function size:0xC0 +fn_1_9EF4 = .text:0x00009EF4; // type:function size:0x60 +fn_1_9F54 = .text:0x00009F54; // type:function size:0x54 +fn_1_9FA8 = .text:0x00009FA8; // type:function size:0x154 +fn_1_A0FC = .text:0x0000A0FC; // type:function size:0x58 +fn_1_A154 = .text:0x0000A154; // type:function size:0x3C0 +fn_1_A514 = .text:0x0000A514; // type:function size:0xF0C +fn_1_B420 = .text:0x0000B420; // type:function size:0x68 +fn_1_B488 = .text:0x0000B488; // type:function size:0x794 +fn_1_BC1C = .text:0x0000BC1C; // type:function size:0x2A40 +fn_1_E65C = .text:0x0000E65C; // type:function size:0xC +fn_1_E668 = .text:0x0000E668; // type:function size:0xA78 +fn_1_F0E0 = .text:0x0000F0E0; // type:function size:0x208 +fn_1_F2E8 = .text:0x0000F2E8; // type:function size:0xCC +fn_1_F3B4 = .text:0x0000F3B4; // type:function size:0x68 +fn_1_F41C = .text:0x0000F41C; // type:function size:0x58 +fn_1_F474 = .text:0x0000F474; // type:function size:0x40 +fn_1_F4B4 = .text:0x0000F4B4; // type:function size:0x18 +fn_1_F4CC = .text:0x0000F4CC; // type:function size:0x48 +fn_1_F514 = .text:0x0000F514; // type:function size:0x34 +fn_1_F548 = .text:0x0000F548; // type:function size:0x50 +fn_1_F598 = .text:0x0000F598; // type:function size:0x354 +fn_1_F8EC = .text:0x0000F8EC; // type:function size:0x300 +fn_1_FBEC = .text:0x0000FBEC; // type:function size:0x30C +fn_1_FEF8 = .text:0x0000FEF8; // type:function size:0x410 +fn_1_10308 = .text:0x00010308; // type:function size:0x288 +fn_1_10590 = .text:0x00010590; // type:function size:0x60 +fn_1_105F0 = .text:0x000105F0; // type:function size:0x58 +fn_1_10648 = .text:0x00010648; // type:function size:0xC0 +fn_1_10708 = .text:0x00010708; // type:function size:0xE0 +fn_1_107E8 = .text:0x000107E8; // type:function size:0x300 +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0x58C +fn_1_11074 = .text:0x00011074; // type:function size:0x5E4 +fn_1_11658 = .text:0x00011658; // type:function size:0xCC +fn_1_11724 = .text:0x00011724; // type:function size:0x90 +fn_1_117B4 = .text:0x000117B4; // type:function size:0x44 +fn_1_117F8 = .text:0x000117F8; // type:function size:0x110 +fn_1_11908 = .text:0x00011908; // type:function size:0x88 +fn_1_11990 = .text:0x00011990; // type:function size:0x130 +fn_1_11AC0 = .text:0x00011AC0; // type:function size:0x1C0 +fn_1_11C80 = .text:0x00011C80; // type:function size:0x6C +fn_1_11CEC = .text:0x00011CEC; // type:function size:0x158 +fn_1_11E44 = .text:0x00011E44; // type:function size:0x470 +fn_1_122B4 = .text:0x000122B4; // type:function size:0x118 +fn_1_123CC = .text:0x000123CC; // type:function size:0x250 +fn_1_1261C = .text:0x0001261C; // type:function size:0x3F8 +fn_1_12A14 = .text:0x00012A14; // type:function size:0x78 +fn_1_12A8C = .text:0x00012A8C; // type:function size:0x78 +fn_1_12B04 = .text:0x00012B04; // type:function size:0x230 +fn_1_12D34 = .text:0x00012D34; // type:function size:0x4B0 +fn_1_131E4 = .text:0x000131E4; // type:function size:0x33C +fn_1_13520 = .text:0x00013520; // type:function size:0x8DC +fn_1_13DFC = .text:0x00013DFC; // type:function size:0x78 +fn_1_13E74 = .text:0x00013E74; // type:function size:0xB4 +fn_1_13F28 = .text:0x00013F28; // type:function size:0x8C +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0x134 +fn_1_140E8 = .text:0x000140E8; // type:function size:0x4D8 +fn_1_145C0 = .text:0x000145C0; // type:function size:0x98 +fn_1_14658 = .text:0x00014658; // type:function size:0x98 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x48 data:byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2A0 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x30 +lbl_1_data_480 = .data:0x00000480; // type:object size:0x30 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x50 data:float +lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 +lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:float +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x8 +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x80 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x80 +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x80 +lbl_1_bss_244 = .bss:0x00000244; // type:object size:0x60 +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x8 data:4byte +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_bss_2B8 = .bss:0x000002B8; // type:object size:0x4 data:4byte +lbl_1_bss_2BC = .bss:0x000002BC; // type:object size:0x4 data:4byte +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m429Dll/splits.txt b/config/GMPP01_00/rels/m429Dll/splits.txt new file mode 100644 index 00000000..eddadec6 --- /dev/null +++ b/config/GMPP01_00/rels/m429Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m429Dll/main.c: + .text start:0x00000000 end:0x0000EA18 + .rodata start:0x00000000 end:0x00000198 + .data start:0x00000000 end:0x00001510 + .bss start:0x00000000 end:0x00000364 diff --git a/config/GMPP01_00/rels/m429Dll/symbols.txt b/config/GMPP01_00/rels/m429Dll/symbols.txt new file mode 100644 index 00000000..5ec24090 --- /dev/null +++ b/config/GMPP01_00/rels/m429Dll/symbols.txt @@ -0,0 +1,318 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x260 +fn_1_2614 = .text:0x000025C4; // type:function size:0x70 +fn_1_2684 = .text:0x00002634; // type:function size:0x2CC +fn_1_2950 = .text:0x00002900; // type:function size:0x290 +fn_1_2BE0 = .text:0x00002B90; // type:function size:0x234 +fn_1_2E14 = .text:0x00002DC4; // type:function size:0xD8 +fn_1_2EEC = .text:0x00002E9C; // type:function size:0x2BC +fn_1_31A8 = .text:0x00003158; // type:function size:0x4 +fn_1_31AC = .text:0x0000315C; // type:function size:0xD8 +fn_1_3284 = .text:0x00003234; // type:function size:0x174 +fn_1_33F8 = .text:0x000033A8; // type:function size:0x304 +fn_1_36FC = .text:0x000036AC; // type:function size:0x170 +fn_1_386C = .text:0x0000381C; // type:function size:0x560 +fn_1_3DCC = .text:0x00003D7C; // type:function size:0x254 +_prolog = .text:0x00003FD0; // type:function size:0x54 scope:global +_epilog = .text:0x00004024; // type:function size:0x4C scope:global +fn_1_40C0 = .text:0x00004070; // type:function size:0x164 +fn_1_4224 = .text:0x000041D4; // type:function size:0xBCC +fn_1_4DF0 = .text:0x00004DA0; // type:function size:0x60 +fn_1_4E50 = .text:0x00004E00; // type:function size:0x25C +fn_1_50AC = .text:0x0000505C; // type:function size:0x410 +fn_1_54BC = .text:0x0000546C; // type:function size:0x380 +fn_1_583C = .text:0x000057EC; // type:function size:0x120 +fn_1_595C = .text:0x0000590C; // type:function size:0x380 +fn_1_5CDC = .text:0x00005C8C; // type:function size:0x268 +fn_1_5F44 = .text:0x00005EF4; // type:function size:0x1154 +fn_1_7098 = .text:0x00007048; // type:function size:0x158 +fn_1_71F0 = .text:0x000071A0; // type:function size:0xB48 +fn_1_7D38 = .text:0x00007CE8; // type:function size:0x1230 +fn_1_8F68 = .text:0x00008F18; // type:function size:0xA84 +fn_1_99EC = .text:0x0000999C; // type:function size:0x4 +fn_1_99F0 = .text:0x000099A0; // type:function size:0x1BC +fn_1_9BAC = .text:0x00009B5C; // type:function size:0x340 +fn_1_9EEC = .text:0x00009E9C; // type:function size:0x1BC +fn_1_A0A8 = .text:0x0000A058; // type:function size:0x70 +fn_1_A118 = .text:0x0000A0C8; // type:function size:0x470 +fn_1_A588 = .text:0x0000A538; // type:function size:0x22C +fn_1_A7B4 = .text:0x0000A764; // type:function size:0x5C0 +fn_1_AD74 = .text:0x0000AD24; // type:function size:0x2A8 +fn_1_B01C = .text:0x0000AFCC; // type:function size:0x738 +fn_1_B754 = .text:0x0000B704; // type:function size:0x18C +fn_1_B8E0 = .text:0x0000B890; // type:function size:0x1D00 +fn_1_D5E8 = .text:0x0000D590; // type:function size:0x6B4 +ObjectSetup = .text:0x0000DC44; // type:function size:0xCD0 +fn_1_E96C = .text:0x0000E914; // type:function size:0x104 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xD scope:local data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE scope:local data:string +lbl_1_data_39 = .data:0x00000039; // type:object size:0xE scope:local data:string +lbl_1_data_47 = .data:0x00000047; // type:object size:0xD scope:local data:string +lbl_1_data_54 = .data:0x00000054; // type:object size:0xD scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0xE scope:local data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE scope:local data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE scope:local data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD scope:local data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0xE scope:local data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE scope:local data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE scope:local data:string +lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD scope:local data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD scope:local data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE scope:local data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE scope:local data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE scope:local data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE scope:local data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE scope:local data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE scope:local data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE scope:local data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE scope:local data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE scope:local data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE scope:local data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE scope:local data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE scope:local data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE scope:local data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE scope:local data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE scope:local data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE scope:local data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE scope:local data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE scope:local data:string +lbl_1_data_200 = .data:0x00000200; // type:object size:0xE scope:local data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xE scope:local data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x57C +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD scope:local data:string +lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD scope:local data:string +lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD scope:local data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE scope:local data:string +lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE scope:local data:string +lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE scope:local data:string +lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE scope:local data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0xD scope:local data:string +lbl_1_data_814 = .data:0x00000814; // type:object size:0xD scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0xD scope:local data:string +lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE scope:local data:string +lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE scope:local data:string +lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD scope:local data:string +lbl_1_data_857 = .data:0x00000857; // type:object size:0xD scope:local data:string +lbl_1_data_864 = .data:0x00000864; // type:object size:0xD scope:local data:string +lbl_1_data_871 = .data:0x00000871; // type:object size:0xE scope:local data:string +lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE scope:local data:string +lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE scope:local data:string +lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE scope:local data:string +lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE scope:local data:string +lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE scope:local data:string +lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE scope:local data:string +lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE scope:local data:string +lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE scope:local data:string +lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE scope:local data:string +lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE scope:local data:string +lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE scope:local data:string +lbl_1_data_919 = .data:0x00000919; // type:object size:0xE scope:local data:string +lbl_1_data_927 = .data:0x00000927; // type:object size:0xE scope:local data:string +lbl_1_data_935 = .data:0x00000935; // type:object size:0xE scope:local data:string +lbl_1_data_943 = .data:0x00000943; // type:object size:0xE scope:local data:string +lbl_1_data_951 = .data:0x00000951; // type:object size:0xE scope:local data:string +lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE scope:local data:string +lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE scope:local data:string +lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE scope:local data:string +lbl_1_data_989 = .data:0x00000989; // type:object size:0xE scope:local data:string +lbl_1_data_997 = .data:0x00000997; // type:object size:0xE scope:local data:string +lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE scope:local data:string +lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE scope:local data:string +lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE scope:local data:string +lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE scope:local data:string +lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF scope:local +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x5E8 +lbl_1_data_FD4 = .data:0x00000FD4; // type:object size:0xC +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0xC +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x10 +lbl_1_data_FFC = .data:0x00000FFC; // type:object size:0x40 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x40 data:float +lbl_1_data_107C = .data:0x0000107C; // type:object size:0x40 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x40 +lbl_1_data_10FC = .data:0x000010FC; // type:object size:0x20 +lbl_1_data_111C = .data:0x0000111C; // type:object size:0xC +lbl_1_data_1128 = .data:0x00001128; // type:object size:0xC +lbl_1_data_1134 = .data:0x00001134; // type:object size:0x4 +lbl_1_data_1138 = .data:0x00001138; // type:object size:0xC +lbl_1_data_1144 = .data:0x00001144; // type:object size:0xC +lbl_1_data_1150 = .data:0x00001150; // type:object size:0x140 +lbl_1_data_1290 = .data:0x00001290; // type:object size:0x20 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x20 +lbl_1_data_12D0 = .data:0x000012D0; // type:object size:0x10 +lbl_1_data_12E0 = .data:0x000012E0; // type:object size:0x30 +lbl_1_data_1310 = .data:0x00001310; // type:object size:0x10 +lbl_1_data_1320 = .data:0x00001320; // type:object size:0x10 +lbl_1_data_1330 = .data:0x00001330; // type:object size:0x10 +lbl_1_data_1340 = .data:0x00001340; // type:object size:0x48 +lbl_1_data_1388 = .data:0x00001388; // type:object size:0x20 +lbl_1_data_13A8 = .data:0x000013A8; // type:object size:0x10 +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x10 +lbl_1_data_13C8 = .data:0x000013C8; // type:object size:0x10 +lbl_1_data_13D8 = .data:0x000013D8; // type:object size:0x10 +lbl_1_data_13E8 = .data:0x000013E8; // type:object size:0x50 +lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 scope:local data:string +lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F scope:local +jumptable_1_data_1478 = .data:0x00001478; // type:object size:0x24 scope:local +lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1B scope:local data:string +jumptable_1_data_14B8 = .data:0x000014B8; // type:object size:0x34 scope:local +lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 scope:local 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:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x30 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x30 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x30 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x30 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x18 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:float +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:float +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x60 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:float +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:float +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m430Dll/splits.txt b/config/GMPP01_00/rels/m430Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m430Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m430Dll/symbols.txt b/config/GMPP01_00/rels/m430Dll/symbols.txt new file mode 100644 index 00000000..e3b8f841 --- /dev/null +++ b/config/GMPP01_00/rels/m430Dll/symbols.txt @@ -0,0 +1,490 @@ +_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:0x630 +fn_1_6D0 = .text:0x000006D0; // type:function size:0xC4 +fn_1_794 = .text:0x00000794; // type:function size:0x334 +fn_1_AC8 = .text:0x00000AC8; // type:function size:0x144 +fn_1_C0C = .text:0x00000C0C; // type:function size:0x564 +fn_1_1170 = .text:0x00001170; // type:function size:0x590 +fn_1_1700 = .text:0x00001700; // type:function size:0x478 +fn_1_1B78 = .text:0x00001B78; // type:function size:0x6E0 +fn_1_2258 = .text:0x00002258; // type:function size:0x52C +fn_1_2784 = .text:0x00002784; // type:function size:0x638 +fn_1_2DBC = .text:0x00002DBC; // type:function size:0x138 +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x81C +fn_1_3710 = .text:0x00003710; // type:function size:0xCC +fn_1_37DC = .text:0x000037DC; // type:function size:0x8C8 +fn_1_40A4 = .text:0x000040A4; // type:function size:0x10 +fn_1_40B4 = .text:0x000040B4; // type:function size:0x18 +fn_1_40CC = .text:0x000040CC; // type:function size:0x18 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x18 +fn_1_40FC = .text:0x000040FC; // type:function size:0x18 +fn_1_4114 = .text:0x00004114; // type:function size:0x18 +fn_1_412C = .text:0x0000412C; // type:function size:0x18 +fn_1_4144 = .text:0x00004144; // type:function size:0x30 +fn_1_4174 = .text:0x00004174; // type:function size:0x30 +fn_1_41A4 = .text:0x000041A4; // type:function size:0xC0 +fn_1_4264 = .text:0x00004264; // type:function size:0x348 +fn_1_45AC = .text:0x000045AC; // type:function size:0x378 +fn_1_4924 = .text:0x00004924; // type:function size:0x11C +fn_1_4A40 = .text:0x00004A40; // type:function size:0xB4 +fn_1_4AF4 = .text:0x00004AF4; // type:function size:0x1C8 +fn_1_4CBC = .text:0x00004CBC; // type:function size:0x6C +fn_1_4D28 = .text:0x00004D28; // type:function size:0x1144 +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x388 +fn_1_61F4 = .text:0x000061F4; // type:function size:0x3C0 +fn_1_65B4 = .text:0x000065B4; // type:function size:0x214 +fn_1_67C8 = .text:0x000067C8; // type:function size:0x674 +fn_1_6E3C = .text:0x00006E3C; // type:function size:0x2E4 +fn_1_7120 = .text:0x00007120; // type:function size:0x280 +fn_1_73A0 = .text:0x000073A0; // type:function size:0x3AC +fn_1_774C = .text:0x0000774C; // type:function size:0x170 +fn_1_78BC = .text:0x000078BC; // type:function size:0x464 +fn_1_7D20 = .text:0x00007D20; // type:function size:0x200 +fn_1_7F20 = .text:0x00007F20; // type:function size:0x110 +fn_1_8030 = .text:0x00008030; // type:function size:0x40 +fn_1_8070 = .text:0x00008070; // type:function size:0x40 +fn_1_80B0 = .text:0x000080B0; // type:function size:0x228 +fn_1_82D8 = .text:0x000082D8; // type:function size:0x90 +fn_1_8368 = .text:0x00008368; // type:function size:0x3C0 +fn_1_8728 = .text:0x00008728; // type:function size:0x4A8 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x184 +fn_1_8D54 = .text:0x00008D54; // type:function size:0x95C +fn_1_96B0 = .text:0x000096B0; // type:function size:0x654 +fn_1_9D04 = .text:0x00009D04; // type:function size:0x718 +fn_1_A41C = .text:0x0000A41C; // type:function size:0x7F0 +fn_1_AC0C = .text:0x0000AC0C; // type:function size:0xEC +fn_1_ACF8 = .text:0x0000ACF8; // type:function size:0x80 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x1DC +fn_1_AF54 = .text:0x0000AF54; // type:function size:0x4B4 +fn_1_B408 = .text:0x0000B408; // type:function size:0x1DC +fn_1_B5E4 = .text:0x0000B5E4; // type:function size:0x5E4 +fn_1_BBC8 = .text:0x0000BBC8; // type:function size:0x34 +fn_1_BBFC = .text:0x0000BBFC; // type:function size:0x10 +fn_1_BC0C = .text:0x0000BC0C; // type:function size:0x2C +fn_1_BC38 = .text:0x0000BC38; // type:function size:0x260 +fn_1_BE98 = .text:0x0000BE98; // type:function size:0x1E8 +fn_1_C080 = .text:0x0000C080; // type:function size:0x34 +fn_1_C0B4 = .text:0x0000C0B4; // type:function size:0x1A4 +fn_1_C258 = .text:0x0000C258; // type:function size:0x858 +fn_1_CAB0 = .text:0x0000CAB0; // type:function size:0x894 +fn_1_D344 = .text:0x0000D344; // type:function size:0x558 +fn_1_D89C = .text:0x0000D89C; // type:function size:0x10D4 +fn_1_E970 = .text:0x0000E970; // type:function size:0x7DC +fn_1_F14C = .text:0x0000F14C; // type:function size:0x554 +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x74 +fn_1_F714 = .text:0x0000F714; // type:function size:0x5FC +fn_1_FD10 = .text:0x0000FD10; // type:function size:0x404 +fn_1_10114 = .text:0x00010114; // type:function size:0x29C +fn_1_103B0 = .text:0x000103B0; // type:function size:0x200 +fn_1_105B0 = .text:0x000105B0; // type:function size:0x4 +fn_1_105B4 = .text:0x000105B4; // type:function size:0x4C +fn_1_10600 = .text:0x00010600; // type:function size:0x2C +fn_1_1062C = .text:0x0001062C; // type:function size:0x64 +fn_1_10690 = .text:0x00010690; // type:function size:0x32C +fn_1_109BC = .text:0x000109BC; // type:function size:0x240 +fn_1_10BFC = .text:0x00010BFC; // type:function size:0x194 +fn_1_10D90 = .text:0x00010D90; // type:function size:0x204 +fn_1_10F94 = .text:0x00010F94; // type:function size:0x4 +fn_1_10F98 = .text:0x00010F98; // type:function size:0x184 +fn_1_1111C = .text:0x0001111C; // type:function size:0x114 +fn_1_11230 = .text:0x00011230; // type:function size:0x158 +fn_1_11388 = .text:0x00011388; // type:function size:0x98 +fn_1_11420 = .text:0x00011420; // type:function size:0x144 +fn_1_11564 = .text:0x00011564; // type:function size:0x154 +fn_1_116B8 = .text:0x000116B8; // type:function size:0x4 +fn_1_116BC = .text:0x000116BC; // type:function size:0x15C +fn_1_11818 = .text:0x00011818; // type:function size:0x278 +fn_1_11A90 = .text:0x00011A90; // type:function size:0x148 +fn_1_11BD8 = .text:0x00011BD8; // type:function size:0x30 +fn_1_11C08 = .text:0x00011C08; // type:function size:0x88 +fn_1_11C90 = .text:0x00011C90; // type:function size:0x154 +fn_1_11DE4 = .text:0x00011DE4; // type:function size:0x1F0 +fn_1_11FD4 = .text:0x00011FD4; // type:function size:0x30 +fn_1_12004 = .text:0x00012004; // type:function size:0x5C0 +fn_1_125C4 = .text:0x000125C4; // type:function size:0x74 +fn_1_12638 = .text:0x00012638; // type:function size:0x408 +fn_1_12A40 = .text:0x00012A40; // type:function size:0x3A8 +fn_1_12DE8 = .text:0x00012DE8; // type:function size:0x7C +fn_1_12E64 = .text:0x00012E64; // type:function size:0xB8 +fn_1_12F1C = .text:0x00012F1C; // type:function size:0x78 +fn_1_12F94 = .text:0x00012F94; // type:function size:0x11C +fn_1_130B0 = .text:0x000130B0; // type:function size:0x118 +fn_1_131C8 = .text:0x000131C8; // type:function size:0x250 +fn_1_13418 = .text:0x00013418; // type:function size:0x38 +fn_1_13450 = .text:0x00013450; // type:function size:0xB4 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x10 data:4byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x10 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x10 data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x10 data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x18 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0xC data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0xC data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x18 data:4byte +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x30 data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x18 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x8 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x8 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x20 data:4byte +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x14 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x10 data:4byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x10 data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x1 data:byte +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x1 data:byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x1 data:byte +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x1 data:byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x1 data:byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x1 data:byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x1 data:byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x8 data:double +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x4 data:float +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0x4 data:float +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x9 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x14 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x1C +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x60 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 +lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte +lbl_1_data_308 = .data:0x00000308; // type:object size:0x4 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xE0 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x8 data:4byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:4byte +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m431Dll/splits.txt b/config/GMPP01_00/rels/m431Dll/splits.txt new file mode 100644 index 00000000..ad48912a --- /dev/null +++ b/config/GMPP01_00/rels/m431Dll/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m431Dll/main.c: + .text start:0x000000A0 end:0x00007AB8 + .rodata start:0x00000000 end:0x00000180 + .data start:0x00000000 end:0x000001D0 + .bss start:0x00000000 end:0x00000098 + +REL/m431Dll/object.c: + .text start:0x00007AB8 end:0x0000B57C + .rodata start:0x00000180 end:0x0000022C + .data start:0x000001D0 end:0x0000026C + .bss start:0x00000098 end:0x0000067C diff --git a/config/GMPP01_00/rels/m431Dll/symbols.txt b/config/GMPP01_00/rels/m431Dll/symbols.txt new file mode 100644 index 00000000..a67c25d3 --- /dev/null +++ b/config/GMPP01_00/rels/m431Dll/symbols.txt @@ -0,0 +1,253 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x78 +fn_1_49C = .text:0x0000049C; // type:function size:0xE0 +fn_1_57C = .text:0x0000057C; // type:function size:0x234 +fn_1_7B0 = .text:0x000007B0; // type:function size:0x294 +fn_1_A44 = .text:0x00000A44; // type:function size:0x660 +fn_1_10A4 = .text:0x000010A4; // type:function size:0x364 +fn_1_140C = .text:0x00001408; // type:function size:0x228 +fn_1_1634 = .text:0x00001630; // type:function size:0x40C +fn_1_1A40 = .text:0x00001A3C; // type:function size:0x5C0 +fn_1_2000 = .text:0x00001FFC; // type:function size:0x50 +fn_1_2050 = .text:0x0000204C; // type:function size:0x40 +fn_1_2090 = .text:0x0000208C; // type:function size:0x40 +fn_1_20D0 = .text:0x000020CC; // type:function size:0x40 +fn_1_2110 = .text:0x0000210C; // type:function size:0x9A0 +fn_1_2AB0 = .text:0x00002AAC; // type:function size:0x10 +fn_1_2AC0 = .text:0x00002ABC; // type:function size:0x1D4 +fn_1_2C94 = .text:0x00002C90; // type:function size:0x44C +fn_1_30E0 = .text:0x000030DC; // type:function size:0x460 +fn_1_3540 = .text:0x0000353C; // type:function size:0x83C +fn_1_3D7C = .text:0x00003D78; // type:function size:0x254 +fn_1_3FD0 = .text:0x00003FCC; // type:function size:0x58 +fn_1_4028 = .text:0x00004024; // type:function size:0x6FC +fn_1_4724 = .text:0x00004720; // type:function size:0x14 +fn_1_4738 = .text:0x00004734; // type:function size:0x60 +fn_1_4798 = .text:0x00004794; // type:function size:0x138 +fn_1_48D0 = .text:0x000048CC; // type:function size:0xBC +fn_1_498C = .text:0x00004988; // type:function size:0x188 +fn_1_4B14 = .text:0x00004B10; // type:function size:0x1C8 +fn_1_4CDC = .text:0x00004CD8; // type:function size:0x70 +fn_1_4D4C = .text:0x00004D48; // type:function size:0xE4 +fn_1_4E30 = .text:0x00004E2C; // type:function size:0x4A8 +fn_1_52D8 = .text:0x000052D4; // type:function size:0x1A8 +fn_1_5480 = .text:0x0000547C; // type:function size:0xA4 +fn_1_5524 = .text:0x00005520; // type:function size:0x148 +fn_1_566C = .text:0x00005668; // type:function size:0x9C +fn_1_5708 = .text:0x00005704; // type:function size:0x468 +fn_1_5B70 = .text:0x00005B6C; // type:function size:0x4C0 +fn_1_6030 = .text:0x0000602C; // type:function size:0x154 +fn_1_6184 = .text:0x00006180; // type:function size:0x380 +fn_1_6504 = .text:0x00006500; // type:function size:0xC8 +fn_1_65CC = .text:0x000065C8; // type:function size:0x10 +fn_1_65DC = .text:0x000065D8; // type:function size:0x5C +fn_1_6638 = .text:0x00006634; // type:function size:0xA4 +fn_1_66DC = .text:0x000066D8; // type:function size:0xE4 +fn_1_67C0 = .text:0x000067BC; // type:function size:0x374 +fn_1_6B34 = .text:0x00006B30; // type:function size:0x140 +fn_1_6C74 = .text:0x00006C70; // type:function size:0x544 +fn_1_71B8 = .text:0x000071B4; // type:function size:0x60 +fn_1_7218 = .text:0x00007214; // type:function size:0x2C +fn_1_7244 = .text:0x00007240; // type:function size:0x38 +fn_1_727C = .text:0x00007278; // type:function size:0x38 +fn_1_72B4 = .text:0x000072B0; // type:function size:0x570 +fn_1_7824 = .text:0x00007820; // type:function size:0xCC +fn_1_78F0 = .text:0x000078EC; // type:function size:0xA4 +fn_1_7994 = .text:0x00007990; // type:function size:0x68 +fn_1_79FC = .text:0x000079F8; // type:function size:0x7C +fn_1_7A78 = .text:0x00007A74; // type:function size:0x44 +fn_1_7ABC = .text:0x00007AB8; // type:function size:0x4FC +fn_1_7FB8 = .text:0x00007FB4; // type:function size:0x4BC +fn_1_8474 = .text:0x00008470; // type:function size:0x118 +fn_1_858C = .text:0x00008588; // type:function size:0x204 +fn_1_8790 = .text:0x0000878C; // type:function size:0x344 +fn_1_8AD4 = .text:0x00008AD0; // type:function size:0x1EC +fn_1_8CC0 = .text:0x00008CBC; // type:function size:0x6CC +fn_1_938C = .text:0x00009388; // type:function size:0xB4 +fn_1_9440 = .text:0x0000943C; // type:function size:0x494 +fn_1_98D4 = .text:0x000098D0; // type:function size:0x130 +fn_1_9A04 = .text:0x00009A00; // type:function size:0x278 +fn_1_9C5C = .text:0x00009C78; // type:function size:0x49C +fn_1_A0F8 = .text:0x0000A114; // type:function size:0x360 +fn_1_A450 = .text:0x0000A474; // type:function size:0x380 +fn_1_A7D0 = .text:0x0000A7F4; // type:function size:0x134 +fn_1_A904 = .text:0x0000A928; // type:function size:0x13C +fn_1_AA40 = .text:0x0000AA64; // type:function size:0xB0 +fn_1_AAF0 = .text:0x0000AB14; // type:function size:0xB0 +fn_1_ABA0 = .text:0x0000ABC4; // type:function size:0x20 +fn_1_ABC0 = .text:0x0000ABE4; // type:function size:0x30 +fn_1_ABF0 = .text:0x0000AC14; // type:function size:0x90 +fn_1_AC80 = .text:0x0000ACA4; // type:function size:0x108 +fn_1_AD88 = .text:0x0000ADAC; // type:function size:0x7C +fn_1_AE04 = .text:0x0000AE28; // type:function size:0x2E4 +fn_1_B0E8 = .text:0x0000B10C; // type:function size:0x48 +fn_1_B130 = .text:0x0000B154; // type:function size:0x20 +fn_1_B150 = .text:0x0000B174; // type:function size:0x1C +fn_1_B16C = .text:0x0000B190; // type:function size:0x20 +fn_1_B18C = .text:0x0000B1B0; // type:function size:0x1F8 +fn_1_B384 = .text:0x0000B3A8; // type:function size:0x80 +fn_1_B404 = .text:0x0000B428; // type:function size:0x90 +fn_1_B494 = .text:0x0000B4B8; // type:function size:0x64 +fn_1_B4F8 = .text:0x0000B51C; // type:function size:0x38 +fn_1_B530 = .text:0x0000B554; // type:function size:0x28 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:2byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xC +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x8 data:4byte +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x44 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x10 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x14 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 scope:local data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x2 data:2byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0x4 data:4byte +lbl_1_data_168 = .data:0x00000168; // type:object size:0xC data:float +lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 scope:local data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x24 scope:local data:string +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x4 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 data:float +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x20 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x19 scope:local data:string +lbl_1_data_230 = .data:0x00000230; // type:object size:0x20 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 scope:local +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +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:0x1 data:byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x1 data:byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x28 +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x38 data:2byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x1 data:byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x10 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x80 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4F0 data:2byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x10 +lbl_1_bss_62C = .bss:0x0000062C; // type:object size:0x50 data:float diff --git a/config/GMPP01_00/rels/m432Dll/splits.txt b/config/GMPP01_00/rels/m432Dll/splits.txt new file mode 100644 index 00000000..ff3ccc71 --- /dev/null +++ b/config/GMPP01_00/rels/m432Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m432Dll/main.c: + .text start:0x00000000 end:0x000160D8 + .rodata start:0x00000000 end:0x00000234 + .data start:0x00000000 end:0x000019F8 + .bss start:0x00000000 end:0x000005DC diff --git a/config/GMPP01_00/rels/m432Dll/symbols.txt b/config/GMPP01_00/rels/m432Dll/symbols.txt new file mode 100644 index 00000000..ea91fc89 --- /dev/null +++ b/config/GMPP01_00/rels/m432Dll/symbols.txt @@ -0,0 +1,360 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x64 +fn_1_2418 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024A8; // type:function size:0x32C +fn_1_2824 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002B80; // type:function size:0x30 +fn_1_2C00 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2C1C = .text:0x00002BCC; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002D58; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002D60; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002D68; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002D70; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002D78; // type:function size:0xC +fn_1_2DD4 = .text:0x00002D84; // type:function size:0x60 +fn_1_2E34 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_39C4 = .text:0x00003974; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003D68; // type:function size:0x114 +fn_1_3ECC = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F34; // type:function size:0xA0 +fn_1_4024 = .text:0x00003FD4; // type:function size:0x9C +fn_1_40C0 = .text:0x00004070; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004E88; // type:function size:0x250 +fn_1_5128 = .text:0x000050D8; // type:function size:0x10 +fn_1_5138 = .text:0x000050E8; // type:function size:0x10 +fn_1_5148 = .text:0x000050F8; // type:function size:0x60 +fn_1_51A8 = .text:0x00005158; // type:function size:0x60 +fn_1_5208 = .text:0x000051B8; // type:function size:0xB0 +fn_1_52B8 = .text:0x00005268; // type:function size:0xAC +fn_1_5364 = .text:0x00005314; // type:function size:0x408 +fn_1_576C = .text:0x0000571C; // type:function size:0xDC +fn_1_5848 = .text:0x000057F8; // type:function size:0x364 +fn_1_5BAC = .text:0x00005B5C; // type:function size:0x380 +fn_1_5F2C = .text:0x00005EDC; // type:function size:0x310 +fn_1_623C = .text:0x000061EC; // type:function size:0xAF8 +fn_1_6D34 = .text:0x00006CE4; // type:function size:0x1F4 +fn_1_6F28 = .text:0x00006ED8; // type:function size:0xCF4 +fn_1_7C1C = .text:0x00007BCC; // type:function size:0x924 +fn_1_8540 = .text:0x000084F0; // type:function size:0x6C +fn_1_85AC = .text:0x0000855C; // type:function size:0x70 +fn_1_861C = .text:0x000085CC; // type:function size:0x1F8 +fn_1_8814 = .text:0x000087C4; // type:function size:0x200 +fn_1_8A14 = .text:0x000089C4; // type:function size:0x2A0 +fn_1_8CB4 = .text:0x00008C64; // type:function size:0x288 +fn_1_8F3C = .text:0x00008EEC; // type:function size:0x130 +fn_1_906C = .text:0x0000901C; // type:function size:0x350 +fn_1_93BC = .text:0x0000936C; // type:function size:0x15B8 +fn_1_A974 = .text:0x0000A924; // type:function size:0x8C +fn_1_AA00 = .text:0x0000A9B0; // type:function size:0x1C +fn_1_AA1C = .text:0x0000A9CC; // type:function size:0x2AC +fn_1_ACC8 = .text:0x0000AC78; // type:function size:0x260 +fn_1_AF28 = .text:0x0000AED8; // type:function size:0x26C +_prolog = .text:0x0000B144; // type:function size:0x54 scope:global +_epilog = .text:0x0000B198; // type:function size:0x4C scope:global +fn_1_B234 = .text:0x0000B1E4; // type:function size:0x224 +fn_1_B458 = .text:0x0000B408; // type:function size:0xC0 +fn_1_B518 = .text:0x0000B4C8; // type:function size:0x2CC +fn_1_B7E4 = .text:0x0000B794; // type:function size:0x190 +fn_1_B974 = .text:0x0000B924; // type:function size:0x134 +fn_1_BAA8 = .text:0x0000BA58; // type:function size:0x460 +fn_1_BF08 = .text:0x0000BEB8; // type:function size:0x94 +fn_1_BF9C = .text:0x0000BF4C; // type:function size:0x3A0 +fn_1_C33C = .text:0x0000C2EC; // type:function size:0x3E8 +fn_1_C724 = .text:0x0000C6D4; // type:function size:0x9BC +fn_1_D0E0 = .text:0x0000D090; // type:function size:0x90C +fn_1_D9EC = .text:0x0000D99C; // type:function size:0x9C8 +fn_1_E3B4 = .text:0x0000E364; // type:function size:0x630 +fn_1_E9E4 = .text:0x0000E994; // type:function size:0x298 +fn_1_EC7C = .text:0x0000EC2C; // type:function size:0x90 +fn_1_ED0C = .text:0x0000ECBC; // type:function size:0x1544 +fn_1_10250 = .text:0x00010200; // type:function size:0xA7C +fn_1_10CCC = .text:0x00010C7C; // type:function size:0x724 +fn_1_113F0 = .text:0x000113A0; // type:function size:0x4 +fn_1_113F4 = .text:0x000113A4; // type:function size:0x140C +fn_1_12800 = .text:0x000127B0; // type:function size:0x4 +fn_1_12804 = .text:0x000127B4; // type:function size:0xC4 +fn_1_128C8 = .text:0x00012878; // type:function size:0x4D0 +fn_1_12EA8 = .text:0x00012D48; // type:function size:0x300 +fn_1_131A8 = .text:0x00013048; // type:function size:0x2150 +fn_1_15320 = .text:0x00015198; // type:function size:0x9C +ObjectSetup = .text:0x00015234; // type:function size:0xDA0 +fn_1_1615C = .text:0x00015FD4; // type:function size:0x104 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0xC +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0xC +lbl_1_data_FC = .data:0x000000FC; // type:object size:0xC +lbl_1_data_108 = .data:0x00000108; // type:object size:0x160 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x20 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x24 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x24 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 +lbl_1_data_384 = .data:0x00000384; // type:object size:0xB scope:local data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB scope:local data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB scope:local data:string +lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB scope:local data:string +lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB scope:local data:string +lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB scope:local data:string +lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB scope:local data:string +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB scope:local data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0xB scope:local data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0xB scope:local data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB scope:local data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0xB scope:local data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xB scope:local data:string +lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0xB scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0xB scope:local data:string +lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB scope:local data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xB scope:local data:string +lbl_1_data_484 = .data:0x00000484; // type:object size:0xB scope:local data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB scope:local data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB scope:local data:string +lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB scope:local data:string +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB scope:local data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xB scope:local data:string +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 data:byte +lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 data:byte +lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 +lbl_1_data_530 = .data:0x00000530; // type:object size:0xB scope:local data:string +lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB scope:local data:string +lbl_1_data_546 = .data:0x00000546; // type:object size:0xB scope:local data:string +lbl_1_data_551 = .data:0x00000551; // type:object size:0xB scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB scope:local data:string +lbl_1_data_567 = .data:0x00000567; // type:object size:0xB scope:local data:string +lbl_1_data_572 = .data:0x00000572; // type:object size:0xB scope:local data:string +lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB scope:local data:string +lbl_1_data_588 = .data:0x00000588; // type:object size:0xB scope:local data:string +lbl_1_data_593 = .data:0x00000593; // type:object size:0xB scope:local data:string +lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB scope:local data:string +lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB scope:local data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB scope:local data:string +lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB scope:local data:string +lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB scope:local data:string +lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB scope:local data:string +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xB scope:local data:string +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 +lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB scope:local data:string +lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB scope:local data:string +lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB scope:local data:string +lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB scope:local data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xB scope:local data:string +lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 +lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 +lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 +lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float +lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 +lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 +lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 scope:local data:string +lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 scope:local data:string +lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 scope:local data:string +lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 scope:local data:string +lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB scope:local data:string +lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 scope:local data:string +lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC scope:local data:string +lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 scope:local data:string +lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 scope:local data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1D scope:local data:string +jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local +jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local +lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB scope:local data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1B scope:local data:string +jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local +lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float +lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x4 data:4byte +lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte +lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte +lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte +lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x4 data:4byte +lbl_1_bss_40C = .bss:0x0000040C; // type:object size:0x4 data:4byte +lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte +lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte +lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte +lbl_1_bss_41C = .bss:0x0000041C; // type:object size:0x4 data:4byte +lbl_1_bss_420 = .bss:0x00000420; // type:object size:0x4 data:float +lbl_1_bss_424 = .bss:0x00000424; // type:object size:0x4 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x100 +lbl_1_bss_528 = .bss:0x00000528; // type:object size:0x40 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x4 data:float +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x4 data:4byte +lbl_1_bss_570 = .bss:0x00000570; // type:object size:0x4 data:4byte +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x2 data:2byte +lbl_1_bss_576 = .bss:0x00000576; // type:object size:0x2 data:2byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0xC data:float +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0xC data:4byte +lbl_1_bss_59C = .bss:0x0000059C; // type:object size:0xC data:float +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0xC data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x18 data:4byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m433Dll/splits.txt b/config/GMPP01_00/rels/m433Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m433Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m433Dll/symbols.txt b/config/GMPP01_00/rels/m433Dll/symbols.txt new file mode 100644 index 00000000..4b4ddd22 --- /dev/null +++ b/config/GMPP01_00/rels/m433Dll/symbols.txt @@ -0,0 +1,465 @@ +_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:0x420 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xC4 +fn_1_584 = .text:0x00000584; // type:function size:0x94 +fn_1_618 = .text:0x00000618; // type:function size:0x180 +fn_1_798 = .text:0x00000798; // type:function size:0x33C +fn_1_AD4 = .text:0x00000AD4; // type:function size:0x358 +fn_1_E2C = .text:0x00000E2C; // type:function size:0x214 +fn_1_1040 = .text:0x00001040; // type:function size:0x3BC +fn_1_13FC = .text:0x000013FC; // type:function size:0x2D4 +fn_1_16D0 = .text:0x000016D0; // type:function size:0x36C +fn_1_1A3C = .text:0x00001A3C; // type:function size:0xC +fn_1_1A48 = .text:0x00001A48; // type:function size:0x6F4 +fn_1_213C = .text:0x0000213C; // type:function size:0x18 +fn_1_2154 = .text:0x00002154; // type:function size:0x18 +fn_1_216C = .text:0x0000216C; // type:function size:0x18 +fn_1_2184 = .text:0x00002184; // type:function size:0x18 +fn_1_219C = .text:0x0000219C; // type:function size:0x30 +fn_1_21CC = .text:0x000021CC; // type:function size:0x18 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x30 +fn_1_2214 = .text:0x00002214; // type:function size:0x30 +fn_1_2244 = .text:0x00002244; // type:function size:0x38 +fn_1_227C = .text:0x0000227C; // type:function size:0x208 +fn_1_2484 = .text:0x00002484; // type:function size:0x240 +fn_1_26C4 = .text:0x000026C4; // type:function size:0x11C +fn_1_27E0 = .text:0x000027E0; // type:function size:0xB4 +fn_1_2894 = .text:0x00002894; // type:function size:0xF0 +fn_1_2984 = .text:0x00002984; // type:function size:0x20 +fn_1_29A4 = .text:0x000029A4; // type:function size:0x120 +fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x21C +fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x5EC +fn_1_32CC = .text:0x000032CC; // type:function size:0x6E0 +fn_1_39AC = .text:0x000039AC; // type:function size:0x270 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x240 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0xB8 +fn_1_3F14 = .text:0x00003F14; // type:function size:0xB80 +fn_1_4A94 = .text:0x00004A94; // type:function size:0x10C +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x334 +fn_1_4ED4 = .text:0x00004ED4; // type:function size:0xEC +fn_1_4FC0 = .text:0x00004FC0; // type:function size:0x28 +fn_1_4FE8 = .text:0x00004FE8; // type:function size:0x80 +fn_1_5068 = .text:0x00005068; // type:function size:0x40 +fn_1_50A8 = .text:0x000050A8; // type:function size:0xA0 +fn_1_5148 = .text:0x00005148; // type:function size:0x94 +fn_1_51DC = .text:0x000051DC; // type:function size:0x84 +fn_1_5260 = .text:0x00005260; // type:function size:0x54 +fn_1_52B4 = .text:0x000052B4; // type:function size:0x168 +fn_1_541C = .text:0x0000541C; // type:function size:0x120 +fn_1_553C = .text:0x0000553C; // type:function size:0x39C +fn_1_58D8 = .text:0x000058D8; // type:function size:0x2C +fn_1_5904 = .text:0x00005904; // type:function size:0x270 +fn_1_5B74 = .text:0x00005B74; // type:function size:0x24 +fn_1_5B98 = .text:0x00005B98; // type:function size:0x4D8 +fn_1_6070 = .text:0x00006070; // type:function size:0x50 +fn_1_60C0 = .text:0x000060C0; // type:function size:0x76C +fn_1_682C = .text:0x0000682C; // type:function size:0xA00 +fn_1_722C = .text:0x0000722C; // type:function size:0x2A8 +fn_1_74D4 = .text:0x000074D4; // type:function size:0xF34 +fn_1_8408 = .text:0x00008408; // type:function size:0x334 +fn_1_873C = .text:0x0000873C; // type:function size:0x1FC +fn_1_8938 = .text:0x00008938; // type:function size:0x298 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x3B0 +fn_1_8F80 = .text:0x00008F80; // type:function size:0x708 +fn_1_9688 = .text:0x00009688; // type:function size:0xF90 +fn_1_A618 = .text:0x0000A618; // type:function size:0x570 +fn_1_AB88 = .text:0x0000AB88; // type:function size:0x624 +fn_1_B1AC = .text:0x0000B1AC; // type:function size:0x340 +fn_1_B4EC = .text:0x0000B4EC; // type:function size:0x20C +fn_1_B6F8 = .text:0x0000B6F8; // type:function size:0xCC +fn_1_B7C4 = .text:0x0000B7C4; // type:function size:0x8C +fn_1_B850 = .text:0x0000B850; // type:function size:0x2A8 +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x268 +fn_1_BD60 = .text:0x0000BD60; // type:function size:0x4F8 +fn_1_C258 = .text:0x0000C258; // type:function size:0x46C +fn_1_C6C4 = .text:0x0000C6C4; // type:function size:0x4 +fn_1_C6C8 = .text:0x0000C6C8; // type:function size:0x51C +fn_1_CBE4 = .text:0x0000CBE4; // type:function size:0x220 +fn_1_CE04 = .text:0x0000CE04; // type:function size:0x3C8 +fn_1_D1CC = .text:0x0000D1CC; // type:function size:0x1B8 +fn_1_D384 = .text:0x0000D384; // type:function size:0x1A8 +fn_1_D52C = .text:0x0000D52C; // type:function size:0x1C8 +fn_1_D6F4 = .text:0x0000D6F4; // type:function size:0x1E0 +fn_1_D8D4 = .text:0x0000D8D4; // type:function size:0x4E8 +fn_1_DDBC = .text:0x0000DDBC; // type:function size:0xB8 +fn_1_DE74 = .text:0x0000DE74; // type:function size:0x11C +fn_1_DF90 = .text:0x0000DF90; // type:function size:0xA0 +fn_1_E030 = .text:0x0000E030; // type:function size:0x138 +fn_1_E168 = .text:0x0000E168; // type:function size:0x4A4 +fn_1_E60C = .text:0x0000E60C; // type:function size:0x4CC +fn_1_EAD8 = .text:0x0000EAD8; // type:function size:0x158 +fn_1_EC30 = .text:0x0000EC30; // type:function size:0x118 +fn_1_ED48 = .text:0x0000ED48; // type:function size:0x1168 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x28 +fn_1_FED8 = .text:0x0000FED8; // type:function size:0x2A4 +fn_1_1017C = .text:0x0001017C; // type:function size:0x130 +fn_1_102AC = .text:0x000102AC; // type:function size:0x3B4 +fn_1_10660 = .text:0x00010660; // type:function size:0xF8 +fn_1_10758 = .text:0x00010758; // type:function size:0x34 +fn_1_1078C = .text:0x0001078C; // type:function size:0x70 +fn_1_107FC = .text:0x000107FC; // type:function size:0x98 +fn_1_10894 = .text:0x00010894; // type:function size:0x30 +fn_1_108C4 = .text:0x000108C4; // type:function size:0x4C +fn_1_10910 = .text:0x00010910; // type:function size:0x3C +fn_1_1094C = .text:0x0001094C; // type:function size:0x28 +fn_1_10974 = .text:0x00010974; // type:function size:0x1F8 +fn_1_10B6C = .text:0x00010B6C; // type:function size:0x204 +fn_1_10D70 = .text:0x00010D70; // type:function size:0x180 +fn_1_10EF0 = .text:0x00010EF0; // type:function size:0x28 +fn_1_10F18 = .text:0x00010F18; // type:function size:0x34 +fn_1_10F4C = .text:0x00010F4C; // type:function size:0x38 +fn_1_10F84 = .text:0x00010F84; // type:function size:0x34 +fn_1_10FB8 = .text:0x00010FB8; // type:function size:0x38 +fn_1_10FF0 = .text:0x00010FF0; // type:function size:0x38 +fn_1_11028 = .text:0x00011028; // type:function size:0x28 +fn_1_11050 = .text:0x00011050; // type:function size:0x5C +fn_1_110AC = .text:0x000110AC; // type:function size:0x38 +fn_1_110E4 = .text:0x000110E4; // type:function size:0x98 +fn_1_1117C = .text:0x0001117C; // type:function size:0x1B0 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 scope:local data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0x50 data:float +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:4byte +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x44 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local +lbl_1_data_674 = .data:0x00000674; // type:object size:0xC +lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x28 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_data_6C0 = .data:0x000006C0; // type:object size:0xB0 data:4byte +lbl_1_data_770 = .data:0x00000770; // type:object size:0x24 +lbl_1_data_794 = .data:0x00000794; // type:object size:0x6C +lbl_1_data_800 = .data:0x00000800; // type:object size:0x24 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x4 data:4byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x4 data:4byte +lbl_1_bss_7B0 = .bss:0x000007B0; // type:object size:0x8 data:4byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x10 +lbl_1_bss_7C8 = .bss:0x000007C8; // type:object size:0x4 data:4byte +lbl_1_bss_7CC = .bss:0x000007CC; // type:object size:0x4 data:4byte +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x14 diff --git a/config/GMPP01_00/rels/m434Dll/splits.txt b/config/GMPP01_00/rels/m434Dll/splits.txt new file mode 100644 index 00000000..f4ed5551 --- /dev/null +++ b/config/GMPP01_00/rels/m434Dll/splits.txt @@ -0,0 +1,34 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m434Dll/main.c: + .text start:0x000000A0 end:0x00001DB0 + .rodata start:0x00000000 end:0x000000B8 + .data start:0x00000000 end:0x00000100 + .bss start:0x00000000 end:0x000003D8 + +REL/m434Dll/map.c: + .text start:0x00001DB0 end:0x00004854 + .rodata start:0x000000B8 end:0x000001A8 + .data start:0x00000100 end:0x00000180 + .bss start:0x000003D8 end:0x00005870 + +REL/m434Dll/player.c: + .text start:0x00004854 end:0x00006860 + .rodata start:0x000001A8 end:0x000002C8 + .data start:0x00000180 end:0x000002C0 + .bss start:0x00005870 end:0x00005880 + +REL/m434Dll/fish.c: + .text start:0x00006860 end:0x0000918C + .rodata start:0x000002C8 end:0x000004C8 + .data start:0x000002C0 end:0x000002C8 + .bss start:0x00005880 end:0x00007884 diff --git a/config/GMPP01_00/rels/m434Dll/symbols.txt b/config/GMPP01_00/rels/m434Dll/symbols.txt new file mode 100644 index 00000000..c3cfd4b9 --- /dev/null +++ b/config/GMPP01_00/rels/m434Dll/symbols.txt @@ -0,0 +1,347 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x45C +fn_1_4FC = .text:0x000004FC; // type:function size:0x5C +fn_1_558 = .text:0x00000558; // type:function size:0x70C +fn_1_C64 = .text:0x00000C64; // type:function size:0x64 +fn_1_CC8 = .text:0x00000CC8; // type:function size:0x17C +fn_1_E44 = .text:0x00000E44; // type:function size:0x278 +fn_1_10BC = .text:0x000010BC; // type:function size:0x38 +fn_1_10F4 = .text:0x000010F4; // type:function size:0x10 +fn_1_1104 = .text:0x00001104; // type:function size:0x4C +fn_1_1150 = .text:0x00001150; // type:function size:0x320 +fn_1_1470 = .text:0x00001470; // type:function size:0x1C8 +fn_1_1638 = .text:0x00001638; // type:function size:0x4C +fn_1_1684 = .text:0x00001684; // type:function size:0x30 +fn_1_16B4 = .text:0x000016B4; // type:function size:0x24 +fn_1_16D8 = .text:0x000016D8; // type:function size:0xB0 +fn_1_1788 = .text:0x00001788; // type:function size:0xB0 +fn_1_1838 = .text:0x00001838; // type:function size:0x118 +fn_1_1950 = .text:0x00001950; // type:function size:0xB0 +fn_1_1A00 = .text:0x00001A00; // type:function size:0x10 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x234 +fn_1_1C44 = .text:0x00001C44; // type:function size:0x44 +fn_1_1C88 = .text:0x00001C88; // type:function size:0x30 +fn_1_1CB8 = .text:0x00001CB8; // type:function size:0x8C +fn_1_1D44 = .text:0x00001D44; // type:function size:0x10 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x10 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x18 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x10 +fn_1_1D9C = .text:0x00001D9C; // type:function size:0x14 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x94 +fn_1_1E44 = .text:0x00001E44; // type:function size:0x20 +fn_1_1E64 = .text:0x00001E64; // type:function size:0x7A4 +fn_1_2608 = .text:0x00002608; // type:function size:0x9C +fn_1_26A4 = .text:0x000026A4; // type:function size:0x24C +fn_1_28F0 = .text:0x000028F0; // type:function size:0x88 +fn_1_2978 = .text:0x00002978; // type:function size:0x68C +fn_1_3004 = .text:0x00003004; // type:function size:0x124 +fn_1_3128 = .text:0x00003128; // type:function size:0x1B4 +fn_1_32DC = .text:0x000032DC; // type:function size:0xC8 +fn_1_33A4 = .text:0x000033A4; // type:function size:0xF8 +fn_1_349C = .text:0x0000349C; // type:function size:0xF8 +fn_1_3594 = .text:0x00003594; // type:function size:0x734 +fn_1_3CC8 = .text:0x00003CC8; // type:function size:0x6E4 +fn_1_43AC = .text:0x000043AC; // type:function size:0x90 +fn_1_443C = .text:0x0000443C; // type:function size:0x3B0 +fn_1_47EC = .text:0x000047EC; // type:function size:0x68 +fn_1_4854 = .text:0x00004854; // type:function size:0x110 +fn_1_4964 = .text:0x00004964; // type:function size:0x24 +fn_1_4988 = .text:0x00004988; // type:function size:0x46C +fn_1_4DF4 = .text:0x00004DF4; // type:function size:0x5C +fn_1_4E50 = .text:0x00004E50; // type:function size:0xC60 +fn_1_5AB0 = .text:0x00005AB0; // type:function size:0x13C +fn_1_5BEC = .text:0x00005BEC; // type:function size:0xAC +fn_1_5C98 = .text:0x00005C98; // type:function size:0x414 +fn_1_60AC = .text:0x000060AC; // type:function size:0x19C +fn_1_6248 = .text:0x00006248; // type:function size:0x74 +fn_1_62BC = .text:0x000062BC; // type:function size:0x1E0 +fn_1_649C = .text:0x0000649C; // type:function size:0x24 +fn_1_64C0 = .text:0x000064C0; // type:function size:0x1D0 +fn_1_6690 = .text:0x00006690; // type:function size:0x11C +fn_1_67AC = .text:0x000067AC; // type:function size:0xB4 +fn_1_6860 = .text:0x00006860; // type:function size:0x224 +fn_1_6A84 = .text:0x00006A84; // type:function size:0x4 +fn_1_6A88 = .text:0x00006A88; // type:function size:0x2F4 +fn_1_6D7C = .text:0x00006D7C; // type:function size:0x3C +fn_1_6DB8 = .text:0x00006DB8; // type:function size:0x4 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1034 +fn_1_7DF0 = .text:0x00007DF0; // type:function size:0x464 +fn_1_8254 = .text:0x00008254; // type:function size:0x174 +fn_1_83C8 = .text:0x000083C8; // type:function size:0x108 +fn_1_84D0 = .text:0x000084D0; // type:function size:0xF4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x2C0 +fn_1_8884 = .text:0x00008884; // type:function size:0x268 +fn_1_8AEC = .text:0x00008AEC; // type:function size:0x6C +fn_1_8B58 = .text:0x00008B58; // type:function size:0xBC +fn_1_8C14 = .text:0x00008C14; // type:function size:0x164 +fn_1_8D78 = .text:0x00008D78; // type:function size:0xB4 +fn_1_8E2C = .text:0x00008E2C; // type:function size:0x110 +fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64 +fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x48 scope:local +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x48 scope:local +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x48 scope:local +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x48 scope:local +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC data:float +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x23 scope:local data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 scope:local data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x1C scope:local data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 data:float +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 data:float +lbl_1_data_100 = .data:0x00000100; // type:object size:0x32 +lbl_1_data_132 = .data:0x00000132; // type:object size:0x2 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 scope:local data:string +lbl_1_data_139 = .data:0x00000139; // type:object size:0x4 data:byte +lbl_1_data_140 = .data:0x00000140; // type:object size:0x18 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x18 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x4 +lbl_1_data_174 = .data:0x00000174; // type:object size:0x4 data:byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x4 data:byte +lbl_1_data_17C = .data:0x0000017C; // type:object size:0x4 data:byte +lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 scope:local +lbl_1_data_190 = .data:0x00000190; // type:object size:0x20 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0xB scope:local data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 +lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 scope:local data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 scope:local data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 scope:local data:string +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x380 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8 +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x4 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte +lbl_1_bss_3B2 = .bss:0x000003B2; // type:object size:0x6 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte +lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte +lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte +lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte +lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x4 data:4byte +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x18 data:4byte +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x50 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x8 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x8 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x8 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x4 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x4 data:4byte +lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x4 data:4byte +lbl_1_bss_464 = .bss:0x00000464; // type:object size:0x2000 data:float +lbl_1_bss_2464 = .bss:0x00002464; // type:object size:0x4 data:4byte +lbl_1_bss_2468 = .bss:0x00002468; // type:object size:0x400 data:2byte +lbl_1_bss_2868 = .bss:0x00002868; // type:object size:0x3000 data:float +lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x4 data:4byte +lbl_1_bss_5870 = .bss:0x00005870; // type:object size:0x10 +lbl_1_bss_5880 = .bss:0x00005880; // type:object size:0x800 +lbl_1_bss_6080 = .bss:0x00006080; // type:object size:0x400 +lbl_1_bss_6480 = .bss:0x00006480; // type:object size:0x1000 +lbl_1_bss_7480 = .bss:0x00007480; // type:object size:0x400 data:4byte +lbl_1_bss_7880 = .bss:0x00007880; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m435Dll/splits.txt b/config/GMPP01_00/rels/m435Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m435Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m435Dll/symbols.txt b/config/GMPP01_00/rels/m435Dll/symbols.txt new file mode 100644 index 00000000..38995f87 --- /dev/null +++ b/config/GMPP01_00/rels/m435Dll/symbols.txt @@ -0,0 +1,471 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x3E4 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x48 +fn_1_92C = .text:0x0000092C; // type:function size:0x6B0 +fn_1_FDC = .text:0x00000FDC; // type:function size:0x134 +fn_1_1110 = .text:0x00001110; // type:function size:0xC4 +fn_1_11D4 = .text:0x000011D4; // type:function size:0x644 +fn_1_1818 = .text:0x00001818; // type:function size:0x24 +fn_1_183C = .text:0x0000183C; // type:function size:0x458 +fn_1_1C94 = .text:0x00001C94; // type:function size:0x1EC +fn_1_1E80 = .text:0x00001E80; // type:function size:0x1EC +fn_1_206C = .text:0x0000206C; // type:function size:0x458 +fn_1_24C4 = .text:0x000024C4; // type:function size:0x68 +fn_1_252C = .text:0x0000252C; // type:function size:0x68 +fn_1_2594 = .text:0x00002594; // type:function size:0xE8 +fn_1_267C = .text:0x0000267C; // type:function size:0x11C +fn_1_2798 = .text:0x00002798; // type:function size:0x84 +fn_1_281C = .text:0x0000281C; // type:function size:0x70 +fn_1_288C = .text:0x0000288C; // type:function size:0x38 +fn_1_28C4 = .text:0x000028C4; // type:function size:0x24 +fn_1_28E8 = .text:0x000028E8; // type:function size:0x38 +fn_1_2920 = .text:0x00002920; // type:function size:0x1C8 +fn_1_2AE8 = .text:0x00002AE8; // type:function size:0x64 +fn_1_2B4C = .text:0x00002B4C; // type:function size:0xA8 +fn_1_2BF4 = .text:0x00002BF4; // type:function size:0x20 +fn_1_2C14 = .text:0x00002C14; // type:function size:0x5A0 +fn_1_31B4 = .text:0x000031B4; // type:function size:0xCC +fn_1_3280 = .text:0x00003280; // type:function size:0x2D0 +fn_1_3550 = .text:0x00003550; // type:function size:0x59C +fn_1_3AEC = .text:0x00003AEC; // type:function size:0x20 +fn_1_3B0C = .text:0x00003B0C; // type:function size:0x370 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x20 +fn_1_3E9C = .text:0x00003E9C; // type:function size:0x260 +fn_1_40FC = .text:0x000040FC; // type:function size:0x2C +fn_1_4128 = .text:0x00004128; // type:function size:0x5A8 +fn_1_46D0 = .text:0x000046D0; // type:function size:0x22C +fn_1_48FC = .text:0x000048FC; // type:function size:0x3E8 +fn_1_4CE4 = .text:0x00004CE4; // type:function size:0x11C +fn_1_4E00 = .text:0x00004E00; // type:function size:0x1AC +fn_1_4FAC = .text:0x00004FAC; // type:function size:0x484 +fn_1_5430 = .text:0x00005430; // type:function size:0x1C8 +fn_1_55F8 = .text:0x000055F8; // type:function size:0x44 +fn_1_563C = .text:0x0000563C; // type:function size:0x1C18 +fn_1_7254 = .text:0x00007254; // type:function size:0x48 +fn_1_729C = .text:0x0000729C; // type:function size:0x384 +fn_1_7620 = .text:0x00007620; // type:function size:0x374 +fn_1_7994 = .text:0x00007994; // type:function size:0x24 +fn_1_79B8 = .text:0x000079B8; // type:function size:0xB8 +fn_1_7A70 = .text:0x00007A70; // type:function size:0xCC +fn_1_7B3C = .text:0x00007B3C; // type:function size:0x1E4 +fn_1_7D20 = .text:0x00007D20; // type:function size:0x28 +fn_1_7D48 = .text:0x00007D48; // type:function size:0x24 +fn_1_7D6C = .text:0x00007D6C; // type:function size:0x160 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x37C +fn_1_8248 = .text:0x00008248; // type:function size:0x24 +fn_1_826C = .text:0x0000826C; // type:function size:0x2D0 +fn_1_853C = .text:0x0000853C; // type:function size:0x4C +fn_1_8588 = .text:0x00008588; // type:function size:0x1A4 +fn_1_872C = .text:0x0000872C; // type:function size:0x17C +fn_1_88A8 = .text:0x000088A8; // type:function size:0x598 +fn_1_8E40 = .text:0x00008E40; // type:function size:0x28 +fn_1_8E68 = .text:0x00008E68; // type:function size:0x58 +fn_1_8EC0 = .text:0x00008EC0; // type:function size:0x2C +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x40 +fn_1_8F2C = .text:0x00008F2C; // type:function size:0x18 +fn_1_8F44 = .text:0x00008F44; // type:function size:0x150 +fn_1_9094 = .text:0x00009094; // type:function size:0x6CC +fn_1_9760 = .text:0x00009760; // type:function size:0x28 +fn_1_9788 = .text:0x00009788; // type:function size:0x94 +fn_1_981C = .text:0x0000981C; // type:function size:0x28 +fn_1_9844 = .text:0x00009844; // type:function size:0x380 +fn_1_9BC4 = .text:0x00009BC4; // type:function size:0x3C +fn_1_9C00 = .text:0x00009C00; // type:function size:0x180 +fn_1_9D80 = .text:0x00009D80; // type:function size:0x1F4 +fn_1_9F74 = .text:0x00009F74; // type:function size:0x1CC +fn_1_A140 = .text:0x0000A140; // type:function size:0x370 +fn_1_A4B0 = .text:0x0000A4B0; // type:function size:0x28 +fn_1_A4D8 = .text:0x0000A4D8; // type:function size:0x190 +fn_1_A668 = .text:0x0000A668; // type:function size:0x64 +fn_1_A6CC = .text:0x0000A6CC; // type:function size:0x1F0 +fn_1_A8BC = .text:0x0000A8BC; // type:function size:0x338 +fn_1_ABF4 = .text:0x0000ABF4; // type:function size:0x160 +fn_1_AD54 = .text:0x0000AD54; // type:function size:0x498 +fn_1_B1EC = .text:0x0000B1EC; // type:function size:0x634 +fn_1_B820 = .text:0x0000B820; // type:function size:0x128 +fn_1_B948 = .text:0x0000B948; // type:function size:0x298 +fn_1_BBE0 = .text:0x0000BBE0; // type:function size:0xB0 +fn_1_BC90 = .text:0x0000BC90; // type:function size:0xD8 +fn_1_BD68 = .text:0x0000BD68; // type:function size:0xB0 +fn_1_BE18 = .text:0x0000BE18; // type:function size:0xB0 +fn_1_BEC8 = .text:0x0000BEC8; // type:function size:0xB0 +fn_1_BF78 = .text:0x0000BF78; // type:function size:0xE4 +fn_1_C05C = .text:0x0000C05C; // type:function size:0xD8 +fn_1_C134 = .text:0x0000C134; // type:function size:0xD8 +fn_1_C20C = .text:0x0000C20C; // type:function size:0xD8 +fn_1_C2E4 = .text:0x0000C2E4; // type:function size:0xD8 +fn_1_C3BC = .text:0x0000C3BC; // type:function size:0xD8 +fn_1_C494 = .text:0x0000C494; // type:function size:0xB0 +fn_1_C544 = .text:0x0000C544; // type:function size:0xB0 +fn_1_C5F4 = .text:0x0000C5F4; // type:function size:0x168 +fn_1_C75C = .text:0x0000C75C; // type:function size:0x558 +fn_1_CCB4 = .text:0x0000CCB4; // type:function size:0x3A0 +fn_1_D054 = .text:0x0000D054; // type:function size:0x43C +fn_1_D490 = .text:0x0000D490; // type:function size:0x424 +fn_1_D8B4 = .text:0x0000D8B4; // type:function size:0x8D4 +fn_1_E188 = .text:0x0000E188; // type:function size:0x4E0 +fn_1_E668 = .text:0x0000E668; // type:function size:0x3E4 +fn_1_EA4C = .text:0x0000EA4C; // type:function size:0x340 +fn_1_ED8C = .text:0x0000ED8C; // type:function size:0x448 +fn_1_F1D4 = .text:0x0000F1D4; // type:function size:0x4 +fn_1_F1D8 = .text:0x0000F1D8; // type:function size:0x18C +fn_1_F364 = .text:0x0000F364; // type:function size:0x3C +fn_1_F3A0 = .text:0x0000F3A0; // type:function size:0x5C +fn_1_F3FC = .text:0x0000F3FC; // type:function size:0x78 +fn_1_F474 = .text:0x0000F474; // type:function size:0x5C +fn_1_F4D0 = .text:0x0000F4D0; // type:function size:0x5C +fn_1_F52C = .text:0x0000F52C; // type:function size:0x48 +fn_1_F574 = .text:0x0000F574; // type:function size:0x3C +fn_1_F5B0 = .text:0x0000F5B0; // type:function size:0x80 +fn_1_F630 = .text:0x0000F630; // type:function size:0x64 +fn_1_F694 = .text:0x0000F694; // type:function size:0x5C +fn_1_F6F0 = .text:0x0000F6F0; // type:function size:0x70 +fn_1_F760 = .text:0x0000F760; // type:function size:0x48 +fn_1_F7A8 = .text:0x0000F7A8; // type:function size:0xA8 +fn_1_F850 = .text:0x0000F850; // type:function size:0x44 +fn_1_F894 = .text:0x0000F894; // type:function size:0x5C +fn_1_F8F0 = .text:0x0000F8F0; // type:function size:0x5C +fn_1_F94C = .text:0x0000F94C; // type:function size:0x4 +fn_1_F950 = .text:0x0000F950; // type:function size:0x48 +fn_1_F998 = .text:0x0000F998; // type:function size:0x4C +fn_1_F9E4 = .text:0x0000F9E4; // type:function size:0x5C +fn_1_FA40 = .text:0x0000FA40; // type:function size:0x108 +fn_1_FB48 = .text:0x0000FB48; // type:function size:0x5C +fn_1_FBA4 = .text:0x0000FBA4; // type:function size:0xB0 +fn_1_FC54 = .text:0x0000FC54; // type:function size:0x208 +fn_1_FE5C = .text:0x0000FE5C; // type:function size:0x30 +fn_1_FE8C = .text:0x0000FE8C; // type:function size:0x98 +fn_1_FF24 = .text:0x0000FF24; // type:function size:0x808 +fn_1_1072C = .text:0x0001072C; // type:function size:0x28 +fn_1_10754 = .text:0x00010754; // type:function size:0xD8 +fn_1_1082C = .text:0x0001082C; // type:function size:0xD8 +fn_1_10904 = .text:0x00010904; // type:function size:0x108 +fn_1_10A0C = .text:0x00010A0C; // type:function size:0x408 +fn_1_10E14 = .text:0x00010E14; // type:function size:0x404 +fn_1_11218 = .text:0x00011218; // type:function size:0x488 +fn_1_116A0 = .text:0x000116A0; // type:function size:0x45C +fn_1_11AFC = .text:0x00011AFC; // type:function size:0x478 +fn_1_11F74 = .text:0x00011F74; // type:function size:0x4 +fn_1_11F78 = .text:0x00011F78; // type:function size:0x48 +fn_1_11FC0 = .text:0x00011FC0; // type:function size:0x9C +fn_1_1205C = .text:0x0001205C; // type:function size:0x1AC +fn_1_12208 = .text:0x00012208; // type:function size:0x50 +fn_1_12258 = .text:0x00012258; // type:function size:0x48 +fn_1_122A0 = .text:0x000122A0; // type:function size:0x38 +fn_1_122D8 = .text:0x000122D8; // type:function size:0x134 +fn_1_1240C = .text:0x0001240C; // type:function size:0x2C +fn_1_12438 = .text:0x00012438; // type:function size:0x134 +fn_1_1256C = .text:0x0001256C; // type:function size:0x48 +fn_1_125B4 = .text:0x000125B4; // type:function size:0x48 +fn_1_125FC = .text:0x000125FC; // type:function size:0xF0 +fn_1_126EC = .text:0x000126EC; // type:function size:0xC0 +fn_1_127AC = .text:0x000127AC; // type:function size:0x5C +fn_1_12808 = .text:0x00012808; // type:function size:0x48 +fn_1_12850 = .text:0x00012850; // type:function size:0x100 +fn_1_12950 = .text:0x00012950; // type:function size:0x1F8 +fn_1_12B48 = .text:0x00012B48; // type:function size:0x3C +fn_1_12B84 = .text:0x00012B84; // type:function size:0x5C +fn_1_12BE0 = .text:0x00012BE0; // type:function size:0x3C +fn_1_12C1C = .text:0x00012C1C; // type:function size:0x5C +fn_1_12C78 = .text:0x00012C78; // type:function size:0x3C +fn_1_12CB4 = .text:0x00012CB4; // type:function size:0x5C +fn_1_12D10 = .text:0x00012D10; // type:function size:0x230 +fn_1_12F40 = .text:0x00012F40; // type:function size:0xF4 +fn_1_13034 = .text:0x00013034; // type:function size:0x4C +fn_1_13080 = .text:0x00013080; // type:function size:0x128 +fn_1_131A8 = .text:0x000131A8; // type:function size:0x40 +fn_1_131E8 = .text:0x000131E8; // type:function size:0x98 +fn_1_13280 = .text:0x00013280; // type:function size:0xB0 +fn_1_13330 = .text:0x00013330; // type:function size:0xAC +fn_1_133DC = .text:0x000133DC; // type:function size:0x30 +fn_1_1340C = .text:0x0001340C; // type:function size:0x98 +fn_1_134A4 = .text:0x000134A4; // type:function size:0xF4 +fn_1_13598 = .text:0x00013598; // type:function size:0x60 +fn_1_135F8 = .text:0x000135F8; // type:function size:0xD84 +fn_1_1437C = .text:0x0001437C; // type:function size:0x3DC +fn_1_14758 = .text:0x00014758; // type:function size:0x254 +_prolog = .text:0x000149AC; // type:function size:0x54 scope:global +_epilog = .text:0x00014A00; // type:function size:0x4C scope:global +fn_1_14A4C = .text:0x00014A4C; // type:function size:0x40C +fn_1_14E58 = .text:0x00014E58; // type:function size:0x40C +fn_1_15264 = .text:0x00015264; // type:function size:0x28 +fn_1_1528C = .text:0x0001528C; // type:function size:0x40 +fn_1_152CC = .text:0x000152CC; // type:function size:0xC8 +fn_1_15394 = .text:0x00015394; // type:function size:0xD8 +fn_1_1546C = .text:0x0001546C; // type:function size:0x50 +fn_1_154BC = .text:0x000154BC; // type:function size:0x5C +fn_1_15518 = .text:0x00015518; // type:function size:0x88 +fn_1_155A0 = .text:0x000155A0; // type:function size:0x74 +fn_1_15614 = .text:0x00015614; // type:function size:0x54 +fn_1_15668 = .text:0x00015668; // type:function size:0x3C +fn_1_156A4 = .text:0x000156A4; // type:function size:0x110 +fn_1_157B4 = .text:0x000157B4; // type:function size:0x178 +fn_1_1592C = .text:0x0001592C; // type:function size:0x1C8 +fn_1_15AF4 = .text:0x00015AF4; // type:function size:0x318 +fn_1_15E0C = .text:0x00015E0C; // type:function size:0x3C +fn_1_15E48 = .text:0x00015E48; // type:function size:0x4C +fn_1_15E94 = .text:0x00015E94; // type:function size:0x314 +fn_1_161A8 = .text:0x000161A8; // type:function size:0x314 +fn_1_164BC = .text:0x000164BC; // type:function size:0x27C +fn_1_16738 = .text:0x00016738; // type:function size:0x2B4 +fn_1_169EC = .text:0x000169EC; // type:function size:0x530 +fn_1_16F1C = .text:0x00016F1C; // type:function size:0x454 +fn_1_17370 = .text:0x00017370; // type:function size:0x48C +fn_1_177FC = .text:0x000177FC; // type:function size:0x71C +fn_1_17F18 = .text:0x00017F18; // type:function size:0x4C4 +fn_1_183DC = .text:0x000183DC; // type:function size:0x4FC +fn_1_188D8 = .text:0x000188D8; // type:function size:0x78C +fn_1_19064 = .text:0x00019064; // type:function size:0x4C4 +fn_1_19528 = .text:0x00019528; // type:function size:0x60 +fn_1_19588 = .text:0x00019588; // type:function size:0x64 +fn_1_195EC = .text:0x000195EC; // type:function size:0x64 +fn_1_19650 = .text:0x00019650; // type:function size:0x23C +fn_1_1988C = .text:0x0001988C; // type:function size:0x64 +fn_1_198F0 = .text:0x000198F0; // type:function size:0x68 +fn_1_19958 = .text:0x00019958; // type:function size:0x8 +fn_1_19960 = .text:0x00019960; // type:function size:0xC +fn_1_1996C = .text:0x0001996C; // type:function size:0x8 +fn_1_19974 = .text:0x00019974; // type:function size:0x344 +fn_1_19CB8 = .text:0x00019CB8; // type:function size:0x190 +fn_1_19E48 = .text:0x00019E48; // type:function size:0x4EC +fn_1_1A334 = .text:0x0001A334; // type:function size:0x110 +_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:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x64 data:4byte +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 +lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string +lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string +lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string +lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 +jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local +jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 +jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 +jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local +lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 +lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 +jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x30 +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x18 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x18 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xA8 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x160 +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x978 data:4byte +lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte +lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte +lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte +lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte +lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte +lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte +lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/config/GMPP01_00/rels/m436Dll/splits.txt b/config/GMPP01_00/rels/m436Dll/splits.txt new file mode 100644 index 00000000..a76a23ab --- /dev/null +++ b/config/GMPP01_00/rels/m436Dll/splits.txt @@ -0,0 +1,17 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m436Dll/main.c: + .text start:0x00000000 end:0x000110F4 + .rodata start:0x00000000 end:0x00000350 + .data start:0x00000000 end:0x0000036C + .bss start:0x00000000 end:0x000004B4 + +REL/m436Dll/sequence.c: + .text start:0x000110F4 end:0x000154A8 + .rodata start:0x00000350 end:0x000003B8 diff --git a/config/GMPP01_00/rels/m436Dll/symbols.txt b/config/GMPP01_00/rels/m436Dll/symbols.txt new file mode 100644 index 00000000..35ef65e7 --- /dev/null +++ b/config/GMPP01_00/rels/m436Dll/symbols.txt @@ -0,0 +1,352 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x3E4 +fn_1_614 = .text:0x00000614; // type:function size:0x68 +fn_1_67C = .text:0x0000067C; // type:function size:0x6C +fn_1_6E8 = .text:0x000006E8; // type:function size:0x130 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x6A8 +fn_1_F6C = .text:0x00000F6C; // type:function size:0x118 +fn_1_1084 = .text:0x00001084; // type:function size:0xC4 +fn_1_1148 = .text:0x00001148; // type:function size:0x644 +fn_1_178C = .text:0x0000178C; // type:function size:0x24 +fn_1_17B0 = .text:0x000017B0; // type:function size:0x458 +fn_1_1C08 = .text:0x00001C08; // type:function size:0x458 +fn_1_2060 = .text:0x00002060; // type:function size:0x1D0 +fn_1_2230 = .text:0x00002230; // type:function size:0x1D0 +fn_1_2400 = .text:0x00002400; // type:function size:0x68 +fn_1_2468 = .text:0x00002468; // type:function size:0x68 +fn_1_24D0 = .text:0x000024D0; // type:function size:0xE8 +fn_1_25B8 = .text:0x000025B8; // type:function size:0x11C +fn_1_26D4 = .text:0x000026D4; // type:function size:0x70 +fn_1_2744 = .text:0x00002744; // type:function size:0x84 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x38 +fn_1_2800 = .text:0x00002800; // type:function size:0x24 +fn_1_2824 = .text:0x00002824; // type:function size:0x38 +fn_1_285C = .text:0x0000285C; // type:function size:0x1C8 +fn_1_2A2C = .text:0x00002A24; // type:function size:0x64 +fn_1_2A90 = .text:0x00002A88; // type:function size:0x304 +fn_1_2D94 = .text:0x00002D8C; // type:function size:0x28C +fn_1_3020 = .text:0x00003018; // type:function size:0x68 +fn_1_3088 = .text:0x00003080; // type:function size:0x174 +fn_1_31FC = .text:0x000031F4; // type:function size:0x7B8 +fn_1_39B4 = .text:0x000039AC; // type:function size:0x23C +fn_1_3BF0 = .text:0x00003BE8; // type:function size:0x61C +fn_1_420C = .text:0x00004204; // type:function size:0xF8 +fn_1_4304 = .text:0x000042FC; // type:function size:0x290 +fn_1_4594 = .text:0x0000458C; // type:function size:0x318 +fn_1_48AC = .text:0x000048A4; // type:function size:0x150 +fn_1_49FC = .text:0x000049F4; // type:function size:0xB8 +fn_1_4AB4 = .text:0x00004AAC; // type:function size:0x68 +fn_1_4B1C = .text:0x00004B14; // type:function size:0x38C +fn_1_4EA8 = .text:0x00004EA0; // type:function size:0x108 +fn_1_4FB0 = .text:0x00004FA8; // type:function size:0x3DC +fn_1_538C = .text:0x00005384; // type:function size:0x28 +fn_1_53B4 = .text:0x000053AC; // type:function size:0x60 +fn_1_5414 = .text:0x0000540C; // type:function size:0x3C +fn_1_5450 = .text:0x00005448; // type:function size:0x50 +fn_1_54A0 = .text:0x00005498; // type:function size:0x168 +fn_1_5608 = .text:0x00005600; // type:function size:0x6C8 +fn_1_5CD0 = .text:0x00005CC8; // type:function size:0x390 +fn_1_6060 = .text:0x00006058; // type:function size:0x264 +fn_1_62C4 = .text:0x000062BC; // type:function size:0x624 +fn_1_68E8 = .text:0x000068E0; // type:function size:0x5C +fn_1_6944 = .text:0x0000693C; // type:function size:0x298 +fn_1_6BDC = .text:0x00006BD4; // type:function size:0xB0 +fn_1_6C8C = .text:0x00006C84; // type:function size:0xD8 +fn_1_6D64 = .text:0x00006D5C; // type:function size:0xB0 +fn_1_6E14 = .text:0x00006E0C; // type:function size:0xB0 +fn_1_6EC4 = .text:0x00006EBC; // type:function size:0xB0 +fn_1_6F74 = .text:0x00006F6C; // type:function size:0xD8 +fn_1_704C = .text:0x00007044; // type:function size:0xB0 +fn_1_70FC = .text:0x000070F4; // type:function size:0xB0 +fn_1_71AC = .text:0x000071A4; // type:function size:0x120 +fn_1_72CC = .text:0x000072C4; // type:function size:0x524 +fn_1_77F0 = .text:0x000077E8; // type:function size:0x368 +fn_1_7B58 = .text:0x00007B50; // type:function size:0x3C4 +fn_1_7F1C = .text:0x00007F14; // type:function size:0x268C +fn_1_A5A8 = .text:0x0000A5A0; // type:function size:0xE2C +fn_1_B3D4 = .text:0x0000B3CC; // type:function size:0x40C +fn_1_B7E0 = .text:0x0000B7D8; // type:function size:0x4 +fn_1_B7E4 = .text:0x0000B7DC; // type:function size:0x184 +fn_1_B968 = .text:0x0000B960; // type:function size:0x4C +fn_1_B9B4 = .text:0x0000B9AC; // type:function size:0x5C +fn_1_BA10 = .text:0x0000BA08; // type:function size:0x94 +fn_1_BAA4 = .text:0x0000BA9C; // type:function size:0x100 +fn_1_BBA4 = .text:0x0000BB9C; // type:function size:0x50 +fn_1_BBF4 = .text:0x0000BBEC; // type:function size:0x48 +fn_1_BC3C = .text:0x0000BC34; // type:function size:0x3C +fn_1_BC78 = .text:0x0000BC70; // type:function size:0x80 +fn_1_BCF8 = .text:0x0000BCF0; // type:function size:0x74 +fn_1_BD6C = .text:0x0000BD64; // type:function size:0xB0 +fn_1_BE1C = .text:0x0000BE14; // type:function size:0x50 +fn_1_BE6C = .text:0x0000BE64; // type:function size:0x48 +fn_1_BEB4 = .text:0x0000BEAC; // type:function size:0x4C +fn_1_BF00 = .text:0x0000BEF8; // type:function size:0xC8 +fn_1_BFC8 = .text:0x0000BFC0; // type:function size:0x30 +fn_1_BFF8 = .text:0x0000BFF0; // type:function size:0x98 +fn_1_C090 = .text:0x0000C088; // type:function size:0x458 +fn_1_C4E8 = .text:0x0000C4E0; // type:function size:0xFC +fn_1_C5E4 = .text:0x0000C5DC; // type:function size:0xB0 +fn_1_C694 = .text:0x0000C68C; // type:function size:0xD8 +fn_1_C76C = .text:0x0000C764; // type:function size:0xD8 +fn_1_C844 = .text:0x0000C83C; // type:function size:0xC8 +fn_1_C90C = .text:0x0000C904; // type:function size:0x398 +fn_1_CCA4 = .text:0x0000CC9C; // type:function size:0x374 +fn_1_D018 = .text:0x0000D010; // type:function size:0x32C +fn_1_D344 = .text:0x0000D33C; // type:function size:0xD4 +fn_1_D418 = .text:0x0000D410; // type:function size:0x2A8 +fn_1_D6C0 = .text:0x0000D6B8; // type:function size:0x24 +fn_1_D6E4 = .text:0x0000D6DC; // type:function size:0x37C +fn_1_DA60 = .text:0x0000DA58; // type:function size:0xA0 +fn_1_DB00 = .text:0x0000DAF8; // type:function size:0x2BC +fn_1_DDBC = .text:0x0000DDB4; // type:function size:0xF4 +fn_1_DEB0 = .text:0x0000DEA8; // type:function size:0x200 +fn_1_E0B0 = .text:0x0000E0A8; // type:function size:0x94 +fn_1_E144 = .text:0x0000E13C; // type:function size:0x248 +fn_1_E38C = .text:0x0000E384; // type:function size:0x140 +fn_1_E4CC = .text:0x0000E4C4; // type:function size:0xA0 +fn_1_E56C = .text:0x0000E564; // type:function size:0xBC +fn_1_E628 = .text:0x0000E620; // type:function size:0x58 +fn_1_E680 = .text:0x0000E678; // type:function size:0x90 +fn_1_E710 = .text:0x0000E708; // type:function size:0x220 +fn_1_E930 = .text:0x0000E928; // type:function size:0xD4 +fn_1_EA04 = .text:0x0000E9FC; // type:function size:0x348 +fn_1_ED4C = .text:0x0000ED44; // type:function size:0xC4 +fn_1_EE10 = .text:0x0000EE08; // type:function size:0x5F4 +fn_1_F404 = .text:0x0000F3FC; // type:function size:0xEC +fn_1_F4F0 = .text:0x0000F4E8; // type:function size:0x48 +fn_1_F538 = .text:0x0000F530; // type:function size:0x30 +fn_1_F568 = .text:0x0000F560; // type:function size:0x98 +fn_1_F600 = .text:0x0000F5F8; // type:function size:0xB0 +fn_1_F6B0 = .text:0x0000F6A8; // type:function size:0xAC +fn_1_F75C = .text:0x0000F754; // type:function size:0x30 +fn_1_F78C = .text:0x0000F784; // type:function size:0x98 +fn_1_F824 = .text:0x0000F81C; // type:function size:0x100 +fn_1_F924 = .text:0x0000F91C; // type:function size:0x60 +fn_1_F984 = .text:0x0000F97C; // type:function size:0x8E8 +fn_1_1026C = .text:0x00010264; // type:function size:0x404 +fn_1_10670 = .text:0x00010668; // type:function size:0x1CC +_prolog = .text:0x00010834; // type:function size:0x54 scope:global +_epilog = .text:0x00010888; // type:function size:0x4C scope:global +fn_1_108DC = .text:0x000108D4; // type:function size:0x410 +ObjectSetup = .text:0x00010CE4; // type:function size:0x410 +fn_1_110FC = .text:0x000110F4; // type:function size:0x40 +fn_1_1113C = .text:0x00011134; // type:function size:0x28 +fn_1_11164 = .text:0x0001115C; // type:function size:0xC8 +fn_1_1122C = .text:0x00011224; // type:function size:0xC8 +fn_1_112F4 = .text:0x000112EC; // type:function size:0xD8 +fn_1_113CC = .text:0x000113C4; // type:function size:0x33C +fn_1_11708 = .text:0x00011700; // type:function size:0x110 +fn_1_11818 = .text:0x00011810; // type:function size:0x178 +fn_1_11990 = .text:0x00011988; // type:function size:0x188 +fn_1_11B18 = .text:0x00011B10; // type:function size:0x1B0 +fn_1_11CC8 = .text:0x00011CC0; // type:function size:0x50 +fn_1_11D18 = .text:0x00011D10; // type:function size:0x5C +fn_1_11D74 = .text:0x00011D6C; // type:function size:0x88 +fn_1_11DFC = .text:0x00011DF4; // type:function size:0x74 +fn_1_11E70 = .text:0x00011E68; // type:function size:0x94 +fn_1_11F04 = .text:0x00011EFC; // type:function size:0x3C +fn_1_11F40 = .text:0x00011F38; // type:function size:0x318 +fn_1_12258 = .text:0x00012250; // type:function size:0x3C +fn_1_12294 = .text:0x0001228C; // type:function size:0x4C +fn_1_122E0 = .text:0x000122D8; // type:function size:0x314 +fn_1_125F4 = .text:0x000125EC; // type:function size:0x314 +fn_1_12908 = .text:0x00012900; // type:function size:0x27C +fn_1_12B84 = .text:0x00012B7C; // type:function size:0x2B4 +fn_1_12E38 = .text:0x00012E30; // type:function size:0x530 +fn_1_13368 = .text:0x00013360; // type:function size:0x454 +fn_1_137BC = .text:0x000137B4; // type:function size:0x48C +fn_1_13C48 = .text:0x00013C40; // type:function size:0x71C +fn_1_14364 = .text:0x0001435C; // type:function size:0x4C4 +fn_1_14828 = .text:0x00014820; // type:function size:0x4FC +fn_1_14D24 = .text:0x00014D1C; // type:function size:0x78C +_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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B scope:local data:string +lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 scope:local data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A scope:local data:string +lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A scope:local data:string +lbl_1_data_15D = .data:0x0000015D; // type:object size:0xE scope:local data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x12 scope:local data:string +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x12 scope:local data:string +jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C +lbl_1_data_254 = .data:0x00000254; // type:object size:0xC data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 scope:local data:string +lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 +jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x30 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x18 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x18 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0xA8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x28 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x14 data:4byte +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x64 data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0x14 data:4byte +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0xF8 data:4byte +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x78 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x8 data:4byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x38 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0xC0 +lbl_1_bss_4A4 = .bss:0x000004A4; // type:object size:0x10 data:4byte diff --git a/config/GMPP01_00/rels/m437Dll/splits.txt b/config/GMPP01_00/rels/m437Dll/splits.txt new file mode 100644 index 00000000..9337d9d2 --- /dev/null +++ b/config/GMPP01_00/rels/m437Dll/splits.txt @@ -0,0 +1,18 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m437Dll/main.c: + .text start:0x00000000 end:0x00011340 + .rodata start:0x00000000 end:0x000005D0 + .data start:0x00000000 end:0x00000350 + .bss start:0x00000000 end:0x000009A8 + +REL/m437Dll/sequence.c: + .text start:0x00011340 end:0x00016794 + .rodata start:0x000005D0 end:0x00000640 + .data start:0x00000350 end:0x00000430 diff --git a/config/GMPP01_00/rels/m437Dll/symbols.txt b/config/GMPP01_00/rels/m437Dll/symbols.txt new file mode 100644 index 00000000..fac6c7f3 --- /dev/null +++ b/config/GMPP01_00/rels/m437Dll/symbols.txt @@ -0,0 +1,411 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x8C +fn_1_4C0 = .text:0x000004C0; // type:function size:0x3E4 +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x6A8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0x134 +fn_1_10C0 = .text:0x000010C0; // type:function size:0xC4 +fn_1_1184 = .text:0x00001184; // type:function size:0x38 +fn_1_11BC = .text:0x000011BC; // type:function size:0x24 +fn_1_11E0 = .text:0x000011E0; // type:function size:0x38 +fn_1_1218 = .text:0x00001218; // type:function size:0x1C8 +fn_1_13E8 = .text:0x000013E0; // type:function size:0x64 +fn_1_144C = .text:0x00001444; // type:function size:0x644 +fn_1_1A90 = .text:0x00001A88; // type:function size:0x24 +fn_1_1AB4 = .text:0x00001AAC; // type:function size:0x458 +fn_1_1F0C = .text:0x00001F04; // type:function size:0x1EC +fn_1_20F8 = .text:0x000020F0; // type:function size:0x1EC +fn_1_22E4 = .text:0x000022DC; // type:function size:0x458 +fn_1_273C = .text:0x00002734; // type:function size:0x68 +fn_1_27A4 = .text:0x0000279C; // type:function size:0x68 +fn_1_280C = .text:0x00002804; // type:function size:0xE8 +fn_1_28F4 = .text:0x000028EC; // type:function size:0x11C +fn_1_2A10 = .text:0x00002A08; // type:function size:0x84 +fn_1_2A94 = .text:0x00002A8C; // type:function size:0x70 +fn_1_2B04 = .text:0x00002AFC; // type:function size:0xA8 +fn_1_2BAC = .text:0x00002BA4; // type:function size:0x10 +fn_1_2BBC = .text:0x00002BB4; // type:function size:0x5D8 +fn_1_3194 = .text:0x0000318C; // type:function size:0xCC +fn_1_3260 = .text:0x00003258; // type:function size:0x1B0 +fn_1_3410 = .text:0x00003408; // type:function size:0x284 +fn_1_3694 = .text:0x0000368C; // type:function size:0x20 +fn_1_36B4 = .text:0x000036AC; // type:function size:0x120 +fn_1_37D4 = .text:0x000037CC; // type:function size:0x14 +fn_1_37E8 = .text:0x000037E0; // type:function size:0x1A8 +fn_1_3990 = .text:0x00003988; // type:function size:0x34 +fn_1_39C4 = .text:0x000039BC; // type:function size:0x20 +fn_1_39E4 = .text:0x000039DC; // type:function size:0x16C +fn_1_3B50 = .text:0x00003B48; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B5C; // type:function size:0x154 +fn_1_3CB8 = .text:0x00003CB0; // type:function size:0x88 +fn_1_3D40 = .text:0x00003D38; // type:function size:0x204 +fn_1_3F44 = .text:0x00003F3C; // type:function size:0x5F4 +fn_1_4538 = .text:0x00004530; // type:function size:0x188 +fn_1_46C0 = .text:0x000046B8; // type:function size:0x268 +fn_1_4928 = .text:0x00004920; // type:function size:0x10 +fn_1_4938 = .text:0x00004930; // type:function size:0x1C0 +fn_1_4AF8 = .text:0x00004AF0; // type:function size:0xB4 +fn_1_4BAC = .text:0x00004BA4; // type:function size:0x94 +fn_1_4C40 = .text:0x00004C38; // type:function size:0x1C0 +fn_1_4E00 = .text:0x00004DF8; // type:function size:0xE0 +fn_1_4EE0 = .text:0x00004ED8; // type:function size:0x268 +fn_1_5148 = .text:0x00005140; // type:function size:0x94 +fn_1_51DC = .text:0x000051D4; // type:function size:0x94 +fn_1_5270 = .text:0x00005268; // type:function size:0x94 +fn_1_5304 = .text:0x000052FC; // type:function size:0x28 +fn_1_532C = .text:0x00005324; // type:function size:0x32C +fn_1_5658 = .text:0x00005650; // type:function size:0x32C +fn_1_5984 = .text:0x0000597C; // type:function size:0x154 +fn_1_5AD8 = .text:0x00005AD0; // type:function size:0x4E4 +fn_1_5FBC = .text:0x00005FB4; // type:function size:0x150 +fn_1_610C = .text:0x00006104; // type:function size:0x28 +fn_1_6134 = .text:0x0000612C; // type:function size:0x64 +fn_1_6198 = .text:0x00006190; // type:function size:0x68 +fn_1_6200 = .text:0x000061F8; // type:function size:0x380 +fn_1_6580 = .text:0x00006578; // type:function size:0x60 +fn_1_65E0 = .text:0x000065D8; // type:function size:0xB18 +fn_1_70F8 = .text:0x000070F0; // type:function size:0x3C +fn_1_7134 = .text:0x0000712C; // type:function size:0x198 +fn_1_72CC = .text:0x000072C4; // type:function size:0x1E4 +fn_1_74B0 = .text:0x000074A8; // type:function size:0x1C8 +fn_1_7678 = .text:0x00007670; // type:function size:0x368 +fn_1_79E0 = .text:0x000079D8; // type:function size:0x34 +fn_1_7A14 = .text:0x00007A0C; // type:function size:0x8CC +fn_1_82E0 = .text:0x000082D8; // type:function size:0x28 +fn_1_8308 = .text:0x00008300; // type:function size:0x1BC +fn_1_84C4 = .text:0x000084BC; // type:function size:0x1C0 +fn_1_8684 = .text:0x0000867C; // type:function size:0xB0 +fn_1_8734 = .text:0x0000872C; // type:function size:0xF0 +fn_1_8824 = .text:0x0000881C; // type:function size:0xB0 +fn_1_88D4 = .text:0x000088CC; // type:function size:0xB0 +fn_1_8984 = .text:0x0000897C; // type:function size:0xB0 +fn_1_8A34 = .text:0x00008A2C; // type:function size:0xF0 +fn_1_8B24 = .text:0x00008B1C; // type:function size:0xB0 +fn_1_8BD4 = .text:0x00008BCC; // type:function size:0xB0 +fn_1_8C84 = .text:0x00008C7C; // type:function size:0x120 +fn_1_8DA4 = .text:0x00008D9C; // type:function size:0x57C +fn_1_9320 = .text:0x00009318; // type:function size:0x3B8 +fn_1_96D8 = .text:0x000096D0; // type:function size:0x454 +fn_1_9B2C = .text:0x00009B24; // type:function size:0x474 +fn_1_9FA0 = .text:0x00009F98; // type:function size:0x4A0 +fn_1_A440 = .text:0x0000A438; // type:function size:0x420 +fn_1_A860 = .text:0x0000A858; // type:function size:0x4 +fn_1_A864 = .text:0x0000A85C; // type:function size:0x184 +fn_1_A9E8 = .text:0x0000A9E0; // type:function size:0x3C +fn_1_AA24 = .text:0x0000AA1C; // type:function size:0x5C +fn_1_AA80 = .text:0x0000AA78; // type:function size:0x3C +fn_1_AABC = .text:0x0000AAB4; // type:function size:0x5C +fn_1_AB18 = .text:0x0000AB10; // type:function size:0x50 +fn_1_AB68 = .text:0x0000AB60; // type:function size:0x48 +fn_1_ABB0 = .text:0x0000ABA8; // type:function size:0x3C +fn_1_ABEC = .text:0x0000ABE4; // type:function size:0x84 +fn_1_AC70 = .text:0x0000AC68; // type:function size:0x5C +fn_1_ACCC = .text:0x0000ACC4; // type:function size:0x5C +fn_1_AD28 = .text:0x0000AD20; // type:function size:0x70 +fn_1_AD98 = .text:0x0000AD90; // type:function size:0x48 +fn_1_ADE0 = .text:0x0000ADD8; // type:function size:0x3C +fn_1_AE1C = .text:0x0000AE14; // type:function size:0x5C +fn_1_AE78 = .text:0x0000AE70; // type:function size:0xD4 +fn_1_AF4C = .text:0x0000AF44; // type:function size:0x248 +fn_1_B194 = .text:0x0000B18C; // type:function size:0x30 +fn_1_B1C4 = .text:0x0000B1BC; // type:function size:0x8C +fn_1_B250 = .text:0x0000B248; // type:function size:0x20 +fn_1_B270 = .text:0x0000B268; // type:function size:0x180 +fn_1_B3F0 = .text:0x0000B3E8; // type:function size:0x104 +fn_1_B4F4 = .text:0x0000B4EC; // type:function size:0x2EC +fn_1_B7E0 = .text:0x0000B7D8; // type:function size:0xF0 +fn_1_B8D0 = .text:0x0000B8C8; // type:function size:0x348 +fn_1_BC18 = .text:0x0000BC10; // type:function size:0xB0 +fn_1_BCC8 = .text:0x0000BCC0; // type:function size:0xF0 +fn_1_BDB8 = .text:0x0000BDB0; // type:function size:0xC8 +fn_1_BE80 = .text:0x0000BE78; // type:function size:0x3C8 +fn_1_C248 = .text:0x0000C240; // type:function size:0x3C8 +fn_1_C610 = .text:0x0000C608; // type:function size:0x3B4 +fn_1_C9C4 = .text:0x0000C9BC; // type:function size:0x35C +fn_1_CD20 = .text:0x0000CD18; // type:function size:0x31C +fn_1_D03C = .text:0x0000D034; // type:function size:0x384 +fn_1_D3C0 = .text:0x0000D3B8; // type:function size:0x394 +fn_1_D754 = .text:0x0000D74C; // type:function size:0x1DC +fn_1_D930 = .text:0x0000D928; // type:function size:0x3BC +fn_1_DCEC = .text:0x0000DCE4; // type:function size:0x1D8 +fn_1_DEC4 = .text:0x0000DEBC; // type:function size:0x3E4 +fn_1_E2A8 = .text:0x0000E2A0; // type:function size:0x2F0 +fn_1_E598 = .text:0x0000E590; // type:function size:0x9C +fn_1_E634 = .text:0x0000E62C; // type:function size:0x310 +fn_1_E944 = .text:0x0000E93C; // type:function size:0x5C +fn_1_E9A0 = .text:0x0000E998; // type:function size:0x104 +fn_1_EAA4 = .text:0x0000EA9C; // type:function size:0x94 +fn_1_EB38 = .text:0x0000EB30; // type:function size:0xD8 +fn_1_EC10 = .text:0x0000EC08; // type:function size:0x1C4 +fn_1_EDD4 = .text:0x0000EDCC; // type:function size:0xCC +fn_1_EEA0 = .text:0x0000EE98; // type:function size:0x12C +fn_1_EFCC = .text:0x0000EFC4; // type:function size:0xEC +fn_1_F0B8 = .text:0x0000F0B0; // type:function size:0x40 +fn_1_F0F8 = .text:0x0000F0F0; // type:function size:0x4C +fn_1_F144 = .text:0x0000F13C; // type:function size:0x48 +fn_1_F18C = .text:0x0000F184; // type:function size:0x108 +fn_1_F294 = .text:0x0000F28C; // type:function size:0x144 +fn_1_F3D8 = .text:0x0000F3D0; // type:function size:0xBC +fn_1_F494 = .text:0x0000F48C; // type:function size:0x40 +fn_1_F4D4 = .text:0x0000F4CC; // type:function size:0x30 +fn_1_F504 = .text:0x0000F4FC; // type:function size:0x8C +fn_1_F590 = .text:0x0000F588; // type:function size:0xB0 +fn_1_F640 = .text:0x0000F638; // type:function size:0xAC +fn_1_F6EC = .text:0x0000F6E4; // type:function size:0x30 +fn_1_F71C = .text:0x0000F714; // type:function size:0x8C +fn_1_F7A8 = .text:0x0000F7A0; // type:function size:0xF4 +fn_1_F89C = .text:0x0000F894; // type:function size:0x10 +fn_1_F8AC = .text:0x0000F8A4; // type:function size:0xB90 +fn_1_1043C = .text:0x00010434; // type:function size:0x468 +fn_1_108A4 = .text:0x0001089C; // type:function size:0x1EC +_prolog = .text:0x00010A88; // type:function size:0x54 scope:global +_epilog = .text:0x00010ADC; // type:function size:0x4C scope:global +fn_1_10B30 = .text:0x00010B28; // type:function size:0x40C +ObjectSetup = .text:0x00010F34; // type:function size:0x40C +fn_1_11348 = .text:0x00011340; // type:function size:0x28 +fn_1_11370 = .text:0x00011368; // type:function size:0x40 +fn_1_113B0 = .text:0x000113A8; // type:function size:0xC8 +fn_1_11478 = .text:0x00011470; // type:function size:0xC8 +fn_1_11540 = .text:0x00011538; // type:function size:0xD8 +fn_1_11618 = .text:0x00011610; // type:function size:0x50 +fn_1_11668 = .text:0x00011660; // type:function size:0x5C +fn_1_116C4 = .text:0x000116BC; // type:function size:0x88 +fn_1_1174C = .text:0x00011744; // type:function size:0x74 +fn_1_117C0 = .text:0x000117B8; // type:function size:0x94 +fn_1_11854 = .text:0x0001184C; // type:function size:0x3C +fn_1_11890 = .text:0x00011888; // type:function size:0x110 +fn_1_119A0 = .text:0x00011998; // type:function size:0x178 +fn_1_11B18 = .text:0x00011B10; // type:function size:0x1C8 +fn_1_11CE0 = .text:0x00011CD8; // type:function size:0x7B4 +fn_1_12494 = .text:0x0001248C; // type:function size:0x4C4 +fn_1_12958 = .text:0x00012950; // type:function size:0x60 +fn_1_129B8 = .text:0x000129B0; // type:function size:0x64 +fn_1_12A1C = .text:0x00012A14; // type:function size:0x64 +fn_1_12A80 = .text:0x00012A78; // type:function size:0x3C +fn_1_12ABC = .text:0x00012AB4; // type:function size:0x44 +fn_1_12B00 = .text:0x00012AF8; // type:function size:0x314 +fn_1_12E14 = .text:0x00012E0C; // type:function size:0x314 +fn_1_13128 = .text:0x00013120; // type:function size:0x27C +fn_1_133A4 = .text:0x0001339C; // type:function size:0x2B4 +fn_1_13658 = .text:0x00013650; // type:function size:0x530 +fn_1_13B88 = .text:0x00013B80; // type:function size:0x454 +fn_1_13FDC = .text:0x00013FD4; // type:function size:0x48C +fn_1_14468 = .text:0x00014460; // type:function size:0x71C +fn_1_14B84 = .text:0x00014B7C; // type:function size:0x4C4 +fn_1_15048 = .text:0x00015040; // type:function size:0x4FC +fn_1_15544 = .text:0x0001553C; // type:function size:0x78C +fn_1_15CD0 = .text:0x00015CC8; // type:function size:0x6C +fn_1_15D3C = .text:0x00015D34; // type:function size:0x68 +fn_1_15DA4 = .text:0x00015D9C; // type:function size:0x10 +fn_1_15DB4 = .text:0x00015DAC; // type:function size:0xC +fn_1_15DC0 = .text:0x00015DB8; // type:function size:0x8 +fn_1_15DC8 = .text:0x00015DC0; // type:function size:0x48 +fn_1_15E10 = .text:0x00015E08; // type:function size:0x344 +fn_1_16154 = .text:0x0001614C; // type:function size:0x190 +fn_1_162E4 = .text:0x000162DC; // type:function size:0x64 +fn_1_16348 = .text:0x00016340; // type:function size:0x4 +fn_1_1634C = .text:0x00016344; // type:function size:0x164 +fn_1_164B0 = .text:0x000164A8; // type:function size:0x15C +fn_1_1660C = .text:0x00016604; // type:function size:0x190 +_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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 scope:local +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 scope:local +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 scope:local data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B scope:local data:string +lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A scope:local data:string +lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A scope:local data:string +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xE scope:local data:string +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 scope:local data:string +lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 scope:local data:string +lbl_1_data_159 = .data:0x00000159; // type:object size:0xE scope:local data:string +lbl_1_data_167 = .data:0x00000167; // type:object size:0xE scope:local data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0x12 scope:local data:string +lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 scope:local data:string +jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x12 scope:local data:string +jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local +lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 +jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local +lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 scope:local data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 scope:local data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 scope:local data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 scope:local data:string +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 scope:local data:string +lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xE4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:float +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x4 data:float +lbl_1_bss_154 = .bss:0x00000154; // type:object size:0x4 data:float +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:float +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:float +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x7C data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4E0 data:4byte +lbl_1_bss_6BC = .bss:0x000006BC; // type:object size:0x218 data:4byte +lbl_1_bss_8D4 = .bss:0x000008D4; // type:object size:0x28 data:4byte +lbl_1_bss_8FC = .bss:0x000008FC; // type:object size:0x24 data:4byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x24 data:4byte +lbl_1_bss_944 = .bss:0x00000944; // type:object size:0x24 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x40 data:4byte diff --git a/config/GMPP01_00/rels/m438Dll/splits.txt b/config/GMPP01_00/rels/m438Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m438Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m438Dll/symbols.txt b/config/GMPP01_00/rels/m438Dll/symbols.txt new file mode 100644 index 00000000..6097d75e --- /dev/null +++ b/config/GMPP01_00/rels/m438Dll/symbols.txt @@ -0,0 +1,458 @@ +_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:0x43C +fn_1_4DC = .text:0x000004DC; // type:function size:0x20 +fn_1_4FC = .text:0x000004FC; // type:function size:0x478 +fn_1_974 = .text:0x00000974; // type:function size:0x7F4 +fn_1_1168 = .text:0x00001168; // type:function size:0x90 +fn_1_11F8 = .text:0x000011F8; // type:function size:0x19C +fn_1_1394 = .text:0x00001394; // type:function size:0x9C0 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x1AC +fn_1_1F00 = .text:0x00001F00; // type:function size:0x164 +fn_1_2064 = .text:0x00002064; // type:function size:0x4F4 +fn_1_2558 = .text:0x00002558; // type:function size:0xA0 +fn_1_25F8 = .text:0x000025F8; // type:function size:0x2B8 +fn_1_28B0 = .text:0x000028B0; // type:function size:0x28 +fn_1_28D8 = .text:0x000028D8; // type:function size:0x80 +fn_1_2958 = .text:0x00002958; // type:function size:0x3EC +fn_1_2D44 = .text:0x00002D44; // type:function size:0xFC +fn_1_2E40 = .text:0x00002E40; // type:function size:0x770 +fn_1_35B0 = .text:0x000035B0; // type:function size:0x4 +fn_1_35B4 = .text:0x000035B4; // type:function size:0xDB4 +fn_1_4368 = .text:0x00004368; // type:function size:0x3B0 +fn_1_4718 = .text:0x00004718; // type:function size:0x260 +fn_1_4978 = .text:0x00004978; // type:function size:0x5CC +fn_1_4F44 = .text:0x00004F44; // type:function size:0xDFC +fn_1_5D40 = .text:0x00005D40; // type:function size:0x570 +fn_1_62B0 = .text:0x000062B0; // type:function size:0xF4 +fn_1_63A4 = .text:0x000063A4; // type:function size:0x68C +fn_1_6A30 = .text:0x00006A30; // type:function size:0x8C4 +fn_1_72F4 = .text:0x000072F4; // type:function size:0x558 +fn_1_784C = .text:0x0000784C; // type:function size:0x300 +fn_1_7B4C = .text:0x00007B4C; // type:function size:0x64 +fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x40 +fn_1_7BF0 = .text:0x00007BF0; // type:function size:0xA0 +fn_1_7C90 = .text:0x00007C90; // type:function size:0x94 +fn_1_7D24 = .text:0x00007D24; // type:function size:0x84 +fn_1_7DA8 = .text:0x00007DA8; // type:function size:0x24 +fn_1_7DCC = .text:0x00007DCC; // type:function size:0x104 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0x168 +fn_1_8038 = .text:0x00008038; // type:function size:0x120 +fn_1_8158 = .text:0x00008158; // type:function size:0x39C +fn_1_84F4 = .text:0x000084F4; // type:function size:0x250 +fn_1_8744 = .text:0x00008744; // type:function size:0x78 +fn_1_87BC = .text:0x000087BC; // type:function size:0x11C +fn_1_88D8 = .text:0x000088D8; // type:function size:0x78 +fn_1_8950 = .text:0x00008950; // type:function size:0x2D8 +fn_1_8C28 = .text:0x00008C28; // type:function size:0x2B8 +fn_1_8EE0 = .text:0x00008EE0; // type:function size:0x154 +fn_1_9034 = .text:0x00009034; // type:function size:0x3E0 +fn_1_9414 = .text:0x00009414; // type:function size:0x214 +fn_1_9628 = .text:0x00009628; // type:function size:0x198 +fn_1_97C0 = .text:0x000097C0; // type:function size:0xD8 +fn_1_9898 = .text:0x00009898; // type:function size:0xBC +fn_1_9954 = .text:0x00009954; // type:function size:0x33C +fn_1_9C90 = .text:0x00009C90; // type:function size:0x4B0 +fn_1_A140 = .text:0x0000A140; // type:function size:0x4C0 +fn_1_A600 = .text:0x0000A600; // type:function size:0x7C +fn_1_A67C = .text:0x0000A67C; // type:function size:0x4 +fn_1_A680 = .text:0x0000A680; // type:function size:0x270 +fn_1_A8F0 = .text:0x0000A8F0; // type:function size:0x51C +fn_1_AE0C = .text:0x0000AE0C; // type:function size:0x628 +fn_1_B434 = .text:0x0000B434; // type:function size:0x98 +fn_1_B4CC = .text:0x0000B4CC; // type:function size:0x70 +fn_1_B53C = .text:0x0000B53C; // type:function size:0x4 +fn_1_B540 = .text:0x0000B540; // type:function size:0x9D4 +fn_1_BF14 = .text:0x0000BF14; // type:function size:0x844 +fn_1_C758 = .text:0x0000C758; // type:function size:0x184 +fn_1_C8DC = .text:0x0000C8DC; // type:function size:0x1C8 +fn_1_CAA4 = .text:0x0000CAA4; // type:function size:0x94C +fn_1_D3F0 = .text:0x0000D3F0; // type:function size:0x180 +fn_1_D570 = .text:0x0000D570; // type:function size:0x4E8 +fn_1_DA58 = .text:0x0000DA58; // type:function size:0x43C +fn_1_DE94 = .text:0x0000DE94; // type:function size:0xD0 +fn_1_DF64 = .text:0x0000DF64; // type:function size:0xC4 +fn_1_E028 = .text:0x0000E028; // type:function size:0x454 +fn_1_E47C = .text:0x0000E47C; // type:function size:0x11C +fn_1_E598 = .text:0x0000E598; // type:function size:0xB4 +fn_1_E64C = .text:0x0000E64C; // type:function size:0x138 +fn_1_E784 = .text:0x0000E784; // type:function size:0xDA8 +fn_1_F52C = .text:0x0000F52C; // type:function size:0x12C +fn_1_F658 = .text:0x0000F658; // type:function size:0x1C +fn_1_F674 = .text:0x0000F674; // type:function size:0x2C +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x1C +fn_1_F6BC = .text:0x0000F6BC; // type:function size:0x184 +fn_1_F840 = .text:0x0000F840; // type:function size:0xA0 +fn_1_F8E0 = .text:0x0000F8E0; // type:function size:0xA8 +fn_1_F988 = .text:0x0000F988; // type:function size:0x8C +fn_1_FA14 = .text:0x0000FA14; // type:function size:0x98 +fn_1_FAAC = .text:0x0000FAAC; // type:function size:0x288 +fn_1_FD34 = .text:0x0000FD34; // type:function size:0x518 +fn_1_1024C = .text:0x0001024C; // type:function size:0x564 +fn_1_107B0 = .text:0x000107B0; // type:function size:0x128 +fn_1_108D8 = .text:0x000108D8; // type:function size:0x2C +fn_1_10904 = .text:0x00010904; // type:function size:0x3A8 +fn_1_10CAC = .text:0x00010CAC; // type:function size:0x254 +fn_1_10F00 = .text:0x00010F00; // type:function size:0x80 +fn_1_10F80 = .text:0x00010F80; // type:function size:0x8C +fn_1_1100C = .text:0x0001100C; // type:function size:0x9C +fn_1_110A8 = .text:0x000110A8; // type:function size:0x5A4 +fn_1_1164C = .text:0x0001164C; // type:function size:0x238 +fn_1_11884 = .text:0x00011884; // type:function size:0x6C +fn_1_118F0 = .text:0x000118F0; // type:function size:0x70 +fn_1_11960 = .text:0x00011960; // type:function size:0x74 +fn_1_119D4 = .text:0x000119D4; // type:function size:0x84 +fn_1_11A58 = .text:0x00011A58; // type:function size:0x88 +fn_1_11AE0 = .text:0x00011AE0; // type:function size:0x8C +fn_1_11B6C = .text:0x00011B6C; // type:function size:0x70 +fn_1_11BDC = .text:0x00011BDC; // type:function size:0x74 +fn_1_11C50 = .text:0x00011C50; // type:function size:0x6C +fn_1_11CBC = .text:0x00011CBC; // type:function size:0x70 +fn_1_11D2C = .text:0x00011D2C; // type:function size:0x74 +fn_1_11DA0 = .text:0x00011DA0; // type:function size:0x6C +fn_1_11E0C = .text:0x00011E0C; // type:function size:0x70 +fn_1_11E7C = .text:0x00011E7C; // type:function size:0x74 +fn_1_11EF0 = .text:0x00011EF0; // type:function size:0x6C +fn_1_11F5C = .text:0x00011F5C; // type:function size:0x70 +fn_1_11FCC = .text:0x00011FCC; // type:function size:0x74 +fn_1_12040 = .text:0x00012040; // type:function size:0x44 +fn_1_12084 = .text:0x00012084; // type:function size:0x70 +fn_1_120F4 = .text:0x000120F4; // type:function size:0x74 +fn_1_12168 = .text:0x00012168; // type:function size:0x44 +fn_1_121AC = .text:0x000121AC; // type:function size:0x70 +fn_1_1221C = .text:0x0001221C; // type:function size:0x74 +fn_1_12290 = .text:0x00012290; // type:function size:0x5C +fn_1_122EC = .text:0x000122EC; // type:function size:0x80 +fn_1_1236C = .text:0x0001236C; // type:function size:0x74 +fn_1_123E0 = .text:0x000123E0; // type:function size:0x78 +fn_1_12458 = .text:0x00012458; // type:function size:0x68 +fn_1_124C0 = .text:0x000124C0; // type:function size:0x6C +fn_1_1252C = .text:0x0001252C; // type:function size:0x68 +fn_1_12594 = .text:0x00012594; // type:function size:0x6C +fn_1_12600 = .text:0x00012600; // type:function size:0x68 +fn_1_12668 = .text:0x00012668; // type:function size:0x6C +fn_1_126D4 = .text:0x000126D4; // type:function size:0x6C +fn_1_12740 = .text:0x00012740; // type:function size:0x78 +fn_1_127B8 = .text:0x000127B8; // type:function size:0x98 +fn_1_12850 = .text:0x00012850; // type:function size:0x6C +fn_1_128BC = .text:0x000128BC; // type:function size:0x78 +fn_1_12934 = .text:0x00012934; // type:function size:0x98 +fn_1_129CC = .text:0x000129CC; // type:function size:0x70 +fn_1_12A3C = .text:0x00012A3C; // type:function size:0x78 +fn_1_12AB4 = .text:0x00012AB4; // type:function size:0x98 +fn_1_12B4C = .text:0x00012B4C; // type:function size:0x40 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 +jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 +lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x24 +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6C +lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C +lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 +lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +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:0x288 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:4byte +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x900 data:float +lbl_1_bss_B98 = .bss:0x00000B98; // type:object size:0xC data:4byte +lbl_1_bss_BA4 = .bss:0x00000BA4; // type:object size:0x200 +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x4 data:4byte +lbl_1_bss_DA8 = .bss:0x00000DA8; // type:object size:0x2 data:2byte +lbl_1_bss_DAA = .bss:0x00000DAA; // type:object size:0x8 data:2byte +lbl_1_bss_DB2 = .bss:0x00000DB2; // type:object size:0x2 data:2byte +lbl_1_bss_DB4 = .bss:0x00000DB4; // type:object size:0x2 data:2byte +lbl_1_bss_DB6 = .bss:0x00000DB6; // type:object size:0x2 data:2byte +lbl_1_bss_DB8 = .bss:0x00000DB8; // type:object size:0x2 data:2byte +lbl_1_bss_DBA = .bss:0x00000DBA; // type:object size:0x2 data:2byte +lbl_1_bss_DBC = .bss:0x00000DBC; // type:object size:0x4 data:4byte +lbl_1_bss_DC0 = .bss:0x00000DC0; // type:object size:0x4 data:4byte +lbl_1_bss_DC4 = .bss:0x00000DC4; // type:object size:0x10 +lbl_1_bss_DD4 = .bss:0x00000DD4; // type:object size:0x4 data:4byte +lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte +lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte +lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x48 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte +lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte +lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte +lbl_1_bss_108C = .bss:0x0000108C; // type:object size:0x18 data:4byte diff --git a/config/GMPP01_00/rels/m439Dll/splits.txt b/config/GMPP01_00/rels/m439Dll/splits.txt new file mode 100644 index 00000000..55b19f1f --- /dev/null +++ b/config/GMPP01_00/rels/m439Dll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m439Dll/main.c: + .text start:0x000000A0 end:0x0000818C + .rodata start:0x00000000 end:0x00000200 + .data start:0x00000000 end:0x000078F0 + .bss start:0x00000000 end:0x00000174 diff --git a/config/GMPP01_00/rels/m439Dll/symbols.txt b/config/GMPP01_00/rels/m439Dll/symbols.txt new file mode 100644 index 00000000..a4c18c94 --- /dev/null +++ b/config/GMPP01_00/rels/m439Dll/symbols.txt @@ -0,0 +1,327 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x2C4 +fn_1_364 = .text:0x00000364; // type:function size:0x10 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x84 +fn_1_408 = .text:0x00000408; // type:function size:0x5B4 +fn_1_9BC = .text:0x000009BC; // type:function size:0x5C +fn_1_A18 = .text:0x00000A18; // type:function size:0x108 +fn_1_B20 = .text:0x00000B20; // type:function size:0x5C +fn_1_B7C = .text:0x00000B7C; // type:function size:0x84 +fn_1_C00 = .text:0x00000C00; // type:function size:0x10C +fn_1_D0C = .text:0x00000D0C; // type:function size:0x318 +fn_1_1024 = .text:0x00001024; // type:function size:0x104 +fn_1_1128 = .text:0x00001128; // type:function size:0x588 +fn_1_16B0 = .text:0x000016B0; // type:function size:0x5A4 +fn_1_1C54 = .text:0x00001C54; // type:function size:0x2E8 +fn_1_1F3C = .text:0x00001F3C; // type:function size:0x248 +fn_1_2184 = .text:0x00002184; // type:function size:0xB8 +fn_1_223C = .text:0x0000223C; // type:function size:0x978 +fn_1_2BB4 = .text:0x00002BB4; // type:function size:0xD0 +fn_1_2C84 = .text:0x00002C84; // type:function size:0xF98 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x90C +fn_1_4528 = .text:0x00004528; // type:function size:0x450 +fn_1_4978 = .text:0x00004978; // type:function size:0x50 +fn_1_49C8 = .text:0x000049C8; // type:function size:0x84 +fn_1_4A4C = .text:0x00004A4C; // type:function size:0x5C +fn_1_4AA8 = .text:0x00004AA8; // type:function size:0x218 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x294 +fn_1_4F54 = .text:0x00004F54; // type:function size:0xC48 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x4 +fn_1_5BA0 = .text:0x00005BA0; // type:function size:0x10C +fn_1_5CAC = .text:0x00005CAC; // type:function size:0x4 +fn_1_5CB0 = .text:0x00005CB0; // type:function size:0x3B8 +fn_1_6068 = .text:0x00006068; // type:function size:0xB8 +fn_1_6120 = .text:0x00006120; // type:function size:0x1C0 +fn_1_62E0 = .text:0x000062E0; // type:function size:0x48 +fn_1_6328 = .text:0x00006328; // type:function size:0x1F8 +fn_1_6520 = .text:0x00006520; // type:function size:0xFC +fn_1_661C = .text:0x0000661C; // type:function size:0xA0 +fn_1_66BC = .text:0x000066BC; // type:function size:0xF8 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x454 +fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x11C +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x3A4 +fn_1_7190 = .text:0x00007190; // type:function size:0x5C +fn_1_71EC = .text:0x000071EC; // type:function size:0x208 +fn_1_73F4 = .text:0x000073F4; // type:function size:0x184 +fn_1_7578 = .text:0x00007578; // type:function size:0x26C +fn_1_77E4 = .text:0x000077E4; // type:function size:0x9A8 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 scope:local +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x18 +lbl_1_data_18 = .data:0x00000018; // type:object size:0x18 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x8 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x84 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x84 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x2C +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x90 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x90 +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x30 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0xA8 +lbl_1_data_364 = .data:0x00000364; // type:object size:0xA8 +lbl_1_data_40C = .data:0x0000040C; // type:object size:0x38 +lbl_1_data_444 = .data:0x00000444; // type:object size:0xB4 +lbl_1_data_4F8 = .data:0x000004F8; // type:object size:0xB4 +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x3C +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x18 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x8 +lbl_1_data_620 = .data:0x00000620; // type:object size:0xA8 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xA8 +lbl_1_data_770 = .data:0x00000770; // type:object size:0x38 +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD8 +lbl_1_data_880 = .data:0x00000880; // type:object size:0xD8 +lbl_1_data_958 = .data:0x00000958; // type:object size:0x48 +lbl_1_data_9A0 = .data:0x000009A0; // type:object size:0xC0 +lbl_1_data_A60 = .data:0x00000A60; // type:object size:0xC0 +lbl_1_data_B20 = .data:0x00000B20; // type:object size:0x40 +lbl_1_data_B60 = .data:0x00000B60; // type:object size:0xC0 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xC0 +lbl_1_data_CE0 = .data:0x00000CE0; // type:object size:0x40 +lbl_1_data_D20 = .data:0x00000D20; // type:object size:0xA8 +lbl_1_data_DC8 = .data:0x00000DC8; // type:object size:0xA8 +lbl_1_data_E70 = .data:0x00000E70; // type:object size:0x38 +lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C +lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 +lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 data:2byte +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 data:float +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 data:float +lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 data:float +lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 data:float +lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC +lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 data:4byte +lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 data:float +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 data:float +lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 data:float +lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 data:float +lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 data:float +lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 data:float +lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 data:float +lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 data:float +lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 data:float +lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 +lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC data:4byte +lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 data:float +lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 data:float +lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 data:float +lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 data:float +lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 data:float +lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 data:float +lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 data:float +lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 data:float +lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 data:float +lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 +lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC data:4byte +lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 data:float +lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 data:float +lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 data:float +lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC +lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 data:4byte +lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 data:float +lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 data:float +lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 data:float +lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 data:float +lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 data:float +lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 data:float +lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 +lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 data:4byte +lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 data:float +lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 data:float +lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 data:float +lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 data:float +lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 data:float +lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 data:float +lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 +lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 data:4byte +lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 data:float +lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 data:float +lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 data:float +lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 data:float +lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 data:float +lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 data:float +lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 +lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 data:4byte +lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C data:float +lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C data:float +lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C data:float +lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 data:float +lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 data:float +lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 data:float +lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 +lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 data:4byte +lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 data:float +lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 data:float +lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 data:float +lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C data:float +lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C data:float +lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C data:float +lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 +lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 data:4byte +lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C data:float +lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C data:float +lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C data:float +lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 data:float +lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 data:float +lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 data:float +lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 +lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 data:4byte +lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 data:4byte +lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 +lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 +lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float +lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 +lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 data:float +lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte +lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float +lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float +lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 +lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC data:float +lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC data:float +lbl_1_data_7624 = .data:0x00007624; // type:object size:0x23 scope:local data:string +lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte +lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte +jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local +lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C scope:local data:string +lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C +lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 data:float +lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 data:float +lbl_1_data_7738 = .data:0x00007738; // type:object size:0x3C data:2byte +lbl_1_data_7774 = .data:0x00007774; // type:object size:0x20 data:4byte +lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 +lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte +lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte +lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 +lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 data:float +lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C data:2byte +lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 scope:local data:string +lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 scope:local data:string +lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 scope:local data:string +lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 scope:local data:string +lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 scope:local data:string +lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 scope:local data:string +lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 scope:local data:string +lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 scope:local data:string +lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 scope:local data:string +lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 scope:local data:string +lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 scope:local data:string +lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 scope:local data:string +lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 +lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0xC data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x90 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x24 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x24 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0xC +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_bss_12E = .bss:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x2 data:2byte +lbl_1_bss_132 = .bss:0x00000132; // type:object size:0x8 data:2byte +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x2 data:2byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m440Dll/splits.txt b/config/GMPP01_00/rels/m440Dll/splits.txt new file mode 100644 index 00000000..a5cd08ba --- /dev/null +++ b/config/GMPP01_00/rels/m440Dll/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m440Dll/main.c: + .text start:0x000000A0 end:0x0000AE04 + .rodata start:0x00000000 end:0x00000190 + .data start:0x00000000 end:0x000001D8 + .bss start:0x00000000 end:0x00000070 + +REL/m440Dll/object.c: + .text start:0x0000AE04 end:0x0000F4F0 + .rodata start:0x00000190 end:0x000002B8 + .data start:0x000001D8 end:0x00000254 + .bss start:0x00000070 end:0x000000D0 diff --git a/config/GMPP01_00/rels/m440Dll/symbols.txt b/config/GMPP01_00/rels/m440Dll/symbols.txt new file mode 100644 index 00000000..c1d0231e --- /dev/null +++ b/config/GMPP01_00/rels/m440Dll/symbols.txt @@ -0,0 +1,295 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x324 +fn_1_3C4 = .text:0x000003C4; // type:function size:0x70 +fn_1_434 = .text:0x00000434; // type:function size:0x70 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x224 +fn_1_6C8 = .text:0x000006C8; // type:function size:0x228 +fn_1_8F0 = .text:0x000008F0; // type:function size:0x1F0 +fn_1_AE0 = .text:0x00000AE0; // type:function size:0x330 +fn_1_E14 = .text:0x00000E10; // type:function size:0x324 +fn_1_1138 = .text:0x00001134; // type:function size:0x5A0 +fn_1_16D8 = .text:0x000016D4; // type:function size:0x30 +fn_1_1708 = .text:0x00001704; // type:function size:0x60 +fn_1_1768 = .text:0x00001764; // type:function size:0x64 +fn_1_17CC = .text:0x000017C8; // type:function size:0x28 +fn_1_17F4 = .text:0x000017F0; // type:function size:0x28 +fn_1_181C = .text:0x00001818; // type:function size:0x74 +fn_1_1890 = .text:0x0000188C; // type:function size:0x50 +fn_1_18E0 = .text:0x000018DC; // type:function size:0x74 +fn_1_1954 = .text:0x00001950; // type:function size:0x5C +fn_1_19B0 = .text:0x000019AC; // type:function size:0x2FC +fn_1_1CAC = .text:0x00001CA8; // type:function size:0xA8 +fn_1_1D54 = .text:0x00001D50; // type:function size:0x4EC +fn_1_2240 = .text:0x0000223C; // type:function size:0x1A4 +fn_1_23E4 = .text:0x000023E0; // type:function size:0x44 +fn_1_2428 = .text:0x00002424; // type:function size:0x48 +fn_1_2470 = .text:0x0000246C; // type:function size:0x604 +fn_1_2A74 = .text:0x00002A70; // type:function size:0x40 +fn_1_2AB4 = .text:0x00002AB0; // type:function size:0x50 +fn_1_2B04 = .text:0x00002B00; // type:function size:0x1A4 +fn_1_2CA8 = .text:0x00002CA4; // type:function size:0x80 +fn_1_2D28 = .text:0x00002D24; // type:function size:0x6AC +fn_1_33D4 = .text:0x000033D0; // type:function size:0xA04 +fn_1_3DD8 = .text:0x00003DD4; // type:function size:0x780 +fn_1_4558 = .text:0x00004554; // type:function size:0x64 +fn_1_45BC = .text:0x000045B8; // type:function size:0xA4 +fn_1_4660 = .text:0x0000465C; // type:function size:0x80 +fn_1_46E0 = .text:0x000046DC; // type:function size:0x340 +fn_1_4A20 = .text:0x00004A1C; // type:function size:0x124 +fn_1_4B44 = .text:0x00004B40; // type:function size:0x2BC +fn_1_4E00 = .text:0x00004DFC; // type:function size:0x2C +fn_1_4E2C = .text:0x00004E28; // type:function size:0x28 +fn_1_4E54 = .text:0x00004E50; // type:function size:0x54 +fn_1_4EA8 = .text:0x00004EA4; // type:function size:0x44 +fn_1_4EEC = .text:0x00004EE8; // type:function size:0x48 +fn_1_4F34 = .text:0x00004F30; // type:function size:0xDC +fn_1_5010 = .text:0x0000500C; // type:function size:0x7A4 +fn_1_57B4 = .text:0x000057B0; // type:function size:0x478 +fn_1_5C2C = .text:0x00005C28; // type:function size:0x928 +fn_1_6554 = .text:0x00006550; // type:function size:0x604 +fn_1_6B58 = .text:0x00006B54; // type:function size:0x6A4 +fn_1_71FC = .text:0x000071F8; // type:function size:0x738 +fn_1_7934 = .text:0x00007930; // type:function size:0x42C +fn_1_7D60 = .text:0x00007D5C; // type:function size:0x30C +fn_1_806C = .text:0x00008068; // type:function size:0x404 +fn_1_8470 = .text:0x0000846C; // type:function size:0x654 +fn_1_8AC4 = .text:0x00008AC0; // type:function size:0x258 +fn_1_8D1C = .text:0x00008D18; // type:function size:0x488 +fn_1_91A4 = .text:0x000091A0; // type:function size:0xD8 +fn_1_927C = .text:0x00009278; // type:function size:0xC8 +fn_1_9344 = .text:0x00009340; // type:function size:0x7C +fn_1_93C0 = .text:0x000093BC; // type:function size:0x10 +fn_1_93D0 = .text:0x000093CC; // type:function size:0x5C +fn_1_942C = .text:0x00009428; // type:function size:0x140 +fn_1_956C = .text:0x00009568; // type:function size:0x544 +fn_1_9AB0 = .text:0x00009AAC; // type:function size:0x60 +fn_1_9B10 = .text:0x00009B0C; // type:function size:0x2C +fn_1_9B3C = .text:0x00009B38; // type:function size:0x58 +fn_1_9B94 = .text:0x00009B90; // type:function size:0x38 +fn_1_9BCC = .text:0x00009BC8; // type:function size:0x38 +fn_1_9C04 = .text:0x00009C00; // type:function size:0x5B4 +fn_1_A1B8 = .text:0x0000A1B4; // type:function size:0xCC +fn_1_A284 = .text:0x0000A280; // type:function size:0xA4 +fn_1_A328 = .text:0x0000A324; // type:function size:0x68 +fn_1_A390 = .text:0x0000A38C; // type:function size:0x704 +fn_1_AA94 = .text:0x0000AA90; // type:function size:0x374 +fn_1_AE08 = .text:0x0000AE04; // type:function size:0xDC +fn_1_AEE4 = .text:0x0000AEE0; // type:function size:0x298 +fn_1_B17C = .text:0x0000B178; // type:function size:0x4 +fn_1_B180 = .text:0x0000B17C; // type:function size:0x224 +fn_1_B3A4 = .text:0x0000B3A0; // type:function size:0x4E0 +fn_1_B884 = .text:0x0000B880; // type:function size:0x950 +fn_1_C1D4 = .text:0x0000C1D0; // type:function size:0x770 +fn_1_C944 = .text:0x0000C940; // type:function size:0x668 +fn_1_CFAC = .text:0x0000CFA8; // type:function size:0x2A0 +fn_1_D24C = .text:0x0000D248; // type:function size:0x100 +fn_1_D34C = .text:0x0000D348; // type:function size:0x4AC +fn_1_D7F8 = .text:0x0000D7F4; // type:function size:0x83C +fn_1_E034 = .text:0x0000E030; // type:function size:0x858 +fn_1_E8AC = .text:0x0000E888; // type:function size:0x4DC +fn_1_ED88 = .text:0x0000ED64; // type:function size:0xF0 +fn_1_EE78 = .text:0x0000EE54; // type:function size:0xD8 +fn_1_EF50 = .text:0x0000EF2C; // type:function size:0x1AC +fn_1_F0FC = .text:0x0000F0D8; // type:function size:0x6C +fn_1_F168 = .text:0x0000F144; // type:function size:0xC0 +fn_1_F228 = .text:0x0000F204; // type:function size:0x298 +fn_1_F4C0 = .text:0x0000F49C; // type:function size:0x14 +fn_1_F4D4 = .text:0x0000F4B0; // type:function size:0x28 +fn_1_F4FC = .text:0x0000F4D8; // type:function size:0x18 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 +lbl_1_data_14 = .data:0x00000014; // type:object size:0xC +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC data:float +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC +lbl_1_data_44 = .data:0x00000044; // type:object size:0x10 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 scope:local +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x4 data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x4 data:2byte +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 scope:local data:string +lbl_1_data_131 = .data:0x00000131; // type:object size:0x17 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x1 scope:local +lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 scope:local data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 scope:local data:string +lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 scope:local data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x40 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +jumptable_1_data_22C = .data:0x0000022C; // type:object size:0x24 scope:local +lbl_1_data_250 = .data:0x00000250; // type:object size:0x4 data:float +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +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:0x1 data:byte +lbl_1_bss_B = .bss:0x0000000B; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1 data:byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x14 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x30 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x1 data:byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x2 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0xC data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 data:float +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x8 +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m441Dll/splits.txt b/config/GMPP01_00/rels/m441Dll/splits.txt new file mode 100644 index 00000000..b67999c6 --- /dev/null +++ b/config/GMPP01_00/rels/m441Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m441Dll/main.c: + .text start:0x00000000 end:0x0000AABC + .rodata start:0x00000000 end:0x000001EC + .data start:0x00000000 end:0x000005CC + .bss start:0x00000000 end:0x00000204 diff --git a/config/GMPP01_00/rels/m441Dll/symbols.txt b/config/GMPP01_00/rels/m441Dll/symbols.txt new file mode 100644 index 00000000..ccaec68e --- /dev/null +++ b/config/GMPP01_00/rels/m441Dll/symbols.txt @@ -0,0 +1,225 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +_prolog = .text:0x00002364; // type:function size:0x54 scope:global +_epilog = .text:0x000023B8; // type:function size:0x4C scope:global +fn_1_2454 = .text:0x00002404; // type:function size:0x2E8 +fn_1_273C = .text:0x000026EC; // type:function size:0x1C8 +fn_1_2904 = .text:0x000028B4; // type:function size:0x2D0 +fn_1_2BD4 = .text:0x00002B84; // type:function size:0x830 +fn_1_3404 = .text:0x000033B4; // type:function size:0x700 +fn_1_3B04 = .text:0x00003AB4; // type:function size:0xFC +fn_1_3C00 = .text:0x00003BB0; // type:function size:0x4A8 +fn_1_40A8 = .text:0x00004058; // type:function size:0x1340 +fn_1_53E8 = .text:0x00005398; // type:function size:0x744 +fn_1_5B2C = .text:0x00005ADC; // type:function size:0xD8 +fn_1_5C04 = .text:0x00005BB4; // type:function size:0x1538 +fn_1_713C = .text:0x000070EC; // type:function size:0x3B8 +fn_1_74F4 = .text:0x000074A4; // type:function size:0x464 +fn_1_7958 = .text:0x00007908; // type:function size:0xD4 +fn_1_7A2C = .text:0x000079DC; // type:function size:0x610 +fn_1_803C = .text:0x00007FEC; // type:function size:0x4DC +fn_1_8518 = .text:0x000084C8; // type:function size:0x414 +fn_1_892C = .text:0x000088DC; // type:function size:0x174 +fn_1_8AA0 = .text:0x00008A50; // type:function size:0x2B8 +fn_1_8D58 = .text:0x00008D08; // type:function size:0x11D8 +fn_1_9F40 = .text:0x00009EE0; // type:function size:0x570 +ObjectSetup = .text:0x0000A450; // type:function size:0x59C +fn_1_AA4C = .text:0x0000A9EC; // type:function size:0xD0 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:float +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:float +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC data:float +lbl_1_data_88 = .data:0x00000088; // type:object size:0xC data:float +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 +lbl_1_data_98 = .data:0x00000098; // type:object size:0xC data:float +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC data:float +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x200 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x8 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 data:float +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x6 +lbl_1_data_326 = .data:0x00000326; // type:object size:0x6 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 data:float +lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 data:float +lbl_1_data_368 = .data:0x00000368; // type:object size:0x4 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xC data:float +lbl_1_data_384 = .data:0x00000384; // type:object size:0xC data:float +lbl_1_data_390 = .data:0x00000390; // type:object size:0xC data:float +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x50 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x50 +lbl_1_data_43C = .data:0x0000043C; // type:object size:0x50 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x50 +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 scope:local data:string +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 scope:local data:string +lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 scope:local data:string +lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D scope:local data:string +jumptable_1_data_520 = .data:0x00000520; // type:object size:0x40 scope:local +lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 scope:local data:string +lbl_1_data_568 = .data:0x00000568; // type:object size:0x1B scope:local data:string +jumptable_1_data_584 = .data:0x00000584; // type:object size:0x24 scope:local +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x6 +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x100 +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x40 data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:float +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_bss_19E = .bss:0x0000019E; // type:object size:0x2 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0xC data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4 data:4byte +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x18 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m442Dll/splits.txt b/config/GMPP01_00/rels/m442Dll/splits.txt new file mode 100644 index 00000000..87722ecf --- /dev/null +++ b/config/GMPP01_00/rels/m442Dll/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m442Dll/main.c: + .text start:0x000000A0 end:0x000091B8 + .rodata start:0x00000000 end:0x000001D0 + .data start:0x00000000 end:0x00000268 + .bss start:0x00000000 end:0x00011F48 + +REL/m442Dll/score.c: + .text start:0x000091B8 end:0x0000997C + .rodata start:0x000001D0 end:0x00000200 + .data start:0x00000268 end:0x00000274 + .bss start:0x00011F48 end:0x00011F58 diff --git a/config/GMPP01_00/rels/m442Dll/symbols.txt b/config/GMPP01_00/rels/m442Dll/symbols.txt new file mode 100644 index 00000000..c50572e9 --- /dev/null +++ b/config/GMPP01_00/rels/m442Dll/symbols.txt @@ -0,0 +1,234 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x2D4 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x10 +fn_1_394 = .text:0x00000394; // type:function size:0xB4 +fn_1_448 = .text:0x00000448; // type:function size:0x5E8 +fn_1_A30 = .text:0x00000A30; // type:function size:0x60 +fn_1_A90 = .text:0x00000A90; // type:function size:0x31C +fn_1_D9C = .text:0x00000DAC; // type:function size:0x68 +fn_1_E04 = .text:0x00000E14; // type:function size:0x84 +fn_1_E88 = .text:0x00000E98; // type:function size:0x380 +fn_1_1200 = .text:0x00001218; // type:function size:0x30 +fn_1_1230 = .text:0x00001248; // type:function size:0xDE0 +fn_1_2010 = .text:0x00002028; // type:function size:0x244 +fn_1_2254 = .text:0x0000226C; // type:function size:0xF9C +fn_1_31FC = .text:0x00003208; // type:function size:0x3B0 +fn_1_35AC = .text:0x000035B8; // type:function size:0xAC +fn_1_3658 = .text:0x00003664; // type:function size:0x160 +fn_1_37B8 = .text:0x000037C4; // type:function size:0x150 +fn_1_3908 = .text:0x00003914; // type:function size:0x1DC +fn_1_3AE4 = .text:0x00003AF0; // type:function size:0x13C +fn_1_3C20 = .text:0x00003C2C; // type:function size:0x74 +fn_1_3C94 = .text:0x00003CA0; // type:function size:0x180 +fn_1_3E14 = .text:0x00003E20; // type:function size:0x50 +fn_1_3E64 = .text:0x00003E70; // type:function size:0x58 +fn_1_3EBC = .text:0x00003EC8; // type:function size:0x4 +fn_1_3EC0 = .text:0x00003ECC; // type:function size:0x4A4 +fn_1_4364 = .text:0x00004370; // type:function size:0x4 +fn_1_4368 = .text:0x00004374; // type:function size:0xDC +fn_1_4444 = .text:0x00004450; // type:function size:0x418 +fn_1_485C = .text:0x00004868; // type:function size:0xC6C +fn_1_54C8 = .text:0x000054D4; // type:function size:0x450 +fn_1_5918 = .text:0x00005924; // type:function size:0xA8 +fn_1_59C0 = .text:0x000059CC; // type:function size:0x88 +fn_1_5A48 = .text:0x00005A54; // type:function size:0x494 +fn_1_5EDC = .text:0x00005EE8; // type:function size:0x5D8 +fn_1_64B4 = .text:0x000064C0; // type:function size:0x700 +fn_1_6BB4 = .text:0x00006BC0; // type:function size:0x114 +fn_1_6CC8 = .text:0x00006CD4; // type:function size:0x5C +fn_1_6D24 = .text:0x00006D30; // type:function size:0x5A0 +fn_1_72C4 = .text:0x000072D0; // type:function size:0x318 +fn_1_75DC = .text:0x000075E8; // type:function size:0x158 +fn_1_7734 = .text:0x00007740; // type:function size:0x114 +fn_1_7848 = .text:0x00007854; // type:function size:0x48 +fn_1_7890 = .text:0x0000789C; // type:function size:0x3FC +fn_1_7C8C = .text:0x00007C98; // type:function size:0x230 +fn_1_7EBC = .text:0x00007EC8; // type:function size:0x664 +fn_1_8520 = .text:0x0000852C; // type:function size:0xC8 +fn_1_85E8 = .text:0x000085F4; // type:function size:0x104 +fn_1_86EC = .text:0x000086F8; // type:function size:0x4C +fn_1_8738 = .text:0x00008744; // type:function size:0x250 +fn_1_8988 = .text:0x00008994; // type:function size:0x764 +fn_1_90EC = .text:0x000090F8; // type:function size:0x10 +fn_1_90FC = .text:0x00009108; // type:function size:0xB0 +fn_1_91AC = .text:0x000091B8; // type:function size:0x28C +fn_1_9438 = .text:0x00009444; // type:function size:0x74 +fn_1_94AC = .text:0x000094B8; // type:function size:0x50 +fn_1_94FC = .text:0x00009508; // type:function size:0x24 +fn_1_9520 = .text:0x0000952C; // type:function size:0x30 +fn_1_9550 = .text:0x0000955C; // type:function size:0x1BC +fn_1_970C = .text:0x00009718; // type:function size:0x78 +fn_1_9784 = .text:0x00009790; // type:function size:0x88 +fn_1_980C = .text:0x00009818; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 data:byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:float +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC data:float +lbl_1_data_88 = .data:0x00000088; // type:object size:0x23 scope:local data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C scope:local data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 data:4byte +lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 data:float +lbl_1_data_150 = .data:0x00000150; // type:object size:0x19 scope:local data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 data:2byte +lbl_1_data_18A = .data:0x0000018A; // type:object size:0x14 data:2byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:byte +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:byte +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 data:float +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x4 data:byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x18 data:float +lbl_1_data_20C = .data:0x0000020C; // type:object size:0xC data:byte +lbl_1_data_218 = .data:0x00000218; // type:object size:0x4 data:byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 data:2byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC data:4byte +lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 data:2byte +lbl_1_data_250 = .data:0x00000250; // type:object size:0x8 data:float +lbl_1_data_258 = .data:0x00000258; // type:object size:0x10 +lbl_1_data_268 = .data:0x00000268; // type:object size:0xC +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x3C data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0xC000 data:2byte +lbl_1_bss_C05C = .bss:0x0000C05C; // type:object size:0x28 data:2byte +lbl_1_bss_C084 = .bss:0x0000C084; // type:object size:0x974 +lbl_1_bss_C9F8 = .bss:0x0000C9F8; // type:object size:0x5000 data:4byte +lbl_1_bss_119F8 = .bss:0x000119F8; // type:object size:0x4 data:4byte +lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x271 +lbl_1_bss_11C6D = .bss:0x00011C6D; // type:object size:0x271 +lbl_1_bss_11EE0 = .bss:0x00011EE0; // type:object size:0x4 data:4byte +lbl_1_bss_11EE4 = .bss:0x00011EE4; // type:object size:0x4 data:4byte +lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x2 data:2byte +lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x10 data:2byte +lbl_1_bss_11EFC = .bss:0x00011EFC; // type:object size:0x4 data:4byte +lbl_1_bss_11F00 = .bss:0x00011F00; // type:object size:0x4 data:4byte +lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0xC data:4byte +lbl_1_bss_11F10 = .bss:0x00011F10; // type:object size:0x4 data:4byte +lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x2 data:2byte +lbl_1_bss_11F16 = .bss:0x00011F16; // type:object size:0x2 data:2byte +lbl_1_bss_11F18 = .bss:0x00011F18; // type:object size:0x2 data:2byte +lbl_1_bss_11F1A = .bss:0x00011F1A; // type:object size:0x2 data:2byte +lbl_1_bss_11F1C = .bss:0x00011F1C; // type:object size:0x2 data:2byte +lbl_1_bss_11F1E = .bss:0x00011F1E; // type:object size:0x2 data:2byte +lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x4 data:4byte +lbl_1_bss_11F24 = .bss:0x00011F24; // type:object size:0x4 data:4byte +lbl_1_bss_11F28 = .bss:0x00011F28; // type:object size:0x4 data:4byte +lbl_1_bss_11F2C = .bss:0x00011F2C; // type:object size:0x4 data:4byte +lbl_1_bss_11F30 = .bss:0x00011F30; // type:object size:0x4 data:4byte +lbl_1_bss_11F34 = .bss:0x00011F34; // type:object size:0x4 data:4byte +lbl_1_bss_11F38 = .bss:0x00011F38; // type:object size:0x4 data:4byte +lbl_1_bss_11F3C = .bss:0x00011F3C; // type:object size:0x4 data:4byte +lbl_1_bss_11F40 = .bss:0x00011F40; // type:object size:0x4 data:4byte +lbl_1_bss_11F44 = .bss:0x00011F44; // type:object size:0x4 data:4byte +lbl_1_bss_11F48 = .bss:0x00011F48; // type:object size:0x4 data:4byte +lbl_1_bss_11F4C = .bss:0x00011F4C; // type:object size:0x4 data:4byte +lbl_1_bss_11F50 = .bss:0x00011F50; // type:object size:0x4 data:4byte +lbl_1_bss_11F54 = .bss:0x00011F54; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m443Dll/splits.txt b/config/GMPP01_00/rels/m443Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m443Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m443Dll/symbols.txt b/config/GMPP01_00/rels/m443Dll/symbols.txt new file mode 100644 index 00000000..77c929a5 --- /dev/null +++ b/config/GMPP01_00/rels/m443Dll/symbols.txt @@ -0,0 +1,326 @@ +_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:0x380 +fn_1_420 = .text:0x00000420; // type:function size:0xC4 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xA0 +fn_1_584 = .text:0x00000584; // type:function size:0x14C +fn_1_6D0 = .text:0x000006D0; // type:function size:0x2E0 +fn_1_9B0 = .text:0x000009B0; // type:function size:0x330 +fn_1_CE0 = .text:0x00000CE0; // type:function size:0x1EC +fn_1_ECC = .text:0x00000ECC; // type:function size:0x3C8 +fn_1_1294 = .text:0x00001294; // type:function size:0x544 +fn_1_17D8 = .text:0x000017D8; // type:function size:0x4C0 +fn_1_1C98 = .text:0x00001C98; // type:function size:0xF4 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x704 +fn_1_2490 = .text:0x00002490; // type:function size:0x114 +fn_1_25A4 = .text:0x000025A4; // type:function size:0x834 +fn_1_2DD8 = .text:0x00002DD8; // type:function size:0x17C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x36C +fn_1_32C0 = .text:0x000032C0; // type:function size:0xB0 +fn_1_3370 = .text:0x00003370; // type:function size:0x3A0 +fn_1_3710 = .text:0x00003710; // type:function size:0x60 +fn_1_3770 = .text:0x00003770; // type:function size:0x608 +fn_1_3D78 = .text:0x00003D78; // type:function size:0x270 +fn_1_3FE8 = .text:0x00003FE8; // type:function size:0x14 +fn_1_3FFC = .text:0x00003FFC; // type:function size:0x14 +fn_1_4010 = .text:0x00004010; // type:function size:0x9C +fn_1_40AC = .text:0x000040AC; // type:function size:0x9C +fn_1_4148 = .text:0x00004148; // type:function size:0x68 +fn_1_41B0 = .text:0x000041B0; // type:function size:0x6C +fn_1_421C = .text:0x0000421C; // type:function size:0x98 +fn_1_42B4 = .text:0x000042B4; // type:function size:0x18 +fn_1_42CC = .text:0x000042CC; // type:function size:0x18 +fn_1_42E4 = .text:0x000042E4; // type:function size:0x18 +fn_1_42FC = .text:0x000042FC; // type:function size:0x18 +fn_1_4314 = .text:0x00004314; // type:function size:0x54 +fn_1_4368 = .text:0x00004368; // type:function size:0x44 +fn_1_43AC = .text:0x000043AC; // type:function size:0x30 +fn_1_43DC = .text:0x000043DC; // type:function size:0x30 +fn_1_440C = .text:0x0000440C; // type:function size:0x38 +fn_1_4444 = .text:0x00004444; // type:function size:0x208 +fn_1_464C = .text:0x0000464C; // type:function size:0x240 +fn_1_488C = .text:0x0000488C; // type:function size:0x11C +fn_1_49A8 = .text:0x000049A8; // type:function size:0xB4 +fn_1_4A5C = .text:0x00004A5C; // type:function size:0x54 +fn_1_4AB0 = .text:0x00004AB0; // type:function size:0x4 +fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x260 +fn_1_4D14 = .text:0x00004D14; // type:function size:0x730 +fn_1_5444 = .text:0x00005444; // type:function size:0x218 +fn_1_565C = .text:0x0000565C; // type:function size:0x24 +fn_1_5680 = .text:0x00005680; // type:function size:0x554 +fn_1_5BD4 = .text:0x00005BD4; // type:function size:0x884 +fn_1_6458 = .text:0x00006458; // type:function size:0x21C +fn_1_6674 = .text:0x00006674; // type:function size:0xDC +fn_1_6750 = .text:0x00006750; // type:function size:0x264 +fn_1_69B4 = .text:0x000069B4; // type:function size:0x1DC +fn_1_6B90 = .text:0x00006B90; // type:function size:0x218 +fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x388 +fn_1_7130 = .text:0x00007130; // type:function size:0x210 +fn_1_7340 = .text:0x00007340; // type:function size:0xDF8 +fn_1_8138 = .text:0x00008138; // type:function size:0x18C +fn_1_82C4 = .text:0x000082C4; // type:function size:0x74 +fn_1_8338 = .text:0x00008338; // type:function size:0x1D0 +fn_1_8508 = .text:0x00008508; // type:function size:0x178 +fn_1_8680 = .text:0x00008680; // type:function size:0x2D8 +fn_1_8958 = .text:0x00008958; // type:function size:0x38 +fn_1_8990 = .text:0x00008990; // type:function size:0x138 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x1A0 +fn_1_8C68 = .text:0x00008C68; // type:function size:0x24 +fn_1_8C8C = .text:0x00008C8C; // type:function size:0x74 +fn_1_8D00 = .text:0x00008D00; // type:function size:0x74 +fn_1_8D74 = .text:0x00008D74; // type:function size:0x18 +fn_1_8D8C = .text:0x00008D8C; // type:function size:0x54 +fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x54 +fn_1_8E34 = .text:0x00008E34; // type:function size:0x1C8 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 +fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x48 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x80 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x80 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0x1A +lbl_1_data_240 = .data:0x00000240; // type:object size:0x18 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x2C +lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x50 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x10 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x10 +lbl_1_data_344 = .data:0x00000344; // type:object size:0x10 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x10 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x30 +lbl_1_data_394 = .data:0x00000394; // type:object size:0x30 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x10 +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x3C data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte +lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x18 +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m444dll/splits.txt b/config/GMPP01_00/rels/m444dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m444dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m444dll/symbols.txt b/config/GMPP01_00/rels/m444dll/symbols.txt new file mode 100644 index 00000000..df37999d --- /dev/null +++ b/config/GMPP01_00/rels/m444dll/symbols.txt @@ -0,0 +1,320 @@ +_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:0x3D0 +fn_1_470 = .text:0x00000470; // type:function size:0x3788 +fn_1_3BF8 = .text:0x00003BF8; // type:function size:0x1270 +fn_1_4E68 = .text:0x00004E68; // type:function size:0x7C4 +fn_1_562C = .text:0x0000562C; // type:function size:0x1C4 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x6F4 +fn_1_5EE4 = .text:0x00005EE4; // type:function size:0x6F4 +fn_1_65D8 = .text:0x000065D8; // type:function size:0x824 +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xBC +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0xA0 +fn_1_6F58 = .text:0x00006F58; // type:function size:0x3B4 +fn_1_730C = .text:0x0000730C; // type:function size:0xC2C +fn_1_7F38 = .text:0x00007F38; // type:function size:0x2C4 +fn_1_81FC = .text:0x000081FC; // type:function size:0x90 +fn_1_828C = .text:0x0000828C; // type:function size:0xEC +fn_1_8378 = .text:0x00008378; // type:function size:0x128 +fn_1_84A0 = .text:0x000084A0; // type:function size:0x1F8 +fn_1_8698 = .text:0x00008698; // type:function size:0x7B4 +fn_1_8E4C = .text:0x00008E4C; // type:function size:0x648 +fn_1_9494 = .text:0x00009494; // type:function size:0x894 +fn_1_9D28 = .text:0x00009D28; // type:function size:0x3B4 +fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xB70 +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x618 +fn_1_B264 = .text:0x0000B264; // type:function size:0x102C +fn_1_C290 = .text:0x0000C290; // type:function size:0x528 +fn_1_C7B8 = .text:0x0000C7B8; // type:function size:0x2F4 +fn_1_CAAC = .text:0x0000CAAC; // type:function size:0x140 +fn_1_CBEC = .text:0x0000CBEC; // type:function size:0x298 +fn_1_CE84 = .text:0x0000CE84; // type:function size:0x194 +fn_1_D018 = .text:0x0000D018; // type:function size:0x244 +fn_1_D25C = .text:0x0000D25C; // type:function size:0x3A8 +fn_1_D604 = .text:0x0000D604; // type:function size:0x290 +fn_1_D894 = .text:0x0000D894; // type:function size:0x138 +fn_1_D9CC = .text:0x0000D9CC; // type:function size:0x78 +fn_1_DA44 = .text:0x0000DA44; // type:function size:0x2C +fn_1_DA70 = .text:0x0000DA70; // type:function size:0x42C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPP01_00/rels/m445Dll/splits.txt b/config/GMPP01_00/rels/m445Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m445Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m445Dll/symbols.txt b/config/GMPP01_00/rels/m445Dll/symbols.txt new file mode 100644 index 00000000..d8326fcd --- /dev/null +++ b/config/GMPP01_00/rels/m445Dll/symbols.txt @@ -0,0 +1,173 @@ +_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:0x418 +fn_1_4B8 = .text:0x000004B8; // type:function size:0x54 +fn_1_50C = .text:0x0000050C; // type:function size:0x4 +fn_1_510 = .text:0x00000510; // type:function size:0x10 +fn_1_520 = .text:0x00000520; // type:function size:0x30 +fn_1_550 = .text:0x00000550; // type:function size:0x1308 +fn_1_1858 = .text:0x00001858; // type:function size:0x80 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x5C +fn_1_1934 = .text:0x00001934; // type:function size:0x34 +fn_1_1968 = .text:0x00001968; // type:function size:0x168 +fn_1_1AD0 = .text:0x00001AD0; // type:function size:0x3C +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x154 +fn_1_1C60 = .text:0x00001C60; // type:function size:0xF88 +fn_1_2BE8 = .text:0x00002BE8; // type:function size:0xB8 +fn_1_2CA0 = .text:0x00002CA0; // type:function size:0x1BC +fn_1_2E5C = .text:0x00002E5C; // type:function size:0xD0 +fn_1_2F2C = .text:0x00002F2C; // type:function size:0xD8 +fn_1_3004 = .text:0x00003004; // type:function size:0x84 +fn_1_3088 = .text:0x00003088; // type:function size:0x80 +fn_1_3108 = .text:0x00003108; // type:function size:0x220 +fn_1_3328 = .text:0x00003328; // type:function size:0x214 +fn_1_353C = .text:0x0000353C; // type:function size:0xD58 +fn_1_4294 = .text:0x00004294; // type:function size:0x104 +fn_1_4398 = .text:0x00004398; // type:function size:0x22C +fn_1_45C4 = .text:0x000045C4; // type:function size:0xFAC +fn_1_5570 = .text:0x00005570; // type:function size:0x74 +fn_1_55E4 = .text:0x000055E4; // type:function size:0x74 +fn_1_5658 = .text:0x00005658; // type:function size:0x9C +fn_1_56F4 = .text:0x000056F4; // type:function size:0xB68 +fn_1_625C = .text:0x0000625C; // type:function size:0x1D58 +fn_1_7FB4 = .text:0x00007FB4; // type:function size:0x360 +fn_1_8314 = .text:0x00008314; // type:function size:0x618 +fn_1_892C = .text:0x0000892C; // type:function size:0x80 +fn_1_89AC = .text:0x000089AC; // type:function size:0x60 +fn_1_8A0C = .text:0x00008A0C; // type:function size:0x334 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x40 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 data:string +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 data:string +lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 data:string +lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 data:string +lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0xE data:string +lbl_1_data_212 = .data:0x00000212; // type:object size:0xE +lbl_1_data_220 = .data:0x00000220; // type:object size:0x40 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0xF data:string +lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x28 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x230 +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x300 data:2byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x13C data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x2 data:2byte +lbl_1_bss_6E2 = .bss:0x000006E2; // type:object size:0x2 data:2byte +lbl_1_bss_6E6 = .bss:0x000006E6; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m446dll/splits.txt b/config/GMPP01_00/rels/m446dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m446dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m446dll/symbols.txt b/config/GMPP01_00/rels/m446dll/symbols.txt new file mode 100644 index 00000000..ddaa394d --- /dev/null +++ b/config/GMPP01_00/rels/m446dll/symbols.txt @@ -0,0 +1,305 @@ +_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:0x9C +fn_1_13C = .text:0x0000013C; // type:function size:0x168 +fn_1_2A4 = .text:0x000002A4; // type:function size:0x158 +fn_1_3FC = .text:0x000003FC; // type:function size:0xB8 +fn_1_4B4 = .text:0x000004B4; // type:function size:0x88 +fn_1_53C = .text:0x0000053C; // type:function size:0x41C +fn_1_958 = .text:0x00000958; // type:function size:0x220 +fn_1_B78 = .text:0x00000B78; // type:function size:0x94 +fn_1_C0C = .text:0x00000C0C; // type:function size:0x94 +fn_1_CA0 = .text:0x00000CA0; // type:function size:0xB30 +fn_1_17D0 = .text:0x000017D0; // type:function size:0x40 +fn_1_1810 = .text:0x00001810; // type:function size:0x38 +fn_1_1848 = .text:0x00001848; // type:function size:0x3C +fn_1_1884 = .text:0x00001884; // type:function size:0x3C +fn_1_18C0 = .text:0x000018C0; // type:function size:0x84 +fn_1_1944 = .text:0x00001944; // type:function size:0x64 +fn_1_19A8 = .text:0x000019A8; // type:function size:0x290 +fn_1_1C38 = .text:0x00001C38; // type:function size:0x94 +fn_1_1CCC = .text:0x00001CCC; // type:function size:0x38 +fn_1_1D04 = .text:0x00001D04; // type:function size:0x3C +fn_1_1D40 = .text:0x00001D40; // type:function size:0x3C +fn_1_1D7C = .text:0x00001D7C; // type:function size:0x34 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x10 +fn_1_1DC0 = .text:0x00001DC0; // type:function size:0x8 +fn_1_1DC8 = .text:0x00001DC8; // type:function size:0x68 +fn_1_1E30 = .text:0x00001E30; // type:function size:0x28 +fn_1_1E58 = .text:0x00001E58; // type:function size:0x44 +fn_1_1E9C = .text:0x00001E9C; // type:function size:0x3C +fn_1_1ED8 = .text:0x00001ED8; // type:function size:0x34 +fn_1_1F0C = .text:0x00001F0C; // type:function size:0x4C +fn_1_1F58 = .text:0x00001F58; // type:function size:0x3C +fn_1_1F94 = .text:0x00001F94; // type:function size:0x3C +fn_1_1FD0 = .text:0x00001FD0; // type:function size:0x68 +fn_1_2038 = .text:0x00002038; // type:function size:0x18 +fn_1_2050 = .text:0x00002050; // type:function size:0x58 +fn_1_20A8 = .text:0x000020A8; // type:function size:0x338 +fn_1_23E0 = .text:0x000023E0; // type:function size:0x27C +fn_1_265C = .text:0x0000265C; // type:function size:0xA4 +fn_1_2700 = .text:0x00002700; // type:function size:0x68 +fn_1_2768 = .text:0x00002768; // type:function size:0x68 +fn_1_27D0 = .text:0x000027D0; // type:function size:0x94 +fn_1_2864 = .text:0x00002864; // type:function size:0x98 +fn_1_28FC = .text:0x000028FC; // type:function size:0x8C +fn_1_2988 = .text:0x00002988; // type:function size:0x68 +fn_1_29F0 = .text:0x000029F0; // type:function size:0x3C +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3C +fn_1_2A68 = .text:0x00002A68; // type:function size:0x14 +fn_1_2A7C = .text:0x00002A7C; // type:function size:0x2EC +fn_1_2D68 = .text:0x00002D68; // type:function size:0x14 +fn_1_2D7C = .text:0x00002D7C; // type:function size:0x118 +fn_1_2E94 = .text:0x00002E94; // type:function size:0xA4 +fn_1_2F38 = .text:0x00002F38; // type:function size:0x100 +fn_1_3038 = .text:0x00003038; // type:function size:0x11C +fn_1_3154 = .text:0x00003154; // type:function size:0x58 +fn_1_31AC = .text:0x000031AC; // type:function size:0x2C8 +fn_1_3474 = .text:0x00003474; // type:function size:0x260 +fn_1_36D4 = .text:0x000036D4; // type:function size:0x154 +fn_1_3828 = .text:0x00003828; // type:function size:0x5C +fn_1_3884 = .text:0x00003884; // type:function size:0x30 +fn_1_38B4 = .text:0x000038B4; // type:function size:0x10 +fn_1_38C4 = .text:0x000038C4; // type:function size:0x34 +fn_1_38F8 = .text:0x000038F8; // type:function size:0x18 +fn_1_3910 = .text:0x00003910; // type:function size:0x58 +fn_1_3968 = .text:0x00003968; // type:function size:0x3C +fn_1_39A4 = .text:0x000039A4; // type:function size:0x17C +fn_1_3B20 = .text:0x00003B20; // type:function size:0xA4 +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x2C4 +fn_1_3E88 = .text:0x00003E88; // type:function size:0x11C +fn_1_3FA4 = .text:0x00003FA4; // type:function size:0x30 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x88 +fn_1_405C = .text:0x0000405C; // type:function size:0x624 +fn_1_4680 = .text:0x00004680; // type:function size:0x24 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x50 +fn_1_46F4 = .text:0x000046F4; // type:function size:0x78 +fn_1_476C = .text:0x0000476C; // type:function size:0x74 +fn_1_47E0 = .text:0x000047E0; // type:function size:0x18 +fn_1_47F8 = .text:0x000047F8; // type:function size:0x58 +fn_1_4850 = .text:0x00004850; // type:function size:0x284 +fn_1_4AD4 = .text:0x00004AD4; // type:function size:0x59C +fn_1_5070 = .text:0x00005070; // type:function size:0x11C +fn_1_518C = .text:0x0000518C; // type:function size:0x34C +fn_1_54D8 = .text:0x000054D8; // type:function size:0x144 +fn_1_561C = .text:0x0000561C; // type:function size:0x30 +fn_1_564C = .text:0x0000564C; // type:function size:0x4BC +fn_1_5B08 = .text:0x00005B08; // type:function size:0x14 +fn_1_5B1C = .text:0x00005B1C; // type:function size:0xC8 +fn_1_5BE4 = .text:0x00005BE4; // type:function size:0x14 +fn_1_5BF8 = .text:0x00005BF8; // type:function size:0xC8 +fn_1_5CC0 = .text:0x00005CC0; // type:function size:0x14 +fn_1_5CD4 = .text:0x00005CD4; // type:function size:0x154 +fn_1_5E28 = .text:0x00005E28; // type:function size:0x220 +fn_1_6048 = .text:0x00006048; // type:function size:0x1F0 +fn_1_6238 = .text:0x00006238; // type:function size:0x8C +fn_1_62C4 = .text:0x000062C4; // type:function size:0x8C +fn_1_6350 = .text:0x00006350; // type:function size:0x140 +fn_1_6490 = .text:0x00006490; // type:function size:0xBC +fn_1_654C = .text:0x0000654C; // type:function size:0xA8 +fn_1_65F4 = .text:0x000065F4; // type:function size:0x158 +fn_1_674C = .text:0x0000674C; // type:function size:0x160 +fn_1_68AC = .text:0x000068AC; // type:function size:0x4 +fn_1_68B0 = .text:0x000068B0; // type:function size:0x5C4 +fn_1_6E74 = .text:0x00006E74; // type:function size:0x24 +fn_1_6E98 = .text:0x00006E98; // type:function size:0x24 +fn_1_6EBC = .text:0x00006EBC; // type:function size:0x10 +fn_1_6ECC = .text:0x00006ECC; // type:function size:0x194 +fn_1_7060 = .text:0x00007060; // type:function size:0x10 +fn_1_7070 = .text:0x00007070; // type:function size:0x244 +fn_1_72B4 = .text:0x000072B4; // type:function size:0x18 +fn_1_72CC = .text:0x000072CC; // type:function size:0x58 +fn_1_7324 = .text:0x00007324; // type:function size:0x1A4 +fn_1_74C8 = .text:0x000074C8; // type:function size:0x1F4 +fn_1_76BC = .text:0x000076BC; // type:function size:0xE0 +fn_1_779C = .text:0x0000779C; // type:function size:0xBC +fn_1_7858 = .text:0x00007858; // type:function size:0x84 +fn_1_78DC = .text:0x000078DC; // type:function size:0x94 +fn_1_7970 = .text:0x00007970; // type:function size:0x9C +fn_1_7A0C = .text:0x00007A0C; // type:function size:0x7C +fn_1_7A88 = .text:0x00007A88; // type:function size:0x13C +fn_1_7BC4 = .text:0x00007BC4; // type:function size:0x18 +fn_1_7BDC = .text:0x00007BDC; // type:function size:0x58 +fn_1_7C34 = .text:0x00007C34; // type:function size:0x460 +fn_1_8094 = .text:0x00008094; // type:function size:0x330 +fn_1_83C4 = .text:0x000083C4; // type:function size:0xBC +fn_1_8480 = .text:0x00008480; // type:function size:0x80 +fn_1_8500 = .text:0x00008500; // type:function size:0xE0 +fn_1_85E0 = .text:0x000085E0; // type:function size:0xC +_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:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x14 +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x14 +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x28 +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0x4 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x14 +jumptable_1_data_B4 = .data:0x000000B4; // type:object size:0x30 scope:local +jumptable_1_data_E4 = .data:0x000000E4; // type:object size:0x68 scope:local +lbl_1_data_150 = .data:0x00000150; // type:object size:0xC +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x20 +jumptable_1_data_17C = .data:0x0000017C; // type:object size:0x2C scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x1F data:string +lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x21 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x1E data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x24 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 +jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x1E data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x10 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x24 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x14 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C +lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x24 +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E 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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:float +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xC data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0xC data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m447dll/splits.txt b/config/GMPP01_00/rels/m447dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m447dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m447dll/symbols.txt b/config/GMPP01_00/rels/m447dll/symbols.txt new file mode 100644 index 00000000..e191dd83 --- /dev/null +++ b/config/GMPP01_00/rels/m447dll/symbols.txt @@ -0,0 +1,309 @@ +_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:0x8C +fn_1_12C = .text:0x0000012C; // type:function size:0x8C +fn_1_1B8 = .text:0x000001B8; // type:function size:0x284 +fn_1_43C = .text:0x0000043C; // type:function size:0x54 +fn_1_490 = .text:0x00000490; // type:function size:0x10 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x10 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x94 +fn_1_544 = .text:0x00000544; // type:function size:0x264 +fn_1_7A8 = .text:0x000007A8; // type:function size:0x3B4 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x3CC +fn_1_F28 = .text:0x00000F28; // type:function size:0x134 +fn_1_105C = .text:0x0000105C; // type:function size:0x32C +fn_1_1388 = .text:0x00001388; // type:function size:0x88 +fn_1_1410 = .text:0x00001410; // type:function size:0x68 +fn_1_1478 = .text:0x00001478; // type:function size:0x2D0 +fn_1_1748 = .text:0x00001748; // type:function size:0xDC +fn_1_1824 = .text:0x00001824; // type:function size:0x54 +fn_1_1878 = .text:0x00001878; // type:function size:0x278 +fn_1_1AF0 = .text:0x00001AF0; // type:function size:0xFC +fn_1_1BEC = .text:0x00001BEC; // type:function size:0xE8 +fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x54 +fn_1_1D28 = .text:0x00001D28; // type:function size:0x5C +fn_1_1D84 = .text:0x00001D84; // type:function size:0xE0 +fn_1_1E64 = .text:0x00001E64; // type:function size:0x40 +fn_1_1EA4 = .text:0x00001EA4; // type:function size:0x10 +fn_1_1EB4 = .text:0x00001EB4; // type:function size:0x14 +fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x2C +fn_1_1EF4 = .text:0x00001EF4; // type:function size:0x9C +fn_1_1F90 = .text:0x00001F90; // type:function size:0x50 +fn_1_1FE0 = .text:0x00001FE0; // type:function size:0x8 +fn_1_1FE8 = .text:0x00001FE8; // type:function size:0x170 +fn_1_2158 = .text:0x00002158; // type:function size:0x1B8 +fn_1_2310 = .text:0x00002310; // type:function size:0x50 +fn_1_2360 = .text:0x00002360; // type:function size:0x124 +fn_1_2484 = .text:0x00002484; // type:function size:0x4 +fn_1_2488 = .text:0x00002488; // type:function size:0x150 +fn_1_25D8 = .text:0x000025D8; // type:function size:0x11C +fn_1_26F4 = .text:0x000026F4; // type:function size:0x33C +fn_1_2A30 = .text:0x00002A30; // type:function size:0x2CC +fn_1_2CFC = .text:0x00002CFC; // type:function size:0xA4 +fn_1_2DA0 = .text:0x00002DA0; // type:function size:0x384 +fn_1_3124 = .text:0x00003124; // type:function size:0x1B0 +fn_1_32D4 = .text:0x000032D4; // type:function size:0x2C +fn_1_3300 = .text:0x00003300; // type:function size:0xBC +fn_1_33BC = .text:0x000033BC; // type:function size:0xBC +fn_1_3478 = .text:0x00003478; // type:function size:0x98 +fn_1_3510 = .text:0x00003510; // type:function size:0x24 +fn_1_3534 = .text:0x00003534; // type:function size:0x24 +fn_1_3558 = .text:0x00003558; // type:function size:0x718 +fn_1_3C70 = .text:0x00003C70; // type:function size:0x22C +fn_1_3E9C = .text:0x00003E9C; // type:function size:0xDC +fn_1_3F78 = .text:0x00003F78; // type:function size:0x40 +fn_1_3FB8 = .text:0x00003FB8; // type:function size:0x33C +fn_1_42F4 = .text:0x000042F4; // type:function size:0xCC +fn_1_43C0 = .text:0x000043C0; // type:function size:0x10 +fn_1_43D0 = .text:0x000043D0; // type:function size:0x1C +fn_1_43EC = .text:0x000043EC; // type:function size:0x4C +fn_1_4438 = .text:0x00004438; // type:function size:0x6C +fn_1_44A4 = .text:0x000044A4; // type:function size:0xE0 +fn_1_4584 = .text:0x00004584; // type:function size:0xA8 +fn_1_462C = .text:0x0000462C; // type:function size:0x48 +fn_1_4674 = .text:0x00004674; // type:function size:0x8C +fn_1_4700 = .text:0x00004700; // type:function size:0x54 +fn_1_4754 = .text:0x00004754; // type:function size:0x4 +fn_1_4758 = .text:0x00004758; // type:function size:0x520 +fn_1_4C78 = .text:0x00004C78; // type:function size:0x2F8 +fn_1_4F70 = .text:0x00004F70; // type:function size:0x104 +fn_1_5074 = .text:0x00005074; // type:function size:0x218 +fn_1_528C = .text:0x0000528C; // type:function size:0x288 +fn_1_5514 = .text:0x00005514; // type:function size:0x240 +fn_1_5754 = .text:0x00005754; // type:function size:0x278 +fn_1_59CC = .text:0x000059CC; // type:function size:0x118 +fn_1_5AE4 = .text:0x00005AE4; // type:function size:0xE0 +fn_1_5BC4 = .text:0x00005BC4; // type:function size:0xA8 +fn_1_5C6C = .text:0x00005C6C; // type:function size:0xAA4 +fn_1_6710 = .text:0x00006710; // type:function size:0x9A0 +fn_1_70B0 = .text:0x000070B0; // type:function size:0xC0 +fn_1_7170 = .text:0x00007170; // type:function size:0x80 +fn_1_71F0 = .text:0x000071F0; // type:function size:0xAC +fn_1_729C = .text:0x0000729C; // type:function size:0x3E0 +fn_1_767C = .text:0x0000767C; // type:function size:0x220 +fn_1_789C = .text:0x0000789C; // type:function size:0xDC +fn_1_7978 = .text:0x00007978; // type:function size:0xB0 +fn_1_7A28 = .text:0x00007A28; // type:function size:0x38 +fn_1_7A60 = .text:0x00007A60; // type:function size:0x38 +fn_1_7A98 = .text:0x00007A98; // type:function size:0xB0 +fn_1_7B48 = .text:0x00007B48; // type:function size:0x240 +fn_1_7D88 = .text:0x00007D88; // type:function size:0x1D0 +fn_1_7F58 = .text:0x00007F58; // type:function size:0x158 +fn_1_80B0 = .text:0x000080B0; // type:function size:0x6E0 +fn_1_8790 = .text:0x00008790; // type:function size:0x220 +fn_1_89B0 = .text:0x000089B0; // type:function size:0x43C +fn_1_8DEC = .text:0x00008DEC; // type:function size:0x184 +fn_1_8F70 = .text:0x00008F70; // type:function size:0x78 +fn_1_8FE8 = .text:0x00008FE8; // type:function size:0x10 +fn_1_8FF8 = .text:0x00008FF8; // type:function size:0xF8 +fn_1_90F0 = .text:0x000090F0; // type:function size:0x10 +fn_1_9100 = .text:0x00009100; // type:function size:0x4C +fn_1_914C = .text:0x0000914C; // type:function size:0x1C8 +fn_1_9314 = .text:0x00009314; // type:function size:0x54 +fn_1_9368 = .text:0x00009368; // type:function size:0x1C4 +fn_1_952C = .text:0x0000952C; // type:function size:0x4 +fn_1_9530 = .text:0x00009530; // type:function size:0x21C +fn_1_974C = .text:0x0000974C; // type:function size:0x1C4 +fn_1_9910 = .text:0x00009910; // type:function size:0x2B0 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x120 +fn_1_9CE0 = .text:0x00009CE0; // type:function size:0x200 +fn_1_9EE0 = .text:0x00009EE0; // type:function size:0x54 +fn_1_9F34 = .text:0x00009F34; // type:function size:0x2F0 +fn_1_A224 = .text:0x0000A224; // type:function size:0x10 +fn_1_A234 = .text:0x0000A234; // type:function size:0x34 +_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:0x64 +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x58 +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x1 data:byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x144 +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x50 +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:double +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x1 data:byte +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x14 +jumptable_1_data_30 = .data:0x00000030; // type:object size:0x28 scope:local +jumptable_1_data_58 = .data:0x00000058; // type:object size:0x28 scope:local +jumptable_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA8 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x18 +lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x14 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1C +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x2C +jumptable_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 scope:local +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x1C +lbl_1_data_278 = .data:0x00000278; // type:object size:0x1C +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 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:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x1C data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1C data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x1C data:float +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m448Dll/splits.txt b/config/GMPP01_00/rels/m448Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m448Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m448Dll/symbols.txt b/config/GMPP01_00/rels/m448Dll/symbols.txt new file mode 100644 index 00000000..0ffb9d58 --- /dev/null +++ b/config/GMPP01_00/rels/m448Dll/symbols.txt @@ -0,0 +1,200 @@ +_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:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0xEC +fn_1_478 = .text:0x00000478; // type:function size:0x84 +fn_1_4FC = .text:0x000004FC; // type:function size:0xE3C +fn_1_1338 = .text:0x00001338; // type:function size:0x2FDC +fn_1_4314 = .text:0x00004314; // type:function size:0x2A94 +fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x3E4 +fn_1_718C = .text:0x0000718C; // type:function size:0xC70 +fn_1_7DFC = .text:0x00007DFC; // type:function size:0x3FC +fn_1_81F8 = .text:0x000081F8; // type:function size:0xC10 +fn_1_8E08 = .text:0x00008E08; // type:function size:0x738 +fn_1_9540 = .text:0x00009540; // type:function size:0x154 +fn_1_9694 = .text:0x00009694; // type:function size:0x4A4 +fn_1_9B38 = .text:0x00009B38; // type:function size:0x120 +_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:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 data:4byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 data:4byte +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 data:4byte +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 data:4byte +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 data:4byte +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 data:4byte +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 data:4byte +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC data:4byte +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC data:4byte +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x1 data:byte +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x28 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x2C +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x2C +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xB data:byte +lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xD +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x2C +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2C data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x58 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x8 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x20 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x2 data:2byte +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x2 data:2byte +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x8 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x8 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x8 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x10 data:float +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x1B +jumptable_1_data_210 = .data:0x00000210; // type:object size:0x2C scope:local +jumptable_1_data_23C = .data:0x0000023C; // type:object size:0x20 scope:local +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x4 data:4byte +lbl_1_data_260 = .data:0x00000260; // type:object size:0x4 data:float +lbl_1_data_264 = .data:0x00000264; // type:object size:0x4 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:float +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x24 scope:local +jumptable_1_data_294 = .data:0x00000294; // type:object size:0x20 scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x20 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xD0 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x2D0 data:4byte diff --git a/config/GMPP01_00/rels/m449Dll/splits.txt b/config/GMPP01_00/rels/m449Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m449Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m449Dll/symbols.txt b/config/GMPP01_00/rels/m449Dll/symbols.txt new file mode 100644 index 00000000..acf85bcc --- /dev/null +++ b/config/GMPP01_00/rels/m449Dll/symbols.txt @@ -0,0 +1,209 @@ +_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:0x358 +fn_1_3F8 = .text:0x000003F8; // type:function size:0x360 +fn_1_758 = .text:0x00000758; // type:function size:0x5EB8 +fn_1_6610 = .text:0x00006610; // type:function size:0x8 +fn_1_6618 = .text:0x00006618; // type:function size:0x2C +fn_1_6644 = .text:0x00006644; // type:function size:0x140 +fn_1_6784 = .text:0x00006784; // type:function size:0xCC +fn_1_6850 = .text:0x00006850; // type:function size:0x958 +fn_1_71A8 = .text:0x000071A8; // type:function size:0x39C +fn_1_7544 = .text:0x00007544; // type:function size:0x988 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0xC8 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x5A4 +fn_1_8538 = .text:0x00008538; // type:function size:0xFC0 +fn_1_94F8 = .text:0x000094F8; // type:function size:0xE0 +fn_1_95D8 = .text:0x000095D8; // type:function size:0x460 +fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C +_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:0x10 +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x34 data:4byte +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float +jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/config/GMPP01_00/rels/m450Dll/splits.txt b/config/GMPP01_00/rels/m450Dll/splits.txt new file mode 100644 index 00000000..eecefe9b --- /dev/null +++ b/config/GMPP01_00/rels/m450Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/m450Dll/main.c: + .text start:0x00000000 end:0x00029968 + .rodata start:0x00000000 end:0x00000398 + .data start:0x00000000 end:0x000017C4 + .bss start:0x00000000 end:0x00000364 diff --git a/config/GMPP01_00/rels/m450Dll/symbols.txt b/config/GMPP01_00/rels/m450Dll/symbols.txt new file mode 100644 index 00000000..feaece31 --- /dev/null +++ b/config/GMPP01_00/rels/m450Dll/symbols.txt @@ -0,0 +1,563 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x64 +fn_1_2418 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024A8; // type:function size:0x32C +fn_1_2824 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002B80; // type:function size:0x30 +fn_1_2C00 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2C1C = .text:0x00002BCC; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002D58; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002D60; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002D68; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002D70; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002D78; // type:function size:0xC +fn_1_2DD4 = .text:0x00002D84; // type:function size:0x60 +fn_1_2E34 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_39C4 = .text:0x00003974; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003D68; // type:function size:0x114 +fn_1_3ECC = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F34; // type:function size:0xA0 +fn_1_4024 = .text:0x00003FD4; // type:function size:0x9C +fn_1_40C0 = .text:0x00004070; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004E88; // type:function size:0x250 +fn_1_5128 = .text:0x000050D8; // type:function size:0x10 +fn_1_5138 = .text:0x000050E8; // type:function size:0x10 +fn_1_5148 = .text:0x000050F8; // type:function size:0x400 +fn_1_5548 = .text:0x000054F8; // type:function size:0x7C +fn_1_55C4 = .text:0x00005574; // type:function size:0x5C +fn_1_5620 = .text:0x000055D0; // type:function size:0xA4 +fn_1_56C4 = .text:0x00005674; // type:function size:0x748 +fn_1_5E0C = .text:0x00005DBC; // type:function size:0xCC +fn_1_5ED8 = .text:0x00005E88; // type:function size:0x658 +fn_1_6530 = .text:0x000064E0; // type:function size:0x108 +fn_1_6638 = .text:0x000065E8; // type:function size:0x38 +fn_1_6670 = .text:0x00006620; // type:function size:0x30 +fn_1_66A0 = .text:0x00006650; // type:function size:0x3C +fn_1_66DC = .text:0x0000668C; // type:function size:0xBC +fn_1_6798 = .text:0x00006748; // type:function size:0x260 +fn_1_69F8 = .text:0x000069A8; // type:function size:0xD0 +fn_1_6AC8 = .text:0x00006A78; // type:function size:0xC8 +fn_1_6B90 = .text:0x00006B40; // type:function size:0xD8 +fn_1_6C68 = .text:0x00006C18; // type:function size:0x48 +fn_1_6CB0 = .text:0x00006C60; // type:function size:0x7C +fn_1_6D2C = .text:0x00006CDC; // type:function size:0x3C +fn_1_6D68 = .text:0x00006D18; // type:function size:0x70 +fn_1_6DD8 = .text:0x00006D88; // type:function size:0x714 +fn_1_74EC = .text:0x0000749C; // type:function size:0x6A4 +fn_1_7B90 = .text:0x00007B40; // type:function size:0x84 +fn_1_7C14 = .text:0x00007BC4; // type:function size:0x84 +fn_1_7C98 = .text:0x00007C48; // type:function size:0xA8 +fn_1_7D40 = .text:0x00007CF0; // type:function size:0x3E0 +fn_1_8120 = .text:0x000080D0; // type:function size:0x3E0 +fn_1_8500 = .text:0x000084B0; // type:function size:0x6DC +fn_1_8BDC = .text:0x00008B8C; // type:function size:0x498 +fn_1_9074 = .text:0x00009024; // type:function size:0x64C +fn_1_96C0 = .text:0x00009670; // type:function size:0x164 +fn_1_9824 = .text:0x000097D4; // type:function size:0x380 +fn_1_9BA4 = .text:0x00009B54; // type:function size:0x3A8 +fn_1_9F4C = .text:0x00009EFC; // type:function size:0x478 +fn_1_A3C4 = .text:0x0000A374; // type:function size:0xAC +fn_1_A470 = .text:0x0000A420; // type:function size:0x190 +fn_1_A600 = .text:0x0000A5B0; // type:function size:0x1CC +fn_1_A7CC = .text:0x0000A77C; // type:function size:0x5C +fn_1_A828 = .text:0x0000A7D8; // type:function size:0x140 +fn_1_A968 = .text:0x0000A918; // type:function size:0x148 +fn_1_AAB0 = .text:0x0000AA60; // type:function size:0xD8 +fn_1_AB88 = .text:0x0000AB38; // type:function size:0x48 +fn_1_ABD0 = .text:0x0000AB80; // type:function size:0x188 +fn_1_AD58 = .text:0x0000AD08; // type:function size:0x2E98 +fn_1_DBF0 = .text:0x0000DBA0; // type:function size:0x4F8 +fn_1_E0E8 = .text:0x0000E098; // type:function size:0x90 +fn_1_E178 = .text:0x0000E128; // type:function size:0x30 +fn_1_E1A8 = .text:0x0000E158; // type:function size:0x114 +fn_1_E2BC = .text:0x0000E26C; // type:function size:0x10C +fn_1_E3C8 = .text:0x0000E378; // type:function size:0xB0 +fn_1_E478 = .text:0x0000E428; // type:function size:0x18C +fn_1_E604 = .text:0x0000E5B4; // type:function size:0x314 +fn_1_E918 = .text:0x0000E8C8; // type:function size:0x138 +fn_1_EA50 = .text:0x0000EA00; // type:function size:0x11C +fn_1_EB6C = .text:0x0000EB1C; // type:function size:0x1E0 +fn_1_ED4C = .text:0x0000ECFC; // type:function size:0x3010 +fn_1_11D5C = .text:0x00011D0C; // type:function size:0x4D8 +fn_1_12234 = .text:0x000121E4; // type:function size:0x30C +fn_1_12540 = .text:0x000124F0; // type:function size:0x80 +fn_1_125C0 = .text:0x00012570; // type:function size:0xC8 +fn_1_12688 = .text:0x00012638; // type:function size:0x294 +fn_1_1291C = .text:0x000128CC; // type:function size:0x100 +fn_1_12A1C = .text:0x000129CC; // type:function size:0x164 +fn_1_12B80 = .text:0x00012B30; // type:function size:0x1F8 +fn_1_12D78 = .text:0x00012D28; // type:function size:0x4 +fn_1_12D7C = .text:0x00012D2C; // type:function size:0xE0 +fn_1_12E5C = .text:0x00012E0C; // type:function size:0x248 +fn_1_130A4 = .text:0x00013054; // type:function size:0xD0 +fn_1_13174 = .text:0x00013124; // type:function size:0x3EC +fn_1_13560 = .text:0x00013510; // type:function size:0x1B4 +fn_1_13714 = .text:0x000136C4; // type:function size:0x29C +fn_1_139B0 = .text:0x00013960; // type:function size:0x19C +fn_1_13B4C = .text:0x00013AFC; // type:function size:0xC +fn_1_13B58 = .text:0x00013B08; // type:function size:0x38 +fn_1_13B90 = .text:0x00013B40; // type:function size:0x34 +fn_1_13BC4 = .text:0x00013B74; // type:function size:0x364 +fn_1_13F28 = .text:0x00013ED8; // type:function size:0x988 +fn_1_148B0 = .text:0x00014860; // type:function size:0x110 +fn_1_149C0 = .text:0x00014970; // type:function size:0xF8 +fn_1_14AB8 = .text:0x00014A68; // type:function size:0x110 +fn_1_14BC8 = .text:0x00014B78; // type:function size:0x60 +fn_1_14C28 = .text:0x00014BD8; // type:function size:0xC0 +fn_1_14CE8 = .text:0x00014C98; // type:function size:0x620 +fn_1_15308 = .text:0x000152B8; // type:function size:0x840 +fn_1_15B48 = .text:0x00015AF8; // type:function size:0x64 +fn_1_15BAC = .text:0x00015B5C; // type:function size:0x500 +fn_1_160AC = .text:0x0001605C; // type:function size:0x1D4 +fn_1_16280 = .text:0x00016230; // type:function size:0x94 +fn_1_16314 = .text:0x000162C4; // type:function size:0x64 +fn_1_16378 = .text:0x00016328; // type:function size:0x598 +fn_1_16910 = .text:0x000168C0; // type:function size:0x2B4 +fn_1_16BC4 = .text:0x00016B74; // type:function size:0x130 +fn_1_16CF4 = .text:0x00016CA4; // type:function size:0x4D0 +fn_1_171C4 = .text:0x00017174; // type:function size:0x19C +fn_1_17360 = .text:0x00017310; // type:function size:0x114 +fn_1_17474 = .text:0x00017424; // type:function size:0x4FC +fn_1_17970 = .text:0x00017920; // type:function size:0x24C +fn_1_17BBC = .text:0x00017B6C; // type:function size:0x868 +fn_1_18424 = .text:0x000183D4; // type:function size:0x284 +fn_1_186A8 = .text:0x00018658; // type:function size:0x888 +fn_1_18F30 = .text:0x00018EE0; // type:function size:0x37C +fn_1_192AC = .text:0x0001925C; // type:function size:0xE4 +fn_1_19390 = .text:0x00019340; // type:function size:0xC0 +fn_1_19450 = .text:0x00019400; // type:function size:0x1FC +fn_1_1964C = .text:0x000195FC; // type:function size:0x14C +fn_1_19798 = .text:0x00019748; // type:function size:0x278 +fn_1_19A10 = .text:0x000199C0; // type:function size:0x208 +fn_1_19C18 = .text:0x00019BC8; // type:function size:0xC8 +fn_1_19CE0 = .text:0x00019C90; // type:function size:0x334 +fn_1_1A014 = .text:0x00019FC4; // type:function size:0x4C +fn_1_1A060 = .text:0x0001A010; // type:function size:0x1BC +fn_1_1A21C = .text:0x0001A1CC; // type:function size:0x1D4 +fn_1_1A3F0 = .text:0x0001A3A0; // type:function size:0x284 +_prolog = .text:0x0001A624; // type:function size:0x54 scope:global +_epilog = .text:0x0001A678; // type:function size:0x4C scope:global +fn_1_1A714 = .text:0x0001A6C4; // type:function size:0x22C +fn_1_1A940 = .text:0x0001A8F0; // type:function size:0x784 +fn_1_1B0C4 = .text:0x0001B074; // type:function size:0x94 +fn_1_1B158 = .text:0x0001B108; // type:function size:0x154 +fn_1_1B2AC = .text:0x0001B25C; // type:function size:0x21C +fn_1_1B4C8 = .text:0x0001B478; // type:function size:0x48 +fn_1_1B510 = .text:0x0001B4C0; // type:function size:0x134 +fn_1_1B644 = .text:0x0001B5F4; // type:function size:0x1EC +fn_1_1B830 = .text:0x0001B7E0; // type:function size:0x830 +fn_1_1C060 = .text:0x0001C010; // type:function size:0x274 +fn_1_1C2D4 = .text:0x0001C284; // type:function size:0xC8 +fn_1_1C39C = .text:0x0001C34C; // type:function size:0x98 +fn_1_1C434 = .text:0x0001C3E4; // type:function size:0x2B0 +fn_1_1C6E4 = .text:0x0001C694; // type:function size:0x98 +fn_1_1C77C = .text:0x0001C72C; // type:function size:0x11C +fn_1_1C898 = .text:0x0001C848; // type:function size:0x18B8 +fn_1_1E150 = .text:0x0001E100; // type:function size:0x1F6C +fn_1_200BC = .text:0x0002006C; // type:function size:0xB4 +fn_1_20170 = .text:0x00020120; // type:function size:0x31C0 +fn_1_23330 = .text:0x000232E0; // type:function size:0x440 +fn_1_23770 = .text:0x00023720; // type:function size:0x530 +fn_1_23CA0 = .text:0x00023C50; // type:function size:0x980 +fn_1_24620 = .text:0x000245D0; // type:function size:0x4A08 +ObjectSetup = .text:0x00028FD8; // type:function size:0x8C0 +fn_1_298EC = .text:0x00029898; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 scope:local +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 scope:local +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0xC data:byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C +lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C data:4byte +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 data:4byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 data:float +lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 data:float +lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 data:float +lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 data:float +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 scope:local data:string +lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 scope:local data:string +lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 scope:local data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0xE scope:local data:string +jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 scope:local data:string +lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 scope:local data:string +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 scope:local data:string +lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 scope:local data:string +lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 scope:local data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1C scope:local data:string +jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local +lbl_1_data_450 = .data:0x00000450; // type:object size:0x12 scope:local data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:float +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0xC data:4byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xC data:4byte +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0xC +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0xC +lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 +lbl_1_data_504 = .data:0x00000504; // type:object size:0xC +lbl_1_data_510 = .data:0x00000510; // type:object size:0xC +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 scope:local data:string +lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 scope:local data:string +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 scope:local data:string +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 +lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 +lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 data:float +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 +lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte +lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 scope:local data:string +lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 scope:local data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x13 scope:local data:string +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C +lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 scope:local data:string +lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 scope:local data:string +lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 scope:local data:string +lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 scope:local data:string +lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 +lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 scope:local data:string +lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 scope:local data:string +lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 scope:local data:string +lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 scope:local data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x11 scope:local data:string +lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 +lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C +lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 +lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 +lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 data:float +lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 data:float +lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 +lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 +lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x14 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x14 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x28 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x28 +lbl_1_data_1064 = .data:0x00001064; // type:object size:0x28 +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x28 +lbl_1_data_10B4 = .data:0x000010B4; // type:object size:0x28 +lbl_1_data_10DC = .data:0x000010DC; // type:object size:0x28 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0x28 +lbl_1_data_112C = .data:0x0000112C; // type:object size:0x28 +lbl_1_data_1154 = .data:0x00001154; // type:object size:0x28 +lbl_1_data_117C = .data:0x0000117C; // type:object size:0x28 +lbl_1_data_11A4 = .data:0x000011A4; // type:object size:0x28 +lbl_1_data_11CC = .data:0x000011CC; // type:object size:0x28 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x10 +lbl_1_data_1204 = .data:0x00001204; // type:object size:0xC +lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC +lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC +lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC +lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 +lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 scope:local data:string +lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 scope:local data:string +lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 scope:local data:string +lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 scope:local data:string +lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 scope:local data:string +lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 scope:local data:string +lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 scope:local data:string +lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 scope:local data:string +lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 scope:local data:string +lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 scope:local data:string +lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 scope:local data:string +lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 scope:local data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x13 scope:local data:string +lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 +lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte +lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 scope:local data:string +lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 scope:local data:string +lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 scope:local data:string +lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 scope:local data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x13 scope:local data:string +lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 +lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 +lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 scope:local data:string +lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 scope:local data:string +lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 scope:local data:string +lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 scope:local data:string +lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 scope:local data:string +lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 scope:local data:string +lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 scope:local data:string +lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 scope:local data:string +lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 scope:local data:string +lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA scope:local data:string +lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE scope:local data:string +lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 scope:local data:string +lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D scope:local data:string +jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1B scope:local data:string +jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local +lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 scope:local 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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x18 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x3C data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:float +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC data:float +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x8 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0xC data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x5C data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:4byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m451Dll/splits.txt b/config/GMPP01_00/rels/m451Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m451Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m451Dll/symbols.txt b/config/GMPP01_00/rels/m451Dll/symbols.txt new file mode 100644 index 00000000..27c352fc --- /dev/null +++ b/config/GMPP01_00/rels/m451Dll/symbols.txt @@ -0,0 +1,216 @@ +_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:0x71C +fn_1_7BC = .text:0x000007BC; // type:function size:0x9C +fn_1_858 = .text:0x00000858; // type:function size:0xC0 +fn_1_918 = .text:0x00000918; // type:function size:0x214 +fn_1_B2C = .text:0x00000B2C; // type:function size:0x1038 +fn_1_1B64 = .text:0x00001B64; // type:function size:0x598 +fn_1_20FC = .text:0x000020FC; // type:function size:0xB8 +fn_1_21B4 = .text:0x000021B4; // type:function size:0xC0 +fn_1_2274 = .text:0x00002274; // type:function size:0x6C +fn_1_22E0 = .text:0x000022E0; // type:function size:0x35C +fn_1_263C = .text:0x0000263C; // type:function size:0x3F8 +fn_1_2A34 = .text:0x00002A34; // type:function size:0x21C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x2B8 +fn_1_2F08 = .text:0x00002F08; // type:function size:0xE4 +fn_1_2FEC = .text:0x00002FEC; // type:function size:0xC4 +fn_1_30B0 = .text:0x000030B0; // type:function size:0xA4 +fn_1_3154 = .text:0x00003154; // type:function size:0x670 +fn_1_37C4 = .text:0x000037C4; // type:function size:0xFA4 +fn_1_4768 = .text:0x00004768; // type:function size:0xFC +fn_1_4864 = .text:0x00004864; // type:function size:0x60 +fn_1_48C4 = .text:0x000048C4; // type:function size:0x8F0 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +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:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xC +lbl_1_data_84 = .data:0x00000084; // type:object size:0xB scope:local data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB scope:local data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB scope:local data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB scope:local data:string +lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB scope:local data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB scope:local data:string +lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB scope:local data:string +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB scope:local data:string +lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB scope:local data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0xB scope:local data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xB scope:local data:string +lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB scope:local data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0xB scope:local data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0xB scope:local data:string +lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB scope:local data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB scope:local data:string +lbl_1_data_155 = .data:0x00000155; // type:object size:0xB scope:local data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0xB scope:local data:string +lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB scope:local data:string +lbl_1_data_176 = .data:0x00000176; // type:object size:0xB scope:local data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0xB scope:local data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB scope:local data:string +lbl_1_data_197 = .data:0x00000197; // type:object size:0xB scope:local data:string +lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB scope:local data:string +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB scope:local data:string +lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB scope:local data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB scope:local data:string +lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB scope:local data:string +lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB scope:local data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB scope:local data:string +lbl_1_data_205 = .data:0x00000205; // type:object size:0xB scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xB scope:local data:string +lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB scope:local data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0xB scope:local data:string +lbl_1_data_231 = .data:0x00000231; // type:object size:0xB scope:local data:string +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0xB scope:local data:string +lbl_1_data_252 = .data:0x00000252; // type:object size:0xB scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB scope:local data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB scope:local data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB scope:local data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xB scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB scope:local data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB scope:local data:string +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB scope:local data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB scope:local data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB scope:local data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB scope:local data:string +lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB scope:local data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xB scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB scope:local data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0xB scope:local data:string +lbl_1_data_323 = .data:0x00000323; // type:object size:0xB scope:local data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB scope:local data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0xB scope:local data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0xB scope:local data:string +lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB scope:local data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB scope:local data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0xB scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0xB scope:local data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB scope:local data:string +lbl_1_data_386 = .data:0x00000386; // type:object size:0xB scope:local data:string +lbl_1_data_391 = .data:0x00000391; // type:object size:0xB scope:local data:string +lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB scope:local data:string +lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB scope:local data:string +lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB scope:local data:string +lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB scope:local data:string +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB scope:local data:string +lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB scope:local data:string +lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB scope:local data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB scope:local data:string +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB scope:local data:string +lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB scope:local data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB scope:local data:string +lbl_1_data_415 = .data:0x00000415; // type:object size:0xB scope:local data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0xB scope:local data:string +lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB scope:local data:string +lbl_1_data_436 = .data:0x00000436; // type:object size:0xB scope:local data:string +lbl_1_data_441 = .data:0x00000441; // type:object size:0xB scope:local data:string +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB scope:local data:string +lbl_1_data_457 = .data:0x00000457; // type:object size:0xD +lbl_1_data_464 = .data:0x00000464; // type:object size:0x264 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xC +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x78 data:float +lbl_1_data_74C = .data:0x0000074C; // type:object size:0xC +lbl_1_data_758 = .data:0x00000758; // type:object size:0xC +lbl_1_data_764 = .data:0x00000764; // type:object size:0xC scope:local data:string +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC scope:local data:string +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 scope:local data:string +lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 scope:local data:string +lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 scope:local data:string +lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 scope:local data:string +lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB scope:local data:string +lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x340 data:4byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x810 data:float +lbl_1_bss_B58 = .bss:0x00000B58; // type:object size:0x4 data:4byte +lbl_1_bss_B5C = .bss:0x00000B5C; // type:object size:0x4 data:4byte +lbl_1_bss_B60 = .bss:0x00000B60; // type:object size:0x4 data:4byte +lbl_1_bss_B64 = .bss:0x00000B64; // type:object size:0xA0 data:4byte +lbl_1_bss_C04 = .bss:0x00000C04; // type:object size:0xA0 data:4byte +lbl_1_bss_CA4 = .bss:0x00000CA4; // type:object size:0x4 data:4byte +lbl_1_bss_CA8 = .bss:0x00000CA8; // type:object size:0x6 +lbl_1_bss_CAE = .bss:0x00000CAE; // type:object size:0x6 data:2byte +lbl_1_bss_CB4 = .bss:0x00000CB4; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m453Dll/splits.txt b/config/GMPP01_00/rels/m453Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m453Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m453Dll/symbols.txt b/config/GMPP01_00/rels/m453Dll/symbols.txt new file mode 100644 index 00000000..5473789f --- /dev/null +++ b/config/GMPP01_00/rels/m453Dll/symbols.txt @@ -0,0 +1,282 @@ +_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:0x3A0 +fn_1_440 = .text:0x00000440; // type:function size:0x20 +fn_1_460 = .text:0x00000460; // type:function size:0x3E8 +fn_1_848 = .text:0x00000848; // type:function size:0x7B4 +fn_1_FFC = .text:0x00000FFC; // type:function size:0x60 +fn_1_105C = .text:0x0000105C; // type:function size:0x1EC +fn_1_1248 = .text:0x00001248; // type:function size:0x2C0 +fn_1_1508 = .text:0x00001508; // type:function size:0x104 +fn_1_160C = .text:0x0000160C; // type:function size:0x274 +fn_1_1880 = .text:0x00001880; // type:function size:0xA0 +fn_1_1920 = .text:0x00001920; // type:function size:0x2B8 +fn_1_1BD8 = .text:0x00001BD8; // type:function size:0x28 +fn_1_1C00 = .text:0x00001C00; // type:function size:0x3B0 +fn_1_1FB0 = .text:0x00001FB0; // type:function size:0x14C +fn_1_20FC = .text:0x000020FC; // type:function size:0x2F4 +fn_1_23F0 = .text:0x000023F0; // type:function size:0xA44 +fn_1_2E34 = .text:0x00002E34; // type:function size:0x824 +fn_1_3658 = .text:0x00003658; // type:function size:0x94 +fn_1_36EC = .text:0x000036EC; // type:function size:0x2EC +fn_1_39D8 = .text:0x000039D8; // type:function size:0x1EC +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0xE0 +fn_1_3CA4 = .text:0x00003CA4; // type:function size:0x208 +fn_1_3EAC = .text:0x00003EAC; // type:function size:0x9C +fn_1_3F48 = .text:0x00003F48; // type:function size:0x480 +fn_1_43C8 = .text:0x000043C8; // type:function size:0x54 +fn_1_441C = .text:0x0000441C; // type:function size:0x168 +fn_1_4584 = .text:0x00004584; // type:function size:0x120 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x30C +fn_1_49B0 = .text:0x000049B0; // type:function size:0x78 +fn_1_4A28 = .text:0x00004A28; // type:function size:0x11C +fn_1_4B44 = .text:0x00004B44; // type:function size:0x78 +fn_1_4BBC = .text:0x00004BBC; // type:function size:0x2D8 +fn_1_4E94 = .text:0x00004E94; // type:function size:0x2B8 +fn_1_514C = .text:0x0000514C; // type:function size:0x154 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x3E0 +fn_1_5680 = .text:0x00005680; // type:function size:0x214 +fn_1_5894 = .text:0x00005894; // type:function size:0x198 +fn_1_5A2C = .text:0x00005A2C; // type:function size:0xD8 +fn_1_5B04 = .text:0x00005B04; // type:function size:0xBC +fn_1_5BC0 = .text:0x00005BC0; // type:function size:0x33C +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x4B0 +fn_1_63AC = .text:0x000063AC; // type:function size:0x10 +fn_1_63BC = .text:0x000063BC; // type:function size:0x9C +fn_1_6458 = .text:0x00006458; // type:function size:0xA0 +fn_1_64F8 = .text:0x000064F8; // type:function size:0x260 +fn_1_6758 = .text:0x00006758; // type:function size:0x20 +fn_1_6778 = .text:0x00006778; // type:function size:0x84 +fn_1_67FC = .text:0x000067FC; // type:function size:0x4 +fn_1_6800 = .text:0x00006800; // type:function size:0x16C +fn_1_696C = .text:0x0000696C; // type:function size:0x318 +fn_1_6C84 = .text:0x00006C84; // type:function size:0x240 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x110 +fn_1_6FD4 = .text:0x00006FD4; // type:function size:0x400 +fn_1_73D4 = .text:0x000073D4; // type:function size:0x5B4 +fn_1_7988 = .text:0x00007988; // type:function size:0xFC +fn_1_7A84 = .text:0x00007A84; // type:function size:0x88 +fn_1_7B0C = .text:0x00007B0C; // type:function size:0xB4 +fn_1_7BC0 = .text:0x00007BC0; // type:function size:0x4C +fn_1_7C0C = .text:0x00007C0C; // type:function size:0x10 +fn_1_7C1C = .text:0x00007C1C; // type:function size:0x20 +fn_1_7C3C = .text:0x00007C3C; // type:function size:0x10 +fn_1_7C4C = .text:0x00007C4C; // type:function size:0xA4 +fn_1_7CF0 = .text:0x00007CF0; // type:function size:0x274 +fn_1_7F64 = .text:0x00007F64; // type:function size:0x15C +fn_1_80C0 = .text:0x000080C0; // type:function size:0x180 +fn_1_8240 = .text:0x00008240; // type:function size:0x10 +fn_1_8250 = .text:0x00008250; // type:function size:0x10 +fn_1_8260 = .text:0x00008260; // type:function size:0x5C +fn_1_82BC = .text:0x000082BC; // type:function size:0x1A0 +fn_1_845C = .text:0x0000845C; // type:function size:0x200 +fn_1_865C = .text:0x0000865C; // type:function size:0x30 +fn_1_868C = .text:0x0000868C; // type:function size:0x8CC +fn_1_8F58 = .text:0x00008F58; // type:function size:0x290 +fn_1_91E8 = .text:0x000091E8; // type:function size:0x74 +fn_1_925C = .text:0x0000925C; // type:function size:0x50 +fn_1_92AC = .text:0x000092AC; // type:function size:0x24 +fn_1_92D0 = .text:0x000092D0; // type:function size:0x30 +fn_1_9300 = .text:0x00009300; // type:function size:0x11C +fn_1_941C = .text:0x0000941C; // type:function size:0x78 +fn_1_9494 = .text:0x00009494; // type:function size:0x8C +fn_1_9520 = .text:0x00009520; // type:function size:0x164 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x9 data:byte +lbl_1_rodata_91 = .rodata:0x00000091; // type:object size:0xB data:byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x1C +lbl_1_data_BC0 = .data:0x00000BC0; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x14 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x18 +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:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m455Dll/splits.txt b/config/GMPP01_00/rels/m455Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m455Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m455Dll/symbols.txt b/config/GMPP01_00/rels/m455Dll/symbols.txt new file mode 100644 index 00000000..c63b35b3 --- /dev/null +++ b/config/GMPP01_00/rels/m455Dll/symbols.txt @@ -0,0 +1,293 @@ +_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:0x270 +fn_1_310 = .text:0x00000310; // type:function size:0x10 +fn_1_320 = .text:0x00000320; // type:function size:0x10 +fn_1_330 = .text:0x00000330; // type:function size:0x148 +fn_1_478 = .text:0x00000478; // type:function size:0x6C0 +fn_1_B38 = .text:0x00000B38; // type:function size:0x5C +fn_1_B94 = .text:0x00000B94; // type:function size:0xA4 +fn_1_C38 = .text:0x00000C38; // type:function size:0x68 +fn_1_CA0 = .text:0x00000CA0; // type:function size:0x84 +fn_1_D24 = .text:0x00000D24; // type:function size:0x6F4 +fn_1_1418 = .text:0x00001418; // type:function size:0x44 +fn_1_145C = .text:0x0000145C; // type:function size:0xBCC +fn_1_2028 = .text:0x00002028; // type:function size:0x50 +fn_1_2078 = .text:0x00002078; // type:function size:0x330 +fn_1_23A8 = .text:0x000023A8; // type:function size:0x104 +fn_1_24AC = .text:0x000024AC; // type:function size:0x5C +fn_1_2508 = .text:0x00002508; // type:function size:0x208 +fn_1_2710 = .text:0x00002710; // type:function size:0xA8 +fn_1_27B8 = .text:0x000027B8; // type:function size:0x2F0 +fn_1_2AA8 = .text:0x00002AA8; // type:function size:0x64 +fn_1_2B0C = .text:0x00002B0C; // type:function size:0x250 +fn_1_2D5C = .text:0x00002D5C; // type:function size:0x4D0 +fn_1_322C = .text:0x0000322C; // type:function size:0xB0 +fn_1_32DC = .text:0x000032DC; // type:function size:0x148 +fn_1_3424 = .text:0x00003424; // type:function size:0x70 +fn_1_3494 = .text:0x00003494; // type:function size:0x960 +fn_1_3DF4 = .text:0x00003DF4; // type:function size:0x328 +fn_1_411C = .text:0x0000411C; // type:function size:0x7C +fn_1_4198 = .text:0x00004198; // type:function size:0x82C +fn_1_49C4 = .text:0x000049C4; // type:function size:0x68 +fn_1_4A2C = .text:0x00004A2C; // type:function size:0x108 +fn_1_4B34 = .text:0x00004B34; // type:function size:0x348 +fn_1_4E7C = .text:0x00004E7C; // type:function size:0xB3C +fn_1_59B8 = .text:0x000059B8; // type:function size:0x6E8 +fn_1_60A0 = .text:0x000060A0; // type:function size:0xBC +fn_1_615C = .text:0x0000615C; // type:function size:0x450 +fn_1_65AC = .text:0x000065AC; // type:function size:0x104 +fn_1_66B0 = .text:0x000066B0; // type:function size:0x1E4 +fn_1_6894 = .text:0x00006894; // type:function size:0x4C +fn_1_68E0 = .text:0x000068E0; // type:function size:0x4C +fn_1_692C = .text:0x0000692C; // type:function size:0x158 +fn_1_6A84 = .text:0x00006A84; // type:function size:0x1F4 +fn_1_6C78 = .text:0x00006C78; // type:function size:0x50 +fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x5D0 +fn_1_7298 = .text:0x00007298; // type:function size:0xE8 +fn_1_7380 = .text:0x00007380; // type:function size:0xC8 +fn_1_7448 = .text:0x00007448; // type:function size:0x4 +fn_1_744C = .text:0x0000744C; // type:function size:0x18C +fn_1_75D8 = .text:0x000075D8; // type:function size:0xF0 +fn_1_76C8 = .text:0x000076C8; // type:function size:0x2C4 +fn_1_798C = .text:0x0000798C; // type:function size:0x54 +fn_1_79E0 = .text:0x000079E0; // type:function size:0x2B0 +fn_1_7C90 = .text:0x00007C90; // type:function size:0x408 +fn_1_8098 = .text:0x00008098; // type:function size:0x444 +fn_1_84DC = .text:0x000084DC; // type:function size:0x4 +fn_1_84E0 = .text:0x000084E0; // type:function size:0x100 +fn_1_85E0 = .text:0x000085E0; // type:function size:0x104 +fn_1_86E4 = .text:0x000086E4; // type:function size:0x2A0 +fn_1_8984 = .text:0x00008984; // type:function size:0x474 +fn_1_8DF8 = .text:0x00008DF8; // type:function size:0x11C +fn_1_8F14 = .text:0x00008F14; // type:function size:0x2BC +fn_1_91D0 = .text:0x000091D0; // type:function size:0x50 +fn_1_9220 = .text:0x00009220; // type:function size:0xB44 +fn_1_9D64 = .text:0x00009D64; // type:function size:0x104 +fn_1_9E68 = .text:0x00009E68; // type:function size:0x118 +fn_1_9F80 = .text:0x00009F80; // type:function size:0x250 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte +jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 +lbl_1_data_164 = .data:0x00000164; // type:object size:0xC +lbl_1_data_170 = .data:0x00000170; // type:object size:0x1 data:byte +lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string +lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x4C +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string +lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string +lbl_1_data_26A = .data:0x0000026A; // type:object size:0x1 data:byte +lbl_1_data_26E = .data:0x0000026E; // type:object size:0x1 data:byte +lbl_1_data_272 = .data:0x00000272; // type:object size:0x6 data:byte +lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x68 +lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 +lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x1 data:byte +lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C +lbl_1_data_670 = .data:0x00000670; // type:object size:0x24 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m456Dll/splits.txt b/config/GMPP01_00/rels/m456Dll/splits.txt new file mode 100644 index 00000000..ba1c0109 --- /dev/null +++ b/config/GMPP01_00/rels/m456Dll/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m456Dll/main.c: + .text start:0x000000A0 end:0x00002EB0 + .rodata start:0x00000000 end:0x000000F0 + .data start:0x00000000 end:0x000002E8 + .bss start:0x00000000 end:0x00000090 + +REL/m456Dll/stage.c: + .text start:0x00002EB0 end:0x00009D74 + .rodata start:0x000000F0 end:0x00000330 + .data start:0x000002E8 end:0x000007D0 + .bss start:0x00000090 end:0x000000BC diff --git a/config/GMPP01_00/rels/m456Dll/symbols.txt b/config/GMPP01_00/rels/m456Dll/symbols.txt new file mode 100644 index 00000000..b5353f63 --- /dev/null +++ b/config/GMPP01_00/rels/m456Dll/symbols.txt @@ -0,0 +1,285 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x300 +fn_1_3A0 = .text:0x000003A0; // type:function size:0x10 +fn_1_3B0 = .text:0x000003B0; // type:function size:0x10 +fn_1_3C0 = .text:0x000003C0; // type:function size:0xD8 +fn_1_498 = .text:0x00000498; // type:function size:0x74C +fn_1_BE4 = .text:0x00000BE4; // type:function size:0x5C +fn_1_C40 = .text:0x00000C40; // type:function size:0x84 +fn_1_CC4 = .text:0x00000CC4; // type:function size:0x68 +fn_1_D2C = .text:0x00000D2C; // type:function size:0x220 +fn_1_F4C = .text:0x00000F4C; // type:function size:0x84 +fn_1_FD0 = .text:0x00000FD0; // type:function size:0x2B8 +fn_1_1288 = .text:0x00001288; // type:function size:0xD8 +fn_1_1304 = .text:0x00001360; // type:function size:0xD9C +fn_1_2040 = .text:0x000020FC; // type:function size:0x50 +fn_1_2090 = .text:0x0000214C; // type:function size:0x104 +fn_1_2194 = .text:0x00002250; // type:function size:0x64 +fn_1_21F8 = .text:0x000022B4; // type:function size:0x250 +fn_1_2448 = .text:0x00002504; // type:function size:0x4D0 +fn_1_2918 = .text:0x000029D4; // type:function size:0x1AC +fn_1_2AC4 = .text:0x00002B80; // type:function size:0x330 +fn_1_2DF4 = .text:0x00002EB0; // type:function size:0x148 +fn_1_2F3C = .text:0x00002FF8; // type:function size:0x70 +fn_1_2FAC = .text:0x00003068; // type:function size:0x960 +fn_1_390C = .text:0x000039C8; // type:function size:0x328 +fn_1_3C34 = .text:0x00003CF0; // type:function size:0x7C +fn_1_3CB0 = .text:0x00003D6C; // type:function size:0x82C +fn_1_44DC = .text:0x00004598; // type:function size:0x68 +fn_1_4544 = .text:0x00004600; // type:function size:0x108 +fn_1_464C = .text:0x00004708; // type:function size:0x348 +fn_1_4994 = .text:0x00004A50; // type:function size:0xB3C +fn_1_54D0 = .text:0x0000558C; // type:function size:0x6E8 +fn_1_5BB8 = .text:0x00005C74; // type:function size:0xBC +fn_1_5C74 = .text:0x00005D30; // type:function size:0x450 +fn_1_60C4 = .text:0x00006180; // type:function size:0x104 +fn_1_61C8 = .text:0x00006284; // type:function size:0x1E4 +fn_1_63AC = .text:0x00006468; // type:function size:0x4C +fn_1_63F8 = .text:0x000064B4; // type:function size:0x4C +fn_1_6444 = .text:0x00006500; // type:function size:0x158 +fn_1_659C = .text:0x00006658; // type:function size:0x1F4 +fn_1_6790 = .text:0x0000684C; // type:function size:0x50 +fn_1_67E0 = .text:0x0000689C; // type:function size:0x5D0 +fn_1_6DB0 = .text:0x00006E6C; // type:function size:0xE8 +fn_1_6E98 = .text:0x00006F54; // type:function size:0xC8 +fn_1_6F60 = .text:0x0000701C; // type:function size:0x4 +fn_1_6F64 = .text:0x00007020; // type:function size:0x18C +fn_1_70F0 = .text:0x000071AC; // type:function size:0xF0 +fn_1_71E0 = .text:0x0000729C; // type:function size:0x2C4 +fn_1_74A4 = .text:0x00007560; // type:function size:0x54 +fn_1_74F8 = .text:0x000075B4; // type:function size:0x2B0 +fn_1_7778 = .text:0x00007864; // type:function size:0x3D8 +fn_1_7B50 = .text:0x00007C3C; // type:function size:0x444 +fn_1_7F74 = .text:0x00008080; // type:function size:0x4 +fn_1_7F78 = .text:0x00008084; // type:function size:0x100 +fn_1_8078 = .text:0x00008184; // type:function size:0x104 +fn_1_817C = .text:0x00008288; // type:function size:0x2A0 +fn_1_841C = .text:0x00008528; // type:function size:0x474 +fn_1_8890 = .text:0x0000899C; // type:function size:0x11C +fn_1_89AC = .text:0x00008AB8; // type:function size:0x2BC +fn_1_8C68 = .text:0x00008D74; // type:function size:0x50 +fn_1_8CB8 = .text:0x00008DC4; // type:function size:0xB44 +fn_1_97FC = .text:0x00009908; // type:function size:0x104 +fn_1_9900 = .text:0x00009A0C; // type:function size:0x118 +fn_1_9A18 = .text:0x00009B24; // type:function size:0x250 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 scope:local +lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x20 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x8 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x80 +lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x4 data:byte +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 scope:local data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 scope:local data:string +lbl_1_data_37A = .data:0x0000037A; // type:object size:0x4 data:byte +lbl_1_data_37E = .data:0x0000037E; // type:object size:0x4 data:byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x4 data:byte +lbl_1_data_388 = .data:0x00000388; // type:object size:0x30 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x138 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x68 +lbl_1_data_558 = .data:0x00000558; // type:object size:0xD0 +lbl_1_data_628 = .data:0x00000628; // type:object size:0xD0 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x18 +lbl_1_data_710 = .data:0x00000710; // type:object size:0x4 data:byte +lbl_1_data_714 = .data:0x00000714; // type:object size:0x6C +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x4 data:byte +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x4 data:byte +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x4 data:byte +lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 +lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +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:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x40 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x10 data:4byte +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:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m457Dll/splits.txt b/config/GMPP01_00/rels/m457Dll/splits.txt new file mode 100644 index 00000000..fe59c2cc --- /dev/null +++ b/config/GMPP01_00/rels/m457Dll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m457Dll/main.c: + .text start:0x000000A0 end:0x00007C04 + .rodata start:0x00000000 end:0x00000568 + .data start:0x00000000 end:0x000003E7 + .bss start:0x00000000 end:0x000000C8 diff --git a/config/GMPP01_00/rels/m457Dll/symbols.txt b/config/GMPP01_00/rels/m457Dll/symbols.txt new file mode 100644 index 00000000..0b08cedf --- /dev/null +++ b/config/GMPP01_00/rels/m457Dll/symbols.txt @@ -0,0 +1,177 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x2654 scope:local +WrestleMesMain = .text:0x00005318; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005538; // type:function size:0x510 scope:local +M457Main = .text:0x00005A48; // type:function size:0xB34 scope:local +M457GameSetup = .text:0x0000657C; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00007034; // type:function size:0x5F4 scope:local +M457Setup = .text:0x00007628; // type:function size:0xC0 scope:local +ObjectSetup = .text:0x000076E8; // type:function size:0x480 +M457Exit = .text:0x00007B68; // type:function size:0x9C 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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x5C +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x5C +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C scope:local data:4byte +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 scope:local data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 scope:local data:2byte +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 scope:local data:4byte +windSeNo = .data:0x000002AC; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 scope:local data:2byte +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string +jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local +jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 scope:local data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 scope:local data:float +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local +jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +m457MesEndF = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +againstBrowserF = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lightId = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +objman = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +gameState = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte +gameObj = .bss:0x00000064; // type:object size:0x4 scope:local data:4byte +playerObj = .bss:0x00000068; // type:object size:0x8 scope:local data:4byte +omViewObj = .bss:0x00000070; // type:object size:0x4 scope:local data:4byte +mainObj = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 scope:local data:4byte diff --git a/config/GMPP01_00/rels/m458Dll/splits.txt b/config/GMPP01_00/rels/m458Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m458Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m458Dll/symbols.txt b/config/GMPP01_00/rels/m458Dll/symbols.txt new file mode 100644 index 00000000..cdc7fc9a --- /dev/null +++ b/config/GMPP01_00/rels/m458Dll/symbols.txt @@ -0,0 +1,176 @@ +_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:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x3044 +fn_1_350C = .text:0x0000350C; // type:function size:0x16DC +fn_1_4BE8 = .text:0x00004BE8; // type:function size:0x15C +fn_1_4D44 = .text:0x00004D44; // type:function size:0x2D0 +fn_1_5014 = .text:0x00005014; // type:function size:0x9C8 +fn_1_59DC = .text:0x000059DC; // type:function size:0x938 +fn_1_6314 = .text:0x00006314; // type:function size:0x548 +fn_1_685C = .text:0x0000685C; // type:function size:0xC0 +fn_1_691C = .text:0x0000691C; // type:function size:0x480 +fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 +_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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte +lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x18 data:float +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_data_12E = .data:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte +lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte +lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x90 diff --git a/config/GMPP01_00/rels/m459dll/splits.txt b/config/GMPP01_00/rels/m459dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m459dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m459dll/symbols.txt b/config/GMPP01_00/rels/m459dll/symbols.txt new file mode 100644 index 00000000..ebcacb12 --- /dev/null +++ b/config/GMPP01_00/rels/m459dll/symbols.txt @@ -0,0 +1,169 @@ +_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:0x138 +fn_1_1D8 = .text:0x000001D8; // type:function size:0x468 +fn_1_640 = .text:0x00000640; // type:function size:0xFC +fn_1_73C = .text:0x0000073C; // type:function size:0x73C +fn_1_E78 = .text:0x00000E78; // type:function size:0x364 +fn_1_11DC = .text:0x000011DC; // type:function size:0x28 +fn_1_1204 = .text:0x00001204; // type:function size:0x28 +fn_1_122C = .text:0x0000122C; // type:function size:0x200 +fn_1_142C = .text:0x0000142C; // type:function size:0x8C +fn_1_14B8 = .text:0x000014B8; // type:function size:0x2C0 +fn_1_1778 = .text:0x00001778; // type:function size:0x124 +fn_1_189C = .text:0x0000189C; // type:function size:0x118 +fn_1_19B4 = .text:0x000019B4; // type:function size:0x4C +fn_1_1A00 = .text:0x00001A00; // type:function size:0x5DC +fn_1_1FDC = .text:0x00001FDC; // type:function size:0x68 +fn_1_2044 = .text:0x00002044; // type:function size:0x168 +fn_1_21AC = .text:0x000021AC; // type:function size:0x200 +fn_1_23AC = .text:0x000023AC; // type:function size:0x21C +fn_1_25C8 = .text:0x000025C8; // type:function size:0x200 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x168 +fn_1_2930 = .text:0x00002930; // type:function size:0x1F4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x3F4 +fn_1_2F18 = .text:0x00002F18; // type:function size:0xEC +fn_1_3004 = .text:0x00003004; // type:function size:0x388 +fn_1_338C = .text:0x0000338C; // type:function size:0x374 +fn_1_3700 = .text:0x00003700; // type:function size:0xA60 +fn_1_4160 = .text:0x00004160; // type:function size:0xB0 +fn_1_4210 = .text:0x00004210; // type:function size:0x104 +fn_1_4314 = .text:0x00004314; // type:function size:0x21C +fn_1_4530 = .text:0x00004530; // type:function size:0xBC +fn_1_45EC = .text:0x000045EC; // type:function size:0x178 +fn_1_4764 = .text:0x00004764; // type:function size:0x80 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x6C +fn_1_4850 = .text:0x00004850; // type:function size:0x94 +fn_1_48E4 = .text:0x000048E4; // type:function size:0x190 +fn_1_4A74 = .text:0x00004A74; // type:function size:0xF4 +fn_1_4B68 = .text:0x00004B68; // type:function size:0xB4 +fn_1_4C1C = .text:0x00004C1C; // type:function size:0xB4 +fn_1_4CD0 = .text:0x00004CD0; // type:function size:0x178 +fn_1_4E48 = .text:0x00004E48; // type:function size:0x10 +fn_1_4E58 = .text:0x00004E58; // type:function size:0x20 +fn_1_4E78 = .text:0x00004E78; // type:function size:0x14 +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x14 +fn_1_4EA0 = .text:0x00004EA0; // type:function size:0xE0 +fn_1_4F80 = .text:0x00004F80; // type:function size:0x20 +fn_1_4FA0 = .text:0x00004FA0; // type:function size:0x1C +fn_1_4FBC = .text:0x00004FBC; // type:function size:0x310 +fn_1_52CC = .text:0x000052CC; // type:function size:0x18 +fn_1_52E4 = .text:0x000052E4; // type:function size:0x10 +fn_1_52F4 = .text:0x000052F4; // type:function size:0x10 +fn_1_5304 = .text:0x00005304; // type:function size:0x4C +fn_1_5350 = .text:0x00005350; // type:function size:0x134 +fn_1_5484 = .text:0x00005484; // type:function size:0xDC +fn_1_5560 = .text:0x00005560; // type:function size:0x44 +fn_1_55A4 = .text:0x000055A4; // type:function size:0x4C8 +fn_1_5A6C = .text:0x00005A6C; // type:function size:0x3C4 +fn_1_5E30 = .text:0x00005E30; // type:function size:0x70 +fn_1_5EA0 = .text:0x00005EA0; // type:function size:0x94 +fn_1_5F34 = .text:0x00005F34; // type:function size:0x44 +fn_1_5F78 = .text:0x00005F78; // type:function size:0x214 +fn_1_618C = .text:0x0000618C; // type:function size:0x2C0 +fn_1_644C = .text:0x0000644C; // type:function size:0x128 +_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:0x30 scope:local +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 scope:local +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 scope:local +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:wstring +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 scope:local +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 scope:local +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 scope:local +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 scope:local +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 scope:local +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 scope:local +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 scope:local +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1D +jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local +lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x18 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x50 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x550 data:4byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x7C data:float +lbl_1_bss_698 = .bss:0x00000698; // type:object size:0x4C data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m460Dll/splits.txt b/config/GMPP01_00/rels/m460Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m460Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m460Dll/symbols.txt b/config/GMPP01_00/rels/m460Dll/symbols.txt new file mode 100644 index 00000000..a52ca026 --- /dev/null +++ b/config/GMPP01_00/rels/m460Dll/symbols.txt @@ -0,0 +1,298 @@ +_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:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x128 +fn_1_5F0 = .text:0x000005F0; // type:function size:0x20C +fn_1_7FC = .text:0x000007FC; // type:function size:0x14C +fn_1_948 = .text:0x00000948; // type:function size:0x434 +fn_1_D7C = .text:0x00000D7C; // type:function size:0x470 +fn_1_11EC = .text:0x000011EC; // type:function size:0x35C +fn_1_1548 = .text:0x00001548; // type:function size:0x434 +fn_1_197C = .text:0x0000197C; // type:function size:0x6A0 +fn_1_201C = .text:0x0000201C; // type:function size:0x4D8 +fn_1_24F4 = .text:0x000024F4; // type:function size:0x70 +fn_1_2564 = .text:0x00002564; // type:function size:0x800 +fn_1_2D64 = .text:0x00002D64; // type:function size:0xC +fn_1_2D70 = .text:0x00002D70; // type:function size:0x55C +fn_1_32CC = .text:0x000032CC; // type:function size:0xB0 +fn_1_337C = .text:0x0000337C; // type:function size:0x274 +fn_1_35F0 = .text:0x000035F0; // type:function size:0x28 +fn_1_3618 = .text:0x00003618; // type:function size:0x5A8 +fn_1_3BC0 = .text:0x00003BC0; // type:function size:0x2A8 +fn_1_3E68 = .text:0x00003E68; // type:function size:0x14 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x14 +fn_1_3E90 = .text:0x00003E90; // type:function size:0x9C +fn_1_3F2C = .text:0x00003F2C; // type:function size:0x9C +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x68 +fn_1_4030 = .text:0x00004030; // type:function size:0x6C +fn_1_409C = .text:0x0000409C; // type:function size:0x98 +fn_1_4134 = .text:0x00004134; // type:function size:0x18 +fn_1_414C = .text:0x0000414C; // type:function size:0x18 +fn_1_4164 = .text:0x00004164; // type:function size:0x18 +fn_1_417C = .text:0x0000417C; // type:function size:0x18 +fn_1_4194 = .text:0x00004194; // type:function size:0x8 +fn_1_419C = .text:0x0000419C; // type:function size:0x18 +fn_1_41B4 = .text:0x000041B4; // type:function size:0x40 +fn_1_41F4 = .text:0x000041F4; // type:function size:0x30 +fn_1_4224 = .text:0x00004224; // type:function size:0x30 +fn_1_4254 = .text:0x00004254; // type:function size:0x30 +fn_1_4284 = .text:0x00004284; // type:function size:0x38 +fn_1_42BC = .text:0x000042BC; // type:function size:0x34 +fn_1_42F0 = .text:0x000042F0; // type:function size:0x18 +fn_1_4308 = .text:0x00004308; // type:function size:0x1C +fn_1_4324 = .text:0x00004324; // type:function size:0x18 +fn_1_433C = .text:0x0000433C; // type:function size:0x1C +fn_1_4358 = .text:0x00004358; // type:function size:0x18 +fn_1_4370 = .text:0x00004370; // type:function size:0x18 +fn_1_4388 = .text:0x00004388; // type:function size:0x208 +fn_1_4590 = .text:0x00004590; // type:function size:0x240 +fn_1_47D0 = .text:0x000047D0; // type:function size:0x11C +fn_1_48EC = .text:0x000048EC; // type:function size:0xB4 +fn_1_49A0 = .text:0x000049A0; // type:function size:0x244 +fn_1_4BE4 = .text:0x00004BE4; // type:function size:0x24 +fn_1_4C08 = .text:0x00004C08; // type:function size:0x364 +fn_1_4F6C = .text:0x00004F6C; // type:function size:0x1FC +fn_1_5168 = .text:0x00005168; // type:function size:0x484 +fn_1_55EC = .text:0x000055EC; // type:function size:0x1EC +fn_1_57D8 = .text:0x000057D8; // type:function size:0xF0 +fn_1_58C8 = .text:0x000058C8; // type:function size:0x14C +fn_1_5A14 = .text:0x00005A14; // type:function size:0x274 +fn_1_5C88 = .text:0x00005C88; // type:function size:0x58 +fn_1_5CE0 = .text:0x00005CE0; // type:function size:0x18C +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x74 +fn_1_5EE0 = .text:0x00005EE0; // type:function size:0x1D0 +fn_1_60B0 = .text:0x000060B0; // type:function size:0x144 +fn_1_61F4 = .text:0x000061F4; // type:function size:0x5C0 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x60 +fn_1_6814 = .text:0x00006814; // type:function size:0x4 +fn_1_6818 = .text:0x00006818; // type:function size:0x3E8 +fn_1_6C00 = .text:0x00006C00; // type:function size:0x7F8 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x2CC +fn_1_76C4 = .text:0x000076C4; // type:function size:0x60 +fn_1_7724 = .text:0x00007724; // type:function size:0x6C +fn_1_7790 = .text:0x00007790; // type:function size:0x404 +fn_1_7B94 = .text:0x00007B94; // type:function size:0x214 +fn_1_7DA8 = .text:0x00007DA8; // type:function size:0xDF8 +fn_1_8BA0 = .text:0x00008BA0; // type:function size:0xD8 +fn_1_8C78 = .text:0x00008C78; // type:function size:0x34 +fn_1_8CAC = .text:0x00008CAC; // type:function size:0x28C +fn_1_8F38 = .text:0x00008F38; // type:function size:0x74 +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x50 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x24 +fn_1_9020 = .text:0x00009020; // type:function size:0x30 +fn_1_9050 = .text:0x00009050; // type:function size:0x11C +fn_1_916C = .text:0x0000916C; // type:function size:0x78 +fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C +fn_1_9270 = .text:0x00009270; // type:function size:0x164 +_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:0xC scope:local data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x1A +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 +lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 +jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x14 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x100 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x40 +lbl_1_data_328 = .data:0x00000328; // type:object size:0xC +lbl_1_data_334 = .data:0x00000334; // type:object size:0xC +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x9 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte +lbl_1_data_380 = .data:0x00000380; // type:object size:0xC +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x6 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m461Dll/splits.txt b/config/GMPP01_00/rels/m461Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m461Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m461Dll/symbols.txt b/config/GMPP01_00/rels/m461Dll/symbols.txt new file mode 100644 index 00000000..f3be51a3 --- /dev/null +++ b/config/GMPP01_00/rels/m461Dll/symbols.txt @@ -0,0 +1,223 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0x64 +fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C +fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 +fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C +fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 +fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 +fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 +fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 +fn_1_2D78 = .text:0x00002D78; // type:function size:0xC +fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 +fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_3974 = .text:0x00003974; // type:function size:0x2B0 +fn_1_3C24 = .text:0x00003C24; // type:function size:0xD8 +fn_1_3CFC = .text:0x00003CFC; // type:function size:0x114 +fn_1_3E10 = .text:0x00003E10; // type:function size:0xB8 +fn_1_3EC8 = .text:0x00003EC8; // type:function size:0xA0 +fn_1_3F68 = .text:0x00003F68; // type:function size:0x9C +fn_1_4004 = .text:0x00004004; // type:function size:0xDC8 +fn_1_4DCC = .text:0x00004DCC; // type:function size:0x250 +fn_1_501C = .text:0x0000501C; // type:function size:0x10 +fn_1_502C = .text:0x0000502C; // type:function size:0x10 +_prolog = .text:0x0000503C; // type:function size:0x54 scope:global +_epilog = .text:0x00005090; // type:function size:0x4C scope:global +fn_1_50DC = .text:0x000050DC; // type:function size:0x308 +fn_1_53E4 = .text:0x000053E4; // type:function size:0xF0 +fn_1_54D4 = .text:0x000054D4; // type:function size:0x36C +fn_1_5840 = .text:0x00005840; // type:function size:0x1E8 +fn_1_5A28 = .text:0x00005A28; // type:function size:0x178 +fn_1_5BA0 = .text:0x00005BA0; // type:function size:0xE0C +fn_1_69AC = .text:0x000069AC; // type:function size:0x928 +fn_1_72D4 = .text:0x000072D4; // type:function size:0x288 +fn_1_755C = .text:0x0000755C; // type:function size:0x11C +fn_1_7678 = .text:0x00007678; // type:function size:0x40C +fn_1_7A84 = .text:0x00007A84; // type:function size:0x1230 +fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x45C +fn_1_9110 = .text:0x00009110; // type:function size:0x408 +fn_1_9518 = .text:0x00009518; // type:function size:0x1B8 +fn_1_96D0 = .text:0x000096D0; // type:function size:0x130 +fn_1_9800 = .text:0x00009800; // type:function size:0x450 +fn_1_9C50 = .text:0x00009C50; // type:function size:0x248 +fn_1_9E98 = .text:0x00009E98; // type:function size:0xEE8 +fn_1_AD80 = .text:0x0000AD80; // type:function size:0x458 +fn_1_B1D8 = .text:0x0000B1D8; // type:function size:0x7F8 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0xF14 +fn_1_C8E4 = .text:0x0000C8E4; // type:function size:0x240 +fn_1_CB24 = .text:0x0000CB24; // type:function size:0xB5C +fn_1_D680 = .text:0x0000D680; // type:function size:0xD0 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0xC data:4byte +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0xC +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xC data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xC +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0xC +lbl_1_data_100 = .data:0x00000100; // type:object size:0x4 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0xC +lbl_1_data_11C = .data:0x0000011C; // type:object size:0xC +lbl_1_data_128 = .data:0x00000128; // type:object size:0xA0 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xC +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xC +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x50 data:float +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0xC data:4byte +lbl_1_data_270 = .data:0x00000270; // type:object size:0x80 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x30 +lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string +lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string +lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1C +jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x10 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x50 +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x100 +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x40 data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x4 data:float +lbl_1_bss_1F0 = .bss:0x000001F0; // type:object size:0x4 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x2 data:2byte +lbl_1_bss_1FA = .bss:0x000001FA; // type:object size:0x2 data:2byte +lbl_1_bss_1FC = .bss:0x000001FC; // type:object size:0x4 data:4byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x4 data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0x4 data:4byte +lbl_1_bss_208 = .bss:0x00000208; // type:object size:0xC data:4byte +lbl_1_bss_214 = .bss:0x00000214; // type:object size:0xC data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0xC data:4byte +lbl_1_bss_22C = .bss:0x0000022C; // type:object size:0xC data:4byte +lbl_1_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x18 data:4byte +lbl_1_bss_254 = .bss:0x00000254; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m462Dll/splits.txt b/config/GMPP01_00/rels/m462Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m462Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m462Dll/symbols.txt b/config/GMPP01_00/rels/m462Dll/symbols.txt new file mode 100644 index 00000000..8b39ae68 --- /dev/null +++ b/config/GMPP01_00/rels/m462Dll/symbols.txt @@ -0,0 +1,144 @@ +_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:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x1014 +fn_1_14B4 = .text:0x000014B4; // type:function size:0x80 +fn_1_1534 = .text:0x00001534; // type:function size:0x80 +fn_1_15B4 = .text:0x000015B4; // type:function size:0x80 +fn_1_1634 = .text:0x00001634; // type:function size:0xC4 +fn_1_16F8 = .text:0x000016F8; // type:function size:0x54 +fn_1_174C = .text:0x0000174C; // type:function size:0x54 +fn_1_17A0 = .text:0x000017A0; // type:function size:0xE0 +fn_1_1880 = .text:0x00001880; // type:function size:0x354 +fn_1_1BD4 = .text:0x00001BD4; // type:function size:0x23C +fn_1_1E10 = .text:0x00001E10; // type:function size:0x11CC +fn_1_2FDC = .text:0x00002FDC; // type:function size:0x14FC +fn_1_44D8 = .text:0x000044D8; // type:function size:0x16C +fn_1_4644 = .text:0x00004644; // type:function size:0x580 +fn_1_4BC4 = .text:0x00004BC4; // type:function size:0x894 +fn_1_5458 = .text:0x00005458; // type:function size:0x4F0 +fn_1_5948 = .text:0x00005948; // type:function size:0x498 +fn_1_5DE0 = .text:0x00005DE0; // type:function size:0x498 +fn_1_6278 = .text:0x00006278; // type:function size:0x74 +fn_1_62EC = .text:0x000062EC; // type:function size:0x7C +fn_1_6368 = .text:0x00006368; // type:function size:0x48 +fn_1_63B0 = .text:0x000063B0; // type:function size:0x48 +fn_1_63F8 = .text:0x000063F8; // type:function size:0x1D4 +fn_1_65CC = .text:0x000065CC; // type:function size:0x220 +fn_1_67EC = .text:0x000067EC; // type:function size:0x104 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x70 +fn_1_6960 = .text:0x00006960; // type:function size:0x5C +fn_1_69BC = .text:0x000069BC; // type:function size:0x137C +fn_1_7D38 = .text:0x00007D38; // type:function size:0x4 +fn_1_7D3C = .text:0x00007D3C; // type:function size:0x60 +fn_1_7D9C = .text:0x00007D9C; // type:function size:0x3B4 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x48 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2D0 +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x98 data:float +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x4 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_bss_3E0 = .bss:0x000003E0; // type:object size:0x4 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0x4 data:4byte +lbl_1_bss_3E8 = .bss:0x000003E8; // type:object size:0x2 data:2byte +lbl_1_bss_3EA = .bss:0x000003EA; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m463Dll/splits.txt b/config/GMPP01_00/rels/m463Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m463Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m463Dll/symbols.txt b/config/GMPP01_00/rels/m463Dll/symbols.txt new file mode 100644 index 00000000..96b91d06 --- /dev/null +++ b/config/GMPP01_00/rels/m463Dll/symbols.txt @@ -0,0 +1,164 @@ +_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:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x2D9C +fn_1_3264 = .text:0x00003264; // type:function size:0x1210 +fn_1_4474 = .text:0x00004474; // type:function size:0x184 +fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA4 +fn_1_539C = .text:0x0000539C; // type:function size:0x4B0 +fn_1_584C = .text:0x0000584C; // type:function size:0x854 +fn_1_60A0 = .text:0x000060A0; // type:function size:0x98 +fn_1_6138 = .text:0x00006138; // type:function size:0x460 +fn_1_6598 = .text:0x00006598; // type:function size:0x11C +_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:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 +lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte +lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:float +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float +jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte +lbl_1_bss_51C = .bss:0x0000051C; // type:object size:0x90 diff --git a/config/GMPP01_00/rels/mentDll/splits.txt b/config/GMPP01_00/rels/mentDll/splits.txt new file mode 100644 index 00000000..6f4f419c --- /dev/null +++ b/config/GMPP01_00/rels/mentDll/splits.txt @@ -0,0 +1,19 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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 + .data start:0x00000000 end:0x000000D8 + .bss start:0x00000000 end:0x00000008 + +REL/mentDll/main.c: + .text start:0x0000658C end:0x000238C4 + .rodata start:0x000000E8 end:0x00000520 + .data start:0x000000D8 end:0x000006D0 + .bss start:0x00000008 end:0x000036C4 diff --git a/config/GMPP01_00/rels/mentDll/symbols.txt b/config/GMPP01_00/rels/mentDll/symbols.txt new file mode 100644 index 00000000..a6cdecf3 --- /dev/null +++ b/config/GMPP01_00/rels/mentDll/symbols.txt @@ -0,0 +1,441 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +_prolog = .text:0x000000A4; // type:function size:0x54 scope:global +_epilog = .text:0x000000F8; // type:function size:0x4C scope:global +fn_1_144 = .text:0x00000144; // type:function size:0xC8 +fn_1_20C = .text:0x0000020C; // type:function size:0x28 +fn_1_234 = .text:0x00000234; // type:function size:0x20 +fn_1_254 = .text:0x00000254; // type:function size:0xD8 +fn_1_32C = .text:0x0000032C; // type:function size:0xC8 +fn_1_3F4 = .text:0x000003F4; // type:function size:0xBC +fn_1_4B0 = .text:0x000004B0; // type:function size:0x28 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x20 +fn_1_4F8 = .text:0x000004F8; // type:function size:0x14 +fn_1_50C = .text:0x0000050C; // type:function size:0xDC +fn_1_5E8 = .text:0x000005E8; // type:function size:0xE8 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x24 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xA48 +fn_1_113C = .text:0x0000113C; // type:function size:0x2F8 +fn_1_1434 = .text:0x00001434; // type:function size:0x218 +fn_1_164C = .text:0x0000164C; // type:function size:0x60 +fn_1_16AC = .text:0x000016AC; // type:function size:0x68 +fn_1_1714 = .text:0x00001714; // type:function size:0x90 +fn_1_17A4 = .text:0x000017A4; // type:function size:0x134 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x50 +fn_1_1928 = .text:0x00001928; // type:function size:0x40 +fn_1_1968 = .text:0x00001968; // type:function size:0xF4 +fn_1_1A5C = .text:0x00001A5C; // type:function size:0x37C +fn_1_1DD8 = .text:0x00001DD8; // type:function size:0x37C +fn_1_2154 = .text:0x00002154; // type:function size:0x1C4 +fn_1_2318 = .text:0x00002318; // type:function size:0x54 +fn_1_236C = .text:0x0000236C; // type:function size:0x3E4 +fn_1_2750 = .text:0x00002750; // type:function size:0xB8 +fn_1_2808 = .text:0x00002808; // type:function size:0x3C +fn_1_2844 = .text:0x00002844; // type:function size:0x120 +fn_1_2964 = .text:0x00002964; // type:function size:0x3C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x44 +fn_1_29E4 = .text:0x000029E4; // type:function size:0x26C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x26C +fn_1_2EBC = .text:0x00002EBC; // type:function size:0x27C +fn_1_3138 = .text:0x00003138; // type:function size:0x2B4 +fn_1_33EC = .text:0x000033EC; // type:function size:0x46C +fn_1_3858 = .text:0x00003858; // type:function size:0x454 +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x48C +fn_1_4138 = .text:0x00004138; // type:function size:0x658 +fn_1_4790 = .text:0x00004790; // type:function size:0x4C4 +fn_1_4C54 = .text:0x00004C54; // type:function size:0x4FC +fn_1_5150 = .text:0x00005150; // type:function size:0x6C8 +fn_1_5818 = .text:0x00005818; // type:function size:0x188 +fn_1_59A0 = .text:0x000059A0; // type:function size:0x1B0 +fn_1_5B50 = .text:0x00005B50; // type:function size:0xB8 +fn_1_5C08 = .text:0x00005C08; // type:function size:0xD4 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x5C +fn_1_5D38 = .text:0x00005D38; // type:function size:0x7FC +fn_1_6534 = .text:0x00006534; // type:function size:0x58 +fn_1_658C = .text:0x0000658C; // type:function size:0x6C0 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x4D8 +fn_1_7124 = .text:0x00007124; // type:function size:0xF4 +fn_1_7218 = .text:0x00007218; // type:function size:0xEC +fn_1_7304 = .text:0x00007304; // type:function size:0x380 +fn_1_7684 = .text:0x00007684; // type:function size:0x13C +fn_1_77C0 = .text:0x000077C0; // type:function size:0x98 +fn_1_7858 = .text:0x00007858; // type:function size:0xA8 +fn_1_7900 = .text:0x00007900; // type:function size:0x114 +fn_1_7A14 = .text:0x00007A14; // type:function size:0x794 +fn_1_81A8 = .text:0x000081A8; // type:function size:0x30 +fn_1_81D8 = .text:0x000081D8; // type:function size:0x18 +fn_1_81F0 = .text:0x000081F0; // type:function size:0x5C +fn_1_824C = .text:0x0000824C; // type:function size:0x180 +fn_1_83CC = .text:0x000083CC; // type:function size:0x1FC +fn_1_85C8 = .text:0x000085C8; // type:function size:0x2DC +fn_1_88A4 = .text:0x000088A4; // type:function size:0x29C +fn_1_8B40 = .text:0x00008B40; // type:function size:0x28 +fn_1_8B68 = .text:0x00008B68; // type:function size:0x3DC +fn_1_8F44 = .text:0x00008F44; // type:function size:0x54 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x20 +fn_1_8FB8 = .text:0x00008FB8; // type:function size:0x314 +fn_1_92CC = .text:0x000092CC; // type:function size:0x618 +fn_1_98E4 = .text:0x000098E4; // type:function size:0xC8 +fn_1_99AC = .text:0x000099AC; // type:function size:0x20 +fn_1_99CC = .text:0x000099CC; // type:function size:0x6D8 +fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x20 +fn_1_A0C4 = .text:0x0000A0C4; // type:function size:0x2D8 +fn_1_A39C = .text:0x0000A39C; // type:function size:0x20 +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x5D4 +fn_1_A990 = .text:0x0000A990; // type:function size:0x20 +fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x3C8 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x30C +fn_1_B084 = .text:0x0000B084; // type:function size:0x5D0 +fn_1_B654 = .text:0x0000B654; // type:function size:0xB20 +fn_1_C174 = .text:0x0000C174; // type:function size:0x1E0 +fn_1_C354 = .text:0x0000C354; // type:function size:0xEC +fn_1_C440 = .text:0x0000C440; // type:function size:0x78 +fn_1_C4B8 = .text:0x0000C4B8; // type:function size:0x62C +fn_1_CAE4 = .text:0x0000CAE4; // type:function size:0x288 +fn_1_CD6C = .text:0x0000CD6C; // type:function size:0x20 +fn_1_CD8C = .text:0x0000CD8C; // type:function size:0x200 +fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x384 +fn_1_D310 = .text:0x0000D310; // type:function size:0x20 +fn_1_D330 = .text:0x0000D330; // type:function size:0x20 +fn_1_D350 = .text:0x0000D350; // type:function size:0x2E4 +fn_1_D634 = .text:0x0000D634; // type:function size:0x82C +fn_1_DE60 = .text:0x0000DE60; // type:function size:0x17C +fn_1_DFDC = .text:0x0000DFDC; // type:function size:0x268 +fn_1_E244 = .text:0x0000E244; // type:function size:0x70 +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x148 +fn_1_E3FC = .text:0x0000E3FC; // type:function size:0x90 +fn_1_E48C = .text:0x0000E48C; // type:function size:0x1C8 +fn_1_E654 = .text:0x0000E654; // type:function size:0xC8 +fn_1_E71C = .text:0x0000E71C; // type:function size:0x158 +fn_1_E874 = .text:0x0000E874; // type:function size:0xFC8 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x670 +fn_1_FEAC = .text:0x0000FEAC; // type:function size:0x388 +fn_1_10234 = .text:0x00010234; // type:function size:0x308 +fn_1_1053C = .text:0x0001053C; // type:function size:0x7C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x39C +fn_1_10954 = .text:0x00010954; // type:function size:0x308 +fn_1_10C5C = .text:0x00010C5C; // type:function size:0x7C +fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x39C +fn_1_11074 = .text:0x00011074; // type:function size:0x2F4 +fn_1_11368 = .text:0x00011368; // type:function size:0x138 +fn_1_114A0 = .text:0x000114A0; // type:function size:0x74 +fn_1_11514 = .text:0x00011514; // type:function size:0x1E0 +fn_1_116F4 = .text:0x000116F4; // type:function size:0x158 +fn_1_1184C = .text:0x0001184C; // type:function size:0xBC +fn_1_11908 = .text:0x00011908; // type:function size:0x1C8 +fn_1_11AD0 = .text:0x00011AD0; // type:function size:0x2D4 +fn_1_11DA4 = .text:0x00011DA4; // type:function size:0x434 +fn_1_121D8 = .text:0x000121D8; // type:function size:0x624 +fn_1_127FC = .text:0x000127FC; // type:function size:0x210 +fn_1_12A0C = .text:0x00012A0C; // type:function size:0x434 +fn_1_12E40 = .text:0x00012E40; // type:function size:0x508 +fn_1_13348 = .text:0x00013348; // type:function size:0x160 +fn_1_134A8 = .text:0x000134A8; // type:function size:0x1E4 +fn_1_1368C = .text:0x0001368C; // type:function size:0x64 +fn_1_136F0 = .text:0x000136F0; // type:function size:0xB4 +fn_1_137A4 = .text:0x000137A4; // type:function size:0x1CC +fn_1_13970 = .text:0x00013970; // type:function size:0x3F0 +fn_1_13D60 = .text:0x00013D60; // type:function size:0x8C +fn_1_13DEC = .text:0x00013DEC; // type:function size:0xF0 +fn_1_13EDC = .text:0x00013EDC; // type:function size:0x8C +fn_1_13F68 = .text:0x00013F68; // type:function size:0xF0 +fn_1_14058 = .text:0x00014058; // type:function size:0xF0 +fn_1_14148 = .text:0x00014148; // type:function size:0xF0 +fn_1_14238 = .text:0x00014238; // type:function size:0xF0 +fn_1_14328 = .text:0x00014328; // type:function size:0xF0 +fn_1_14418 = .text:0x00014418; // type:function size:0x2B8 +fn_1_146D0 = .text:0x000146D0; // type:function size:0xF0 +fn_1_147C0 = .text:0x000147C0; // type:function size:0xF0 +fn_1_148B0 = .text:0x000148B0; // type:function size:0xF0 +fn_1_149A0 = .text:0x000149A0; // type:function size:0x8C +fn_1_14A2C = .text:0x00014A2C; // type:function size:0x8C +fn_1_14AB8 = .text:0x00014AB8; // type:function size:0xF0 +fn_1_14BA8 = .text:0x00014BA8; // type:function size:0x138 +fn_1_14CE0 = .text:0x00014CE0; // type:function size:0x3B8 +fn_1_15098 = .text:0x00015098; // type:function size:0x120 +fn_1_151B8 = .text:0x000151B8; // type:function size:0x798 +fn_1_15950 = .text:0x00015950; // type:function size:0x364 +fn_1_15CB4 = .text:0x00015CB4; // type:function size:0x5EC +fn_1_162A0 = .text:0x000162A0; // type:function size:0x1EC +fn_1_1648C = .text:0x0001648C; // type:function size:0x6DC +fn_1_16B68 = .text:0x00016B68; // type:function size:0x894 +fn_1_173FC = .text:0x000173FC; // type:function size:0x518 +fn_1_17914 = .text:0x00017914; // type:function size:0xC8 +fn_1_179DC = .text:0x000179DC; // type:function size:0x2EC +fn_1_17CC8 = .text:0x00017CC8; // type:function size:0x454 +fn_1_1811C = .text:0x0001811C; // type:function size:0x3F0 +fn_1_1850C = .text:0x0001850C; // type:function size:0x220 +fn_1_1872C = .text:0x0001872C; // type:function size:0x5C +fn_1_18788 = .text:0x00018788; // type:function size:0x2CC +fn_1_18A54 = .text:0x00018A54; // type:function size:0x378 +fn_1_18DCC = .text:0x00018DCC; // type:function size:0x1A8 +fn_1_18F74 = .text:0x00018F74; // type:function size:0x174 +fn_1_190E8 = .text:0x000190E8; // type:function size:0xB38 +fn_1_19C98 = .text:0x00019C20; // type:function size:0x1D98 +fn_1_1BB2C = .text:0x0001B9B8; // type:function size:0xA28 +fn_1_1C554 = .text:0x0001C3E0; // type:function size:0x120 +fn_1_1C674 = .text:0x0001C500; // type:function size:0xE0 +fn_1_1C754 = .text:0x0001C5E0; // type:function size:0x23C +fn_1_1C990 = .text:0x0001C81C; // type:function size:0x238 +fn_1_1CBC8 = .text:0x0001CA54; // type:function size:0x3A0 +fn_1_1CF68 = .text:0x0001CDF4; // type:function size:0x594 +fn_1_1D4FC = .text:0x0001D388; // type:function size:0x9DC +fn_1_1DED8 = .text:0x0001DD64; // type:function size:0x70 +fn_1_1DF48 = .text:0x0001DDD4; // type:function size:0x70 +fn_1_1DFB8 = .text:0x0001DE44; // type:function size:0x1FC +fn_1_1E1B4 = .text:0x0001E040; // type:function size:0x250 +fn_1_1E404 = .text:0x0001E290; // type:function size:0x4A0 +fn_1_1E8A4 = .text:0x0001E730; // type:function size:0xD4C +fn_1_1F5F0 = .text:0x0001F47C; // type:function size:0xC8 +fn_1_1F6B8 = .text:0x0001F544; // type:function size:0x1B0 +fn_1_1F868 = .text:0x0001F6F4; // type:function size:0x1CC +fn_1_1FA34 = .text:0x0001F8C0; // type:function size:0x220 +fn_1_1FC54 = .text:0x0001FAE0; // type:function size:0x1B4 +fn_1_1FE08 = .text:0x0001FC94; // type:function size:0x144 +fn_1_1FF4C = .text:0x0001FDD8; // type:function size:0x610 +fn_1_2055C = .text:0x000203E8; // type:function size:0x260 +fn_1_207BC = .text:0x00020648; // type:function size:0x138 +fn_1_208F4 = .text:0x00020780; // type:function size:0x130 +fn_1_20A24 = .text:0x000208B0; // type:function size:0x130 +fn_1_20B54 = .text:0x000209E0; // type:function size:0x5E0 +fn_1_21134 = .text:0x00020FC0; // type:function size:0x5F0 +fn_1_21724 = .text:0x000215B0; // type:function size:0xED0 +fn_1_225F4 = .text:0x00022480; // type:function size:0xE38 +fn_1_2342C = .text:0x000232B8; // type:function size:0x60C +_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 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 scope:local +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 scope:local data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A scope:local data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE scope:local data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 +jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 scope:local data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 scope:local data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 scope:local data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 scope:local data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 scope:local data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 scope:local data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 scope:local data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C scope:local data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D scope:local data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 scope:local data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 scope:local data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 scope:local data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A scope:local data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B scope:local data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A scope:local data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 scope:local data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A scope:local data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A scope:local data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 scope:local data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B scope:local data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 scope:local +jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B scope:local data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A scope:local data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float +lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x20 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x15E0 +lbl_1_bss_16C4 = .bss:0x000016C4; // type:object size:0x1A40 +lbl_1_bss_3104 = .bss:0x00003104; // type:object size:0x4 data:4byte +lbl_1_bss_3108 = .bss:0x00003108; // type:object size:0xC data:4byte +lbl_1_bss_3114 = .bss:0x00003114; // type:object size:0x240 data:4byte +lbl_1_bss_3354 = .bss:0x00003354; // type:object size:0x58 data:4byte +lbl_1_bss_33AC = .bss:0x000033AC; // type:object size:0x210 data:4byte +lbl_1_bss_35BC = .bss:0x000035BC; // type:object size:0xB0 data:4byte +lbl_1_bss_366C = .bss:0x0000366C; // type:object size:0x58 data:4byte diff --git a/config/GMPP01_00/rels/messDll/splits.txt b/config/GMPP01_00/rels/messDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/messDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/messDll/symbols.txt b/config/GMPP01_00/rels/messDll/symbols.txt new file mode 100644 index 00000000..2c96428e --- /dev/null +++ b/config/GMPP01_00/rels/messDll/symbols.txt @@ -0,0 +1,113 @@ +_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:0x22C +fn_1_2CC = .text:0x000002CC; // type:function size:0x44 +fn_1_310 = .text:0x00000310; // type:function size:0xB88 +fn_1_E98 = .text:0x00000E98; // type:function size:0x2EC +fn_1_1184 = .text:0x00001184; // type:function size:0x158 +fn_1_12DC = .text:0x000012DC; // type:function size:0x310 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0x16 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x11 data:string +lbl_1_data_49 = .data:0x00000049; // type:object size:0xD data:string +lbl_1_data_56 = .data:0x00000056; // type:object size:0xD data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0xB data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0xF data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xE data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0xD data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0x9 data:string +lbl_1_data_AF = .data:0x000000AF; // type:object size:0xE data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xF data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xB data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xA data:string +lbl_1_data_F3 = .data:0x000000F3; // type:object size:0xD data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0xB data:string +lbl_1_data_10B = .data:0x0000010B; // type:object size:0xF data:string +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x9 data:string +lbl_1_data_123 = .data:0x00000123; // type:object size:0xF data:string +lbl_1_data_132 = .data:0x00000132; // type:object size:0x13 data:string +lbl_1_data_145 = .data:0x00000145; // type:object size:0xF data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0xF data:string +lbl_1_data_163 = .data:0x00000163; // type:object size:0x12 data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0xB data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0xD data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0xF data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0xA data:string +lbl_1_data_1A6 = .data:0x000001A6; // type:object size:0xC data:string +lbl_1_data_1B2 = .data:0x000001B2; // type:object size:0xD data:string +lbl_1_data_1BF = .data:0x000001BF; // type:object size:0xF data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0x11 data:string +lbl_1_data_1DF = .data:0x000001DF; // type:object size:0xF data:string +lbl_1_data_1EE = .data:0x000001EE; // type:object size:0xC data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xC data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x8 data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0x11 data:string +lbl_1_data_21F = .data:0x0000021F; // type:object size:0x11 data:string +lbl_1_data_230 = .data:0x00000230; // type:object size:0x12 data:string +lbl_1_data_242 = .data:0x00000242; // type:object size:0xF data:string +lbl_1_data_251 = .data:0x00000251; // type:object size:0xC data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xD data:string +lbl_1_data_2A1 = .data:0x000002A1; // type:object size:0x11 data:string +lbl_1_data_2B2 = .data:0x000002B2; // type:object size:0xF data:string +lbl_1_data_2C1 = .data:0x000002C1; // type:object size:0xC data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x11 data:string +lbl_1_data_2DE = .data:0x000002DE; // type:object size:0xF data:string +lbl_1_data_2ED = .data:0x000002ED; // type:object size:0xF data:string +lbl_1_data_2FC = .data:0x000002FC; // type:object size:0xF data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 data:string +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x10 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xE4 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string +lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0x7 data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0x6 data:string +lbl_1_data_42D = .data:0x0000042D; // type:object size:0xB +lbl_1_data_438 = .data:0x00000438; // type:object size:0x14 data:4byte +lbl_1_data_44C = .data:0x0000044C; // type:object size:0x2 data:2byte +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x6 +lbl_1_data_454 = .data:0x00000454; // type:object size:0x5 data:string +lbl_1_data_459 = .data:0x00000459; // type:object size:0x4 data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x4 data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0x4 data:string +lbl_1_data_465 = .data:0x00000465; // type:object size:0x4 data:string +lbl_1_data_469 = .data:0x00000469; // type:object size:0x4 data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x4 data:string +lbl_1_data_471 = .data:0x00000471; // type:object size:0x4 data:string +lbl_1_data_475 = .data:0x00000475; // type:object size:0x7 +lbl_1_data_47C = .data:0x0000047C; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x24 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mgmodedll/splits.txt b/config/GMPP01_00/rels/mgmodedll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mgmodedll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mgmodedll/symbols.txt b/config/GMPP01_00/rels/mgmodedll/symbols.txt new file mode 100644 index 00000000..780a9b7f --- /dev/null +++ b/config/GMPP01_00/rels/mgmodedll/symbols.txt @@ -0,0 +1,584 @@ +_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 +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 +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x6B8 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x77C +fn_1_2940 = .text:0x00002940; // type:function size:0x810 +fn_1_3150 = .text:0x00003150; // type:function size:0x788 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x738 +fn_1_4010 = .text:0x00004010; // type:function size:0x86C +fn_1_487C = .text:0x0000487C; // type:function size:0x260 +fn_1_4ADC = .text:0x00004ADC; // type:function size:0x800 +fn_1_52DC = .text:0x000052DC; // type:function size:0x220 +fn_1_54FC = .text:0x000054FC; // type:function size:0xCC +fn_1_55C8 = .text:0x000055C8; // type:function size:0x3B4 +fn_1_597C = .text:0x0000597C; // type:function size:0xC78 +fn_1_65F4 = .text:0x000065F4; // type:function size:0xC4 +fn_1_66B8 = .text:0x000066B8; // type:function size:0x2C4 +fn_1_697C = .text:0x0000697C; // type:function size:0x90 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0xEC +fn_1_6AF8 = .text:0x00006AF8; // type:function size:0x128 +fn_1_6C20 = .text:0x00006C20; // type:function size:0x110 +fn_1_6D30 = .text:0x00006D30; // type:function size:0x31FC +fn_1_9F2C = .text:0x00009F2C; // type:function size:0x120 +fn_1_A04C = .text:0x0000A04C; // type:function size:0x400 +fn_1_A44C = .text:0x0000A44C; // type:function size:0x2C0 +fn_1_A70C = .text:0x0000A70C; // type:function size:0x84 +fn_1_A790 = .text:0x0000A790; // type:function size:0x604 +fn_1_AD94 = .text:0x0000AD94; // type:function size:0xF4 +fn_1_AE88 = .text:0x0000AE88; // type:function size:0x80 +fn_1_AF08 = .text:0x0000AF08; // type:function size:0xB0 +fn_1_AFB8 = .text:0x0000AFB8; // type:function size:0x6D8 +fn_1_B690 = .text:0x0000B690; // type:function size:0x1C8 +fn_1_B858 = .text:0x0000B858; // type:function size:0x248 +fn_1_BAA0 = .text:0x0000BAA0; // type:function size:0x16C +fn_1_BC0C = .text:0x0000BC0C; // type:function size:0x47C +fn_1_C088 = .text:0x0000C088; // type:function size:0x128 +fn_1_C1B0 = .text:0x0000C1B0; // type:function size:0x1808 +fn_1_D9B8 = .text:0x0000D9B8; // type:function size:0x56C +fn_1_DF24 = .text:0x0000DF24; // type:function size:0x17C +fn_1_E0A0 = .text:0x0000E0A0; // type:function size:0x74 +fn_1_E114 = .text:0x0000E114; // type:function size:0x6F8 +fn_1_E80C = .text:0x0000E80C; // type:function size:0x18F8 +fn_1_10104 = .text:0x00010104; // type:function size:0x608 +fn_1_1070C = .text:0x0001070C; // type:function size:0xD38 +fn_1_11444 = .text:0x00011444; // type:function size:0xBCC +fn_1_12010 = .text:0x00012010; // type:function size:0x3C4 +fn_1_123D4 = .text:0x000123D4; // type:function size:0x938 +fn_1_12D0C = .text:0x00012D0C; // type:function size:0x88 +fn_1_12D94 = .text:0x00012D94; // type:function size:0x82C +fn_1_135C0 = .text:0x000135C0; // type:function size:0x18E4 +fn_1_14EA4 = .text:0x00014EA4; // type:function size:0x119C +fn_1_16040 = .text:0x00016040; // type:function size:0x5A0 +fn_1_165E0 = .text:0x000165E0; // type:function size:0x6F8 +fn_1_16CD8 = .text:0x00016CD8; // type:function size:0xF2C +fn_1_17C04 = .text:0x00017C04; // type:function size:0x184 +fn_1_17D88 = .text:0x00017D88; // type:function size:0x1218 +fn_1_18FA0 = .text:0x00018FA0; // type:function size:0x220 +fn_1_191C0 = .text:0x000191C0; // type:function size:0x4B0 +fn_1_19670 = .text:0x00019670; // type:function size:0x568 +fn_1_19BD8 = .text:0x00019BD8; // type:function size:0x15C +fn_1_19D34 = .text:0x00019D34; // type:function size:0x174 +fn_1_19EA8 = .text:0x00019EA8; // type:function size:0x194 +fn_1_1A03C = .text:0x0001A03C; // type:function size:0xC8 +fn_1_1A104 = .text:0x0001A104; // type:function size:0x608 +fn_1_1A70C = .text:0x0001A70C; // type:function size:0x13C +fn_1_1A848 = .text:0x0001A848; // type:function size:0x248 +fn_1_1AA90 = .text:0x0001AA90; // type:function size:0x140 +fn_1_1ABD0 = .text:0x0001ABD0; // type:function size:0x130 +fn_1_1AD00 = .text:0x0001AD00; // type:function size:0x130 +fn_1_1AE30 = .text:0x0001AE30; // type:function size:0x5D8 +fn_1_1B408 = .text:0x0001B408; // type:function size:0xA8C +fn_1_1BE94 = .text:0x0001BE94; // type:function size:0x1E0 +fn_1_1C074 = .text:0x0001C074; // type:function size:0x1D0 +fn_1_1C244 = .text:0x0001C244; // type:function size:0xAB0 +fn_1_1CCF4 = .text:0x0001CCF4; // type:function size:0x364 +fn_1_1D058 = .text:0x0001D058; // type:function size:0x5EC +fn_1_1D644 = .text:0x0001D644; // type:function size:0x1EC +fn_1_1D830 = .text:0x0001D830; // type:function size:0x6EC +fn_1_1DF1C = .text:0x0001DF1C; // type:function size:0x894 +fn_1_1E7B0 = .text:0x0001E7B0; // type:function size:0x518 +fn_1_1ECC8 = .text:0x0001ECC8; // type:function size:0xD8 +fn_1_1EDA0 = .text:0x0001EDA0; // type:function size:0x138 +fn_1_1EED8 = .text:0x0001EED8; // type:function size:0x138 +fn_1_1F010 = .text:0x0001F010; // type:function size:0x4D4 +fn_1_1F4E4 = .text:0x0001F4E4; // type:function size:0x790 +fn_1_1FC74 = .text:0x0001FC74; // type:function size:0x188 +fn_1_1FDFC = .text:0x0001FDFC; // type:function size:0xAE4 +fn_1_208E0 = .text:0x000208E0; // type:function size:0x248 +fn_1_20B28 = .text:0x00020B28; // type:function size:0x514 +fn_1_2103C = .text:0x0002103C; // type:function size:0x150 +fn_1_2118C = .text:0x0002118C; // type:function size:0x1E0 +fn_1_2136C = .text:0x0002136C; // type:function size:0x2F0 +fn_1_2165C = .text:0x0002165C; // type:function size:0x830 +fn_1_21E8C = .text:0x00021E8C; // type:function size:0x5F8 +fn_1_22484 = .text:0x00022484; // type:function size:0x4AC +fn_1_22930 = .text:0x00022930; // type:function size:0x4F0 +fn_1_22E20 = .text:0x00022E20; // type:function size:0x5E8 +fn_1_23408 = .text:0x00023408; // type:function size:0xEF4 +fn_1_242FC = .text:0x000242FC; // type:function size:0x28 +fn_1_24324 = .text:0x00024324; // type:function size:0x20 +fn_1_24344 = .text:0x00024344; // type:function size:0xD8 +fn_1_2441C = .text:0x0002441C; // type:function size:0xC8 +fn_1_244E4 = .text:0x000244E4; // type:function size:0xBC +fn_1_245A0 = .text:0x000245A0; // type:function size:0x28 +fn_1_245C8 = .text:0x000245C8; // type:function size:0x20 +fn_1_245E8 = .text:0x000245E8; // type:function size:0x14 +fn_1_245FC = .text:0x000245FC; // type:function size:0xDC +fn_1_246D8 = .text:0x000246D8; // type:function size:0xE8 +fn_1_247C0 = .text:0x000247C0; // type:function size:0x24 +fn_1_247E4 = .text:0x000247E4; // type:function size:0xA48 +fn_1_2522C = .text:0x0002522C; // type:function size:0x2F8 +fn_1_25524 = .text:0x00025524; // type:function size:0x218 +fn_1_2573C = .text:0x0002573C; // type:function size:0x60 +fn_1_2579C = .text:0x0002579C; // type:function size:0x68 +fn_1_25804 = .text:0x00025804; // type:function size:0x90 +fn_1_25894 = .text:0x00025894; // type:function size:0x134 +fn_1_259C8 = .text:0x000259C8; // type:function size:0x48 +fn_1_25A10 = .text:0x00025A10; // type:function size:0x40 +fn_1_25A50 = .text:0x00025A50; // type:function size:0xF4 +fn_1_25B44 = .text:0x00025B44; // type:function size:0x37C +fn_1_25EC0 = .text:0x00025EC0; // type:function size:0x1CC +fn_1_2608C = .text:0x0002608C; // type:function size:0x54 +fn_1_260E0 = .text:0x000260E0; // type:function size:0x13C +fn_1_2621C = .text:0x0002621C; // type:function size:0x78C +fn_1_269A8 = .text:0x000269A8; // type:function size:0x58 +fn_1_26A00 = .text:0x00026A00; // type:function size:0x290 +fn_1_26C90 = .text:0x00026C90; // type:function size:0x138 +fn_1_26DC8 = .text:0x00026DC8; // type:function size:0x78 +fn_1_26E40 = .text:0x00026E40; // type:function size:0x2C +fn_1_26E6C = .text:0x00026E6C; // type:function size:0x42C +fn_1_27298 = .text:0x00027298; // type:function size:0x134 +fn_1_273CC = .text:0x000273CC; // type:function size:0x264 +fn_1_27630 = .text:0x00027630; // type:function size:0x424 +fn_1_27A54 = .text:0x00027A54; // type:function size:0x1C0 +fn_1_27C14 = .text:0x00027C14; // type:function size:0x210 +fn_1_27E24 = .text:0x00027E24; // type:function size:0xE4 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 scope:local data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 scope:local data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 scope:local data:double +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 scope:local data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 scope:local data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 scope:local data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 scope:local data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 scope:local data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 scope:local data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 scope:local data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 scope:local data:float +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 scope:local data:double +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 scope:local data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 scope:local data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 scope:local data:double +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 scope:local data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 scope:local data:double +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 scope:local data:double +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 scope:local data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 scope:local data:double +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x30 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x16 data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x6 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x10 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x4 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x2 data:2byte +lbl_1_data_B2 = .data:0x000000B2; // type:object size:0xE +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x6 +lbl_1_data_E6 = .data:0x000000E6; // type:object size:0xA +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 +mgRecordIdxTbl = .data:0x00000120; // type:object size:0x10 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x28 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x2 data:2byte +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x8 +lbl_1_data_162 = .data:0x00000162; // type:object size:0x16 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x2 data:2byte +lbl_1_data_17A = .data:0x0000017A; // type:object size:0x32 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x10 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xA data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x10 +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 data:string +lbl_1_data_218 = .data:0x00000218; // type:object size:0x26 data:string +lbl_1_data_23E = .data:0x0000023E; // type:object size:0x27 data:string +lbl_1_data_265 = .data:0x00000265; // type:object size:0x1C data:string +lbl_1_data_281 = .data:0x00000281; // type:object size:0x1B data:string +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x1C data:string +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x1D data:string +lbl_1_data_2D5 = .data:0x000002D5; // type:object size:0xC data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0x1A data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x1A data:string +lbl_1_data_315 = .data:0x00000315; // type:object size:0x27 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x40 data:4byte +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x60 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x18 data:4byte +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x64 +lbl_1_data_458 = .data:0x00000458; // type:object size:0x40 +lbl_1_data_498 = .data:0x00000498; // type:object size:0x8 data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2D8 +lbl_1_data_778 = .data:0x00000778; // type:object size:0x258 +lbl_1_data_9D0 = .data:0x000009D0; // type:object size:0x20 +lbl_1_data_9F0 = .data:0x000009F0; // type:object size:0x20 +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x2 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +mgModeEvtNo = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x18 data:4byte +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x2 data:2byte +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0xA data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:float +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xC data:4byte +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0xC data:4byte +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_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 +lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:float +lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x2 data:2byte +lbl_1_bss_2EE = .bss:0x000002EE; // type:object size:0x2 data:2byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x2 data:2byte +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x18 +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x2 data:2byte +lbl_1_bss_30E = .bss:0x0000030E; // type:object size:0x8 +lbl_1_bss_316 = .bss:0x00000316; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x28 data:2byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte +lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC scope:local +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC scope:local +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 +lbl_1_bss_394 = .bss:0x00000394; // type:object size:0x2 data:2byte +lbl_1_bss_396 = .bss:0x00000396; // type:object size:0xA +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x2 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x8 data:2byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x4 data:4byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte +lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x1A40 +lbl_1_bss_1E0C = .bss:0x00001E0C; // type:object size:0x4 data:4byte +lbl_1_bss_1E10 = .bss:0x00001E10; // type:object size:0x240 data:4byte +lbl_1_bss_2050 = .bss:0x00002050; // type:object size:0x5A +lbl_1_bss_20AA = .bss:0x000020AA; // type:object size:0x2 data:2byte +lbl_1_bss_20AC = .bss:0x000020AC; // type:object size:0x14 data:2byte +lbl_1_bss_20C0 = .bss:0x000020C0; // type:object size:0x578 +lbl_1_bss_2638 = .bss:0x00002638; // type:object size:0x14 data:2byte +lbl_1_bss_264C = .bss:0x0000264C; // type:object size:0x578 +lbl_1_bss_2BC4 = .bss:0x00002BC4; // type:object size:0x50 +lbl_1_bss_2C14 = .bss:0x00002C14; // type:object size:0x8 +lbl_1_bss_2C1C = .bss:0x00002C1C; // type:object size:0x8 +lbl_1_bss_2C24 = .bss:0x00002C24; // type:object size:0x8 +lbl_1_bss_2C2C = .bss:0x00002C2C; // type:object size:0x3A data:2byte +lbl_1_bss_2C66 = .bss:0x00002C66; // type:object size:0x1A data:2byte +lbl_1_bss_2C80 = .bss:0x00002C80; // type:object size:0x1A data:2byte diff --git a/config/GMPP01_00/rels/modeltestDll/splits.txt b/config/GMPP01_00/rels/modeltestDll/splits.txt new file mode 100644 index 00000000..9ff3fae5 --- /dev/null +++ b/config/GMPP01_00/rels/modeltestDll/splits.txt @@ -0,0 +1,28 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/modeltestDll/main.c: + .text start:0x000000A0 end:0x000034B0 + .rodata start:0x00000000 end:0x00000130 + .data start:0x00000000 end:0x00000358 + .bss start:0x00000000 end:0x000009A8 + +REL/modeltestDll/modeltest00.c: + .text start:0x000034B0 end:0x00004AC8 + .rodata start:0x00000130 end:0x000001C8 + .data start:0x00000358 end:0x00000388 + .bss start:0x000009A8 end:0x00000A00 + +REL/modeltestDll/modeltest01.c: + .text start:0x00004AC8 end:0x000086B8 + .rodata start:0x000001C8 end:0x00000290 + .data start:0x00000388 end:0x000007AE + .bss start:0x00000A00 end:0x00000AC8 diff --git a/config/GMPP01_00/rels/modeltestDll/symbols.txt b/config/GMPP01_00/rels/modeltestDll/symbols.txt new file mode 100644 index 00000000..460a17bf --- /dev/null +++ b/config/GMPP01_00/rels/modeltestDll/symbols.txt @@ -0,0 +1,230 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0xC9C +fn_1_F38 = .text:0x00000F38; // type:function size:0x64 +fn_1_F9C = .text:0x00000F9C; // type:function size:0x1158 +fn_1_20F4 = .text:0x000020F4; // type:function size:0x804 +fn_1_28F8 = .text:0x000028F8; // type:function size:0x204 +fn_1_2AFC = .text:0x00002AFC; // type:function size:0x6C +fn_1_2B68 = .text:0x00002B68; // type:function size:0x948 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x32C +fn_1_37DC = .text:0x000037DC; // type:function size:0xBC0 +fn_1_439C = .text:0x0000439C; // type:function size:0x354 +fn_1_46F0 = .text:0x000046F0; // type:function size:0x3D8 +fn_1_4AC8 = .text:0x00004AC8; // type:function size:0x330 +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xC68 +fn_1_5A60 = .text:0x00005A60; // type:function size:0x348 +fn_1_5DA8 = .text:0x00005DA8; // type:function size:0xC20 +fn_1_69C8 = .text:0x000069C8; // type:function size:0x118 +fn_1_6AE0 = .text:0x00006AE0; // type:function size:0x166C +fn_1_814C = .text:0x0000814C; // type:function size:0x17C +fn_1_82C8 = .text:0x000082C8; // type:function size:0xEC +fn_1_83B4 = .text:0x000083B4; // type:function size:0x304 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0xC data:4byte +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0xC data:4byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 data:2byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0xC data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0xC data:4byte +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0xC data:4byte +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0xC data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0xC data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 data:4byte +lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 data:string +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 data:string +lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x40 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x50 data:float +lbl_1_data_168 = .data:0x00000168; // type:object size:0xA0 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x50 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0x40 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x28 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x28 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x58 +lbl_1_data_408 = .data:0x00000408; // type:object size:0x58 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x58 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x58 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x58 +lbl_1_data_568 = .data:0x00000568; // type:object size:0x58 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x58 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x58 +lbl_1_data_670 = .data:0x00000670; // type:object size:0x20 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x10 data:string +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0xD data:string +lbl_1_data_6AD = .data:0x000006AD; // type:object size:0xD data:string +lbl_1_data_6BA = .data:0x000006BA; // type:object size:0xD data:string +lbl_1_data_6C7 = .data:0x000006C7; // type:object size:0xB data:string +lbl_1_data_6D2 = .data:0x000006D2; // type:object size:0x8 data:string +lbl_1_data_6DA = .data:0x000006DA; // type:object size:0xF data:string +lbl_1_data_6E9 = .data:0x000006E9; // type:object size:0xB +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x60 +lbl_1_data_754 = .data:0x00000754; // type:object size:0x4 data:4byte +lbl_1_data_758 = .data:0x00000758; // type:object size:0x12 +lbl_1_data_76A = .data:0x0000076A; // type:object size:0x2E +lbl_1_data_798 = .data:0x00000798; // type:object size:0x14 +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x10 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x414 +lbl_1_bss_454 = .bss:0x00000454; // type:object size:0x4 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x2 data:2byte +lbl_1_bss_45A = .bss:0x0000045A; // type:object size:0x6 data:2byte +lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x204 data:2byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x200 data:2byte +lbl_1_bss_864 = .bss:0x00000864; // type:object size:0x20 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x2 data:2byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x2 data:2byte +lbl_1_bss_88A = .bss:0x0000088A; // type:object size:0x100 +lbl_1_bss_98A = .bss:0x0000098A; // type:object size:0x10 data:2byte +lbl_1_bss_99A = .bss:0x0000099A; // type:object size:0x2 data:2byte +lbl_1_bss_99C = .bss:0x0000099C; // type:object size:0x2 data:2byte +lbl_1_bss_9A0 = .bss:0x000009A0; // type:object size:0x4 data:4byte +lbl_1_bss_9A4 = .bss:0x000009A4; // type:object size:0x4 data:4byte +lbl_1_bss_9A8 = .bss:0x000009A8; // type:object size:0x4 data:4byte +lbl_1_bss_9AC = .bss:0x000009AC; // type:object size:0x40 +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x8 +lbl_1_bss_9F4 = .bss:0x000009F4; // type:object size:0x4 data:4byte +lbl_1_bss_9F8 = .bss:0x000009F8; // type:object size:0x8 data:4byte +lbl_1_bss_A00 = .bss:0x00000A00; // type:object size:0x4 data:4byte +lbl_1_bss_A04 = .bss:0x00000A04; // type:object size:0x4 data:4byte +lbl_1_bss_A08 = .bss:0x00000A08; // type:object size:0x2 data:2byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x8 data:float +lbl_1_bss_A14 = .bss:0x00000A14; // type:object size:0x4 data:4byte +lbl_1_bss_A18 = .bss:0x00000A18; // type:object size:0xA4 data:float +lbl_1_bss_ABC = .bss:0x00000ABC; // type:object size:0x4 data:4byte +lbl_1_bss_AC0 = .bss:0x00000AC0; // type:object size:0x8 data:4byte diff --git a/config/GMPP01_00/rels/modeseldll/splits.txt b/config/GMPP01_00/rels/modeseldll/splits.txt new file mode 100644 index 00000000..8dd4d423 --- /dev/null +++ b/config/GMPP01_00/rels/modeseldll/splits.txt @@ -0,0 +1,34 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x00002528 + .rodata start:0x00000000 end:0x000000B8 + .data start:0x00000000 end:0x00000080 + .bss start:0x00000000 end:0x00000080 + +REL/modeseldll/modesel.c: + .text start:0x00002528 end:0x00003874 + .rodata start:0x000000B8 end:0x000001B0 + .data start:0x00000080 end:0x00000100 + .bss start:0x00000080 end:0x00000088 + +REL/modeseldll/filesel.c: + .text start:0x00003874 end:0x0000BFDC + .rodata start:0x000001B0 end:0x00000318 + .data start:0x00000100 end:0x00000428 + .bss start:0x00000088 end:0x00000150 + +REL/modeseldll/datalist.c: + .text start:0x0000BFDC end:0x0000C438 + .rodata start:0x00000318 end:0x00000328 + .data start:0x00000428 end:0x00000A2C + .bss start:0x00000150 end:0x000001CA diff --git a/config/GMPP01_00/rels/modeseldll/symbols.txt b/config/GMPP01_00/rels/modeseldll/symbols.txt new file mode 100644 index 00000000..fb5fd9a4 --- /dev/null +++ b/config/GMPP01_00/rels/modeseldll/symbols.txt @@ -0,0 +1,270 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x374 +fn_1_414 = .text:0x00000414; // type:function size:0x678 +fn_1_A8C = .text:0x00000A8C; // type:function size:0xFC +fn_1_B88 = .text:0x00000B88; // type:function size:0x9C +fn_1_C24 = .text:0x00000C24; // type:function size:0x3B4 +fn_1_FD8 = .text:0x00000FD8; // type:function size:0xC2C +fn_1_1C04 = .text:0x00001C04; // type:function size:0x2C4 +fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x90 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x4A8 +fn_1_2400 = .text:0x00002400; // type:function size:0x128 +fn_1_2528 = .text:0x00002528; // type:function size:0x11D8 +fn_1_3700 = .text:0x00003700; // type:function size:0x174 +fn_1_3874 = .text:0x00003874; // type:function size:0x2DC +fn_1_3B50 = .text:0x00003B50; // type:function size:0x1B80 +fn_1_56D0 = .text:0x000056D0; // type:function size:0x19C +fn_1_586C = .text:0x0000586C; // type:function size:0x88 +fn_1_58F4 = .text:0x000058F4; // type:function size:0x35C +fn_1_5C50 = .text:0x00005C50; // type:function size:0x8C +fn_1_5CDC = .text:0x00005CDC; // type:function size:0xF8 +fn_1_5DD4 = .text:0x00005DD4; // type:function size:0x484 +fn_1_6258 = .text:0x00006258; // type:function size:0x1188 +fn_1_73E0 = .text:0x000073E0; // type:function size:0x34C +fn_1_772C = .text:0x0000772C; // type:function size:0x8C +fn_1_77B8 = .text:0x000077B8; // type:function size:0x4C0 +fn_1_7C78 = .text:0x00007C78; // type:function size:0x5B8 +fn_1_8230 = .text:0x00008230; // type:function size:0x288 +fn_1_84B8 = .text:0x000084B8; // type:function size:0x18C +fn_1_8644 = .text:0x00008644; // type:function size:0x6F0 +fn_1_8D34 = .text:0x00008D34; // type:function size:0x11E4 +fn_1_9F18 = .text:0x00009F18; // type:function size:0x38 +fn_1_9F50 = .text:0x00009F50; // type:function size:0xA74 +fn_1_A9C4 = .text:0x0000A9C4; // type:function size:0x1F8 +fn_1_ABBC = .text:0x0000ABBC; // type:function size:0xE14 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x154 +fn_1_BB24 = .text:0x0000BB24; // type:function size:0x60 +fn_1_BB84 = .text:0x0000BB84; // type:function size:0x458 +fn_1_BFDC = .text:0x0000BFDC; // type:function size:0x290 +fn_1_C26C = .text:0x0000C26C; // type:function size:0x154 +fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x78 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:byte +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x22 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x14 data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x4 +lbl_1_data_72 = .data:0x00000072; // type:object size:0xA data:string +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x4 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0xC +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_100 = .data:0x00000100; // type:object size:0x11C data:2byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3 +lbl_1_data_267 = .data:0x00000267; // type:object size:0xD +lbl_1_data_274 = .data:0x00000274; // type:object size:0x2 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x2 data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:string +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 +lbl_1_data_288 = .data:0x00000288; // type:object size:0xC +lbl_1_data_294 = .data:0x00000294; // type:object size:0x19 data:string +lbl_1_data_2AD = .data:0x000002AD; // type:object size:0x23 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x1B data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x19 data:string +lbl_1_data_304 = .data:0x00000304; // type:object size:0x19 data:string +lbl_1_data_31D = .data:0x0000031D; // type:object size:0x20 data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x1B data:string +lbl_1_data_358 = .data:0x00000358; // type:object size:0x1B data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x22 data:string +lbl_1_data_395 = .data:0x00000395; // type:object size:0x5 data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x15 data:string +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x15 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x1F data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x10 data:string +lbl_1_data_3F3 = .data:0x000003F3; // type:object size:0xD data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 +lbl_1_data_416 = .data:0x00000416; // type:object size:0x6 data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x2 data:2byte +lbl_1_data_41E = .data:0x0000041E; // type:object size:0xA +lbl_1_data_428 = .data:0x00000428; // type:object size:0x514 +lbl_1_data_93C = .data:0x0000093C; // type:object size:0xF0 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x18 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x30 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +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_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 +lbl_1_bss_92 = .bss:0x00000092; // type:object size:0x6 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x6 +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x6 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x8 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0xC +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x18 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x6 +lbl_1_bss_EE = .bss:0x000000EE; // type:object size:0x6 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x8 data:float +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x6 +lbl_1_bss_116 = .bss:0x00000116; // type:object size:0x6 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0xC data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 +lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x2 +lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x18 data:2byte +lbl_1_bss_16A = .bss:0x0000016A; // type:object size:0x30 data:2byte +lbl_1_bss_19A = .bss:0x0000019A; // type:object size:0x30 data:2byte diff --git a/config/GMPP01_00/rels/mpexDll/splits.txt b/config/GMPP01_00/rels/mpexDll/splits.txt new file mode 100644 index 00000000..8980a70d --- /dev/null +++ b/config/GMPP01_00/rels/mpexDll/splits.txt @@ -0,0 +1,33 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/mpexDll/main.c: + .text start:0x000000A0 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:0x000125C4 + .rodata start:0x000000A0 end:0x00000538 + .data start:0x00000240 end:0x00000510 + .bss start:0x000000A8 end:0x00000440 + +REL/mpexDll/charsel.c: + .text start:0x000125C4 end:0x0001CAF8 + .rodata start:0x00000538 end:0x00000610 + .data start:0x00000510 end:0x00000780 + .bss start:0x00000440 end:0x000006AD + +REL/mpexDll/mgname.c: + .text start:0x0001CAF8 end:0x0001D014 + .rodata start:0x00000610 end:0x00000620 + .data start:0x00000780 end:0x00000C40 diff --git a/config/GMPP01_00/rels/mpexDll/symbols.txt b/config/GMPP01_00/rels/mpexDll/symbols.txt new file mode 100644 index 00000000..caa7e094 --- /dev/null +++ b/config/GMPP01_00/rels/mpexDll/symbols.txt @@ -0,0 +1,475 @@ +_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:0xE8 +fn_1_188 = .text:0x00000188; // type:function size:0x38 +fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 +ObjectSetup = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0xDC +fn_1_374 = .text:0x00000374; // type:function size:0xC4 +fn_1_438 = .text:0x00000438; // type:function size:0x3E4 +fn_1_81C = .text:0x0000081C; // type:function size:0xB8 +fn_1_8D4 = .text:0x000008D4; // type:function size:0x3C +fn_1_910 = .text:0x00000910; // type:function size:0x124 +fn_1_A34 = .text:0x00000A34; // type:function size:0x3C +fn_1_A70 = .text:0x00000A70; // type:function size:0x44 +fn_1_AB4 = .text:0x00000AB4; // type:function size:0x1D0 +fn_1_C84 = .text:0x00000C84; // type:function size:0x1C4 +fn_1_E48 = .text:0x00000E48; // type:function size:0x200 +fn_1_1048 = .text:0x00001048; // type:function size:0x238 +fn_1_1280 = .text:0x00001280; // type:function size:0x39C +fn_1_161C = .text:0x0000161C; // type:function size:0x200 +fn_1_181C = .text:0x0000181C; // type:function size:0x238 +fn_1_1A54 = .text:0x00001A54; // type:function size:0x39C +fn_1_1DF0 = .text:0x00001DF0; // type:function size:0x200 +fn_1_1FF0 = .text:0x00001FF0; // type:function size:0x238 +fn_1_2228 = .text:0x00002228; // type:function size:0x39C +fn_1_25C4 = .text:0x000025C4; // type:function size:0x178 +fn_1_273C = .text:0x0000273C; // type:function size:0x1A0 +fn_1_28DC = .text:0x000028DC; // type:function size:0x4 +fn_1_28E0 = .text:0x000028E0; // type:function size:0x764 +fn_1_3044 = .text:0x00003044; // type:function size:0x294 +fn_1_32D8 = .text:0x000032D8; // type:function size:0xAC +fn_1_3384 = .text:0x00003384; // type:function size:0x74 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x110 +fn_1_3508 = .text:0x00003508; // type:function size:0x19C +fn_1_36A4 = .text:0x000036A4; // type:function size:0xB4 +fn_1_3758 = .text:0x00003758; // type:function size:0x224 +fn_1_397C = .text:0x0000397C; // type:function size:0x78 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x104 +fn_1_3AF8 = .text:0x00003AF8; // type:function size:0x51C +fn_1_4014 = .text:0x00004014; // type:function size:0x98 +fn_1_40AC = .text:0x000040AC; // type:function size:0x98 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0x2C8 +fn_1_444C = .text:0x0000444C; // type:function size:0xC8 +fn_1_4514 = .text:0x00004514; // type:function size:0x21C +fn_1_4730 = .text:0x00004730; // type:function size:0x40 +fn_1_4770 = .text:0x00004770; // type:function size:0x2E8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0xE4 +fn_1_4B3C = .text:0x00004B3C; // type:function size:0x3C +fn_1_4B78 = .text:0x00004B78; // type:function size:0xF4 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0x18C +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0x18C +fn_1_4F84 = .text:0x00004F84; // type:function size:0x2B4 +fn_1_5238 = .text:0x00005238; // type:function size:0x2F8 +fn_1_5530 = .text:0x00005530; // type:function size:0x188 +fn_1_56B8 = .text:0x000056B8; // type:function size:0x128 +fn_1_57E0 = .text:0x000057E0; // type:function size:0x3C +fn_1_581C = .text:0x0000581C; // type:function size:0x140 +fn_1_595C = .text:0x0000595C; // type:function size:0x19C +fn_1_5AF8 = .text:0x00005AF8; // type:function size:0x124 +fn_1_5C1C = .text:0x00005C1C; // type:function size:0x124 +fn_1_5D40 = .text:0x00005D40; // type:function size:0x1E88 +fn_1_7BC8 = .text:0x00007BC8; // type:function size:0x1B8 +fn_1_7D80 = .text:0x00007D80; // type:function size:0x244 +fn_1_7FC4 = .text:0x00007FC4; // type:function size:0x1A8 +fn_1_816C = .text:0x0000816C; // type:function size:0x1B4 +fn_1_8320 = .text:0x00008320; // type:function size:0x2A4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x194 +fn_1_8758 = .text:0x00008758; // type:function size:0x194 +fn_1_88EC = .text:0x000088EC; // type:function size:0xD8 +fn_1_89C4 = .text:0x000089C4; // type:function size:0x118 +fn_1_8ADC = .text:0x00008ADC; // type:function size:0x540 +fn_1_901C = .text:0x0000901C; // type:function size:0x414 +fn_1_9430 = .text:0x00009430; // type:function size:0x284 +fn_1_96B4 = .text:0x000096B4; // type:function size:0x8C +fn_1_9740 = .text:0x00009740; // type:function size:0x150 +fn_1_9890 = .text:0x00009890; // type:function size:0x78 +fn_1_9908 = .text:0x00009908; // type:function size:0x80 +fn_1_9988 = .text:0x00009988; // type:function size:0x33C +fn_1_9CC4 = .text:0x00009CC4; // type:function size:0x98 +fn_1_9D5C = .text:0x00009D5C; // type:function size:0x1A4 +fn_1_9F00 = .text:0x00009F00; // type:function size:0x1D4 +fn_1_A0D4 = .text:0x0000A0D4; // type:function size:0x1C8 +fn_1_A29C = .text:0x0000A29C; // type:function size:0xF8 +fn_1_A394 = .text:0x0000A394; // type:function size:0x264 +fn_1_A5F8 = .text:0x0000A5F8; // type:function size:0x72C +fn_1_AD24 = .text:0x0000AD24; // type:function size:0x2D0 +fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x20C +fn_1_B200 = .text:0x0000B200; // type:function size:0x38 +fn_1_B238 = .text:0x0000B238; // type:function size:0x9C +fn_1_B2D4 = .text:0x0000B2D4; // type:function size:0x510 +fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x7C +fn_1_B860 = .text:0x0000B860; // type:function size:0x138 +fn_1_B998 = .text:0x0000B998; // type:function size:0x18C +fn_1_BB24 = .text:0x0000BB24; // type:function size:0xE4 +fn_1_BC08 = .text:0x0000BC08; // type:function size:0xC0 +fn_1_BCC8 = .text:0x0000BCC8; // type:function size:0x38 +fn_1_BD00 = .text:0x0000BD00; // type:function size:0x68 +fn_1_BD68 = .text:0x0000BD68; // type:function size:0x2F4 +fn_1_C05C = .text:0x0000C05C; // type:function size:0x70 +fn_1_C0CC = .text:0x0000C0CC; // type:function size:0x3F8 +fn_1_C4C4 = .text:0x0000C4C4; // type:function size:0x70 +fn_1_C534 = .text:0x0000C534; // type:function size:0x31C +fn_1_C850 = .text:0x0000C850; // type:function size:0x38 +fn_1_C888 = .text:0x0000C888; // type:function size:0x200 +fn_1_CA88 = .text:0x0000CA88; // type:function size:0x420 +fn_1_CEA8 = .text:0x0000CEA8; // type:function size:0x49C +fn_1_D344 = .text:0x0000D344; // type:function size:0xBC +fn_1_D400 = .text:0x0000D400; // type:function size:0x244 +fn_1_D644 = .text:0x0000D644; // type:function size:0x524 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5A4 +fn_1_E10C = .text:0x0000E10C; // type:function size:0x210 +fn_1_E31C = .text:0x0000E31C; // type:function size:0x1E4 +fn_1_E500 = .text:0x0000E500; // type:function size:0x5A4 +fn_1_EAA4 = .text:0x0000EAA4; // type:function size:0x25C +fn_1_ED00 = .text:0x0000ED00; // type:function size:0x348 +fn_1_F048 = .text:0x0000F048; // type:function size:0x34C +fn_1_F394 = .text:0x0000F394; // type:function size:0x70 +fn_1_F404 = .text:0x0000F404; // type:function size:0x2B4 +fn_1_F6B8 = .text:0x0000F6B8; // type:function size:0x174 +fn_1_F82C = .text:0x0000F82C; // type:function size:0x4FC +fn_1_FD28 = .text:0x0000FD28; // type:function size:0x3BC +fn_1_100E4 = .text:0x000100E4; // type:function size:0xCC +fn_1_101B0 = .text:0x000101B0; // type:function size:0x40 +fn_1_101F0 = .text:0x000101F0; // type:function size:0x1F4 +fn_1_103E4 = .text:0x000103E4; // type:function size:0x390 +fn_1_10774 = .text:0x00010774; // type:function size:0x70 +fn_1_107E4 = .text:0x000107E4; // type:function size:0x260 +fn_1_10A44 = .text:0x00010A44; // type:function size:0x174 +fn_1_10BB8 = .text:0x00010BB8; // type:function size:0x4C8 +fn_1_11080 = .text:0x00011080; // type:function size:0x3DC +fn_1_1145C = .text:0x0001145C; // type:function size:0xCC +fn_1_11528 = .text:0x00011528; // type:function size:0x40 +fn_1_11568 = .text:0x00011568; // type:function size:0x1F4 +fn_1_1175C = .text:0x0001175C; // type:function size:0x15C +fn_1_118B8 = .text:0x000118B8; // type:function size:0x54 +fn_1_1190C = .text:0x0001190C; // type:function size:0x5C +fn_1_11968 = .text:0x00011968; // type:function size:0x5C +fn_1_119C4 = .text:0x000119C4; // type:function size:0x3EC +fn_1_11DB0 = .text:0x00011DB0; // type:function size:0x198 +fn_1_11F48 = .text:0x00011F48; // type:function size:0x228 +fn_1_12170 = .text:0x00012170; // type:function size:0x3E4 +fn_1_12554 = .text:0x00012554; // type:function size:0x70 +fn_1_125C4 = .text:0x000125C4; // type:function size:0xA0 +fn_1_12664 = .text:0x00012664; // type:function size:0x224 +fn_1_12888 = .text:0x00012888; // type:function size:0x2DC +fn_1_12B64 = .text:0x00012B64; // type:function size:0x2C +fn_1_12B90 = .text:0x00012B90; // type:function size:0x518 +fn_1_130A8 = .text:0x000130A8; // type:function size:0x2C +fn_1_130D4 = .text:0x000130D4; // type:function size:0x28 +fn_1_130FC = .text:0x000130FC; // type:function size:0x274 +fn_1_13370 = .text:0x00013370; // type:function size:0x2C +fn_1_1339C = .text:0x0001339C; // type:function size:0x2C +fn_1_133C8 = .text:0x000133C8; // type:function size:0x24 +fn_1_133EC = .text:0x000133EC; // type:function size:0x2BC +fn_1_136A8 = .text:0x000136A8; // type:function size:0x500 +fn_1_13BA8 = .text:0x00013BA8; // type:function size:0x480 +fn_1_14028 = .text:0x00014028; // type:function size:0x80C +fn_1_14834 = .text:0x00014834; // type:function size:0x28 +fn_1_1485C = .text:0x0001485C; // type:function size:0x28 +fn_1_14884 = .text:0x00014884; // type:function size:0x21C +fn_1_14AA0 = .text:0x00014AA0; // type:function size:0x194 +fn_1_14C34 = .text:0x00014C34; // type:function size:0x198 +fn_1_14DCC = .text:0x00014DCC; // type:function size:0x9C +fn_1_14E68 = .text:0x00014E68; // type:function size:0x2D8 +fn_1_15140 = .text:0x00015140; // type:function size:0x2DC +fn_1_1541C = .text:0x0001541C; // type:function size:0x1E0 +fn_1_155FC = .text:0x000155FC; // type:function size:0xF0 +fn_1_156EC = .text:0x000156EC; // type:function size:0x50 +fn_1_1573C = .text:0x0001573C; // type:function size:0x584 +fn_1_15CC0 = .text:0x00015CC0; // type:function size:0x5D8 +fn_1_16298 = .text:0x00016298; // type:function size:0x2E0 +fn_1_16578 = .text:0x00016578; // type:function size:0x274 +fn_1_167EC = .text:0x000167EC; // type:function size:0x7C +fn_1_16868 = .text:0x00016868; // type:function size:0x44C +fn_1_16CB4 = .text:0x00016CB4; // type:function size:0x434 +fn_1_170E8 = .text:0x000170E8; // type:function size:0x204 +fn_1_172EC = .text:0x000172EC; // type:function size:0x790 +fn_1_17A7C = .text:0x00017A7C; // type:function size:0xB0C +fn_1_18588 = .text:0x00018588; // type:function size:0x720 +fn_1_18CA8 = .text:0x00018CA8; // type:function size:0x9C +fn_1_18D44 = .text:0x00018D44; // type:function size:0xCCC +fn_1_19A10 = .text:0x00019A10; // type:function size:0x924 +fn_1_1A334 = .text:0x0001A334; // type:function size:0x1E8 +fn_1_1A51C = .text:0x0001A51C; // type:function size:0x958 +fn_1_1AE74 = .text:0x0001AE74; // type:function size:0x7C +fn_1_1AEF0 = .text:0x0001AEF0; // type:function size:0x164 +fn_1_1B054 = .text:0x0001B054; // type:function size:0x1B8 +fn_1_1B20C = .text:0x0001B20C; // type:function size:0xA4 +fn_1_1B2B0 = .text:0x0001B2B0; // type:function size:0xF4 +fn_1_1B3A4 = .text:0x0001B3A4; // type:function size:0x80 +fn_1_1B424 = .text:0x0001B424; // type:function size:0x80 +fn_1_1B4A4 = .text:0x0001B4A4; // type:function size:0x28 +fn_1_1B4CC = .text:0x0001B4CC; // type:function size:0x20 +fn_1_1B4EC = .text:0x0001B4EC; // type:function size:0xD8 +fn_1_1B5C4 = .text:0x0001B5C4; // type:function size:0xC8 +fn_1_1B68C = .text:0x0001B68C; // type:function size:0xBC +fn_1_1B748 = .text:0x0001B748; // type:function size:0x40 +fn_1_1B788 = .text:0x0001B788; // type:function size:0x24 +fn_1_1B7AC = .text:0x0001B7AC; // type:function size:0x1C0 +fn_1_1B96C = .text:0x0001B96C; // type:function size:0x84 +fn_1_1B9F0 = .text:0x0001B9F0; // type:function size:0xD4 +fn_1_1BAC4 = .text:0x0001BAC4; // type:function size:0x58 +fn_1_1BB1C = .text:0x0001BB1C; // type:function size:0x15C +fn_1_1BC78 = .text:0x0001BC78; // type:function size:0x21C +fn_1_1BE94 = .text:0x0001BE94; // type:function size:0x204 +fn_1_1C098 = .text:0x0001C098; // type:function size:0x54 +fn_1_1C0EC = .text:0x0001C0EC; // type:function size:0x304 +fn_1_1C3F0 = .text:0x0001C3F0; // type:function size:0x304 +fn_1_1C6F4 = .text:0x0001C6F4; // type:function size:0x340 +fn_1_1CA34 = .text:0x0001CA34; // type:function size:0xC4 +fn_1_1CB80 = .text:0x0001CAF8; // type:function size:0x3B0 +fn_1_1D02C = .text:0x0001CEA8; // type:function size:0x16C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC data:4byte +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC data:4byte +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC data:4byte +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 data:4byte +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string +lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string +lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E data:string +lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 data:string +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:0xE scope:local data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 data:float +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 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x4 data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0x5 +jumptable_1_data_394 = .data:0x00000394; // type:object size:0x2C scope:local +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x3C data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x16 data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0x1A data:string +lbl_1_data_42C = .data:0x0000042C; // type:object size:0x1A data:string +lbl_1_data_446 = .data:0x00000446; // type:object size:0x1A data:string +lbl_1_data_460 = .data:0x00000460; // type:object size:0x17 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x16 data:string +lbl_1_data_48D = .data:0x0000048D; // type:object size:0x16 data:string +lbl_1_data_4A3 = .data:0x000004A3; // type:object size:0x19 data:string +lbl_1_data_4BC = .data:0x000004BC; // type:object size:0x16 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x3E +lbl_1_data_510 = .data:0x00000510; // type:object size:0x3C data:string +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x19 data:string +lbl_1_data_565 = .data:0x00000565; // type:object size:0x1A data:string +lbl_1_data_57F = .data:0x0000057F; // type:object size:0x3D +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x40 data:4byte +lbl_1_data_61C = .data:0x0000061C; // type:object size:0x70 +lbl_1_data_68C = .data:0x0000068C; // type:object size:0x90 data:4byte +lbl_1_data_71C = .data:0x0000071C; // type:object size:0x20 +lbl_1_data_73C = .data:0x0000073C; // type:object size:0x8 data:4byte +lbl_1_data_744 = .data:0x00000744; // type:object size:0x10 +lbl_1_data_754 = .data:0x00000754; // type:object size:0x20 +lbl_1_data_774 = .data:0x00000774; // type:object size:0x4 data:4byte +lbl_1_data_778 = .data:0x00000778; // type:object size:0x8 data:4byte +fontDataTbl = .data:0x00000780; // type:object size:0x4C0 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x18 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x8 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x8 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x8 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x8 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x8 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x10 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x50 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x2C data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0x120 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0xD8 data:4byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x48 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x48 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x4 data:4byte +lbl_1_bss_444 = .bss:0x00000444; // type:object size:0x4 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x14 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x180 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x60 data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x70 data:4byte +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x1 data:byte diff --git a/config/GMPP01_00/rels/msetupDll/splits.txt b/config/GMPP01_00/rels/msetupDll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/msetupDll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/msetupDll/symbols.txt b/config/GMPP01_00/rels/msetupDll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/msetupDll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/mstory2Dll/splits.txt b/config/GMPP01_00/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..cb297417 --- /dev/null +++ b/config/GMPP01_00/rels/mstory2Dll/splits.txt @@ -0,0 +1,54 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B5A4 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B5A4 end:0x0001B9A0 + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPP01_00/rels/mstory2Dll/symbols.txt b/config/GMPP01_00/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..331d554e --- /dev/null +++ b/config/GMPP01_00/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1660C = .text:0x0001660C; // type:function size:0x110 +fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 +fn_1_199A0 = .text:0x000199E4; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019C2C; // type:function size:0x84 +fn_1_19C6C = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F58; // type:function size:0xB4 +fn_1_19FC8 = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A810; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B690; // type:function size:0x224 +fn_1_1B870 = .text:0x0001B8B4; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B950; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstory3Dll/splits.txt b/config/GMPP01_00/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..6d23734f --- /dev/null +++ b/config/GMPP01_00/rels/mstory3Dll/splits.txt @@ -0,0 +1,31 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DED8 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DED8 end:0x0001F100 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPP01_00/rels/mstory3Dll/symbols.txt b/config/GMPP01_00/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..4863cac3 --- /dev/null +++ b/config/GMPP01_00/rels/mstory3Dll/symbols.txt @@ -0,0 +1,550 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x1F8 +fn_1_17484 = .text:0x00017484; // type:function size:0xEC +fn_1_17570 = .text:0x00017570; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DC0; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018080; // type:function size:0x9C +fn_1_1811C = .text:0x0001811C; // type:function size:0x218 +fn_1_18334 = .text:0x00018334; // type:function size:0x1B4 +fn_1_184E8 = .text:0x000184E8; // type:function size:0x70 +fn_1_18558 = .text:0x00018558; // type:function size:0x110 +fn_1_18668 = .text:0x00018668; // type:function size:0x694 +fn_1_18CFC = .text:0x00018CFC; // type:function size:0x29C +fn_1_18F98 = .text:0x00018F98; // type:function size:0x1AC +fn_1_19144 = .text:0x00019144; // type:function size:0xD0 +fn_1_19214 = .text:0x00019214; // type:function size:0x28C +fn_1_194A0 = .text:0x000194A0; // type:function size:0xF0 +fn_1_19590 = .text:0x00019590; // type:function size:0x224 +fn_1_197B4 = .text:0x000197B4; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A008; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BEFC; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C2F4; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C460; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C534; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C914; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CA98; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB7C; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC5C; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD60; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CDF0; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D124; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D63C; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D77C; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8CC; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D964; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA64; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAAC; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE4C; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DED8; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E0F4; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E108; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E118; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E12C; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E13C; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPP01_00/rels/mstory4Dll/splits.txt b/config/GMPP01_00/rels/mstory4Dll/splits.txt new file mode 100644 index 00000000..20264b16 --- /dev/null +++ b/config/GMPP01_00/rels/mstory4Dll/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory4Dll/main.c: + .text start:0x00000000 end:0x00001738 + .rodata start:0x00000000 end:0x00000048 + .data start:0x00000000 end:0x00000722 + .bss start:0x00000000 end:0x00000014 diff --git a/config/GMPP01_00/rels/mstory4Dll/symbols.txt b/config/GMPP01_00/rels/mstory4Dll/symbols.txt new file mode 100644 index 00000000..e98f616c --- /dev/null +++ b/config/GMPP01_00/rels/mstory4Dll/symbols.txt @@ -0,0 +1,67 @@ +fn_1_0 = .text:0x00000000; // type:function size:0xEC +fn_1_EC = .text:0x000000EC; // type:function size:0xE68 +_prolog = .text:0x00000F54; // type:function size:0x54 scope:global +_epilog = .text:0x00000FA8; // type:function size:0x4C scope:global +fn_1_FF4 = .text:0x00000FF4; // type:function size:0xB8 +fn_1_10AC = .text:0x000010AC; // type:function size:0x68C +_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:0x1 data:byte +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x1C data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x1 data:byte +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x3C0 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0xF data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0x14 data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x15 data:string +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x11 data:string +lbl_1_data_409 = .data:0x00000409; // type:object size:0x12 data:string +lbl_1_data_41B = .data:0x0000041B; // type:object size:0x15 +lbl_1_data_430 = .data:0x00000430; // type:object size:0x18 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x20 data:string +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x23 data:string +lbl_1_data_4AF = .data:0x000004AF; // type:object size:0x27 data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x26 data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x29 data:string +lbl_1_data_525 = .data:0x00000525; // type:object size:0x1B +lbl_1_data_540 = .data:0x00000540; // type:object size:0x1C +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x8 data:string +lbl_1_data_564 = .data:0x00000564; // type:object size:0x7 data:string +lbl_1_data_56B = .data:0x0000056B; // type:object size:0x6 data:string +lbl_1_data_571 = .data:0x00000571; // type:object size:0xB +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x1C data:4byte +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x1C +lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x7 data:string +lbl_1_data_5CB = .data:0x000005CB; // type:object size:0x33 data:string +lbl_1_data_5FE = .data:0x000005FE; // type:object size:0x3 data:string +lbl_1_data_601 = .data:0x00000601; // type:object size:0x9 data:string +lbl_1_data_60A = .data:0x0000060A; // type:object size:0x12 +jumptable_1_data_61C = .data:0x0000061C; // type:object size:0x1C scope:local +lbl_1_data_638 = .data:0x00000638; // type:object size:0x6 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x6 data:string +lbl_1_data_644 = .data:0x00000644; // type:object size:0x6 data:string +lbl_1_data_64A = .data:0x0000064A; // type:object size:0x6 data:string +lbl_1_data_650 = .data:0x00000650; // type:object size:0x6 data:string +lbl_1_data_656 = .data:0x00000656; // type:object size:0x7 data:string +lbl_1_data_65D = .data:0x0000065D; // type:object size:0x6 data:string +lbl_1_data_663 = .data:0x00000663; // type:object size:0x9 +lbl_1_data_66C = .data:0x0000066C; // type:object size:0x20 +lbl_1_data_68C = .data:0x0000068C; // type:object size:0x16 data:string +lbl_1_data_6A2 = .data:0x000006A2; // type:object size:0x11 data:string +lbl_1_data_6B3 = .data:0x000006B3; // type:object size:0x10 data:string +lbl_1_data_6C3 = .data:0x000006C3; // type:object size:0xD data:string +lbl_1_data_6D0 = .data:0x000006D0; // type:object size:0x10 data:string +lbl_1_data_6E0 = .data:0x000006E0; // type:object size:0xD data:string +lbl_1_data_6ED = .data:0x000006ED; // type:object size:0x1B data:string +lbl_1_data_708 = .data:0x00000708; // type:object size:0x1A 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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstoryDll/splits.txt b/config/GMPP01_00/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..14c897fa --- /dev/null +++ b/config/GMPP01_00/rels/mstoryDll/splits.txt @@ -0,0 +1,43 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141A0 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPP01_00/rels/mstoryDll/symbols.txt b/config/GMPP01_00/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..0956831b --- /dev/null +++ b/config/GMPP01_00/rels/mstoryDll/symbols.txt @@ -0,0 +1,500 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x1F8 +fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 +fn_1_14150 = .text:0x00014150; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/nisDll/splits.txt b/config/GMPP01_00/rels/nisDll/splits.txt new file mode 100644 index 00000000..2e500fe0 --- /dev/null +++ b/config/GMPP01_00/rels/nisDll/splits.txt @@ -0,0 +1,5 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 diff --git a/config/GMPP01_00/rels/nisDll/symbols.txt b/config/GMPP01_00/rels/nisDll/symbols.txt new file mode 100644 index 00000000..1143328c --- /dev/null +++ b/config/GMPP01_00/rels/nisDll/symbols.txt @@ -0,0 +1,6 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x68 +fn_1_68 = .text:0x00000068; // type:function size:0x2C +_prolog = .text:0x00000094; // type:function size:0x9C scope:global +_epilog = .text:0x00000130; // type:function size:0x4C scope:global +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPP01_00/rels/option/splits.txt b/config/GMPP01_00/rels/option/splits.txt new file mode 100644 index 00000000..0b7d9789 --- /dev/null +++ b/config/GMPP01_00/rels/option/splits.txt @@ -0,0 +1,61 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x0000A3E8 + .rodata start:0x000013C0 end:0x000019C8 + .data start:0x00000210 end:0x00000254 + .bss start:0x00000040 end:0x00000044 + +REL/option/window.c: + .text start:0x0000A3E8 end:0x0000A948 + .rodata start:0x000019C8 end:0x000019E8 diff --git a/config/GMPP01_00/rels/option/symbols.txt b/config/GMPP01_00/rels/option/symbols.txt new file mode 100644 index 00000000..16625f3c --- /dev/null +++ b/config/GMPP01_00/rels/option/symbols.txt @@ -0,0 +1,381 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0xC0 +OptionFadeSprite = .text:0x00000160; // type:function size:0x110 +FadeSprite = .text:0x00000270; // type:function size:0xE4 scope:local +OptionFadeModel = .text:0x00000354; // type:function size:0x114 scope:local +FadeModel = .text:0x00000468; // type:function size:0xE8 scope:local +OptionPadCheck = .text:0x00000550; // type:function size:0x34 +OptionPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +OptionPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xFC scope:local +KillScene = .text:0x000006E8; // type:function size:0x110 scope:local +OptionCameraCreate = .text:0x000007F8; // type:function size:0x244 +OptionCameraKill = .text:0x00000A3C; // type:function size:0x30 +OptionCameraTargetSet = .text:0x00000A6C; // type:function size:0x84 +OptionCameraFocusSet = .text:0x00000AF0; // type:function size:0x84 +OptionCameraViewSet = .text:0x00000B74; // type:function size:0x84 +OptionCameraZoomGet = .text:0x00000BF8; // type:function size:0x30 +OptionCameraRotGet = .text:0x00000C28; // type:function size:0x30 +OptionCameraPosGet = .text:0x00000C58; // type:function size:0x30 +OptionCameraTargetGet = .text:0x00000C88; // type:function size:0x30 +OptionCameraDoneCheck = .text:0x00000CB8; // type:function size:0x8C +ExecCameraObj = .text:0x00000D44; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000D6C; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x000012E4; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x000014E4; // type:function size:0xC0 scope:local +OptionRoomCreate = .text:0x000015A4; // type:function size:0x1F4 +OptionRoomKill = .text:0x00001798; // type:function size:0xAC +MoveOption = .text:0x00001844; // type:function size:0x1E8 scope:local +OptionRoomExecModeSet = .text:0x00001A2C; // type:function size:0x44 +OptionRoomExecModeGet = .text:0x00001A70; // type:function size:0x1C +ExecRoom = .text:0x00001A8C; // type:function size:0x5FC scope:local +CreateRoomBG = .text:0x00002088; // type:function size:0x88 scope:local +KillRoomBG = .text:0x00002110; // type:function size:0x34 scope:local +CreateArrow = .text:0x00002144; // type:function size:0x80 scope:local +KillArrow = .text:0x000021C4; // type:function size:0x34 scope:local +OptionGuideCreate = .text:0x000021F8; // type:function size:0x224 +OptionGuideKill = .text:0x0000241C; // type:function size:0x8C +SetExecMode = .text:0x000024A8; // type:function size:0x44 scope:local +GetExecMode = .text:0x000024EC; // type:function size:0x1C scope:local +OptionGuideWalkExec = .text:0x00002508; // type:function size:0xA4 +ExecGuide = .text:0x000025AC; // type:function size:0x46C scope:local +UpdateGuide = .text:0x00002A18; // type:function size:0x2E8 scope:local +LerpAngle = .text:0x00002D00; // type:function size:0x104 scope:local +OptionStateCreate = .text:0x00002E04; // type:function size:0x148 +OptionStateKill = .text:0x00002F4C; // type:function size:0x64 +ExecState = .text:0x00002FB0; // type:function size:0x1A8 scope:local +OptionRumbleCreate = .text:0x00003158; // type:function size:0xD4 +OptionRumbleKill = .text:0x0000322C; // type:function size:0x64 +OptionRumbleExecModeSet = .text:0x00003290; // type:function size:0x44 +OptionRumbleExecModeGet = .text:0x000032D4; // type:function size:0x1C +ExecRumble = .text:0x000032F0; // type:function size:0x4BC scope:local +CreateHand = .text:0x000037AC; // type:function size:0xBC scope:local +KillHand = .text:0x00003868; // type:function size:0x54 scope:local +CreateSystem = .text:0x000038BC; // type:function size:0xD0 scope:local +KillSystem = .text:0x0000398C; // type:function size:0x54 scope:local +StartSystemMotion = .text:0x000039E0; // type:function size:0x128 scope:local +CreatePad = .text:0x00003B08; // type:function size:0x84 scope:local +KillPad = .text:0x00003B8C; // type:function size:0x54 scope:local +ShakePad = .text:0x00003BE0; // type:function size:0x8C scope:local +CreatePadFilter = .text:0x00003C6C; // type:function size:0x94 scope:local +KillPadFilter = .text:0x00003D00; // type:function size:0x54 scope:local +OptionRumbleMotionShowStart = .text:0x00003D54; // type:function size:0xC8 +OptionRumbleMotionHideStart = .text:0x00003E1C; // type:function size:0xB4 +OptionRumbleMotionCheck = .text:0x00003ED0; // type:function size:0x58 +CreateHiliteOn = .text:0x00003F28; // type:function size:0xAC scope:local +KillHiliteOn = .text:0x00003FD4; // type:function size:0x54 scope:local +OptionSoundCreate = .text:0x00004028; // type:function size:0x2B4 +OptionSoundKill = .text:0x000042DC; // type:function size:0xAC +OptionSoundExecModeSet = .text:0x00004388; // type:function size:0x44 +OptionSoundExecModeGet = .text:0x000043CC; // type:function size:0x1C +ExecZoom = .text:0x000043E8; // type:function size:0x270 scope:local +ExecOptionSel = .text:0x00004658; // type:function size:0x424 scope:local +ExecOutputMode = .text:0x00004A7C; // type:function size:0x3D4 scope:local +ExecMusic = .text:0x00004E50; // type:function size:0x93C scope:local +ExecVoice = .text:0x0000578C; // type:function size:0x8B8 scope:local +LightSetCurr = .text:0x00006044; // type:function size:0xF8 scope:local +LightSetNone = .text:0x0000613C; // type:function size:0x64 scope:local +CreateHand = .text:0x000061A0; // type:function size:0xFC scope:local +KillHand = .text:0x0000629C; // type:function size:0x54 scope:local +CreateOutputModeHand = .text:0x000062F0; // type:function size:0xFC scope:local +KillOutputModeHand = .text:0x000063EC; // type:function size:0x54 scope:local +CreateSystem = .text:0x00006440; // type:function size:0x94 scope:local +KillSystem = .text:0x000064D4; // type:function size:0x54 scope:local +CreateLightObj = .text:0x00006528; // type:function size:0x118 scope:local +KillLightObj = .text:0x00006640; // type:function size:0x54 scope:local +LightDispOff = .text:0x00006694; // type:function size:0x38 scope:local +LightDispOn = .text:0x000066CC; // type:function size:0x38 scope:local +CreateSpr = .text:0x00006704; // type:function size:0xC4 scope:local +KillSpr = .text:0x000067C8; // type:function size:0x60 scope:local +OptionSelDisp = .text:0x00006828; // type:function size:0x1E4 scope:local +OptionSelHide = .text:0x00006A0C; // type:function size:0x74 scope:local +OutputModeDisp = .text:0x00006A80; // type:function size:0x1DC scope:local +OutputModeHide = .text:0x00006C5C; // type:function size:0x74 scope:local +MusicPageDisp = .text:0x00006CD0; // type:function size:0x1D4 scope:local +MusicPageHide = .text:0x00006EA4; // type:function size:0xA4 scope:local +VoicePageDisp = .text:0x00006F48; // type:function size:0x1D4 scope:local +VoicePageHide = .text:0x0000711C; // type:function size:0xA4 scope:local +CreateNoteObj = .text:0x000071C0; // type:function size:0xE8 scope:local +KillNote = .text:0x000072A8; // type:function size:0x68 scope:local +HandleNote = .text:0x00007310; // type:function size:0x400 scope:local +CreateNote = .text:0x00007710; // type:function size:0x190 scope:local +CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local +KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local +ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local +PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local +FadeSound = .text:0x00008048; // type:function size:0x9C scope:local +OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 +OptionRecordKill = .text:0x0000825C; // type:function size:0x54 +OptionRecordExecModeSet = .text:0x000082B0; // type:function size:0x44 +OptionRecordExecModeGet = .text:0x000082F4; // type:function size:0x1C +ExecRecord = .text:0x00008310; // type:function size:0x778 scope:local +CreateSystem = .text:0x00008A88; // type:function size:0xD0 scope:local +KillSystem = .text:0x00008B58; // type:function size:0x54 scope:local +StartSystemMotion = .text:0x00008BAC; // type:function size:0xD8 scope:local +CreateHand = .text:0x00008C84; // type:function size:0xFC scope:local +KillHand = .text:0x00008D80; // type:function size:0x54 scope:local +CreateSpr = .text:0x00008DD4; // type:function size:0xC4 scope:local +KillSpr = .text:0x00008E98; // type:function size:0x60 scope:local +GetDigit = .text:0x00008EF8; // type:function size:0x40 scope:local +ShowBoard = .text:0x00008F38; // type:function size:0x72C scope:local +HideBoard = .text:0x00009664; // type:function size:0x9C scope:local +ShowTotal = .text:0x00009700; // type:function size:0x344 scope:local +HideTotal = .text:0x00009A44; // type:function size:0x7C scope:local +ShowMG = .text:0x00009AC0; // type:function size:0x88C scope:local +HideMG = .text:0x0000A34C; // type:function size:0x9C scope:local +OptionWinCreate = .text:0x0000A3E8; // type:function size:0x260 +OptionWinKill = .text:0x0000A648; // type:function size:0x40 +OptionWinAnimIn = .text:0x0000A688; // type:function size:0x18 +OptionWinAnimOut = .text:0x0000A6A0; // type:function size:0x18 +OptionWinMesSet = .text:0x0000A6B8; // type:function size:0x54 +OptionWinInsertMesSet = .text:0x0000A70C; // type:function size:0x40 +OptionWinPosSet = .text:0x0000A74C; // type:function size:0x40 +OptionWinDispOn = .text:0x0000A78C; // type:function size:0x38 +OptionWinDispOff = .text:0x0000A7C4; // type:function size:0x38 +OptionWinMesWait = .text:0x0000A7FC; // type:function size:0x20 +OptionWinChoiceSet = .text:0x0000A81C; // type:function size:0x24 +ExecWindow = .text:0x0000A840; // type:function size:0x108 scope:local +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +_half$localstatic3$sqrtf = .rodata:0x00000000; // type:object size:0x8 scope:weak data:double +_three$localstatic4$sqrtf = .rodata:0x00000008; // type:object size:0x8 scope:weak data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +guideAngleTbl = .rodata:0x000000BC; // type:object size:0xC scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local +guideMotTbl = .rodata:0x000000E0; // type:object size:0xC scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:float +musigPageNameTbl = .rodata:0x000001A8; // type:object size:0x38 scope:local +musicTbl = .rodata:0x000001E0; // type:object size:0x8C0 scope:local +voiceCharNameTbl = .rodata:0x00000AA0; // type:object size:0x30 scope:local +lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 scope:local +lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 scope:local data:double +outputModeTbl = .rodata:0x00001278; // type:object size:0x8 scope:local +soundModeTbl = .rodata:0x00001280; // type:object size:0x8 scope:local +soundModeNameTbl = .rodata:0x00001288; // type:object size:0x8 scope:local +lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 scope:local data:float +lightPosTbl = .rodata:0x000012D0; // type:object size:0x24 scope:local +lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C scope:local +lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 scope:local +lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 scope:local +lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 scope:local +lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 scope:local data:float +mgRecordIdxTbl = .rodata:0x000013C0; // type:object size:0x18 scope:local +lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 scope:local data:float +sprTbl = .rodata:0x0000143C; // type:object size:0x264 scope:local +lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 scope:local data:float +boardSprHideTbl = .rodata:0x000016F0; // type:object size:0xD4 scope:local +lbl_1_rodata_17C4 = .rodata:0x000017C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 scope:local data:float +totalSprHideTbl = .rodata:0x000017E0; // type:object size:0x84 scope:local +mgTbl = .rodata:0x00001864; // type:object size:0x48 scope:local +lbl_1_rodata_18AC = .rodata:0x000018AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 scope:local data:float +mgSprHideTbl = .rodata:0x000018C0; // type:object size:0x108 scope:local +lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 scope:local data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B scope:local data:string +lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B scope:local data:string +lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 scope:local data:string +execModeTbl = .data:0x00000068; // type:object size:0x8 scope:local data:4byte +jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local +execModeTbl = .data:0x00000098; // type:object size:0x8 scope:local data:4byte +lightTbl = .data:0x000000A0; // type:object size:0x1C scope:local +shadowPosTbl = .data:0x000000BC; // type:object size:0x24 scope:local +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local +execModeTbl = .data:0x00000108; // type:object size:0x8 scope:local data:4byte +lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 scope:local +musicPageOn = .data:0x00000118; // type:object size:0x38 scope:local data:4byte +execModeTbl = .data:0x00000150; // type:object size:0x18 scope:local data:4byte +choiceMess = .data:0x00000168; // type:object size:0xC scope:local +jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local +jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local +spriteDataTbl = .data:0x000001BC; // type:object size:0x4C scope:local +noteMdlTbl = .data:0x00000208; // type:object size:0x8 scope:local +execModeTbl = .data:0x00000210; // type:object size:0x8 scope:local data:4byte +jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local +rumbleF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +scene = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +optionObjMan = .bss:0x00000008; // type:object size:0x8 data:4byte +optionCamera = .bss:0x00000010; // type:object size:0x8 data:4byte +optionRoom = .bss:0x00000018; // type:object size:0x8 data:4byte +optionGuide = .bss:0x00000020; // type:object size:0x8 data:4byte +optionState = .bss:0x00000028; // type:object size:0x8 data:4byte +optionRumble = .bss:0x00000030; // type:object size:0x8 data:4byte +optionSound = .bss:0x00000038; // type:object size:0x8 data:4byte +optionRecord = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/present/splits.txt b/config/GMPP01_00/rels/present/splits.txt new file mode 100644 index 00000000..3c65c150 --- /dev/null +++ b/config/GMPP01_00/rels/present/splits.txt @@ -0,0 +1,36 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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:0x000006B4 + .rodata start:0x00000000 end:0x00000020 + .bss start:0x00000000 end:0x00000020 + +REL/present/camera.c: + .text start:0x000006B4 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 diff --git a/config/GMPP01_00/rels/present/symbols.txt b/config/GMPP01_00/rels/present/symbols.txt new file mode 100644 index 00000000..332b6bce --- /dev/null +++ b/config/GMPP01_00/rels/present/symbols.txt @@ -0,0 +1,193 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0xA4 +PresentFadeSprite = .text:0x00000144; // type:function size:0x110 +FadeSprite = .text:0x00000254; // type:function size:0xE0 scope:local +FadeSpriteWithMultiplier = .text:0x00000334; // type:function size:0x128 +FadeModel = .text:0x0000045C; // type:function size:0xF4 scope:local +PresentPadCheck = .text:0x00000550; // type:function size:0x34 +PresentPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +PresentPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xC8 scope:local +PresentCameraCreate = .text:0x000006B4; // type:function size:0x23C +PresentCameraKill = .text:0x000008F0; // type:function size:0x30 +PresentCameraTargetSet = .text:0x00000920; // type:function size:0x84 +PresentCameraFocusSet = .text:0x000009A4; // type:function size:0x84 +PresentCameraViewSet = .text:0x00000A28; // type:function size:0x84 +PresentCameraZoomGet = .text:0x00000AAC; // type:function size:0x30 +PresentCameraRotGet = .text:0x00000ADC; // type:function size:0x30 +PresentCameraPosGet = .text:0x00000B0C; // type:function size:0x30 +PresentCameraTargetGet = .text:0x00000B3C; // type:function size:0x30 +PresentCameraDoneCheck = .text:0x00000B6C; // type:function size:0x8C +ExecCameraObj = .text:0x00000BF8; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000C20; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x00001198; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x00001398; // type:function size:0xC0 scope:local +PresentCreate = .text:0x00001458; // type:function size:0x32C +PresentKill = .text:0x00001784; // type:function size:0x88 +PresentExecModeSet = .text:0x0000180C; // type:function size:0x44 +PresentExecModeGet = .text:0x00001850; // type:function size:0x1C +PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC +ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local +ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local +ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local +GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local +SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local +RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local +CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local +ShowHidePresents = .text:0x00002924; // type:function size:0x260 scope:local +PresentUnlocked = .text:0x00002B84; // type:function size:0x48 scope:local +UnlockedPresents = .text:0x00002BCC; // type:function size:0x90 scope:local +MoveCursor = .text:0x00002C5C; // type:function size:0x738 scope:local +TotalPresentsInRoom = .text:0x00003394; // type:function size:0x18 scope:local +ExecPresentGet = .text:0x000033AC; // type:function size:0x590 scope:local +fn_1_393C = .text:0x0000393C; // type:function size:0x6C scope:local +PresentStateCreate = .text:0x000039A8; // type:function size:0x170 +PresentStateKill = .text:0x00003B18; // type:function size:0x74 +ExecPresentView = .text:0x00003B8C; // type:function size:0x22C scope:local +ExecPresentGet = .text:0x00003DB8; // type:function size:0xEC scope:local +PresentWinCreate = .text:0x00003EA4; // type:function size:0x19C +PresentWinKill = .text:0x00004040; // type:function size:0x40 +PresentWinAnimIn = .text:0x00004080; // type:function size:0x18 +PresentWinAnimOut = .text:0x00004098; // type:function size:0x18 +PresentWinMesSet = .text:0x000040B0; // type:function size:0x54 +PresentWinInsertMesSet = .text:0x00004104; // type:function size:0x40 +PresentWinPosSet = .text:0x00004144; // type:function size:0x40 +PresentWinDispOn = .text:0x00004184; // type:function size:0xC +PresentWinDispOff = .text:0x00004190; // type:function size:0xC +PresentWinMesWait = .text:0x0000419C; // type:function size:0x20 +PresentWinChoiceSet = .text:0x000041BC; // type:function size:0x24 +ExecWindow = .text:0x000041E0; // type:function size:0x114 scope:local +PresentGuideCreate = .text:0x000042F4; // type:function size:0x240 +PresentGuideKill = .text:0x00004534; // type:function size:0x8C +PresentGuideExecModeSet = .text:0x000045C0; // type:function size:0x44 +PresentGuideExecModeGet = .text:0x00004604; // type:function size:0x1C +ExecGuideEnter = .text:0x00004620; // type:function size:0x260 scope:local +ExecGuideLeave = .text:0x00004880; // type:function size:0x184 scope:local +UpdateGuide = .text:0x00004A04; // type:function size:0x2E8 scope:local +LerpAngle = .text:0x00004CEC; // type:function size:0x104 scope:local +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +presentMdlTbl = .rodata:0x000000A0; // type:object size:0x218 scope:local +roomTbl = .rodata:0x000002B8; // type:object size:0x708 scope:local +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 scope:local data:float +roomIdxTbl = .rodata:0x000009D8; // type:object size:0x20 scope:local +roomMessTbl = .rodata:0x000009F8; // type:object size:0x28 scope:local +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 scope:local data:float +roomPresentOffsetTbl = .rodata:0x00000A74; // type:object size:0x28 scope:local +lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 scope:local data:double +totalPresentCntTbl = .rodata:0x00000AC8; // type:object size:0x28 scope:local +presentItemIdxTbl = .rodata:0x00000AF0; // type:object size:0x28 scope:local +lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 scope:local +constellationIdxTbl = .rodata:0x00000B40; // type:object size:0x28 scope:local +roofIdxTbl = .rodata:0x00000B68; // type:object size:0x28 scope:local +lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0x8 scope:local +lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x4 scope:local data:float +guideMotTbl = .rodata:0x00000BD8; // type:object size:0xC scope:local +lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x16 scope:local data:string +lightTbl = .data:0x00000050; // type:object size:0x1C scope:local data:4byte +execModeTbl = .data:0x0000006C; // type:object size:0x10 scope:local data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 scope:local data:string +roomIdxTbl2 = .data:0x00000084; // type:object size:0x20 +jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local +shadowPosTbl = .data:0x000000F0; // type:object size:0x24 scope:local data:float +lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A scope:local data:string +lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2B scope:local data:string +jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local +execModeTbl = .data:0x000001A0; // type:object size:0xC scope:local data:4byte +scene = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +presentObjMan = .bss:0x00000004; // type:object size:0x4 data:4byte +presentCamera = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +present = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +presentState = .bss:0x00000018; // type:object size:0x4 data:4byte +presentGuide = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/resultDll/splits.txt b/config/GMPP01_00/rels/resultDll/splits.txt new file mode 100644 index 00000000..a2f15b2b --- /dev/null +++ b/config/GMPP01_00/rels/resultDll/splits.txt @@ -0,0 +1,27 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/resultDll/main.c: + .text start:0x000000A0 end:0x00006490 + .rodata start:0x00000000 end:0x00000160 + .data start:0x00000000 end:0x000004E8 + .bss start:0x00000000 end:0x00000190 + +REL/resultDll/battle.c: + .text start:0x00006490 end:0x00008FF8 + .rodata start:0x00000160 end:0x00000220 + .data start:0x000004E8 end:0x00000918 + .bss start:0x00000190 end:0x00001A18 + +REL/resultDll/datalist.c: + .text start:0x00008FF8 end:0x0000942C + .rodata start:0x00000220 end:0x00000230 + .bss start:0x00001A18 end:0x00001ADC diff --git a/config/GMPP01_00/rels/resultDll/symbols.txt b/config/GMPP01_00/rels/resultDll/symbols.txt new file mode 100644 index 00000000..db16ef1b --- /dev/null +++ b/config/GMPP01_00/rels/resultDll/symbols.txt @@ -0,0 +1,210 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x438 +ResultMain = .text:0x000004D8; // type:function size:0x3B0 scope:local +ResultIdle = .text:0x00000888; // type:function size:0x2F0 scope:local +ResultCreate = .text:0x00000B78; // type:function size:0x13D4 scope:local +ResultStatAdd = .text:0x00001F4C; // type:function size:0xB90 scope:local +ResultOrderApply = .text:0x00002ADC; // type:function size:0x1074 scope:local +ResultSprNumSet = .text:0x00003B50; // type:function size:0x15C scope:local +ResultCoinAddNumSet = .text:0x00003CAC; // type:function size:0x15C scope:local +ResultOrderSet = .text:0x00003E08; // type:function size:0x1D0 scope:local +ResultBoardDataRead = .text:0x00003FD8; // type:function size:0x104 +ResultCoinAdd = .text:0x000040DC; // type:function size:0x160 +ResultCoinNumGet = .text:0x0000423C; // type:function size:0x3E0 +SaveExec = .text:0x0000461C; // type:function size:0x1E0 scope:local +ResultTeamExec = .text:0x000047FC; // type:function size:0x1084 scope:local +CameraDebug = .text:0x00005880; // type:function size:0xC10 +ResultBattleMain = .text:0x00006490; // type:function size:0x2D0 +ResultBattleIdle = .text:0x00006760; // type:function size:0xC4 scope:local +ResultBattleCreate = .text:0x00006824; // type:function size:0xD20 scope:local +ResultBattleStatAdd = .text:0x00007544; // type:function size:0xA54 scope:local +ResultBattleCoinAddShow = .text:0x00007F98; // type:function size:0x3A0 scope:local +ResultBattleCoinAddNumSet = .text:0x00008338; // type:function size:0x14C scope:local +ResultBattleOrderSet = .text:0x00008484; // type:function size:0x1D4 scope:local +CoinEffectInit = .text:0x00008658; // type:function size:0x84 scope:local +CoinEffectAdd = .text:0x000086DC; // type:function size:0x2BC scope:local +CoinEffectMain = .text:0x00008998; // type:function size:0x320 scope:local +ResultShadowDraw = .text:0x00008CB8; // type:function size:0x340 scope:local +StageModelCreate = .text:0x00008FF8; // type:function size:0x284 +StageSpriteCreate = .text:0x0000927C; // type:function size:0x138 +StageSpriteKill = .text:0x000093B4; // type:function size:0x78 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +resultModel = .data:0x00000000; // type:object size:0x2A4 scope:local +resultSprite = .data:0x000002A4; // type:object size:0xDC scope:local data:4byte +rankNewGrpId = .data:0x00000380; // type:object size:0x2 scope:local data:2byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string +resultBackFile = .data:0x000003A8; // type:object size:0x18 scope:local +resultLetterFile = .data:0x000003C0; // type:object size:0x18 scope:local +resultStatPosTbl = .data:0x000003D8; // type:object size:0x20 scope:local +resultRankPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local +resultCharPosTbl = .data:0x00000408; // type:object size:0x30 scope:local +resultCoinAddPosTbl = .data:0x00000438; // type:object size:0x10 scope:local +lbl_1_data_448 = .data:0x00000448; // type:object size:0x5 scope:local data:string +resultBoardDirTbl = .data:0x00000450; // type:object size:0x18 scope:local +resultCharMdlTbl = .data:0x00000468; // type:object size:0x20 scope:local +resultTeamCharPosTbl = .data:0x00000488; // type:object size:0x30 scope:local +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string +resultBattleModel = .data:0x000004E8; // type:object size:0x270 scope:local +resultBattleSprite = .data:0x00000758; // type:object size:0x28 scope:local +resultBattleEffParMan = .data:0x00000780; // type:object size:0x50 scope:local +resultStatPosTbl = .data:0x000007D0; // type:object size:0x20 scope:local +playerPosTbl = .data:0x000007F0; // type:object size:0x30 scope:local +lbl_1_data_820 = .data:0x00000820; // type:object size:0x10 +bomheiCubeMdlTbl = .data:0x00000830; // type:object size:0x10 scope:local +coinEffectYOfs = .data:0x00000840; // type:object size:0x20 scope:local +coinAddYOfs = .data:0x00000860; // type:object size:0x20 scope:local +coinBlankYOfs = .data:0x00000880; // type:object size:0x20 scope:local +coinNumXOfs = .data:0x000008A0; // type:object size:0x6 scope:local data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:string +cameraShakeOfs = .data:0x000008B8; // type:object size:0x60 scope:local +resultReorderF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +resultSkipF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +resultTeamOrder = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +resultCharCubeMdlId = .bss:0x0000000A; // type:object size:0x8 scope:local +resultCoinAddSprId = .bss:0x00000012; // type:object size:0x28 scope:local +resultCoinAddGrpId = .bss:0x0000003A; // type:object size:0x8 scope:local +resultRank = .bss:0x00000042; // type:object size:0x8 scope:local +resultOrder = .bss:0x0000004A; // type:object size:0x8 scope:local +resultRankGrpId = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte +resultPlayerCubeMdlId = .bss:0x00000054; // type:object size:0x8 scope:local +resultCubeMdlId = .bss:0x0000005C; // type:object size:0x40 scope:local +resultCrownGrpId = .bss:0x0000009C; // type:object size:0x2 scope:local data:2byte +resultNumSprId = .bss:0x0000009E; // type:object size:0x30 scope:local +resultNumGrpId = .bss:0x000000CE; // type:object size:0x10 scope:local +resultCrownAnim = .bss:0x000000E0; // type:object size:0x4 scope:local data:4byte +resultCharAnim = .bss:0x000000E4; // type:object size:0x60 scope:local +resultRankAnim = .bss:0x00000144; // type:object size:0x14 scope:local +statShadowMdlId = .bss:0x00000158; // type:object size:0x10 scope:local +charShadowMdlId = .bss:0x00000168; // type:object size:0x8 scope:local +teamResultGrpId = .bss:0x00000170; // type:object size:0x2 scope:local data:2byte +resultBonusPlayer = .bss:0x00000172; // type:object size:0x2 data:2byte +resultFastF = .bss:0x00000174; // type:object size:0x4 data:4byte +resultReadEndF = .bss:0x00000178; // type:object size:0x4 data:4byte +resultMgNo = .bss:0x0000017C; // type:object size:0x2 data:2byte +objman = .bss:0x00000180; // type:object size:0x4 data:4byte +outViewObj = .bss:0x00000184; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte +resultBattleSkipF = .bss:0x00000190; // type:object size:0x4 scope:local data:4byte +coinEffectData = .bss:0x00000194; // type:object size:0x1680 scope:local +resultBattleEffParManId = .bss:0x00001814; // type:object size:0x8 scope:local +lbl_1_bss_181C = .bss:0x0000181C; // type:object size:0xC +coinEffectMdlId = .bss:0x00001828; // type:object size:0x168 scope:local data:2byte +resultBattleCharMot = .bss:0x00001990; // type:object size:0x20 scope:local +resultBattleCharMdl = .bss:0x000019B0; // type:object size:0x8 scope:local +coinNumSprId = .bss:0x000019B8; // type:object size:0x28 scope:local +coinNumGrpId = .bss:0x000019E0; // type:object size:0x8 scope:local +resultBattleRank = .bss:0x000019E8; // type:object size:0x8 scope:local +resultBattleOrder = .bss:0x000019F0; // type:object size:0x8 scope:local +lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 +lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 +stageSprId = .bss:0x00001A1A; // type:object size:0x42 data:2byte +stageMotId = .bss:0x00001A5C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPP01_00/rels/safDll/splits.txt b/config/GMPP01_00/rels/safDll/splits.txt new file mode 100644 index 00000000..43792488 --- /dev/null +++ b/config/GMPP01_00/rels/safDll/splits.txt @@ -0,0 +1,12 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/safDll/main.c: + .text start:0x00000000 end:0x000003AC + .rodata start:0x00000000 end:0x00000024 + .data start:0x00000000 end:0x00000039 diff --git a/config/GMPP01_00/rels/safDll/symbols.txt b/config/GMPP01_00/rels/safDll/symbols.txt new file mode 100644 index 00000000..6a012c0c --- /dev/null +++ b/config/GMPP01_00/rels/safDll/symbols.txt @@ -0,0 +1,14 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4 +safMarioEyeDim = .text:0x00000004; // type:function size:0x284 +safSaveTest = .text:0x00000288; // type:function size:0x124 +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 +lbl_1_data_4 = .data:0x00000004; // type:object size:0xE scope:local data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0xB scope:local data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE scope:local data:string diff --git a/config/GMPP01_00/rels/selmenuDll/splits.txt b/config/GMPP01_00/rels/selmenuDll/splits.txt new file mode 100644 index 00000000..39e27b1f --- /dev/null +++ b/config/GMPP01_00/rels/selmenuDll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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/main.c: + .text start:0x000000A0 end:0x00005198 + .rodata start:0x00000000 end:0x00000084 + .data start:0x00000000 end:0x00000B3F + .bss start:0x00000000 end:0x00000098 diff --git a/config/GMPP01_00/rels/selmenuDll/symbols.txt b/config/GMPP01_00/rels/selmenuDll/symbols.txt new file mode 100644 index 00000000..199e2ba8 --- /dev/null +++ b/config/GMPP01_00/rels/selmenuDll/symbols.txt @@ -0,0 +1,204 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .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 +MoveSMPage = .text:0x00000A4C; // type:function size:0x180 scope:local +MoveSMCursor = .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 +SMGroupGen = .text:0x00001B40; // type:function size:0x334 scope:local +SMChangeChar = .text:0x00001E74; // type:function size:0x110 scope:local +SMCharKill = .text:0x00001F84; // type:function size:0x50 scope:local +CharRandomize = .text:0x00001FD4; // type:function size:0x10C scope:local +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 +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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 scope:local data:string +lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 scope:local data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 scope:local data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 scope:local data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 scope:local data:string +lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0x8 scope:local data:string +smCharTbl = .data:0x00000034; // type:object size:0x20 scope:local +lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 scope:local data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 scope:local data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 scope:local data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 scope:local data:string +lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD scope:local data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 scope:local data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE scope:local data:string +lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 scope:local data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 scope:local data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xF scope:local data:string +lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 scope:local data:string +lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 scope:local data:string +lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 scope:local data:string +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 scope:local data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 scope:local data:string +lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 scope:local data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 scope:local data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 scope:local data:string +lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 scope:local data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF scope:local data:string +lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 scope:local data:string +lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE scope:local data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 scope:local data:string +lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 scope:local data:string +lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 scope:local data:string +lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 scope:local data:string +lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 scope:local data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 scope:local data:string +lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 scope:local data:string +lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B scope:local data:string +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 scope:local data:string +lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D scope:local data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 scope:local data:string +lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 scope:local data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 scope:local data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 scope:local data:string +lbl_1_data_357 = .data:0x00000357; // type:object size:0xE scope:local data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 scope:local data:string +lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 scope:local data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 scope:local data:string +lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD scope:local data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD scope:local data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 scope:local data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE scope:local data:string +lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB scope:local data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 scope:local data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 scope:local data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA scope:local data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 scope:local data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0xD scope:local data:string +lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 scope:local data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 scope:local data:string +lbl_1_data_453 = .data:0x00000453; // type:object size:0xF scope:local data:string +lbl_1_data_462 = .data:0x00000462; // type:object size:0xE scope:local data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0xE scope:local data:string +lbl_1_data_47E = .data:0x0000047E; // type:object size:0xE scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0xE scope:local data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xE scope:local data:string +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0xE scope:local data:string +lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE scope:local data:string +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA scope:local data:string +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xF scope:local data:string +smMenuTbl = .data:0x000004EC; // type:object size:0x348 scope:local +cameraMaskTbl = .data:0x00000834; // type:object size:0x10 scope:local +lbl_1_data_844 = .data:0x00000844; // type:object size:0x18 scope:local +lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 scope:local data:string +lbl_1_data_86E = .data:0x0000086E; // type:object size:0x12 scope:local data:string +lbl_1_data_880 = .data:0x00000880; // type:object size:0x12 scope:local data:string +lbl_1_data_892 = .data:0x00000892; // type:object size:0x12 scope:local data:string +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x12 scope:local data:string +lbl_1_data_8B6 = .data:0x000008B6; // type:object size:0x12 scope:local data:string +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 scope:local data:string +lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x1 scope:local +dvdMusTbl = .data:0x000008DC; // type:object size:0x20 scope:local +smSelectPosExit = .data:0x000008FC; // type:object size:0x2 scope:local data:2byte +keyDStkAllPrev = .data:0x000008FE; // type:object size:0x8 scope:local +lbl_1_data_906 = .data:0x00000906; // type:object size:0xF scope:local data:string +funcId$244 = .data:0x00000918; // type:object size:0x4 scope:local data:4byte +lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 scope:local data:string +lbl_1_data_92E = .data:0x0000092E; // type:object size:0x24 scope:local data:string +lbl_1_data_952 = .data:0x00000952; // type:object size:0xB scope:local data:string +lbl_1_data_95D = .data:0x0000095D; // type:object size:0x3 scope:local data:string +lbl_1_data_960 = .data:0x00000960; // type:object size:0xD scope:local data:string +charMdlTbl = .data:0x00000970; // type:object size:0x20 scope:local +charMdlMotTbl = .data:0x00000990; // type:object size:0x20 scope:local +lbl_1_data_9B0 = .data:0x000009B0; // type:object size:0xD scope:local data:string +lbl_1_data_9BD = .data:0x000009BD; // type:object size:0x5 scope:local +lbl_1_data_9C2 = .data:0x000009C2; // type:object size:0x5 scope:local +lbl_1_data_9C7 = .data:0x000009C7; // type:object size:0x6 scope:local +lbl_1_data_9CD = .data:0x000009CD; // type:object size:0x9 scope:local data:string +lbl_1_data_9D6 = .data:0x000009D6; // type:object size:0xA scope:local data:string +lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0xA scope:local data:string +lbl_1_data_9EA = .data:0x000009EA; // type:object size:0x9 scope:local data:string +lbl_1_data_9F3 = .data:0x000009F3; // type:object size:0x9 scope:local data:string +lbl_1_data_9FC = .data:0x000009FC; // type:object size:0x9 scope:local data:string +padCfgStrTbl = .data:0x00000A08; // type:object size:0x14 scope:local data:4byte +lbl_1_data_A1C = .data:0x00000A1C; // type:object size:0x6 scope:local data:string +lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x4 scope:local data:string +lbl_1_data_A26 = .data:0x00000A26; // type:object size:0x5 scope:local data:string +lbl_1_data_A2B = .data:0x00000A2B; // type:object size:0x7 scope:local data:string +lbl_1_data_A32 = .data:0x00000A32; // type:object size:0x5 scope:local data:string +lbl_1_data_A37 = .data:0x00000A37; // type:object size:0x9 scope:local data:string +jumptable_1_data_A40 = .data:0x00000A40; // type:object size:0x20 scope:local +jumptable_1_data_A60 = .data:0x00000A60; // type:object size:0x20 scope:local +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 scope:local data:string +lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x4 scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x10 scope:local data:string +lbl_1_data_A98 = .data:0x00000A98; // type:object size:0x15 scope:local data:string +lbl_1_data_AAD = .data:0x00000AAD; // type:object size:0x15 scope:local data:string +lbl_1_data_AC2 = .data:0x00000AC2; // type:object size:0x15 scope:local data:string +lbl_1_data_AD7 = .data:0x00000AD7; // type:object size:0x15 scope:local data:string +lbl_1_data_AEC = .data:0x00000AEC; // type:object size:0x15 scope:local data:string +lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 scope:local data:string +lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 scope:local data:string +lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +smSound3DPos = .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 +playerCfgOptionPos = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +playerCfgPlayerPos = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte +playerCfgSelF = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte +charSelProhibitF = .bss:0x0000000E; // type:object size:0x10 scope:local +playerDoneF = .bss:0x0000001E; // type:object size:0x8 scope:local +charModelID = .bss:0x00000026; // type:object size:0x10 scope:local +keyDStkAllDown = .bss:0x00000036; // type:object size:0x8 scope:local +keyDStkAll = .bss:0x0000003E; // type:object size:0x8 scope:local +btnDownAll = .bss:0x00000046; // type:object size:0x8 scope:local +keyDStkDown = .bss:0x0000004E; // type:object size:0x2 scope:local data:2byte +keyDStk = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte +btnDown = .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 +smSelectPosBackup = .bss:0x00000088; // type:object size:0xE scope:local +smPage = .bss:0x00000096; // type:object size:0x2 scope:local data:2byte diff --git a/config/GMPP01_00/rels/staffDll/splits.txt b/config/GMPP01_00/rels/staffDll/splits.txt new file mode 100644 index 00000000..c7a221dd --- /dev/null +++ b/config/GMPP01_00/rels/staffDll/splits.txt @@ -0,0 +1,16 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .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/main.c: + .text start:0x000000A0 end:0x000012F8 + .rodata start:0x00000000 end:0x00000098 + .data start:0x00000000 end:0x00001328 + .bss start:0x00000000 end:0x0000004A diff --git a/config/GMPP01_00/rels/staffDll/symbols.txt b/config/GMPP01_00/rels/staffDll/symbols.txt new file mode 100644 index 00000000..82c981fb --- /dev/null +++ b/config/GMPP01_00/rels/staffDll/symbols.txt @@ -0,0 +1,55 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x218 +ExitProc = .text:0x000002B8; // type:function size:0x60 scope:local +CreateStaff = .text:0x00000318; // type:function size:0x444 scope:local +MoveStaff = .text:0x0000075C; // type:function size:0x3AC scope:local +HidePicture = .text:0x00000B08; // type:function size:0x12C scope:local +ShowPicture = .text:0x00000C34; // type:function size:0x1C4 scope:local +MainProc = .text:0x00000DF8; // 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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +staffData = .data:0x00000000; // type:object size:0x1308 scope:local +staffLogoPosTbl = .data:0x00001308; // type:object size:0xC scope:local data:float +lbl_1_data_1314 = .data:0x00001314; // type:object size:0x14 data:string +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 diff --git a/config/GMPP01_00/rels/subchrselDll/splits.txt b/config/GMPP01_00/rels/subchrselDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/subchrselDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/subchrselDll/symbols.txt b/config/GMPP01_00/rels/subchrselDll/symbols.txt new file mode 100644 index 00000000..22a9a485 --- /dev/null +++ b/config/GMPP01_00/rels/subchrselDll/symbols.txt @@ -0,0 +1,33 @@ +_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:0x6C +fn_1_10C = .text:0x0000010C; // type:function size:0x58 +fn_1_164 = .text:0x00000164; // type:function size:0x654 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:string +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:string +lbl_1_data_10 = .data:0x00000010; // type:object size:0x8 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x8 data:string +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x6 data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x6 data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x6 data:string +lbl_1_data_42 = .data:0x00000042; // type:object size:0x6 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x6 data:string +lbl_1_data_4E = .data:0x0000004E; // type:object size:0x7 data:string +lbl_1_data_55 = .data:0x00000055; // type:object size:0x6 data:string +lbl_1_data_5B = .data:0x0000005B; // type:object size:0x9 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x1 +lbl_1_data_85 = .data:0x00000085; // type:object size:0x6 data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0x8 data:string +lbl_1_data_93 = .data:0x00000093; // type:object size:0x7 data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0x7 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x6 data:string +lbl_1_data_A7 = .data:0x000000A7; // type:object size:0x9 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1C +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x15 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/GMPP01_00/rels/w01Dll/splits.txt b/config/GMPP01_00/rels/w01Dll/splits.txt new file mode 100644 index 00000000..8e0a4285 --- /dev/null +++ b/config/GMPP01_00/rels/w01Dll/splits.txt @@ -0,0 +1,29 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w01Dll/main.c: + .text start:0x000000E0 end:0x00009DD8 + .rodata start:0x00000010 end:0x00000198 + .data start:0x00000000 end:0x00000658 + .bss start:0x00000000 end:0x00000708 + +REL/w01Dll/mg_coin.c: + .text start:0x00009DD8 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 diff --git a/config/GMPP01_00/rels/w01Dll/symbols.txt b/config/GMPP01_00/rels/w01Dll/symbols.txt new file mode 100644 index 00000000..2fa2c70d --- /dev/null +++ b/config/GMPP01_00/rels/w01Dll/symbols.txt @@ -0,0 +1,469 @@ +ObjectSetup = .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 +BoardCreate = .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 +fn_1_814 = .text:0x00000814; // type:function size:0x1D4 +fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 +fn_1_D00 = .text:0x00000D00; // type:function size:0x4 +fn_1_D04 = .text:0x00000D04; // type:function size:0x550 +fn_1_1254 = .text:0x00001254; // type:function size:0x38 +fn_1_128C = .text:0x0000128C; // type:function size:0x80 +fn_1_130C = .text:0x0000130C; // type:function size:0x270 +fn_1_157C = .text:0x0000157C; // type:function size:0xF4 +fn_1_1670 = .text:0x00001670; // type:function size:0x90 +fn_1_1700 = .text:0x00001700; // type:function size:0x290 +fn_1_1990 = .text:0x00001990; // type:function size:0x148 +fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 +fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 +fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 +fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 +fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 +fn_1_2524 = .text:0x00002524; // type:function size:0x248 +fn_1_276C = .text:0x0000276C; // type:function size:0x7AC +fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 +fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 +fn_1_3514 = .text:0x00003514; // type:function size:0xA0 +fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 +fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 +fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 +fn_1_4774 = .text:0x00004774; // type:function size:0xF0 +fn_1_4864 = .text:0x00004864; // type:function size:0x50 +fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 +fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 +fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC +fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 +fn_1_543C = .text:0x0000543C; // type:function size:0x258 +fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 +fn_1_586C = .text:0x0000586C; // type:function size:0xC0 +fn_1_592C = .text:0x0000592C; // type:function size:0x200 +fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 +fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 +fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 +fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 +fn_1_6098 = .text:0x00006098; // type:function size:0xFC +fn_1_6194 = .text:0x00006194; // type:function size:0x25C +fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 +fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC +fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 +fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 +fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 +fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 +fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 +fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 +fn_1_852C = .text:0x0000852C; // type:function size:0x280 +fn_1_87AC = .text:0x000087AC; // type:function size:0x34 +fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 +fn_1_8988 = .text:0x00008988; // type:function size:0xC8 +fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C +fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 +fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 +fn_1_918C = .text:0x0000918C; // type:function size:0xF0 +fn_1_927C = .text:0x0000927C; // type:function size:0xB0 +fn_1_932C = .text:0x0000932C; // type:function size:0x17C +fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C +fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 +fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 +fn_1_98EC = .text:0x000098EC; // type:function size:0x34 +fn_1_9920 = .text:0x00009920; // type:function size:0x104 +fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 +fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 +fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 +fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C +fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 +fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 +fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 +fn_1_B018 = .text:0x0000B018; // type:function size:0x70 +fn_1_B088 = .text:0x0000B088; // type:function size:0x144 +fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 +fn_1_B478 = .text:0x0000B478; // type:function size:0x680 +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 +fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 +fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 +fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 +fn_1_C000 = .text:0x0000C000; // type:function size:0xFC +fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 +fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 +fn_1_C844 = .text:0x0000C844; // type:function size:0x50 +fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 +fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C +fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC +fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 +fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 +fn_1_D034 = .text:0x0000D034; // type:function size:0x48 +fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 +fn_1_D114 = .text:0x0000D114; // type:function size:0x62C +fn_1_D740 = .text:0x0000D740; // type:function size:0x644 +fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 +fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C +fn_1_E100 = .text:0x0000E100; // type:function size:0x54 +fn_1_E154 = .text:0x0000E154; // type:function size:0x164 +fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 +fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 +fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 +fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC +fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 +fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC +fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 +fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 +fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 +fn_1_F890 = .text:0x0000F890; // type:function size:0x18C +fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 +fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C +fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 +fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 +fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 +fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 +fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C +fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C +fn_1_1001C = .text:0x0001001C; // type:function size:0x19C +fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC +fn_1_10664 = .text:0x00010664; // type:function size:0x1BC +fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 +fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 +fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 +fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC +fn_1_11064 = .text:0x00011064; // type:function size:0x420 +fn_1_11484 = .text:0x00011484; // type:function size:0x56C +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 scope:local data:2byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 scope:local data:2byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 +lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte +lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 data:2byte +lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 data:2byte +lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 data:2byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 +lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 +lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 data:string +lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x14 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 data:2byte +lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 +lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 +lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 data:4byte +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 data:string +lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 data:string +lbl_1_data_5FA = .data:0x000005FA; // type:object size:0xA +lbl_1_data_604 = .data:0x00000604; // type:object size:0xC +lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 +lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 data:string +lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 data:string +lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 data:string +lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 data:byte +lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 +lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 +lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 +lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 +lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 +lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 data:string +lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 data:string +lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 data:string +lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 data:string +lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x6 +lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 data:4byte +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:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte +lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 +lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x2 data:2byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 +lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 +lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC data:4byte +lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC data:float +lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 data:float +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 data:float +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 data:float +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC data:4byte +lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC data:float +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC data:float +lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 data:float +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 data:float +lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 data:float +lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 +lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 data:float +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 data:2byte +lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 data:2byte +lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 data:byte +lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 data:byte +lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 data:byte +lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 data:byte +lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 data:byte +lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA data:2byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x44 data:2byte +lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte +lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC +lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte +lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte +lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte +lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte +lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte +lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float +lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte +lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte +lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte +lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte +lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte +lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 data:2byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 data:2byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 data:4byte +lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 data:4byte +lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC data:float +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 data:2byte +lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 data:2byte +lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 data:2byte +lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 data:2byte +lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC data:4byte +lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 data:float +lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 data:float +lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 data:4byte +lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 data:4byte +lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 data:4byte +lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 data:4byte +lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC data:float +lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/w02Dll/splits.txt b/config/GMPP01_00/rels/w02Dll/splits.txt new file mode 100644 index 00000000..a94f9206 --- /dev/null +++ b/config/GMPP01_00/rels/w02Dll/splits.txt @@ -0,0 +1,52 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w02Dll/main.c: + .text start:0x000000E0 end:0x00001254 + .rodata start:0x00000010 end:0x00000038 + .data start:0x00000000 end:0x000002A8 + .bss start:0x00000000 end:0x00000050 + +REL/w02Dll/gendice.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:0x000002F8 + .data start:0x00000428 end:0x00000490 + .bss start:0x000000C8 end:0x000001A0 + +REL/w02Dll/shuffleboard.c: + .text start:0x00009250 end:0x0000BC1C + .rodata start:0x000002F8 end:0x00000410 + .data start:0x00000490 end:0x000004D0 + .bss start:0x000001A0 end:0x00000380 + +REL/w02Dll/roulette.c: + .text start:0x0000BC1C end:0x0000E4D4 + .rodata start:0x00000410 end:0x00000538 + .data start:0x000004D0 end:0x00000524 + .bss start:0x00000380 end:0x00000390 diff --git a/config/GMPP01_00/rels/w02Dll/symbols.txt b/config/GMPP01_00/rels/w02Dll/symbols.txt new file mode 100644 index 00000000..326cbb5f --- /dev/null +++ b/config/GMPP01_00/rels/w02Dll/symbols.txt @@ -0,0 +1,457 @@ +ObjectSetup = .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 +BoardCreate = .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 +fn_1_800 = .text:0x00000800; // type:function size:0x12C +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3C +fn_1_990 = .text:0x00000990; // type:function size:0x2C0 +fn_1_C50 = .text:0x00000C50; // type:function size:0x420 +fn_1_1070 = .text:0x00001070; // type:function size:0x38 +fn_1_10A8 = .text:0x000010A8; // type:function size:0x80 +fn_1_1128 = .text:0x00001128; // type:function size:0xF4 +fn_1_121C = .text:0x0000121C; // type:function size:0x38 +fn_1_1254 = .text:0x00001254; // type:function size:0x17C +fn_1_13D0 = .text:0x000013D0; // type:function size:0x148 +fn_1_1518 = .text:0x00001518; // type:function size:0x5C +fn_1_1574 = .text:0x00001574; // type:function size:0x220 +fn_1_1794 = .text:0x00001794; // type:function size:0x60 +fn_1_17F4 = .text:0x000017F4; // type:function size:0x5C +fn_1_1850 = .text:0x00001850; // type:function size:0x744 +fn_1_1F94 = .text:0x00001F94; // type:function size:0x9C +fn_1_2030 = .text:0x00002030; // type:function size:0xD0 +fn_1_2100 = .text:0x00002100; // type:function size:0x120 +fn_1_2220 = .text:0x00002220; // type:function size:0x9C +fn_1_22BC = .text:0x000022BC; // type:function size:0x80 +fn_1_233C = .text:0x0000233C; // type:function size:0x78 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x48 +fn_1_23FC = .text:0x000023FC; // type:function size:0x1D4 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xC4 +fn_1_2694 = .text:0x00002694; // type:function size:0x98 +fn_1_272C = .text:0x0000272C; // type:function size:0x104 +fn_1_2830 = .text:0x00002830; // type:function size:0x3B4 +fn_1_2BE4 = .text:0x00002BE4; // type:function size:0x120 +fn_1_2D04 = .text:0x00002D04; // type:function size:0xC34 +fn_1_3938 = .text:0x00003938; // type:function size:0x14 +fn_1_394C = .text:0x0000394C; // type:function size:0xA8 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x200 +fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x318 +fn_1_3F0C = .text:0x00003F0C; // type:function size:0x58 +fn_1_3F64 = .text:0x00003F64; // type:function size:0x30 +fn_1_3F94 = .text:0x00003F94; // type:function size:0xBC +fn_1_4050 = .text:0x00004050; // type:function size:0xB0 +fn_1_4100 = .text:0x00004100; // type:function size:0xB8 +fn_1_41B8 = .text:0x000041B8; // type:function size:0x1C0 +fn_1_4378 = .text:0x00004378; // type:function size:0x320 +fn_1_4698 = .text:0x00004698; // type:function size:0x50 +fn_1_46E8 = .text:0x000046E8; // type:function size:0xA34 +fn_1_511C = .text:0x0000511C; // type:function size:0x98 +fn_1_51B4 = .text:0x000051B4; // type:function size:0xDC +fn_1_5290 = .text:0x00005290; // type:function size:0x128 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x27C +fn_1_5634 = .text:0x00005634; // type:function size:0x234 +fn_1_5868 = .text:0x00005868; // type:function size:0x258 +fn_1_5AC0 = .text:0x00005AC0; // type:function size:0x1C4 +fn_1_5C84 = .text:0x00005C84; // type:function size:0x74 +fn_1_5CF8 = .text:0x00005CF8; // type:function size:0x30 +fn_1_5D28 = .text:0x00005D28; // type:function size:0x1E0 +fn_1_5F08 = .text:0x00005F08; // type:function size:0x58 +fn_1_5F60 = .text:0x00005F60; // type:function size:0x30 +fn_1_5F90 = .text:0x00005F90; // type:function size:0x9C +fn_1_602C = .text:0x0000602C; // type:function size:0x40 +fn_1_606C = .text:0x0000606C; // type:function size:0x100 +fn_1_616C = .text:0x0000616C; // type:function size:0xDC +fn_1_6248 = .text:0x00006248; // type:function size:0x868 +fn_1_6AB0 = .text:0x00006AB0; // type:function size:0x1F4 +fn_1_6CA4 = .text:0x00006CA4; // type:function size:0x60 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x130 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x74 +fn_1_6EA8 = .text:0x00006EA8; // type:function size:0x43C +fn_1_72E4 = .text:0x000072E4; // type:function size:0x48 +fn_1_732C = .text:0x0000732C; // type:function size:0x2C +fn_1_7358 = .text:0x00007358; // type:function size:0x70 +fn_1_73C8 = .text:0x000073C8; // type:function size:0x11C +fn_1_74E4 = .text:0x000074E4; // type:function size:0x26C +fn_1_7750 = .text:0x00007750; // type:function size:0xC8 +fn_1_7818 = .text:0x00007818; // type:function size:0x80 +fn_1_7898 = .text:0x00007898; // type:function size:0x124 +fn_1_79BC = .text:0x000079BC; // type:function size:0x888 +fn_1_8244 = .text:0x00008244; // type:function size:0x32C +fn_1_8570 = .text:0x00008570; // type:function size:0x8C +fn_1_85FC = .text:0x000085FC; // type:function size:0x7B0 +fn_1_8DAC = .text:0x00008DAC; // type:function size:0x8C +fn_1_8E38 = .text:0x00008E38; // type:function size:0x418 +fn_1_9250 = .text:0x00009250; // type:function size:0x178 +fn_1_93C8 = .text:0x000093C8; // type:function size:0xE4 +fn_1_94AC = .text:0x000094AC; // type:function size:0x14 +fn_1_94C0 = .text:0x000094C0; // type:function size:0x418 +fn_1_98D8 = .text:0x000098D8; // type:function size:0x5EC +fn_1_9EC4 = .text:0x00009EC4; // type:function size:0x694 +fn_1_A558 = .text:0x0000A558; // type:function size:0x390 +fn_1_A8E8 = .text:0x0000A8E8; // type:function size:0xB68 +fn_1_B450 = .text:0x0000B450; // type:function size:0x458 +fn_1_B8A8 = .text:0x0000B8A8; // type:function size:0x288 +fn_1_BB30 = .text:0x0000BB30; // type:function size:0xEC +fn_1_BC1C = .text:0x0000BC1C; // type:function size:0xE0 +fn_1_BCFC = .text:0x0000BCFC; // type:function size:0x178 +fn_1_BE74 = .text:0x0000BE74; // type:function size:0x14 +fn_1_BE88 = .text:0x0000BE88; // type:function size:0x280 +fn_1_C108 = .text:0x0000C108; // type:function size:0xBFC +fn_1_CD04 = .text:0x0000CD04; // type:function size:0x6A8 +fn_1_D3AC = .text:0x0000D3AC; // type:function size:0x518 +fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x684 +fn_1_DF48 = .text:0x0000DF48; // type:function size:0x364 +fn_1_E2AC = .text:0x0000E2AC; // type:function size:0x64 +fn_1_E310 = .text:0x0000E310; // type:function size:0x10C +fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x18 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x12 data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0xE data:string +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x10 data:string +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x50 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x1D data:string +lbl_1_data_345 = .data:0x00000345; // type:object size:0x1B data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x11 data:string +lbl_1_data_371 = .data:0x00000371; // type:object size:0x7 +lbl_1_data_378 = .data:0x00000378; // type:object size:0x24 +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x24 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x24 +lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x20 +lbl_1_data_404 = .data:0x00000404; // type:object size:0x20 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x4 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x38 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x5 data:string +lbl_1_data_465 = .data:0x00000465; // type:object size:0x6 data:string +lbl_1_data_46B = .data:0x0000046B; // type:object size:0x9 +lbl_1_data_474 = .data:0x00000474; // type:object size:0xC +lbl_1_data_480 = .data:0x00000480; // type:object size:0x10 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x20 +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0x40 +lbl_1_data_510 = .data:0x00000510; // 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:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x20 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x28 data:2byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_86 = .bss:0x00000086; // type:object size:0xE data:2byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x6 +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x6 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x24 +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x24 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x24 +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x24 data:float +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x6 data:2byte +lbl_1_bss_18A = .bss:0x0000018A; // type:object size:0x6 data:2byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x6 data:2byte +lbl_1_bss_196 = .bss:0x00000196; // type:object size:0x2 data:2byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x8 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0xC data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x2 data:2byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0xC data:float +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x4 data:float +lbl_1_bss_1C0 = .bss:0x000001C0; // type:object size:0x2 data:2byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x20 +lbl_1_bss_1E4 = .bss:0x000001E4; // type:object size:0xB4 +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0xB4 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x1E +lbl_1_bss_36A = .bss:0x0000036A; // type:object size:0x2 data:2byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x2 data:2byte +lbl_1_bss_36E = .bss:0x0000036E; // type:object size:0x2 data:2byte +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x2 data:2byte +lbl_1_bss_374 = .bss:0x00000374; // type:object size:0x4 data:4byte +lbl_1_bss_378 = .bss:0x00000378; // type:object size:0x8 data:4byte +lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:float +lbl_1_bss_384 = .bss:0x00000384; // type:object size:0x4 data:4byte +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/w03Dll/splits.txt b/config/GMPP01_00/rels/w03Dll/splits.txt new file mode 100644 index 00000000..2ba2bee3 --- /dev/null +++ b/config/GMPP01_00/rels/w03Dll/splits.txt @@ -0,0 +1,53 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w03Dll/main.c: + .text start:0x000000E0 end:0x000012C8 + .rodata start:0x00000010 end:0x00000038 + .data start:0x00000000 end:0x00000280 + .bss start:0x00000000 end:0x00000028 + +REL/w03Dll/statue.c: + .text start:0x000012C8 end:0x00003058 + .rodata start:0x00000038 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:0x00000138 + +REL/w03Dll/smoke.c: + .text start:0x0000785C end:0x00007ABC + .rodata start:0x000002A8 end:0x000002B0 + .data start:0x00000410 end:0x00000450 + .bss start:0x00000138 end:0x00000140 + +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 diff --git a/config/GMPP01_00/rels/w03Dll/symbols.txt b/config/GMPP01_00/rels/w03Dll/symbols.txt new file mode 100644 index 00000000..40d6b23e --- /dev/null +++ b/config/GMPP01_00/rels/w03Dll/symbols.txt @@ -0,0 +1,443 @@ +ObjectSetup = .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 +BoardCreate = .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 +fn_1_A74 = .text:0x00000A74; // type:function size:0x84 +fn_1_AF8 = .text:0x00000AF8; // type:function size:0x64 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x198 +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xF8 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x2C4 +fn_1_10B0 = .text:0x000010B0; // type:function size:0x34 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x1E4 +fn_1_12C8 = .text:0x000012C8; // type:function size:0x90 +fn_1_1358 = .text:0x00001358; // type:function size:0x1D4 +fn_1_152C = .text:0x0000152C; // type:function size:0xBC +fn_1_15E8 = .text:0x000015E8; // type:function size:0x68 +fn_1_1650 = .text:0x00001650; // type:function size:0x38C +fn_1_19DC = .text:0x000019DC; // type:function size:0x340 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x1B8 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x20C +fn_1_20E0 = .text:0x000020E0; // type:function size:0x600 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x138 +fn_1_2818 = .text:0x00002818; // type:function size:0x118 +fn_1_2930 = .text:0x00002930; // type:function size:0x110 +fn_1_2A40 = .text:0x00002A40; // type:function size:0x80 +fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x84 +fn_1_2B44 = .text:0x00002B44; // type:function size:0x514 +fn_1_3058 = .text:0x00003058; // type:function size:0x44 +fn_1_309C = .text:0x0000309C; // type:function size:0xA0 +fn_1_313C = .text:0x0000313C; // type:function size:0xDC +fn_1_3218 = .text:0x00003218; // type:function size:0xEC +fn_1_3304 = .text:0x00003304; // type:function size:0x174 +fn_1_3478 = .text:0x00003478; // type:function size:0x39C +fn_1_3814 = .text:0x00003814; // type:function size:0x154 +fn_1_3968 = .text:0x00003968; // type:function size:0x520 +fn_1_3E88 = .text:0x00003E88; // type:function size:0xD4 +fn_1_3F5C = .text:0x00003F5C; // type:function size:0x3F8 +fn_1_4354 = .text:0x00004354; // type:function size:0xD0 +fn_1_4424 = .text:0x00004424; // type:function size:0x4C8 +fn_1_48EC = .text:0x000048EC; // type:function size:0x1B0 +fn_1_4A9C = .text:0x00004A9C; // type:function size:0x20 +fn_1_4ABC = .text:0x00004ABC; // type:function size:0x250 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x54 +fn_1_4D60 = .text:0x00004D60; // type:function size:0x1C4 +fn_1_4F24 = .text:0x00004F24; // type:function size:0x1B0 +fn_1_50D4 = .text:0x000050D4; // type:function size:0x764 +fn_1_5838 = .text:0x00005838; // type:function size:0x290 +fn_1_5AC8 = .text:0x00005AC8; // type:function size:0x194 +fn_1_5C5C = .text:0x00005C5C; // type:function size:0x3D0 +fn_1_602C = .text:0x0000602C; // type:function size:0x178 +fn_1_61A4 = .text:0x000061A4; // type:function size:0xF8 +fn_1_629C = .text:0x0000629C; // type:function size:0x34 +fn_1_62D0 = .text:0x000062D0; // type:function size:0x2C +fn_1_62FC = .text:0x000062FC; // type:function size:0xF8 +fn_1_63F4 = .text:0x000063F4; // type:function size:0xA0 +fn_1_6494 = .text:0x00006494; // type:function size:0x204 +fn_1_6698 = .text:0x00006698; // type:function size:0xC4 +fn_1_675C = .text:0x0000675C; // type:function size:0x9C +fn_1_67F8 = .text:0x000067F8; // type:function size:0x8C +fn_1_6884 = .text:0x00006884; // type:function size:0x14 +fn_1_6898 = .text:0x00006898; // type:function size:0x300 +fn_1_6B98 = .text:0x00006B98; // type:function size:0x404 +fn_1_6F9C = .text:0x00006F9C; // type:function size:0x3C0 +fn_1_735C = .text:0x0000735C; // type:function size:0x320 +fn_1_767C = .text:0x0000767C; // type:function size:0x168 +fn_1_77E4 = .text:0x000077E4; // type:function size:0x78 +fn_1_785C = .text:0x0000785C; // type:function size:0x184 +fn_1_79E0 = .text:0x000079E0; // type:function size:0xDC +fn_1_7ABC = .text:0x00007ABC; // type:function size:0x9C +fn_1_7B58 = .text:0x00007B58; // type:function size:0x50 +fn_1_7BA8 = .text:0x00007BA8; // type:function size:0x90 +fn_1_7C38 = .text:0x00007C38; // type:function size:0x60 +fn_1_7C98 = .text:0x00007C98; // type:function size:0x80 +fn_1_7D18 = .text:0x00007D18; // type:function size:0x428 +fn_1_8140 = .text:0x00008140; // type:function size:0xA0 +fn_1_81E0 = .text:0x000081E0; // type:function size:0x254 +fn_1_8434 = .text:0x00008434; // type:function size:0x74 +fn_1_84A8 = .text:0x000084A8; // type:function size:0x88 +fn_1_8530 = .text:0x00008530; // type:function size:0x168 +fn_1_8698 = .text:0x00008698; // type:function size:0x570 +fn_1_8C08 = .text:0x00008C08; // type:function size:0x23C +fn_1_8E44 = .text:0x00008E44; // type:function size:0x200 +fn_1_9044 = .text:0x00009044; // type:function size:0x174 +fn_1_91B8 = .text:0x000091B8; // type:function size:0x78 +fn_1_9230 = .text:0x00009230; // type:function size:0x154 +fn_1_9384 = .text:0x00009384; // type:function size:0xF0 +fn_1_9474 = .text:0x00009474; // type:function size:0x144 +fn_1_95B8 = .text:0x000095B8; // type:function size:0x240 +fn_1_97F8 = .text:0x000097F8; // type:function size:0x224 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x60 +fn_1_9A7C = .text:0x00009A7C; // type:function size:0x20 +fn_1_9A9C = .text:0x00009A9C; // type:function size:0x4 +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x90 +fn_1_9B30 = .text:0x00009B30; // type:function size:0x15C +fn_1_9C8C = .text:0x00009C8C; // type:function size:0x68 +fn_1_9CF4 = .text:0x00009CF4; // type:function size:0x284 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x6C +fn_1_9FE4 = .text:0x00009FE4; // type:function size:0x468 +fn_1_A44C = .text:0x0000A44C; // type:function size:0x194 +fn_1_A5E0 = .text:0x0000A5E0; // type:function size:0xD0 +fn_1_A6B0 = .text:0x0000A6B0; // type:function size:0xF0 +fn_1_A7A0 = .text:0x0000A7A0; // type:function size:0x10C +fn_1_A8AC = .text:0x0000A8AC; // type:function size:0xE8 +fn_1_A994 = .text:0x0000A994; // type:function size:0x184 +fn_1_AB18 = .text:0x0000AB18; // type:function size:0xB8 +fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x108 +fn_1_ACD8 = .text:0x0000ACD8; // type:function size:0x148 +fn_1_AE20 = .text:0x0000AE20; // type:function size:0x2C +fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xD8 +fn_1_AF24 = .text:0x0000AF24; // type:function size:0x180 +fn_1_B0A4 = .text:0x0000B0A4; // type:function size:0x2AC +fn_1_B350 = .text:0x0000B350; // type:function size:0x15C +fn_1_B4AC = .text:0x0000B4AC; // type:function size:0x1DC +fn_1_B688 = .text:0x0000B688; // type:function size:0xC0 +fn_1_B748 = .text:0x0000B748; // type:function size:0x1A0 +fn_1_B8E8 = .text:0x0000B8E8; // type:function size:0x260 +fn_1_BB48 = .text:0x0000BB48; // type:function size:0x2C +fn_1_BB74 = .text:0x0000BB74; // type:function size:0x50 +fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x34 +fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x84 +fn_1_BC7C = .text:0x0000BC7C; // type:function size:0x130 +fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84 +fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 scope:local data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2 data:2byte +lbl_1_data_1E6 = .data:0x000001E6; // type:object size:0x2 data:2byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2 data:2byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x20 data:float +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x8 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x10 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x14 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:4byte +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x20 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x20 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x2 data:2byte +lbl_1_data_312 = .data:0x00000312; // type:object size:0x2 data:2byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x2 data:2byte +lbl_1_data_316 = .data:0x00000316; // type:object size:0x2 data:2byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x18 +lbl_1_data_330 = .data:0x00000330; // type:object size:0xD data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0xC +lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte +lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string +lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string +lbl_1_data_403 = .data:0x00000403; // type:object size:0xD +lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string +lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 data:string +lbl_1_data_438 = .data:0x00000438; // type:object size:0x18 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte +lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0x2 data:2byte +lbl_1_data_45C = .data:0x0000045C; // type:object size:0xC +lbl_1_data_468 = .data:0x00000468; // type:object size:0x8 +lbl_1_data_470 = .data:0x00000470; // type:object size:0x20 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x1 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x14 +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x6 +lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x2 data:2byte +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0x2 data:2byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte +lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 data:string +lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 data:string +lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0x38 +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:0x1C data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x20 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x2 data:2byte +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x2 data:2byte +lbl_1_bss_6E = .bss:0x0000006E; // type:object size:0x1 data:byte +lbl_1_bss_6F = .bss:0x0000006F; // type:object size:0x1 data:byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x1 data:byte +lbl_1_bss_7D = .bss:0x0000007D; // type:object size:0x1 data:byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xA0 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x2 data:2byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x8 +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x8 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1 data:byte +lbl_1_bss_14E = .bss:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x30 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte +lbl_1_bss_18C = .bss:0x0000018C; // type:object size:0x1 data:byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x3 diff --git a/config/GMPP01_00/rels/w04Dll/splits.txt b/config/GMPP01_00/rels/w04Dll/splits.txt new file mode 100644 index 00000000..afc4b596 --- /dev/null +++ b/config/GMPP01_00/rels/w04Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w04Dll/main.c: + .text start:0x000000E0 end:0x000012FC + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x00000298 + .bss start:0x00000000 end:0x00000038 + +REL/w04Dll/bridge.c: + .text start:0x000012FC end:0x000020EC + .rodata start:0x00000040 end:0x00000098 + .data start:0x00000298 end:0x000002D0 + .bss start:0x00000038 end:0x00000048 + +REL/w04Dll/boo_event.c: + .text start:0x000020EC end:0x00006024 + .rodata start:0x00000098 end:0x00000180 + .data start:0x000002D0 end:0x000003A8 + .bss start:0x00000048 end:0x00000100 + +REL/w04Dll/big_boo.c: + .text start:0x00006024 end:0x0000A0DC + .rodata start:0x00000180 end:0x000002C0 + .data start:0x000003A8 end:0x000004F0 + .bss start:0x00000100 end:0x00000288 + +REL/w04Dll/mg_item.c: + .text start:0x0000A0DC end:0x0000C784 + .rodata start:0x000002C0 end:0x000003A0 + .data start:0x000004F0 end:0x00000588 + .bss start:0x00000288 end:0x000002B0 + +REL/w04Dll/mg_coin.c: + .text start:0x0000C784 end:0x0000E9F0 + .rodata start:0x000003A0 end:0x0000042C + .data start:0x00000588 end:0x0000063F + .bss start:0x000002B0 end:0x00000328 diff --git a/config/GMPP01_00/rels/w04Dll/symbols.txt b/config/GMPP01_00/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..75137666 --- /dev/null +++ b/config/GMPP01_00/rels/w04Dll/symbols.txt @@ -0,0 +1,452 @@ +ObjectSetup = .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 +BoardCreate = .text:0x000000E0; // type:function size:0x514 +BoardDestroy = .text:0x000005F4; // type:function size:0x15C +fn_1_750 = .text:0x00000750; // type:function size:0x44 +fn_1_794 = .text:0x00000794; // type:function size:0x4 +fn_1_798 = .text:0x00000798; // type:function size:0x64 +fn_1_7FC = .text:0x000007FC; // type:function size:0x134 +fn_1_930 = .text:0x00000930; // type:function size:0x24 +fn_1_954 = .text:0x00000954; // type:function size:0x4 +fn_1_958 = .text:0x00000958; // type:function size:0x3A0 +fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 +fn_1_D30 = .text:0x00000D30; // type:function size:0x80 +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C +fn_1_103C = .text:0x0000103C; // type:function size:0xF4 +fn_1_1130 = .text:0x00001130; // type:function size:0x1CC +fn_1_12FC = .text:0x000012FC; // type:function size:0x2CC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x50 +fn_1_1618 = .text:0x00001618; // type:function size:0x19C +fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 +fn_1_191C = .text:0x0000191C; // type:function size:0x27C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 +fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 +fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 +fn_1_2008 = .text:0x00002008; // type:function size:0x3C +fn_1_2044 = .text:0x00002044; // type:function size:0x14 +fn_1_2058 = .text:0x00002058; // type:function size:0x94 +fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 +fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 +fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 +fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 +fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 +fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 +fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 +fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 +fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 +fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C +fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 +fn_1_4630 = .text:0x00004630; // type:function size:0x50 +fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 +fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 +fn_1_5018 = .text:0x00005018; // type:function size:0x288 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 +fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 +fn_1_55B4 = .text:0x000055B4; // type:function size:0x94 +fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 +fn_1_5828 = .text:0x00005828; // type:function size:0x7C +fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC +fn_1_5980 = .text:0x00005980; // type:function size:0x44 +fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 +fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 +fn_1_6024 = .text:0x00006024; // type:function size:0x28C +fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 +fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 +fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 +fn_1_7300 = .text:0x00007300; // type:function size:0x27C +fn_1_757C = .text:0x0000757C; // type:function size:0x5C +fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 +fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 +fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 +fn_1_9884 = .text:0x00009884; // type:function size:0x294 +fn_1_9B18 = .text:0x00009B18; // type:function size:0xA8 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x3C +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x290 +fn_1_9E8C = .text:0x00009E8C; // type:function size:0x14 +fn_1_9EBC = .text:0x00009EA0; // type:function size:0x94 +fn_1_9F34 = .text:0x00009F34; // type:function size:0x124 +fn_1_A058 = .text:0x0000A058; // type:function size:0x84 +fn_1_A0F8 = .text:0x0000A0DC; // type:function size:0xF8 +fn_1_A1F0 = .text:0x0000A1D4; // type:function size:0x52C +fn_1_A700 = .text:0x0000A700; // type:function size:0xCC +fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x1294 +fn_1_BA7C = .text:0x0000BA60; // type:function size:0x84 +fn_1_BB00 = .text:0x0000BAE4; // type:function size:0x7BC +fn_1_C2BC = .text:0x0000C2A0; // type:function size:0xCC +fn_1_C36C = .text:0x0000C36C; // type:function size:0x418 +fn_1_C7A0 = .text:0x0000C784; // type:function size:0x34 +fn_1_C7D4 = .text:0x0000C7B8; // type:function size:0x7B8 +fn_1_CF70 = .text:0x0000CF70; // type:function size:0x120 +fn_1_D090 = .text:0x0000D090; // type:function size:0x30 +fn_1_D0C0 = .text:0x0000D0C0; // type:function size:0x98 +fn_1_D158 = .text:0x0000D158; // type:function size:0xBC +fn_1_D214 = .text:0x0000D214; // type:function size:0x74 +fn_1_D288 = .text:0x0000D288; // type:function size:0x2B0 +fn_1_D538 = .text:0x0000D538; // type:function size:0x154 +fn_1_D68C = .text:0x0000D68C; // type:function size:0x64 +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x64 +fn_1_D754 = .text:0x0000D754; // type:function size:0x894 +fn_1_DFE8 = .text:0x0000DFE8; // type:function size:0x140 +fn_1_E128 = .text:0x0000E128; // type:function size:0x48 +fn_1_E170 = .text:0x0000E170; // type:function size:0x1E8 +fn_1_E358 = .text:0x0000E358; // type:function size:0x14C +fn_1_E4A4 = .text:0x0000E4A4; // type:function size:0x1EC +fn_1_E690 = .text:0x0000E690; // type:function size:0x1D4 +fn_1_E864 = .text:0x0000E864; // type:function size:0x18C +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 +lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 data:string +lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 data:string +lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string +lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string +lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 +lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 data:2byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0xB data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string +lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string +lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 data:string +lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 data:string +lbl_1_data_512 = .data:0x00000512; // type:object size:0xA +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 data:4byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0xC +lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 +lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 data:4byte +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 data:string +lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 data:string +lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 data:string +lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 data:string +lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 data:string +lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 data:string +lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 data:4byte +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 +lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 +lbl_1_data_610 = .data:0x00000610; // type:object size:0xE data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE data:string +lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 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:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 data:2byte +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 data:2byte +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 data:2byte +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 data:2byte +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 data:2byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 data:2byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 data:2byte +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 data:2byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC data:float +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 data:4byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 data:2byte +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/w05Dll/splits.txt b/config/GMPP01_00/rels/w05Dll/splits.txt new file mode 100644 index 00000000..fc4cdcea --- /dev/null +++ b/config/GMPP01_00/rels/w05Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w05Dll/main.c: + .text start:0x000000E0 end:0x000013D4 + .rodata start:0x00000010 end:0x00000048 + .data start:0x00000000 end:0x00000150 + .bss start:0x00000000 end:0x00000028 + +REL/w05Dll/hotel.c: + .text start:0x000013D4 end:0x00002B40 + .rodata start:0x00000048 end:0x00000090 + .data start:0x00000150 end:0x000001A8 + .bss start:0x00000028 end:0x00000030 + +REL/w05Dll/monkey.c: + .text start:0x00002B40 end:0x00003F74 + .rodata start:0x00000090 end:0x000000F8 + .data start:0x000001A8 end:0x00000200 + .bss start:0x00000030 end:0x00000058 + +REL/w05Dll/dolphin.c: + .text start:0x00003F74 end:0x00006B28 + .rodata start:0x000000F8 end:0x000001A8 + .data start:0x00000200 end:0x00000310 + .bss start:0x00000058 end:0x00000078 + +REL/w05Dll/mg_item.c: + .text start:0x00006B28 end:0x00009680 + .rodata start:0x000001A8 end:0x00000268 + .data start:0x00000310 end:0x00000450 + .bss start:0x00000078 end:0x000000B8 + +REL/w05Dll/mg_coin.c: + .text start:0x00009680 end:0x0000B644 + .rodata start:0x00000268 end:0x00000300 + .data start:0x00000450 end:0x000004C7 + .bss start:0x000000B8 end:0x00000108 diff --git a/config/GMPP01_00/rels/w05Dll/symbols.txt b/config/GMPP01_00/rels/w05Dll/symbols.txt new file mode 100644 index 00000000..faed8cbe --- /dev/null +++ b/config/GMPP01_00/rels/w05Dll/symbols.txt @@ -0,0 +1,356 @@ +ObjectSetup = .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 +BoardCreate = .text:0x000000E0; // type:function size:0x4D8 +BoardDestroy = .text:0x000005B8; // type:function size:0x18C +fn_1_744 = .text:0x00000744; // type:function size:0x44 +fn_1_788 = .text:0x00000788; // type:function size:0x4 +fn_1_78C = .text:0x0000078C; // type:function size:0xA0 +fn_1_82C = .text:0x0000082C; // type:function size:0x100 +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3F8 +fn_1_D4C = .text:0x00000D4C; // type:function size:0x38 +fn_1_D84 = .text:0x00000D84; // type:function size:0x80 +fn_1_E04 = .text:0x00000E04; // type:function size:0x3C +fn_1_E40 = .text:0x00000E40; // type:function size:0x2D4 +fn_1_1114 = .text:0x00001114; // type:function size:0xF4 +fn_1_1208 = .text:0x00001208; // type:function size:0x1CC +fn_1_13D4 = .text:0x000013D4; // type:function size:0xFC +fn_1_14D0 = .text:0x000014D0; // type:function size:0x2C +fn_1_14FC = .text:0x000014FC; // type:function size:0x60 +fn_1_155C = .text:0x0000155C; // type:function size:0x8E8 +fn_1_1E44 = .text:0x00001E44; // type:function size:0xCFC +fn_1_2B40 = .text:0x00002B40; // type:function size:0x13C +fn_1_2C7C = .text:0x00002C7C; // type:function size:0x3C8 +fn_1_3044 = .text:0x00003044; // type:function size:0x3EC +fn_1_3430 = .text:0x00003430; // type:function size:0xE4 +fn_1_3514 = .text:0x00003514; // type:function size:0x874 +fn_1_3D88 = .text:0x00003D88; // type:function size:0x104 +fn_1_3E8C = .text:0x00003E8C; // type:function size:0xE8 +fn_1_3F74 = .text:0x00003F74; // type:function size:0x64 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x5C +fn_1_4034 = .text:0x00004034; // type:function size:0xE80 +fn_1_4EB4 = .text:0x00004EB4; // type:function size:0x794 +fn_1_5648 = .text:0x00005648; // type:function size:0x14C +fn_1_5794 = .text:0x00005794; // type:function size:0xB18 +fn_1_62AC = .text:0x000062AC; // type:function size:0x210 +fn_1_64BC = .text:0x000064BC; // type:function size:0x12C +fn_1_65E8 = .text:0x000065E8; // type:function size:0x88 +fn_1_6670 = .text:0x00006670; // type:function size:0x50 +fn_1_66C0 = .text:0x000066C0; // type:function size:0x254 +fn_1_6914 = .text:0x00006914; // type:function size:0x214 +fn_1_6B28 = .text:0x00006B28; // type:function size:0x54 +fn_1_6B7C = .text:0x00006B7C; // type:function size:0x708 +fn_1_7284 = .text:0x00007284; // type:function size:0x60 +fn_1_72E4 = .text:0x000072E4; // type:function size:0x30 +fn_1_7314 = .text:0x00007314; // type:function size:0xAC +fn_1_73C0 = .text:0x000073C0; // type:function size:0x40 +fn_1_7400 = .text:0x00007400; // type:function size:0xD0 +fn_1_74D0 = .text:0x000074D0; // type:function size:0x2E0 +fn_1_77B0 = .text:0x000077B0; // type:function size:0xF0 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x88 +fn_1_7928 = .text:0x00007928; // type:function size:0x74 +fn_1_799C = .text:0x0000799C; // type:function size:0x4B0 +fn_1_7E4C = .text:0x00007E4C; // type:function size:0x48 +fn_1_7E94 = .text:0x00007E94; // type:function size:0x70 +fn_1_7F04 = .text:0x00007F04; // type:function size:0x1D4 +fn_1_80D8 = .text:0x000080D8; // type:function size:0x338 +fn_1_8410 = .text:0x00008410; // type:function size:0xFC +fn_1_850C = .text:0x0000850C; // type:function size:0x15C +fn_1_8668 = .text:0x00008668; // type:function size:0x130 +fn_1_8798 = .text:0x00008798; // type:function size:0xEC +fn_1_8884 = .text:0x00008884; // type:function size:0x34 +fn_1_88B8 = .text:0x000088B8; // type:function size:0xB4 +fn_1_896C = .text:0x0000896C; // type:function size:0x870 +fn_1_91DC = .text:0x000091DC; // type:function size:0x8C +fn_1_9268 = .text:0x00009268; // type:function size:0x418 +fn_1_9680 = .text:0x00009680; // type:function size:0x34 +fn_1_96B4 = .text:0x000096B4; // type:function size:0xAC +fn_1_9760 = .text:0x00009760; // type:function size:0x4C +fn_1_97AC = .text:0x000097AC; // type:function size:0x2BC +fn_1_9A68 = .text:0x00009A68; // type:function size:0x58 +fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x30 +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x84 +fn_1_9B74 = .text:0x00009B74; // type:function size:0xB0 +fn_1_9C24 = .text:0x00009C24; // type:function size:0x74 +fn_1_9C98 = .text:0x00009C98; // type:function size:0x74 +fn_1_9D0C = .text:0x00009D0C; // type:function size:0x218 +fn_1_9F24 = .text:0x00009F24; // type:function size:0x300 +fn_1_A224 = .text:0x0000A224; // type:function size:0x2D4 +fn_1_A4F8 = .text:0x0000A4F8; // type:function size:0xB8 +fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x3E0 +fn_1_A990 = .text:0x0000A990; // type:function size:0x194 +fn_1_AB24 = .text:0x0000AB24; // type:function size:0x6F0 +fn_1_B214 = .text:0x0000B214; // type:function size:0x9C +fn_1_B2B0 = .text:0x0000B2B0; // type:function size:0x114 +fn_1_B3C4 = .text:0x0000B3C4; // type:function size:0x280 +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +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_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x2 data:2byte +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x2 data:2byte +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x2 data:2byte +lbl_1_data_120 = .data:0x00000120; // type:object size:0x2 data:2byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x14 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte +lbl_1_data_166 = .data:0x00000166; // type:object size:0xA +lbl_1_data_170 = .data:0x00000170; // type:object size:0x10 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x10 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x8 +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0xC +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x7 data:string +lbl_1_data_1BB = .data:0x000001BB; // type:object size:0x9 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x8 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xC +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE +lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string +lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string +lbl_1_data_223 = .data:0x00000223; // type:object size:0x9 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x18 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x1C +lbl_1_data_310 = .data:0x00000310; // type:object size:0x8 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string +lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string +lbl_1_data_326 = .data:0x00000326; // type:object size:0xA +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string +lbl_1_data_350 = .data:0x00000350; // type:object size:0xF0 +lbl_1_data_440 = .data:0x00000440; // type:object size:0x10 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string +lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x4 data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0x5 +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xD data:string +lbl_1_data_4AD = .data:0x000004AD; // type:object size:0x5 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x6 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0x3 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:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x14 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0xA data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6 +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x6 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x2 data:2byte +lbl_1_bss_A2 = .bss:0x000000A2; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x6 +lbl_1_bss_AA = .bss:0x000000AA; // type:object size:0x6 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x6 +lbl_1_bss_B6 = .bss:0x000000B6; // type:object size:0x2 data:2byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x2 data:2byte +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x2 data:2byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x2 data:2byte +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0x28 data:2byte +lbl_1_bss_FE = .bss:0x000000FE; // type:object size:0x2 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2 data:2byte +lbl_1_bss_102 = .bss:0x00000102; // type:object size:0x6 data:2byte diff --git a/config/GMPP01_00/rels/w06Dll/splits.txt b/config/GMPP01_00/rels/w06Dll/splits.txt new file mode 100644 index 00000000..eee27cef --- /dev/null +++ b/config/GMPP01_00/rels/w06Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w06Dll/main.c: + .text start:0x000000E0 end:0x00000D70 + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x000001A8 + .bss start:0x00000000 end:0x00000018 + +REL/w06Dll/mg_item.c: + .text start:0x00000D70 end:0x00004878 + .rodata start:0x00000040 end:0x000000F0 + .data start:0x000001A8 end:0x000001D8 + .bss start:0x00000018 end:0x00000048 + +REL/w06Dll/mg_coin.c: + .text start:0x00004878 end:0x00006EF0 + .rodata start:0x000000F0 end:0x000001B0 + .data start:0x000001D8 end:0x00000208 + .bss start:0x00000048 end:0x00000090 + +REL/w06Dll/fire.c: + .text start:0x00006EF0 end:0x00007BD0 + .rodata start:0x000001B0 end:0x000001E8 + .data start:0x00000208 end:0x00000418 + .bss start:0x00000090 end:0x000000C8 + +REL/w06Dll/bridge.c: + .text start:0x00007BD0 end:0x00008F40 + .rodata start:0x000001E8 end:0x00000228 + .data start:0x00000418 end:0x00000498 + .bss start:0x000000C8 end:0x000000E8 + +REL/w06Dll/bowser.c: + .text start:0x00008F40 end:0x0000D0C4 + .rodata start:0x00000228 end:0x000002D8 + .data start:0x00000498 end:0x00000541 + .bss start:0x000000E8 end:0x000000F5 diff --git a/config/GMPP01_00/rels/w06Dll/symbols.txt b/config/GMPP01_00/rels/w06Dll/symbols.txt new file mode 100644 index 00000000..aad0e22c --- /dev/null +++ b/config/GMPP01_00/rels/w06Dll/symbols.txt @@ -0,0 +1,373 @@ +ObjectSetup = .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 +BoardCreate = .text:0x000000E0; // type:function size:0x4C4 +BoardDestroy = .text:0x000005A4; // type:function size:0x18C +fn_1_730 = .text:0x00000730; // type:function size:0x6C scope:local +fn_1_79C = .text:0x0000079C; // type:function size:0x20 scope:local +fn_1_7BC = .text:0x000007BC; // type:function size:0x144 scope:local +fn_1_900 = .text:0x00000900; // type:function size:0x84 scope:local +fn_1_984 = .text:0x00000984; // type:function size:0x3C scope:local +fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 scope:local +fn_1_B28 = .text:0x00000B28; // type:function size:0x34 scope:local +fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 scope:local +fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC +fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 +fn_1_1054 = .text:0x00001054; // type:function size:0x90 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 scope:local +fn_1_1148 = .text:0x00001148; // type:function size:0x68 scope:local +fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 scope:local +fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C scope:local +fn_1_15CC = .text:0x000015CC; // type:function size:0x614 scope:local +fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 scope:local +fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC scope:local +fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 scope:local +fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 scope:local +fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 scope:local +fn_1_2048 = .text:0x00002048; // type:function size:0x84 scope:local +fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 scope:local +fn_1_2174 = .text:0x00002174; // type:function size:0x58 scope:local +fn_1_21CC = .text:0x000021CC; // type:function size:0x54 scope:local +fn_1_2220 = .text:0x00002220; // type:function size:0x21C scope:local +fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 scope:local +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 scope:local +fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 scope:local +fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 scope:local +fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 scope:local +fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 scope:local +fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC scope:local +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C scope:local +fn_1_3470 = .text:0x00003470; // type:function size:0xF0 scope:local +fn_1_3560 = .text:0x00003560; // type:function size:0x5C scope:local +fn_1_35BC = .text:0x000035BC; // type:function size:0x48 scope:local +fn_1_3604 = .text:0x00003604; // type:function size:0x94 scope:local +fn_1_3698 = .text:0x00003698; // type:function size:0x2DC scope:local +fn_1_3974 = .text:0x00003974; // type:function size:0x6FC scope:local +fn_1_4070 = .text:0x00004070; // type:function size:0xB4 scope:local +fn_1_4124 = .text:0x00004124; // type:function size:0x70 scope:local +fn_1_4194 = .text:0x00004194; // type:function size:0x118 scope:local +fn_1_42AC = .text:0x000042AC; // type:function size:0x130 scope:local +fn_1_43DC = .text:0x000043DC; // type:function size:0x84 scope:local +fn_1_4460 = .text:0x00004460; // type:function size:0x418 scope:local +fn_1_4878 = .text:0x00004878; // type:function size:0x198 +fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 +fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 +fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 scope:local +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 scope:local +fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 scope:local +fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 scope:local +fn_1_519C = .text:0x0000519C; // type:function size:0x204 scope:local +fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 scope:local +fn_1_5490 = .text:0x00005490; // type:function size:0x23C scope:local +fn_1_56CC = .text:0x000056CC; // type:function size:0x110 scope:local +fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 scope:local +fn_1_587C = .text:0x0000587C; // type:function size:0x80 scope:local +fn_1_58FC = .text:0x000058FC; // type:function size:0x6C scope:local +fn_1_5968 = .text:0x00005968; // type:function size:0x68 scope:local +fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C scope:local +fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 scope:local +fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 scope:local +fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 scope:local +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 scope:local +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C scope:local +fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 scope:local +fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 scope:local +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 scope:local +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 scope:local +fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 scope:local +fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 +fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 scope:local +fn_1_7210 = .text:0x00007210; // type:function size:0x94 scope:local +fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 scope:local +fn_1_72CC = .text:0x000072CC; // type:function size:0x120 scope:local +fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 scope:local +fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 scope:local +fn_1_7574 = .text:0x00007574; // type:function size:0x120 scope:local +fn_1_7674 = .text:0x00007694; // type:function size:0xEC scope:local +fn_1_7760 = .text:0x00007780; // type:function size:0x1E4 scope:local +fn_1_7944 = .text:0x00007964; // type:function size:0x26C scope:local +fn_1_7BB0 = .text:0x00007BD0; // type:function size:0x38C +fn_1_7F3C = .text:0x00007F5C; // type:function size:0x68 +fn_1_7FA4 = .text:0x00007FC4; // type:function size:0x2C0 +fn_1_8264 = .text:0x00008284; // type:function size:0xBC +fn_1_8320 = .text:0x00008340; // type:function size:0x100 scope:local +fn_1_8420 = .text:0x00008440; // type:function size:0x70 scope:local +fn_1_8490 = .text:0x000084B0; // type:function size:0x5C8 scope:local +fn_1_8A58 = .text:0x00008A78; // type:function size:0x4C8 scope:local +fn_1_8F20 = .text:0x00008F40; // type:function size:0x2B8 +fn_1_91D8 = .text:0x000091F8; // type:function size:0xBC +fn_1_9294 = .text:0x000092B4; // type:function size:0x44 +fn_1_92D8 = .text:0x000092F8; // type:function size:0xF0 +fn_1_93C8 = .text:0x000093E8; // type:function size:0x10C scope:local +fn_1_94D4 = .text:0x000094F4; // type:function size:0xD8 scope:local +fn_1_95AC = .text:0x000095CC; // type:function size:0x8B0 scope:local +fn_1_9E5C = .text:0x00009E7C; // type:function size:0x5AC scope:local +fn_1_A408 = .text:0x0000A428; // type:function size:0x744 scope:local +fn_1_AB4C = .text:0x0000AB6C; // type:function size:0x730 scope:local +fn_1_B27C = .text:0x0000B29C; // type:function size:0x424 scope:local +fn_1_B6A0 = .text:0x0000B6C0; // type:function size:0x240 scope:local +fn_1_B8E0 = .text:0x0000B900; // type:function size:0x230 scope:local +fn_1_BB10 = .text:0x0000BB30; // type:function size:0x1F8 scope:local +fn_1_BD08 = .text:0x0000BD28; // type:function size:0x3C scope:local +fn_1_BD44 = .text:0x0000BD64; // type:function size:0x48 scope:local +fn_1_BD8C = .text:0x0000BDAC; // type:function size:0x37C scope:local +fn_1_C108 = .text:0x0000C128; // type:function size:0x1AC +fn_1_C2B4 = .text:0x0000C2D4; // type:function size:0x158 +fn_1_C40C = .text:0x0000C42C; // type:function size:0x5B0 scope:local +fn_1_C9BC = .text:0x0000C9DC; // type:function size:0xD0 scope:local +fn_1_CA8C = .text:0x0000CAAC; // type:function size:0x40 scope:local +fn_1_CACC = .text:0x0000CAEC; // type:function size:0x1C4 scope:local +fn_1_CC90 = .text:0x0000CCB0; // type:function size:0x7C +fn_1_CD0C = .text:0x0000CD2C; // type:function size:0x398 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 scope:local +lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 scope:local +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 scope:local +lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 scope:local data:byte +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 scope:local +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 scope:local data:string +lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 scope:local +lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 scope:local +lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 scope:local data:byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 scope:local data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 scope:local data:2byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 scope:local +lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 scope:local data:string +lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE scope:local +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 scope:local +lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 scope:local +lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 scope:local data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 scope:local data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 scope:local data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 scope:local data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 scope:local data:string +lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 scope:local data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 scope:local data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 scope:local data:string +lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 scope:local data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 scope:local data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 scope:local data:string +lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 scope:local data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 scope:local +lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 scope:local data:2byte +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 scope:local +lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 scope:local +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC scope:local +lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 scope:local +lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 scope:local +lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 scope:local +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 scope:local +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 scope:local +lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 scope:local +lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 scope:local +lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0xB scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 scope:local data:byte +lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 scope:local data:byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC scope:local data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 scope:local data:byte +lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 scope:local +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 scope:local data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 scope:local +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 scope:local data:byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 scope:local +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC scope:local +lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 scope:local data:byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 scope:local data:byte diff --git a/config/GMPP01_00/rels/w20Dll/splits.txt b/config/GMPP01_00/rels/w20Dll/splits.txt new file mode 100644 index 00000000..9df8ed45 --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/splits.txt @@ -0,0 +1,17 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w20Dll/main.c: + .text start:0x000000E0 end:0x00000678 + .rodata start:0x00000010 end:0x00000030 + .data start:0x00000000 end:0x00000034 + .bss start:0x00000000 end:0x0000000E diff --git a/config/GMPP01_00/rels/w20Dll/symbols.txt b/config/GMPP01_00/rels/w20Dll/symbols.txt new file mode 100644 index 00000000..0e84011e --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/symbols.txt @@ -0,0 +1,33 @@ +ObjectSetup = .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 +BoardCreate = .text:0x000000E0; // type:function size:0x2B0 +BoardDestroy = .text:0x00000390; // type:function size:0xBC +fn_1_44C = .text:0x0000044C; // type:function size:0x44 +fn_1_490 = .text:0x00000490; // type:function size:0x4 +fn_1_494 = .text:0x00000494; // type:function size:0x4 +fn_1_498 = .text:0x00000498; // type:function size:0x8 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 +fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 +fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte +lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x2 data:2byte +lbl_1_data_A = .data:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x20 data:4byte +unkMotTbl = .data:0x0000002C; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 diff --git a/config/GMPP01_00/rels/ztardll/splits.txt b/config/GMPP01_00/rels/ztardll/splits.txt new file mode 100644 index 00000000..403b2201 --- /dev/null +++ b/config/GMPP01_00/rels/ztardll/splits.txt @@ -0,0 +1,27 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/ztardll/main.c: + .text start:0x000000A0 end:0x0000789C + .rodata start:0x00000000 end:0x000001C0 + .data start:0x00000000 end:0x000000B0 + .bss start:0x00000000 end:0x00000070 + +REL/ztardll/font.c: + .text start:0x0000789C end:0x00007C40 + .rodata start:0x000001C0 end:0x000001C8 + .data start:0x000000B0 end:0x00000570 + +REL/ztardll/select.c: + .text start:0x00007C40 end:0x000123AC + .rodata start:0x000001C8 end:0x000002A0 + .data start:0x00000570 end:0x0000081C + .bss start:0x00000070 end:0x000002D8 diff --git a/config/GMPP01_00/rels/ztardll/symbols.txt b/config/GMPP01_00/rels/ztardll/symbols.txt new file mode 100644 index 00000000..3ccb8483 --- /dev/null +++ b/config/GMPP01_00/rels/ztardll/symbols.txt @@ -0,0 +1,259 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x1350 +fn_1_1774 = .text:0x00001774; // type:function size:0x57C +fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 +fn_1_1DA0 = .text:0x00001DA0; // type:function size:0x5B0 +fn_1_2350 = .text:0x00002350; // type:function size:0x1060 +fn_1_33B0 = .text:0x000033B0; // type:function size:0xD34 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 +fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 +fn_1_4948 = .text:0x00004948; // type:function size:0x874 +fn_1_51BC = .text:0x000051BC; // type:function size:0x194 +fn_1_524C = .text:0x00005350; // type:function size:0x14BC +fn_1_66F8 = .text:0x0000680C; // type:function size:0x140 +fn_1_6804 = .text:0x0000694C; // type:function size:0xC10 +fn_1_7414 = .text:0x0000755C; // type:function size:0x340 +fn_1_7754 = .text:0x0000789C; // type:function size:0x3A4 +fn_1_7C00 = .text:0x00007C40; // type:function size:0x16C +fn_1_7D6C = .text:0x00007DAC; // type:function size:0xA0 +fn_1_7E0C = .text:0x00007E4C; // type:function size:0x224 +fn_1_8030 = .text:0x00008070; // type:function size:0x2DC +fn_1_830C = .text:0x0000834C; // type:function size:0x2C +fn_1_8338 = .text:0x00008378; // type:function size:0x518 +fn_1_8850 = .text:0x00008890; // type:function size:0x2C +fn_1_887C = .text:0x000088BC; // type:function size:0x28 +fn_1_88A4 = .text:0x000088E4; // type:function size:0x274 +fn_1_8B18 = .text:0x00008B58; // type:function size:0x2C +fn_1_8B44 = .text:0x00008B84; // type:function size:0x2C +fn_1_8B70 = .text:0x00008BB0; // type:function size:0x24 +fn_1_8B94 = .text:0x00008BD4; // type:function size:0x2BC +fn_1_8E50 = .text:0x00008E90; // type:function size:0x500 +fn_1_9350 = .text:0x00009390; // type:function size:0x480 +fn_1_97D0 = .text:0x00009810; // type:function size:0x80C +fn_1_9FDC = .text:0x0000A01C; // type:function size:0x28 +fn_1_A004 = .text:0x0000A044; // type:function size:0x28 +fn_1_A02C = .text:0x0000A06C; // type:function size:0x21C +fn_1_A248 = .text:0x0000A288; // type:function size:0x194 +fn_1_A3DC = .text:0x0000A41C; // type:function size:0x198 +fn_1_A574 = .text:0x0000A5B4; // type:function size:0x9C +fn_1_A610 = .text:0x0000A650; // type:function size:0x2D8 +fn_1_A8E8 = .text:0x0000A928; // type:function size:0x2DC +fn_1_ABC4 = .text:0x0000AC04; // type:function size:0x1E0 +fn_1_ADA4 = .text:0x0000ADE4; // type:function size:0xF0 +fn_1_AE94 = .text:0x0000AED4; // type:function size:0x50 +fn_1_AEE4 = .text:0x0000AF24; // type:function size:0x584 +fn_1_B468 = .text:0x0000B4A8; // type:function size:0x5D8 +fn_1_BA40 = .text:0x0000BA80; // type:function size:0x33C +fn_1_BD7C = .text:0x0000BDBC; // type:function size:0x274 +fn_1_BFF0 = .text:0x0000C030; // type:function size:0x7C +fn_1_C06C = .text:0x0000C0AC; // type:function size:0x44C +fn_1_C4B8 = .text:0x0000C4F8; // type:function size:0x434 +fn_1_C8EC = .text:0x0000C92C; // type:function size:0x204 +fn_1_CAF0 = .text:0x0000CB30; // type:function size:0x790 +fn_1_D280 = .text:0x0000D2C0; // type:function size:0xB0C +fn_1_DD8C = .text:0x0000DDCC; // type:function size:0x720 +fn_1_E4AC = .text:0x0000E4EC; // type:function size:0x9C +fn_1_E548 = .text:0x0000E588; // type:function size:0xCCC +fn_1_F214 = .text:0x0000F254; // type:function size:0x924 +fn_1_FB38 = .text:0x0000FB78; // type:function size:0x258 +fn_1_FD90 = .text:0x0000FDD0; // type:function size:0x958 +fn_1_106E8 = .text:0x00010728; // type:function size:0x7C +fn_1_10764 = .text:0x000107A4; // type:function size:0x164 +fn_1_108C8 = .text:0x00010908; // type:function size:0x1B8 +fn_1_10A80 = .text:0x00010AC0; // type:function size:0xA4 +fn_1_10B24 = .text:0x00010B64; // type:function size:0xF4 +fn_1_10C18 = .text:0x00010C58; // type:function size:0x80 +fn_1_10C98 = .text:0x00010CD8; // type:function size:0x80 +fn_1_10D18 = .text:0x00010D58; // type:function size:0x28 +fn_1_10D40 = .text:0x00010D80; // type:function size:0x20 +fn_1_10D60 = .text:0x00010DA0; // type:function size:0xD8 +fn_1_10E38 = .text:0x00010E78; // type:function size:0xC8 +fn_1_10F00 = .text:0x00010F40; // type:function size:0xBC +fn_1_10FBC = .text:0x00010FFC; // type:function size:0x40 +fn_1_10FFC = .text:0x0001103C; // type:function size:0x24 +fn_1_11020 = .text:0x00011060; // type:function size:0x1C0 +fn_1_111E0 = .text:0x00011220; // type:function size:0x84 +fn_1_11264 = .text:0x000112A4; // type:function size:0xD4 +fn_1_11338 = .text:0x00011378; // type:function size:0x58 +fn_1_11390 = .text:0x000113D0; // type:function size:0x15C +fn_1_114EC = .text:0x0001152C; // type:function size:0x21C +fn_1_11708 = .text:0x00011748; // type:function size:0x204 +fn_1_1190C = .text:0x0001194C; // type:function size:0x54 +fn_1_11960 = .text:0x000119A0; // type:function size:0x304 +fn_1_11C64 = .text:0x00011CA4; // type:function size:0x304 +fn_1_11F68 = .text:0x00011FA8; // type:function size:0x340 +fn_1_122A8 = .text:0x000122E8; // type:function size:0xC4 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0xA +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC +lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 scope:local +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C0 +lbl_1_data_3C8 = .data:0x00000570; // type:object size:0x20 +lbl_1_data_3E8 = .data:0x00000590; // type:object size:0x20 +lbl_1_data_5B0 = .data:0x000005B0; // type:object size:0x3C scope:local data:string +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x19 scope:local data:string +lbl_1_data_605 = .data:0x00000605; // type:object size:0x1A scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x3D scope:local +lbl_1_data_4B4 = .data:0x0000065C; // type:object size:0x20 data:4byte +lbl_1_data_4D4 = .data:0x0000067C; // type:object size:0x40 data:4byte +lbl_1_data_514 = .data:0x000006BC; // type:object size:0x70 +lbl_1_data_584 = .data:0x0000072C; // type:object size:0x90 data:4byte +lbl_1_data_614 = .data:0x000007BC; // type:object size:0x20 +lbl_1_data_634 = .data:0x000007DC; // type:object size:0x8 data:4byte +lbl_1_data_63C = .data:0x000007E4; // type:object size:0x10 +lbl_1_data_64C = .data:0x000007F4; // type:object size:0x20 +lbl_1_data_66C = .data:0x00000814; // type:object size:0x4 data:4byte +lbl_1_data_670 = .data:0x00000818; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +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:0x28 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // 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:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x14 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x180 data:4byte +lbl_1_bss_20C = .bss:0x0000020C; // type:object size:0x60 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x6C data:4byte diff --git a/config/GMPP01_00/splits.txt b/config/GMPP01_00/splits.txt new file mode 100644 index 00000000..e1da1fa4 --- /dev/null +++ b/config/GMPP01_00/splits.txt @@ -0,0 +1,654 @@ +Sections: + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:4 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:32 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:32 + +game/main.c: + .text start:0x800057C0 end:0x80005A64 + .data start:0x8011EC00 end:0x8011EC10 + .sdata start:0x801F07C0 end:0x801F07D0 + .sbss start:0x801F0DC0 end:0x801F0E18 + .sdata2 start:0x801F1D20 end:0x801F1D28 + +game/pad.c: + .text start:0x80005A64 end:0x80006480 + .data start:0x8011EC10 end:0x8011EC20 + .bss start:0x8015FBA0 end:0x8015FBE0 + .sbss start:0x801F0E18 end:0x801F0EA0 + +game/dvd.c: + .text start:0x80006480 end:0x80006E40 + .data start:0x8011EC20 end:0x8011ED78 + .sdata start:0x801F07D0 end:0x801F07D8 + .sbss start:0x801F0EA0 end:0x801F0EA8 + +game/data.c: + .text start:0x80006E40 end:0x80009408 + .data start:0x8011ED78 end:0x8011FC00 + .bss start:0x8015FBE0 end:0x801629E0 + .sdata start:0x801F07D8 end:0x801F07E8 + .sbss start:0x801F0EA8 end:0x801F0EB8 + +game/decode.c: + .text start:0x80009408 end:0x80009B04 + .data start:0x8011FC00 end:0x8011FC20 + .bss start:0x801629E0 end:0x80162DE0 + +game/font.c: + .data start:0x8011FC20 end:0x80121C20 + +game/init.c: + .text start:0x80009B04 end:0x8000A46C + .data start:0x80121C20 end:0x80121D70 + .bss start:0x80162DE0 end:0x80162E20 + .sdata start:0x801F07E8 end:0x801F0800 + .sbss start:0x801F0EB8 end:0x801F0EE8 + .sdata2 start:0x801F1D28 end:0x801F1D38 + +game/jmp.c: + .text start:0x8000A46C end:0x8000A560 + +game/malloc.c: + .text start:0x8000A560 end:0x8000A940 + .data start:0x80121D70 end:0x80121DE8 + .bss start:0x80162E20 end:0x80162E38 + +game/memory.c: + .text start:0x8000A940 end:0x8000AEF8 + .data start:0x80121DE8 end:0x80121F60 + +game/printfunc.c: + .text start:0x8000AEF8 end:0x8000C4AC + .data start:0x80121F60 end:0x80121FA0 + .bss start:0x80162E38 end:0x80169738 + .sbss start:0x801F0EE8 end:0x801F0EF8 + .sdata2 start:0x801F1D38 end:0x801F1D88 + +game/process.c: + .text start:0x8000C4AC end:0x8000D350 + .data start:0x80121FA0 end:0x80121FF0 + .bss start:0x80169738 end:0x80169830 + .sbss start:0x801F0EF8 end:0x801F0F08 + +game/sprman.c: + .text start:0x8000D350 end:0x8000F6A8 + .rodata start:0x8011DB20 end:0x8011DB30 + .data start:0x80121FF0 end:0x80122110 + .bss start:0x80169830 end:0x80179A30 + .sdata start:0x801F0800 end:0x801F0810 + .sbss start:0x801F0F08 end:0x801F0F10 + .sdata2 start:0x801F1D88 end:0x801F1DB0 + +game/sprput.c: + .text start:0x8000F6A8 end:0x80010B38 + .rodata start:0x8011DB30 end:0x8011DB40 + .data start:0x80122110 end:0x80122140 + .bss start:0x80179A30 end:0x80179A60 + .sbss start:0x801F0F10 end:0x801F0F18 + .sdata2 start:0x801F1DB0 end:0x801F1DE8 + +game/hsfload.c: + .text start:0x80010B38 end:0x80014020 + .data start:0x80122140 end:0x801221B0 + .bss start:0x80179A60 end:0x8017A020 + .sbss start:0x801F0F18 end:0x801F0F50 + +game/hsfdraw.c: + .text start:0x80014020 end:0x8001F9B4 + .rodata start:0x8011DB40 end:0x8011DB50 + .data start:0x801221B0 end:0x801223C0 + .bss start:0x8017A020 end:0x80184B60 + .sdata start:0x801F0810 end:0x801F0828 + .sbss start:0x801F0F50 end:0x801F0FF0 + .sdata2 start:0x801F1DE8 end:0x801F1E70 + +game/hsfman.c: + .text start:0x8001F9B4 end:0x800250F0 + .data start:0x801223C0 end:0x8012D478 + .bss start:0x80184B60 end:0x801AA770 + .sbss start:0x801F0FF0 end:0x801F1020 + .sdata2 start:0x801F1E70 end:0x801F1ED0 + .sbss2 start:0x801F3FC0 end:0x801F3FC8 + +game/hsfmotion.c: + .text start:0x800250F0 end:0x80028B0C + .data start:0x8012D478 end:0x8012D658 + .bss start:0x801AA770 end:0x801AAF70 + .sbss start:0x801F1020 end:0x801F1028 + .sdata2 start:0x801F1ED0 end:0x801F1F20 + +game/hsfanim.c: + .text start:0x80028B0C end:0x8002CB7C + .data start:0x8012D658 end:0x8012D718 + .bss start:0x801AAF70 end:0x801ACB30 + .sdata2 start:0x801F1F20 end:0x801F1FA8 + +game/hsfex.c: + .text start:0x8002CB7C end:0x8002E754 + .data start:0x8012D718 end:0x8012D738 + .sdata2 start:0x801F1FA8 end:0x801F2038 + +game/perf.c: + .text start:0x8002E754 end:0x8002EBE0 + .bss start:0x801ACB30 end:0x801ACED8 + .sdata start:0x801F0828 end:0x801F0838 + .sbss start:0x801F1028 end:0x801F1080 + +game/objmain.c: + .text start:0x8002EBE0 end:0x8002FF54 + .data start:0x8012D738 end:0x8012DAE8 + .bss start:0x801ACED8 end:0x801ACF98 + .sdata start:0x801F0838 end:0x801F0840 + .sbss start:0x801F1080 end:0x801F10B0 + .sdata2 start:0x801F2038 end:0x801F2060 + +game/fault.c: + .text start:0x8002FF54 end:0x800308C0 + .data start:0x8012DAE8 end:0x8012E310 + .bss start:0x801ACF98 end:0x801ACFB0 + .sdata start:0x801F0840 end:0x801F0850 + .sbss start:0x801F10B0 end:0x801F10C0 + +game/gamework.c: + .text start:0x800308C0 end:0x800315D4 + .rodata start:0x8011DB50 end:0x8011DB70 + .bss start:0x801ACFB0 end:0x801AD3A8 + .sdata start:0x801F0850 end:0x801F0858 + +game/objsysobj.c: + .text start:0x800315D4 end:0x80031DCC + .bss start:0x801AD3A8 end:0x801AD580 + .sbss start:0x801F10C0 end:0x801F10C8 + .sdata2 start:0x801F2060 end:0x801F2070 + +game/objdll.c: + .text start:0x80031DCC end:0x8003260C + .data start:0x8012E310 end:0x8012E7A8 + .bss start:0x801AD580 end:0x801AD5D0 + .sbss start:0x801F10C8 end:0x801F10D0 + +game/frand.c: + .text start:0x8003260C end:0x80032848 + .sbss start:0x801F10D0 end:0x801F10D8 + .sdata2 start:0x801F2070 end:0x801F2080 + +game/audio.c: + .text start:0x80032848 end:0x80033F08 + .data start:0x8012E7A8 end:0x8012EF50 + .bss start:0x801AD5D0 end:0x801AD7F0 + .sdata start:0x801F0858 end:0x801F0860 + .sbss start:0x801F10D8 end:0x801F1108 + .sdata2 start:0x801F2080 end:0x801F2090 + +game/EnvelopeExec.c: + .text start:0x80033F08 end:0x800353C8 + .sbss start:0x801F1108 end:0x801F1138 + .sdata2 start:0x801F2090 end:0x801F20A8 + +game/minigame_seq.c: + .text start:0x800353C8 end:0x8003F6E0 + .data start:0x8012EF50 end:0x8012F5B0 + .bss start:0x801AD7F0 end:0x801ADC00 + .sdata start:0x801F0860 end:0x801F0968 + .sbss start:0x801F1138 end:0x801F1158 + .sdata2 start:0x801F20A8 end:0x801F2268 + +game/ovllist.c: + .data start:0x8012F5B0 end:0x8012FF20 + +game/esprite.c: + .text start:0x8003F6E0 end:0x8003FD90 + .bss start:0x801ADC00 end:0x801AF400 + .sbss start:0x801F1158 end:0x801F1160 + +game/code_8003FF68.c: + .text start:0x8003FD90 end:0x80040328 + .data start:0x8012FF20 end:0x8012FF40 + .bss start:0x801AF400 end:0x801AF700 + .sdata start:0x801F0968 end:0x801F0988 + .sbss start:0x801F1160 end:0x801F1168 + .sdata2 start:0x801F2268 end:0x801F2280 + +game/ClusterExec.c: + .text start:0x80040328 end:0x80040B88 + .sdata2 start:0x801F2280 end:0x801F2290 + +game/ShapeExec.c: + .text start:0x80040B88 end:0x80040F98 + .sdata2 start:0x801F2290 end:0x801F22A0 + +game/wipe.c: + .text start:0x80040F98 end:0x80041ED4 + .data start:0x8012FF40 end:0x8012FF60 + .bss start:0x801AF700 end:0x801AF760 + .sdata start:0x801F0988 end:0x801F0990 + .sbss start:0x801F1168 end:0x801F1170 + .sdata2 start:0x801F22A0 end:0x801F22C8 + +game/window.c: + .text start:0x80041ED4 end:0x80048110 + .data start:0x8012FF60 end:0x80130550 + .bss start:0x801AF760 end:0x801B3B80 + .sdata start:0x801F0990 end:0x801F0998 + .sbss start:0x801F1170 end:0x801F11B0 + .sdata2 start:0x801F22C8 end:0x801F2358 + +game/messdata.c: + .text start:0x80048110 end:0x800481F8 + +game/card.c: + .text start:0x800481F8 end:0x800487FC + .data start:0x80130550 end:0x801305A0 + .sbss start:0x801F11B0 end:0x801F11B8 + +game/armem.c: + .text start:0x800487FC end:0x80049668 + .data start:0x801305A0 end:0x80130690 + .bss start:0x801B3B80 end:0x801B4260 + .sbss start:0x801F11B8 end:0x801F11C8 + +game/chrman.c: + .text start:0x80049668 end:0x800509D4 + .data start:0x80130690 end:0x801310B0 + .bss start:0x801B4260 end:0x801B49F0 + .sdata start:0x801F0998 end:0x801F09E0 + .sbss start:0x801F11C8 end:0x801F11D0 + .sdata2 start:0x801F2358 end:0x801F2490 + +game/mapspace.c: + .text start:0x800509D4 end:0x80054778 + .bss start:0x801B49F0 end:0x801B4E60 + .sbss start:0x801F11D0 end:0x801F11F0 + .sdata2 start:0x801F2490 end:0x801F24C0 + +game/THPSimple.c: + .text start:0x80054778 end:0x8005687C + .data start:0x801310B0 end:0x801311B0 + .bss start:0x801B4E60 end:0x801B5540 + .sdata start:0x801F09E0 end:0x801F09E8 + .sbss start:0x801F11F0 end:0x801F1210 + .sdata2 start:0x801F24C0 end:0x801F24C8 + +game/THPDraw.c: + .text start:0x8005687C end:0x800571D4 + .sdata2 start:0x801F24C8 end:0x801F24E0 + +game/thpmain.c: + .text start:0x800571D4 end:0x80057B9C + .rodata start:0x8011DB70 end:0x8011DB80 + .data start:0x801311B0 end:0x80131218 + .bss start:0x801B5540 end:0x801B5580 + .sbss start:0x801F1210 end:0x801F1238 + .sdata2 start:0x801F24E0 end:0x801F24F8 + +game/objsub.c: + .text start:0x80057B9C end:0x80057D88 + .data start:0x80131218 end:0x80132018 + .bss start:0x801B5580 end:0x801B57B0 + .sbss start:0x801F1238 end:0x801F1260 + +game/flag.c: + .text start:0x80057D88 end:0x80057FA0 + .bss start:0x801B57B0 end:0x801B57C0 + +game/saveload.c: + .text start:0x80057FA0 end:0x8005A40C + .data start:0x80132018 end:0x801320C0 + .bss start:0x801B57C0 end:0x801B97E0 + .sdata start:0x801F09E8 end:0x801F0A00 + .sbss start:0x801F1260 end:0x801F1270 + .sdata2 start:0x801F24F8 end:0x801F2508 + +game/sreset.c: + .text start:0x8005A40C end:0x8005AEF0 + .data start:0x801320C0 end:0x80156B20 + .bss start:0x801B97E0 end:0x801BAB80 + .sdata start:0x801F0A00 end:0x801F0A18 + .sbss start:0x801F1270 end:0x801F1288 + +game/board/main.c: + .text start:0x8005AEF0 end:0x80061D78 + .rodata start:0x8011DB80 end:0x8011DBB0 + .data start:0x80156B20 end:0x80156C20 + .bss start:0x801BAB80 end:0x801BAD08 + .sdata start:0x801F0A18 end:0x801F0A28 + .sbss start:0x801F1288 end:0x801F12D8 + .sdata2 start:0x801F2508 end:0x801F25B8 + +game/board/player.c: + .text start:0x80061D78 end:0x8006D0BC + .rodata start:0x8011DBB0 end:0x8011DC80 + .data start:0x80156C20 end:0x80156E28 + .bss start:0x801BAD08 end:0x801BAD38 + .sdata start:0x801F0A28 end:0x801F0A88 + .sbss start:0x801F12D8 end:0x801F1310 + .sdata2 start:0x801F25B8 end:0x801F26C0 + +game/board/model.c: + .text start:0x8006D0BC end:0x8006FB30 + .sbss start:0x801F1310 end:0x801F1320 + .sdata2 start:0x801F26C0 end:0x801F26D8 + +game/board/window.c: + .text start:0x8006FB30 end:0x80070B30 + .rodata start:0x8011DC80 end:0x8011DCF0 + .data start:0x80156E28 end:0x80156E70 + .bss start:0x801BAD38 end:0x801BAD98 + .sdata start:0x801F0A88 end:0x801F0A90 + .sbss start:0x801F1320 end:0x801F1348 + .sdata2 start:0x801F26D8 end:0x801F26E8 + +game/board/audio.c: + .text start:0x80070B30 end:0x8007103C + .data start:0x80156E70 end:0x80156E88 + .sdata start:0x801F0A90 end:0x801F0A98 + .sbss start:0x801F1348 end:0x801F1350 + +game/board/com.c: + .text start:0x8007103C end:0x80072750 + .data start:0x80156E88 end:0x80156F50 + .sdata start:0x801F0A98 end:0x801F0AA0 + .sdata2 start:0x801F26E8 end:0x801F2710 + +game/board/view.c: + .text start:0x80072750 end:0x80073DD0 + .rodata start:0x8011DCF0 end:0x8011DD10 + .data start:0x80156F50 end:0x80157050 + .bss start:0x801BAD98 end:0x801BADB0 + .sdata start:0x801F0AA0 end:0x801F0AA8 + .sbss start:0x801F1350 end:0x801F1368 + .sdata2 start:0x801F2710 end:0x801F2780 + +game/board/space.c: + .text start:0x80073DD0 end:0x80077888 + .data start:0x80157050 end:0x80157090 + .bss start:0x801BADB0 end:0x801C1E00 + .sdata start:0x801F0AA8 end:0x801F0AB0 + .sbss start:0x801F1368 end:0x801F13A0 + .sdata2 start:0x801F2780 end:0x801F2800 + +game/board/shop.c: + .text start:0x80077888 end:0x8007A6B4 + .data start:0x80157090 end:0x80157210 + .bss start:0x801C1E00 end:0x801C1E30 + .sdata start:0x801F0AB0 end:0x801F0AD0 + .sbss start:0x801F13A0 end:0x801F13C0 + .sdata2 start:0x801F2800 end:0x801F28D8 + +game/board/lottery.c: + .text start:0x8007A6B4 end:0x8007F9C8 + .rodata start:0x8011DD10 end:0x8011DE40 + .data start:0x80157210 end:0x80157578 + .bss start:0x801C1E30 end:0x801C1E60 + .sdata start:0x801F0AD0 end:0x801F0AF0 + .sbss start:0x801F13C0 end:0x801F13E0 + .sdata2 start:0x801F28D8 end:0x801F2A68 + +game/board/basic_space.c: + .text start:0x8007F9C8 end:0x80080BCC + .data start:0x80157578 end:0x801575B0 + .sdata2 start:0x801F2A68 end:0x801F2AF8 + +game/board/warp.c: + .text start:0x80080BCC end:0x80081544 + .rodata start:0x8011DE40 end:0x8011DE60 + .data start:0x801575B0 end:0x801575D0 + .bss start:0x801C1E60 end:0x801C1E70 + .sdata start:0x801F0AF0 end:0x801F0B00 + .sbss start:0x801F13E0 end:0x801F13F8 + .sdata2 start:0x801F2AF8 end:0x801F2B48 + +game/board/char_wheel.c: + .text start:0x80081544 end:0x80082B3C + .data start:0x801575D0 end:0x80157638 + .sdata start:0x801F0B00 end:0x801F0B08 + .sbss start:0x801F13F8 end:0x801F1418 + .sdata2 start:0x801F2B48 end:0x801F2BD8 + +game/board/mushroom.c: + .text start:0x80082B3C end:0x80083D88 + .sdata start:0x801F0B08 end:0x801F0B18 + .sbss start:0x801F1418 end:0x801F1428 + .sdata2 start:0x801F2BD8 end:0x801F2C60 + +game/board/star.c: + .text start:0x80083D88 end:0x80085B74 + .rodata start:0x8011DE60 end:0x8011DED0 + .data start:0x80157638 end:0x801576F0 + .bss start:0x801C1E70 end:0x801C1E80 + .sdata start:0x801F0B18 end:0x801F0B20 + .sbss start:0x801F1428 end:0x801F1440 + .sdata2 start:0x801F2C60 end:0x801F2D00 + +game/board/roll.c: + .text start:0x80085B74 end:0x800882B4 + .rodata start:0x8011DED0 end:0x8011DF38 + .data start:0x801576F0 end:0x80157790 + .bss start:0x801C1E80 end:0x801C1E90 + .sdata start:0x801F0B20 end:0x801F0B38 + .sbss start:0x801F1440 end:0x801F1460 + .sdata2 start:0x801F2D00 end:0x801F2DB0 + +game/board/ui.c: + .text start:0x800882B4 end:0x8008DE88 + .rodata start:0x8011DF38 end:0x8011E020 + .data start:0x80157790 end:0x80157990 + .bss start:0x801C1E90 end:0x801C1F20 + .sdata start:0x801F0B38 end:0x801F0B40 + .sbss start:0x801F1460 end:0x801F1498 + .sdata2 start:0x801F2DB0 end:0x801F2E70 + +game/board/block.c: + .text start:0x8008DE88 end:0x8008ED48 + .rodata start:0x8011E020 end:0x8011E040 + .data start:0x80157990 end:0x801579A8 + .bss start:0x801C1F20 end:0x801C1F48 + .sdata start:0x801F0B40 end:0x801F0B48 + .sbss start:0x801F1498 end:0x801F14B0 + .sdata2 start:0x801F2E70 end:0x801F2EC8 + +game/board/item.c: + .text start:0x8008ED48 end:0x800974CC + .rodata start:0x8011E040 end:0x8011E058 + .data start:0x801579A8 end:0x80157D98 + .bss start:0x801C1F48 end:0x801C1F88 + .sdata start:0x801F0B48 end:0x801F0B58 + .sbss start:0x801F14B0 end:0x801F14F0 + .sdata2 start:0x801F2EC8 end:0x801F3100 + +game/board/bowser.c: + .text start:0x800974CC end:0x8009B3F4 + .rodata start:0x8011E058 end:0x8011E120 + .data start:0x80157D98 end:0x80157DE8 + .bss start:0x801C1F88 end:0x801C1FD0 + .sdata start:0x801F0B58 end:0x801F0B70 + .sbss start:0x801F14F0 end:0x801F1530 + .sdata2 start:0x801F3100 end:0x801F31B0 + +game/board/battle.c: + .text start:0x8009B3F4 end:0x8009D068 + .rodata start:0x8011E120 end:0x8011E1A0 + .data start:0x80157DE8 end:0x80157E98 + .bss start:0x801C1FD0 end:0x801C1FE0 + .sdata start:0x801F0B70 end:0x801F0B78 + .sbss start:0x801F1530 end:0x801F1558 + .sdata2 start:0x801F31B0 end:0x801F3258 + +game/board/fortune.c: + .text start:0x8009D068 end:0x8009DEF0 + .rodata start:0x8011E1A0 end:0x8011E1C8 + .data start:0x80157E98 end:0x80157EB0 + .bss start:0x801C1FE0 end:0x801C1FF8 + .sdata start:0x801F0B78 end:0x801F0B80 + .sbss start:0x801F1558 end:0x801F1568 + .sdata2 start:0x801F3258 end:0x801F3268 + +game/board/boo.c: + .text start:0x8009DEF0 end:0x800A1954 + .data start:0x80157EB0 end:0x80158088 + .sdata start:0x801F0B80 end:0x801F0B90 + .sbss start:0x801F1568 end:0x801F15A0 + .sdata2 start:0x801F3268 end:0x801F3378 + +game/board/mg_setup.c: + .text start:0x800A1954 end:0x800A4E8C + .rodata start:0x8011E1C8 end:0x8011E1F0 + .data start:0x80158088 end:0x801581C0 + .bss start:0x801C1FF8 end:0x801C2068 + .sdata start:0x801F0B90 end:0x801F0B98 + .sbss start:0x801F15A0 end:0x801F15D0 + .sdata2 start:0x801F3378 end:0x801F3450 + +game/board/boo_house.c: + .text start:0x800A4E8C end:0x800A6E04 + .data start:0x801581C0 end:0x801582F8 + .bss start:0x801C2068 end:0x801C2078 + .sdata start:0x801F0B98 end:0x801F0BE8 + .sbss start:0x801F15D0 end:0x801F15E8 + .sdata2 start:0x801F3450 end:0x801F3498 + +game/board/start.c: + .text start:0x800A6E04 end:0x800A9628 + .rodata start:0x8011E1F0 end:0x8011E210 + .data start:0x801582F8 end:0x80158460 + .bss start:0x801C2078 end:0x801C2090 + .sdata start:0x801F0BE8 end:0x801F0BF8 + .sbss start:0x801F15E8 end:0x801F15F8 + .sdata2 start:0x801F3498 end:0x801F3568 + +game/board/last5.c: + .text start:0x800A9628 end:0x800ADAA4 + .rodata start:0x8011E210 end:0x8011E250 + .data start:0x80158460 end:0x80158778 + .bss start:0x801C2090 end:0x801C20D8 + .sdata start:0x801F0BF8 end:0x801F0C50 + .sbss start:0x801F15F8 end:0x801F1618 + .sdata2 start:0x801F3568 end:0x801F3668 + +game/board/pause.c: + .text start:0x800ADAA4 end:0x800B1894 + .data start:0x80158778 end:0x801588A0 + .bss start:0x801C20D8 end:0x801C2108 + .sdata start:0x801F0C50 end:0x801F0C60 + .sbss start:0x801F1618 end:0x801F1638 + .sdata2 start:0x801F3668 end:0x801F3720 + +game/board/com_path.c: + .text start:0x800B1894 end:0x800B3DF8 + .bss start:0x801C2108 end:0x801C2688 + .sbss start:0x801F1638 end:0x801F1640 + +game/board/tutorial.c: + .text start:0x800B3DF8 end:0x800B4214 + .data start:0x801588A0 end:0x801588E8 + .bss start:0x801C2688 end:0x801C26A0 + .sbss start:0x801F1640 end:0x801F1668 + +dolphin/os/__start.c: + .init start:0x80003100 end:0x80003354 + +dolphin/PPCArch.c: + .text start:0x800B4214 end:0x800B42BC + +dolphin/os/OS.c: + .text start:0x800B42BC end:0x800B4C18 + .data start:0x801588E8 end:0x80158AA8 + .bss start:0x801C26A0 end:0x801C26F0 + .sbss start:0x801F1668 end:0x801F1698 + +musyx/runtime/seq.c: + .text start:0x800F26B0 end:0x800F6620 + +musyx/runtime/synth.c: + .text start:0x800F6620 end:0x800F997C + +musyx/runtime/seq_api.c: + .text start:0x800F997C end:0x800F9BFC + +musyx/runtime/snd_synthapi.c: + .text start:0x800F9BFC end:0x800FA37C + +musyx/runtime/stream.c: + .text start:0x800FA37C end:0x800FDEE8 + +musyx/runtime/synthdata.c: + .text start:0x800FDEE8 end:0x800FFC78 + +musyx/runtime/synthmacros.c: + .text start:0x800FFC78 end:0x801049D0 + +musyx/runtime/synthvoice.c: + .text start:0x801049D0 end:0x80106460 + +musyx/runtime/synth_ac.c: + .text start:0x80106460 end:0x80106580 + +musyx/runtime/synth_adsr.c: + .text start:0x80106580 end:0x80106D40 + +musyx/runtime/synth_vsamples.c: + .text start:0x80106D40 end:0x801074C8 + +musyx/runtime/s_data.c: + .text start:0x801074C8 end:0x80108020 + +musyx/runtime/hw_dspctrl.c: + .text start:0x80108020 end:0x8010B434 + +musyx/runtime/hw_volconv.c: + .text start:0x8010B434 end:0x8010BB24 + +musyx/runtime/snd3d.c: + .text start:0x8010BB24 end:0x8010DEF4 + +musyx/runtime/snd_init.c: + .text start:0x8010DEF4 end:0x8010E048 + +musyx/runtime/snd_math.c: + .text start:0x8010E048 end:0x8010E408 + +musyx/runtime/snd_midictrl.c: + .text start:0x8010E408 end:0x801100DC + +musyx/runtime/snd_service.c: + .text start:0x801100DC end:0x80110288 + +musyx/runtime/hardware.c: + .text start:0x80110288 end:0x8011128C + +musyx/runtime/hw_aramdma.c: + .text start:0x8011128C end:0x80111F00 + +musyx/runtime/hw_dolphin.c: + .text start:0x80111F00 end:0x801123F8 + +musyx/runtime/hw_memory.c: + .text start:0x801123F8 end:0x8011244C + +musyx/runtime/CheapReverb/creverb_fx.c: + .text start:0x8011244C end:0x80112508 + +musyx/runtime/CheapReverb/creverb.c: + .text start:0x80112508 end:0x80112DC4 + +musyx/runtime/StdReverb/reverb_fx.c: + .text start:0x80112DC4 end:0x80112E84 + +musyx/runtime/StdReverb/reverb.c: + .text start:0x80112E84 end:0x80113BC8 + +musyx/runtime/Delay/delay_fx.c: + .text start:0x80113BC8 end:0x80113F74 + +musyx/runtime/Chorus/chorus_fx.c: + .text start:0x80113F74 end:0x801147DC diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt new file mode 100644 index 00000000..acf35410 --- /dev/null +++ b/config/GMPP01_00/symbols.txt @@ -0,0 +1,8670 @@ +__check_pad3 = .init:0x80003100; // type:function size:0x40 scope:local +__start = .init:0x80003140; // type:function size:0x138 scope:weak +__init_registers = .init:0x80003278; // type:function size:0x1C scope:local +__init_data = .init:0x80003294; // type:function size:0xC0 scope:local +__init_hardware = .init:0x80003354; // type:function size:0x20 scope:global +__flush_cache = .init:0x80003374; // type:function size:0x34 scope:global +memset = .init:0x800033A8; // type:function size:0x30 scope:global +__fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global +memcpy = .init:0x80003490; // type:function size:0x50 scope:global +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 +gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global +lbl_8000387C = .init:0x8000387C; // type:label +lbl_800038E0 = .init:0x800038E0; // type:label +__TRK_reset = .init:0x80005468; // type:function size:0x104 +gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global +_rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte +_bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte +@etb_80005620 = extab:0x80005620; // type:object size:0x28 scope:local hidden +@etb_80005648 = extab:0x80005648; // type:object size:0x8 scope:local hidden +@etb_80005650 = extab:0x80005650; // type:object size:0x8 scope:local hidden +@etb_80005658 = extab:0x80005658; // type:object size:0x8 scope:local hidden +@etb_80005660 = extab:0x80005660; // type:object size:0x8 scope:local hidden +@etb_80005668 = extab:0x80005668; // type:object size:0x8 scope:local hidden +@etb_80005670 = extab:0x80005670; // type:object size:0x8 scope:local hidden +@etb_80005678 = extab:0x80005678; // type:object size:0x14 scope:local hidden +@etb_8000568C = extab:0x8000568C; // type:object size:0x2C scope:local hidden +@etb_800056B8 = extab:0x800056B8; // type:object size:0x8 scope:local hidden +@etb_800056C0 = extab:0x800056C0; // type:object size:0x14 scope:local hidden +@etb_800056D4 = extab:0x800056D4; // type:object size:0x8 scope:local hidden +@etb_800056DC = extab:0x800056DC; // type:object size:0x8 scope:local hidden +@eti_80005700 = extabindex:0x80005700; // type:object size:0xC scope:local hidden +@eti_8000570C = extabindex:0x8000570C; // type:object size:0xC scope:local hidden +@eti_80005718 = extabindex:0x80005718; // type:object size:0xC scope:local hidden +@eti_80005724 = extabindex:0x80005724; // type:object size:0xC scope:local hidden +@eti_80005730 = extabindex:0x80005730; // type:object size:0xC scope:local hidden +@eti_8000573C = extabindex:0x8000573C; // type:object size:0xC scope:local hidden +@eti_80005748 = extabindex:0x80005748; // type:object size:0xC scope:local hidden +@eti_80005754 = extabindex:0x80005754; // type:object size:0xC scope:local hidden +@eti_80005760 = extabindex:0x80005760; // type:object size:0xC scope:local hidden +@eti_8000576C = extabindex:0x8000576C; // type:object size:0xC scope:local hidden +@eti_80005778 = extabindex:0x80005778; // type:object size:0xC scope:local hidden +@eti_80005784 = extabindex:0x80005784; // type:object size:0xC scope:local hidden +@eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden +_eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global +main = .text:0x800057C0; // type:function size:0x234 scope:global +HuSysVWaitSet = .text:0x800059F4; // type:function size:0x38 +HuSysVWaitGet = .text:0x80005A2C; // type:function size:0xC +rand8 = .text:0x80005A38; // type:function size:0x2C +HuPadInit = .text:0x80005A64; // type:function size:0xF0 +HuPadRead = .text:0x80005B54; // type:function size:0x168 +PadReadVSync = .text:0x80005CBC; // type:function size:0x440 scope:local +PadADConv = .text:0x800060FC; // type:function size:0x234 scope:local +HuPadRumbleSet = .text:0x80006330; // type:function size:0x54 +HuPadRumbleStop = .text:0x80006384; // type:function size:0x70 +HuPadRumbleAllStop = .text:0x800063F4; // type:function size:0x70 +HuPadStatGet = .text:0x80006464; // type:function size:0x14 +HuPadRumbleGet = .text:0x80006478; // type:function size:0x8 +HuDVDReadAsyncCallBack = .text:0x80006480; // type:function size:0xC scope:local +HuDvdDataRead = .text:0x8000648C; // type:function size:0x16C +HuDvdDataReadMulti = .text:0x800065F8; // type:function size:0x1B4 +HuDvdDataReadDirect = .text:0x800067AC; // type:function size:0x170 +HuDvdDataFastRead = .text:0x8000691C; // type:function size:0x16C +HuDvdDataFastReadNum = .text:0x80006A88; // type:function size:0x174 +HuDvdDataFastReadAsync = .text:0x80006BFC; // type:function size:0x150 +HuDvdDataClose = .text:0x80006D4C; // type:function size:0x38 +HuDvdErrorWatch = .text:0x80006D84; // type:function size:0xBC +HuDataInit = .text:0x80006E40; // type:function size:0xD0 +HuDataReadChk = .text:0x80006F10; // type:function size:0x74 +HuDataGetStatus = .text:0x80006F84; // type:function size:0x64 +HuDataGetDirPtr = .text:0x80006FE8; // type:function size:0xB8 +HuDataDirRead = .text:0x800070A0; // type:function size:0x224 +HuDataDirSet = .text:0x800072C4; // type:function size:0x188 +HuDataDirReadAsyncCallBack = .text:0x8000744C; // type:function size:0xC8 +HuDataDirReadAsync = .text:0x80007514; // type:function size:0x1A8 +HuDataDirReadNumAsync = .text:0x800076BC; // type:function size:0x1A8 +HuDataGetAsyncStat = .text:0x80007864; // type:function size:0x60 +HuDataRead = .text:0x800078C4; // type:function size:0x344 +HuDataReadNum = .text:0x80007C08; // type:function size:0x3A0 +HuDataSelHeapRead = .text:0x80007FA8; // type:function size:0x3C4 +HuDataSelHeapReadNum = .text:0x8000836C; // type:function size:0x428 +HuDataReadMulti = .text:0x80008794; // type:function size:0x30 +HuDataReadMultiSub = .text:0x800087C4; // type:function size:0x3FC +HuDataGetSize = .text:0x80008BC0; // type:function size:0x104 +HuDataClose = .text:0x80008CC4; // type:function size:0x38 +HuDataCloseMulti = .text:0x80008CFC; // type:function size:0x7C +HuDataDirClose = .text:0x80008D78; // type:function size:0xD4 +HuDataDirCloseNum = .text:0x80008E4C; // type:function size:0x130 +HuDataReadNumHeapShortForce = .text:0x80008F7C; // type:function size:0x48C +HuDecodeSlide = .text:0x80009408; // type:function size:0x200 +HuDecodeFslide = .text:0x80009608; // type:function size:0x1D8 +HuDecodeData = .text:0x800097E0; // type:function size:0x324 +HuSysInit = .text:0x80009B04; // type:function size:0x10C +InitRenderMode = .text:0x80009C10; // type:function size:0xD0 scope:local +InitGX = .text:0x80009CE0; // type:function size:0x148 scope:local +InitMem = .text:0x80009E28; // type:function size:0x184 scope:local +InitVI = .text:0x80009FAC; // type:function size:0x54 scope:local +HuSysBeforeRender = .text:0x8000A000; // type:function size:0xE4 +HuSysDoneRender = .text:0x8000A0E4; // type:function size:0xC8 +SwapBuffers = .text:0x8000A1AC; // type:function size:0x6C scope:local +LoadMemInfo = .text:0x8000A218; // type:function size:0x254 scope:local +gcsetjmp = .text:0x8000A46C; // type:function size:0x74 +gclongjmp = .text:0x8000A4E0; // type:function size:0x80 +HuMemInitAll = .text:0x8000A560; // type:function size:0x12C +HuMemInit = .text:0x8000A68C; // type:function size:0x30 +HuMemDCFlushAll = .text:0x8000A6BC; // type:function size:0x2C +HuMemDCFlush = .text:0x8000A6E8; // type:function size:0x54 +HuMemDirectMalloc = .text:0x8000A73C; // type:function size:0x64 +HuMemDirectMallocNum = .text:0x8000A7A0; // type:function size:0x6C +HuMemDirectFree = .text:0x8000A80C; // type:function size:0x38 +HuMemDirectFreeNum = .text:0x8000A844; // type:function size:0x54 +HuMemUsedMallocSizeGet = .text:0x8000A898; // type:function size:0x3C +HuMemUsedMallocBlockGet = .text:0x8000A8D4; // type:function size:0x3C +HuMemHeapSizeGet = .text:0x8000A910; // type:function size:0x18 +HuMemHeapPtrGet = .text:0x8000A928; // type:function size:0x18 +HuMemHeapInit = .text:0x8000A940; // type:function size:0x4C +HuMemMemoryAllocNum = .text:0x8000A98C; // type:function size:0x40 +HuMemMemoryAlloc = .text:0x8000A9CC; // type:function size:0x3C +HuMemMemoryAlloc2 = .text:0x8000AA08; // type:function size:0x108 scope:local +HuMemMemoryFreeNum = .text:0x8000AB10; // type:function size:0x7C +HuMemMemoryFree = .text:0x8000AB8C; // type:function size:0x12C +HuMemUsedMemorySizeGet = .text:0x8000ACB8; // type:function size:0x48 +HuMemUsedMemoryBlockGet = .text:0x8000AD00; // type:function size:0x44 +HuMemMemoryAllocSizeGet = .text:0x8000AD44; // type:function size:0xC +HuMemHeapDump = .text:0x8000AD50; // type:function size:0x158 +HuMemMemorySizeGet = .text:0x8000AEA8; // type:function size:0x50 +pfInit = .text:0x8000AEF8; // type:function size:0x64 +pfClsScr = .text:0x8000AF5C; // type:function size:0xA0 +print8 = .text:0x8000AFFC; // type:function size:0x15C +printWin = .text:0x8000B158; // type:function size:0xAC +pfDrawFonts = .text:0x8000B204; // type:function size:0xEE8 +WireDraw = .text:0x8000C0EC; // type:function size:0x3C0 scope:local +HuPrcInit = .text:0x8000C4AC; // type:function size:0x14 +HuPrcCreate = .text:0x8000C4C0; // type:function size:0x1E8 +HuPrcChildLink = .text:0x8000C6A8; // type:function size:0x68 +HuPrcChildUnlink = .text:0x8000C710; // type:function size:0x58 +HuPrcChildCreate = .text:0x8000C768; // type:function size:0x27C +HuPrcChildWatch = .text:0x8000C9E4; // type:function size:0x60 +HuPrcCurrentGet = .text:0x8000CA44; // type:function size:0x8 +SetKillStatusProcess = .text:0x8000CA4C; // type:function size:0x50 scope:local +HuPrcKill = .text:0x8000CA9C; // type:function size:0xD4 +HuPrcChildKill = .text:0x8000CB70; // type:function size:0x2A4 +HuPrcEnd = .text:0x8000CE14; // type:function size:0x100 +HuPrcSleep = .text:0x8000CF14; // type:function size:0x80 +HuPrcVSleep = .text:0x8000CF94; // type:function size:0x54 +HuPrcWakeup = .text:0x8000CFE8; // type:function size:0xC +HuPrcDestructorSet2 = .text:0x8000CFF4; // type:function size:0x8 +HuPrcDestructorSet = .text:0x8000CFFC; // type:function size:0x28 +HuPrcCall = .text:0x8000D024; // type:function size:0x184 +HuPrcMemAlloc = .text:0x8000D1A8; // type:function size:0x4C +HuPrcMemFree = .text:0x8000D1F4; // type:function size:0x30 +HuPrcSetStat = .text:0x8000D224; // type:function size:0x10 +HuPrcResetStat = .text:0x8000D234; // type:function size:0x14 +HuPrcAllPause = .text:0x8000D248; // type:function size:0x84 +HuPrcAllUPause = .text:0x8000D2CC; // type:function size:0x84 +HuSprInit = .text:0x8000D350; // type:function size:0xA0 +HuSprClose = .text:0x8000D3F0; // type:function size:0xB0 +HuSprExec = .text:0x8000D4A0; // type:function size:0x64 +HuSprBegin = .text:0x8000D504; // type:function size:0x188 +HuSprOrderEntry = .text:0x8000D68C; // type:function size:0x14C +HuSprCall = .text:0x8000D7D8; // type:function size:0xF4 +HuSprFinish = .text:0x8000D8CC; // type:function size:0x458 +HuSprPauseSet = .text:0x8000DD24; // type:function size:0x8 +HuSprAnimRead = .text:0x8000DD2C; // type:function size:0x114 +HuSprAnimLock = .text:0x8000DE40; // type:function size:0x10 +HuSprCreate = .text:0x8000DE50; // type:function size:0x128 +HuSprFuncCreate = .text:0x8000DF78; // type:function size:0x188 +HuSprGrpCreate = .text:0x8000E100; // type:function size:0xF4 +HuSprGrpCopy = .text:0x8000E1F4; // type:function size:0x334 +HuSprGrpMemberSet = .text:0x8000E528; // type:function size:0x8C +HuSprGrpMemberKill = .text:0x8000E5B4; // type:function size:0xAC +HuSprGrpKill = .text:0x8000E660; // type:function size:0x9C +HuSprKill = .text:0x8000E6FC; // type:function size:0x84 +HuSprAnimKill = .text:0x8000E780; // type:function size:0x90 +HuSprAttrSet = .text:0x8000E810; // type:function size:0xAC +HuSprAttrReset = .text:0x8000E8BC; // type:function size:0xAC +HuSprPosSet = .text:0x8000E968; // type:function size:0x60 +HuSprZRotSet = .text:0x8000E9C8; // type:function size:0x5C +HuSprScaleSet = .text:0x8000EA24; // type:function size:0x60 +HuSprTPLvlSet = .text:0x8000EA84; // type:function size:0x64 +HuSprColorSet = .text:0x8000EAE8; // type:function size:0x64 +HuSprSpeedSet = .text:0x8000EB4C; // type:function size:0x4C +HuSprBankSet = .text:0x8000EB98; // type:function size:0xF0 +HuSprGrpPosSet = .text:0x8000EC88; // type:function size:0x9C +HuSprGrpCenterSet = .text:0x8000ED24; // type:function size:0x9C +HuSprGrpZRotSet = .text:0x8000EDC0; // type:function size:0x98 +HuSprGrpScaleSet = .text:0x8000EE58; // type:function size:0x9C +HuSprGrpTPLvlSet = .text:0x8000EEF4; // type:function size:0xC0 +HuSprGrpDrawNoSet = .text:0x8000EFB4; // type:function size:0x8C +HuSprDrawNoSet = .text:0x8000F040; // type:function size:0x50 +HuSprPriSet = .text:0x8000F090; // type:function size:0x4C +HuSprGrpScissorSet = .text:0x8000F0DC; // type:function size:0xAC +HuSprScissorSet = .text:0x8000F188; // type:function size:0x58 +HuSprAnimMake = .text:0x8000F1E0; // type:function size:0x1FC +HuSprBGSet = .text:0x8000F3DC; // type:function size:0x68 +HuSprSprBGSet = .text:0x8000F444; // type:function size:0x50 +AnimDebug = .text:0x8000F494; // type:function size:0x214 +HuSprDispInit = .text:0x8000F6A8; // type:function size:0x158 +HuSprDisp = .text:0x8000F800; // type:function size:0xECC +HuSprTexLoad = .text:0x800106CC; // type:function size:0x29C +HuSprExecLayerSet = .text:0x80010968; // type:function size:0x58 +HuSprLayerHook = .text:0x800109C0; // type:function size:0x178 scope:local +LoadHSF = .text:0x80010B38; // type:function size:0xB0 +ClusterAdjustObject = .text:0x80010BE8; // type:function size:0xA0 +FileLoad = .text:0x80010C88; // type:function size:0xC8 scope:local +SetHsfModel = .text:0x80010D50; // type:function size:0x284 scope:local +SetName = .text:0x80010FD4; // type:function size:0x38 +MaterialLoad = .text:0x8001100C; // type:function size:0x210 scope:local +AttributeLoad = .text:0x8001121C; // type:function size:0xF8 scope:local +SceneLoad = .text:0x80011314; // type:function size:0x80 scope:local +ColorLoad = .text:0x80011394; // type:function size:0x130 scope:local +VertexLoad = .text:0x800114C4; // type:function size:0x1C0 scope:local +NormalLoad = .text:0x80011684; // type:function size:0x128 scope:local +STLoad = .text:0x800117AC; // type:function size:0x1A8 scope:local +FaceLoad = .text:0x80011954; // type:function size:0x190 scope:local +DispObject = .text:0x80011AE4; // type:function size:0x7A8 scope:local +ObjectLoad = .text:0x8001228C; // type:function size:0x15C scope:local +CenvLoad = .text:0x800123E8; // type:function size:0x464 scope:local +SkeletonLoad = .text:0x8001284C; // type:function size:0x198 scope:local +PartLoad = .text:0x800129E4; // type:function size:0x12C scope:local +ClusterLoad = .text:0x80012B10; // type:function size:0x1E8 scope:local +ShapeLoad = .text:0x80012CF8; // type:function size:0x168 scope:local +MapAttrLoad = .text:0x80012E60; // type:function size:0xD0 scope:local +BitmapLoad = .text:0x80012F30; // type:function size:0x174 scope:local +PaletteLoad = .text:0x800130A4; // type:function size:0x16C scope:local +MakeObjectName = .text:0x80013210; // type:function size:0xE8 +CmpObjectName = .text:0x800132F8; // type:function size:0x38 +MotionLoad = .text:0x80013330; // type:function size:0x938 scope:local +MatrixLoad = .text:0x80013C68; // type:function size:0x80 scope:local +SearchObjectSetName = .text:0x80013CE8; // type:function size:0x94 scope:local +SearchVertexPtr = .text:0x80013D7C; // type:function size:0x44 scope:local +SearchNormalPtr = .text:0x80013DC0; // type:function size:0x44 scope:local +SearchStPtr = .text:0x80013E04; // type:function size:0x44 scope:local +SearchColorPtr = .text:0x80013E48; // type:function size:0x44 scope:local +SearchFacePtr = .text:0x80013E8C; // type:function size:0x44 scope:local +SearchCenvPtr = .text:0x80013ED0; // type:function size:0x44 scope:local +SearchPartPtr = .text:0x80013F14; // type:function size:0x44 scope:local +SearchPalettePtr = .text:0x80013F58; // type:function size:0x3C scope:local +SearchBitmapPtr = .text:0x80013F94; // type:function size:0x44 scope:local +GetString = .text:0x80013FD8; // type:function size:0x24 scope:local +GetMotionString = .text:0x80013FFC; // type:function size:0x24 scope:local +Hu3DDrawPreInit = .text:0x80014020; // type:function size:0xC +Hu3DDraw = .text:0x8001402C; // type:function size:0x1A0 +objCall = .text:0x800141CC; // type:function size:0xEC scope:local +objMesh = .text:0x800142B8; // type:function size:0x86C scope:local +ObjCullCheck = .text:0x80014B24; // type:function size:0x4C0 +FaceDraw = .text:0x80014FE4; // type:function size:0x10DC scope:local +SetTevStageNoTex = .text:0x800160C0; // type:function size:0x8E8 scope:local +SetTevStageTex = .text:0x800169A8; // type:function size:0x2588 scope:local +SetKColor = .text:0x80018F30; // type:function size:0x164 scope:local +SetKColorRGB = .text:0x80019094; // type:function size:0x180 scope:local +FlushKColor = .text:0x80019214; // type:function size:0xB0 scope:local +SetReflect = .text:0x800192C4; // type:function size:0x280 scope:local +SetProjection = .text:0x80019544; // type:function size:0x29C scope:local +SetShadowTex = .text:0x800197E0; // type:function size:0x8C scope:local +SetShadow = .text:0x8001986C; // type:function size:0xCC scope:local +FaceDrawShadow = .text:0x80019938; // type:function size:0x5E4 scope:local +LoadTexture = .text:0x80019F1C; // type:function size:0x75C scope:local +objNull = .text:0x8001A678; // type:function size:0x248 scope:local +objRoot = .text:0x8001A8C0; // type:function size:0x198 scope:local +objJoint = .text:0x8001AA58; // type:function size:0x248 scope:local +objMap = .text:0x8001ACA0; // type:function size:0x17C scope:local +objReplica = .text:0x8001AE1C; // type:function size:0x1B4 scope:local +Hu3DDrawPost = .text:0x8001AFD0; // type:function size:0xB00 +ObjDraw = .text:0x8001BAD0; // type:function size:0x6D0 scope:local +MakeDisplayList = .text:0x8001C1A0; // type:function size:0xBC +MDObjCall = .text:0x8001C25C; // type:function size:0x438 scope:local +MDObjMesh = .text:0x8001C694; // type:function size:0x2A8 scope:local +ObjConstantMake = .text:0x8001C93C; // type:function size:0x68 +MDFaceDraw = .text:0x8001C9A4; // type:function size:0xD08 scope:local +MakeCalcNBT = .text:0x8001D6AC; // type:function size:0x3A8 scope:local +MakeNBT = .text:0x8001DA54; // type:function size:0x2C4 scope:local +MDFaceCnt = .text:0x8001DD18; // type:function size:0x2C8 scope:local +mtxTransCat = .text:0x8001DFE0; // type:function size:0x4C +mtxRotCat = .text:0x8001E02C; // type:function size:0xF4 +mtxRot = .text:0x8001E120; // type:function size:0xF0 +mtxScaleCat = .text:0x8001E210; // type:function size:0x70 +HmfInverseMtxF3X3 = .text:0x8001E280; // type:function size:0x1E0 +SetDefLight = .text:0x8001E460; // type:function size:0x190 +Hu3DModelObjPosGet = .text:0x8001E5F0; // type:function size:0x90 +Hu3DModelObjMtxGet = .text:0x8001E680; // type:function size:0x318 +PGObjCall = .text:0x8001E998; // type:function size:0x80 +PGObjCalc = .text:0x8001EA18; // type:function size:0x7B0 +PGObjReplica = .text:0x8001F1C8; // type:function size:0x574 +Hu3DObjDuplicate = .text:0x8001F73C; // type:function size:0x158 +Hu3DModelObjDrawInit = .text:0x8001F894; // type:function size:0x90 +Hu3DModelObjDraw = .text:0x8001F924; // type:function size:0x90 +Hu3DInit = .text:0x8001F9B4; // type:function size:0x220 +Hu3DPreProc = .text:0x8001FBD4; // type:function size:0xD8 +Hu3DExec = .text:0x8001FCAC; // type:function size:0x688 +Hu3DAllKill = .text:0x80020334; // type:function size:0x158 +Hu3DBGColorSet = .text:0x8002048C; // type:function size:0x18 +Hu3DLayerHookSet = .text:0x800204A4; // type:function size:0x1C +Hu3DPauseSet = .text:0x800204C0; // type:function size:0xC +Hu3DNoSyncSet = .text:0x800204CC; // type:function size:0xC +Hu3DModelCreate = .text:0x800204D8; // type:function size:0x330 +Hu3DModelLink = .text:0x80020808; // type:function size:0x2E8 +Hu3DHookFuncCreate = .text:0x80020AF0; // type:function size:0x1C8 +Hu3DModelKill = .text:0x80020CB8; // type:function size:0x34C +Hu3DModelAllKill = .text:0x80021004; // type:function size:0xD0 +Hu3DModelPosSet = .text:0x800210D4; // type:function size:0x34 +Hu3DModelPosSetV = .text:0x80021108; // type:function size:0x40 +Hu3DModelRotSet = .text:0x80021148; // type:function size:0x34 +Hu3DModelRotSetV = .text:0x8002117C; // type:function size:0x40 +Hu3DModelScaleSet = .text:0x800211BC; // type:function size:0x34 +Hu3DModelScaleSetV = .text:0x800211F0; // type:function size:0x40 +Hu3DModelAttrSet = .text:0x80021230; // type:function size:0x54 +Hu3DModelAttrReset = .text:0x80021284; // type:function size:0x50 +Hu3DModelAttrGet = .text:0x800212D4; // type:function size:0x2C +Hu3DModelMotionAttrGet = .text:0x80021300; // type:function size:0x2C +Hu3DModelClusterAttrSet = .text:0x8002132C; // type:function size:0x44 +Hu3DModelClusterAttrReset = .text:0x80021370; // type:function size:0x44 +Hu3DModelCameraSet = .text:0x800213B4; // type:function size:0x2C +Hu3DModelLayerSet = .text:0x800213E0; // type:function size:0x6C +Hu3DModelObjPtrGet = .text:0x8002144C; // type:function size:0xD8 +Hu3DModelTPLvlSet = .text:0x80021524; // type:function size:0xF8 +Hu3DModelHiliteMapSet = .text:0x8002161C; // type:function size:0x98 +Hu3DModelShadowSet = .text:0x800216B4; // type:function size:0xB0 +Hu3DModelShadowReset = .text:0x80021764; // type:function size:0xA0 +Hu3DModelShadowDispOn = .text:0x80021804; // type:function size:0x34 +Hu3DModelShadowDispOff = .text:0x80021838; // type:function size:0x34 +Hu3DModelShadowMapSet = .text:0x8002186C; // type:function size:0x88 +Hu3DModelShadowMapObjSet = .text:0x800218F4; // type:function size:0xBC +Hu3DModelAmbSet = .text:0x800219B0; // type:function size:0x34 +Hu3DModelHookSet = .text:0x800219E4; // type:function size:0xEC +Hu3DModelHookReset = .text:0x80021AD0; // type:function size:0xB4 +Hu3DModelHookObjReset = .text:0x80021B84; // type:function size:0xF0 +Hu3DModelProjectionSet = .text:0x80021C74; // type:function size:0x44 +Hu3DModelProjectionReset = .text:0x80021CB8; // type:function size:0x44 +Hu3DModelHiliteTypeSet = .text:0x80021CFC; // type:function size:0xBC +Hu3DModelReflectTypeSet = .text:0x80021DB8; // type:function size:0x30 +Hu3DCameraCreate = .text:0x80021DE8; // type:function size:0x134 +Hu3DCameraPerspectiveSet = .text:0x80021F1C; // type:function size:0x80 +Hu3DCameraViewportSet = .text:0x80021F9C; // type:function size:0x88 +Hu3DCameraScissorSet = .text:0x80022024; // type:function size:0x90 +Hu3DCameraPosSet = .text:0x800220B4; // type:function size:0x98 +Hu3DCameraPosSetV = .text:0x8002214C; // type:function size:0xB8 +Hu3DCameraKill = .text:0x80022204; // type:function size:0x78 +Hu3DCameraAllKill = .text:0x8002227C; // type:function size:0xD0 +Hu3DCameraSet = .text:0x8002234C; // type:function size:0xDC +Hu3DModelCameraInfoSet = .text:0x80022428; // type:function size:0x3C0 +Hu3DModelCameraCreate = .text:0x800227E8; // type:function size:0x88 +Hu3DCameraMotionOn = .text:0x80022870; // type:function size:0x58 +Hu3DCameraMotionStart = .text:0x800228C8; // type:function size:0xD4 +Hu3DCameraMotionOff = .text:0x8002299C; // type:function size:0x34 +Hu3DLighInit = .text:0x800229D0; // type:function size:0x74 +Hu3DGLightCreate = .text:0x80022A44; // type:function size:0xA0 +Hu3DGLightCreateV = .text:0x80022AE4; // type:function size:0x104 +Hu3DLLightCreate = .text:0x80022BE8; // type:function size:0xA8 +Hu3DLLightCreateV = .text:0x80022C90; // type:function size:0x17C +Hu3DGLightSpotSet = .text:0x80022E0C; // type:function size:0x44 +Hu3DLLightSpotSet = .text:0x80022E50; // type:function size:0x6C +Hu3DGLightInfinitytSet = .text:0x80022EBC; // type:function size:0x48 +Hu3DLLightInfinitytSet = .text:0x80022F04; // type:function size:0x70 +Hu3DGLightPointSet = .text:0x80022F74; // type:function size:0x58 +Hu3DLLightPointSet = .text:0x80022FCC; // type:function size:0x80 +Hu3DGLightKill = .text:0x8002304C; // type:function size:0x20 +Hu3DLLightKill = .text:0x8002306C; // type:function size:0xBC +Hu3DLightAllKill = .text:0x80023128; // type:function size:0x68 +Hu3DGLightColorSet = .text:0x80023190; // type:function size:0x38 +Hu3DLLightColorSet = .text:0x800231C8; // type:function size:0x60 +Hu3DGLightPosSetV = .text:0x80023228; // type:function size:0x70 +Hu3DLLightPosSetV = .text:0x80023298; // type:function size:0x9C +Hu3DGLightPosSet = .text:0x80023334; // type:function size:0x90 +Hu3DLLightPosSet = .text:0x800233C4; // type:function size:0xBC +Hu3DGLightPosAimSetV = .text:0x80023480; // type:function size:0x80 +Hu3DLLightPosAimSetV = .text:0x80023500; // type:function size:0xAC +Hu3DGLightPosAimSet = .text:0x800235AC; // type:function size:0xC4 +Hu3DLLightPosAimSet = .text:0x80023670; // type:function size:0xF0 +Hu3DGLightStaticSet = .text:0x80023760; // type:function size:0x54 +Hu3DLLightStaticSet = .text:0x800237B4; // type:function size:0x7C +Hu3DModelLightInfoSet = .text:0x80023830; // type:function size:0x4D0 +Hu3DLightSet = .text:0x80023D00; // type:function size:0x130 +lightSet = .text:0x80023E30; // type:function size:0x254 scope:local +Hu3DReflectMapSet = .text:0x80024084; // type:function size:0x68 +Hu3DReflectNoSet = .text:0x800240EC; // type:function size:0x8 +Hu3DFogSet = .text:0x800240F4; // type:function size:0x60 +Hu3DFogClear = .text:0x80024154; // type:function size:0x74 +Hu3DShadowCreate = .text:0x800241C8; // type:function size:0x188 +Hu3DShadowPosSet = .text:0x80024350; // type:function size:0x64 +Hu3DShadowTPLvlSet = .text:0x800243B4; // type:function size:0x2C +Hu3DShadowSizeSet = .text:0x800243E0; // type:function size:0x78 +Hu3DShadowExec = .text:0x80024458; // type:function size:0x860 +Hu3DProjectionCreate = .text:0x80024CB8; // type:function size:0x130 +Hu3DProjectionKill = .text:0x80024DE8; // type:function size:0x60 +Hu3DProjectionPosSet = .text:0x80024E48; // type:function size:0x88 +Hu3DProjectionTPLvlSet = .text:0x80024ED0; // type:function size:0x38 +Hu3DMipMapSet = .text:0x80024F08; // type:function size:0x1E8 +Hu3DMotionInit = .text:0x800250F0; // type:function size:0x48 +Hu3DMotionCreate = .text:0x80025138; // type:function size:0xA4 +Hu3DMotionModelCreate = .text:0x800251DC; // type:function size:0xC4 +Hu3DMotionKill = .text:0x800252A0; // type:function size:0x114 +Hu3DMotionAllKill = .text:0x800253B4; // type:function size:0x11C +Hu3DMotionSet = .text:0x800254D0; // type:function size:0xBC +Hu3DMotionOverlaySet = .text:0x8002558C; // type:function size:0x54 +Hu3DMotionOverlayReset = .text:0x800255E0; // type:function size:0x20 +Hu3DMotionOverlayTimeGet = .text:0x80025600; // type:function size:0x1C +Hu3DMotionOverlayTimeSet = .text:0x8002561C; // type:function size:0x1C +Hu3DMotionOverlaySpeedSet = .text:0x80025638; // type:function size:0x1C +Hu3DMotionShiftSet = .text:0x80025654; // type:function size:0x1F4 +Hu3DMotionShapeSet = .text:0x80025848; // type:function size:0xBC +Hu3DMotionShapeIDGet = .text:0x80025904; // type:function size:0x1C +Hu3DMotionShapeSpeedSet = .text:0x80025920; // type:function size:0x2C +Hu3DMotionShapeTimeSet = .text:0x8002594C; // type:function size:0x1C +Hu3DMotionShapeMaxTimeGet = .text:0x80025968; // type:function size:0x44 +Hu3DMotionShapeStartEndSet = .text:0x800259AC; // type:function size:0x30 +Hu3DMotionClusterSet = .text:0x800259DC; // type:function size:0x114 +Hu3DMotionClusterNoSet = .text:0x80025AF0; // type:function size:0xD0 +Hu3DMotionShapeReset = .text:0x80025BC0; // type:function size:0x20 +Hu3DMotionClusterReset = .text:0x80025BE0; // type:function size:0xC8 +Hu3DMotionIDGet = .text:0x80025CA8; // type:function size:0x2C +Hu3DMotionShiftIDGet = .text:0x80025CD4; // type:function size:0x2C +Hu3DMotionTimeSet = .text:0x80025D00; // type:function size:0xF4 +Hu3DMotionTimeGet = .text:0x80025DF4; // type:function size:0x2C +Hu3DMotionShiftTimeGet = .text:0x80025E20; // type:function size:0x2C +Hu3DMotionMaxTimeGet = .text:0x80025E4C; // type:function size:0xA8 +Hu3DMotionShiftMaxTimeGet = .text:0x80025EF4; // type:function size:0xA8 +Hu3DMotionShiftStartEndSet = .text:0x80025F9C; // type:function size:0x30 +Hu3DMotionMotionMaxTimeGet = .text:0x80025FCC; // type:function size:0x8C +Hu3DMotionStartEndSet = .text:0x80026058; // type:function size:0x30 +Hu3DMotionEndCheck = .text:0x80026088; // type:function size:0x170 +Hu3DMotionSpeedSet = .text:0x800261F8; // type:function size:0x2C +Hu3DMotionShiftSpeedSet = .text:0x80026224; // type:function size:0x2C +Hu3DMotionNoMotSet = .text:0x80026250; // type:function size:0x114 +Hu3DMotionNoMotReset = .text:0x80026364; // type:function size:0x5C +Hu3DMotionForceSet = .text:0x800263C0; // type:function size:0x108 +Hu3DMotionNext = .text:0x800264C8; // type:function size:0x798 +Hu3DMotionExec = .text:0x80026C60; // type:function size:0x534 +Hu3DCameraMotionExec = .text:0x80027194; // type:function size:0xC0 +Hu3DSubMotionExec = .text:0x80027254; // type:function size:0x2A8 +GetObjTRXPtr = .text:0x800274FC; // type:function size:0x14C scope:weak +SetObjMatMotion = .text:0x80027648; // type:function size:0x208 +SetObjAttrMotion = .text:0x80027850; // type:function size:0x218 +SetObjCameraMotion = .text:0x80027A68; // type:function size:0x558 +SetObjLightMotion = .text:0x80027FC0; // type:function size:0x1D8 +GetCurve = .text:0x80028198; // type:function size:0xD8 +GetConstant = .text:0x80028270; // type:function size:0x70 +GetLinear = .text:0x800282E0; // type:function size:0x110 +GetBezier = .text:0x800283F0; // type:function size:0x200 scope:weak +GetBitMap = .text:0x800285F0; // type:function size:0x64 +Hu3DJointMotion = .text:0x80028654; // type:function size:0xCC +JointModel_Motion = .text:0x80028720; // type:function size:0x124 +Hu3DMotionCalc = .text:0x80028844; // type:function size:0x19C +SearchObjectIndex = .text:0x800289E0; // type:function size:0x90 scope:local +SearchAttributeIndex = .text:0x80028A70; // type:function size:0x9C scope:local +Hu3DAnimInit = .text:0x80028B0C; // type:function size:0x7C +Hu3DAnimCreate = .text:0x80028B88; // type:function size:0x1D0 +Hu3DAnimLink = .text:0x80028D58; // type:function size:0x1C4 +Hu3DAnimKill = .text:0x80028F1C; // type:function size:0x104 +Hu3DAnimModelKill = .text:0x80029020; // type:function size:0x13C +Hu3DAnimAllKill = .text:0x8002915C; // type:function size:0x134 +Hu3DAnimAttrSet = .text:0x80029290; // type:function size:0x34 +Hu3DAnimAttrReset = .text:0x800292C4; // type:function size:0x38 +Hu3DAnimSpeedSet = .text:0x800292FC; // type:function size:0x2C +Hu3DAnimBankSet = .text:0x80029328; // type:function size:0x48 +Hu3DAnmNoSet = .text:0x80029370; // type:function size:0x38 +Hu3DAnimSet = .text:0x800293A8; // type:function size:0x240 +Hu3DAnimExec = .text:0x800295E8; // type:function size:0x474 +Hu3DTexScrollCreate = .text:0x80029A5C; // type:function size:0x1AC +Hu3DTexScrollKill = .text:0x80029C08; // type:function size:0xE0 +Hu3DTexScrollAllKill = .text:0x80029CE8; // type:function size:0x10C +Hu3DTexScrollPosSet = .text:0x80029DF4; // type:function size:0x44 +Hu3DTexScrollPosMoveSet = .text:0x80029E38; // type:function size:0xA4 +Hu3DTexScrollRotSet = .text:0x80029EDC; // type:function size:0x3C +Hu3DTexScrollRotMoveSet = .text:0x80029F18; // type:function size:0x5C +Hu3DTexScrollPauseDisableSet = .text:0x80029F74; // type:function size:0x54 +Hu3DParticleCreate = .text:0x80029FC8; // type:function size:0x348 +Hu3DParticleScaleSet = .text:0x8002A310; // type:function size:0x6C +Hu3DParticleZRotSet = .text:0x8002A37C; // type:function size:0x6C +Hu3DParticleColSet = .text:0x8002A3E8; // type:function size:0x74 +Hu3DParticleTPLvlSet = .text:0x8002A45C; // type:function size:0x80 +Hu3DParticleBlendModeSet = .text:0x8002A4DC; // type:function size:0x38 +Hu3DParticleHookSet = .text:0x8002A514; // type:function size:0x38 +Hu3DParticleAttrSet = .text:0x8002A54C; // type:function size:0x40 +Hu3DParticleAttrReset = .text:0x8002A58C; // type:function size:0x44 +Hu3DParticleCntSet = .text:0x8002A5D0; // type:function size:0x3C +Hu3DParticleAnimModeSet = .text:0x8002A60C; // type:function size:0x60 +particleFunc = .text:0x8002A66C; // type:function size:0xAD4 scope:local +Hu3DParManInit = .text:0x8002B140; // type:function size:0x48 +Hu3DParManCreate = .text:0x8002B188; // type:function size:0x1D4 +Hu3DParManLink = .text:0x8002B35C; // type:function size:0x17C +Hu3DParManKill = .text:0x8002B4D8; // type:function size:0x190 +Hu3DParManAllKill = .text:0x8002B668; // type:function size:0x1C4 +Hu3DParManPtrGet = .text:0x8002B82C; // type:function size:0x20 +Hu3DParManPosSet = .text:0x8002B84C; // type:function size:0x3C +Hu3DParManVecSet = .text:0x8002B888; // type:function size:0x3C +Hu3DParManRotSet = .text:0x8002B8C4; // type:function size:0x7C +Hu3DParManAttrSet = .text:0x8002B940; // type:function size:0x40 +Hu3DParManAttrReset = .text:0x8002B980; // type:function size:0x40 +Hu3DParManModelIDGet = .text:0x8002B9C0; // type:function size:0x34 +Hu3DParManTimeLimitSet = .text:0x8002B9F4; // type:function size:0x38 +Hu3DParManVacumeSet = .text:0x8002BA2C; // type:function size:0x74 +Hu3DParManColorSet = .text:0x8002BAA0; // type:function size:0x68 +ParManFunc = .text:0x8002BB08; // type:function size:0xBC0 scope:local +ParManHook = .text:0x8002C6C8; // type:function size:0x4B4 scope:local +CamMotionEx2 = .text:0x8002CB7C; // type:function size:0xAC +CamMotionEx = .text:0x8002CC28; // type:function size:0xA14 +SetObjCamMotion = .text:0x8002D63C; // type:function size:0x244 scope:local +InterpolateBMLine = .text:0x8002D880; // type:function size:0x40C +Hu3D2Dto3D = .text:0x8002DC8C; // type:function size:0x1D4 +Hu3D3Dto2D = .text:0x8002DE60; // type:function size:0x1D0 +Hu3DMtxTransGet = .text:0x8002E030; // type:function size:0x1C +Hu3DMtxRotGet = .text:0x8002E04C; // type:function size:0x540 +Hu3DMtxScaleGet = .text:0x8002E58C; // type:function size:0x1C8 +HuPerfInit = .text:0x8002E754; // type:function size:0x94 +HuPerfCreate = .text:0x8002E7E8; // type:function size:0x130 +HuPerfZero = .text:0x8002E918; // type:function size:0x40 +HuPerfBegin = .text:0x8002E958; // type:function size:0x7C +HuPerfEnd = .text:0x8002E9D4; // type:function size:0xA0 +DSCallbackFunc = .text:0x8002EA74; // type:function size:0x16C +omMasterInit = .text:0x8002EBE0; // type:function size:0x90 +omWatchOverlayProc = .text:0x8002EC70; // type:function size:0x170 scope:local +omOvlCallEx = .text:0x8002EDE0; // type:function size:0xE8 +omOvlGotoEx = .text:0x8002EEC8; // type:function size:0x60 +omOvlReturnEx = .text:0x8002EF28; // type:function size:0xF4 +omOvlKill = .text:0x8002F01C; // type:function size:0xB8 +omOvlHisChg = .text:0x8002F0D4; // type:function size:0xA0 +omOvlHisGet = .text:0x8002F174; // type:function size:0x78 +omInitObjMan = .text:0x8002F1EC; // type:function size:0x220 +omDestroyObjMan = .text:0x8002F40C; // type:function size:0x50 +omAddObjEx = .text:0x8002F45C; // type:function size:0x1DC +omInsertObj = .text:0x8002F638; // type:function size:0xF8 +omAddMember = .text:0x8002F730; // type:function size:0x84 +omDelObjEx = .text:0x8002F7B4; // type:function size:0x190 +omDelMember = .text:0x8002F944; // type:function size:0x88 +omMakeGroupEx = .text:0x8002F9CC; // type:function size:0xFC +omGetGroupMemberListEx = .text:0x8002FAC8; // type:function size:0x2C +omSetStatBit = .text:0x8002FAF4; // type:function size:0x10 +omResetStatBit = .text:0x8002FB04; // type:function size:0x14 +omSetTra = .text:0x8002FB18; // type:function size:0x10 +omSetRot = .text:0x8002FB28; // type:function size:0x10 +omSetSca = .text:0x8002FB38; // type:function size:0x10 +omMain = .text:0x8002FB48; // type:function size:0x2F8 +omAllPause = .text:0x8002FE40; // type:function size:0xE0 +omPauseChk = .text:0x8002FF20; // type:function size:0x2C +omCurrentOvlGet = .text:0x8002FF4C; // type:function size:0x8 +OSPanic = .text:0x8002FF54; // type:function size:0x150 +HuFaultInitXfbDirectDraw = .text:0x800300A4; // type:function size:0x118 +HuFaultSetXfbAddress = .text:0x800301BC; // type:function size:0x34 +XFB_WriteBackCache = .text:0x800301F0; // type:function size:0x98 scope:local +XFB_CR = .text:0x80030288; // type:function size:0x50 scope:local +XFB_puts = .text:0x800302D8; // type:function size:0xF4 scope:local +XFB_putcS = .text:0x800303CC; // type:function size:0x150 scope:local +XFB_putcProgressive = .text:0x8003051C; // type:function size:0x1F0 scope:local +XFB_putcInterlace = .text:0x8003070C; // type:function size:0x1B4 scope:local +GWInit = .text:0x800308C0; // type:function size:0x158 +GWGameStatReset = .text:0x80030A18; // type:function size:0x31C +GWMessDelayGet = .text:0x80030D34; // type:function size:0x4C +GWMGRecordSet = .text:0x80030D80; // type:function size:0x54 +GWMGRecordGet = .text:0x80030DD4; // type:function size:0x18 +GWCharColorGet = .text:0x80030DEC; // type:function size:0x140 +GWBoardPlayCountSet = .text:0x80030F2C; // type:function size:0x24 +GWBoardPlayCountAdd = .text:0x80030F50; // type:function size:0x38 +GWBoardPlayCountGet = .text:0x80030F88; // type:function size:0x14 +GWBoardMaxStarsSet = .text:0x80030F9C; // type:function size:0x1C +GWBoardMaxStarsGet = .text:0x80030FB8; // type:function size:0x18 +GWBoardMaxCoinsSet = .text:0x80030FD0; // type:function size:0x1C +GWBoardMaxCoinsGet = .text:0x80030FEC; // type:function size:0x18 +GWBoardWinCountInc = .text:0x80031004; // type:function size:0x5C +GWBoardWinCountGet = .text:0x80031060; // type:function size:0x1C +GWBoardWinCountSet = .text:0x8003107C; // type:function size:0x20 +GWMGAvailGet = .text:0x8003109C; // type:function size:0x6C +GWMGAvailSet = .text:0x80031108; // type:function size:0x5C +GWMGCustomGet = .text:0x80031164; // type:function size:0x6C +GWMGCustomSet = .text:0x800311D0; // type:function size:0x5C +GWMGCustomReset = .text:0x8003122C; // type:function size:0x60 +GWCoinsGet = .text:0x8003128C; // type:function size:0x18 +GWCoinsSet = .text:0x800312A4; // type:function size:0xB0 +GWCoinsAdd = .text:0x80031354; // type:function size:0xD0 +GWStarsSet = .text:0x80031424; // type:function size:0x6C +GWStarsAdd = .text:0x80031490; // type:function size:0x94 +GWStarsGet = .text:0x80031524; // type:function size:0x18 +GWTotalStarsSet = .text:0x8003153C; // type:function size:0x34 +GWTotalStarsAdd = .text:0x80031570; // type:function size:0x54 +GWTotalStarsGet = .text:0x800315C4; // type:function size:0x10 +omOutView = .text:0x800315D4; // type:function size:0x238 +omOutViewMulti = .text:0x8003180C; // type:function size:0x2C4 +omSystemKeyCheckSetup = .text:0x80031AD0; // type:function size:0x74 +omSystemKeyCheck = .text:0x80031B44; // type:function size:0x230 +omSysPauseEnable = .text:0x80031D74; // type:function size:0x8 +omSysPauseCtrl = .text:0x80031D7C; // type:function size:0x50 +omDLLDBGOut = .text:0x80031DCC; // type:function size:0x2C +omDLLInit = .text:0x80031DF8; // type:function size:0x6C +omDLLStart = .text:0x80031E64; // type:function size:0x154 +omDLLNumEnd = .text:0x80031FB8; // type:function size:0xB4 +omDLLEnd = .text:0x8003206C; // type:function size:0x13C +omDLLLink = .text:0x800321A8; // type:function size:0x138 +omDLLUnlink = .text:0x800322E0; // type:function size:0xB4 +omDLLSearch = .text:0x80032394; // type:function size:0xC8 +omDLLInfoDump = .text:0x8003245C; // type:function size:0xD0 +omDLLHeaderDump = .text:0x8003252C; // type:function size:0xE0 +frand = .text:0x8003260C; // type:function size:0xAC +frandf = .text:0x800326B8; // type:function size:0xD8 +frandmod = .text:0x80032790; // type:function size:0xB8 +HuAudInit = .text:0x80032848; // type:function size:0x170 +HuAudStreamPlay = .text:0x800329B8; // type:function size:0x8 +HuAudStreamVolSet = .text:0x800329C0; // type:function size:0x3C +HuAudStreamPauseOn = .text:0x800329FC; // type:function size:0x24 +HuAudStreamPauseOff = .text:0x80032A20; // type:function size:0x24 +HuAudStreamFadeOut = .text:0x80032A44; // type:function size:0x4 +HuAudAllStop = .text:0x80032A48; // type:function size:0x28 +HuAudFadeOut = .text:0x80032A70; // type:function size:0x3C +HuAudFXPlay = .text:0x80032AAC; // type:function size:0x80 +HuAudFXPlayVol = .text:0x80032B2C; // type:function size:0x48 +HuAudFXPlayVolPan = .text:0x80032B74; // type:function size:0x68 +HuAudFXStop = .text:0x80032BDC; // type:function size:0x2C +HuAudFXAllStop = .text:0x80032C08; // type:function size:0x28 +HuAudFXFadeOut = .text:0x80032C30; // type:function size:0x30 +HuAudFXPanning = .text:0x80032C60; // type:function size:0x50 +HuAudFXListnerSet = .text:0x80032CB0; // type:function size:0xA4 +HuAudFXListnerSetEX = .text:0x80032D54; // type:function size:0x134 +HuAudFXListnerUpdate = .text:0x80032E88; // type:function size:0x3C +HuAudFXEmiterPlay = .text:0x80032EC4; // type:function size:0x6C +HuAudFXEmiterUpDate = .text:0x80032F30; // type:function size:0x64 +HuAudFXListnerKill = .text:0x80032F94; // type:function size:0x20 +HuAudFXPauseAll = .text:0x80032FB4; // type:function size:0x2C +HuAudFXStatusGet = .text:0x80032FE0; // type:function size:0x28 +HuAudFXPitchSet = .text:0x80033008; // type:function size:0x54 +HuAudFXVolSet = .text:0x8003305C; // type:function size:0x58 +HuAudSeqPlay = .text:0x800330B4; // type:function size:0x5C +HuAudSeqStop = .text:0x80033110; // type:function size:0x48 +HuAudSeqFadeOut = .text:0x80033158; // type:function size:0x3C +HuAudSeqAllFadeOut = .text:0x80033194; // type:function size:0x5C +HuAudSeqAllStop = .text:0x800331F0; // type:function size:0x28 +HuAudSeqPauseAll = .text:0x80033218; // type:function size:0x2C +HuAudSeqPause = .text:0x80033244; // type:function size:0x54 +HuAudSeqMidiCtrlGet = .text:0x80033298; // type:function size:0x60 +HuAudSStreamPlay = .text:0x800332F8; // type:function size:0x64 +HuAudSStreamStop = .text:0x8003335C; // type:function size:0x38 +HuAudSStreamFadeOut = .text:0x80033394; // type:function size:0x3C +HuAudSStreamAllFadeOut = .text:0x800333D0; // type:function size:0x28 +HuAudSStreamAllStop = .text:0x800333F8; // type:function size:0x24 +HuAudSStreamStatGet = .text:0x8003341C; // type:function size:0x28 +HuAudDllSndGrpSet = .text:0x80033444; // type:function size:0x104 +HuAudSndGrpSetSet = .text:0x80033548; // type:function size:0x1A4 +HuAudSndGrpSet = .text:0x800336EC; // type:function size:0x60 +HuAudSndCommonGrpSet = .text:0x8003374C; // type:function size:0x154 +HuAudAUXSet = .text:0x800338A0; // type:function size:0x58 +HuAudAUXVolSet = .text:0x800338F8; // type:function size:0xC +HuAudVoiceInit = .text:0x80033904; // type:function size:0x298 +HuAudPlayerVoicePlay = .text:0x80033B9C; // type:function size:0x50 +HuAudPlayerVoicePlayPos = .text:0x80033BEC; // type:function size:0x58 +HuAudPlayerVoicePlayEntry = .text:0x80033C44; // type:function size:0x50 +HuAudCharVoicePlay = .text:0x80033C94; // type:function size:0xAC +HuAudCharVoicePlayPos = .text:0x80033D40; // type:function size:0xD0 +HuAudCharVoicePlayEntry = .text:0x80033E10; // type:function size:0x90 +HuSePlay = .text:0x80033EA0; // type:function size:0x68 scope:local +InitEnvelope = .text:0x80033F08; // type:function size:0x1A4 +SetEnvelopMtx = .text:0x800340AC; // type:function size:0x23C scope:local +EnvelopeProc = .text:0x800342E8; // type:function size:0x80 +InitVtxParm = .text:0x80034368; // type:function size:0x50 +SetEnvelopMain = .text:0x800343B8; // type:function size:0x158 scope:local +SetEnvelop = .text:0x80034510; // type:function size:0x9F0 scope:local +SetMtx = .text:0x80034F00; // type:function size:0x334 scope:local +SetRevMtx = .text:0x80035234; // type:function size:0x11C scope:local +SearchSklenton = .text:0x80035350; // type:function size:0x78 scope:local +MGSeqInit = .text:0x800353C8; // type:function size:0xBC +MGSeqMain = .text:0x80035484; // type:function size:0x188 +CreateSeq = .text:0x8003560C; // type:function size:0x1A4 scope:local +MGSeqCreate = .text:0x800357B0; // type:function size:0x100 +MGSeqStatGet = .text:0x800358B0; // type:function size:0x88 +MGSeqPosSet = .text:0x80035938; // type:function size:0x4C +MGSeqParamSet = .text:0x80035984; // type:function size:0x4C +MGSeqKill = .text:0x800359D0; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A28; // type:function size:0x3C +MGSeqDoneCheck = .text:0x80035A64; // type:function size:0xA4 +MGSeqStub = .text:0x80035B08; // type:function size:0x4 +MGSeqSprKill = .text:0x80035B0C; // type:function size:0x8C +MGSeqInitTimer = .text:0x80035B98; // type:function size:0x2F0 +MGSeqUpdateTimer = .text:0x80035E88; // type:function size:0x69C +MGSeqInitType2 = .text:0x80036524; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368FC; // type:function size:0x2F8 +fn_80036BC8 = .text:0x80036BF4; // type:function size:0x188 +SeqMakeWord = .text:0x80036D7C; // type:function size:0x1D0 scope:local +SeqLoadFontChar = .text:0x80036F4C; // type:function size:0x26C scope:local +MGSeqInitMGBasic = .text:0x800371B8; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x8003734C; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037D1C; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037FC0; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D64; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039B08; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A6C0; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B174; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B538; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE54; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAD8; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CBB4; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF90; // type:function size:0x6D0 +MGSeqUpdateWin = .text:0x8003D660; // type:function size:0x708 +MGSeqInitRecord = .text:0x8003DD68; // type:function size:0x764 +MGSeqUpdateRecord = .text:0x8003E4CC; // type:function size:0x304 +MGSeqPauseInit = .text:0x8003E7D0; // type:function size:0x6C +PauseProc = .text:0x8003E83C; // type:function size:0x94C scope:local +MGSeqPauseKill = .text:0x8003F188; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F194; // type:function size:0x40 +MGSeqPracticeInit = .text:0x8003F1D4; // type:function size:0xDC +PracticeProc = .text:0x8003F2B0; // type:function size:0x234 scope:local +SeqPlayStartFX = .text:0x8003F4E4; // type:function size:0xD4 scope:local +MGSeqPracticeExitCheck = .text:0x8003F5B8; // type:function size:0x128 +espInit = .text:0x8003F6E0; // type:function size:0xA0 +espEntry = .text:0x8003F780; // type:function size:0x1B0 +espKill = .text:0x8003F930; // type:function size:0x98 +espGrpIDGet = .text:0x8003F9C8; // type:function size:0x8 +espDispOn = .text:0x8003F9D0; // type:function size:0x44 +espDispOff = .text:0x8003FA14; // type:function size:0x44 +espAttrSet = .text:0x8003FA58; // type:function size:0x48 +espAttrReset = .text:0x8003FAA0; // type:function size:0x48 +espPosSet = .text:0x8003FAE8; // type:function size:0x50 +espScaleSet = .text:0x8003FB38; // type:function size:0x50 +espZRotSet = .text:0x8003FB88; // type:function size:0x48 +espTPLvlSet = .text:0x8003FBD0; // type:function size:0x48 +espColorSet = .text:0x8003FC18; // type:function size:0x58 +espSpeedSet = .text:0x8003FC70; // type:function size:0x48 +espBankSet = .text:0x8003FCB8; // type:function size:0x48 +espDrawNoSet = .text:0x8003FD00; // type:function size:0x48 +espPriSet = .text:0x8003FD48; // type:function size:0x48 +fn_8003FF68 = .text:0x8003FD90; // type:function size:0x268 +fn_800401D0 = .text:0x8003FFF8; // type:function size:0x12C +fn_800402FC = .text:0x80040124; // type:function size:0x78 +fn_80040374 = .text:0x8004019C; // type:function size:0x98 +fn_8004040C = .text:0x80040234; // type:function size:0xF4 +GetClusterCurve = .text:0x80040328; // type:function size:0xA8 +GetClusterWeightCurve = .text:0x800403D0; // type:function size:0xA8 +SetClusterMain = .text:0x80040478; // type:function size:0x3A0 scope:local +ClusterProc = .text:0x80040818; // type:function size:0x160 +ClusterMotionExec = .text:0x80040978; // type:function size:0x210 +SetShapeMain = .text:0x80040B88; // type:function size:0x36C scope:local +ShapeProc = .text:0x80040EF4; // type:function size:0xA4 +WipeInit = .text:0x80040F98; // type:function size:0xB4 +WipeExecAlways = .text:0x8004104C; // type:function size:0x288 +WipeCreate = .text:0x800412D4; // type:function size:0x12C +WipeColorSet = .text:0x80041400; // type:function size:0x58 +WipeStatGet = .text:0x80041458; // type:function size:0x10 +WipeDummyFade = .text:0x80041468; // type:function size:0x8 scope:local +WipeNormalFade = .text:0x80041470; // type:function size:0xFC scope:local +WipeColorFill = .text:0x8004156C; // type:function size:0x31C scope:local +WipeCrossFade = .text:0x80041888; // type:function size:0x184 scope:local +WipeFrameStill = .text:0x80041A0C; // type:function size:0x4C8 scope:local +HuWindowInit = .text:0x80041ED4; // type:function size:0x74 +HuWinInit = .text:0x80041F48; // type:function size:0x214 +HuWinCreate = .text:0x8004215C; // type:function size:0x544 +HuWinKill = .text:0x800426A0; // type:function size:0xA4 +HuWinAllKill = .text:0x80042744; // type:function size:0x1AC +MesDispFunc = .text:0x800428F0; // type:function size:0x7C4 scope:local +winBGMake = .text:0x800430B4; // type:function size:0x480 scope:local +HuWinProc = .text:0x80043534; // type:function size:0xF4 scope:local +HuWinDrawMes = .text:0x80043628; // type:function size:0xF60 scope:local +HuWinCR = .text:0x80044588; // type:function size:0x54 +_HuWinHomeClear = .text:0x800445DC; // type:function size:0x90 +HuWinHomeClear = .text:0x8004466C; // type:function size:0xA4 +HuWinKeyWaitEntry = .text:0x80044710; // type:function size:0x88 +HuWinKeyWait = .text:0x80044798; // type:function size:0x10C scope:local +HuWinSpcFontEntry = .text:0x800448A4; // type:function size:0x1A4 scope:local +HuWinSpcFontClear = .text:0x80044A48; // type:function size:0x80 scope:local +HuWinChoice = .text:0x80044AC8; // type:function size:0xA9C scope:local +HuWinActivePadGet = .text:0x80045564; // type:function size:0x68 +HuWinActiveKeyGetX = .text:0x800455CC; // type:function size:0xE8 +HuWinPosSet = .text:0x800456B4; // type:function size:0x6C +HuWinScaleSet = .text:0x80045720; // type:function size:0x6C +HuWinZRotSet = .text:0x8004578C; // type:function size:0x58 +HuWinCenterPosSet = .text:0x800457E4; // type:function size:0xAC +HuWinDrawNoSet = .text:0x80045890; // type:function size:0x4C +HuWinScissorSet = .text:0x800458DC; // type:function size:0x64 +HuWinPriSet = .text:0x80045940; // type:function size:0xB8 +HuWinAttrSet = .text:0x800459F8; // type:function size:0x34 +HuWinAttrReset = .text:0x80045A2C; // type:function size:0x34 +HuWinStatGet = .text:0x80045A60; // type:function size:0x2C +HuWinMesColSet = .text:0x80045A8C; // type:function size:0x3C +HuWinMesPalSet = .text:0x80045AC8; // type:function size:0x58 +HuWinBGTPLvlSet = .text:0x80045B20; // type:function size:0x50 +HuWinBGColSet = .text:0x80045B70; // type:function size:0x60 +HuWinMesSpeedSet = .text:0x80045BD0; // type:function size:0x2C +HuWinMesRead = .text:0x80045BFC; // type:function size:0xA4 +HuWinMesSet = .text:0x80045CA0; // type:function size:0x398 +HuWinInsertMesSet = .text:0x80046038; // type:function size:0xD8 +HuWinChoiceGet = .text:0x80046110; // type:function size:0x27C +HuWinChoiceNumGet = .text:0x8004638C; // type:function size:0x2C +HuWinChoiceDisable = .text:0x800463B8; // type:function size:0x38 +HuWinChoiceNowGet = .text:0x800463F0; // type:function size:0x40 +HuWinMesWait = .text:0x80046430; // type:function size:0x50 +HuWinAnimSet = .text:0x80046480; // type:function size:0x8C +HuWinSprSet = .text:0x8004650C; // type:function size:0xF0 +HuWinSprPosSet = .text:0x800465FC; // type:function size:0x88 +HuWinSprPriSet = .text:0x80046684; // type:function size:0x6C +HuWinSprIDGet = .text:0x800466F0; // type:function size:0x38 +HuWinSprKill = .text:0x80046728; // type:function size:0x68 +HuWinDispOff = .text:0x80046790; // type:function size:0x90 +HuWinDispOn = .text:0x80046820; // type:function size:0x90 +HuWinComKeyWait = .text:0x800468B0; // type:function size:0xC0 +HuWinComKeySet = .text:0x80046970; // type:function size:0x44 +_HuWinComKeySet = .text:0x800469B4; // type:function size:0x98 +HuWinComKeyGet = .text:0x80046A4C; // type:function size:0x1D4 +HuWinComKeyReset = .text:0x80046C20; // type:function size:0x10 +HuWinMesMaxSizeGet = .text:0x80046C30; // type:function size:0x17C +HuWinInsertMesSizeGet = .text:0x80046DAC; // type:function size:0x60 +HuWinMesSizeCancelCRSet = .text:0x80046E0C; // type:function size:0x8 +HuWinMesMaxSizeBetGet = .text:0x80046E14; // type:function size:0x120 +GetMesMaxSizeSub = .text:0x80046F34; // type:function size:0x2C0 scope:local +GetMesMaxSizeSub2 = .text:0x800471F4; // type:function size:0x1CC scope:local +HuWinKeyWaitNumGet = .text:0x800473C0; // type:function size:0x88 +HuWinPushKeySet = .text:0x80047448; // type:function size:0x2C +HuWinDisablePlayerSet = .text:0x80047474; // type:function size:0x34 +HuWinDisablePlayerReset = .text:0x800474A8; // type:function size:0x38 +HuWinExCreate = .text:0x800474E0; // type:function size:0x4C +HuWinExCreateStyled = .text:0x8004752C; // type:function size:0x228 +HuWinExAnimIn = .text:0x80047754; // type:function size:0x3B0 +HuWinExAnimOut = .text:0x80047B04; // type:function size:0x304 +HuWinExCleanup = .text:0x80047E08; // type:function size:0xA4 +HuWinExAnimPopIn = .text:0x80047EAC; // type:function size:0x264 +MessData_MesPtrGet = .text:0x80048110; // type:function size:0xE8 +HuCardInit = .text:0x800481F8; // type:function size:0x34 +HuCardCheck = .text:0x8004822C; // type:function size:0xC4 +HuCardSlotCheck = .text:0x800482F0; // type:function size:0x58 +HuCardMount = .text:0x80048348; // type:function size:0xEC +HuCardUnMount = .text:0x80048434; // type:function size:0x28 +HuCardFormat = .text:0x8004845C; // type:function size:0x50 +MountCallBack = .text:0x800484AC; // type:function size:0x1C scope:local +HuCardOpen = .text:0x800484C8; // type:function size:0x70 +HuCardRead = .text:0x80048538; // type:function size:0x68 +HuCardCreate = .text:0x800485A0; // type:function size:0x100 +HuCardClose = .text:0x800486A0; // type:function size:0x38 +HuCardWrite = .text:0x800486D8; // type:function size:0x50 +HuCardDelete = .text:0x80048728; // type:function size:0x40 +HuCardSectorSizeGet = .text:0x80048768; // type:function size:0x4C +HuCardFreeSpaceGet = .text:0x800487B4; // type:function size:0x48 +HuARInit = .text:0x800487FC; // type:function size:0x148 +HuARMalloc = .text:0x80048944; // type:function size:0x16C +HuARFree = .text:0x80048AB0; // type:function size:0x16C +HuAMemDump = .text:0x80048C1C; // type:function size:0xA8 +HuAR_DVDtoARAM = .text:0x80048CC4; // type:function size:0x160 +ArqCallBack = .text:0x80048E24; // type:function size:0x10 scope:local +HuAR_MRAMtoARAM = .text:0x80048E34; // type:function size:0x2C +HuAR_MRAMtoARAM2 = .text:0x80048E60; // type:function size:0x140 +HuAR_ARAMtoMRAM = .text:0x80048FA0; // type:function size:0x2C +HuAR_ARAMtoMRAMNum = .text:0x80048FCC; // type:function size:0x1F0 +ArqCallBackAM = .text:0x800491BC; // type:function size:0x44 scope:local +HuARDMACheck = .text:0x80049200; // type:function size:0x8 +HuARDirCheck = .text:0x80049208; // type:function size:0x58 +HuARDirFree = .text:0x80049260; // type:function size:0x68 +HuAR_ARAMtoMRAMFileRead = .text:0x800492C8; // type:function size:0x390 +ArqCallBackAMFileRead = .text:0x80049658; // type:function size:0x10 scope:local +CharManInit = .text:0x80049668; // type:function size:0x134 +CharAMemPtrGet = .text:0x8004979C; // type:function size:0x1C +CharARAMOpen = .text:0x800497B8; // type:function size:0x98 +CharARAMClose = .text:0x80049850; // type:function size:0x58 +CharKill = .text:0x800498A8; // type:function size:0x428 +CharKillAll = .text:0x80049CD0; // type:function size:0x3C +CharModelCreate = .text:0x80049D0C; // type:function size:0x180 +UpdateChar = .text:0x80049E8C; // type:function size:0x20C scope:local +UpdateCharAnim = .text:0x8004A098; // type:function size:0x173C scope:local +PlayCharVoice = .text:0x8004B7D4; // type:function size:0xB0 scope:local +InitEffect = .text:0x8004B884; // type:function size:0x254 scope:local +CreateEffectDust = .text:0x8004BAD8; // type:function size:0xB0 scope:local +CreateEffectSmoke = .text:0x8004BB88; // type:function size:0xB0 scope:local +CreateEffectDot = .text:0x8004BC38; // type:function size:0xB0 scope:local +CreateEffectStar = .text:0x8004BCE8; // type:function size:0xB0 scope:local +CreateEffectWarn = .text:0x8004BD98; // type:function size:0xB0 scope:local +CreateEffectBird = .text:0x8004BE48; // type:function size:0xB0 scope:local +CreateEffect = .text:0x8004BEF8; // type:function size:0x1CC scope:local +UpdateEffect = .text:0x8004C0C4; // type:function size:0x4A0 scope:local +RotateEffect = .text:0x8004C564; // type:function size:0x1E8 +PlayEffectSound = .text:0x8004C74C; // type:function size:0x344 +CharModelMotionCreate = .text:0x8004CA90; // type:function size:0x1D0 +CharModelMotionIndexSet = .text:0x8004CC60; // type:function size:0x88 +CharModelMotionKill = .text:0x8004CCE8; // type:function size:0x9C +CharModelMotionDataClose = .text:0x8004CD84; // type:function size:0x2B8 +CharModelDataClose = .text:0x8004D03C; // type:function size:0x430 +CharModelKill = .text:0x8004D46C; // type:function size:0x244 +CharModelMotionSet = .text:0x8004D6B0; // type:function size:0x7C +CharModelTexAnimSet = .text:0x8004D72C; // type:function size:0x17C +CharModelTexNameGet = .text:0x8004D8A8; // type:function size:0x7C +CharModelHookNameGet = .text:0x8004D924; // type:function size:0x7C +CharModelMotionTimeSet = .text:0x8004D9A0; // type:function size:0x4C +CharModelMotionTimeGet = .text:0x8004D9EC; // type:function size:0x44 +CharModelMotionMaxTimeGet = .text:0x8004DA30; // type:function size:0x44 +CharModelMotionEndCheck = .text:0x8004DA74; // type:function size:0x44 +CharModelMotionShiftIDGet = .text:0x8004DAB8; // type:function size:0x44 +CharModelMotionShiftSet = .text:0x8004DAFC; // type:function size:0x84 +CharModelMotionShiftTimeGet = .text:0x8004DB80; // type:function size:0x44 +CharModelMotionSpeedSet = .text:0x8004DBC4; // type:function size:0x4C +CharModelLayerSetAll = .text:0x8004DC10; // type:function size:0x80 +CharModelItemHookCreate = .text:0x8004DC90; // type:function size:0x1D4 +UpdateItemHook = .text:0x8004DE64; // type:function size:0x484 scope:local +CharModelEffectCreate = .text:0x8004E2E8; // type:function size:0x3FC +OrbitEffect = .text:0x8004E6E4; // type:function size:0x168 scope:local +CharModelCoinEffectCreate = .text:0x8004E84C; // type:function size:0x1A0 +fn_8004EC74 = .text:0x8004E9EC; // type:function size:0x130 +fn_8004EDA4 = .text:0x8004EB1C; // type:function size:0x2B4 +fn_8004F058 = .text:0x8004EDD0; // type:function size:0xE4 +fn_8004F13C = .text:0x8004EEB4; // type:function size:0x2B4 +CharModelLayerSetAll2 = .text:0x8004F168; // type:function size:0x80 +CharModelVoiceEnableSet = .text:0x8004F1E8; // type:function size:0xBC +fn_8004F52C = .text:0x8004F2A4; // type:function size:0x4C +CharModelEffectEnableSet = .text:0x8004F2F0; // type:function size:0xB0 +CharModelEffectNpcInit = .text:0x8004F3A0; // type:function size:0x2CC +CharModelEffectNpcInitSilent = .text:0x8004F66C; // type:function size:0x2CC +UpdateNpcEffect = .text:0x8004F938; // type:function size:0xF80 scope:local +CharModelStepTypeSet = .text:0x800508B8; // type:function size:0x30 +PlayStepFX = .text:0x800508E8; // type:function size:0xEC scope:local +MapWall = .text:0x800509D4; // type:function size:0x1B8 +MapWallCheck = .text:0x80050B8C; // type:function size:0x110 +MapPos = .text:0x80050C9C; // type:function size:0x2A8 +PolygonRangeCheck = .text:0x80050F44; // type:function size:0x38C scope:local +DefIfnnerMapCircle = .text:0x800512D0; // type:function size:0x470 scope:local +CalcPPLength = .text:0x80051740; // type:function size:0x5D4 scope:local +MapIflnnerCalc = .text:0x80051D14; // type:function size:0xF4 scope:local +MapCalcPoint = .text:0x80051E08; // type:function size:0x388 scope:local +AreaCheck = .text:0x80052190; // type:function size:0x148 scope:local +MapIflnnerTriangle = .text:0x800522D8; // type:function size:0x518 scope:local +MapIflnnerQuadrangle = .text:0x800527F0; // type:function size:0x994 scope:local +GetPolygonCircleMtx = .text:0x80053184; // type:function size:0xC28 scope:local +PrecalcPntToTriangle = .text:0x80053DAC; // type:function size:0x43C scope:local +Hitcheck_Triangle_with_Sphere = .text:0x800541E8; // type:function size:0x100 +Hitcheck_Quadrangle_with_Sphere = .text:0x800542E8; // type:function size:0x19C +DefSetHitFace = .text:0x80054484; // type:function size:0x4C scope:local +AppendAddXZ = .text:0x800544D0; // type:function size:0x184 +CharRotInv = .text:0x80054654; // type:function size:0x124 +THPSimpleInit = .text:0x80054778; // type:function size:0x124 +THPSimpleQuit = .text:0x8005489C; // type:function size:0x54 +THPSimpleOpen = .text:0x800548F0; // type:function size:0x408 +THPSimpleClose = .text:0x80054CF8; // type:function size:0xC0 +THPSimpleCalcNeedMemory = .text:0x80054DB8; // type:function size:0x184 +THPSimpleSetBuffer = .text:0x80054F3C; // type:function size:0x240 +__THPSimpleDVDCallback = .text:0x8005517C; // type:function size:0x2A4 scope:local +THPSimplePreLoad = .text:0x80055420; // type:function size:0x2A4 +THPSimpleAudioStart = .text:0x800556C4; // type:function size:0x14 +THPSimpleAudioStop = .text:0x800556D8; // type:function size:0x14 +THPSimpleLoadStop = .text:0x800556EC; // type:function size:0x1B8 +THPSimpleDecode = .text:0x800558A4; // type:function size:0x47C +VideoDecode = .text:0x80055D20; // type:function size:0xD8 scope:local +THPSimpleDrawCurrentFrame = .text:0x80055DF8; // type:function size:0x104 +MixAudio = .text:0x80055EFC; // type:function size:0x5F8 scope:local +THPSimpleGetVideoInfo = .text:0x800564F4; // type:function size:0x58 +THPSimpleGetTotalFrame = .text:0x8005654C; // type:function size:0x2C +THPAudioMixCallback = .text:0x80056578; // type:function size:0x188 scope:local +THPSimpleSetVolume = .text:0x80056700; // type:function size:0x17C +THPGXRestore = .text:0x8005687C; // type:function size:0x130 +THPGXYuv2RgbSetup = .text:0x800569AC; // type:function size:0x5A0 +THPGXYuv2RgbDraw = .text:0x80056F4C; // type:function size:0x288 +HuTHPSprCreateVol = .text:0x800571D4; // type:function size:0x108 +HuTHPSprCreate = .text:0x800572DC; // type:function size:0x110 +HuTHP3DCreateVol = .text:0x800573EC; // type:function size:0xF8 +HuTHP3DCreate = .text:0x800574E4; // type:function size:0x100 +HuTHPStop = .text:0x800575E4; // type:function size:0xC +HuTHPClose = .text:0x800575F0; // type:function size:0xC +HuTHPRestart = .text:0x800575FC; // type:function size:0xC +HuTHPEndCheck = .text:0x80057608; // type:function size:0x54 +HuTHPFrameGet = .text:0x8005765C; // type:function size:0x8 +HuTHPTotalFrameGet = .text:0x80057664; // type:function size:0x20 +HuTHPSetVolume = .text:0x80057684; // type:function size:0x30 +THPTestProc = .text:0x800576B4; // type:function size:0x27C scope:local +THPViewFunc = .text:0x80057930; // type:function size:0xA4 scope:local +THPViewSprFunc = .text:0x800579D4; // type:function size:0x17C scope:local +THPDecodeFunc = .text:0x80057B50; // type:function size:0x4C scope:local +omMgIndexGet = .text:0x80057B9C; // type:function size:0x5C +omGameSysInit = .text:0x80057BF8; // type:function size:0xF4 +omVibrate = .text:0x80057CEC; // type:function size:0x9C +_CheckFlag = .text:0x80057D88; // type:function size:0xA0 +_SetFlag = .text:0x80057E28; // type:function size:0xA4 +_ClearFlag = .text:0x80057ECC; // type:function size:0xA4 +_InitFlag = .text:0x80057F70; // type:function size:0x30 +SLFileOpen = .text:0x80057FA0; // type:function size:0x140 +SLFileCreate = .text:0x800580E0; // type:function size:0x280 +SLFileWrite = .text:0x80058360; // type:function size:0x10C +SLFileRead = .text:0x8005846C; // type:function size:0x84 +SLFileClose = .text:0x800584F0; // type:function size:0x4C +SLCurSlotNoSet = .text:0x8005853C; // type:function size:0x8 +SLCurBoxNoSet = .text:0x80058544; // type:function size:0xC +SLSaveFlagSet = .text:0x80058550; // type:function size:0x40 +SLSaveFlagGet = .text:0x80058590; // type:function size:0x8 +SLSaveDataMake = .text:0x80058598; // type:function size:0x154 +SLSaveDataInfoSet = .text:0x800586EC; // type:function size:0x218 +SLCommonSet = .text:0x80058904; // type:function size:0x254 +SLSaveBoard = .text:0x80058B58; // type:function size:0x8C +SLSaveBoardStory = .text:0x80058BE4; // type:function size:0x8C +SLSave = .text:0x80058C70; // type:function size:0x370 +SLCreateSaveWin = .text:0x80058FE0; // type:function size:0xDC scope:local +SLKillSaveWin = .text:0x800590BC; // type:function size:0x48 scope:local +SLLoad = .text:0x80059104; // type:function size:0x110 +SLLoadGameStat = .text:0x80059214; // type:function size:0x38 +SLLoadBoard = .text:0x8005924C; // type:function size:0x1A0 +SLLoadBoardStory = .text:0x800593EC; // type:function size:0x184 +SLSerialNoGet = .text:0x80059570; // type:function size:0x28 +SLSerialNoCheck = .text:0x80059598; // type:function size:0xA0 +SLCheckSumCheck = .text:0x80059638; // type:function size:0x60 +SLCheckSumGet = .text:0x80059698; // type:function size:0x54 +SLCheckSumSet = .text:0x800596EC; // type:function size:0x90 +SLStatSet = .text:0x8005977C; // type:function size:0x1D4 +SLCardMount = .text:0x80059950; // type:function size:0x12C +SLFormat = .text:0x80059A7C; // type:function size:0x594 +SLMessOut = .text:0x8005A010; // type:function size:0x3FC +HuSoftResetButtonCheck = .text:0x8005A40C; // type:function size:0x50 +HuDvdErrDispIntFunc = .text:0x8005A45C; // type:function size:0x28 +HuDvdErrDispInit = .text:0x8005A484; // type:function size:0x208 +ToeThreadFunc = .text:0x8005A68C; // type:function size:0xD8 scope:local +ToeDispCheck = .text:0x8005A764; // type:function size:0x128 scope:local +_HuDvdErrDispXFB = .text:0x8005A88C; // type:function size:0x348 scope:local +HuRestartSystem = .text:0x8005ABD4; // type:function size:0xDC +HuSoftResetCheck = .text:0x8005ACB0; // type:function size:0xFC scope:local +HuSoftResetCountCheck = .text:0x8005ADAC; // type:function size:0xCC scope:local +HuSoftResetPostProc = .text:0x8005AE78; // type:function size:0x78 scope:local +BoardObjectSetup = .text:0x8005AEF0; // type:function size:0x2E0 +InitBoardFunc = .text:0x8005B1D0; // type:function size:0x64 scope:local +ExecBoardFunc = .text:0x8005B234; // type:function size:0x9C scope:local +KillBoardFunc = .text:0x8005B2D0; // type:function size:0xCC scope:local +BoardKill = .text:0x8005B39C; // type:function size:0xAC +BoardIsKill = .text:0x8005B448; // type:function size:0x48 +BoardPauseDisableSet = .text:0x8005B490; // type:function size:0x74 +BoardPauseDisableGet = .text:0x8005B504; // type:function size:0x48 +BoardSaveInit = .text:0x8005B54C; // type:function size:0x524 +BoardStoryConfigSet = .text:0x8005BA70; // type:function size:0x160 +BoardPartyConfigSet = .text:0x8005BBD0; // type:function size:0x160 +DestroyMainFunc = .text:0x8005BD30; // type:function size:0xC scope:local +MainFunc = .text:0x8005BD3C; // type:function size:0x7D0 scope:local +BoardTurnNext = .text:0x8005C50C; // type:function size:0x8C +ExecTurnStart = .text:0x8005C598; // type:function size:0x28C scope:local +BoardNextOvlSet = .text:0x8005C824; // type:function size:0xC4 +BoardStartCheck = .text:0x8005C8E8; // type:function size:0x8C +CreateBoard = .text:0x8005C974; // type:function size:0x424 scope:local +DestroyBoard = .text:0x8005CD98; // type:function size:0x128 scope:local +BoardLightHookSet = .text:0x8005CEC0; // type:function size:0xC +BoardLightSetExec = .text:0x8005CECC; // type:function size:0x44 +BoardLightResetExec = .text:0x8005CF10; // type:function size:0x50 +BoardCameraBackup = .text:0x8005CF60; // type:function size:0x3C +BoardCameraRestore = .text:0x8005CF9C; // type:function size:0x48 +BoardCameraScissorSet = .text:0x8005CFE4; // type:function size:0x54 +BoardCameraViewSet = .text:0x8005D038; // type:function size:0x2AC +BoardCameraPosGet = .text:0x8005D2E4; // type:function size:0x48 +BoardCameraTargetGet = .text:0x8005D32C; // type:function size:0x48 +BoardCameraRotGet = .text:0x8005D374; // type:function size:0x48 +BoardCameraZoomGet = .text:0x8005D3BC; // type:function size:0x20 +BoardCameraDirGet = .text:0x8005D3DC; // type:function size:0xA8 +BoardCameraPointDirGet = .text:0x8005D484; // type:function size:0xBC +BoardCameraMaskSet = .text:0x8005D540; // type:function size:0x28 +BoardCameraMoveSet = .text:0x8005D568; // type:function size:0x50 +BoardCameraOffsetSet = .text:0x8005D5B8; // type:function size:0x30 +BoardCameraTargetPlayerSet = .text:0x8005D5E8; // type:function size:0xB4 +BoardCameraTargetModelSet = .text:0x8005D69C; // type:function size:0x40 +BoardCameraTargetSpaceSet = .text:0x8005D6DC; // type:function size:0x44 +BoardCameraPosCalcFuncSet = .text:0x8005D720; // type:function size:0x28 +BoardCameraQuakeSet = .text:0x8005D748; // type:function size:0x3C +BoardCameraQuakeReset = .text:0x8005D784; // type:function size:0x3C +BoardCameraTargetSet = .text:0x8005D7C0; // type:function size:0x28 +BoardCameraPosSet = .text:0x8005D7E8; // type:function size:0x28 +BoardCameraXRotZoomSet = .text:0x8005D810; // type:function size:0x24 +BoardCameraZoomSet = .text:0x8005D834; // type:function size:0x20 +BoardCameraRotSet = .text:0x8005D854; // type:function size:0x24 +BoardCameraNearFarSet = .text:0x8005D878; // type:function size:0x24 +BoardCameraNearFarGet = .text:0x8005D89C; // type:function size:0x3C +BoardCameraMotionStart = .text:0x8005D8D8; // type:function size:0x48 +BoardCameraMotionStartEx = .text:0x8005D920; // type:function size:0x230 +BoardCameraFovSet = .text:0x8005DB50; // type:function size:0x20 +BoardCameraCullCheck = .text:0x8005DB70; // type:function size:0x2BC +BoardCameraMotionIsDone = .text:0x8005DE2C; // type:function size:0x48 +BoardCameraMotionWait = .text:0x8005DE74; // type:function size:0x58 +BoardCameraInit = .text:0x8005DECC; // type:function size:0x24C +UpdateCamera = .text:0x8005E118; // type:function size:0x350 scope:local +CalcCameraTarget = .text:0x8005E468; // type:function size:0xE4 scope:local +CalcCameraPos = .text:0x8005E54C; // type:function size:0x764 scope:local +BoardMGDoneFlagSet = .text:0x8005ECB0; // type:function size:0x48 +BoardMGDoneFlagGet = .text:0x8005ECF8; // type:function size:0x48 +BoardMGExit = .text:0x8005ED40; // type:function size:0x170 +KillBoardMG = .text:0x8005EEB0; // type:function size:0x60 scope:local +ExecBoardMG = .text:0x8005EF10; // type:function size:0xC4 scope:local +BoardMGCreate = .text:0x8005EFD4; // type:function size:0x74 +BoardEventFlagSet = .text:0x8005F048; // type:function size:0x28 +BoardEventFlagReset = .text:0x8005F070; // type:function size:0x28 +BoardEventFlagGet = .text:0x8005F098; // type:function size:0x48 +BoardMTXCalcLookAt = .text:0x8005F0E0; // type:function size:0x10C +BoardArcSin = .text:0x8005F1EC; // type:function size:0x330 +BoardArcCos = .text:0x8005F51C; // type:function size:0x390 +BoardRandInit = .text:0x8005F8AC; // type:function size:0x24 +BoardRand = .text:0x8005F8D0; // type:function size:0x24 +BoardRandMod = .text:0x8005F8F4; // type:function size:0x50 +BoardRandFloat = .text:0x8005F944; // type:function size:0x58 +BoardVecDistXZCalc = .text:0x8005F99C; // type:function size:0x134 +BoardVecMaxDistXZCheck = .text:0x8005FAD0; // type:function size:0x15C +BoardDAngleCalcVec = .text:0x8005FC2C; // type:function size:0x7C +BoardDAngleCalc = .text:0x8005FCA8; // type:function size:0x34 +BoardDAngleCalcRange = .text:0x8005FCDC; // type:function size:0x1C0 +BoardVecMinDistCheck = .text:0x8005FE9C; // type:function size:0x6C +BoardFilterFadeOut = .text:0x8005FF08; // type:function size:0xD4 +BoardFilterFadeInit = .text:0x8005FFDC; // type:function size:0x174 +BoardFilterFadePauseCheck = .text:0x80060150; // type:function size:0x5C +BoardFilterFadeCheck = .text:0x800601AC; // type:function size:0x34 +UpdateFilter = .text:0x800601E0; // type:function size:0x178 scope:local +DrawFilter = .text:0x80060358; // type:function size:0x350 scope:local +BoardConfettiCreate = .text:0x800606A8; // type:function size:0x164 +BoardConfettiKill = .text:0x8006080C; // type:function size:0x24 +BoardConfettiStop = .text:0x80060830; // type:function size:0x88 +UpdateConfetti = .text:0x800608B8; // type:function size:0xB8 scope:local +SpawnConfetti = .text:0x80060970; // type:function size:0x564 scope:local +MoveConfetti = .text:0x80060ED4; // type:function size:0x14C scope:local +DrawConfetti = .text:0x80061020; // type:function size:0x254 scope:local +BoardLast5GfxInit = .text:0x80061274; // type:function size:0x2B4 +UpdateLast5Gfx = .text:0x80061528; // type:function size:0x2AC scope:local +BoardLast5GfxShowSet = .text:0x800617D4; // type:function size:0xAC +BoardTauntInit = .text:0x80061880; // type:function size:0x80 +BoardTauntKill = .text:0x80061900; // type:function size:0x54 +TauntUpdate = .text:0x80061954; // type:function size:0x3A4 scope:local +BoardDataDirReadAsync = .text:0x80061CF8; // type:function size:0x38 +BoardDataAsyncWait = .text:0x80061D30; // type:function size:0x48 +BoardItemPrevGet = .text:0x80061D78; // type:function size:0xC +BoardItemPrevSet = .text:0x80061D84; // type:function size:0xC +BoardPlayerGetCharMess = .text:0x80061D90; // type:function size:0x78 +BoardPlayerGetCharName = .text:0x80061E08; // type:function size:0x78 +BoardPlayerIsAllCom = .text:0x80061E80; // type:function size:0x80 +BoardPlayerInit = .text:0x80061F00; // type:function size:0x16C +BoardPlayerModelInit = .text:0x8006206C; // type:function size:0x588 +BoardPlayerModelKill = .text:0x800625F4; // type:function size:0xFC +BoardPlayerLayerSet = .text:0x800626F0; // type:function size:0x84 +BoardPlayerCameraSet = .text:0x80062774; // type:function size:0x80 +fn_80062A40 = .text:0x800627F4; // type:function size:0x80 +BoardPlayerExistCheck = .text:0x80062874; // type:function size:0xB4 +BoardPlayerItemAdd = .text:0x80062928; // type:function size:0xB0 +BoardPlayerItemRemove = .text:0x800629D8; // type:function size:0xB4 +BoardPlayerItemFind = .text:0x80062A8C; // type:function size:0x58 +BoardPlayerItemCount = .text:0x80062AE4; // type:function size:0x60 +BoardPlayerCornerPosSet = .text:0x80062B44; // type:function size:0x40 +BoardPlayerCornerPosGet = .text:0x80062B84; // type:function size:0xC4 +BoardPlayerAmbSet = .text:0x80062C48; // type:function size:0x90 +BoardPlayerMtxSet = .text:0x80062CD8; // type:function size:0x80 +BoardPlayerPosSetV = .text:0x80062D58; // type:function size:0x9C +BoardPlayerPosSet = .text:0x80062DF4; // type:function size:0xCC +BoardPlayerPosGet = .text:0x80062EC0; // type:function size:0x80 +BoardPlayerRotSetV = .text:0x80062F40; // type:function size:0x9C +BoardPlayerRotSet = .text:0x80062FDC; // type:function size:0xCC +BoardPlayerRotGet = .text:0x800630A8; // type:function size:0x80 +BoardPlayerRotYSet = .text:0x80063128; // type:function size:0xD4 +BoardPlayerRotYGet = .text:0x800631FC; // type:function size:0xA8 +BoardPlayerScaleSetV = .text:0x800632A4; // type:function size:0x80 +BoardPlayerScaleSet = .text:0x80063324; // type:function size:0x90 +BoardPlayerScaleGet = .text:0x800633B4; // type:function size:0x80 +BoardPlayerCurrMotionGet = .text:0x80063434; // type:function size:0x44 +BoardPlayerVoiceEnableSet = .text:0x80063478; // type:function size:0x88 +BoardPlayerMotionCreate = .text:0x80063500; // type:function size:0x80 +BoardPlayerMotionKill = .text:0x80063580; // type:function size:0x80 +BoardPlayerMotionEndCheck = .text:0x80063600; // type:function size:0x78 +BoardPlayerMotionEndWait = .text:0x80063678; // type:function size:0x88 +BoardPlayerMotionStart = .text:0x80063700; // type:function size:0xD0 +BoardPlayerMotionShiftSet = .text:0x800637D0; // type:function size:0xE0 +BoardPlayerMotionSpeedSet = .text:0x800638B0; // type:function size:0x80 +BoardPlayerMotionTimeSet = .text:0x80063930; // type:function size:0x80 +BoardPlayerMotionTimeGet = .text:0x800639B0; // type:function size:0x78 +BoardPlayerMotionMaxTimeGet = .text:0x80063A28; // type:function size:0x78 +BoardPlayerMotionStartEndSet = .text:0x80063AA0; // type:function size:0xA0 +BoardPlayerModelAttrSet = .text:0x80063B40; // type:function size:0x80 +BoardPlayerModelAttrReset = .text:0x80063BC0; // type:function size:0x80 +BoardPlayerCoinsSet = .text:0x80063C40; // type:function size:0x34 +BoardPlayerCoinsGet = .text:0x80063C74; // type:function size:0x2C +BoardPlayerCoinsAdd = .text:0x80063CA0; // type:function size:0x9C +BoardPlayerStarsAdd = .text:0x80063D3C; // type:function size:0x48 +BoardPlayerSizeSet = .text:0x80063D84; // type:function size:0x16C +BoardPlayerSizeGet = .text:0x80063EF0; // type:function size:0x40 +BoardPlayerSameTeamFind = .text:0x80063F30; // type:function size:0x7C +BoardPlayerTeamFind = .text:0x80063FAC; // type:function size:0x7C +BoardPlayerRankCalc = .text:0x80064028; // type:function size:0xC4 +BoardPlayerPreTurnHookSet = .text:0x800640EC; // type:function size:0x18 +BoardPlayerPostTurnHookSet = .text:0x80064104; // type:function size:0x18 +BoardPlayerTurnExec = .text:0x8006411C; // type:function size:0x15C +BoardPlayerTurnRollExec = .text:0x80064278; // type:function size:0x160 +BoardPlayerTurnMoveExec = .text:0x800643D8; // type:function size:0x420 +BoardPlayerPostTurnHookExec = .text:0x800647F8; // type:function size:0x80 +BoardPlayerSizeRestore = .text:0x80064878; // type:function size:0x18C +BoardPlayerZoomRestore = .text:0x80064A04; // type:function size:0x134 +BoardJunctionMaskSet = .text:0x80064B38; // type:function size:0x10 +BoardJunctionMaskReset = .text:0x80064B48; // type:function size:0x10 +BoardJunctionMaskZero = .text:0x80064B58; // type:function size:0xC +InitJunction = .text:0x80064B64; // type:function size:0x634 scope:local +UpdateJunctionGfx = .text:0x80065198; // type:function size:0x1A0 scope:local +StopJunctionPlayer = .text:0x80065338; // type:function size:0x70 scope:local +RestoreJunction = .text:0x800653A8; // type:function size:0x180 scope:local +GetDefaultDirection = .text:0x80065528; // type:function size:0x114 scope:local +DoDebugMove = .text:0x8006563C; // type:function size:0x8E8 scope:local +ExecJunction = .text:0x80065F24; // type:function size:0xBF8 scope:local +BoardPlayerMoveTo = .text:0x80066B1C; // type:function size:0xBC +BoardPlayerMoveBetween = .text:0x80066BD8; // type:function size:0x90 +BoardPlayerMoveToAsync = .text:0x80066C68; // type:function size:0x90 +BoardPlayerPosLerpStart = .text:0x80066CF8; // type:function size:0x430 +PlayerPosLerpFunc = .text:0x80067128; // type:function size:0x218 scope:local +BoardPlayerDiceJumpStart = .text:0x80067340; // type:function size:0x1D4 +BoardPlayerDiceJumpCheck = .text:0x80067514; // type:function size:0x54 +DiceJumpFunc = .text:0x80067568; // type:function size:0x3E4 scope:local +BoardPlayerIdleSet = .text:0x8006794C; // type:function size:0xF8 +BoardPlayerMotBlendSet = .text:0x80067A44; // type:function size:0x5A0 +ExecMotBlend = .text:0x80067FE4; // type:function size:0x51C scope:local +BoardPlayerMotBlendCheck = .text:0x80068500; // type:function size:0x2C +BoardRollCreate = .text:0x8006852C; // type:function size:0x138 +BoardRollUpdateSet = .text:0x80068664; // type:function size:0x38 +BoardRollDispSet = .text:0x8006869C; // type:function size:0x10C +UpdateRollSprite = .text:0x800687A8; // type:function size:0x194 scope:local +UpdateRoll = .text:0x8006893C; // type:function size:0x278 scope:local +BoardPlayerBtnDownWait = .text:0x80068BB4; // type:function size:0x6C +BoardPlayerAutoSizeSet = .text:0x80068C20; // type:function size:0x9C +BoardPlayerAutoSizeGet = .text:0x80068CBC; // type:function size:0x40 +BoardPlayerMoveAwayIsDone = .text:0x80068CFC; // type:function size:0x1C +BoardPlayerMoveAwayStart = .text:0x80068D18; // type:function size:0x224 +BoardPlayerMoveAwayStartCurr = .text:0x80068F3C; // type:function size:0x40 +MoveAwayObjFunc = .text:0x80068F7C; // type:function size:0x100 scope:local +BoardBowserSuitInit = .text:0x8006907C; // type:function size:0x1A4 +BoardBowserSuitKill = .text:0x80069220; // type:function size:0x128 +BoardBowserSuitModelGet = .text:0x80069348; // type:function size:0x8 +BoardBowserSuitPlayerModelGet = .text:0x80069350; // type:function size:0x8 +BoardBowserSuitMotionCreate = .text:0x80069358; // type:function size:0x74 +BoardBowserSuitMotionSetWait = .text:0x800693CC; // type:function size:0x54 +BoardBowserSuitMotionSetWalk = .text:0x80069420; // type:function size:0x4C +BoardBowserSuitMotionSetWin = .text:0x8006946C; // type:function size:0x44 +BoardBowserSuitMotionSetJump = .text:0x800694B0; // type:function size:0x44 +BoardBowserSuitPlayerModelKill = .text:0x800694F4; // type:function size:0x44 +UpdateBowserSuit = .text:0x80069538; // type:function size:0x1F0 scope:local +BoardPlayerSparkSet = .text:0x80069728; // type:function size:0x5C +DoSparkSpace = .text:0x80069784; // type:function size:0x1294 scope:local +RemoveSparkSpace = .text:0x8006AA18; // type:function size:0xA0 scope:local +SetPlayerSizeAuto = .text:0x8006AAB8; // type:function size:0x24C scope:local +BoardMegaDoubleDiceCheck = .text:0x8006AD04; // type:function size:0x8 +BoardPlayerResizeAnimExec = .text:0x8006AD0C; // type:function size:0x38C +MegaSquishFunc = .text:0x8006B098; // type:function size:0x950 scope:local +MegaPlayerPassFunc = .text:0x8006B9E8; // type:function size:0x980 scope:local +MegaExecJump = .text:0x8006C368; // type:function size:0xA48 scope:local +BoardPlayerCopyEyeMat = .text:0x8006CDB0; // type:function size:0x24C +BoardPlayerCopyMat = .text:0x8006CFFC; // type:function size:0xC0 +BoardModelInit = .text:0x8006D0BC; // type:function size:0xF0 +BoardModelKillAll = .text:0x8006D1AC; // type:function size:0xA0 +ModelMgrFunc = .text:0x8006D24C; // type:function size:0x70 scope:local +BoardModelDummyUpdate = .text:0x8006D2BC; // type:function size:0x4 +BoardModelVisibilityUpdate = .text:0x8006D2C0; // type:function size:0xCC +BoardModelHideSetAll = .text:0x8006D38C; // type:function size:0x90 +BoardModelAmbSetAll = .text:0x8006D41C; // type:function size:0x70 +BoardModelCameraSetAll = .text:0x8006D48C; // type:function size:0x7C +CreateInstance = .text:0x8006D508; // type:function size:0x250 scope:local +BoardModelCreate = .text:0x8006D758; // type:function size:0x40 +BoardModelCreateCharacter = .text:0x8006D798; // type:function size:0x44 +BoardModelCreateParam = .text:0x8006D7DC; // type:function size:0x168 +BoardModelKill = .text:0x8006D944; // type:function size:0x44 +BoardModelIDGet = .text:0x8006D988; // type:function size:0x48 +fn_8006DC1C = .text:0x8006D9D0; // type:function size:0x60 +BoardModelPassSet = .text:0x8006DA30; // type:function size:0x74 +BoardModelAmbSet = .text:0x8006DAA4; // type:function size:0x68 +BoardModelExistCheck = .text:0x8006DB0C; // type:function size:0x48 +BoardModelExistDupe = .text:0x8006DB54; // type:function size:0x48 +fn_8006DDE8 = .text:0x8006DB9C; // type:function size:0x70 +BoardModelMotionCreate = .text:0x8006DC0C; // type:function size:0x140 +BoardModelMotionKill = .text:0x8006DD4C; // type:function size:0x118 +BoardModelMotionStartEndSet = .text:0x8006DE64; // type:function size:0xE8 +BoardModelMotionUpdateSet = .text:0x8006DF4C; // type:function size:0x7C +BoardModelVoiceEnableSet = .text:0x8006DFC8; // type:function size:0xA4 +BoardModelMotionStart = .text:0x8006E06C; // type:function size:0x174 +BoardModelMotionShiftIDGet = .text:0x8006E1E0; // type:function size:0x50 +BoardModelMotionShiftSet = .text:0x8006E230; // type:function size:0x148 +BoardModelAttrSet = .text:0x8006E378; // type:function size:0x58 +BoardModelAttrReset = .text:0x8006E3D0; // type:function size:0x58 +BoardModelMotionTimeSet = .text:0x8006E428; // type:function size:0x84 +BoardModelMotionTimeGet = .text:0x8006E4AC; // type:function size:0x94 +BoardModelMotionMaxTimeGet = .text:0x8006E540; // type:function size:0x88 +BoardModelMotionSpeedGet = .text:0x8006E5C8; // type:function size:0x64 +BoardModelMotionSpeedSet = .text:0x8006E62C; // type:function size:0xA4 +BoardModelMotionEndCheck = .text:0x8006E6D0; // type:function size:0x80 +BoardModelMotionShapeSet = .text:0x8006E750; // type:function size:0x100 +BoardModelMotionShapeTimeGet = .text:0x8006E850; // type:function size:0x7C +BoardModelMotionShapeMaxTimeGet = .text:0x8006E8CC; // type:function size:0xBC +BoardModelMotionShapeSpeedSet = .text:0x8006E988; // type:function size:0x88 +BoardModelMotionShapeSpeedGet = .text:0x8006EA10; // type:function size:0x64 +BoardModelMotionShapeEndCheck = .text:0x8006EA74; // type:function size:0x14C +BoardModelMotionShapeStartEndSet = .text:0x8006EBC0; // type:function size:0x100 +BoardModelAlphaSet = .text:0x8006ECC0; // type:function size:0xB0 +BoardModelMtxSet = .text:0x8006ED70; // type:function size:0x8C +BoardModelMtxGet = .text:0x8006EDFC; // type:function size:0x8C +BoardModelRotYSet = .text:0x8006EE88; // type:function size:0x54 +BoardModelRotYGet = .text:0x8006EEDC; // type:function size:0x30 +BoardModelPosSetV = .text:0x8006EF0C; // type:function size:0x50 +BoardModelPosSet = .text:0x8006EF5C; // type:function size:0x78 +BoardModelRotSetV = .text:0x8006EFD4; // type:function size:0x50 +BoardModelRotSet = .text:0x8006F024; // type:function size:0x78 +BoardModelScaleSetV = .text:0x8006F09C; // type:function size:0x50 +BoardModelScaleSet = .text:0x8006F0EC; // type:function size:0x78 +BoardModelPosGet = .text:0x8006F164; // type:function size:0x74 +BoardModelRotGet = .text:0x8006F1D8; // type:function size:0x74 +BoardModelScaleGet = .text:0x8006F24C; // type:function size:0x74 +BoardModelVisibilitySet = .text:0x8006F2C0; // type:function size:0x60 +BoardModelVisibilityGet = .text:0x8006F320; // type:function size:0x4C +BoardModelCameraSet = .text:0x8006F36C; // type:function size:0x64 +BoardModelLayerSet = .text:0x8006F3D0; // type:function size:0x64 +BoardModelLayerGet = .text:0x8006F434; // type:function size:0x48 +BoardModelLayerSetAll = .text:0x8006F47C; // type:function size:0x74 +BoardModelHookSet = .text:0x8006F4F0; // type:function size:0xC4 +BoardModelHookReset = .text:0x8006F5B4; // type:function size:0x50 +BoardModelHookObjReset = .text:0x8006F604; // type:function size:0x58 +SearchBoardModel = .text:0x8006F65C; // type:function size:0x9C scope:local +KillBoardModel = .text:0x8006F6F8; // type:function size:0x178 scope:local +CreateBoardModel = .text:0x8006F870; // type:function size:0x194 scope:local +CreateBoardModelMotion = .text:0x8006FA04; // type:function size:0x12C scope:local +BoardWinInit = .text:0x8006FB30; // type:function size:0x24 +BoardWinUnusedArraySet = .text:0x8006FB54; // type:function size:0x34 +BoardWinKillAll = .text:0x8006FB88; // type:function size:0x24 +BoardWinDestroy = .text:0x8006FBAC; // type:function size:0x6C +ExecBoardWindow = .text:0x8006FC18; // type:function size:0x534 scope:local +BoardWinChoiceGet = .text:0x8007014C; // type:function size:0xC +BoardWinPause = .text:0x80070158; // type:function size:0xC +BoardWinCreateChoice = .text:0x80070164; // type:function size:0x1A0 +BoardWinCreate = .text:0x80070304; // type:function size:0x1A0 +BoardWinInsertMesSet = .text:0x800704A4; // type:function size:0x18 +BoardWinWait = .text:0x800704BC; // type:function size:0x50 +BoardWinKill = .text:0x8007050C; // type:function size:0x38 +BoardWinAttrSet = .text:0x80070544; // type:function size:0x48 +BoardWinAttrReset = .text:0x8007058C; // type:function size:0x48 +BoardWinChoiceDisable = .text:0x800705D4; // type:function size:0x1C +BoardWinKeyWait = .text:0x800705F0; // type:function size:0xC +BoardWinSpeedGet = .text:0x800705FC; // type:function size:0x64 +BoardWinSpeedSet = .text:0x80070660; // type:function size:0x50 +BoardWinChoiceNowGet = .text:0x800706B0; // type:function size:0x38 +BoardWinPriSet = .text:0x800706E8; // type:function size:0x44 +BoardWinChoiceNowGet2 = .text:0x8007072C; // type:function size:0x38 +BoardWinPortraitGet = .text:0x80070764; // type:function size:0x38 +BoardWinPortraitGetStar = .text:0x8007079C; // type:function size:0x38 +BoardWinPlayerSet = .text:0x800707D4; // type:function size:0x138 +BoardWinStartComKeySet = .text:0x8007090C; // type:function size:0x214 +BoardWinComKeyFuncSet = .text:0x80070B20; // type:function size:0x8 +BoardWinIDGet = .text:0x80070B28; // type:function size:0x8 +BoardMusStartBoard = .text:0x80070B30; // type:function size:0x68 +BoardMusStart = .text:0x80070B98; // type:function size:0xD0 +BoardAudSeqFadeOutFast = .text:0x80070C68; // type:function size:0x2C +BoardAudSeqFadeOut = .text:0x80070C94; // type:function size:0x60 +BoardMusLoudSet = .text:0x80070CF4; // type:function size:0x5C +BoardMusVolPanSet = .text:0x80070D50; // type:function size:0x90 +BoardAudSeqPause = .text:0x80070DE0; // type:function size:0x94 +BoardMusStatusGet = .text:0x80070E74; // type:function size:0x54 +BoardAudSeqClear = .text:0x80070EC8; // type:function size:0x50 +BoardAudSeqFadeOutAll = .text:0x80070F18; // type:function size:0x74 +BoardAudFXPlay = .text:0x80070F8C; // type:function size:0x78 +BoardAudFXStop = .text:0x80071004; // type:function size:0x38 +ExecComKeyLeft = .text:0x8007103C; // type:function size:0x38 scope:local +BoardComKeySetLeft = .text:0x80071074; // type:function size:0x28 +ExecComKeyRight = .text:0x8007109C; // type:function size:0x38 scope:local +BoardComKeySetRight = .text:0x800710D4; // type:function size:0x28 +ExecComKeyUp = .text:0x800710FC; // type:function size:0x38 scope:local +BoardComKeySetUp = .text:0x80071134; // type:function size:0x28 +ExecComKeyDown = .text:0x8007115C; // type:function size:0x38 scope:local +BoardComKeySetDown = .text:0x80071194; // type:function size:0x28 +ExecComKey = .text:0x800711BC; // type:function size:0xE8 scope:local +BoardComPreferItemGet = .text:0x800712A4; // type:function size:0x100 +BoardComPreferItemCheck = .text:0x800713A4; // type:function size:0x120 +BoardComItemWeightGet = .text:0x800714C4; // type:function size:0x74 +BoardComUseItemSlotGet = .text:0x80071538; // type:function size:0xD0 +BoardComUseItemSet = .text:0x80071608; // type:function size:0x6C +BoardComUseItemCheck = .text:0x80071674; // type:function size:0x68 +ChooseUseItem = .text:0x800716DC; // type:function size:0x16C scope:local +CheckMiniUse = .text:0x80071848; // type:function size:0x220 scope:local +CheckMegaUse = .text:0x80071A68; // type:function size:0x248 scope:local +CheckSparkUse = .text:0x80071CB0; // type:function size:0x158 scope:local +CheckBoardChangeUse = .text:0x80071E08; // type:function size:0x314 scope:local +CheckSwapUse = .text:0x8007211C; // type:function size:0x198 scope:local +CheckBooUse = .text:0x800722B4; // type:function size:0x7C scope:local +CheckLampUse = .text:0x80072330; // type:function size:0x74 scope:local +BoardComJunctionInputGet = .text:0x800723A4; // type:function size:0x304 +BoardComFarPlayerFind = .text:0x800726A8; // type:function size:0xA8 +BoardViewOverheadExec = .text:0x80072750; // type:function size:0x134 +BoardViewFocusGetPos = .text:0x80072884; // type:function size:0x3C +BoardViewFocusSet = .text:0x800728C0; // type:function size:0xF0 +BoardViewMoveStart = .text:0x800729B0; // type:function size:0x128 +BoardViewMoveCheck = .text:0x80072AD8; // type:function size:0x34 +BoardViewMoveEnd = .text:0x80072B0C; // type:function size:0xC +BoardViewWait = .text:0x80072B18; // type:function size:0x3C +BoardViewMapExec = .text:0x80072B54; // type:function size:0xC8 +ExecMapView = .text:0x80072C1C; // type:function size:0x398 scope:local +ExecStarView = .text:0x80072FB4; // type:function size:0x170 scope:local +ExecOverheadView = .text:0x80073124; // type:function size:0x158 scope:local +DestroyView = .text:0x8007327C; // type:function size:0x80 scope:local +SetTargetView = .text:0x800732FC; // type:function size:0x178 scope:local +DestroyFocus = .text:0x80073474; // type:function size:0x4C scope:local +CreateButtonWin = .text:0x800734C0; // type:function size:0x110 scope:local +DestroyButtonWin = .text:0x800735D0; // type:function size:0x38 scope:local +InitOverheadView = .text:0x80073608; // type:function size:0x374 scope:local +DestroyOverheadView = .text:0x8007397C; // type:function size:0x24 scope:local +UpdateOverheadView = .text:0x800739A0; // type:function size:0x400 scope:local +WaitOverheadView = .text:0x80073DA0; // type:function size:0x30 scope:local +BoardSpaceWalkEventFuncSet = .text:0x80073DD0; // type:function size:0x8 +BoardSpaceWalkMiniEventFuncSet = .text:0x80073DD8; // type:function size:0x8 +BoardSpaceLandEventFuncSet = .text:0x80073DE0; // type:function size:0x8 +BoardSpaceWalkEventExec = .text:0x80073DE8; // type:function size:0x48 +BoardSpaceWalkMiniEventExec = .text:0x80073E30; // type:function size:0x60 +BoardSpaceCountGet = .text:0x80073E90; // type:function size:0x10 +BoardSpaceGet = .text:0x80073EA0; // type:function size:0x44 +BoardSpaceAttrSet = .text:0x80073EE4; // type:function size:0x18 +BoardSpaceAttrReset = .text:0x80073EFC; // type:function size:0x18 +BoardSpaceFlagGet = .text:0x80073F14; // type:function size:0x48 +BoardSpaceTypeGet = .text:0x80073F5C; // type:function size:0x48 +BoardSpaceTypeSet = .text:0x80073FA4; // type:function size:0x48 +BoardSpacePosGet = .text:0x80073FEC; // type:function size:0x8C +BoardSpaceCornerPosGet = .text:0x80074078; // type:function size:0x2C8 +BoardSpaceRotGet = .text:0x80074340; // type:function size:0x8C +BoardSpaceFlagSearch = .text:0x800743CC; // type:function size:0xA0 +BoardSpaceFlagPosGet = .text:0x8007446C; // type:function size:0x134 +BoardSpaceLinkFlagSearch = .text:0x800745A0; // type:function size:0x134 +BoardSpaceLinkTypeListGet = .text:0x800746D4; // type:function size:0x148 +BoardSpaceLinkTargetListGet = .text:0x8007481C; // type:function size:0x104 +BoardSpaceLinkTypeSearch = .text:0x80074920; // type:function size:0x110 +BoardSpaceLinkTransformGet = .text:0x80074A30; // type:function size:0x1FC +BoardSpaceHostSet = .text:0x80074C2C; // type:function size:0x1BC +BoardSpaceStarSetIndex = .text:0x80074DE8; // type:function size:0x4AC +BoardSpaceStarGetNext = .text:0x80075294; // type:function size:0x344 +BoardSpaceStarGetRandom = .text:0x800755D8; // type:function size:0x9C +BoardSpaceStarMove = .text:0x80075674; // type:function size:0xF0 +BoardSpaceStarGet = .text:0x80075764; // type:function size:0x1C +BoardSpaceStarGetCurr = .text:0x80075780; // type:function size:0x3C +BoardSpaceStarCheck = .text:0x800757BC; // type:function size:0x110 +BoardSpaceLandExec = .text:0x800758CC; // type:function size:0x474 +BoardSpaceWalkExec = .text:0x80075D40; // type:function size:0x2A4 +BoardSpaceBlockExec = .text:0x80075FE4; // type:function size:0x180 +ExecPipeSpace = .text:0x80076164; // type:function size:0x268 scope:local +BoardSpaceTypeForce = .text:0x800763CC; // type:function size:0x5C +BoardSpaceHide = .text:0x80076428; // type:function size:0x48 +DrawSpaces = .text:0x80076470; // type:function size:0x9E8 scope:local +BoardSpaceRead = .text:0x80076E58; // type:function size:0x174 +BoardSpaceCameraSet = .text:0x80076FCC; // type:function size:0x2C +BoardSpaceBlockPosSet = .text:0x80076FF8; // type:function size:0xD0 +BoardSpaceInit = .text:0x800770C8; // type:function size:0x750 +BoardSpaceDestroy = .text:0x80077818; // type:function size:0x70 +BoardShopHostSet = .text:0x80077888; // type:function size:0x8 +BoardShopHostGet = .text:0x80077890; // type:function size:0x8 +BoardShopInit = .text:0x80077898; // type:function size:0xD4 +BoardShopKill = .text:0x8007796C; // type:function size:0xA0 +BoardShopExec = .text:0x80077A0C; // type:function size:0x9C +ExecShop = .text:0x80077AA8; // type:function size:0x800 scope:local +DestroyShop = .text:0x800782A8; // type:function size:0xD4 scope:local +PopupShop = .text:0x8007837C; // type:function size:0x1B4 scope:local +CloseShop = .text:0x80078530; // type:function size:0xBC scope:local +CreateShopWin = .text:0x800785EC; // type:function size:0x13C scope:local +UpdateShopWin = .text:0x80078728; // type:function size:0x314 scope:local +SetShopWinItem = .text:0x80078A3C; // type:function size:0x168 scope:local +PauseShopWin = .text:0x80078BA4; // type:function size:0x2C scope:local +StartItemGive = .text:0x80078BD0; // type:function size:0x18C scope:local +ExecItemGive = .text:0x80078D5C; // type:function size:0x168 scope:local +MoveItemGive = .text:0x80078EC4; // type:function size:0x34C scope:local +ShrinkItemGive = .text:0x80079210; // type:function size:0x144 scope:local +WaitItemGive = .text:0x80079354; // type:function size:0x6C scope:local +GetShopItems = .text:0x800793C0; // type:function size:0x280 scope:local +GetDefaultShopItems = .text:0x80079640; // type:function size:0xA0 scope:local +SortShopItems = .text:0x800796E0; // type:function size:0x14C scope:local +DecideComEnter = .text:0x8007982C; // type:function size:0x1C8 scope:local +DecideComBuy = .text:0x800799F4; // type:function size:0x60 scope:local +GetComItemChoice = .text:0x80079A54; // type:function size:0x158 scope:local +WaitItemChoice = .text:0x80079BAC; // type:function size:0x30 scope:local +CreateShopItemChoice = .text:0x80079BDC; // type:function size:0x238 scope:local +GetShopItemChoice = .text:0x80079E14; // type:function size:0xC scope:local +GetShopItemWinChoice = .text:0x80079E20; // type:function size:0x38 scope:local +MoveShopItemChoice = .text:0x80079E58; // type:function size:0x24C scope:local +UpdateShopItemChoice = .text:0x8007A0A4; // type:function size:0x104 scope:local +GetShopItemChoiceInput = .text:0x8007A1A8; // type:function size:0x30 scope:local +BoardShopTutorialExec = .text:0x8007A1D8; // type:function size:0x4DC +BoardLotteryHostSet = .text:0x8007A6B4; // type:function size:0x8 +BoardLotteryHostGet = .text:0x8007A6BC; // type:function size:0x8 +BoardLotteryExec = .text:0x8007A6C4; // type:function size:0x8C +BoardLotteryInit = .text:0x8007A750; // type:function size:0x16C +CreateModel = .text:0x8007A8BC; // type:function size:0x3B4 scope:local +KillModel = .text:0x8007AC70; // type:function size:0x1FC scope:local +BoardLotteryKill = .text:0x8007AE6C; // type:function size:0x64 +DestroyLottery = .text:0x8007AED0; // type:function size:0xB0 scope:local +ExecLottery = .text:0x8007AF80; // type:function size:0x798 scope:local +DoMiniJumpUp = .text:0x8007B718; // type:function size:0x20C scope:local +DoMiniJumpDown = .text:0x8007B924; // type:function size:0x1BC scope:local +PayEnterFee = .text:0x8007BAE0; // type:function size:0xF0 scope:local +ShowTicket = .text:0x8007BBD0; // type:function size:0x3C8 scope:local +SetupTicket = .text:0x8007BF98; // type:function size:0x140 scope:local +ExecBallGame = .text:0x8007C0D8; // type:function size:0x914 scope:local +SetBallPrize = .text:0x8007C9EC; // type:function size:0xC8 scope:local +ExecBallPrize = .text:0x8007CAB4; // type:function size:0x27C scope:local +ExecScratchTicket = .text:0x8007CD30; // type:function size:0x30C scope:local +ExecScratch = .text:0x8007D03C; // type:function size:0x3AC scope:local +KillScratch = .text:0x8007D3E8; // type:function size:0x6C scope:local +ExecScratchSpr = .text:0x8007D454; // type:function size:0x21C scope:local +HideScratchSpr = .text:0x8007D670; // type:function size:0x68 scope:local +InitScratchSpr = .text:0x8007D6D8; // type:function size:0x288 scope:local +ExecScratchPick = .text:0x8007D960; // type:function size:0x3DC scope:local +InitScratchPick = .text:0x8007DD3C; // type:function size:0x14C scope:local +InitTicketPrizes = .text:0x8007DE88; // type:function size:0xD0 scope:local +ExecTicketFocus = .text:0x8007DF58; // type:function size:0x160 scope:local +ScratchTicketCheckDone = .text:0x8007E0B8; // type:function size:0xA8 scope:local +TicketGetPixel = .text:0x8007E160; // type:function size:0x84 scope:local +TicketUpdate = .text:0x8007E1E4; // type:function size:0x6B0 scope:local +ExecCoinPrize = .text:0x8007E894; // type:function size:0x440 scope:local +ExecItemPrize = .text:0x8007ECD4; // type:function size:0x338 scope:local +KillCoin = .text:0x8007F00C; // type:function size:0x68 scope:local +ExecPrize = .text:0x8007F074; // type:function size:0x4C0 scope:local +ExecLose = .text:0x8007F534; // type:function size:0xA4 scope:local +CreateLotteryWin = .text:0x8007F5D8; // type:function size:0xFC scope:local +KillLotteryWin = .text:0x8007F6D4; // type:function size:0x38 scope:local +BoardLotteryTutorialExec = .text:0x8007F70C; // type:function size:0x2BC +BoardLandBlueExec = .text:0x8007F9C8; // type:function size:0x184 +BoardLandRedExec = .text:0x8007FB4C; // type:function size:0x19C +BoardCoinChgCreate = .text:0x8007FCE8; // type:function size:0x1E8 +BoardCoinChgExist = .text:0x8007FED0; // type:function size:0x6C +BoardCoinChgHide = .text:0x8007FF3C; // type:function size:0x60 +CreateCoinChg = .text:0x8007FF9C; // type:function size:0x23C scope:local +UpdateCoinChg = .text:0x800801D8; // type:function size:0x198 scope:local +CoinChgAppear = .text:0x80080370; // type:function size:0x1B8 scope:local +CoinChgSeparate = .text:0x80080528; // type:function size:0x29C scope:local +CoinChgShow = .text:0x800807C4; // type:function size:0x1A8 scope:local +CoinChgDisappear = .text:0x8008096C; // type:function size:0x260 scope:local +BoardWarpExec = .text:0x80080BCC; // type:function size:0xA4 +WarpProcess = .text:0x80080C70; // type:function size:0x250 scope:local +WarpKill = .text:0x80080EC0; // type:function size:0x5C scope:local +WarpInit = .text:0x80080F1C; // type:function size:0x118 scope:local +WarpLaunch = .text:0x80081034; // type:function size:0xBC scope:local +WarpStartImpact = .text:0x800810F0; // type:function size:0x1B0 scope:local +WarpFall = .text:0x800812A0; // type:function size:0xA4 scope:local +WarpImpact = .text:0x80081344; // type:function size:0x200 scope:local +BoardCharWheelInit = .text:0x80081544; // type:function size:0x11C +BoardCharWheelCheck = .text:0x80081660; // type:function size:0x34 +BoardCharWheelWait = .text:0x80081694; // type:function size:0x50 +BoardCharWheelResultGet = .text:0x800816E4; // type:function size:0x18 +BoardCharWheelSpeedSet = .text:0x800816FC; // type:function size:0x1C +ExecCharWheel = .text:0x80081718; // type:function size:0x118 scope:local +InitCharWheel = .text:0x80081830; // type:function size:0x754 scope:local +UpdateCharWheel = .text:0x80081F84; // type:function size:0x320 scope:local +StopCharWheel = .text:0x800822A4; // type:function size:0x164 scope:local +GrowCharWheel = .text:0x80082408; // type:function size:0x12C scope:local +ShrinkCharWheel = .text:0x80082534; // type:function size:0x10C scope:local +KillCharWheelSpr = .text:0x80082640; // type:function size:0x38 scope:local +SetCharWheelChars = .text:0x80082678; // type:function size:0xBC scope:local +GetInput = .text:0x80082734; // type:function size:0x224 scope:local +BoardCharWheelTargetSet = .text:0x80082958; // type:function size:0x10 +GetComDelay = .text:0x80082968; // type:function size:0x148 scope:local +GetComInput = .text:0x80082AB0; // type:function size:0x8C scope:local +BoardMushroomExec = .text:0x80082B3C; // type:function size:0xA4 +MushroomMain = .text:0x80082BE0; // type:function size:0x38C scope:local +KillMushroom = .text:0x80082F6C; // type:function size:0x58 scope:local +BoxMain = .text:0x80082FC4; // type:function size:0x118 scope:local +ShowBox = .text:0x800830DC; // type:function size:0x114 scope:local +ExitBox = .text:0x800831F0; // type:function size:0x160 scope:local +HideBox = .text:0x80083350; // type:function size:0x68 scope:local +CenterBox = .text:0x800833B8; // type:function size:0xD4 scope:local +InitBox = .text:0x8008348C; // type:function size:0x2EC scope:local +MarkKillBox = .text:0x80083778; // type:function size:0x64 scope:local +SetBoxHide = .text:0x800837DC; // type:function size:0x34 scope:local +SetBoxCenter = .text:0x80083810; // type:function size:0x54 scope:local +SetBoxShow = .text:0x80083864; // type:function size:0x34 scope:local +WaitBoxOpen = .text:0x80083898; // type:function size:0x5C scope:local +WaitBoxCenter = .text:0x800838F4; // type:function size:0x58 scope:local +CheckBox = .text:0x8008394C; // type:function size:0x60 scope:local +DoItemGive = .text:0x800839AC; // type:function size:0x240 scope:local +StartItemGive = .text:0x80083BEC; // type:function size:0xD4 scope:local +KillItemMdl = .text:0x80083CC0; // type:function size:0x38 scope:local +ShowItemMdl = .text:0x80083CF8; // type:function size:0x48 scope:local +WaitItemGive = .text:0x80083D40; // type:function size:0x48 scope:local +BoardStarHostSet = .text:0x80083D88; // type:function size:0xA8 +BoardStarHostMdlGet = .text:0x80083E30; // type:function size:0x8 +BoardStarExec = .text:0x80083E38; // type:function size:0xCC +ExecStar = .text:0x80083F04; // type:function size:0x8F4 scope:local +DestroyStar = .text:0x800847F8; // type:function size:0x84 scope:local +GiveStarMain = .text:0x8008487C; // type:function size:0x160 scope:local +UpdateStarAngle = .text:0x800849DC; // type:function size:0x144 scope:local +InitGiveStar = .text:0x80084B20; // type:function size:0x10C scope:local +MoveGiveStar = .text:0x80084C2C; // type:function size:0x180 scope:local +ShrinkGiveStar = .text:0x80084DAC; // type:function size:0x204 scope:local +StopGiveStar = .text:0x80084FB0; // type:function size:0x38 scope:local +InitGiveStarEffect = .text:0x80084FE8; // type:function size:0xB4 scope:local +KillGiveStarEffect = .text:0x8008509C; // type:function size:0x40 scope:local +BoardStarGive = .text:0x800850DC; // type:function size:0x31C +BoardStarShowNext = .text:0x800853F8; // type:function size:0x628 +ShowNextUpdate = .text:0x80085A20; // type:function size:0x130 scope:local +HideNextHost = .text:0x80085B50; // type:function size:0x24 scope:local +BoardRollExec = .text:0x80085B74; // type:function size:0x1EC +RollWinCreate = .text:0x80085D60; // type:function size:0x21C scope:local +BoardRollKill = .text:0x80085F7C; // type:function size:0x38 +BoardRollUPauseSet = .text:0x80085FB4; // type:function size:0x84 +BoardRollWinDispSet = .text:0x80086038; // type:function size:0x4C +RollMain = .text:0x80086084; // type:function size:0x314 scope:local +DiceCreate = .text:0x80086398; // type:function size:0x280 scope:local +DoInput = .text:0x80086618; // type:function size:0x1C8 scope:local +DiceWaitFull = .text:0x800867E0; // type:function size:0x60 scope:local +DiceSetHit = .text:0x80086840; // type:function size:0x130 scope:local +RollDestroy = .text:0x80086970; // type:function size:0x60 scope:local +DiceMain = .text:0x800869D0; // type:function size:0x7E4 scope:local +DicePause = .text:0x800871B4; // type:function size:0x40 scope:local +DicePauseAll = .text:0x800871F4; // type:function size:0x90 scope:local +BoardDiceEffectCreate = .text:0x80087284; // type:function size:0xE0 +DiceHideEffect = .text:0x80087364; // type:function size:0x84 scope:local +BoardDicePauseAll = .text:0x800873E8; // type:function size:0x94 +BoardDiceDoneCheck = .text:0x8008747C; // type:function size:0x8C +BoardDiceStop = .text:0x80087508; // type:function size:0x58 +BoardDiceVisibleSet = .text:0x80087560; // type:function size:0xC0 +BoardDiceValueSet = .text:0x80087620; // type:function size:0x200 +DiceDigitMain = .text:0x80087820; // type:function size:0xAC scope:local +DiceDigitKill = .text:0x800878CC; // type:function size:0x68 scope:local +DiceKill = .text:0x80087934; // type:function size:0xB4 scope:local +DiceDigitMove = .text:0x800879E8; // type:function size:0x390 scope:local +DiceDigitRotate = .text:0x80087D78; // type:function size:0x110 scope:local +SameRollExec = .text:0x80087E88; // type:function size:0x248 scope:local +GetBtnRoll = .text:0x800880D0; // type:function size:0x110 scope:local +GetComBtnRoll = .text:0x800881E0; // type:function size:0x88 scope:local +BoardRollTutorialSet = .text:0x80088268; // type:function size:0x4C +BoardItemModelGet = .text:0x800882B4; // type:function size:0x90 +BoardItemNameGet = .text:0x80088344; // type:function size:0x98 +BoardStatusStopCheck = .text:0x800883DC; // type:function size:0x48 +BoardStatusVisibleGet = .text:0x80088424; // type:function size:0x1C +BoardStatusShowSetAll = .text:0x80088440; // type:function size:0x48 +BoardStatusItemSet = .text:0x80088488; // type:function size:0xFC +BoardStatusShowSetForce = .text:0x80088584; // type:function size:0x24 +BoardStatusGraySet = .text:0x800885A8; // type:function size:0x134 +BoardStatusShowSet = .text:0x800886DC; // type:function size:0x138 +BoardStatusItemHideSet = .text:0x80088814; // type:function size:0x50 +BoardStatusTargetPosSet = .text:0x80088864; // type:function size:0x44 +BoardStatusPosGet = .text:0x800888A8; // type:function size:0x34 +BoardStatusPosSet = .text:0x800888DC; // type:function size:0x6C +BoardStatusHammerCreate = .text:0x80088948; // type:function size:0x158 +BoardStatusHammerShowSet = .text:0x80088AA0; // type:function size:0x94 +BoardStatusHammerKill = .text:0x80088B34; // type:function size:0x6C +BoardStatusKill = .text:0x80088BA0; // type:function size:0x90 +BoardStatusCreate = .text:0x80088C30; // type:function size:0x20C +KillAllBoardStatus = .text:0x80088E3C; // type:function size:0x98 scope:local +CreateBoardStatusSprite = .text:0x80088ED4; // type:function size:0x36C scope:local +BoardSpriteCreate = .text:0x80089240; // type:function size:0x8C +UpdateBoardStatus = .text:0x800892CC; // type:function size:0x210 scope:local +BoardStatusProc = .text:0x800894DC; // type:function size:0x40 scope:local +MoveBoardStatus = .text:0x8008951C; // type:function size:0x180 scope:local +BoardSpriteDigitUpdate = .text:0x8008969C; // type:function size:0x140 +UpdateStatusItem = .text:0x800897DC; // type:function size:0xB8 scope:local +BoardPickerCreate = .text:0x80089894; // type:function size:0x29C +BoardPickerBackFlagSet = .text:0x80089B30; // type:function size:0x74 +BoardPickerDoneCheck = .text:0x80089BA4; // type:function size:0x1C +BoardPickerPosGet = .text:0x80089BC0; // type:function size:0x48 +BoardPickerChoiceGet = .text:0x80089C08; // type:function size:0xC +UpdatePicker = .text:0x80089C14; // type:function size:0xFC scope:local +UpdatePickerInput = .text:0x80089D10; // type:function size:0x15C scope:local +MovePicker = .text:0x80089E6C; // type:function size:0x110 scope:local +UpdateComPickerButton = .text:0x80089F7C; // type:function size:0x30 scope:local +CheckPickerButton = .text:0x80089FAC; // type:function size:0x19C scope:local +BoardYourTurnExec = .text:0x8008A148; // type:function size:0x1E4 +UpdateYourTurn = .text:0x8008A32C; // type:function size:0xD4 scope:local +GrowYourTurn = .text:0x8008A400; // type:function size:0xD8 scope:local +WaitYourTurn = .text:0x8008A4D8; // type:function size:0xEC scope:local +ShrinkYourTurn = .text:0x8008A5C4; // type:function size:0xC8 scope:local +BoardItemUseExec = .text:0x8008A68C; // type:function size:0x80 +ItemUseTeamProc = .text:0x8008A70C; // type:function size:0x4A8 scope:local +ItemUseProc = .text:0x8008ABB4; // type:function size:0x370 scope:local +FinishItemUse = .text:0x8008AF24; // type:function size:0x174 scope:local +DestroyItemUse = .text:0x8008B098; // type:function size:0x78 scope:local +BoardMakeRandomItem = .text:0x8008B110; // type:function size:0x74 +TeamItemPosSet = .text:0x8008B184; // type:function size:0xE8 scope:local +ExecItemPick = .text:0x8008B26C; // type:function size:0x650 scope:local +UpdateItemPick = .text:0x8008B8BC; // type:function size:0x3AC scope:local +MakeItemPickSpace = .text:0x8008BC68; // type:function size:0x420 scope:local +SetItemUIStatus = .text:0x8008C088; // type:function size:0x248 scope:local +BoardItemGetDestPos = .text:0x8008C2D0; // type:function size:0xA8 +ItemGetPos = .text:0x8008C378; // type:function size:0x104 scope:local +BoardItemStatusKill = .text:0x8008C47C; // type:function size:0x400 +UpdateItemPickGfx = .text:0x8008C87C; // type:function size:0x388 scope:local +UpdateItemPickup = .text:0x8008CC04; // type:function size:0x674 scope:local +CheckItemWindow = .text:0x8008D278; // type:function size:0x50 scope:local +HideItemWindow = .text:0x8008D2C8; // type:function size:0x38 scope:local +CreateItemWindow = .text:0x8008D300; // type:function size:0x5A4 scope:local +CheckItemWindowSlide = .text:0x8008D8A4; // type:function size:0x58 scope:local +KillItemWindow = .text:0x8008D8FC; // type:function size:0x38 scope:local +SetItemWindowCurr = .text:0x8008D934; // type:function size:0xA4 scope:local +UpdateItemWindow = .text:0x8008D9D8; // type:function size:0x350 scope:local +CreatePickerWindow = .text:0x8008DD28; // type:function size:0x11C scope:local +KillPickerWindow = .text:0x8008DE44; // type:function size:0x44 scope:local +BoardBlockExec = .text:0x8008DE88; // type:function size:0x84 +BlockProc = .text:0x8008DF0C; // type:function size:0x358 scope:local +DestroyBlock = .text:0x8008E264; // type:function size:0x54 scope:local +CreateBlockObj = .text:0x8008E2B8; // type:function size:0x1F4 scope:local +ExecBlockObj = .text:0x8008E4AC; // type:function size:0x12C scope:local +DestroyBlockObj = .text:0x8008E5D8; // type:function size:0x38 scope:local +SpawnBlock = .text:0x8008E610; // type:function size:0x120 scope:local +HitBlock = .text:0x8008E730; // type:function size:0xCC scope:local +OpenBlock = .text:0x8008E7FC; // type:function size:0x140 scope:local +SetBlockOpen = .text:0x8008E93C; // type:function size:0x2C scope:local +SetBlockStop = .text:0x8008E968; // type:function size:0x2C scope:local +WaitBlockHit = .text:0x8008E994; // type:function size:0x48 scope:local +CreateCoinMdl = .text:0x8008E9DC; // type:function size:0x94 scope:local +KillCoinMdl = .text:0x8008EA70; // type:function size:0x9C scope:local +PopupCoin = .text:0x8008EB0C; // type:function size:0x10C scope:local +PopupCoinExec = .text:0x8008EC18; // type:function size:0x130 scope:local +BoardItemStart = .text:0x8008ED48; // type:function size:0x74 +BoardItemDoneCheck = .text:0x8008EDBC; // type:function size:0x1C +BoardItemPlayerRestore = .text:0x8008EDD8; // type:function size:0x6C +ItemProcess = .text:0x8008EE44; // type:function size:0x64 scope:local +RestoreProcess = .text:0x8008EEA8; // type:function size:0x64 scope:local +ItemDestroy = .text:0x8008EF0C; // type:function size:0xC scope:local +RestoreDestroy = .text:0x8008EF18; // type:function size:0xC scope:local +ItemSizeShowAnim = .text:0x8008EF24; // type:function size:0x180 scope:local +ItemRotProc = .text:0x8008F0A4; // type:function size:0x1BC scope:local +ItemShowProc = .text:0x8008F260; // type:function size:0x220 scope:local +ItemGetTarget = .text:0x8008F480; // type:function size:0x374 scope:local +ItemSizeSet = .text:0x8008F7F4; // type:function size:0x204 scope:local +ExecItemMini = .text:0x8008F9F8; // type:function size:0xA4 scope:local +ExecItemMega = .text:0x8008FA9C; // type:function size:0xA4 scope:local +ExecItemMiniSuper = .text:0x8008FB40; // type:function size:0xA4 scope:local +ExecItemMegaSuper = .text:0x8008FBE4; // type:function size:0xA4 scope:local +ExecItemHammer = .text:0x8008FC88; // type:function size:0x584 scope:local +ExecItemPipe = .text:0x8009020C; // type:function size:0xD34 scope:local +ExecItemSwap = .text:0x80090F40; // type:function size:0xEBC scope:local +ExecItemSpark = .text:0x80091DFC; // type:function size:0x4FC scope:local +ExecItemLight = .text:0x800922F8; // type:function size:0xC8 scope:local +ExecItemWhistle = .text:0x800923C0; // type:function size:0xE3C scope:local +ExecItemBowser = .text:0x800931FC; // type:function size:0x3D4 scope:local +ExecItemBooBall = .text:0x800935D0; // type:function size:0x1370 scope:local +LampParticleUpdate = .text:0x80094940; // type:function size:0x488 scope:local +GenieParticleUpdate = .text:0x80094DC8; // type:function size:0x388 scope:local +GenieCameraProc = .text:0x80095150; // type:function size:0xB0 scope:local +GenieCameraCalc = .text:0x80095200; // type:function size:0x7A4 scope:local +GenieSceneExec = .text:0x800959A4; // type:function size:0x9D8 scope:local +ExecItemGenie = .text:0x8009637C; // type:function size:0x628 scope:local +BoardItemBagItemSet = .text:0x800969A4; // type:function size:0x3C +ExecItemBagJump = .text:0x800969E0; // type:function size:0x13C scope:local +ExecItemBagShow = .text:0x80096B1C; // type:function size:0xDC scope:local +ExecItemBag = .text:0x80096BF8; // type:function size:0x584 scope:local +RestoreItemNull = .text:0x8009717C; // type:function size:0x1C scope:local +RestoreItemMini = .text:0x80097198; // type:function size:0x2C scope:local +RestoreItemMega = .text:0x800971C4; // type:function size:0x2C scope:local +RestoreItemMiniSuper = .text:0x800971F0; // type:function size:0x2C scope:local +RestoreItemMegaSuper = .text:0x8009721C; // type:function size:0x2C scope:local +RestoreItemBowser = .text:0x80097248; // type:function size:0x284 scope:local +BoardBowserExec = .text:0x800974CC; // type:function size:0x144 +ExecBowser = .text:0x80097610; // type:function size:0x28C scope:local +ExecBowserMain = .text:0x8009789C; // type:function size:0x208 scope:local +ExecMGReturn = .text:0x80097AA4; // type:function size:0x1DC scope:local +DestroyBowser = .text:0x80097C80; // type:function size:0x30 scope:local +SquishPlayers = .text:0x80097CB0; // type:function size:0x148 scope:local +ExecBowserSpecial = .text:0x80097DF8; // type:function size:0x1B4 scope:local +ExecBowserGame = .text:0x80097FAC; // type:function size:0x250 scope:local +DoMGReturnEffect = .text:0x800981FC; // type:function size:0x220 scope:local +ExecBowserShuffle = .text:0x8009841C; // type:function size:0x2B0 scope:local +ExecBowserRevo = .text:0x800986CC; // type:function size:0x160 scope:local +ExecBowserSuit = .text:0x8009882C; // type:function size:0xB8 scope:local +CheckSuitGive = .text:0x800988E4; // type:function size:0x1C scope:local +StartSuitGive = .text:0x80098900; // type:function size:0x148 scope:local +SuitGiveMain = .text:0x80098A48; // type:function size:0x210 scope:local +CreateBowserObj = .text:0x80098C58; // type:function size:0x228 scope:local +ExecBowserObj = .text:0x80098E80; // type:function size:0x230 scope:local +ExecBowserFall = .text:0x800990B0; // type:function size:0x270 scope:local +ExecBowserLaugh = .text:0x80099320; // type:function size:0x58 scope:local +ExecBowserFire = .text:0x80099378; // type:function size:0x44 scope:local +ExecBowserJump = .text:0x800993BC; // type:function size:0x150 scope:local +ExecBowserPowerUp = .text:0x8009950C; // type:function size:0x128 scope:local +SetBowserState = .text:0x80099634; // type:function size:0x34 scope:local +CheckBowserIdle = .text:0x80099668; // type:function size:0x5C scope:local +CreateMiniBowser = .text:0x800996C4; // type:function size:0xD4 scope:local +CheckMiniBowser = .text:0x80099798; // type:function size:0x1C scope:local +ExecMiniBowser = .text:0x800997B4; // type:function size:0x18C scope:local +CreateBowserEvent = .text:0x80099940; // type:function size:0x1E8 scope:local +CheckBowserEvent = .text:0x80099B28; // type:function size:0x38 scope:local +StopBowserEvent = .text:0x80099B60; // type:function size:0x24 scope:local +ExecBowserEvent = .text:0x80099B84; // type:function size:0xEC scope:local +ShowBowserEvent = .text:0x80099C70; // type:function size:0x1C8 scope:local +HideBowserEvent = .text:0x80099E38; // type:function size:0x108 scope:local +ConfigBowserEvent = .text:0x80099F40; // type:function size:0x160 scope:local +CreatePlayerMot = .text:0x8009A0A0; // type:function size:0x1AC scope:local +KillPlayerMot = .text:0x8009A24C; // type:function size:0xB8 scope:local +InitBowserFire = .text:0x8009A304; // type:function size:0x90 scope:local +BowserFireHook = .text:0x8009A394; // type:function size:0x160 scope:local +SpawnBowserFire = .text:0x8009A4F4; // type:function size:0xE4 scope:local +CheckBowserFire = .text:0x8009A5D8; // type:function size:0xCC scope:local +KillBowserFire = .text:0x8009A6A4; // type:function size:0x40 scope:local +ExecMiniBowserEvent = .text:0x8009A6E4; // type:function size:0x188 scope:local +MiniBowserTake = .text:0x8009A86C; // type:function size:0x2C4 scope:local +MiniBowserTakeAll = .text:0x8009AB30; // type:function size:0x2B8 scope:local +MiniBowserBalloonStop = .text:0x8009ADE8; // type:function size:0x24 scope:local +GetMiniBowserBalloonState = .text:0x8009AE0C; // type:function size:0xC scope:local +SetMiniBowserBalloonState = .text:0x8009AE18; // type:function size:0x10 scope:local +CreateMiniBowserBalloon = .text:0x8009AE28; // type:function size:0x14C scope:local +ExecMiniBowserBalloon = .text:0x8009AF74; // type:function size:0x120 scope:local +MiniBowserBalloonHover = .text:0x8009B094; // type:function size:0xB4 scope:local +MiniBowserBalloonFall = .text:0x8009B148; // type:function size:0x88 scope:local +MiniBowserBalloonRaise = .text:0x8009B1D0; // type:function size:0x80 scope:local +SetMiniBowserMotion = .text:0x8009B250; // type:function size:0xD8 scope:local +SetMiniBowserMotionPause = .text:0x8009B328; // type:function size:0x6C scope:local +WaitMiniBowserMotion = .text:0x8009B394; // type:function size:0x60 scope:local +BoardBattleExec = .text:0x8009B3F4; // type:function size:0x124 +DestroyBattle = .text:0x8009B518; // type:function size:0x2C scope:local +ExecBattle = .text:0x8009B544; // type:function size:0x708 scope:local +TakeCoins = .text:0x8009BC4C; // type:function size:0x1D4 scope:local +InitExplode = .text:0x8009BE20; // type:function size:0x1FC scope:local +CheckExplode = .text:0x8009C01C; // type:function size:0x24 scope:local +UpdateExplode = .text:0x8009C040; // type:function size:0x2D0 scope:local +CreateBattleMain = .text:0x8009C310; // type:function size:0x1E8 scope:local +UpdateBattleMain = .text:0x8009C4F8; // type:function size:0x1A0 scope:local +DescendBattleBomb = .text:0x8009C698; // type:function size:0x64 scope:local +EndBattle = .text:0x8009C6FC; // type:function size:0x88 scope:local +ShowBattleGame = .text:0x8009C784; // type:function size:0x124 scope:local +RaiseBattleGame = .text:0x8009C8A8; // type:function size:0x8C scope:local +UpdateBattleCoin = .text:0x8009C934; // type:function size:0x260 scope:local +ShowBattleCoin = .text:0x8009CB94; // type:function size:0x128 scope:local +InitBattleGameSpr = .text:0x8009CCBC; // type:function size:0x12C scope:local +HideBattleSpr = .text:0x8009CDE8; // type:function size:0x58 scope:local +VibratePad = .text:0x8009CE40; // type:function size:0x64 scope:local +StopBattleBomb = .text:0x8009CEA4; // type:function size:0x24 scope:local +GetBattleBombState = .text:0x8009CEC8; // type:function size:0x10 scope:local +SetBattleBombState = .text:0x8009CED8; // type:function size:0x34 scope:local +SetBattleCoinValue = .text:0x8009CF0C; // type:function size:0x15C scope:local +BoardFortuneExec = .text:0x8009D068; // type:function size:0x124 +FortuneExec = .text:0x8009D18C; // type:function size:0x74 scope:local +DestroyFortune = .text:0x8009D200; // type:function size:0xC scope:local +FortuneMain = .text:0x8009D20C; // type:function size:0x340 scope:local +FortunePostMG = .text:0x8009D54C; // type:function size:0xF8 scope:local +CreateFortunePlatform = .text:0x8009D644; // type:function size:0x160 scope:local +CameraCalcFortune = .text:0x8009D7A4; // type:function size:0x5C scope:local +ExecFortunePlatform = .text:0x8009D800; // type:function size:0x198 scope:local +ExecComFortuneWin = .text:0x8009D998; // type:function size:0x18C scope:local +ConfigComFortune = .text:0x8009DB24; // type:function size:0x20C scope:local +ComFortuneAddStar = .text:0x8009DD30; // type:function size:0x78 scope:local +ComFortuneAddCoin = .text:0x8009DDA8; // type:function size:0x78 scope:local +ComFortuneSwapCoin = .text:0x8009DE20; // type:function size:0x68 scope:local +ComFortuneSwapStar = .text:0x8009DE88; // type:function size:0x68 scope:local +BoardBooCreate = .text:0x8009DEF0; // type:function size:0x11C +BoardBooKill = .text:0x8009E00C; // type:function size:0x2C +BoardBooStealTypeSet = .text:0x8009E038; // type:function size:0x2A8 +ComSetupStealPlayer = .text:0x8009E2E0; // type:function size:0x1D4 scope:local +ComSetStealPlayerInput = .text:0x8009E4B4; // type:function size:0xE8 scope:local +BoardBooStealMain = .text:0x8009E59C; // type:function size:0x280 +ExecCoinSteal = .text:0x8009E81C; // type:function size:0xC0 scope:local +ExecStarSteal = .text:0x8009E8DC; // type:function size:0xA8 scope:local +ExecLightSteal = .text:0x8009E984; // type:function size:0x94 scope:local +SetBooMode = .text:0x8009EA18; // type:function size:0x10 scope:local +CreateBallMdl = .text:0x8009EA28; // type:function size:0xBC scope:local +CreateBallView = .text:0x8009EAE4; // type:function size:0x1D4 scope:local +SetBallView = .text:0x8009ECB8; // type:function size:0xAC scope:local +SetBallActive = .text:0x8009ED64; // type:function size:0x28 scope:local +CheckBallKill = .text:0x8009ED8C; // type:function size:0x4C scope:local +BallMain = .text:0x8009EDD8; // type:function size:0x300 scope:local +BallRenderHook = .text:0x8009F0D8; // type:function size:0x4A0 scope:local +ExecBoo = .text:0x8009F578; // type:function size:0x9C scope:local +UpdateBallCamera = .text:0x8009F614; // type:function size:0x1DC scope:local +CreateBallPlayer = .text:0x8009F7F0; // type:function size:0x358 scope:local +GetBallPlayerState = .text:0x8009FB48; // type:function size:0x24 scope:local +SetBallPlayerState = .text:0x8009FB6C; // type:function size:0x2C scope:local +ExecBallPlayer = .text:0x8009FB98; // type:function size:0x214 scope:local +BallPlayerZoomOut = .text:0x8009FDAC; // type:function size:0x15C scope:local +BallPlayerScare = .text:0x8009FF08; // type:function size:0x110 scope:local +BallPlayerTurn = .text:0x800A0018; // type:function size:0x68 scope:local +BallPlayerPunch = .text:0x800A0080; // type:function size:0x1E0 scope:local +BallPlayerUseLight = .text:0x800A0260; // type:function size:0x10C scope:local +BallPlayerCatch = .text:0x800A036C; // type:function size:0x190 scope:local +BallBooCreate = .text:0x800A04FC; // type:function size:0x328 scope:local +SetBallBooState = .text:0x800A0824; // type:function size:0x170 scope:local +GetBallBooState = .text:0x800A0994; // type:function size:0x24 scope:local +ExecBallBoo = .text:0x800A09B8; // type:function size:0x128 scope:local +BallBooSpawn = .text:0x800A0AE0; // type:function size:0x54 scope:local +BallBooChase = .text:0x800A0B34; // type:function size:0x104 scope:local +BallBooBattle = .text:0x800A0C38; // type:function size:0x218 scope:local +BallBooAttack = .text:0x800A0E50; // type:function size:0xF4 scope:local +BallBooFlash = .text:0x800A0F44; // type:function size:0x178 scope:local +TakeBallCoin = .text:0x800A10BC; // type:function size:0x1B0 scope:local +ExecTakeBallCoin = .text:0x800A126C; // type:function size:0xDC scope:local +TakeBallCoinPosSet = .text:0x800A1348; // type:function size:0x9C scope:local +CheckBallCoinDone = .text:0x800A13E4; // type:function size:0x68 scope:local +TakeBallStar = .text:0x800A144C; // type:function size:0x168 scope:local +ExecTakeBallStar = .text:0x800A15B4; // type:function size:0x184 scope:local +CheckTakeBallStarDone = .text:0x800A1738; // type:function size:0x1C scope:local +BoardBooStealValueGet = .text:0x800A1754; // type:function size:0x30 +BoardBooStealLightCheck = .text:0x800A1784; // type:function size:0x20 +UpdatePlayerCoins = .text:0x800A17A4; // type:function size:0x1B0 scope:local +BoardMGSetupExec = .text:0x800A1954; // type:function size:0x60 +DestroyMGSetup = .text:0x800A19B4; // type:function size:0x1C scope:local +ExecMGSetup = .text:0x800A19D0; // type:function size:0x6FC scope:local +DetermineMGList = .text:0x800A20CC; // type:function size:0x3B0 scope:local +SetupStatusLayout = .text:0x800A247C; // type:function size:0x3A8 scope:local +GetMGType = .text:0x800A2824; // type:function size:0x388 scope:local +GetMGTypeTeam = .text:0x800A2BAC; // type:function size:0x3A4 scope:local +CreateMGSetup = .text:0x800A2F50; // type:function size:0x194 scope:local +UpdateMGSetup = .text:0x800A30E4; // type:function size:0x198 scope:local +CenterStatus = .text:0x800A327C; // type:function size:0x174 scope:local +SeparateStatus = .text:0x800A33F0; // type:function size:0x200 scope:local +PopupVS = .text:0x800A35F0; // type:function size:0x20C scope:local +FallMGType = .text:0x800A37FC; // type:function size:0x1C8 scope:local +LuckyMGFall = .text:0x800A39C4; // type:function size:0x204 scope:local +HideLuckyValue = .text:0x800A3BC8; // type:function size:0xA8 scope:local +UpdateLuckyValue = .text:0x800A3C70; // type:function size:0x430 scope:local +UpdateMGList = .text:0x800A40A0; // type:function size:0x8FC scope:local +BoardMGSetupPlayClear = .text:0x800A499C; // type:function size:0x74 +BoardMGSetupPlaySearch = .text:0x800A4A10; // type:function size:0xC8 +BoardMGSetupPlayPush = .text:0x800A4AD8; // type:function size:0xD0 +BoardMGSetupTutorialExec = .text:0x800A4BA8; // type:function size:0x2E4 +BoardBooHouseHostSet = .text:0x800A4E8C; // type:function size:0x8 +BoardBooHouseHostGet = .text:0x800A4E94; // type:function size:0x8 +BoardBooHouseCreate = .text:0x800A4E9C; // type:function size:0xB4 +BoardBooHouseKill = .text:0x800A4F50; // type:function size:0x50 +BoardBooHouseExec = .text:0x800A4FA0; // type:function size:0x94 +ExecBooHouse = .text:0x800A5034; // type:function size:0x538 scope:local +DestroyBooHouse = .text:0x800A556C; // type:function size:0xF0 scope:local +PickComStealType = .text:0x800A565C; // type:function size:0xFC scope:local +OpenBooHouse = .text:0x800A5758; // type:function size:0x3A0 scope:local +CloseBooHouse = .text:0x800A5AF8; // type:function size:0x124 scope:local +CreateBooHouseModel = .text:0x800A5C1C; // type:function size:0xB0 scope:local +KillBooHouseModel = .text:0x800A5CCC; // type:function size:0xD4 scope:local +ExecNullSteal = .text:0x800A5DA0; // type:function size:0x68 scope:local +ExecStarSteal = .text:0x800A5E08; // type:function size:0x2AC scope:local +ExecCoinSteal = .text:0x800A60B4; // type:function size:0x2AC scope:local +ApplySteal = .text:0x800A6360; // type:function size:0x188 scope:local +ApplyCoinSteal = .text:0x800A64E8; // type:function size:0x16C scope:local +ApplyStarSteal = .text:0x800A6654; // type:function size:0x164 scope:local +ApplyBooLight = .text:0x800A67B8; // type:function size:0x70 scope:local +SetBooBallPos = .text:0x800A6828; // type:function size:0x60 scope:local +BoardBooComUseCheck = .text:0x800A6888; // type:function size:0x1A8 +BoardBooHouseTutorialExec = .text:0x800A6A30; // type:function size:0x3D4 +BoardStartExec = .text:0x800A6E04; // type:function size:0x64 +DestroyStart = .text:0x800A6E68; // type:function size:0x84 scope:local +ExecStart = .text:0x800A6EEC; // type:function size:0x400 scope:local +ShowLogo = .text:0x800A72EC; // type:function size:0x2FC scope:local +FocusStart = .text:0x800A75E8; // type:function size:0x17C scope:local +CreatePlayerStart = .text:0x800A7764; // type:function size:0x2D8 scope:local +ExecPlayerStart = .text:0x800A7A3C; // type:function size:0x188 scope:local +PlayerFall = .text:0x800A7BC4; // type:function size:0x1C8 scope:local +PlayerWaitSpeak = .text:0x800A7D8C; // type:function size:0xEC scope:local +PlayerDiceFall = .text:0x800A7E78; // type:function size:0x1A8 scope:local +PlayerDiceRoll = .text:0x800A8020; // type:function size:0x454 scope:local +PlayerDiceNumShow = .text:0x800A8474; // type:function size:0xD8 scope:local +PlayerDiceNumHide = .text:0x800A854C; // type:function size:0x250 scope:local +SetPlayerStartState = .text:0x800A879C; // type:function size:0xC8 scope:local +GetPlayerStartState = .text:0x800A8864; // type:function size:0x3C scope:local +ExecStartRoll = .text:0x800A88A0; // type:function size:0x6D4 scope:local +InitCamera = .text:0x800A8F74; // type:function size:0x318 scope:local +InitHost = .text:0x800A928C; // type:function size:0xA4 scope:local +CreateTapWin = .text:0x800A9330; // type:function size:0xDC scope:local +OrderPlayers = .text:0x800A940C; // type:function size:0x21C scope:local +BoardLast5Exec = .text:0x800A9628; // type:function size:0x84 +DestroyLast5 = .text:0x800A96AC; // type:function size:0x30 scope:local +ExecLast5 = .text:0x800A96DC; // type:function size:0x1D4 scope:local +CreateLast5 = .text:0x800A98B0; // type:function size:0x184 scope:local +KillLast5 = .text:0x800A9A34; // type:function size:0x48 scope:local +InitHost = .text:0x800A9A7C; // type:function size:0x10C scope:local +KillHost = .text:0x800A9B88; // type:function size:0xA4 scope:local +Last5Main = .text:0x800A9C2C; // type:function size:0xCC0 scope:local +CheckJump = .text:0x800AA8EC; // type:function size:0xA4 scope:local +CreateLotteryDrawWheel = .text:0x800AA990; // type:function size:0x1FC scope:local +CreateLotteryDraw = .text:0x800AAB8C; // type:function size:0xD4 scope:local +UpdateLotteryDraw = .text:0x800AAC60; // type:function size:0x170 scope:local +SetLotteryDrawState = .text:0x800AADD0; // type:function size:0x88 scope:local +GetLotteryDrawState = .text:0x800AAE58; // type:function size:0x20 scope:local +KillLotteryDrawWheel = .text:0x800AAE78; // type:function size:0x24 scope:local +UpdateLotteryDrawWheel = .text:0x800AAE9C; // type:function size:0x2D0 scope:local +SetLotteryDrawWheelState = .text:0x800AB16C; // type:function size:0x1D8 scope:local +ExecLotteryDraw = .text:0x800AB344; // type:function size:0x950 scope:local +KillLotteryTicket = .text:0x800ABC94; // type:function size:0x4C scope:local +InitLotteryTicket = .text:0x800ABCE0; // type:function size:0x488 scope:local +UpdateLotteryTicket = .text:0x800AC168; // type:function size:0x2A4 scope:local +SetLotteryTicketState = .text:0x800AC40C; // type:function size:0x1C0 scope:local +GetLotteryTicketPlayer = .text:0x800AC5CC; // type:function size:0x7C scope:local +CheckLotteryTicket = .text:0x800AC648; // type:function size:0x78 scope:local +UpdateLotteryTicketMatch = .text:0x800AC6C0; // type:function size:0xB0 scope:local +StartHostMove = .text:0x800AC770; // type:function size:0x1CC scope:local +ExecHostMove = .text:0x800AC93C; // type:function size:0x228 scope:local +CheckHostMove = .text:0x800ACB64; // type:function size:0x1C scope:local +CreateStopWin = .text:0x800ACB80; // type:function size:0xC0 scope:local +CreateLast5Roulette = .text:0x800ACC40; // type:function size:0x180 scope:local +UpdateLast5Roulette = .text:0x800ACDC0; // type:function size:0x2B0 scope:local +SetLast5RouletteFade = .text:0x800AD070; // type:function size:0x44 scope:local +SetLast5RouletteState = .text:0x800AD0B4; // type:function size:0x38 scope:local +GetLast5RouletteState = .text:0x800AD0EC; // type:function size:0x38 scope:local +GetLast5RouletteResult = .text:0x800AD124; // type:function size:0x44 scope:local +CreateTeamResult = .text:0x800AD168; // type:function size:0x2B4 scope:local +CreateTeamResultWork = .text:0x800AD41C; // type:function size:0x340 scope:local +SetTeamResultTarget = .text:0x800AD75C; // type:function size:0x58 scope:local +GetTeamResultTarget = .text:0x800AD7B4; // type:function size:0x58 scope:local +KillTeamResult = .text:0x800AD80C; // type:function size:0x38 scope:local +UpdateTeamResult = .text:0x800AD844; // type:function size:0x260 scope:local +BoardPauseStart = .text:0x800ADAA4; // type:function size:0x88 +PauseExit = .text:0x800ADB2C; // type:function size:0x3C0 scope:local +PauseProcess = .text:0x800ADEEC; // type:function size:0x108 scope:local +CreatePauseScreen = .text:0x800ADFF4; // type:function size:0xABC scope:local +DeletePauseScreen = .text:0x800AEAB0; // type:function size:0x168 scope:local +SetBoxVisible = .text:0x800AEC18; // type:function size:0x58 scope:local +PauseConfigObjFunc = .text:0x800AEC70; // type:function size:0x4F4 scope:local +UpdatePauseText = .text:0x800AF164; // type:function size:0x310 scope:local +InitPauseQuit = .text:0x800AF474; // type:function size:0x264 scope:local +PauseQuitProcess = .text:0x800AF6D8; // type:function size:0x110 scope:local +DeletePauseQuit = .text:0x800AF7E8; // type:function size:0x48 scope:local +UpdatePadConfig = .text:0x800AF830; // type:function size:0xD4 scope:local +CreatePadConfig = .text:0x800AF904; // type:function size:0x1CC scope:local +ScrollInPadConfig = .text:0x800AFAD0; // type:function size:0x178 scope:local +CursorMovePadConfig = .text:0x800AFC48; // type:function size:0x238 scope:local +ChangeDiffPadConfig = .text:0x800AFE80; // type:function size:0x3B0 scope:local +ScrollOutPadConfig = .text:0x800B0230; // type:function size:0x154 scope:local +UpdatePauseBox = .text:0x800B0384; // type:function size:0x390 scope:local +UpdatePauseBoxExt = .text:0x800B0714; // type:function size:0x3E4 scope:local +ExecPauseConfig = .text:0x800B0AF8; // type:function size:0x240 scope:local +CreatePauseControlWin = .text:0x800B0D38; // type:function size:0x210 scope:local +DeletePauseControlWin = .text:0x800B0F48; // type:function size:0x70 scope:local +WaitPauseInput = .text:0x800B0FB8; // type:function size:0x1B8 scope:local +ShowPauseConfig = .text:0x800B1170; // type:function size:0x12C scope:local +CreatePadConfigSprite = .text:0x800B129C; // type:function size:0x1A4 scope:local +ShowPadConfigSprite = .text:0x800B1440; // type:function size:0x10C scope:local +PauseCreateNumber = .text:0x800B154C; // type:function size:0xDC scope:local +BoardPauseActiveCheck = .text:0x800B1628; // type:function size:0x34 +BoardPauseReqCheck = .text:0x800B165C; // type:function size:0x12C +CheckPort = .text:0x800B1788; // type:function size:0x4C scope:local +RotateBox = .text:0x800B17D4; // type:function size:0xC0 scope:local +SearchPathNodeSpace = .text:0x800B1894; // type:function size:0x60 scope:local +InitPathNode = .text:0x800B18F4; // type:function size:0x180 scope:local +FindChildNode = .text:0x800B1A74; // type:function size:0xE4 scope:local +GetNumValidLinks = .text:0x800B1B58; // type:function size:0xB4 scope:local +AddValidLinks = .text:0x800B1C0C; // type:function size:0xD0 scope:local +CheckPathSpace = .text:0x800B1CDC; // type:function size:0x30 scope:local +FindValidLink = .text:0x800B1D0C; // type:function size:0xAC scope:local +CheckEndSpace = .text:0x800B1DB8; // type:function size:0xF0 scope:local +BoardComPathShortcutLenGet = .text:0x800B1EA8; // type:function size:0x74C +BoardComPathBestGet = .text:0x800B25F4; // type:function size:0x3E4 +BoardComPathLenGet = .text:0x800B29D8; // type:function size:0x65C +CheckPath = .text:0x800B3034; // type:function size:0x488 scope:local +BoardComPathBestGetFlag = .text:0x800B34BC; // type:function size:0x45C +CheckPathFlag = .text:0x800B3918; // type:function size:0x4E0 scope:local +TutorialProcFunc = .text:0x800B3DF8; // type:function size:0x34 scope:local +BoardTutorialInit = .text:0x800B3E2C; // type:function size:0x80 +BoardTutorialKill = .text:0x800B3EAC; // type:function size:0x4C +BoardTutorialHookSet = .text:0x800B3EF8; // type:function size:0x8 +BoardTutorialHookExec = .text:0x800B3F00; // type:function size:0x44 +BoardTutorialPlayerInit = .text:0x800B3F44; // type:function size:0x78 +BoardTutorialWorkSave = .text:0x800B3FBC; // type:function size:0x10C +BoardTutorialWorkRestore = .text:0x800B40C8; // type:function size:0xBC +BoardTutorialDirInputSet = .text:0x800B4184; // type:function size:0x10 +BoardTutorialBlockSetPos = .text:0x800B4194; // type:function size:0x40 +BoardTutorialItemSet = .text:0x800B41D4; // type:function size:0x8 +BoardTutorialHostSet = .text:0x800B41DC; // type:function size:0x8 +BoardTutorialHostHide = .text:0x800B41E4; // type:function size:0x30 +PPCMfmsr = .text:0x800B4214; // type:function size:0x8 scope:global +PPCMtmsr = .text:0x800B421C; // type:function size:0x8 scope:global +PPCMfhid0 = .text:0x800B4224; // type:function size:0x8 scope:global +PPCMthid0 = .text:0x800B422C; // type:function size:0x8 +PPCMfl2cr = .text:0x800B4234; // type:function size:0x8 scope:global +PPCMtl2cr = .text:0x800B423C; // type:function size:0x8 scope:global +PPCMtdec = .text:0x800B4244; // type:function size:0x8 scope:weak +PPCSync = .text:0x800B424C; // type:function size:0x8 +PPCHalt = .text:0x800B4254; // type:function size:0x14 scope:weak +PPCMfhid2 = .text:0x800B4268; // type:function size:0x8 scope:global +PPCMthid2 = .text:0x800B4270; // type:function size:0x8 scope:global +PPCMfwpar = .text:0x800B4278; // type:function size:0xC +PPCMtwpar = .text:0x800B4284; // type:function size:0x8 scope:global +PPCDisableSpeculation = .text:0x800B428C; // type:function size:0x28 scope:global +PPCSetFpNonIEEEMode = .text:0x800B42B4; // type:function size:0x8 scope:global +OSGetConsoleType = .text:0x800B42BC; // type:function size:0x28 scope:global +ClearArena = .text:0x800B42E4; // type:function size:0x128 scope:local +InquiryCallback = .text:0x800B440C; // type:function size:0x3C scope:local +OSInit = .text:0x800B4448; // type:function size:0x3B8 scope:global +OSExceptionInit = .text:0x800B4800; // type:function size:0x280 scope:local +__OSDBINTSTART = .text:0x800B4A80; // type:label scope:global +__OSDBIntegrator = .text:0x800B4A80; // type:function size:0x24 scope:local +__OSDBINTEND = .text:0x800B4AA4; // type:label scope:global +__OSDBJump = .text:0x800B4AA4; // type:function size:0x4 scope:local +__OSDBJUMPEND = .text:0x800B4AA8; // type:label scope:global +__OSSetExceptionHandler = .text:0x800B4AA8; // type:function size:0x1C scope:global +__OSGetExceptionHandler = .text:0x800B4AC4; // type:function size:0x14 scope:global +__OSEVStart = .text:0x800B4AD8; // type:label scope:global +OSExceptionVector = .text:0x800B4AD8; // type:function size:0x9C scope:local +__DBVECTOR = .text:0x800B4B30; // type:label scope:global data:4byte +__OSEVSetNumber = .text:0x800B4B40; // type:label scope:global data:4byte +__OSEVEnd = .text:0x800B4B70; // type:label scope:global +OSDefaultExceptionHandler = .text:0x800B4B74; // type:function size:0x58 scope:global +__OSPSInit = .text:0x800B4BCC; // type:function size:0x38 scope:global +__OSGetDIConfig = .text:0x800B4C04; // type:function size:0x14 +OSInitAlarm = .text:0x800B4C18; // type:function size:0x4C scope:global +OSCreateAlarm = .text:0x800B4C64; // type:function size:0xC scope:global +InsertAlarm = .text:0x800B4C70; // type:function size:0x250 scope:local +OSSetAlarm = .text:0x800B4EC0; // type:function size:0x68 scope:global +fn_800B4F28 = .text:0x800B4F28; // type:function size:0x11C +DecrementerExceptionCallback = .text:0x800B5044; // type:function size:0x230 scope:local +DecrementerExceptionHandler = .text:0x800B5274; // type:function size:0x50 scope:local +fn_800B52C4 = .text:0x800B52C4; // type:function size:0xAC +OSAllocFromHeap = .text:0x800B5370; // type:function size:0xFC +OSAllocFixed = .text:0x800B546C; // type:function size:0x284 +OSFreeToHeap = .text:0x800B56F0; // type:function size:0x7C +OSSetCurrentHeap = .text:0x800B576C; // type:function size:0x10 +OSInitAlloc = .text:0x800B577C; // type:function size:0x70 +OSCreateHeap = .text:0x800B57EC; // type:function size:0x6C +OSCheckHeap = .text:0x800B5858; // type:function size:0x360 +OSDumpHeap = .text:0x800B5BB8; // type:function size:0x104 +OSGetArenaHi = .text:0x800B5CBC; // type:function size:0x8 scope:global +OSGetArenaLo = .text:0x800B5CC4; // type:function size:0x8 scope:global +OSSetArenaHi = .text:0x800B5CCC; // type:function size:0x8 scope:global +OSSetArenaLo = .text:0x800B5CD4; // type:function size:0x8 scope:global +__OSInitAudioSystem = .text:0x800B5CDC; // type:function size:0x1BC scope:global +__OSStopAudioSystem = .text:0x800B5E98; // type:function size:0xD8 scope:global +DCEnable = .text:0x800B5F70; // type:function size:0x14 scope:global +DCInvalidateRange = .text:0x800B5F84; // type:function size:0x30 scope:global +DCFlushRange = .text:0x800B5FB4; // type:function size:0x34 scope:global +DCStoreRange = .text:0x800B5FE8; // type:function size:0x34 +DCFlushRangeNoSync = .text:0x800B601C; // type:function size:0x30 scope:global +DCStoreRangeNoSync = .text:0x800B604C; // type:function size:0x30 +DCZeroRange = .text:0x800B607C; // type:function size:0x30 +ICInvalidateRange = .text:0x800B60AC; // type:function size:0x38 scope:global +ICFlashInvalidate = .text:0x800B60E4; // type:function size:0x10 scope:global +ICEnable = .text:0x800B60F4; // type:function size:0x14 scope:global +fn_800B6108 = .text:0x800B6108; // type:function size:0xCC +LCEnable = .text:0x800B61D4; // type:function size:0x38 +LCDisable = .text:0x800B620C; // type:function size:0x28 scope:global +LCStoreBlocks = .text:0x800B6234; // type:function size:0x24 +LCStoreData = .text:0x800B6258; // type:function size:0xAC +LCQueueWait = .text:0x800B6304; // type:function size:0x18 +L2GlobalInvalidate = .text:0x800B631C; // type:function size:0x98 scope:global +DMAErrorHandler = .text:0x800B63B4; // type:function size:0x160 scope:global +__OSCacheInit = .text:0x800B6514; // type:function size:0xF4 scope:global +__OSLoadFPUContext = .text:0x800B6608; // type:function size:0x124 scope:local +__OSSaveFPUContext = .text:0x800B672C; // type:function size:0x128 scope:local +OSSetCurrentContext = .text:0x800B6854; // type:function size:0x5C scope:global +fn_800B68B0 = .text:0x800B68B0; // type:function size:0xC +fn_800B68BC = .text:0x800B68BC; // type:function size:0x80 +OSLoadContext = .text:0x800B693C; // type:function size:0xD8 scope:global +OSClearContext = .text:0x800B6A14; // type:function size:0x24 scope:global +fn_800B6A38 = .text:0x800B6A38; // type:function size:0xBC +OSDumpContext = .text:0x800B6AF4; // type:function size:0x2A8 scope:global +OSSwitchFPUContext = .text:0x800B6D9C; // type:function size:0x84 scope:local +__OSContextInit = .text:0x800B6E20; // type:function size:0x48 scope:global +OSReport = .text:0x800B6E68; // type:function size:0x80 scope:global +OSSetErrorHandler = .text:0x800B6EE8; // type:function size:0x1C scope:global +__OSUnhandledException = .text:0x800B6F04; // type:function size:0x200 scope:global +fn_800B7104 = .text:0x800B7104; // type:function size:0x58 +OSDisableInterrupts = .text:0x800B715C; // type:function size:0x14 scope:global +OSEnableInterrupts = .text:0x800B7170; // type:function size:0x14 scope:global +OSRestoreInterrupts = .text:0x800B7184; // type:function size:0x24 scope:global +__OSSetInterruptHandler = .text:0x800B71A8; // type:function size:0x1C scope:global +fn_800B71C4 = .text:0x800B71C4; // type:function size:0x14 +__OSInterruptInit = .text:0x800B71D8; // type:function size:0x74 scope:global +fn_800B724C = .text:0x800B724C; // type:function size:0x2D8 +__OSMaskInterrupts = .text:0x800B7524; // type:function size:0x88 scope:global +__OSUnmaskInterrupts = .text:0x800B75AC; // type:function size:0x88 scope:global +fn_800B7634 = .text:0x800B7634; // type:function size:0x344 +ExternalInterruptHandler = .text:0x800B7978; // type:function size:0x50 scope:local +OSNotifyLink = .text:0x800B79C8; // type:function size:0x4 +OSNotifyUnlink = .text:0x800B79CC; // type:function size:0x4 +fn_800B79D0 = .text:0x800B79D0; // type:function size:0x274 +OSLink = .text:0x800B7C44; // type:function size:0x250 +fn_800B7E94 = .text:0x800B7E94; // type:function size:0x20C +OSUnlink = .text:0x800B80A0; // type:function size:0x94 +__OSModuleInit = .text:0x800B8134; // type:function size:0x18 scope:global +OSInitMessageQueue = .text:0x800B814C; // type:function size:0x60 +OSGetPhysicalMemSize = .text:0x800B81AC; // type:function size:0xC +OSGetConsoleSimulatedMemSize = .text:0x800B81B8; // type:function size:0xC +fn_800B81C4 = .text:0x800B81C4; // type:function size:0x3C +MEMIntrruptHandler = .text:0x800B8200; // type:function size:0x6C scope:local +Config24MB = .text:0x800B826C; // type:function size:0x80 scope:local +Config48MB = .text:0x800B82EC; // type:function size:0x80 scope:local +RealMode = .text:0x800B836C; // type:function size:0x18 scope:local +__OSInitMemoryProtection = .text:0x800B8384; // type:function size:0x120 scope:global +fn_800B84A4 = .text:0x800B84A4; // type:function size:0x70 +fn_800B8514 = .text:0x800B8514; // type:function size:0x2C +fn_800B8540 = .text:0x800B8540; // type:function size:0x14 +fn_800B8554 = .text:0x800B8554; // type:function size:0xC +__OSReboot = .text:0x800B8560; // type:function size:0x1C0 scope:global +OSRegisterResetFunction = .text:0x800B8720; // type:function size:0x84 scope:global +Reset = .text:0x800B87A4; // type:function size:0x70 scope:local +__OSDoHotReset = .text:0x800B8814; // type:function size:0x48 +OSResetSystem = .text:0x800B885C; // type:function size:0x278 scope:global +OSGetResetCode = .text:0x800B8AD4; // type:function size:0x30 scope:global +__OSResetSWInterruptHandler = .text:0x800B8B04; // type:function size:0xF4 scope:global +OSGetResetButtonState = .text:0x800B8BF8; // type:function size:0x298 +fn_800B8E90 = .text:0x800B8E90; // type:function size:0x60 +fn_800B8EF0 = .text:0x800B8EF0; // type:function size:0x118 +__OSInitSram = .text:0x800B9008; // type:function size:0x134 scope:global +__OSLockSram = .text:0x800B913C; // type:function size:0x5C scope:global +__OSLockSramEx = .text:0x800B9198; // type:function size:0x5C scope:global +fn_800B91F4 = .text:0x800B91F4; // type:function size:0x308 +__OSUnlockSram = .text:0x800B94FC; // type:function size:0x24 scope:global +__OSUnlockSramEx = .text:0x800B9520; // type:function size:0x24 scope:global +__OSSyncSram = .text:0x800B9544; // type:function size:0x10 scope:global +OSGetSoundMode = .text:0x800B9554; // type:function size:0x80 +OSSetSoundMode = .text:0x800B95D4; // type:function size:0xA4 +OSGetProgressiveMode = .text:0x800B9678; // type:function size:0x70 +OSSetProgressiveMode = .text:0x800B96E8; // type:function size:0xA4 +OSGetLanguage = .text:0x800B978C; // type:function size:0x6C +OSGetWirelessID = .text:0x800B97F8; // type:function size:0x84 +OSSetWirelessID = .text:0x800B987C; // type:function size:0xAC +OSInitStopwatch = .text:0x800B9928; // type:function size:0x2C +OSStartStopwatch = .text:0x800B9954; // type:function size:0x3C +OSStopStopwatch = .text:0x800B9990; // type:function size:0xCC +OSCheckStopwatch = .text:0x800B9A5C; // type:function size:0x70 +OSResetStopwatch = .text:0x800B9ACC; // type:function size:0x28 +OSDumpStopwatch = .text:0x800B9AF4; // type:function size:0x1A4 +__OSSystemCallVectorStart = .text:0x800B9C98; // type:label scope:global +fn_800B9C98 = .text:0x800B9C98; // type:function size:0x20 +__OSSystemCallVectorEnd = .text:0x800B9CB4; // type:label scope:global +__OSInitSystemCall = .text:0x800B9CB8; // type:function size:0x64 scope:global +__OSThreadInit = .text:0x800B9D1C; // type:function size:0x128 scope:global +OSInitThreadQueue = .text:0x800B9E44; // type:function size:0x10 scope:global +OSGetCurrentThread = .text:0x800B9E54; // type:function size:0xC +OSDisableScheduler = .text:0x800B9E60; // type:function size:0x40 scope:global +OSEnableScheduler = .text:0x800B9EA0; // type:function size:0x40 scope:global +fn_800B9EE0 = .text:0x800B9EE0; // type:function size:0x68 +__OSGetEffectivePriority = .text:0x800B9F48; // type:function size:0x3C +fn_800B9F84 = .text:0x800B9F84; // type:function size:0x1C0 +SelectThread = .text:0x800BA144; // type:function size:0x200 scope:local +__OSReschedule = .text:0x800BA344; // type:function size:0x30 scope:global +OSYieldThread = .text:0x800BA374; // type:function size:0x3C +OSCreateThread = .text:0x800BA3B0; // type:function size:0x120 +OSExitThread = .text:0x800BA4D0; // type:function size:0xE4 +OSCancelThread = .text:0x800BA5B4; // type:function size:0x1BC scope:global +OSResumeThread = .text:0x800BA770; // type:function size:0x288 +OSSuspendThread = .text:0x800BA9F8; // type:function size:0x170 +OSSleepThread = .text:0x800BAB68; // type:function size:0xEC +OSWakeupThread = .text:0x800BAC54; // type:function size:0x104 +OSSetIdleFunction = .text:0x800BAD58; // type:function size:0x90 +OSGetTime = .text:0x800BADE8; // type:function size:0x18 scope:global +OSGetTick = .text:0x800BAE00; // type:function size:0x8 scope:global +__OSGetSystemTime = .text:0x800BAE08; // type:function size:0x64 scope:global +fn_800BAE6C = .text:0x800BAE6C; // type:function size:0x19C +OSTicksToCalendarTime = .text:0x800BB008; // type:function size:0x204 +__init_user = .text:0x800BB20C; // type:function size:0x20 scope:global +__init_cpp = .text:0x800BB22C; // type:function size:0x54 scope:local +_ExitProcess = .text:0x800BB280; // type:function size:0x20 scope:global +DBInit = .text:0x800BB2A0; // type:function size:0x28 scope:global +fn_800BB2C8 = .text:0x800BB2C8; // type:function size:0x48 +__DBExceptionDestination = .text:0x800BB310; // type:function size:0x10 scope:global +__DBIsExceptionMarked = .text:0x800BB320; // type:function size:0x1C scope:global +DBPrintf = .text:0x800BB33C; // type:function size:0x50 scope:global +PSMTXIdentity = .text:0x800BB38C; // type:function size:0x2C +PSMTXCopy = .text:0x800BB3B8; // type:function size:0x34 +PSMTXConcat = .text:0x800BB3EC; // type:function size:0xCC +PSMTXTranspose = .text:0x800BB4B8; // type:function size:0x50 +PSMTXInverse = .text:0x800BB508; // type:function size:0xF8 +PSMTXInvXpose = .text:0x800BB600; // type:function size:0xC8 +PSMTXRotRad = .text:0x800BB6C8; // type:function size:0x70 +PSMTXRotTrig = .text:0x800BB738; // type:function size:0xA8 +PSMTXRotAxisRad = .text:0x800BB7E0; // type:function size:0x104 +PSMTXTrans = .text:0x800BB8E4; // type:function size:0x34 +PSMTXScale = .text:0x800BB918; // type:function size:0x28 +PSMTXQuat = .text:0x800BB940; // type:function size:0xA4 +C_MTXLookAt = .text:0x800BB9E4; // type:function size:0x18C +C_MTXLightPerspective = .text:0x800BBB70; // type:function size:0xCC +PSMTXMultVec = .text:0x800BBC3C; // type:function size:0x54 +PSMTXMultVecArray = .text:0x800BBC90; // type:function size:0x8C +PSMTXMultVecSR = .text:0x800BBD1C; // type:function size:0x54 +C_MTXPerspective = .text:0x800BBD70; // type:function size:0xD0 +C_MTXOrtho = .text:0x800BBE40; // type:function size:0x98 +PSVECAdd = .text:0x800BBED8; // type:function size:0x24 +PSVECSubtract = .text:0x800BBEFC; // type:function size:0x24 +PSVECScale = .text:0x800BBF20; // type:function size:0x1C +PSVECNormalize = .text:0x800BBF3C; // type:function size:0x44 +PSVECSquareMag = .text:0x800BBF80; // type:function size:0x18 +PSVECMag = .text:0x800BBF98; // type:function size:0x3C +PSVECDotProduct = .text:0x800BBFD4; // type:function size:0x20 +PSVECCrossProduct = .text:0x800BBFF4; // type:function size:0x3C +C_VECHalfAngle = .text:0x800BC030; // type:function size:0xD8 +C_VECReflect = .text:0x800BC108; // type:function size:0xD4 +PSVECSquareDistance = .text:0x800BC1DC; // type:function size:0x28 +PSVECDistance = .text:0x800BC204; // type:function size:0x4C +C_QUATAdd = .text:0x800BC250; // type:function size:0x44 +PSQUATAdd = .text:0x800BC294; // type:function size:0x24 +PSQUATMultiply = .text:0x800BC2B8; // type:function size:0x5C +PSQUATNormalize = .text:0x800BC314; // type:function size:0x54 +PSQUATInverse = .text:0x800BC368; // type:function size:0x50 +C_QUATRotAxisRad = .text:0x800BC3B8; // type:function size:0x8C +C_QUATMtx = .text:0x800BC444; // type:function size:0x258 +C_QUATSlerp = .text:0x800BC69C; // type:function size:0x174 +PSMTXReorder = .text:0x800BC810; // type:function size:0x4C +PSMTXROMultVecArray = .text:0x800BC85C; // type:function size:0x118 +__DVDInitWA = .text:0x800BC974; // type:function size:0x40 scope:global +__DVDInterruptHandler = .text:0x800BC9B4; // type:function size:0x2F4 scope:global +fn_800BCCA8 = .text:0x800BCCA8; // type:function size:0x84 +AlarmHandlerForTimeout = .text:0x800BCD2C; // type:function size:0x70 scope:local +fn_800BCD9C = .text:0x800BCD9C; // type:function size:0x110 +fn_800BCEAC = .text:0x800BCEAC; // type:function size:0x80 +fn_800BCF2C = .text:0x800BCF2C; // type:function size:0x298 +fn_800BD1C4 = .text:0x800BD1C4; // type:function size:0x94 +DVDLowWaitCoverClose = .text:0x800BD258; // type:function size:0x2C scope:global +fn_800BD284 = .text:0x800BD284; // type:function size:0xA4 +DVDLowStopMotor = .text:0x800BD328; // type:function size:0x8C scope:global +fn_800BD3B4 = .text:0x800BD3B4; // type:function size:0x8C +fn_800BD440 = .text:0x800BD440; // type:function size:0x9C +fn_800BD4DC = .text:0x800BD4DC; // type:function size:0x98 +fn_800BD574 = .text:0x800BD574; // type:function size:0x8C +fn_800BD600 = .text:0x800BD600; // type:function size:0x9C +DVDLowReset = .text:0x800BD69C; // type:function size:0xBC scope:global +fn_800BD758 = .text:0x800BD758; // type:function size:0x14 +fn_800BD76C = .text:0x800BD76C; // type:function size:0x18 +__DVDLowSetWAType = .text:0x800BD784; // type:function size:0x44 scope:global +__DVDFSInit = .text:0x800BD7C8; // type:function size:0x38 scope:global +DVDConvertPathToEntrynum = .text:0x800BD800; // type:function size:0x2F4 +DVDFastOpen = .text:0x800BDAF4; // type:function size:0x74 +DVDOpen = .text:0x800BDB68; // type:function size:0xC8 +DVDClose = .text:0x800BDC30; // type:function size:0x24 +fn_800BDC54 = .text:0x800BDC54; // type:function size:0x160 +DVDGetCurrentDir = .text:0x800BDDB4; // type:function size:0xC4 +DVDReadAsyncPrio = .text:0x800BDE78; // type:function size:0xC0 +fn_800BDF38 = .text:0x800BDF38; // type:function size:0x30 +DVDReadPrio = .text:0x800BDF68; // type:function size:0x118 +fn_800BE080 = .text:0x800BE080; // type:function size:0x24 +DVDInit = .text:0x800BE0A4; // type:function size:0xFC scope:global +fn_800BE1A0 = .text:0x800BE1A0; // type:function size:0x54 +fn_800BE1F4 = .text:0x800BE1F4; // type:function size:0x80 +cbForStateError = .text:0x800BE274; // type:function size:0xA8 scope:local +fn_800BE31C = .text:0x800BE31C; // type:function size:0x9C +fn_800BE3B8 = .text:0x800BE3B8; // type:function size:0x28 +fn_800BE3E0 = .text:0x800BE3E0; // type:function size:0xB4 +fn_800BE494 = .text:0x800BE494; // type:function size:0x294 +fn_800BE728 = .text:0x800BE728; // type:function size:0x68 +fn_800BE790 = .text:0x800BE790; // type:function size:0x98 +fn_800BE828 = .text:0x800BE828; // type:function size:0x28 +fn_800BE850 = .text:0x800BE850; // type:function size:0x158 +fn_800BE9A8 = .text:0x800BE9A8; // type:function size:0xE4 +fn_800BEA8C = .text:0x800BEA8C; // type:function size:0x34 +fn_800BEAC0 = .text:0x800BEAC0; // type:function size:0x38 +fn_800BEAF8 = .text:0x800BEAF8; // type:function size:0x114 +fn_800BEC0C = .text:0x800BEC0C; // type:function size:0xA4 +fn_800BECB0 = .text:0x800BECB0; // type:function size:0xFC +AlarmHandler = .text:0x800BEDAC; // type:function size:0x44 scope:local +fn_800BEDF0 = .text:0x800BEDF0; // type:function size:0xCC +fn_800BEEBC = .text:0x800BEEBC; // type:function size:0x30 +fn_800BEEEC = .text:0x800BEEEC; // type:function size:0x70 +fn_800BEF5C = .text:0x800BEF5C; // type:function size:0x28 +cbForStateMotorStopped = .text:0x800BEF84; // type:function size:0xE4 scope:local +stateReady = .text:0x800BF068; // type:function size:0x248 scope:local +stateBusy = .text:0x800BF2B0; // type:function size:0x2C0 scope:local +fn_800BF570 = .text:0x800BF570; // type:function size:0x5D4 +fn_800BFB44 = .text:0x800BFB44; // type:function size:0xDC +fn_800BFC20 = .text:0x800BFC20; // type:function size:0xD0 +DVDReadDiskID = .text:0x800BFCF0; // type:function size:0xD4 scope:global +DVDInquiryAsync = .text:0x800BFDC4; // type:function size:0xD0 scope:global +DVDReset = .text:0x800BFE94; // type:function size:0x44 scope:global +DVDGetCommandBlockStatus = .text:0x800BFED8; // type:function size:0x4C +DVDGetDriveStatus = .text:0x800BFF24; // type:function size:0xAC scope:global +DVDSetAutoInvalidation = .text:0x800BFFD0; // type:function size:0x10 +DVDCancelAsync = .text:0x800BFFE0; // type:function size:0x270 +DVDCancel = .text:0x800C0250; // type:function size:0xAC +fn_800C02FC = .text:0x800C02FC; // type:function size:0x24 +DVDGetCurrentDiskID = .text:0x800C0320; // type:function size:0x8 +DVDCheckDisk = .text:0x800C0328; // type:function size:0xE4 +__DVDPrepareResetAsync = .text:0x800C040C; // type:function size:0x11C +__DVDClearWaitingQueue = .text:0x800C0528; // type:function size:0x38 scope:global +__DVDPushWaitingQueue = .text:0x800C0560; // type:function size:0x68 scope:global +__DVDPopWaitingQueue = .text:0x800C05C8; // type:function size:0xA0 scope:global +__DVDCheckWaitingQueue = .text:0x800C0668; // type:function size:0x58 scope:global +__DVDDequeueWaitingQueue = .text:0x800C06C0; // type:function size:0x60 +ErrorCode2Num = .text:0x800C0720; // type:function size:0x11C scope:local +__DVDStoreErrorCode = .text:0x800C083C; // type:function size:0x7C scope:global +cb = .text:0x800C08B8; // type:function size:0xD8 scope:local +__fstLoad = .text:0x800C0990; // type:function size:0x168 scope:global +fn_800C0AF8 = .text:0x800C0AF8; // type:function size:0x228 +VISetPreRetraceCallback = .text:0x800C0D20; // type:function size:0x44 +VISetPostRetraceCallback = .text:0x800C0D64; // type:function size:0x44 +fn_800C0DA8 = .text:0x800C0DA8; // type:function size:0x90 +__VIInit = .text:0x800C0E38; // type:function size:0x1F8 +VIInit = .text:0x800C1030; // type:function size:0x478 +VIWaitForRetrace = .text:0x800C14A8; // type:function size:0x54 +fn_800C14FC = .text:0x800C14FC; // type:function size:0x2D4 +fn_800C17D0 = .text:0x800C17D0; // type:function size:0x1A0 +VIConfigure = .text:0x800C1970; // type:function size:0x79C +VIFlush = .text:0x800C210C; // type:function size:0x11C +VISetNextFrameBuffer = .text:0x800C2228; // type:function size:0x6C +VISetBlack = .text:0x800C2294; // type:function size:0x7C +VIGetRetraceCount = .text:0x800C2310; // type:function size:0x8 +fn_800C2318 = .text:0x800C2318; // type:function size:0x68 +VIGetNextField = .text:0x800C2380; // type:function size:0xA8 +VIGetCurrentLine = .text:0x800C2428; // type:function size:0x98 +VIGetTvFormat = .text:0x800C24C0; // type:function size:0x7C scope:global +VIGetDTVStatus = .text:0x800C253C; // type:function size:0x3C +DEMOGetRenderModeObj = .text:0x800C2578; // type:function size:0x8 +DEMOInitCaption = .text:0x800C2580; // type:function size:0x228 +DEMOPuts = .text:0x800C27A8; // type:function size:0x310 +DEMOPrintf = .text:0x800C2AB8; // type:function size:0xC4 +DEMOWriteStats = .text:0x800C2B7C; // type:function size:0x394 +DEMOUpdateStats = .text:0x800C2F10; // type:function size:0x58 +DEMOPrintStats = .text:0x800C2F68; // type:function size:0x96C +fn_800C38D4 = .text:0x800C38D4; // type:function size:0x130 +PADClamp = .text:0x800C3A04; // type:function size:0x108 +fn_800C3B0C = .text:0x800C3B0C; // type:function size:0x1A4 +fn_800C3CB0 = .text:0x800C3CB0; // type:function size:0xC4 +fn_800C3D74 = .text:0x800C3D74; // type:function size:0xC0 +fn_800C3E34 = .text:0x800C3E34; // type:function size:0xD8 +fn_800C3F0C = .text:0x800C3F0C; // type:function size:0x32C +fn_800C4238 = .text:0x800C4238; // type:function size:0x134 +PADReset = .text:0x800C436C; // type:function size:0x100 +PADRecalibrate = .text:0x800C446C; // type:function size:0x104 +PADInit = .text:0x800C4570; // type:function size:0x210 +PADRead = .text:0x800C4780; // type:function size:0x3AC +PADControlMotor = .text:0x800C4B2C; // type:function size:0xA4 +PADSetSpec = .text:0x800C4BD0; // type:function size:0x60 +fn_800C4C30 = .text:0x800C4C30; // type:function size:0x174 +fn_800C4DA4 = .text:0x800C4DA4; // type:function size:0x174 +fn_800C4F18 = .text:0x800C4F18; // type:function size:0x3F8 +fn_800C5310 = .text:0x800C5310; // type:function size:0x194 +fn_800C54A4 = .text:0x800C54A4; // type:function size:0x60 +PADSetSamplingCallback = .text:0x800C5504; // type:function size:0x54 +__PADDisableRecalibration = .text:0x800C5558; // type:function size:0x7C scope:global +AIRegisterDMACallback = .text:0x800C55D4; // type:function size:0x44 +AIInitDMA = .text:0x800C5618; // type:function size:0x88 +AIStartDMA = .text:0x800C56A0; // type:function size:0x18 +AIStopDMA = .text:0x800C56B8; // type:function size:0x18 +AIGetDMAStartAddr = .text:0x800C56D0; // type:function size:0x1C +AISetStreamPlayState = .text:0x800C56EC; // type:function size:0xD8 +AIGetStreamPlayState = .text:0x800C57C4; // type:function size:0x10 +AISetDSPSampleRate = .text:0x800C57D4; // type:function size:0xE0 +AIGetDSPSampleRate = .text:0x800C58B4; // type:function size:0x14 +fn_800C58C8 = .text:0x800C58C8; // type:function size:0xD4 +AIGetStreamSampleRate = .text:0x800C599C; // type:function size:0x10 +AISetStreamVolLeft = .text:0x800C59AC; // type:function size:0x1C +AIGetStreamVolLeft = .text:0x800C59C8; // type:function size:0x10 +AISetStreamVolRight = .text:0x800C59D8; // type:function size:0x1C +AIGetStreamVolRight = .text:0x800C59F4; // type:function size:0x10 +AIInit = .text:0x800C5A04; // type:function size:0x164 +fn_800C5B68 = .text:0x800C5B68; // type:function size:0x7C +fn_800C5BE4 = .text:0x800C5BE4; // type:function size:0x90 +fn_800C5C74 = .text:0x800C5C74; // type:function size:0x58 +fn_800C5CCC = .text:0x800C5CCC; // type:function size:0x1E4 +fn_800C5EB0 = .text:0x800C5EB0; // type:function size:0x44 +fn_800C5EF4 = .text:0x800C5EF4; // type:function size:0x3C +fn_800C5F30 = .text:0x800C5F30; // type:function size:0xF0 +fn_800C6020 = .text:0x800C6020; // type:function size:0x68 +fn_800C6088 = .text:0x800C6088; // type:function size:0x74 +ARCheckInit = .text:0x800C60FC; // type:function size:0x8 +ARInit = .text:0x800C6104; // type:function size:0xBC +fn_800C61C0 = .text:0x800C61C0; // type:function size:0x4 +fn_800C61C4 = .text:0x800C61C4; // type:function size:0x8 +ARGetSize = .text:0x800C61CC; // type:function size:0x8 +fn_800C61D4 = .text:0x800C61D4; // type:function size:0x78 +fn_800C624C = .text:0x800C624C; // type:function size:0x914 +fn_800C6B60 = .text:0x800C6B60; // type:function size:0x100 +fn_800C6C60 = .text:0x800C6C60; // type:function size:0x4 +fn_800C6C64 = .text:0x800C6C64; // type:function size:0xCC +ARQInit = .text:0x800C6D30; // type:function size:0x68 +ARQPostRequest = .text:0x800C6D98; // type:function size:0x15C +fn_800C6EF4 = .text:0x800C6EF4; // type:function size:0x10 +fn_800C6F04 = .text:0x800C6F04; // type:function size:0x10 +fn_800C6F14 = .text:0x800C6F14; // type:function size:0x18 +fn_800C6F2C = .text:0x800C6F2C; // type:function size:0x14 +fn_800C6F40 = .text:0x800C6F40; // type:function size:0xB8 +fn_800C6FF8 = .text:0x800C6FF8; // type:function size:0x48 +fn_800C7040 = .text:0x800C7040; // type:function size:0x40 +fn_800C7080 = .text:0x800C7080; // type:function size:0x10 +fn_800C7090 = .text:0x800C7090; // type:function size:0x70 +fn_800C7100 = .text:0x800C7100; // type:function size:0x50 +fn_800C7150 = .text:0x800C7150; // type:function size:0x424 +fn_800C7574 = .text:0x800C7574; // type:function size:0x1A0 +fn_800C7714 = .text:0x800C7714; // type:function size:0x18C +fn_800C78A0 = .text:0x800C78A0; // type:function size:0xA0 +fn_800C7940 = .text:0x800C7940; // type:function size:0x94 +fn_800C79D4 = .text:0x800C79D4; // type:function size:0x7C +fn_800C7A50 = .text:0x800C7A50; // type:function size:0x24 +GXInit = .text:0x800C7A74; // type:function size:0x7CC scope:global +__GXInitGX = .text:0x800C8240; // type:function size:0x884 scope:global +fn_800C8AC4 = .text:0x800C8AC4; // type:function size:0x13C +GXInitFifoBase = .text:0x800C8C00; // type:function size:0x6C scope:global +fn_800C8C6C = .text:0x800C8C6C; // type:function size:0x70 +fn_800C8CDC = .text:0x800C8CDC; // type:function size:0xC +GXSetCPUFifo = .text:0x800C8CE8; // type:function size:0x110 scope:global +GXSetGPFifo = .text:0x800C8DF8; // type:function size:0x178 scope:global +fn_800C8F70 = .text:0x800C8F70; // type:function size:0x20 +fn_800C8F90 = .text:0x800C8F90; // type:function size:0xDC +__GXFifoInit = .text:0x800C906C; // type:function size:0x4C scope:global +fn_800C90B8 = .text:0x800C90B8; // type:function size:0x28 +fn_800C90E0 = .text:0x800C90E0; // type:function size:0x24 +fn_800C9104 = .text:0x800C9104; // type:function size:0x44 +fn_800C9148 = .text:0x800C9148; // type:function size:0x4C +fn_800C9194 = .text:0x800C9194; // type:function size:0x4C +fn_800C91E0 = .text:0x800C91E0; // type:function size:0xFC +GXGetCPUFifo = .text:0x800C92DC; // type:function size:0x8 +GXGetGPFifo = .text:0x800C92E4; // type:function size:0x8 +__GXXfVtxSpecs = .text:0x800C92EC; // type:function size:0x158 +GXSetVtxDesc = .text:0x800C9444; // type:function size:0x360 +__GXSetVCD = .text:0x800C97A4; // type:function size:0x54 +__GXCalculateVLim = .text:0x800C97F8; // type:function size:0x124 +GXClearVtxDesc = .text:0x800C991C; // type:function size:0x4C +GXSetVtxAttrFmt = .text:0x800C9968; // type:function size:0x35C +__GXSetVAT = .text:0x800C9CC4; // type:function size:0x9C +GXSetArray = .text:0x800C9D60; // type:function size:0x8C +GXInvalidateVtxCache = .text:0x800C9DEC; // type:function size:0x10 +GXSetTexCoordGen2 = .text:0x800C9DFC; // type:function size:0x2D0 +GXSetNumTexGens = .text:0x800CA0CC; // type:function size:0x48 +GXSetMisc = .text:0x800CA114; // type:function size:0x78 scope:global +GXFlush = .text:0x800CA18C; // type:function size:0x5C +GXResetWriteGatherPipe = .text:0x800CA1E8; // type:function size:0x34 +__GXAbortWaitPECopyDone = .text:0x800CA21C; // type:function size:0xCC +GXSetDrawSync = .text:0x800CA2E8; // type:function size:0xB8 +GXSetDrawDone = .text:0x800CA3A0; // type:function size:0x98 +GXWaitDrawDone = .text:0x800CA438; // type:function size:0x4C +GXDrawDone = .text:0x800CA484; // type:function size:0x80 +GXPixModeSync = .text:0x800CA504; // type:function size:0x24 +GXPokeAlphaMode = .text:0x800CA528; // type:function size:0x14 +GXPokeAlphaRead = .text:0x800CA53C; // type:function size:0x14 +GXPokeAlphaUpdate = .text:0x800CA550; // type:function size:0x1C +GXPokeBlendMode = .text:0x800CA56C; // type:function size:0x88 +GXPokeColorUpdate = .text:0x800CA5F4; // type:function size:0x1C +GXPokeDstAlpha = .text:0x800CA610; // type:function size:0x14 +GXPokeDither = .text:0x800CA624; // type:function size:0x1C +GXPokeZMode = .text:0x800CA640; // type:function size:0x28 +GXSetDrawSyncCallback = .text:0x800CA668; // type:function size:0x44 +GXTokenInterruptHandler = .text:0x800CA6AC; // type:function size:0x88 +GXFinishInterruptHandler = .text:0x800CA734; // type:function size:0x84 +__GXPEInit = .text:0x800CA7B8; // type:function size:0x80 scope:global +__GXSetDirtyState = .text:0x800CA838; // type:function size:0xA0 +GXBegin = .text:0x800CA8D8; // type:function size:0xF0 +__GXSendFlushPrim = .text:0x800CA9C8; // type:function size:0x88 +GXSetLineWidth = .text:0x800CAA50; // type:function size:0x58 +GXSetPointSize = .text:0x800CAAA8; // type:function size:0x54 +GXEnableTexOffsets = .text:0x800CAAFC; // type:function size:0x64 +GXSetCullMode = .text:0x800CAB60; // type:function size:0x50 +GXSetCoPlanar = .text:0x800CABB0; // type:function size:0x44 +__GXSetGenMode = .text:0x800CABF4; // type:function size:0x24 +GXAdjustForOverscan = .text:0x800CAC18; // type:function size:0x120 +GXSetDispCopySrc = .text:0x800CAD38; // type:function size:0xC0 +GXSetTexCopySrc = .text:0x800CADF8; // type:function size:0xC0 +GXSetDispCopyDst = .text:0x800CAEB8; // type:function size:0x44 +GXSetTexCopyDst = .text:0x800CAEFC; // type:function size:0x170 +GXSetDispCopyFrame2Field = .text:0x800CB06C; // type:function size:0x2C +GXSetCopyClamp = .text:0x800CB098; // type:function size:0x7C +GXGetYScaleFactor = .text:0x800CB114; // type:function size:0x238 +GXSetDispCopyYScale = .text:0x800CB34C; // type:function size:0xD4 +GXSetCopyClear = .text:0x800CB420; // type:function size:0x68 +GXSetCopyFilter = .text:0x800CB488; // type:function size:0x228 +GXSetDispCopyGamma = .text:0x800CB6B0; // type:function size:0x1C +GXCopyDisp = .text:0x800CB6CC; // type:function size:0x170 +GXCopyTex = .text:0x800CB83C; // type:function size:0x190 +GXClearBoundingBox = .text:0x800CB9CC; // type:function size:0x38 +GXInitLightAttn = .text:0x800CBA04; // type:function size:0x1C +GXInitLightAttnK = .text:0x800CBA20; // type:function size:0x10 +GXInitLightSpot = .text:0x800CBA30; // type:function size:0x180 +GXInitLightDistAttn = .text:0x800CBBB0; // type:function size:0xD0 +GXInitLightPos = .text:0x800CBC80; // type:function size:0x10 +GXInitLightDir = .text:0x800CBC90; // type:function size:0x1C +GXInitSpecularDir = .text:0x800CBCAC; // type:function size:0xD4 +GXInitLightColor = .text:0x800CBD80; // type:function size:0x28 +GXLoadLightObjImm = .text:0x800CBDA8; // type:function size:0x148 +GXSetChanAmbColor = .text:0x800CBEF0; // type:function size:0x168 +GXSetChanMatColor = .text:0x800CC058; // type:function size:0x168 +GXSetNumChans = .text:0x800CC1C0; // type:function size:0x4C +GXSetChanCtrl = .text:0x800CC20C; // type:function size:0x1E4 +GXGetTexBufferSize = .text:0x800CC3F0; // type:function size:0x15C +__GetImageTileCount = .text:0x800CC54C; // type:function size:0xC8 +GXInitTexObj = .text:0x800CC614; // type:function size:0x274 +GXInitTexObjCI = .text:0x800CC888; // type:function size:0x48 +GXInitTexObjLOD = .text:0x800CC8D0; // type:function size:0x194 +GXGetTexObjFmt = .text:0x800CCA64; // type:function size:0x8 +GXLoadTexObjPreLoaded = .text:0x800CCA6C; // type:function size:0x1A8 +GXLoadTexObj = .text:0x800CCC14; // type:function size:0x54 +GXInitTlutObj = .text:0x800CCC68; // type:function size:0x48 +GXLoadTlut = .text:0x800CCCB0; // type:function size:0x9C +GXInitTexCacheRegion = .text:0x800CCD4C; // type:function size:0x120 scope:global +GXInitTlutRegion = .text:0x800CCE6C; // type:function size:0x48 scope:global +GXInvalidateTexAll = .text:0x800CCEB4; // type:function size:0x48 +GXSetTexRegionCallback = .text:0x800CCEFC; // type:function size:0x14 +GXSetTlutRegionCallback = .text:0x800CCF10; // type:function size:0x14 +GXSetTexCoordScaleManually = .text:0x800CCF24; // type:function size:0x9C +fn_800CCFC0 = .text:0x800CCFC0; // type:function size:0xCC +__GXSetSUTexRegs = .text:0x800CD08C; // type:function size:0x17C +__GXSetTmemConfig = .text:0x800CD208; // type:function size:0x240 scope:global +GXSetTevIndirect = .text:0x800CD448; // type:function size:0x9C +GXSetIndTexMtx = .text:0x800CD4E4; // type:function size:0x160 +GXSetIndTexCoordScale = .text:0x800CD644; // type:function size:0x1D4 +GXSetIndTexOrder = .text:0x800CD818; // type:function size:0x138 +GXSetNumIndStages = .text:0x800CD950; // type:function size:0x2C +GXSetTevDirect = .text:0x800CD97C; // type:function size:0x48 +GXSetTevIndWarp = .text:0x800CD9C4; // type:function size:0x64 +GXSetTevIndTile = .text:0x800CDA28; // type:function size:0x1AC +__GXUpdateBPMask = .text:0x800CDBD4; // type:function size:0xCC +__GXFlushTextureState = .text:0x800CDCA0; // type:function size:0x24 scope:global +GXSetTevOp = .text:0x800CDCC4; // type:function size:0x1A4 +GXSetTevColorIn = .text:0x800CDE68; // type:function size:0x80 +GXSetTevAlphaIn = .text:0x800CDEE8; // type:function size:0x84 +GXSetTevColorOp = .text:0x800CDF6C; // type:function size:0xC0 +GXSetTevAlphaOp = .text:0x800CE02C; // type:function size:0xC0 +GXSetTevColor = .text:0x800CE0EC; // type:function size:0x74 +GXSetTevColorS10 = .text:0x800CE160; // type:function size:0x74 +GXSetTevKColor = .text:0x800CE1D4; // type:function size:0x74 +GXSetTevKColorSel = .text:0x800CE248; // type:function size:0x6C +GXSetTevKAlphaSel = .text:0x800CE2B4; // type:function size:0x6C +GXSetTevSwapMode = .text:0x800CE320; // type:function size:0x58 +GXSetTevSwapModeTable = .text:0x800CE378; // type:function size:0xA0 +GXSetAlphaCompare = .text:0x800CE418; // type:function size:0x50 +GXSetZTexture = .text:0x800CE468; // type:function size:0x84 +GXSetTevOrder = .text:0x800CE4EC; // type:function size:0x1DC +GXSetNumTevStages = .text:0x800CE6C8; // type:function size:0x34 +GXSetFog = .text:0x800CE6FC; // type:function size:0x1B0 +GXSetFogRangeAdj = .text:0x800CE8AC; // type:function size:0x100 +GXSetBlendMode = .text:0x800CE9AC; // type:function size:0x104 +GXSetColorUpdate = .text:0x800CEAB0; // type:function size:0x40 +GXSetAlphaUpdate = .text:0x800CEAF0; // type:function size:0x40 +GXSetZMode = .text:0x800CEB30; // type:function size:0x78 +GXSetZCompLoc = .text:0x800CEBA8; // type:function size:0x40 +GXSetPixelFmt = .text:0x800CEBE8; // type:function size:0x110 +GXSetDither = .text:0x800CECF8; // type:function size:0x40 +GXSetDstAlpha = .text:0x800CED38; // type:function size:0x54 +GXSetFieldMask = .text:0x800CED8C; // type:function size:0x38 +GXSetFieldMode = .text:0x800CEDC4; // type:function size:0x80 +__GXSetRange = .text:0x800CEE44; // type:function size:0x4 +GXBeginDisplayList = .text:0x800CEE48; // type:function size:0xC8 +GXEndDisplayList = .text:0x800CEF10; // type:function size:0xD4 +GXCallDisplayList = .text:0x800CEFE4; // type:function size:0x70 +GXProject = .text:0x800CF054; // type:function size:0x174 +GXSetProjection = .text:0x800CF1C8; // type:function size:0xD4 +GXGetProjectionv = .text:0x800CF29C; // type:function size:0x78 +fn_800CF314 = .text:0x800CF314; // type:function size:0x34 +fn_800CF348 = .text:0x800CF348; // type:function size:0x34 +fn_800CF37C = .text:0x800CF37C; // type:function size:0x24 +GXLoadPosMtxImm = .text:0x800CF3A0; // type:function size:0x3C +GXLoadNrmMtxImm = .text:0x800CF3DC; // type:function size:0x40 +GXSetCurrentMtx = .text:0x800CF41C; // type:function size:0x3C +GXLoadTexMtxImm = .text:0x800CF458; // type:function size:0x84 +GXSetViewportJitter = .text:0x800CF4DC; // type:function size:0x11C +GXSetViewport = .text:0x800CF5F8; // type:function size:0x24 +GXGetViewportv = .text:0x800CF61C; // type:function size:0x4C +GXSetScissor = .text:0x800CF668; // type:function size:0xB0 +GXSetScissorBoxOffset = .text:0x800CF718; // type:function size:0x44 +GXSetClipMode = .text:0x800CF75C; // type:function size:0x28 +__GXSetMatrixIndex = .text:0x800CF784; // type:function size:0x84 +GXSetGPMetric = .text:0x800CF808; // type:function size:0x898 +GXReadGPMetric = .text:0x800D00A0; // type:function size:0x1A8 +GXClearGPMetric = .text:0x800D0248; // type:function size:0x10 +GXReadGP0Metric = .text:0x800D0258; // type:function size:0x2C +GXReadGP1Metric = .text:0x800D0284; // type:function size:0x2C +GXReadMemMetric = .text:0x800D02B0; // type:function size:0x214 +GXClearMemMetric = .text:0x800D04C4; // type:function size:0xA8 +GXReadPixMetric = .text:0x800D056C; // type:function size:0x138 +GXClearPixMetric = .text:0x800D06A4; // type:function size:0x30 +GXSetVCacheMetric = .text:0x800D06D4; // type:function size:0x50 +GXReadVCacheMetric = .text:0x800D0724; // type:function size:0x94 +GXClearVCacheMetric = .text:0x800D07B8; // type:function size:0x1C +fn_800D07D4 = .text:0x800D07D4; // type:function size:0x4 +fn_800D07D8 = .text:0x800D07D8; // type:function size:0x34 +fn_800D080C = .text:0x800D080C; // type:function size:0xD8 +fn_800D08E4 = .text:0x800D08E4; // type:function size:0x118 +fn_800D09FC = .text:0x800D09FC; // type:function size:0xA8 +fn_800D0AA4 = .text:0x800D0AA4; // type:function size:0x84 +fn_800D0B28 = .text:0x800D0B28; // type:function size:0xC0 +fn_800D0BE8 = .text:0x800D0BE8; // type:function size:0xF0 +fn_800D0CD8 = .text:0x800D0CD8; // type:function size:0xAC +fn_800D0D84 = .text:0x800D0D84; // type:function size:0xA4 +fn_800D0E28 = .text:0x800D0E28; // type:function size:0x22C +fn_800D1054 = .text:0x800D1054; // type:function size:0x110 +__CARDStart = .text:0x800D1164; // type:function size:0x1B4 +__CARDReadSegment = .text:0x800D1318; // type:function size:0x134 +__CARDWritePage = .text:0x800D144C; // type:function size:0x11C +__CARDEraseSector = .text:0x800D1568; // type:function size:0xE0 +CARDInit = .text:0x800D1648; // type:function size:0x9C +__CARDSetDiskID = .text:0x800D16E4; // type:function size:0x38 +__CARDGetControlBlock = .text:0x800D171C; // type:function size:0xB8 +__CARDPutControlBlock = .text:0x800D17D4; // type:function size:0x64 +CARDFreeBlocks = .text:0x800D1838; // type:function size:0x150 +CARDGetSectorSize = .text:0x800D1988; // type:function size:0x84 +__CARDSync = .text:0x800D1A0C; // type:function size:0x98 +fn_800D1AA4 = .text:0x800D1AA4; // type:function size:0x50 +fn_800D1AF4 = .text:0x800D1AF4; // type:function size:0x16C +fn_800D1C60 = .text:0x800D1C60; // type:function size:0x144 +fn_800D1DA4 = .text:0x800D1DA4; // type:function size:0xC4 +__CARDUnlock = .text:0x800D1E68; // type:function size:0xB58 +fn_800D29C0 = .text:0x800D29C0; // type:function size:0x70 +fn_800D2A30 = .text:0x800D2A30; // type:function size:0x324 +fn_800D2D54 = .text:0x800D2D54; // type:function size:0xDC +__CARDRead = .text:0x800D2E30; // type:function size:0x64 +fn_800D2E94 = .text:0x800D2E94; // type:function size:0xDC +__CARDWrite = .text:0x800D2F70; // type:function size:0x64 +__CARDGetFatBlock = .text:0x800D2FD4; // type:function size:0x8 +fn_800D2FDC = .text:0x800D2FDC; // type:function size:0xD4 +fn_800D30B0 = .text:0x800D30B0; // type:function size:0xC8 +__CARDAllocBlock = .text:0x800D3178; // type:function size:0x118 +__CARDFreeBlock = .text:0x800D3290; // type:function size:0x9C +__CARDUpdateFatBlock = .text:0x800D332C; // type:function size:0xAC +__CARDGetDirBlock = .text:0x800D33D8; // type:function size:0x8 +fn_800D33E0 = .text:0x800D33E0; // type:function size:0xD0 +fn_800D34B0 = .text:0x800D34B0; // type:function size:0xC8 +__CARDUpdateDir = .text:0x800D3578; // type:function size:0xC4 +__CARDCheckSum = .text:0x800D363C; // type:function size:0x1B0 +fn_800D37EC = .text:0x800D37EC; // type:function size:0x284 +fn_800D3A70 = .text:0x800D3A70; // type:function size:0x240 +fn_800D3CB0 = .text:0x800D3CB0; // type:function size:0x284 +__CARDVerify = .text:0x800D3F34; // type:function size:0x8C +CARDCheckExAsync = .text:0x800D3FC0; // type:function size:0x590 +CARDCheck = .text:0x800D4550; // type:function size:0x54 +fn_800D45A4 = .text:0x800D45A4; // type:function size:0xCC +CARDProbeEx = .text:0x800D4670; // type:function size:0x17C +fn_800D47EC = .text:0x800D47EC; // type:function size:0x410 +__CARDMountCallback = .text:0x800D4BFC; // type:function size:0x138 +CARDMountAsync = .text:0x800D4D34; // type:function size:0x1A0 +CARDMount = .text:0x800D4ED4; // type:function size:0x48 +fn_800D4F1C = .text:0x800D4F1C; // type:function size:0x9C +CARDUnmount = .text:0x800D4FB8; // type:function size:0xAC +fn_800D5064 = .text:0x800D5064; // type:function size:0x144 +__CARDFormatRegionAsync = .text:0x800D51A8; // type:function size:0x658 +CARDFormat = .text:0x800D5800; // type:function size:0x54 +__CARDCompareFileName = .text:0x800D5854; // type:function size:0x68 +__CARDAccess = .text:0x800D58BC; // type:function size:0x98 +__CARDIsPublic = .text:0x800D5954; // type:function size:0x30 +__CARDGetFileNo = .text:0x800D5984; // type:function size:0x150 +CARDOpen = .text:0x800D5AD4; // type:function size:0x178 +CARDClose = .text:0x800D5C4C; // type:function size:0x54 +__CARDIsOpened = .text:0x800D5CA0; // type:function size:0x8 +fn_800D5CA8 = .text:0x800D5CA8; // type:function size:0x130 +CARDCreateAsync = .text:0x800D5DD8; // type:function size:0x220 +CARDCreate = .text:0x800D5FF8; // type:function size:0x48 +__CARDSeek = .text:0x800D6040; // type:function size:0x1B8 +fn_800D61F8 = .text:0x800D61F8; // type:function size:0x130 +CARDReadAsync = .text:0x800D6328; // type:function size:0x148 +CARDRead = .text:0x800D6470; // type:function size:0x48 +fn_800D64B8 = .text:0x800D64B8; // type:function size:0x170 +fn_800D6628 = .text:0x800D6628; // type:function size:0xB0 +CARDWriteAsync = .text:0x800D66D8; // type:function size:0x114 +CARDWrite = .text:0x800D67EC; // type:function size:0x48 +fn_800D6834 = .text:0x800D6834; // type:function size:0xA4 +CARDDeleteAsync = .text:0x800D68D8; // type:function size:0x110 +CARDDelete = .text:0x800D69E8; // type:function size:0x48 +fn_800D6A30 = .text:0x800D6A30; // type:function size:0x1F8 +CARDGetStatus = .text:0x800D6C28; // type:function size:0x12C +CARDSetStatusAsync = .text:0x800D6D54; // type:function size:0x174 +CARDSetStatus = .text:0x800D6EC8; // type:function size:0x48 +CARDGetSerialNo = .text:0x800D6F10; // type:function size:0xC4 +fn_800D6FD4 = .text:0x800D6FD4; // type:function size:0xF4 +EXIImm = .text:0x800D70C8; // type:function size:0x25C scope:global +fn_800D7324 = .text:0x800D7324; // type:function size:0xA0 +EXIDma = .text:0x800D73C4; // type:function size:0xEC scope:global +EXISync = .text:0x800D74B0; // type:function size:0x238 scope:global +fn_800D76E8 = .text:0x800D76E8; // type:function size:0x48 +fn_800D7730 = .text:0x800D7730; // type:function size:0x7C +__EXIProbe = .text:0x800D77AC; // type:function size:0x174 scope:local +fn_800D7920 = .text:0x800D7920; // type:function size:0x80 +fn_800D79A0 = .text:0x800D79A0; // type:function size:0xB4 +fn_800D7A54 = .text:0x800D7A54; // type:function size:0x10C +fn_800D7B60 = .text:0x800D7B60; // type:function size:0xBC +EXISelect = .text:0x800D7C1C; // type:function size:0x12C scope:global +EXIDeselect = .text:0x800D7D48; // type:function size:0x110 scope:global +EXIIntrruptHandler = .text:0x800D7E58; // type:function size:0xC8 scope:local +TCIntrruptHandler = .text:0x800D7F20; // type:function size:0x218 scope:local +EXTIntrruptHandler = .text:0x800D8138; // type:function size:0xD0 scope:local +EXIInit = .text:0x800D8208; // type:function size:0x114 scope:global +EXILock = .text:0x800D831C; // type:function size:0xF4 scope:global +EXIUnlock = .text:0x800D8410; // type:function size:0xDC scope:global +fn_800D84EC = .text:0x800D84EC; // type:function size:0x18 +fn_800D8504 = .text:0x800D8504; // type:function size:0x28 +fn_800D852C = .text:0x800D852C; // type:function size:0x37C +fn_800D88A8 = .text:0x800D88A8; // type:function size:0x70 +fn_800D8918 = .text:0x800D8918; // type:function size:0x200 +fn_800D8B18 = .text:0x800D8B18; // type:function size:0x20 +fn_800D8B38 = .text:0x800D8B38; // type:function size:0x3C +fn_800D8B74 = .text:0x800D8B74; // type:function size:0x2FC +SIInterruptHandler = .text:0x800D8E70; // type:function size:0x344 scope:local +fn_800D91B4 = .text:0x800D91B4; // type:function size:0x98 +fn_800D924C = .text:0x800D924C; // type:function size:0xCC +fn_800D9318 = .text:0x800D9318; // type:function size:0xF4 +SIInit = .text:0x800D940C; // type:function size:0xA4 scope:global +fn_800D94B0 = .text:0x800D94B0; // type:function size:0x20C +fn_800D96BC = .text:0x800D96BC; // type:function size:0x7C +fn_800D9738 = .text:0x800D9738; // type:function size:0x14 +fn_800D974C = .text:0x800D974C; // type:function size:0x10 +SISetXY = .text:0x800D975C; // type:function size:0x6C scope:global +fn_800D97C8 = .text:0x800D97C8; // type:function size:0x9C +fn_800D9864 = .text:0x800D9864; // type:function size:0x6C +fn_800D98D0 = .text:0x800D98D0; // type:function size:0xD4 +fn_800D99A4 = .text:0x800D99A4; // type:function size:0xC4 +fn_800D9A68 = .text:0x800D9A68; // type:function size:0x8C +SITransfer = .text:0x800D9AF4; // type:function size:0x16C scope:global +GetTypeCallback = .text:0x800D9C60; // type:function size:0x298 scope:local +SIGetType = .text:0x800D9EF8; // type:function size:0x1C4 scope:global +fn_800DA0BC = .text:0x800DA0BC; // type:function size:0x13C +SISetSamplingRate = .text:0x800DA1F8; // type:function size:0xE4 scope:global +SIRefreshSamplingRate = .text:0x800DA2DC; // type:function size:0x24 +THPVideoDecode = .text:0x800DA300; // type:function size:0x244 +fn_800DA544 = .text:0x800DA544; // type:function size:0x44 +fn_800DA588 = .text:0x800DA588; // type:function size:0x13C +fn_800DA6C4 = .text:0x800DA6C4; // type:function size:0x11C +fn_800DA7E0 = .text:0x800DA7E0; // type:function size:0x3BC +fn_800DAB9C = .text:0x800DAB9C; // type:function size:0x1E0 +fn_800DAD7C = .text:0x800DAD7C; // type:function size:0xF0 +fn_800DAE6C = .text:0x800DAE6C; // type:function size:0x68 +fn_800DAED4 = .text:0x800DAED4; // type:function size:0x1BC +fn_800DB090 = .text:0x800DB090; // type:function size:0x54 +fn_800DB0E4 = .text:0x800DB0E4; // type:function size:0x24C +fn_800DB330 = .text:0x800DB330; // type:function size:0x10C +fn_800DB43C = .text:0x800DB43C; // type:function size:0x1A88 +fn_800DCEC4 = .text:0x800DCEC4; // type:function size:0x1A8C +fn_800DE950 = .text:0x800DE950; // type:function size:0x1AAC +fn_800E03FC = .text:0x800E03FC; // type:function size:0x67C +fn_800E0A78 = .text:0x800E0A78; // type:function size:0x6A8 +fn_800E1120 = .text:0x800E1120; // type:function size:0x6A8 +THPInit = .text:0x800E17C8; // type:function size:0x78 +THPAudioDecode = .text:0x800E1840; // type:function size:0x464 +fn_800E1CA4 = .text:0x800E1CA4; // type:function size:0x90 +fn_800E1D34 = .text:0x800E1D34; // type:function size:0x3C +__va_arg = .text:0x800E1D70; // type:function size:0xC8 scope:global +__destroy_global_chain = .text:0x800E1E38; // type:function size:0x48 scope:global +__register_global_object = .text:0x800E1E80; // type:function size:0x18 scope:global +fn_800E1E98 = .text:0x800E1E98; // type:function size:0x4C +fn_800E1EE4 = .text:0x800E1EE4; // type:function size:0x48 +fn_800E1F2C = .text:0x800E1F2C; // type:function size:0xC +fn_800E1F38 = .text:0x800E1F38; // type:function size:0x22C +fn_800E2164 = .text:0x800E2164; // type:function size:0x28 +fn_800E218C = .text:0x800E218C; // type:function size:0x28 +fn_800E21B4 = .text:0x800E21B4; // type:function size:0x28 +fn_800E21DC = .text:0x800E21DC; // type:function size:0x20 +__cvt_fp2unsigned = .text:0x800E21FC; // type:function size:0x5C +__save_fpr = .text:0x800E2258; // type:function size:0x4C scope:global +_savefpr_14 = .text:0x800E2258; // type:label scope:global +_savefpr_15 = .text:0x800E225C; // type:label scope:global +_savefpr_16 = .text:0x800E2260; // type:label scope:global +_savefpr_17 = .text:0x800E2264; // type:label scope:global +_savefpr_18 = .text:0x800E2268; // type:label scope:global +_savefpr_19 = .text:0x800E226C; // type:label scope:global +_savefpr_20 = .text:0x800E2270; // type:label scope:global +_savefpr_21 = .text:0x800E2274; // type:label scope:global +_savefpr_22 = .text:0x800E2278; // type:label scope:global +_savefpr_23 = .text:0x800E227C; // type:label scope:global +_savefpr_24 = .text:0x800E2280; // type:label scope:global +_savefpr_25 = .text:0x800E2284; // type:label scope:global +_savefpr_26 = .text:0x800E2288; // type:label scope:global +_savefpr_27 = .text:0x800E228C; // type:label scope:global +_savefpr_28 = .text:0x800E2290; // type:label scope:global +_savefpr_29 = .text:0x800E2294; // type:label scope:global +_savefpr_30 = .text:0x800E2298; // type:label scope:global +_savefpr_31 = .text:0x800E229C; // type:label scope:global +__restore_fpr = .text:0x800E22A4; // type:function size:0x4C scope:global +_restfpr_14 = .text:0x800E22A4; // type:label scope:global +_restfpr_15 = .text:0x800E22A8; // type:label scope:global +_restfpr_16 = .text:0x800E22AC; // type:label scope:global +_restfpr_17 = .text:0x800E22B0; // type:label scope:global +_restfpr_18 = .text:0x800E22B4; // type:label scope:global +_restfpr_19 = .text:0x800E22B8; // type:label scope:global +_restfpr_20 = .text:0x800E22BC; // type:label scope:global +_restfpr_21 = .text:0x800E22C0; // type:label scope:global +_restfpr_22 = .text:0x800E22C4; // type:label scope:global +_restfpr_23 = .text:0x800E22C8; // type:label scope:global +_restfpr_24 = .text:0x800E22CC; // type:label scope:global +_restfpr_25 = .text:0x800E22D0; // type:label scope:global +_restfpr_26 = .text:0x800E22D4; // type:label scope:global +_restfpr_27 = .text:0x800E22D8; // type:label scope:global +_restfpr_28 = .text:0x800E22DC; // type:label scope:global +_restfpr_29 = .text:0x800E22E0; // type:label scope:global +_restfpr_30 = .text:0x800E22E4; // type:label scope:global +_restfpr_31 = .text:0x800E22E8; // type:label scope:global +__save_gpr = .text:0x800E22F0; // type:function size:0x4C scope:global +_savegpr_14 = .text:0x800E22F0; // type:label scope:global +_savegpr_15 = .text:0x800E22F4; // type:label scope:global +_savegpr_16 = .text:0x800E22F8; // type:label scope:global +_savegpr_17 = .text:0x800E22FC; // type:label scope:global +_savegpr_18 = .text:0x800E2300; // type:label scope:global +_savegpr_19 = .text:0x800E2304; // type:label scope:global +_savegpr_20 = .text:0x800E2308; // type:label scope:global +_savegpr_21 = .text:0x800E230C; // type:label scope:global +_savegpr_22 = .text:0x800E2310; // type:label scope:global +_savegpr_23 = .text:0x800E2314; // type:label scope:global +_savegpr_24 = .text:0x800E2318; // type:label scope:global +_savegpr_25 = .text:0x800E231C; // type:label scope:global +_savegpr_26 = .text:0x800E2320; // type:label scope:global +_savegpr_27 = .text:0x800E2324; // type:label scope:global +_savegpr_28 = .text:0x800E2328; // type:label scope:global +_savegpr_29 = .text:0x800E232C; // type:label scope:global +_savegpr_30 = .text:0x800E2330; // type:label scope:global +_savegpr_31 = .text:0x800E2334; // type:label scope:global +__restore_gpr = .text:0x800E233C; // type:function size:0x4C scope:global +_restgpr_14 = .text:0x800E233C; // type:label scope:global +_restgpr_15 = .text:0x800E2340; // type:label scope:global +_restgpr_16 = .text:0x800E2344; // type:label scope:global +_restgpr_17 = .text:0x800E2348; // type:label scope:global +_restgpr_18 = .text:0x800E234C; // type:label scope:global +_restgpr_19 = .text:0x800E2350; // type:label scope:global +_restgpr_20 = .text:0x800E2354; // type:label scope:global +_restgpr_21 = .text:0x800E2358; // type:label scope:global +_restgpr_22 = .text:0x800E235C; // type:label scope:global +_restgpr_23 = .text:0x800E2360; // type:label scope:global +_restgpr_24 = .text:0x800E2364; // type:label scope:global +_restgpr_25 = .text:0x800E2368; // type:label scope:global +_restgpr_26 = .text:0x800E236C; // type:label scope:global +_restgpr_27 = .text:0x800E2370; // type:label scope:global +_restgpr_28 = .text:0x800E2374; // type:label scope:global +_restgpr_29 = .text:0x800E2378; // type:label scope:global +_restgpr_30 = .text:0x800E237C; // type:label scope:global +_restgpr_31 = .text:0x800E2380; // type:label scope:global +__div2u = .text:0x800E2388; // type:function size:0xEC scope:global +__div2i = .text:0x800E2474; // type:function size:0x138 +__mod2u = .text:0x800E25AC; // type:function size:0xE4 scope:global +__mod2i = .text:0x800E2690; // type:function size:0x10C +__shl2i = .text:0x800E279C; // type:function size:0x24 +__shr2u = .text:0x800E27C0; // type:function size:0x24 +__shr2i = .text:0x800E27E4; // type:function size:0x28 +__cvt_dbl_usll = .text:0x800E280C; // type:function size:0xCC +GetR2__Fv = .text:0x800E28D8; // type:function size:0x8 scope:local +__fini_cpp_exceptions = .text:0x800E28E0; // type:function size:0x34 scope:global +__init_cpp_exceptions = .text:0x800E2914; // type:function size:0x40 scope:global +fn_800E2954 = .text:0x800E2954; // type:function size:0x104 +fn_800E2A58 = .text:0x800E2A58; // type:function size:0x144 +fn_800E2B9C = .text:0x800E2B9C; // type:function size:0x44 +fn_800E2BE0 = .text:0x800E2BE0; // type:function size:0x410 +fn_800E2FF0 = .text:0x800E2FF0; // type:function size:0x1B4 +fn_800E31A4 = .text:0x800E31A4; // type:function size:0x5C +fn_800E3200 = .text:0x800E3200; // type:function size:0x50C +fn_800E370C = .text:0x800E370C; // type:function size:0x248 +fn_800E3954 = .text:0x800E3954; // type:function size:0x1C0 +fn_800E3B14 = .text:0x800E3B14; // type:function size:0x204 +__unregister_fragment = .text:0x800E3D18; // type:function size:0x34 scope:global +__register_fragment = .text:0x800E3D4C; // type:function size:0x34 scope:global +fn_800E3D80 = .text:0x800E3D80; // type:function size:0xC +fn_800E3D8C = .text:0x800E3D8C; // type:function size:0xB8 +exit = .text:0x800E3E44; // type:function size:0xCC scope:global +fn_800E3F10 = .text:0x800E3F10; // type:function size:0x88 +fn_800E3F98 = .text:0x800E3F98; // type:function size:0x134 +fn_800E40CC = .text:0x800E40CC; // type:function size:0x1FC +fn_800E42C8 = .text:0x800E42C8; // type:function size:0xBC +fn_800E4384 = .text:0x800E4384; // type:function size:0x17C +fn_800E4500 = .text:0x800E4500; // type:function size:0x70 +__close_all = .text:0x800E4570; // type:function size:0x98 scope:global +fn_800E4608 = .text:0x800E4608; // type:function size:0x1A4 +fn_800E47AC = .text:0x800E47AC; // type:function size:0x23C +fn_800E49E8 = .text:0x800E49E8; // type:function size:0x340 +fn_800E4D28 = .text:0x800E4D28; // type:function size:0xEC +fn_800E4E14 = .text:0x800E4E14; // type:function size:0x28C +fn_800E50A0 = .text:0x800E50A0; // type:function size:0x110 +fn_800E51B0 = .text:0x800E51B0; // type:function size:0x70 +abs = .text:0x800E5220; // type:function size:0x10 +__flush_buffer = .text:0x800E5230; // type:function size:0xC4 scope:global +__prep_buffer = .text:0x800E52F4; // type:function size:0x34 scope:global +tolower = .text:0x800E5328; // type:function size:0x24 +isalpha = .text:0x800E534C; // type:function size:0x18 +__fwrite = .text:0x800E5364; // type:function size:0x30C scope:global +fwrite = .text:0x800E5670; // type:function size:0x20 scope:global +fflush = .text:0x800E5690; // type:function size:0x138 +fclose = .text:0x800E57C8; // type:function size:0xC0 +fseek = .text:0x800E5888; // type:function size:0x20 scope:global +_fseek = .text:0x800E58A8; // type:function size:0x23C +ftell = .text:0x800E5AE4; // type:function size:0x70 +wcstombs = .text:0x800E5B54; // type:function size:0xA0 scope:global +fn_800E5BF4 = .text:0x800E5BF4; // type:function size:0xA4 +memcmp = .text:0x800E5C98; // type:function size:0x4C +__memrchr = .text:0x800E5CE4; // type:function size:0x2C scope:global +memchr = .text:0x800E5D10; // type:function size:0x2C scope:global +memmove = .text:0x800E5D3C; // type:function size:0xCC +__copy_longs_rev_unaligned = .text:0x800E5E08; // type:function size:0xB0 +__copy_longs_unaligned = .text:0x800E5EB8; // type:function size:0xC4 +__copy_longs_rev_aligned = .text:0x800E5F7C; // type:function size:0xAC +__copy_longs_aligned = .text:0x800E6028; // type:function size:0xC0 +__stdio_atexit = .text:0x800E60E8; // type:function size:0x10 scope:global +sprintf = .text:0x800E60F8; // type:function size:0xE0 +vsprintf = .text:0x800E61D8; // type:function size:0x78 +vsnprintf = .text:0x800E6250; // type:function size:0x74 +vprintf = .text:0x800E62C4; // type:function size:0x7C scope:global +printf = .text:0x800E6340; // type:function size:0xCC +__StringWrite = .text:0x800E640C; // type:function size:0x6C +__FileWrite = .text:0x800E6478; // type:function size:0x58 scope:global +__pformatter = .text:0x800E64D0; // type:function size:0x774 scope:local +float2str = .text:0x800E6C44; // type:function size:0x6EC scope:local +fn_800E7330 = .text:0x800E7330; // type:function size:0x12C +double2hex = .text:0x800E745C; // type:function size:0x338 scope:local +longlong2str = .text:0x800E7794; // type:function size:0x2DC scope:local +long2str = .text:0x800E7A70; // type:function size:0x220 scope:local +parse_format = .text:0x800E7C90; // type:function size:0x504 scope:local +raise = .text:0x800E8194; // type:function size:0xB0 +strchr = .text:0x800E8244; // type:function size:0x30 scope:global +strncmp = .text:0x800E8274; // type:function size:0x40 +strcmp = .text:0x800E82B4; // type:function size:0x128 +strcat = .text:0x800E83DC; // type:function size:0x44 +strcpy = .text:0x800E8420; // type:function size:0xB8 +strlen = .text:0x800E84D8; // type:function size:0x1C scope:global +__close_console = .text:0x800E84F4; // type:function size:0x8 +__write_console = .text:0x800E84FC; // type:function size:0xC4 +fwide = .text:0x800E85C0; // type:function size:0x88 scope:global +__ieee754_acos = .text:0x800E8648; // type:function size:0x310 +__ieee754_asin = .text:0x800E8958; // type:function size:0x264 +__ieee754_atan2 = .text:0x800E8BBC; // type:function size:0x290 +__ieee754_fmod = .text:0x800E8E4C; // type:function size:0x33C +__ieee754_pow = .text:0x800E9188; // type:function size:0x88C +__ieee754_rem_pio2 = .text:0x800E9A14; // type:function size:0x3A0 +__kernel_cos = .text:0x800E9DB4; // type:function size:0xF4 +__kernel_rem_pio2 = .text:0x800E9EA8; // type:function size:0xE54 +__kernel_sin = .text:0x800EACFC; // type:function size:0xA0 +__kernel_tan = .text:0x800EAD9C; // type:function size:0x214 +atan = .text:0x800EAFB0; // type:function size:0x200 +copysign = .text:0x800EB1B0; // type:function size:0x28 +cos = .text:0x800EB1D8; // type:function size:0xD4 +floor = .text:0x800EB2AC; // type:function size:0x148 +frexp = .text:0x800EB3F4; // type:function size:0x8C +ldexp = .text:0x800EB480; // type:function size:0x1C4 +modf = .text:0x800EB644; // type:function size:0xFC +sin = .text:0x800EB740; // type:function size:0xD8 +tan = .text:0x800EB818; // type:function size:0x78 +acos = .text:0x800EB890; // type:function size:0x20 +asin = .text:0x800EB8B0; // type:function size:0x20 +atan2 = .text:0x800EB8D0; // type:function size:0x20 +fmod = .text:0x800EB8F0; // type:function size:0x20 +pow = .text:0x800EB910; // type:function size:0x20 +tanf = .text:0x800EB930; // type:function size:0x24 scope:weak +sinf = .text:0x800EB954; // type:function size:0x24 scope:weak +cosf = .text:0x800EB978; // type:function size:0x24 scope:weak +atan2f = .text:0x800EB99C; // type:function size:0x24 scope:weak +acosf = .text:0x800EB9C0; // type:function size:0x24 scope:weak +TRKNubMainLoop = .text:0x800EB9E4; // type:function size:0xF8 scope:global +TRKDestructEvent = .text:0x800EBADC; // type:function size:0x24 scope:global +fn_800EBB00 = .text:0x800EBB00; // type:function size:0x18 +fn_800EBB18 = .text:0x800EBB18; // type:function size:0xE0 +TRKGetNextEvent = .text:0x800EBBF8; // type:function size:0xB4 scope:global +TRKInitializeEventQueue = .text:0x800EBCAC; // type:function size:0x58 scope:global +TRKNubWelcome = .text:0x800EBD04; // type:function size:0x28 scope:global +TRKTerminateNub = .text:0x800EBD2C; // type:function size:0x24 scope:global +TRKInitializeNub = .text:0x800EBD50; // type:function size:0x134 scope:global +fn_800EBE84 = .text:0x800EBE84; // type:function size:0x1DC +fn_800EC060 = .text:0x800EC060; // type:function size:0xF0 +fn_800EC150 = .text:0x800EC150; // type:function size:0x98 +fn_800EC1E8 = .text:0x800EC1E8; // type:function size:0xE8 +fn_800EC2D0 = .text:0x800EC2D0; // type:function size:0xC8 +fn_800EC398 = .text:0x800EC398; // type:function size:0xB8 +fn_800EC450 = .text:0x800EC450; // type:function size:0x80 +fn_800EC4D0 = .text:0x800EC4D0; // type:function size:0xA8 +fn_800EC578 = .text:0x800EC578; // type:function size:0x68 +fn_800EC5E0 = .text:0x800EC5E0; // type:function size:0x88 +fn_800EC668 = .text:0x800EC668; // type:function size:0x64 +fn_800EC6CC = .text:0x800EC6CC; // type:function size:0x54 +fn_800EC720 = .text:0x800EC720; // type:function size:0x8C +fn_800EC7AC = .text:0x800EC7AC; // type:function size:0xA4 +fn_800EC850 = .text:0x800EC850; // type:function size:0x30 +fn_800EC880 = .text:0x800EC880; // type:function size:0x40 +fn_800EC8C0 = .text:0x800EC8C0; // type:function size:0x64 +TRKGetBuffer = .text:0x800EC924; // type:function size:0x2C scope:global +fn_800EC950 = .text:0x800EC950; // type:function size:0xC8 +TRKInitializeMessageBuffers = .text:0x800ECA18; // type:function size:0x74 scope:global +fn_800ECA8C = .text:0x800ECA8C; // type:function size:0x8 +TRKInitializeSerialHandler = .text:0x800ECA94; // type:function size:0x24 scope:global +fn_800ECAB8 = .text:0x800ECAB8; // type:function size:0x50 +TRKGetInput = .text:0x800ECB08; // type:function size:0x98 scope:global +fn_800ECBA0 = .text:0x800ECBA0; // type:function size:0x2B8 +usr_put_initialize = .text:0x800ECE58; // type:function size:0x4 scope:global +fn_800ECE5C = .text:0x800ECE5C; // type:function size:0x88 +TRKDispatchMessage = .text:0x800ECEE4; // type:function size:0x84 scope:global +TRKInitializeDispatcher = .text:0x800ECF68; // type:function size:0x18 scope:global +fn_800ECF80 = .text:0x800ECF80; // type:function size:0x1A4 +fn_800ED124 = .text:0x800ED124; // type:function size:0x100 +fn_800ED224 = .text:0x800ED224; // type:function size:0x530 +fn_800ED754 = .text:0x800ED754; // type:function size:0x154 +fn_800ED8A8 = .text:0x800ED8A8; // type:function size:0x2F8 +fn_800EDBA0 = .text:0x800EDBA0; // type:function size:0x3C8 +fn_800EDF68 = .text:0x800EDF68; // type:function size:0x3CC +fn_800EE334 = .text:0x800EE334; // type:function size:0x420 +fn_800EE754 = .text:0x800EE754; // type:function size:0x410 +fn_800EEB64 = .text:0x800EEB64; // type:function size:0x398 +fn_800EEEFC = .text:0x800EEEFC; // type:function size:0x230 +fn_800EF12C = .text:0x800EF12C; // type:function size:0x2D8 +fn_800EF404 = .text:0x800EF404; // type:function size:0xB8 +fn_800EF4BC = .text:0x800EF4BC; // type:function size:0xE4 +fn_800EF5A0 = .text:0x800EF5A0; // type:function size:0xBC +fn_800EF65C = .text:0x800EF65C; // type:function size:0xB0 +fn_800EF70C = .text:0x800EF70C; // type:function size:0xB8 +fn_800EF7C4 = .text:0x800EF7C4; // type:function size:0xC +fn_800EF7D0 = .text:0x800EF7D0; // type:function size:0x10 +fn_800EF7E0 = .text:0x800EF7E0; // type:function size:0x190 +fn_800EF970 = .text:0x800EF970; // type:function size:0x120 +fn_800EFA90 = .text:0x800EFA90; // type:function size:0x1A8 +fn_800EFC38 = .text:0x800EFC38; // type:function size:0x1A4 +fn_800EFDDC = .text:0x800EFDDC; // type:function size:0x2C4 +fn_800F00A0 = .text:0x800F00A0; // type:function size:0x8 +fn_800F00A8 = .text:0x800F00A8; // type:function size:0x8 +fn_800F00B0 = .text:0x800F00B0; // type:function size:0x8 +fn_800F00B8 = .text:0x800F00B8; // type:function size:0xD8 +fn_800F0190 = .text:0x800F0190; // type:function size:0x38 +fn_800F01C8 = .text:0x800F01C8; // type:function size:0xBC +fn_800F0284 = .text:0x800F0284; // type:function size:0x8 +fn_800F028C = .text:0x800F028C; // type:function size:0x8 +fn_800F0294 = .text:0x800F0294; // type:function size:0x3C +TRKInterruptHandler = .text:0x800F02D0; // type:function size:0x194 scope:global +TRKExceptionHandler = .text:0x800F0464; // type:function size:0x9C scope:global +TRKSwapAndGo = .text:0x800F0500; // type:function size:0xC4 scope:global +TRKInterruptHandlerEnableInterrupts = .text:0x800F05C4; // type:function size:0x54 scope:global +TRKTargetSetInputPendingPtr = .text:0x800F0618; // type:function size:0x10 scope:global +fn_800F0628 = .text:0x800F0628; // type:function size:0x21C +fn_800F0844 = .text:0x800F0844; // type:function size:0x18 +TRKTargetSetStopped = .text:0x800F085C; // type:function size:0x10 scope:global +TRKTargetStopped = .text:0x800F086C; // type:function size:0x10 scope:global +fn_800F087C = .text:0x800F087C; // type:function size:0x3C +TRKTargetSupportRequest = .text:0x800F08B8; // type:function size:0x208 scope:global +fn_800F0AC0 = .text:0x800F0AC0; // type:function size:0x10 +fn_800F0AD0 = .text:0x800F0AD0; // type:function size:0x7C +fn_800F0B4C = .text:0x800F0B4C; // type:function size:0x6C +fn_800F0BB8 = .text:0x800F0BB8; // type:function size:0xAC +fn_800F0C64 = .text:0x800F0C64; // type:function size:0x124 +TRKTargetInterrupt = .text:0x800F0D88; // type:function size:0x15C scope:global +TRKPostInterruptEvent = .text:0x800F0EE4; // type:function size:0xC0 scope:global +fn_800F0FA4 = .text:0x800F0FA4; // type:function size:0x60 +fn_800F1004 = .text:0x800F1004; // type:function size:0xA4 +fn_800F10A8 = .text:0x800F10A8; // type:function size:0x24 +fn_800F10CC = .text:0x800F10CC; // type:function size:0x438 +fn_800F1504 = .text:0x800F1504; // type:function size:0x170 +fn_800F1674 = .text:0x800F1674; // type:function size:0x13C +fn_800F17B0 = .text:0x800F17B0; // type:function size:0xF4 +fn_800F18A4 = .text:0x800F18A4; // type:function size:0x14C +fn_800F19F0 = .text:0x800F19F0; // type:function size:0x124 +fn_800F1B20 = .text:0x800F1B20; // type:function size:0x8 +fn_800F1B28 = .text:0x800F1B28; // type:function size:0x8 +fn_800F1B30 = .text:0x800F1B30; // type:function size:0x8 +fn_800F1B38 = .text:0x800F1B38; // type:function size:0x8 +InitMetroTRK = .text:0x800F1B40; // type:function size:0x94 scope:global +TRKInitializeTarget = .text:0x800F1BD4; // type:function size:0x4C scope:global +fn_800F1C20 = .text:0x800F1C20; // type:function size:0x40 +EnableMetroTRKInterrupts = .text:0x800F1C60; // type:function size:0x20 scope:global +TRKSaveExtended1Block = .text:0x800F1C80; // type:function size:0x1B8 scope:global +TRKRestoreExtended1Block = .text:0x800F1E38; // type:function size:0x1B8 scope:global +fn_800F1FF0 = .text:0x800F1FF0; // type:function size:0x8 +TRK_main = .text:0x800F1FF8; // type:function size:0x44 scope:global +TRKLoadContext = .text:0x800F203C; // type:function size:0x88 scope:global +TRKUARTInterruptHandler = .text:0x800F20C4; // type:function size:0x4 scope:global +TRK_board_display = .text:0x800F20C8; // type:function size:0x24 scope:global +UnreserveEXI2Port = .text:0x800F20EC; // type:function size:0x30 scope:global +ReserveEXI2Port = .text:0x800F211C; // type:function size:0x30 scope:global +fn_800F214C = .text:0x800F214C; // type:function size:0xF0 +fn_800F223C = .text:0x800F223C; // type:function size:0x28 +fn_800F2264 = .text:0x800F2264; // type:function size:0xE0 +fn_800F2344 = .text:0x800F2344; // type:function size:0x30 +TRKInitializeIntDrivenUART = .text:0x800F2374; // type:function size:0x3C scope:global +InitMetroTRKCommTable = .text:0x800F23B0; // type:function size:0x100 scope:global +TRKEXICallBack = .text:0x800F24B0; // type:function size:0x38 scope:global +TRKTargetContinue = .text:0x800F24E8; // type:function size:0x34 scope:global +fn_800F251C = .text:0x800F251C; // type:function size:0x10 +fn_800F252C = .text:0x800F252C; // type:function size:0xC +fn_800F2538 = .text:0x800F2538; // type:function size:0xBC +fn_800F25F4 = .text:0x800F25F4; // type:function size:0xBC +seqGetPrivateId = .text:0x800F26B0; // type:function size:0x68 +seqStartPlay = .text:0x800F2718; // type:function size:0xAC4 +StartPause = .text:0x800F31DC; // type:function size:0x64 +seqPause = .text:0x800F3240; // type:function size:0x27C +seqStop = .text:0x800F34BC; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F376C; // type:function size:0x90 +seqSpeed = .text:0x800F37FC; // type:function size:0xE4 +seqContinue = .text:0x800F38E0; // type:function size:0x108 +seqMute = .text:0x800F39E8; // type:function size:0xBC +seqVolume = .text:0x800F3AA4; // type:function size:0x1CC +seqCrossFade = .text:0x800F3C70; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F47C8; // type:function size:0x218 +HandleEvent = .text:0x800F49E0; // type:function size:0xA94 +InitTrackEvents = .text:0x800F5474; // type:function size:0x174 +HandleTrackEvents = .text:0x800F55E8; // type:function size:0x49C +seqHandle = .text:0x800F5A84; // type:function size:0x9F4 +seqInit = .text:0x800F6478; // type:function size:0x1A8 +synthSetBpm = .text:0x800F6620; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6664; // type:function size:0x34 +synthInitPortamento = .text:0x800F6698; // type:function size:0x78 +do_voice_portamento = .text:0x800F6710; // type:function size:0x2A0 +StartLayer = .text:0x800F69B0; // type:function size:0x3C0 +StartKeymap = .text:0x800F6D70; // type:function size:0x25C +synthStartSound = .text:0x800F6FCC; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F7428; // type:function size:0x744 +ZeroOffsetHandler = .text:0x800F7B6C; // type:function size:0x6FC +synthAddJob = .text:0x800F8268; // type:function size:0x150 +synthStartSynthJobHandling = .text:0x800F83B8; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F841C; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8460; // type:function size:0x28 +synthHandle = .text:0x800F8488; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8998; // type:function size:0x34 +synthFXStart = .text:0x800F89CC; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8A94; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8B78; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8C5C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8CE0; // type:function size:0x88 +synthVolume = .text:0x800F8D68; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9298; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F92EC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F9314; // type:function size:0xD0 +synthInit = .text:0x800F93E4; // type:function size:0x574 +synthExit = .text:0x800F9958; // type:function size:0x24 +sndSeqGetValid = .text:0x800F997C; // type:function size:0x30 +sndSeqPause = .text:0x800F99AC; // type:function size:0x38 +sndSeqStop = .text:0x800F99E4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F9A1C; // type:function size:0x48 +sndSeqContinue = .text:0x800F9A64; // type:function size:0x38 +sndSeqMute = .text:0x800F9A9C; // type:function size:0x58 +sndSeqVolume = .text:0x800F9AF4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F9B5C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F9BE0; // type:function size:0x1C +sndFXCtrl = .text:0x800F9BFC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9C5C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9CBC; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9CFC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9DDC; // type:function size:0x40 +sndSendMessage = .text:0x800F9E1C; // type:function size:0x50 +sndVolume = .text:0x800F9E6C; // type:function size:0x60 +sndMasterVolume = .text:0x800F9ECC; // type:function size:0x94 +sndOutputMode = .text:0x800F9F60; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800FA04C; // type:function size:0x158 +synthActivateStudio = .text:0x800FA1A4; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA24C; // type:function size:0xF0 +synthAddStudioInput = .text:0x800FA33C; // type:function size:0x20 +synthRemoveStudioInput = .text:0x800FA35C; // type:function size:0x20 +streamInit = .text:0x800FA37C; // type:function size:0xBC +SetHWMix = .text:0x800FA438; // type:function size:0x8C +streamHandle = .text:0x800FA4C4; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAD70; // type:function size:0x4 +streamKill = .text:0x800FAD74; // type:function size:0x84 +GetPrivateIndex = .text:0x800FADF8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FAF58; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FB21C; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB250; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB294; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB3C4; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB81C; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FB860; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FBF48; // type:function size:0x560 +sndStreamFrq = .text:0x800FC4A8; // type:function size:0x654 +sndStreamFree = .text:0x800FCAFC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FD1B4; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD7E8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FDEE8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FE0D8; // type:function size:0x17C +dataInsertLayer = .text:0x800FE254; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE49C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE660; // type:function size:0x204 +dataRemoveCurve = .text:0x800FE864; // type:function size:0x17C +dataInsertSDir = .text:0x800FE9E0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FEB68; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FEE30; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FEF08; // type:function size:0x98 +dataInsertFX = .text:0x800FEFA0; // type:function size:0x11C +dataRemoveFX = .text:0x800FF0BC; // type:function size:0x15C +dataInsertMacro = .text:0x800FF218; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF51C; // type:function size:0x284 +maccmp = .text:0x800FF7A0; // type:function size:0x10 +dataGetMacro = .text:0x800FF7B0; // type:function size:0x8C +smpcmp = .text:0x800FF83C; // type:function size:0x10 +dataGetSample = .text:0x800FF84C; // type:function size:0x128 +curvecmp = .text:0x800FF974; // type:function size:0x10 +dataGetCurve = .text:0x800FF984; // type:function size:0x5C +dataGetKeymap = .text:0x800FF9E0; // type:function size:0x5C +layercmp = .text:0x800FFA3C; // type:function size:0x10 +dataGetLayer = .text:0x800FFA4C; // type:function size:0x7C +fxcmp = .text:0x800FFAC8; // type:function size:0x10 +dataGetFX = .text:0x800FFAD8; // type:function size:0x9C +dataInit = .text:0x800FFB74; // type:function size:0xE4 +dataExit = .text:0x800FFC58; // type:function size:0x20 +mcmdWait = .text:0x800FFC78; // type:function size:0x2F0 +mcmdGosub = .text:0x800FFF68; // type:function size:0xD0 +mcmdLoop = .text:0x80100038; // type:function size:0x154 +mcmdPlayMacro = .text:0x8010018C; // type:function size:0x18C +mcmdAddKey = .text:0x80100318; // type:function size:0xD8 +mcmdStartSample = .text:0x801003F0; // type:function size:0x1FC +mcmdVibrato = .text:0x801005EC; // type:function size:0x17C +DoSetPitch = .text:0x80100768; // type:function size:0x1A0 +mcmdSetADSR = .text:0x80100908; // type:function size:0x258 +mcmdSetADSRFromCtrl = .text:0x80100B60; // type:function size:0x12C +mcmdSetPitchADSR = .text:0x80100C8C; // type:function size:0x27C +mcmdSetPanning = .text:0x80100F08; // type:function size:0x9C +mcmdSetSurroundPanning = .text:0x80100FA4; // type:function size:0x9C +mcmdScaleVolume = .text:0x80101040; // type:function size:0x134 +mcmdEnvelope = .text:0x80101174; // type:function size:0x130 +mcmdFadeIn = .text:0x801012A4; // type:function size:0x13C +mcmdRandomKey = .text:0x801013E0; // type:function size:0x19C +mcmdVolumeSelect = .text:0x8010157C; // type:function size:0x104 +mcmdPanningSelect = .text:0x80101680; // type:function size:0x104 +mcmdPitchWheelSelect = .text:0x80101784; // type:function size:0x104 +mcmdModWheelSelect = .text:0x80101888; // type:function size:0x104 +mcmdPedalSelect = .text:0x8010198C; // type:function size:0x104 +mcmdPortamentoSelect = .text:0x80101A90; // type:function size:0x104 +mcmdReverbSelect = .text:0x80101B94; // type:function size:0x104 +mcmdPreAuxASelect = .text:0x80101C98; // type:function size:0x104 +mcmdPreAuxBSelect = .text:0x80101D9C; // type:function size:0x104 +mcmdPostAuxBSelect = .text:0x80101EA0; // type:function size:0x104 +mcmdSurroundPanningSelect = .text:0x80101FA4; // type:function size:0x104 +mcmdDopplerSelect = .text:0x801020A8; // type:function size:0x104 +mcmdTremoloSelect = .text:0x801021AC; // type:function size:0x104 +mcmdAuxAFXSelect = .text:0x801022B0; // type:function size:0x17C +mcmdAuxBFXSelect = .text:0x8010242C; // type:function size:0x17C +mcmdPortamento = .text:0x801025A8; // type:function size:0x164 +varGet = .text:0x8010270C; // type:function size:0x68 +mcmdVarCalculation = .text:0x80102774; // type:function size:0x220 +mcmdIfVarCompare = .text:0x80102994; // type:function size:0x14C +macPostMessage = .text:0x80102AE0; // type:function size:0xBC +mcmdSendMessage = .text:0x80102B9C; // type:function size:0x244 +mcmdGetVID = .text:0x80102DE0; // type:function size:0x80 +mcmdSetKeyGroup = .text:0x80102E60; // type:function size:0xDC +macHandleActive = .text:0x80102F3C; // type:function size:0xF58 +macHandle = .text:0x80103E94; // type:function size:0x150 +macSampleEndNotify = .text:0x80103FE4; // type:function size:0xAC +macSetExternalKeyoff = .text:0x80104090; // type:function size:0xF0 +macSetPedalState = .text:0x80104180; // type:function size:0x108 +TimeQueueAdd = .text:0x80104288; // type:function size:0xA4 +macMakeActive = .text:0x8010432C; // type:function size:0x108 +macMakeInactive = .text:0x80104434; // type:function size:0xFC +macStart = .text:0x80104530; // type:function size:0x438 +macInit = .text:0x80104968; // type:function size:0x68 +vidInit = .text:0x801049D0; // type:function size:0xE0 +vidRemoveVoiceReferences = .text:0x80104AB0; // type:function size:0x350 +vidMakeRoot = .text:0x80104E00; // type:function size:0x14 +vidMakeNew = .text:0x80104E14; // type:function size:0x104 +vidGetInternalId = .text:0x80104F18; // type:function size:0x50 +voiceSetPriority = .text:0x80104F68; // type:function size:0x24C +voiceAllocate = .text:0x801051B4; // type:function size:0x460 +voiceFree = .text:0x80105614; // type:function size:0x1C4 +synthInitAllocationAids = .text:0x801057D8; // type:function size:0x2A0 +voiceBlock = .text:0x80105A78; // type:function size:0xFC +voiceUnblock = .text:0x80105B74; // type:function size:0x218 +voiceKill = .text:0x80105D8C; // type:function size:0x234 +voiceKillSound = .text:0x80105FC0; // type:function size:0xC4 +synthKillVoicesByMacroReferences = .text:0x80106084; // type:function size:0x15C +voiceIsLastStarted = .text:0x801061E0; // type:function size:0x74 +voiceSetLastStarted = .text:0x80106254; // type:function size:0x54 +voiceResetLastStarted = .text:0x801062A8; // type:function size:0x74 +voiceInitLastStarted = .text:0x8010631C; // type:function size:0x144 +sndPitchUpOne = .text:0x80106460; // type:function size:0x3C +sndGetPitch = .text:0x8010649C; // type:function size:0xE4 +adsrConvertTimeCents = .text:0x80106580; // type:function size:0x58 +salChangeADSRState = .text:0x801065D8; // type:function size:0x26C +adsrSetup = .text:0x80106844; // type:function size:0x28 +adsrStartRelease = .text:0x8010686C; // type:function size:0x150 +adsrRelease = .text:0x801069BC; // type:function size:0x168 +adsrHandle = .text:0x80106B24; // type:function size:0x198 +adsrHandleLowPrecision = .text:0x80106CBC; // type:function size:0x84 +vsInit = .text:0x80106D40; // type:function size:0xBC +vsSampleStartNotify = .text:0x80106DFC; // type:function size:0x248 +vsSampleEndNotify = .text:0x80107044; // type:function size:0xA8 +vsUpdateBuffer = .text:0x801070EC; // type:function size:0x1F8 +vsSampleUpdates = .text:0x801072E4; // type:function size:0x1E4 +dataInitStack = .text:0x801074C8; // type:function size:0xC +InsertData = .text:0x801074D4; // type:function size:0x27C +sndPushGroup = .text:0x80107750; // type:function size:0x32C +sndPopGroup = .text:0x80107A7C; // type:function size:0x33C +seqPlaySong = .text:0x80107DB8; // type:function size:0x14C +sndSeqPlayEx = .text:0x80107F04; // type:function size:0x11C +salInitDspCtrl = .text:0x80108020; // type:function size:0x3B4 +salInitHRTFBuffer = .text:0x801083D4; // type:function size:0x38 +salExitDspCtrl = .text:0x8010840C; // type:function size:0xE0 +salActivateStudio = .text:0x801084EC; // type:function size:0x150 +salDeactivateStudio = .text:0x8010863C; // type:function size:0x20 +salCheckVolErrorAndResetDelta = .text:0x8010865C; // type:function size:0xF4 +sal_setup_dspvol = .text:0x80108750; // type:function size:0x48 +sal_update_hostplayinfo = .text:0x80108798; // type:function size:0x74 +DoDepopFade = .text:0x8010880C; // type:function size:0xAC +HandleDepopVoice = .text:0x801088B8; // type:function size:0x2DC +SortVoices = .text:0x80108B94; // type:function size:0x258 +salBuildCommandList = .text:0x80108DEC; // type:function size:0x21B8 +salSynthSendMessage = .text:0x8010AFA4; // type:function size:0x44 +salActivateVoice = .text:0x8010AFE8; // type:function size:0xA0 +salDeactivateVoice = .text:0x8010B088; // type:function size:0x60 +salReconnectVoice = .text:0x8010B0E8; // type:function size:0xC8 +salAddStudioInput = .text:0x8010B1B0; // type:function size:0xA8 +salRemoveStudioInput = .text:0x8010B258; // type:function size:0x84 +salHandleAuxProcessing = .text:0x8010B2DC; // type:function size:0x158 +salCalcVolume = .text:0x8010B434; // type:function size:0x6F0 +CheckRoomStatus = .text:0x8010BB24; // type:function size:0x4B4 +CalcEmitter = .text:0x8010BFD8; // type:function size:0x51C +sndUpdateEmitter = .text:0x8010C4F4; // type:function size:0x130 +sndCheckEmitter = .text:0x8010C624; // type:function size:0x20 +AddEmitter = .text:0x8010C644; // type:function size:0x3F8 +sndAddEmitterParaEx = .text:0x8010CA3C; // type:function size:0x50 +sndRemoveEmitter = .text:0x8010CA8C; // type:function size:0xA8 +sndEmitterVoiceID = .text:0x8010CB34; // type:function size:0x5C +s3dKillEmitterByFXID = .text:0x8010CB90; // type:function size:0xFC +sndUpdateListener = .text:0x8010CC8C; // type:function size:0x204 +sndAddListenerEx = .text:0x8010CE90; // type:function size:0x230 +sndRemoveListener = .text:0x8010D0C0; // type:function size:0xD0 +AddStartingEmitter = .text:0x8010D190; // type:function size:0x14C +StartContinousEmitters = .text:0x8010D2DC; // type:function size:0x3B0 +s3dHandle = .text:0x8010D68C; // type:function size:0x82C +s3dInit = .text:0x8010DEB8; // type:function size:0x38 +s3dExit = .text:0x8010DEF0; // type:function size:0x4 +sndInit = .text:0x8010DEF4; // type:function size:0x118 +sndQuit = .text:0x8010E00C; // type:function size:0x34 +sndIsInstalled = .text:0x8010E040; // type:function size:0x8 +salApplyMatrix = .text:0x8010E048; // type:function size:0xAC +salNormalizeVector = .text:0x8010E0F4; // type:function size:0xB4 +salCrossProduct = .text:0x8010E1A8; // type:function size:0x64 +salInvertMatrix = .text:0x8010E20C; // type:function size:0x1FC +inpSetGlobalMIDIDirtyFlag = .text:0x8010E408; // type:function size:0x24 +inpSetMidiCtrl = .text:0x8010E42C; // type:function size:0x608 +inpSetMidiCtrl14 = .text:0x8010EA34; // type:function size:0x124 +inpResetMidiCtrl = .text:0x8010EB58; // type:function size:0xF0 +inpGetMidiCtrl = .text:0x8010EC48; // type:function size:0x2C4 +inpGetChannelDefaults = .text:0x8010EF0C; // type:function size:0x34 +inpResetChannelDefaults = .text:0x8010EF40; // type:function size:0x3C +inpAddCtrl = .text:0x8010EF7C; // type:function size:0x98 +inpFXCopyCtrl = .text:0x8010F014; // type:function size:0x114 +inpSetMidiLastNote = .text:0x8010F128; // type:function size:0x3C +inpGetMidiLastNote = .text:0x8010F164; // type:function size:0x3C +_GetInputValue = .text:0x8010F1A0; // type:function size:0x4A0 +inpGetVolume = .text:0x8010F640; // type:function size:0x48 +inpGetPanning = .text:0x8010F688; // type:function size:0x48 +inpGetSurPanning = .text:0x8010F6D0; // type:function size:0x48 +inpGetPitchBend = .text:0x8010F718; // type:function size:0x48 +inpGetDoppler = .text:0x8010F760; // type:function size:0x48 +inpGetModulation = .text:0x8010F7A8; // type:function size:0x48 +inpGetPedal = .text:0x8010F7F0; // type:function size:0x48 +inpGetPreAuxA = .text:0x8010F838; // type:function size:0x48 +inpGetReverb = .text:0x8010F880; // type:function size:0x48 +inpGetPreAuxB = .text:0x8010F8C8; // type:function size:0x48 +inpGetPostAuxB = .text:0x8010F910; // type:function size:0x48 +inpGetTremolo = .text:0x8010F958; // type:function size:0x48 +inpGetAuxA = .text:0x8010F9A0; // type:function size:0xB4 +inpGetAuxB = .text:0x8010FA54; // type:function size:0xB4 +inpInit = .text:0x8010FB08; // type:function size:0x284 +inpTranslateExCtrl = .text:0x8010FD8C; // type:function size:0x70 +inpGetExCtrl = .text:0x8010FDFC; // type:function size:0xFC +inpSetExCtrl = .text:0x8010FEF8; // type:function size:0x1E4 +sndRand = .text:0x801100DC; // type:function size:0x1C +sndSin = .text:0x801100F8; // type:function size:0x8C +sndBSearch = .text:0x80110184; // type:function size:0xA4 +sndConvertMs = .text:0x80110228; // type:function size:0x10 +sndConvertTicks = .text:0x80110238; // type:function size:0x48 +sndConvert2Ms = .text:0x80110280; // type:function size:0x8 +snd_handle_irq = .text:0x80110288; // type:function size:0x154 +hwInit = .text:0x801103DC; // type:function size:0xB8 +hwExit = .text:0x80110494; // type:function size:0x34 +hwSetTimeOffset = .text:0x801104C8; // type:function size:0x8 +hwGetTimeOffset = .text:0x801104D0; // type:function size:0x8 +hwIsActive = .text:0x801104D8; // type:function size:0x20 +hwSetMesgCallback = .text:0x801104F8; // type:function size:0x8 +hwSetPriority = .text:0x80110500; // type:function size:0x14 +hwInitSamplePlayback = .text:0x80110514; // type:function size:0x1B4 +hwBreak = .text:0x801106C8; // type:function size:0x50 +hwSetADSR = .text:0x80110718; // type:function size:0x1AC +hwSetVirtualSampleLoopBuffer = .text:0x801108C4; // type:function size:0x20 +hwGetVirtualSampleState = .text:0x801108E4; // type:function size:0x14 +hwGetSampleType = .text:0x801108F8; // type:function size:0x14 +hwGetSampleID = .text:0x8011090C; // type:function size:0x14 +hwSetStreamLoopPS = .text:0x80110920; // type:function size:0x14 +hwStart = .text:0x80110934; // type:function size:0x3C +hwKeyOff = .text:0x80110970; // type:function size:0x28 +hwSetPitch = .text:0x80110998; // type:function size:0x78 +hwSetSRCType = .text:0x80110A10; // type:function size:0x2C +hwSetPolyPhaseFilter = .text:0x80110A3C; // type:function size:0x2C +hwSetITDMode = .text:0x80110A68; // type:function size:0x5C +hwSetVolume = .text:0x80110AC4; // type:function size:0x2C0 +hwOff = .text:0x80110D84; // type:function size:0x2C +hwSetAUXProcessingCallbacks = .text:0x80110DB0; // type:function size:0x28 +hwActivateStudio = .text:0x80110DD8; // type:function size:0x20 +hwDeactivateStudio = .text:0x80110DF8; // type:function size:0x20 +hwAddInput = .text:0x80110E18; // type:function size:0x34 +hwRemoveInput = .text:0x80110E4C; // type:function size:0x34 +hwChangeStudio = .text:0x80110E80; // type:function size:0x2C +hwGetPos = .text:0x80110EAC; // type:function size:0xA4 +hwFlushStream = .text:0x80110F50; // type:function size:0x90 +hwInitStream = .text:0x80110FE0; // type:function size:0x20 +hwExitStream = .text:0x80111000; // type:function size:0x20 +hwGetStreamPlayBuffer = .text:0x80111020; // type:function size:0x24 +hwTransAddr = .text:0x80111044; // type:function size:0x4 +hwFrq2Pitch = .text:0x80111048; // type:function size:0x5C +hwInitSampleMem = .text:0x801110A4; // type:function size:0x24 +hwExitSampleMem = .text:0x801110C8; // type:function size:0x20 +hwSaveSample = .text:0x801110E8; // type:function size:0x94 +hwRemoveSample = .text:0x8011117C; // type:function size:0x84 +hwSyncSampleMem = .text:0x80111200; // type:function size:0x20 +hwFrameDone = .text:0x80111220; // type:function size:0x4 +sndSetHooks = .text:0x80111224; // type:function size:0x14 +hwDisableHRTF = .text:0x80111238; // type:function size:0xC +hwGetVirtualSampleID = .text:0x80111244; // type:function size:0x28 +hwVoiceInStartup = .text:0x8011126C; // type:function size:0x20 +aramQueueCallback = .text:0x8011128C; // type:function size:0xA0 +aramUploadData = .text:0x8011132C; // type:function size:0x1DC +aramSyncTransferQueue = .text:0x80111508; // type:function size:0x18 +aramInit = .text:0x80111520; // type:function size:0x2EC +aramExit = .text:0x8011180C; // type:function size:0x4 +aramGetZeroBuffer = .text:0x80111810; // type:function size:0x20 +aramStoreData = .text:0x80111830; // type:function size:0x3BC +aramRemoveData = .text:0x80111BEC; // type:function size:0x18 +InitStreamBuffers = .text:0x80111C04; // type:function size:0xC4 +aramAllocateStreamBuffer = .text:0x80111CC8; // type:function size:0x108 +aramGetStreamBufferAddress = .text:0x80111DD0; // type:function size:0x38 +aramFreeStreamBuffer = .text:0x80111E08; // type:function size:0xF8 +salCallback = .text:0x80111F00; // type:function size:0xA8 +dspInitCallback = .text:0x80111FA8; // type:function size:0x10 +dspResumeCallback = .text:0x80111FB8; // type:function size:0x64 +salInitAi = .text:0x8011201C; // type:function size:0xC8 +salStartAi = .text:0x801120E4; // type:function size:0x20 +salExitAi = .text:0x80112104; // type:function size:0x34 +salAiGetDest = .text:0x80112138; // type:function size:0x30 +salInitDsp = .text:0x80112168; // type:function size:0xBC +salExitDsp = .text:0x80112224; // type:function size:0x34 +salCtrlDsp = .text:0x80112258; // type:function size:0x74 +salGetStartDelay = .text:0x801122CC; // type:function size:0x4C +hwInitIrq = .text:0x80112318; // type:function size:0x2C +hwExitIrq = .text:0x80112344; // type:function size:0x4 +hwEnableIrq = .text:0x80112348; // type:function size:0x38 +hwDisableIrq = .text:0x80112380; // type:function size:0x38 +hwIRQEnterCritical = .text:0x801123B8; // type:function size:0x20 +hwIRQLeaveCritical = .text:0x801123D8; // type:function size:0x20 +salMalloc = .text:0x801123F8; // type:function size:0x28 +salFree = .text:0x80112420; // type:function size:0x2C +sndAuxCallbackReverbSTD = .text:0x8011244C; // type:function size:0x5C +sndAuxCallbackPrepareReverbSTD = .text:0x801124A8; // type:function size:0x3C +sndAuxCallbackShutdownReverbSTD = .text:0x801124E4; // type:function size:0x24 +ReverbSTDCreate = .text:0x80112508; // type:function size:0x428 +fn_80112930 = .text:0x80112930; // type:function size:0x3B4 +ReverbSTDCallback = .text:0x80112CE4; // type:function size:0x24 +ReverbSTDFree = .text:0x80112D08; // type:function size:0xBC +sndAuxCallbackReverbHI = .text:0x80112DC4; // type:function size:0x5C +sndAuxCallbackPrepareReverbHI = .text:0x80112E20; // type:function size:0x40 +sndAuxCallbackShutdownReverbHI = .text:0x80112E60; // type:function size:0x24 +ReverbHICreate = .text:0x80112E84; // type:function size:0x50C +DoCrossTalk = .text:0x80113390; // type:function size:0x190 +HandleReverb = .text:0x80113520; // type:function size:0x50C +ReverbHICallback = .text:0x80113A2C; // type:function size:0xE0 +ReverbHIFree = .text:0x80113B0C; // type:function size:0xBC +sndAuxCallbackDelay = .text:0x80113BC8; // type:function size:0x168 +sndAuxCallbackUpdateSettingsDelay = .text:0x80113D30; // type:function size:0x1D0 +sndAuxCallbackPrepareDelay = .text:0x80113F00; // type:function size:0x28 +sndAuxCallbackShutdownDelay = .text:0x80113F28; // type:function size:0x4C +do_src1 = .text:0x80113F74; // type:function size:0x198 +do_src2 = .text:0x8011410C; // type:function size:0x1EC +sndAuxCallbackChorus = .text:0x801142F8; // type:function size:0x2BC +sndAuxCallbackPrepareChorus = .text:0x801145B4; // type:function size:0x200 +sndAuxCallbackShutdownChorus = .text:0x801147B4; // type:function size:0x28 +DBClose = .text:0x801147DC; // type:function size:0x4 scope:global +DBOpen = .text:0x801147E0; // type:function size:0x4 scope:global +DBWrite = .text:0x801147E4; // type:function size:0x260 scope:global +DBRead = .text:0x80114A44; // type:function size:0x8C scope:global +DBQueryData = .text:0x80114AD0; // type:function size:0x9C scope:global +DBInitInterrupts = .text:0x80114B6C; // type:function size:0x54 scope:global +DBInitComm = .text:0x80114BC0; // type:function size:0x78 scope:global +fn_80114C38 = .text:0x80114C38; // type:function size:0x40 +fn_80114C78 = .text:0x80114C78; // type:function size:0x3C +fn_80114CB4 = .text:0x80114CB4; // type:function size:0xAC +fn_80114D60 = .text:0x80114D60; // type:function size:0xDC +fn_80114E3C = .text:0x80114E3C; // type:function size:0xDC +fn_80114F18 = .text:0x80114F18; // type:function size:0xAC +fn_80114FC4 = .text:0x80114FC4; // type:function size:0x298 +EXI2_Init = .text:0x8011525C; // type:function size:0x4 scope:global +EXI2_EnableInterrupts = .text:0x80115260; // type:function size:0x4 scope:global +EXI2_Poll = .text:0x80115264; // type:function size:0x8 scope:global +EXI2_ReadN = .text:0x8011526C; // type:function size:0x8 scope:global +EXI2_WriteN = .text:0x80115274; // type:function size:0x8 scope:global +EXI2_Reserve = .text:0x8011527C; // type:function size:0x4 scope:global +EXI2_Unreserve = .text:0x80115280; // type:function size:0x4 scope:global +AMC_IsStub = .text:0x80115284; // type:function size:0x8 scope:global +Hu_IsStub = .text:0x8011528C; // type:function size:0x8 scope:weak +HuSetVecF = .text:0x80115294; // type:function size:0x10 +HuSubVecF = .text:0x801152A4; // type:function size:0x34 +fn_801152D8 = .text:0x801152D8; // type:function size:0x6C +fn_80115344 = .text:0x80115344; // type:function size:0x27C +fn_801155C0 = .text:0x801155C0; // type:function size:0x15C +fn_8011571C = .text:0x8011571C; // type:function size:0xB4 +fn_801157D0 = .text:0x801157D0; // type:function size:0x31C +fn_80115AEC = .text:0x80115AEC; // type:function size:0x48 +fn_80115B34 = .text:0x80115B34; // type:function size:0x48 +fn_80115B7C = .text:0x80115B7C; // type:function size:0x68 +fn_80115BE4 = .text:0x80115BE4; // type:function size:0xD8 +fn_80115CBC = .text:0x80115CBC; // type:function size:0xFC +msmSysRegularProc = .text:0x80115DB8; // type:function size:0x4 +msmSysGetOutputMode = .text:0x80115DBC; // type:function size:0x14 +msmSysSetOutputMode = .text:0x80115DD0; // type:function size:0xD8 +msmSysSetAux = .text:0x80115EA8; // type:function size:0x114 +msmSysGetSampSize = .text:0x80115FBC; // type:function size:0x28 +msmSysDelGroupAll = .text:0x80115FE4; // type:function size:0x140 +msmSysDelGroupBase = .text:0x80116124; // type:function size:0x28C +msmSysLoadGroupBase = .text:0x801163B0; // type:function size:0x298 +msmSysLoadGroupSet = .text:0x80116648; // type:function size:0x3F0 +fn_80116A38 = .text:0x80116A38; // type:function size:0x3B4 +msmSysLoadGroup = .text:0x80116DEC; // type:function size:0x278 +msmSysCheckInit = .text:0x80117064; // type:function size:0x20 +msmSysInit = .text:0x80117084; // type:function size:0x474 +fn_801174F8 = .text:0x801174F8; // type:function size:0xC8 +fn_801175C0 = .text:0x801175C0; // type:function size:0x104 +fn_801176C4 = .text:0x801176C4; // type:function size:0x64 +fn_80117728 = .text:0x80117728; // type:function size:0x30 +fn_80117758 = .text:0x80117758; // type:function size:0x34 +fn_8011778C = .text:0x8011778C; // type:function size:0x2C +fn_801177B8 = .text:0x801177B8; // type:function size:0x60 +fn_80117818 = .text:0x80117818; // type:function size:0x154 +fn_8011796C = .text:0x8011796C; // type:function size:0x174 +fn_80117AE0 = .text:0x80117AE0; // type:function size:0x1BC +msmMusFdoutEnd = .text:0x80117C9C; // type:function size:0x4 +msmMusPeriodicProc = .text:0x80117CA0; // type:function size:0x1CC +msmMusGetMidiCtrl = .text:0x80117E6C; // type:function size:0x9C +msmMusGetNumPlay = .text:0x80117F08; // type:function size:0x38 +msmMusGetStatus = .text:0x80117F40; // type:function size:0x3C +msmMusSetMasterVolume = .text:0x80117F7C; // type:function size:0x30 +msmMusSetParam = .text:0x80117FAC; // type:function size:0x16C +msmMusPauseAll = .text:0x80118118; // type:function size:0x88 +msmMusPause = .text:0x801181A0; // type:function size:0x74 +msmMusStopAll = .text:0x80118214; // type:function size:0x134 +msmMusStop = .text:0x80118348; // type:function size:0xCC +msmMusPlay = .text:0x80118414; // type:function size:0x328 +msmMusInit = .text:0x8011873C; // type:function size:0x174 +fn_801188B0 = .text:0x801188B0; // type:function size:0x250 +fn_80118B00 = .text:0x80118B00; // type:function size:0x184 +msmSePeriodicProc = .text:0x80118C84; // type:function size:0x270 +msmSeGetIndexPtr = .text:0x80118EF4; // type:function size:0x30 +msmSeDelListener = .text:0x80118F24; // type:function size:0x4C +msmSeUpdataListener = .text:0x80118F70; // type:function size:0xD8 +msmSeSetListener = .text:0x80119048; // type:function size:0x13C +msmSeGetEntryID = .text:0x80119184; // type:function size:0x74 +msmSeGetNumPlay = .text:0x801191F8; // type:function size:0x38 +msmSeGetStatus = .text:0x80119230; // type:function size:0x60 +msmSeSetMasterVolume = .text:0x80119290; // type:function size:0x30 +msmSeSetParam = .text:0x801192C0; // type:function size:0x320 +msmSePauseAll = .text:0x801195E0; // type:function size:0x80 +msmSeStopAll = .text:0x80119660; // type:function size:0x168 +msmSeStop = .text:0x801197C8; // type:function size:0xFC +msmSePlay = .text:0x801198C4; // type:function size:0x480 +msmSeInit = .text:0x80119D44; // type:function size:0x130 +msmStreamGetStatus = .text:0x80119E74; // type:function size:0xC8 +msmStreamSetMasterVolume = .text:0x80119F3C; // type:function size:0x118 +msmStreamStopAll = .text:0x8011A054; // type:function size:0xE0 +msmStreamStop = .text:0x8011A134; // type:function size:0x204 +msmStreamPlay = .text:0x8011A338; // type:function size:0x88 +msmStreamPeriodicProc = .text:0x8011A3C0; // type:function size:0x8C +msmStreamSetOutputMode = .text:0x8011A44C; // type:function size:0x114 +msmStreamAmemFree = .text:0x8011A560; // type:function size:0x68 +msmStreamAmemAlloc = .text:0x8011A5C8; // type:function size:0x10C +msmStreamInit = .text:0x8011A6D4; // type:function size:0x2A8 +msmStreamPauseOff = .text:0x8011A97C; // type:function size:0x2B8 +msmStreamPauseOn = .text:0x8011AC34; // type:function size:0x1AC +fn_8011ADE0 = .text:0x8011ADE0; // type:function size:0x2E8 +fn_8011B0C8 = .text:0x8011B0C8; // type:function size:0x33C +fn_8011B404 = .text:0x8011B404; // type:function size:0x13C +fn_8011B540 = .text:0x8011B540; // type:function size:0xE0 +fn_8011B620 = .text:0x8011B620; // type:function size:0x448 +fn_8011BA68 = .text:0x8011BA68; // type:function size:0x2DC +fn_8011BD44 = .text:0x8011BD44; // type:function size:0xD0 +fn_8011BE14 = .text:0x8011BE14; // type:function size:0x320 +fn_8011C134 = .text:0x8011C134; // type:function size:0x4A8 +fn_8011C5DC = .text:0x8011C5DC; // type:function size:0x188 +fn_8011C764 = .text:0x8011C764; // type:function size:0x17C +fn_8011C8E0 = .text:0x8011C8E0; // type:function size:0x214 +fn_8011CAF4 = .text:0x8011CAF4; // type:function size:0x4 +fn_8011CAF8 = .text:0x8011CAF8; // type:function size:0x4 +fn_8011CAFC = .text:0x8011CAFC; // type:function size:0x4 +fn_8011CB00 = .text:0x8011CB00; // type:function size:0x4 +fn_8011CB04 = .text:0x8011CB04; // type:function size:0x4 +fn_8011CB08 = .text:0x8011CB08; // type:function size:0x4 +fn_8011CB0C = .text:0x8011CB0C; // type:function size:0x4 +fn_8011CB10 = .text:0x8011CB10; // type:function size:0x4 +fn_8011CB14 = .text:0x8011CB14; // type:function size:0x4 +fn_8011CB18 = .text:0x8011CB18; // type:function size:0x4 +fn_8011CB1C = .text:0x8011CB1C; // type:function size:0x4 +fn_8011CB20 = .text:0x8011CB20; // type:function size:0x4 +fn_8011CB24 = .text:0x8011CB24; // type:function size:0x4 +fn_8011CB28 = .text:0x8011CB28; // type:function size:0x4 +fn_8011CB2C = .text:0x8011CB2C; // type:function size:0x4 +fn_8011CB30 = .text:0x8011CB30; // type:function size:0x4 +fn_8011CB34 = .text:0x8011CB34; // type:function size:0x4 +fn_8011CB38 = .text:0x8011CB38; // type:function size:0x4 +fn_8011CB3C = .text:0x8011CB3C; // type:function size:0x4 +fn_8011CB40 = .text:0x8011CB40; // type:function size:0x4 +fn_8011CB44 = .text:0x8011CB44; // type:function size:0x4 +fn_8011CB48 = .text:0x8011CB48; // type:function size:0x4 +fn_8011CB4C = .text:0x8011CB4C; // type:function size:0x4 +fn_8011CB50 = .text:0x8011CB50; // type:function size:0x4 +fn_8011CB54 = .text:0x8011CB54; // type:function size:0x4 +fn_8011CB58 = .text:0x8011CB58; // type:function size:0x4 +fn_8011CB5C = .text:0x8011CB5C; // type:function size:0x4 +fn_8011CB60 = .text:0x8011CB60; // type:function size:0x4 +fn_8011CB64 = .text:0x8011CB64; // type:function size:0x4 +fn_8011CB68 = .text:0x8011CB68; // type:function size:0x4 +fn_8011CB6C = .text:0x8011CB6C; // type:function size:0x4 +fn_8011CB70 = .text:0x8011CB70; // type:function size:0x4 +fn_8011CB74 = .text:0x8011CB74; // type:function size:0x4 +fn_8011CB78 = .text:0x8011CB78; // type:function size:0x4 +fn_8011CB7C = .text:0x8011CB7C; // type:function size:0x4 +fn_8011CB80 = .text:0x8011CB80; // type:function size:0x4 +fn_8011CB84 = .text:0x8011CB84; // type:function size:0x4 +fn_8011CB88 = .text:0x8011CB88; // type:function size:0x4 +fn_8011CB8C = .text:0x8011CB8C; // type:function size:0x4 +fn_8011CB90 = .text:0x8011CB90; // type:function size:0x4 +fn_8011CB94 = .text:0x8011CB94; // type:function size:0x4 +fn_8011CB98 = .text:0x8011CB98; // type:function size:0x4 +fn_8011CB9C = .text:0x8011CB9C; // type:function size:0x4 +fn_8011CBA0 = .text:0x8011CBA0; // type:function size:0x4 +fn_8011CBA4 = .text:0x8011CBA4; // type:function size:0x4 +fn_8011CBA8 = .text:0x8011CBA8; // type:function size:0x4 +fn_8011CBAC = .text:0x8011CBAC; // type:function size:0x4 +fn_8011CBB0 = .text:0x8011CBB0; // type:function size:0x4 +fn_8011CBB4 = .text:0x8011CBB4; // type:function size:0x4 +fn_8011CBB8 = .text:0x8011CBB8; // type:function size:0x4 +fn_8011CBBC = .text:0x8011CBBC; // type:function size:0x4 +fn_8011CBC0 = .text:0x8011CBC0; // type:function size:0x4 +fn_8011CBC4 = .text:0x8011CBC4; // type:function size:0x4 +fn_8011CBC8 = .text:0x8011CBC8; // type:function size:0x4 +fn_8011CBCC = .text:0x8011CBCC; // type:function size:0x4 +fn_8011CBD0 = .text:0x8011CBD0; // type:function size:0x4 +fn_8011CBD4 = .text:0x8011CBD4; // type:function size:0x4 +fn_8011CBD8 = .text:0x8011CBD8; // type:function size:0x4 +fn_8011CBDC = .text:0x8011CBDC; // type:function size:0x4 +fn_8011CBE0 = .text:0x8011CBE0; // type:function size:0x4 +fn_8011CBE4 = .text:0x8011CBE4; // type:function size:0x4 +fn_8011CBE8 = .text:0x8011CBE8; // type:function size:0x4 +fn_8011CBEC = .text:0x8011CBEC; // type:function size:0x4 +fn_8011CBF0 = .text:0x8011CBF0; // type:function size:0x4 +fn_8011CBF4 = .text:0x8011CBF4; // type:function size:0x4 +fn_8011CBF8 = .text:0x8011CBF8; // type:function size:0x4 +fn_8011CBFC = .text:0x8011CBFC; // type:function size:0x4 +fn_8011CC00 = .text:0x8011CC00; // type:function size:0x4 +fn_8011CC04 = .text:0x8011CC04; // type:function size:0x4 +fn_8011CC08 = .text:0x8011CC08; // type:function size:0x4 +fn_8011CC0C = .text:0x8011CC0C; // type:function size:0x4 +fn_8011CC10 = .text:0x8011CC10; // type:function size:0x4 +fn_8011CC14 = .text:0x8011CC14; // type:function size:0x4 +fn_8011CC18 = .text:0x8011CC18; // type:function size:0x4 +fn_8011CC1C = .text:0x8011CC1C; // type:function size:0x4 +fn_8011CC20 = .text:0x8011CC20; // type:function size:0x4 +fn_8011CC24 = .text:0x8011CC24; // type:function size:0x4 +fn_8011CC28 = .text:0x8011CC28; // type:function size:0x4 +fn_8011CC2C = .text:0x8011CC2C; // type:function size:0x4 +fn_8011CC30 = .text:0x8011CC30; // type:function size:0x4 +fn_8011CC34 = .text:0x8011CC34; // type:function size:0x4 +fn_8011CC38 = .text:0x8011CC38; // type:function size:0x4 +fn_8011CC3C = .text:0x8011CC3C; // type:function size:0x4 +fn_8011CC40 = .text:0x8011CC40; // type:function size:0x4 +fn_8011CC44 = .text:0x8011CC44; // type:function size:0x4 +fn_8011CC48 = .text:0x8011CC48; // type:function size:0x4 +fn_8011CC4C = .text:0x8011CC4C; // type:function size:0x4 +fn_8011CC50 = .text:0x8011CC50; // type:function size:0x4 +fn_8011CC54 = .text:0x8011CC54; // type:function size:0x4 +fn_8011CC58 = .text:0x8011CC58; // type:function size:0x4 +fn_8011CC5C = .text:0x8011CC5C; // type:function size:0x4 +fn_8011CC60 = .text:0x8011CC60; // type:function size:0x4 +fn_8011CC64 = .text:0x8011CC64; // type:function size:0x4 +fn_8011CC68 = .text:0x8011CC68; // type:function size:0x4 +fn_8011CC6C = .text:0x8011CC6C; // type:function size:0x4 +fn_8011CC70 = .text:0x8011CC70; // type:function size:0x4 +fn_8011CC74 = .text:0x8011CC74; // type:function size:0x4 +fn_8011CC78 = .text:0x8011CC78; // type:function size:0x4 +fn_8011CC7C = .text:0x8011CC7C; // type:function size:0x4 +fn_8011CC80 = .text:0x8011CC80; // type:function size:0x4 +fn_8011CC84 = .text:0x8011CC84; // type:function size:0x4 +fn_8011CC88 = .text:0x8011CC88; // type:function size:0x4 +fn_8011CC8C = .text:0x8011CC8C; // type:function size:0x4 +fn_8011CC90 = .text:0x8011CC90; // type:function size:0x4 +fn_8011CC94 = .text:0x8011CC94; // type:function size:0x4 +fn_8011CC98 = .text:0x8011CC98; // type:function size:0x4 +fn_8011CC9C = .text:0x8011CC9C; // type:function size:0x4 +fn_8011CCA0 = .text:0x8011CCA0; // type:function size:0x4 +fn_8011CCA4 = .text:0x8011CCA4; // type:function size:0x4 +fn_8011CCA8 = .text:0x8011CCA8; // type:function size:0x4 +fn_8011CCAC = .text:0x8011CCAC; // type:function size:0x4 +fn_8011CCB0 = .text:0x8011CCB0; // type:function size:0x4 +fn_8011CCB4 = .text:0x8011CCB4; // type:function size:0x4 +fn_8011CCB8 = .text:0x8011CCB8; // type:function size:0x4 +fn_8011CCBC = .text:0x8011CCBC; // type:function size:0x4 +fn_8011CCC0 = .text:0x8011CCC0; // type:function size:0x4 +fn_8011CCC4 = .text:0x8011CCC4; // type:function size:0x4 +fn_8011CCC8 = .text:0x8011CCC8; // type:function size:0x4 +fn_8011CCCC = .text:0x8011CCCC; // type:function size:0x4 +fn_8011CCD0 = .text:0x8011CCD0; // type:function size:0x4 +fn_8011CCD4 = .text:0x8011CCD4; // type:function size:0x4 +fn_8011CCD8 = .text:0x8011CCD8; // type:function size:0x4 +fn_8011CCDC = .text:0x8011CCDC; // type:function size:0x4 +fn_8011CCE0 = .text:0x8011CCE0; // type:function size:0x4 +fn_8011CCE4 = .text:0x8011CCE4; // type:function size:0x4 +fn_8011CCE8 = .text:0x8011CCE8; // type:function size:0x4 +fn_8011CCEC = .text:0x8011CCEC; // type:function size:0x4 +fn_8011CCF0 = .text:0x8011CCF0; // type:function size:0x4 +fn_8011CCF4 = .text:0x8011CCF4; // type:function size:0x4 +fn_8011CCF8 = .text:0x8011CCF8; // type:function size:0x4 +fn_8011CCFC = .text:0x8011CCFC; // type:function size:0x4 +fn_8011CD00 = .text:0x8011CD00; // type:function size:0x4 +fn_8011CD04 = .text:0x8011CD04; // type:function size:0x4 +fn_8011CD08 = .text:0x8011CD08; // type:function size:0x4 +fn_8011CD0C = .text:0x8011CD0C; // type:function size:0x4 +fn_8011CD10 = .text:0x8011CD10; // type:function size:0x4 +fn_8011CD14 = .text:0x8011CD14; // type:function size:0x4 +fn_8011CD18 = .text:0x8011CD18; // type:function size:0x4 +fn_8011CD1C = .text:0x8011CD1C; // type:function size:0x4 +fn_8011CD20 = .text:0x8011CD20; // type:function size:0x4 +fn_8011CD24 = .text:0x8011CD24; // type:function size:0x4 +fn_8011CD28 = .text:0x8011CD28; // type:function size:0x4 +fn_8011CD2C = .text:0x8011CD2C; // type:function size:0x4 +fn_8011CD30 = .text:0x8011CD30; // type:function size:0x4 +fn_8011CD34 = .text:0x8011CD34; // type:function size:0x4 +fn_8011CD38 = .text:0x8011CD38; // type:function size:0x4 +fn_8011CD3C = .text:0x8011CD3C; // type:function size:0x4 +fn_8011CD40 = .text:0x8011CD40; // type:function size:0x4 +fn_8011CD44 = .text:0x8011CD44; // type:function size:0x4 +fn_8011CD48 = .text:0x8011CD48; // type:function size:0x4 +fn_8011CD4C = .text:0x8011CD4C; // type:function size:0x4 +fn_8011CD50 = .text:0x8011CD50; // type:function size:0x4 +fn_8011CD54 = .text:0x8011CD54; // type:function size:0x4 +fn_8011CD58 = .text:0x8011CD58; // type:function size:0x4 +fn_8011CD5C = .text:0x8011CD5C; // type:function size:0x4 +fn_8011CD60 = .text:0x8011CD60; // type:function size:0x4 +fn_8011CD64 = .text:0x8011CD64; // type:function size:0x4 +fn_8011CD68 = .text:0x8011CD68; // type:function size:0x4 +fn_8011CD6C = .text:0x8011CD6C; // type:function size:0x4 +fn_8011CD70 = .text:0x8011CD70; // type:function size:0x4 +fn_8011CD74 = .text:0x8011CD74; // type:function size:0x4 +fn_8011CD78 = .text:0x8011CD78; // type:function size:0x4 +fn_8011CD7C = .text:0x8011CD7C; // type:function size:0x4 +fn_8011CD80 = .text:0x8011CD80; // type:function size:0x4 +fn_8011CD84 = .text:0x8011CD84; // type:function size:0x4 +fn_8011CD88 = .text:0x8011CD88; // type:function size:0x4 +fn_8011CD8C = .text:0x8011CD8C; // type:function size:0x4 +fn_8011CD90 = .text:0x8011CD90; // type:function size:0x4 +fn_8011CD94 = .text:0x8011CD94; // type:function size:0x4 +fn_8011CD98 = .text:0x8011CD98; // type:function size:0x4 +fn_8011CD9C = .text:0x8011CD9C; // type:function size:0x4 +fn_8011CDA0 = .text:0x8011CDA0; // type:function size:0x4 +fn_8011CDA4 = .text:0x8011CDA4; // type:function size:0x4 +fn_8011CDA8 = .text:0x8011CDA8; // type:function size:0x4 +fn_8011CDAC = .text:0x8011CDAC; // type:function size:0x4 +fn_8011CDB0 = .text:0x8011CDB0; // type:function size:0x4 +fn_8011CDB4 = .text:0x8011CDB4; // type:function size:0x4 +fn_8011CDB8 = .text:0x8011CDB8; // type:function size:0x4 +fn_8011CDBC = .text:0x8011CDBC; // type:function size:0x4 +fn_8011CDC0 = .text:0x8011CDC0; // type:function size:0x4 +fn_8011CDC4 = .text:0x8011CDC4; // type:function size:0x4 +fn_8011CDC8 = .text:0x8011CDC8; // type:function size:0x4 +fn_8011CDCC = .text:0x8011CDCC; // type:function size:0x4 +fn_8011CDD0 = .text:0x8011CDD0; // type:function size:0x4 +fn_8011CDD4 = .text:0x8011CDD4; // type:function size:0x4 +fn_8011CDD8 = .text:0x8011CDD8; // type:function size:0x4 +fn_8011CDDC = .text:0x8011CDDC; // type:function size:0x4 +fn_8011CDE0 = .text:0x8011CDE0; // type:function size:0x4 +fn_8011CDE4 = .text:0x8011CDE4; // type:function size:0x4 +fn_8011CDE8 = .text:0x8011CDE8; // type:function size:0x4 +fn_8011CDEC = .text:0x8011CDEC; // type:function size:0x4 +fn_8011CDF0 = .text:0x8011CDF0; // type:function size:0x4 +fn_8011CDF4 = .text:0x8011CDF4; // type:function size:0x4 +fn_8011CDF8 = .text:0x8011CDF8; // type:function size:0x4 +fn_8011CDFC = .text:0x8011CDFC; // type:function size:0x4 +fn_8011CE00 = .text:0x8011CE00; // type:function size:0x4 +fn_8011CE04 = .text:0x8011CE04; // type:function size:0x4 +fn_8011CE08 = .text:0x8011CE08; // type:function size:0x4 +fn_8011CE0C = .text:0x8011CE0C; // type:function size:0x4 +fn_8011CE10 = .text:0x8011CE10; // type:function size:0x4 +fn_8011CE14 = .text:0x8011CE14; // type:function size:0x4 +fn_8011CE18 = .text:0x8011CE18; // type:function size:0x4 +fn_8011CE1C = .text:0x8011CE1C; // type:function size:0x4 +fn_8011CE20 = .text:0x8011CE20; // type:function size:0x4 +fn_8011CE24 = .text:0x8011CE24; // type:function size:0x4 +fn_8011CE28 = .text:0x8011CE28; // type:function size:0x4 +fn_8011CE2C = .text:0x8011CE2C; // type:function size:0x4 +fn_8011CE30 = .text:0x8011CE30; // type:function size:0x4 +fn_8011CE34 = .text:0x8011CE34; // type:function size:0x4 +fn_8011CE38 = .text:0x8011CE38; // type:function size:0x4 +fn_8011CE3C = .text:0x8011CE3C; // type:function size:0x4 +fn_8011CE40 = .text:0x8011CE40; // type:function size:0x4 +fn_8011CE44 = .text:0x8011CE44; // type:function size:0x4 +fn_8011CE48 = .text:0x8011CE48; // type:function size:0x4 +fn_8011CE4C = .text:0x8011CE4C; // type:function size:0x4 +fn_8011CE50 = .text:0x8011CE50; // type:function size:0x4 +fn_8011CE54 = .text:0x8011CE54; // type:function size:0x4 +fn_8011CE58 = .text:0x8011CE58; // type:function size:0x4 +fn_8011CE5C = .text:0x8011CE5C; // type:function size:0x4 +fn_8011CE60 = .text:0x8011CE60; // type:function size:0x4 +fn_8011CE64 = .text:0x8011CE64; // type:function size:0x4 +fn_8011CE68 = .text:0x8011CE68; // type:function size:0x4 +fn_8011CE6C = .text:0x8011CE6C; // type:function size:0x4 +fn_8011CE70 = .text:0x8011CE70; // type:function size:0x4 +fn_8011CE74 = .text:0x8011CE74; // type:function size:0x4 +fn_8011CE78 = .text:0x8011CE78; // type:function size:0x4 +fn_8011CE7C = .text:0x8011CE7C; // type:function size:0x4 +fn_8011CE80 = .text:0x8011CE80; // type:function size:0x4 +fn_8011CE84 = .text:0x8011CE84; // type:function size:0x4 +fn_8011CE88 = .text:0x8011CE88; // type:function size:0x4 +fn_8011CE8C = .text:0x8011CE8C; // type:function size:0x4 +fn_8011CE90 = .text:0x8011CE90; // type:function size:0x4 +fn_8011CE94 = .text:0x8011CE94; // type:function size:0x4 +fn_8011CE98 = .text:0x8011CE98; // type:function size:0x4 +fn_8011CE9C = .text:0x8011CE9C; // type:function size:0x4 +fn_8011CEA0 = .text:0x8011CEA0; // type:function size:0x4 +fn_8011CEA4 = .text:0x8011CEA4; // type:function size:0x4 +fn_8011CEA8 = .text:0x8011CEA8; // type:function size:0x4 +fn_8011CEAC = .text:0x8011CEAC; // type:function size:0x4 +fn_8011CEB0 = .text:0x8011CEB0; // type:function size:0x4 +fn_8011CEB4 = .text:0x8011CEB4; // type:function size:0x4 +fn_8011CEB8 = .text:0x8011CEB8; // type:function size:0x4 +fn_8011CEBC = .text:0x8011CEBC; // type:function size:0x4 +fn_8011CEC0 = .text:0x8011CEC0; // type:function size:0x4 +fn_8011CEC4 = .text:0x8011CEC4; // type:function size:0x4 +fn_8011CEC8 = .text:0x8011CEC8; // type:function size:0x4 +fn_8011CECC = .text:0x8011CECC; // type:function size:0x4 +fn_8011CED0 = .text:0x8011CED0; // type:function size:0x4 +fn_8011CED4 = .text:0x8011CED4; // type:function size:0x4 +fn_8011CED8 = .text:0x8011CED8; // type:function size:0x4 +fn_8011CEDC = .text:0x8011CEDC; // type:function size:0x4 +fn_8011CEE0 = .text:0x8011CEE0; // type:function size:0x4 +fn_8011CEE4 = .text:0x8011CEE4; // type:function size:0x4 +fn_8011CEE8 = .text:0x8011CEE8; // type:function size:0x4 +fn_8011CEEC = .text:0x8011CEEC; // type:function size:0x4 +fn_8011CEF0 = .text:0x8011CEF0; // type:function size:0x4 +fn_8011CEF4 = .text:0x8011CEF4; // type:function size:0x4 +fn_8011CEF8 = .text:0x8011CEF8; // type:function size:0x4 +fn_8011CEFC = .text:0x8011CEFC; // type:function size:0x4 +fn_8011CF00 = .text:0x8011CF00; // type:function size:0x4 +fn_8011CF04 = .text:0x8011CF04; // type:function size:0x4 +fn_8011CF08 = .text:0x8011CF08; // type:function size:0x4 +fn_8011CF0C = .text:0x8011CF0C; // type:function size:0x4 +fn_8011CF10 = .text:0x8011CF10; // type:function size:0x4 +fn_8011CF14 = .text:0x8011CF14; // type:function size:0x4 +fn_8011CF18 = .text:0x8011CF18; // type:function size:0x4 +fn_8011CF1C = .text:0x8011CF1C; // type:function size:0x4 +fn_8011CF20 = .text:0x8011CF20; // type:function size:0x4 +fn_8011CF24 = .text:0x8011CF24; // type:function size:0x4 +fn_8011CF28 = .text:0x8011CF28; // type:function size:0x4 +fn_8011CF2C = .text:0x8011CF2C; // type:function size:0x4 +fn_8011CF30 = .text:0x8011CF30; // type:function size:0x4 +fn_8011CF34 = .text:0x8011CF34; // type:function size:0x4 +fn_8011CF38 = .text:0x8011CF38; // type:function size:0x4 +fn_8011CF3C = .text:0x8011CF3C; // type:function size:0x4 +fn_8011CF40 = .text:0x8011CF40; // type:function size:0x4 +fn_8011CF44 = .text:0x8011CF44; // type:function size:0x4 +fn_8011CF48 = .text:0x8011CF48; // type:function size:0x4 +fn_8011CF4C = .text:0x8011CF4C; // type:function size:0x4 +fn_8011CF50 = .text:0x8011CF50; // type:function size:0x4 +fn_8011CF54 = .text:0x8011CF54; // type:function size:0x4 +fn_8011CF58 = .text:0x8011CF58; // type:function size:0x4 +fn_8011CF5C = .text:0x8011CF5C; // type:function size:0x4 +fn_8011CF60 = .text:0x8011CF60; // type:function size:0x4 +fn_8011CF64 = .text:0x8011CF64; // type:function size:0x4 +fn_8011CF68 = .text:0x8011CF68; // type:function size:0x4 +fn_8011CF6C = .text:0x8011CF6C; // type:function size:0x4 +fn_8011CF70 = .text:0x8011CF70; // type:function size:0x4 +fn_8011CF74 = .text:0x8011CF74; // type:function size:0x4 +fn_8011CF78 = .text:0x8011CF78; // type:function size:0x4 +fn_8011CF7C = .text:0x8011CF7C; // type:function size:0x4 +fn_8011CF80 = .text:0x8011CF80; // type:function size:0x4 +fn_8011CF84 = .text:0x8011CF84; // type:function size:0x4 +fn_8011CF88 = .text:0x8011CF88; // type:function size:0x4 +fn_8011CF8C = .text:0x8011CF8C; // type:function size:0x4 +fn_8011CF90 = .text:0x8011CF90; // type:function size:0x4 +fn_8011CF94 = .text:0x8011CF94; // type:function size:0x4 +fn_8011CF98 = .text:0x8011CF98; // type:function size:0x4 +fn_8011CF9C = .text:0x8011CF9C; // type:function size:0x4 +fn_8011CFA0 = .text:0x8011CFA0; // type:function size:0x4 +fn_8011CFA4 = .text:0x8011CFA4; // type:function size:0x4 +fn_8011CFA8 = .text:0x8011CFA8; // type:function size:0x4 +fn_8011CFAC = .text:0x8011CFAC; // type:function size:0x4 +fn_8011CFB0 = .text:0x8011CFB0; // type:function size:0x4 +fn_8011CFB4 = .text:0x8011CFB4; // type:function size:0x4 +fn_8011CFB8 = .text:0x8011CFB8; // type:function size:0x4 +fn_8011CFBC = .text:0x8011CFBC; // type:function size:0x4 +fn_8011CFC0 = .text:0x8011CFC0; // type:function size:0x4 +fn_8011CFC4 = .text:0x8011CFC4; // type:function size:0x4 +fn_8011CFC8 = .text:0x8011CFC8; // type:function size:0x4 +fn_8011CFCC = .text:0x8011CFCC; // type:function size:0x4 +fn_8011CFD0 = .text:0x8011CFD0; // type:function size:0x4 +fn_8011CFD4 = .text:0x8011CFD4; // type:function size:0x4 +fn_8011CFD8 = .text:0x8011CFD8; // type:function size:0x4 +fn_8011CFDC = .text:0x8011CFDC; // type:function size:0x4 +fn_8011CFE0 = .text:0x8011CFE0; // type:function size:0x4 +fn_8011CFE4 = .text:0x8011CFE4; // type:function size:0x4 +fn_8011CFE8 = .text:0x8011CFE8; // type:function size:0x4 +fn_8011CFEC = .text:0x8011CFEC; // type:function size:0x4 +fn_8011CFF0 = .text:0x8011CFF0; // type:function size:0x4 +fn_8011CFF4 = .text:0x8011CFF4; // type:function size:0x4 +fn_8011CFF8 = .text:0x8011CFF8; // type:function size:0x4 +fn_8011CFFC = .text:0x8011CFFC; // type:function size:0x4 +fn_8011D000 = .text:0x8011D000; // type:function size:0x4 +fn_8011D004 = .text:0x8011D004; // type:function size:0x4 +fn_8011D008 = .text:0x8011D008; // type:function size:0x4 +fn_8011D00C = .text:0x8011D00C; // type:function size:0x4 +fn_8011D010 = .text:0x8011D010; // type:function size:0x4 +fn_8011D014 = .text:0x8011D014; // type:function size:0x4 +fn_8011D018 = .text:0x8011D018; // type:function size:0x4 +fn_8011D01C = .text:0x8011D01C; // type:function size:0x4 +fn_8011D020 = .text:0x8011D020; // type:function size:0x4 +fn_8011D024 = .text:0x8011D024; // type:function size:0x4 +fn_8011D028 = .text:0x8011D028; // type:function size:0x4 +fn_8011D02C = .text:0x8011D02C; // type:function size:0x4 +fn_8011D030 = .text:0x8011D030; // type:function size:0x4 +fn_8011D034 = .text:0x8011D034; // type:function size:0x4 +fn_8011D038 = .text:0x8011D038; // type:function size:0x4 +fn_8011D03C = .text:0x8011D03C; // type:function size:0x4 +fn_8011D040 = .text:0x8011D040; // type:function size:0x4 +fn_8011D044 = .text:0x8011D044; // type:function size:0x4 +fn_8011D048 = .text:0x8011D048; // type:function size:0x4 +fn_8011D04C = .text:0x8011D04C; // type:function size:0x4 +fn_8011D050 = .text:0x8011D050; // type:function size:0x4 +fn_8011D054 = .text:0x8011D054; // type:function size:0x4 +fn_8011D058 = .text:0x8011D058; // type:function size:0x4 +fn_8011D05C = .text:0x8011D05C; // type:function size:0x4 +fn_8011D060 = .text:0x8011D060; // type:function size:0x4 +fn_8011D064 = .text:0x8011D064; // type:function size:0x4 +fn_8011D068 = .text:0x8011D068; // type:function size:0x4 +fn_8011D06C = .text:0x8011D06C; // type:function size:0x4 +fn_8011D070 = .text:0x8011D070; // type:function size:0x4 +fn_8011D074 = .text:0x8011D074; // type:function size:0x4 +fn_8011D078 = .text:0x8011D078; // type:function size:0x4 +fn_8011D07C = .text:0x8011D07C; // type:function size:0x4 +fn_8011D080 = .text:0x8011D080; // type:function size:0x4 +fn_8011D084 = .text:0x8011D084; // type:function size:0x4 +fn_8011D088 = .text:0x8011D088; // type:function size:0x4 +fn_8011D08C = .text:0x8011D08C; // type:function size:0x4 +fn_8011D090 = .text:0x8011D090; // type:function size:0x4 +fn_8011D094 = .text:0x8011D094; // type:function size:0x4 +fn_8011D098 = .text:0x8011D098; // type:function size:0x4 +fn_8011D09C = .text:0x8011D09C; // type:function size:0x4 +fn_8011D0A0 = .text:0x8011D0A0; // type:function size:0x4 +fn_8011D0A4 = .text:0x8011D0A4; // type:function size:0x4 +fn_8011D0A8 = .text:0x8011D0A8; // type:function size:0x4 +fn_8011D0AC = .text:0x8011D0AC; // type:function size:0x4 +fn_8011D0B0 = .text:0x8011D0B0; // type:function size:0x4 +fn_8011D0B4 = .text:0x8011D0B4; // type:function size:0x4 +fn_8011D0B8 = .text:0x8011D0B8; // type:function size:0x4 +fn_8011D0BC = .text:0x8011D0BC; // type:function size:0x4 +fn_8011D0C0 = .text:0x8011D0C0; // type:function size:0x4 +fn_8011D0C4 = .text:0x8011D0C4; // type:function size:0x4 +fn_8011D0C8 = .text:0x8011D0C8; // type:function size:0x4 +fn_8011D0CC = .text:0x8011D0CC; // type:function size:0x4 +fn_8011D0D0 = .text:0x8011D0D0; // type:function size:0x4 +fn_8011D0D4 = .text:0x8011D0D4; // type:function size:0x4 +fn_8011D0D8 = .text:0x8011D0D8; // type:function size:0x4 +fn_8011D0DC = .text:0x8011D0DC; // type:function size:0x4 +fn_8011D0E0 = .text:0x8011D0E0; // type:function size:0x4 +fn_8011D0E4 = .text:0x8011D0E4; // type:function size:0x4 +fn_8011D0E8 = .text:0x8011D0E8; // type:function size:0x4 +fn_8011D0EC = .text:0x8011D0EC; // type:function size:0x4 +fn_8011D0F0 = .text:0x8011D0F0; // type:function size:0x4 +fn_8011D0F4 = .text:0x8011D0F4; // type:function size:0x4 +fn_8011D0F8 = .text:0x8011D0F8; // type:function size:0x4 +fn_8011D0FC = .text:0x8011D0FC; // type:function size:0x4 +fn_8011D100 = .text:0x8011D100; // type:function size:0x4 +fn_8011D104 = .text:0x8011D104; // type:function size:0x4 +fn_8011D108 = .text:0x8011D108; // type:function size:0x4 +fn_8011D10C = .text:0x8011D10C; // type:function size:0x4 +fn_8011D110 = .text:0x8011D110; // type:function size:0x4 +fn_8011D114 = .text:0x8011D114; // type:function size:0x4 +fn_8011D118 = .text:0x8011D118; // type:function size:0x4 +fn_8011D11C = .text:0x8011D11C; // type:function size:0x4 +fn_8011D120 = .text:0x8011D120; // type:function size:0x4 +fn_8011D124 = .text:0x8011D124; // type:function size:0x4 +fn_8011D128 = .text:0x8011D128; // type:function size:0x4 +fn_8011D12C = .text:0x8011D12C; // type:function size:0x4 +fn_8011D130 = .text:0x8011D130; // type:function size:0x4 +fn_8011D134 = .text:0x8011D134; // type:function size:0x4 +fn_8011D138 = .text:0x8011D138; // type:function size:0x4 +fn_8011D13C = .text:0x8011D13C; // type:function size:0x4 +fn_8011D140 = .text:0x8011D140; // type:function size:0x4 +fn_8011D144 = .text:0x8011D144; // type:function size:0x4 +fn_8011D148 = .text:0x8011D148; // type:function size:0x4 +fn_8011D14C = .text:0x8011D14C; // type:function size:0x4 +fn_8011D150 = .text:0x8011D150; // type:function size:0x4 +fn_8011D154 = .text:0x8011D154; // type:function size:0x4 +fn_8011D158 = .text:0x8011D158; // type:function size:0x4 +fn_8011D15C = .text:0x8011D15C; // type:function size:0x4 +fn_8011D160 = .text:0x8011D160; // type:function size:0x4 +fn_8011D164 = .text:0x8011D164; // type:function size:0x4 +fn_8011D168 = .text:0x8011D168; // type:function size:0x4 +fn_8011D16C = .text:0x8011D16C; // type:function size:0x4 +fn_8011D170 = .text:0x8011D170; // type:function size:0x4 +fn_8011D174 = .text:0x8011D174; // type:function size:0x4 +fn_8011D178 = .text:0x8011D178; // type:function size:0x4 +fn_8011D17C = .text:0x8011D17C; // type:function size:0x4 +fn_8011D180 = .text:0x8011D180; // type:function size:0x4 +fn_8011D184 = .text:0x8011D184; // type:function size:0x4 +fn_8011D188 = .text:0x8011D188; // type:function size:0x4 +fn_8011D18C = .text:0x8011D18C; // type:function size:0x4 +fn_8011D190 = .text:0x8011D190; // type:function size:0x4 +fn_8011D194 = .text:0x8011D194; // type:function size:0x4 +fn_8011D198 = .text:0x8011D198; // type:function size:0x4 +fn_8011D19C = .text:0x8011D19C; // type:function size:0x4 +fn_8011D1A0 = .text:0x8011D1A0; // type:function size:0x4 +fn_8011D1A4 = .text:0x8011D1A4; // type:function size:0x4 +fn_8011D1A8 = .text:0x8011D1A8; // type:function size:0x4 +fn_8011D1AC = .text:0x8011D1AC; // type:function size:0x4 +fn_8011D1B0 = .text:0x8011D1B0; // type:function size:0x4 +fn_8011D1B4 = .text:0x8011D1B4; // type:function size:0x4 +fn_8011D1B8 = .text:0x8011D1B8; // type:function size:0x4 +fn_8011D1BC = .text:0x8011D1BC; // type:function size:0x4 +fn_8011D1C0 = .text:0x8011D1C0; // type:function size:0x4 +fn_8011D1C4 = .text:0x8011D1C4; // type:function size:0x4 +fn_8011D1C8 = .text:0x8011D1C8; // type:function size:0x4 +fn_8011D1CC = .text:0x8011D1CC; // type:function size:0x4 +fn_8011D1D0 = .text:0x8011D1D0; // type:function size:0x4 +fn_8011D1D4 = .text:0x8011D1D4; // type:function size:0x4 +fn_8011D1D8 = .text:0x8011D1D8; // type:function size:0x4 +fn_8011D1DC = .text:0x8011D1DC; // type:function size:0x4 +fn_8011D1E0 = .text:0x8011D1E0; // type:function size:0x4 +fn_8011D1E4 = .text:0x8011D1E4; // type:function size:0x4 +fn_8011D1E8 = .text:0x8011D1E8; // type:function size:0x4 +fn_8011D1EC = .text:0x8011D1EC; // type:function size:0x4 +fn_8011D1F0 = .text:0x8011D1F0; // type:function size:0x4 +fn_8011D1F4 = .text:0x8011D1F4; // type:function size:0x4 +fn_8011D1F8 = .text:0x8011D1F8; // type:function size:0x4 +fn_8011D1FC = .text:0x8011D1FC; // type:function size:0x4 +fn_8011D200 = .text:0x8011D200; // type:function size:0x4 +fn_8011D204 = .text:0x8011D204; // type:function size:0x4 +fn_8011D208 = .text:0x8011D208; // type:function size:0x4 +fn_8011D20C = .text:0x8011D20C; // type:function size:0x4 +fn_8011D210 = .text:0x8011D210; // type:function size:0x4 +fn_8011D214 = .text:0x8011D214; // type:function size:0x4 +fn_8011D218 = .text:0x8011D218; // type:function size:0x4 +fn_8011D21C = .text:0x8011D21C; // type:function size:0x4 +fn_8011D220 = .text:0x8011D220; // type:function size:0x4 +fn_8011D224 = .text:0x8011D224; // type:function size:0x4 +fn_8011D228 = .text:0x8011D228; // type:function size:0x4 +fn_8011D22C = .text:0x8011D22C; // type:function size:0x4 +fn_8011D230 = .text:0x8011D230; // type:function size:0x4 +fn_8011D234 = .text:0x8011D234; // type:function size:0x4 +fn_8011D238 = .text:0x8011D238; // type:function size:0x4 +fn_8011D23C = .text:0x8011D23C; // type:function size:0x4 +fn_8011D240 = .text:0x8011D240; // type:function size:0x4 +fn_8011D244 = .text:0x8011D244; // type:function size:0x4 +fn_8011D248 = .text:0x8011D248; // type:function size:0x4 +fn_8011D24C = .text:0x8011D24C; // type:function size:0x4 +fn_8011D250 = .text:0x8011D250; // type:function size:0x4 +fn_8011D254 = .text:0x8011D254; // type:function size:0x4 +fn_8011D258 = .text:0x8011D258; // type:function size:0x4 +fn_8011D25C = .text:0x8011D25C; // type:function size:0x4 +fn_8011D260 = .text:0x8011D260; // type:function size:0x4 +fn_8011D264 = .text:0x8011D264; // type:function size:0x4 +fn_8011D268 = .text:0x8011D268; // type:function size:0x4 +fn_8011D26C = .text:0x8011D26C; // type:function size:0x4 +fn_8011D270 = .text:0x8011D270; // type:function size:0x4 +fn_8011D274 = .text:0x8011D274; // type:function size:0x4 +fn_8011D278 = .text:0x8011D278; // type:function size:0x4 +fn_8011D27C = .text:0x8011D27C; // type:function size:0x4 +fn_8011D280 = .text:0x8011D280; // type:function size:0x4 +fn_8011D284 = .text:0x8011D284; // type:function size:0x4 +fn_8011D288 = .text:0x8011D288; // type:function size:0x4 +fn_8011D28C = .text:0x8011D28C; // type:function size:0x4 +fn_8011D290 = .text:0x8011D290; // type:function size:0x4 +fn_8011D294 = .text:0x8011D294; // type:function size:0x4 +fn_8011D298 = .text:0x8011D298; // type:function size:0x4 +fn_8011D29C = .text:0x8011D29C; // type:function size:0x4 +fn_8011D2A0 = .text:0x8011D2A0; // type:function size:0x4 +fn_8011D2A4 = .text:0x8011D2A4; // type:function size:0x4 +fn_8011D2A8 = .text:0x8011D2A8; // type:function size:0x4 +fn_8011D2AC = .text:0x8011D2AC; // type:function size:0x4 +fn_8011D2B0 = .text:0x8011D2B0; // type:function size:0x4 +fn_8011D2B4 = .text:0x8011D2B4; // type:function size:0x4 +fn_8011D2B8 = .text:0x8011D2B8; // type:function size:0x4 +fn_8011D2BC = .text:0x8011D2BC; // type:function size:0x4 +fn_8011D2C0 = .text:0x8011D2C0; // type:function size:0x4 +fn_8011D2C4 = .text:0x8011D2C4; // type:function size:0x4 +fn_8011D2C8 = .text:0x8011D2C8; // type:function size:0x4 +fn_8011D2CC = .text:0x8011D2CC; // type:function size:0x4 +fn_8011D2D0 = .text:0x8011D2D0; // type:function size:0x4 +fn_8011D2D4 = .text:0x8011D2D4; // type:function size:0x4 +fn_8011D2D8 = .text:0x8011D2D8; // type:function size:0x4 +fn_8011D2DC = .text:0x8011D2DC; // type:function size:0x4 +fn_8011D2E0 = .text:0x8011D2E0; // type:function size:0x4 +fn_8011D2E4 = .text:0x8011D2E4; // type:function size:0x4 +fn_8011D2E8 = .text:0x8011D2E8; // type:function size:0x4 +fn_8011D2EC = .text:0x8011D2EC; // type:function size:0x4 +fn_8011D2F0 = .text:0x8011D2F0; // type:function size:0x4 +fn_8011D2F4 = .text:0x8011D2F4; // type:function size:0x4 +fn_8011D2F8 = .text:0x8011D2F8; // type:function size:0x4 +fn_8011D2FC = .text:0x8011D2FC; // type:function size:0x4 +fn_8011D300 = .text:0x8011D300; // type:function size:0x4 +fn_8011D304 = .text:0x8011D304; // type:function size:0x4 +fn_8011D308 = .text:0x8011D308; // type:function size:0x4 +fn_8011D30C = .text:0x8011D30C; // type:function size:0x4 +fn_8011D310 = .text:0x8011D310; // type:function size:0x4 +fn_8011D314 = .text:0x8011D314; // type:function size:0x4 +fn_8011D318 = .text:0x8011D318; // type:function size:0x4 +fn_8011D31C = .text:0x8011D31C; // type:function size:0x4 +fn_8011D320 = .text:0x8011D320; // type:function size:0x4 +fn_8011D324 = .text:0x8011D324; // type:function size:0x4 +fn_8011D328 = .text:0x8011D328; // type:function size:0x4 +fn_8011D32C = .text:0x8011D32C; // type:function size:0x4 +fn_8011D330 = .text:0x8011D330; // type:function size:0x4 +fn_8011D334 = .text:0x8011D334; // type:function size:0x4 +fn_8011D338 = .text:0x8011D338; // type:function size:0x4 +fn_8011D33C = .text:0x8011D33C; // type:function size:0x4 +fn_8011D340 = .text:0x8011D340; // type:function size:0x4 +fn_8011D344 = .text:0x8011D344; // type:function size:0x4 +fn_8011D348 = .text:0x8011D348; // type:function size:0x4 +fn_8011D34C = .text:0x8011D34C; // type:function size:0x4 +fn_8011D350 = .text:0x8011D350; // type:function size:0x4 +fn_8011D354 = .text:0x8011D354; // type:function size:0x4 +fn_8011D358 = .text:0x8011D358; // type:function size:0x4 +fn_8011D35C = .text:0x8011D35C; // type:function size:0x4 +fn_8011D360 = .text:0x8011D360; // type:function size:0x4 +fn_8011D364 = .text:0x8011D364; // type:function size:0x4 +fn_8011D368 = .text:0x8011D368; // type:function size:0x4 +fn_8011D36C = .text:0x8011D36C; // type:function size:0x4 +fn_8011D370 = .text:0x8011D370; // type:function size:0x4 +fn_8011D374 = .text:0x8011D374; // type:function size:0x4 +fn_8011D378 = .text:0x8011D378; // type:function size:0x4 +fn_8011D37C = .text:0x8011D37C; // type:function size:0x4 +fn_8011D380 = .text:0x8011D380; // type:function size:0x4 +fn_8011D384 = .text:0x8011D384; // type:function size:0x4 +fn_8011D388 = .text:0x8011D388; // type:function size:0x4 +fn_8011D38C = .text:0x8011D38C; // type:function size:0x4 +fn_8011D390 = .text:0x8011D390; // type:function size:0x4 +fn_8011D394 = .text:0x8011D394; // type:function size:0x4 +fn_8011D398 = .text:0x8011D398; // type:function size:0x4 +fn_8011D39C = .text:0x8011D39C; // type:function size:0x4 +fn_8011D3A0 = .text:0x8011D3A0; // type:function size:0x4 +fn_8011D3A4 = .text:0x8011D3A4; // type:function size:0x4 +fn_8011D3A8 = .text:0x8011D3A8; // type:function size:0x4 +fn_8011D3AC = .text:0x8011D3AC; // type:function size:0x4 +fn_8011D3B0 = .text:0x8011D3B0; // type:function size:0x4 +fn_8011D3B4 = .text:0x8011D3B4; // type:function size:0x4 +fn_8011D3B8 = .text:0x8011D3B8; // type:function size:0x4 +fn_8011D3BC = .text:0x8011D3BC; // type:function size:0x4 +fn_8011D3C0 = .text:0x8011D3C0; // type:function size:0x4 +fn_8011D3C4 = .text:0x8011D3C4; // type:function size:0x4 +fn_8011D3C8 = .text:0x8011D3C8; // type:function size:0x4 +fn_8011D3CC = .text:0x8011D3CC; // type:function size:0x4 +fn_8011D3D0 = .text:0x8011D3D0; // type:function size:0x4 +fn_8011D3D4 = .text:0x8011D3D4; // type:function size:0x4 +fn_8011D3D8 = .text:0x8011D3D8; // type:function size:0x4 +fn_8011D3DC = .text:0x8011D3DC; // type:function size:0x4 +fn_8011D3E0 = .text:0x8011D3E0; // type:function size:0x4 +fn_8011D3E4 = .text:0x8011D3E4; // type:function size:0x4 +fn_8011D3E8 = .text:0x8011D3E8; // type:function size:0x4 +fn_8011D3EC = .text:0x8011D3EC; // type:function size:0x4 +fn_8011D3F0 = .text:0x8011D3F0; // type:function size:0x4 +fn_8011D3F4 = .text:0x8011D3F4; // type:function size:0x4 +fn_8011D3F8 = .text:0x8011D3F8; // type:function size:0x4 +fn_8011D3FC = .text:0x8011D3FC; // type:function size:0x4 +fn_8011D400 = .text:0x8011D400; // type:function size:0x4 +fn_8011D404 = .text:0x8011D404; // type:function size:0x4 +fn_8011D408 = .text:0x8011D408; // type:function size:0x4 +fn_8011D40C = .text:0x8011D40C; // type:function size:0x4 +fn_8011D410 = .text:0x8011D410; // type:function size:0x4 +fn_8011D414 = .text:0x8011D414; // type:function size:0x4 +fn_8011D418 = .text:0x8011D418; // type:function size:0x4 +fn_8011D41C = .text:0x8011D41C; // type:function size:0x4 +fn_8011D420 = .text:0x8011D420; // type:function size:0x4 +fn_8011D424 = .text:0x8011D424; // type:function size:0x4 +fn_8011D428 = .text:0x8011D428; // type:function size:0x4 +fn_8011D42C = .text:0x8011D42C; // type:function size:0x4 +fn_8011D430 = .text:0x8011D430; // type:function size:0x4 +fn_8011D434 = .text:0x8011D434; // type:function size:0x4 +fn_8011D438 = .text:0x8011D438; // type:function size:0x4 +fn_8011D43C = .text:0x8011D43C; // type:function size:0x4 +fn_8011D440 = .text:0x8011D440; // type:function size:0x4 +fn_8011D444 = .text:0x8011D444; // type:function size:0x4 +fn_8011D448 = .text:0x8011D448; // type:function size:0x4 +fn_8011D44C = .text:0x8011D44C; // type:function size:0x4 +fn_8011D450 = .text:0x8011D450; // type:function size:0x4 +fn_8011D454 = .text:0x8011D454; // type:function size:0x4 +fn_8011D458 = .text:0x8011D458; // type:function size:0x4 +fn_8011D45C = .text:0x8011D45C; // type:function size:0x4 +fn_8011D460 = .text:0x8011D460; // type:function size:0x4 +fn_8011D464 = .text:0x8011D464; // type:function size:0x4 +fn_8011D468 = .text:0x8011D468; // type:function size:0x4 +fn_8011D46C = .text:0x8011D46C; // type:function size:0x4 +fn_8011D470 = .text:0x8011D470; // type:function size:0x4 +fn_8011D474 = .text:0x8011D474; // type:function size:0x4 +fn_8011D478 = .text:0x8011D478; // type:function size:0x4 +fn_8011D47C = .text:0x8011D47C; // type:function size:0x4 +fn_8011D480 = .text:0x8011D480; // type:function size:0x4 +fn_8011D484 = .text:0x8011D484; // type:function size:0x4 +fn_8011D488 = .text:0x8011D488; // type:function size:0x4 +fn_8011D48C = .text:0x8011D48C; // type:function size:0x4 +fn_8011D490 = .text:0x8011D490; // type:function size:0x4 +fn_8011D494 = .text:0x8011D494; // type:function size:0x4 +fn_8011D498 = .text:0x8011D498; // type:function size:0x4 +fn_8011D49C = .text:0x8011D49C; // type:function size:0x4 +fn_8011D4A0 = .text:0x8011D4A0; // type:function size:0x4 +fn_8011D4A4 = .text:0x8011D4A4; // type:function size:0x4 +fn_8011D4A8 = .text:0x8011D4A8; // type:function size:0x4 +fn_8011D4AC = .text:0x8011D4AC; // type:function size:0x4 +fn_8011D4B0 = .text:0x8011D4B0; // type:function size:0x4 +fn_8011D4B4 = .text:0x8011D4B4; // type:function size:0x4 +fn_8011D4B8 = .text:0x8011D4B8; // type:function size:0x4 +fn_8011D4BC = .text:0x8011D4BC; // type:function size:0x4 +fn_8011D4C0 = .text:0x8011D4C0; // type:function size:0x4 +fn_8011D4C4 = .text:0x8011D4C4; // type:function size:0x4 +fn_8011D4C8 = .text:0x8011D4C8; // type:function size:0x4 +fn_8011D4CC = .text:0x8011D4CC; // type:function size:0x4 +fn_8011D4D0 = .text:0x8011D4D0; // type:function size:0x4 +fn_8011D4D4 = .text:0x8011D4D4; // type:function size:0x4 +fn_8011D4D8 = .text:0x8011D4D8; // type:function size:0x4 +fn_8011D4DC = .text:0x8011D4DC; // type:function size:0x4 +fn_8011D4E0 = .text:0x8011D4E0; // type:function size:0x4 +fn_8011D4E4 = .text:0x8011D4E4; // type:function size:0x4 +fn_8011D4E8 = .text:0x8011D4E8; // type:function size:0x4 +fn_8011D4EC = .text:0x8011D4EC; // type:function size:0x4 +fn_8011D4F0 = .text:0x8011D4F0; // type:function size:0x4 +fn_8011D4F4 = .text:0x8011D4F4; // type:function size:0x4 +fn_8011D4F8 = .text:0x8011D4F8; // type:function size:0x4 +fn_8011D4FC = .text:0x8011D4FC; // type:function size:0x4 +fn_8011D500 = .text:0x8011D500; // type:function size:0x4 +fn_8011D504 = .text:0x8011D504; // type:function size:0x4 +fn_8011D508 = .text:0x8011D508; // type:function size:0x4 +fn_8011D50C = .text:0x8011D50C; // type:function size:0x4 +fn_8011D510 = .text:0x8011D510; // type:function size:0x4 +fn_8011D514 = .text:0x8011D514; // type:function size:0x4 +fn_8011D518 = .text:0x8011D518; // type:function size:0x4 +fn_8011D51C = .text:0x8011D51C; // type:function size:0x4 +fn_8011D520 = .text:0x8011D520; // type:function size:0x4 +fn_8011D524 = .text:0x8011D524; // type:function size:0x4 +fn_8011D528 = .text:0x8011D528; // type:function size:0x4 +fn_8011D52C = .text:0x8011D52C; // type:function size:0x4 +fn_8011D530 = .text:0x8011D530; // type:function size:0x4 +fn_8011D534 = .text:0x8011D534; // type:function size:0x4 +fn_8011D538 = .text:0x8011D538; // type:function size:0x4 +fn_8011D53C = .text:0x8011D53C; // type:function size:0x4 +fn_8011D540 = .text:0x8011D540; // type:function size:0x4 +fn_8011D544 = .text:0x8011D544; // type:function size:0x4 +fn_8011D548 = .text:0x8011D548; // type:function size:0x4 +fn_8011D54C = .text:0x8011D54C; // type:function size:0x4 +fn_8011D550 = .text:0x8011D550; // type:function size:0x4 +fn_8011D554 = .text:0x8011D554; // type:function size:0x4 +fn_8011D558 = .text:0x8011D558; // type:function size:0x4 +fn_8011D55C = .text:0x8011D55C; // type:function size:0x4 +fn_8011D560 = .text:0x8011D560; // type:function size:0x4 +fn_8011D564 = .text:0x8011D564; // type:function size:0x4 +fn_8011D568 = .text:0x8011D568; // type:function size:0x4 +fn_8011D56C = .text:0x8011D56C; // type:function size:0x4 +fn_8011D570 = .text:0x8011D570; // type:function size:0x4 +fn_8011D574 = .text:0x8011D574; // type:function size:0x4 +fn_8011D578 = .text:0x8011D578; // type:function size:0x4 +fn_8011D57C = .text:0x8011D57C; // type:function size:0x4 +fn_8011D580 = .text:0x8011D580; // type:function size:0x4 +fn_8011D584 = .text:0x8011D584; // type:function size:0x4 +fn_8011D588 = .text:0x8011D588; // type:function size:0x4 +fn_8011D58C = .text:0x8011D58C; // type:function size:0x4 +fn_8011D590 = .text:0x8011D590; // type:function size:0x4 +fn_8011D594 = .text:0x8011D594; // type:function size:0x4 +fn_8011D598 = .text:0x8011D598; // type:function size:0x4 +fn_8011D59C = .text:0x8011D59C; // type:function size:0x4 +fn_8011D5A0 = .text:0x8011D5A0; // type:function size:0x4 +fn_8011D5A4 = .text:0x8011D5A4; // type:function size:0x4 +fn_8011D5A8 = .text:0x8011D5A8; // type:function size:0x4 +fn_8011D5AC = .text:0x8011D5AC; // type:function size:0x4 +fn_8011D5B0 = .text:0x8011D5B0; // type:function size:0x4 +fn_8011D5B4 = .text:0x8011D5B4; // type:function size:0x4 +fn_8011D5B8 = .text:0x8011D5B8; // type:function size:0x4 +fn_8011D5BC = .text:0x8011D5BC; // type:function size:0x4 +fn_8011D5C0 = .text:0x8011D5C0; // type:function size:0x4 +fn_8011D5C4 = .text:0x8011D5C4; // type:function size:0x4 +fn_8011D5C8 = .text:0x8011D5C8; // type:function size:0x4 +fn_8011D5CC = .text:0x8011D5CC; // type:function size:0x4 +fn_8011D5D0 = .text:0x8011D5D0; // type:function size:0x4 +fn_8011D5D4 = .text:0x8011D5D4; // type:function size:0x4 +fn_8011D5D8 = .text:0x8011D5D8; // type:function size:0x4 +fn_8011D5DC = .text:0x8011D5DC; // type:function size:0x4 +fn_8011D5E0 = .text:0x8011D5E0; // type:function size:0x4 +fn_8011D5E4 = .text:0x8011D5E4; // type:function size:0x4 +fn_8011D5E8 = .text:0x8011D5E8; // type:function size:0x4 +fn_8011D5EC = .text:0x8011D5EC; // type:function size:0x4 +fn_8011D5F0 = .text:0x8011D5F0; // type:function size:0x4 +fn_8011D5F4 = .text:0x8011D5F4; // type:function size:0x4 +fn_8011D5F8 = .text:0x8011D5F8; // type:function size:0x4 +fn_8011D5FC = .text:0x8011D5FC; // type:function size:0x4 +fn_8011D600 = .text:0x8011D600; // type:function size:0x4 +fn_8011D604 = .text:0x8011D604; // type:function size:0x4 +fn_8011D608 = .text:0x8011D608; // type:function size:0x4 +fn_8011D60C = .text:0x8011D60C; // type:function size:0x4 +fn_8011D610 = .text:0x8011D610; // type:function size:0x4 +fn_8011D614 = .text:0x8011D614; // type:function size:0x4 +fn_8011D618 = .text:0x8011D618; // type:function size:0x4 +fn_8011D61C = .text:0x8011D61C; // type:function size:0x4 +fn_8011D620 = .text:0x8011D620; // type:function size:0x4 +fn_8011D624 = .text:0x8011D624; // type:function size:0x4 +fn_8011D628 = .text:0x8011D628; // type:function size:0x4 +fn_8011D62C = .text:0x8011D62C; // type:function size:0x4 +fn_8011D630 = .text:0x8011D630; // type:function size:0x4 +fn_8011D634 = .text:0x8011D634; // type:function size:0x4 +fn_8011D638 = .text:0x8011D638; // type:function size:0x4 +fn_8011D63C = .text:0x8011D63C; // type:function size:0x4 +fn_8011D640 = .text:0x8011D640; // type:function size:0x4 +fn_8011D644 = .text:0x8011D644; // type:function size:0x4 +fn_8011D648 = .text:0x8011D648; // type:function size:0x4 +fn_8011D64C = .text:0x8011D64C; // type:function size:0x4 +fn_8011D650 = .text:0x8011D650; // type:function size:0x4 +fn_8011D654 = .text:0x8011D654; // type:function size:0x4 +fn_8011D658 = .text:0x8011D658; // type:function size:0x4 +fn_8011D65C = .text:0x8011D65C; // type:function size:0x4 +fn_8011D660 = .text:0x8011D660; // type:function size:0x4 +fn_8011D664 = .text:0x8011D664; // type:function size:0x4 +fn_8011D668 = .text:0x8011D668; // type:function size:0x4 +fn_8011D66C = .text:0x8011D66C; // type:function size:0x4 +fn_8011D670 = .text:0x8011D670; // type:function size:0x4 +fn_8011D674 = .text:0x8011D674; // type:function size:0x4 +fn_8011D678 = .text:0x8011D678; // type:function size:0x4 +fn_8011D67C = .text:0x8011D67C; // type:function size:0x4 +fn_8011D680 = .text:0x8011D680; // type:function size:0x4 +fn_8011D684 = .text:0x8011D684; // type:function size:0x4 +fn_8011D688 = .text:0x8011D688; // type:function size:0x4 +fn_8011D68C = .text:0x8011D68C; // type:function size:0x4 +fn_8011D690 = .text:0x8011D690; // type:function size:0x4 +fn_8011D694 = .text:0x8011D694; // type:function size:0x4 +fn_8011D698 = .text:0x8011D698; // type:function size:0x4 +fn_8011D69C = .text:0x8011D69C; // type:function size:0x4 +fn_8011D6A0 = .text:0x8011D6A0; // type:function size:0x4 +fn_8011D6A4 = .text:0x8011D6A4; // type:function size:0x4 +fn_8011D6A8 = .text:0x8011D6A8; // type:function size:0x4 +fn_8011D6AC = .text:0x8011D6AC; // type:function size:0x4 +fn_8011D6B0 = .text:0x8011D6B0; // type:function size:0x4 +fn_8011D6B4 = .text:0x8011D6B4; // type:function size:0x4 +fn_8011D6B8 = .text:0x8011D6B8; // type:function size:0x4 +fn_8011D6BC = .text:0x8011D6BC; // type:function size:0x4 +fn_8011D6C0 = .text:0x8011D6C0; // type:function size:0x4 +fn_8011D6C4 = .text:0x8011D6C4; // type:function size:0x4 +fn_8011D6C8 = .text:0x8011D6C8; // type:function size:0x4 +fn_8011D6CC = .text:0x8011D6CC; // type:function size:0x4 +fn_8011D6D0 = .text:0x8011D6D0; // type:function size:0x4 +fn_8011D6D4 = .text:0x8011D6D4; // type:function size:0x4 +fn_8011D6D8 = .text:0x8011D6D8; // type:function size:0x4 +fn_8011D6DC = .text:0x8011D6DC; // type:function size:0x4 +fn_8011D6E0 = .text:0x8011D6E0; // type:function size:0x4 +fn_8011D6E4 = .text:0x8011D6E4; // type:function size:0x4 +fn_8011D6E8 = .text:0x8011D6E8; // type:function size:0x4 +fn_8011D6EC = .text:0x8011D6EC; // type:function size:0x4 +fn_8011D6F0 = .text:0x8011D6F0; // type:function size:0x4 +fn_8011D6F4 = .text:0x8011D6F4; // type:function size:0x4 +fn_8011D6F8 = .text:0x8011D6F8; // type:function size:0x4 +fn_8011D6FC = .text:0x8011D6FC; // type:function size:0x4 +fn_8011D700 = .text:0x8011D700; // type:function size:0x4 +fn_8011D704 = .text:0x8011D704; // type:function size:0x4 +fn_8011D708 = .text:0x8011D708; // type:function size:0x4 +fn_8011D70C = .text:0x8011D70C; // type:function size:0x4 +fn_8011D710 = .text:0x8011D710; // type:function size:0x4 +fn_8011D714 = .text:0x8011D714; // type:function size:0x4 +fn_8011D718 = .text:0x8011D718; // type:function size:0x4 +fn_8011D71C = .text:0x8011D71C; // type:function size:0x4 +fn_8011D720 = .text:0x8011D720; // type:function size:0x4 +fn_8011D724 = .text:0x8011D724; // type:function size:0x4 +fn_8011D728 = .text:0x8011D728; // type:function size:0x4 +fn_8011D72C = .text:0x8011D72C; // type:function size:0x4 +fn_8011D730 = .text:0x8011D730; // type:function size:0x4 +fn_8011D734 = .text:0x8011D734; // type:function size:0x4 +fn_8011D738 = .text:0x8011D738; // type:function size:0x4 +fn_8011D73C = .text:0x8011D73C; // type:function size:0x4 +fn_8011D740 = .text:0x8011D740; // type:function size:0x4 +fn_8011D744 = .text:0x8011D744; // type:function size:0x4 +fn_8011D748 = .text:0x8011D748; // type:function size:0x4 +fn_8011D74C = .text:0x8011D74C; // type:function size:0x4 +fn_8011D750 = .text:0x8011D750; // type:function size:0x4 +fn_8011D754 = .text:0x8011D754; // type:function size:0x4 +fn_8011D758 = .text:0x8011D758; // type:function size:0x4 +fn_8011D75C = .text:0x8011D75C; // type:function size:0x4 +fn_8011D760 = .text:0x8011D760; // type:function size:0x4 +fn_8011D764 = .text:0x8011D764; // type:function size:0x4 +fn_8011D768 = .text:0x8011D768; // type:function size:0x4 +fn_8011D76C = .text:0x8011D76C; // type:function size:0x4 +fn_8011D770 = .text:0x8011D770; // type:function size:0x4 +fn_8011D774 = .text:0x8011D774; // type:function size:0x4 +fn_8011D778 = .text:0x8011D778; // type:function size:0x4 +fn_8011D77C = .text:0x8011D77C; // type:function size:0x4 +fn_8011D780 = .text:0x8011D780; // type:function size:0x4 +fn_8011D784 = .text:0x8011D784; // type:function size:0x4 +fn_8011D788 = .text:0x8011D788; // type:function size:0x4 +fn_8011D78C = .text:0x8011D78C; // type:function size:0x4 +fn_8011D790 = .text:0x8011D790; // type:function size:0x4 +fn_8011D794 = .text:0x8011D794; // type:function size:0x4 +fn_8011D798 = .text:0x8011D798; // type:function size:0x4 +fn_8011D79C = .text:0x8011D79C; // type:function size:0x4 +fn_8011D7A0 = .text:0x8011D7A0; // type:function size:0x4 +fn_8011D7A4 = .text:0x8011D7A4; // type:function size:0x4 +fn_8011D7A8 = .text:0x8011D7A8; // type:function size:0x4 +fn_8011D7AC = .text:0x8011D7AC; // type:function size:0x4 +fn_8011D7B0 = .text:0x8011D7B0; // type:function size:0x4 +fn_8011D7B4 = .text:0x8011D7B4; // type:function size:0x4 +fn_8011D7B8 = .text:0x8011D7B8; // type:function size:0x4 +fn_8011D7BC = .text:0x8011D7BC; // type:function size:0x4 +fn_8011D7C0 = .text:0x8011D7C0; // type:function size:0x4 +fn_8011D7C4 = .text:0x8011D7C4; // type:function size:0x4 +fn_8011D7C8 = .text:0x8011D7C8; // type:function size:0x4 +fn_8011D7CC = .text:0x8011D7CC; // type:function size:0x4 +fn_8011D7D0 = .text:0x8011D7D0; // type:function size:0x4 +fn_8011D7D4 = .text:0x8011D7D4; // type:function size:0x4 +fn_8011D7D8 = .text:0x8011D7D8; // type:function size:0x4 +fn_8011D7DC = .text:0x8011D7DC; // type:function size:0x4 +fn_8011D7E0 = .text:0x8011D7E0; // type:function size:0x4 +fn_8011D7E4 = .text:0x8011D7E4; // type:function size:0x4 +fn_8011D7E8 = .text:0x8011D7E8; // type:function size:0x4 +fn_8011D7EC = .text:0x8011D7EC; // type:function size:0x4 +fn_8011D7F0 = .text:0x8011D7F0; // type:function size:0x4 +fn_8011D7F4 = .text:0x8011D7F4; // type:function size:0x4 +fn_8011D7F8 = .text:0x8011D7F8; // type:function size:0x4 +fn_8011D7FC = .text:0x8011D7FC; // type:function size:0x4 +fn_8011D800 = .text:0x8011D800; // type:function size:0x4 +fn_8011D804 = .text:0x8011D804; // type:function size:0x4 +fn_8011D808 = .text:0x8011D808; // type:function size:0x4 +fn_8011D80C = .text:0x8011D80C; // type:function size:0x4 +fn_8011D810 = .text:0x8011D810; // type:function size:0x4 +fn_8011D814 = .text:0x8011D814; // type:function size:0x4 +fn_8011D818 = .text:0x8011D818; // type:function size:0x4 +fn_8011D81C = .text:0x8011D81C; // type:function size:0x4 +fn_8011D820 = .text:0x8011D820; // type:function size:0x4 +fn_8011D824 = .text:0x8011D824; // type:function size:0x4 +fn_8011D828 = .text:0x8011D828; // type:function size:0x4 +fn_8011D82C = .text:0x8011D82C; // type:function size:0x4 +fn_8011D830 = .text:0x8011D830; // type:function size:0x4 +fn_8011D834 = .text:0x8011D834; // type:function size:0x4 +fn_8011D838 = .text:0x8011D838; // type:function size:0x4 +fn_8011D83C = .text:0x8011D83C; // type:function size:0x4 +fn_8011D840 = .text:0x8011D840; // type:function size:0x4 +fn_8011D844 = .text:0x8011D844; // type:function size:0x4 +fn_8011D848 = .text:0x8011D848; // type:function size:0x4 +fn_8011D84C = .text:0x8011D84C; // type:function size:0x4 +fn_8011D850 = .text:0x8011D850; // type:function size:0x4 +fn_8011D854 = .text:0x8011D854; // type:function size:0x4 +fn_8011D858 = .text:0x8011D858; // type:function size:0x4 +fn_8011D85C = .text:0x8011D85C; // type:function size:0x4 +fn_8011D860 = .text:0x8011D860; // type:function size:0x4 +fn_8011D864 = .text:0x8011D864; // type:function size:0x4 +fn_8011D868 = .text:0x8011D868; // type:function size:0x4 +fn_8011D86C = .text:0x8011D86C; // type:function size:0x4 +fn_8011D870 = .text:0x8011D870; // type:function size:0x4 +fn_8011D874 = .text:0x8011D874; // type:function size:0x4 +fn_8011D878 = .text:0x8011D878; // type:function size:0x4 +fn_8011D87C = .text:0x8011D87C; // type:function size:0x4 +fn_8011D880 = .text:0x8011D880; // type:function size:0x4 +fn_8011D884 = .text:0x8011D884; // type:function size:0x4 +fn_8011D888 = .text:0x8011D888; // type:function size:0x4 +fn_8011D88C = .text:0x8011D88C; // type:function size:0x4 +fn_8011D890 = .text:0x8011D890; // type:function size:0x4 +fn_8011D894 = .text:0x8011D894; // type:function size:0x4 +fn_8011D898 = .text:0x8011D898; // type:function size:0x4 +fn_8011D89C = .text:0x8011D89C; // type:function size:0x4 +fn_8011D8A0 = .text:0x8011D8A0; // type:function size:0x4 +fn_8011D8A4 = .text:0x8011D8A4; // type:function size:0x4 +fn_8011D8A8 = .text:0x8011D8A8; // type:function size:0x4 +fn_8011D8AC = .text:0x8011D8AC; // type:function size:0x4 +fn_8011D8B0 = .text:0x8011D8B0; // type:function size:0x4 +fn_8011D8B4 = .text:0x8011D8B4; // type:function size:0x4 +fn_8011D8B8 = .text:0x8011D8B8; // type:function size:0x4 +fn_8011D8BC = .text:0x8011D8BC; // type:function size:0x4 +fn_8011D8C0 = .text:0x8011D8C0; // type:function size:0x4 +fn_8011D8C4 = .text:0x8011D8C4; // type:function size:0x4 +fn_8011D8C8 = .text:0x8011D8C8; // type:function size:0x4 +fn_8011D8CC = .text:0x8011D8CC; // type:function size:0x4 +fn_8011D8D0 = .text:0x8011D8D0; // type:function size:0x4 +fn_8011D8D4 = .text:0x8011D8D4; // type:function size:0x4 +fn_8011D8D8 = .text:0x8011D8D8; // type:function size:0x4 +fn_8011D8DC = .text:0x8011D8DC; // type:function size:0x4 +fn_8011D8E0 = .text:0x8011D8E0; // type:function size:0x4 +fn_8011D8E4 = .text:0x8011D8E4; // type:function size:0x4 +fn_8011D8E8 = .text:0x8011D8E8; // type:function size:0x4 +fn_8011D8EC = .text:0x8011D8EC; // type:function size:0x4 +fn_8011D8F0 = .text:0x8011D8F0; // type:function size:0x4 +fn_8011D8F4 = .text:0x8011D8F4; // type:function size:0x4 +fn_8011D8F8 = .text:0x8011D8F8; // type:function size:0x4 +fn_8011D8FC = .text:0x8011D8FC; // type:function size:0x4 +fn_8011D900 = .text:0x8011D900; // type:function size:0x4 +fn_8011D904 = .text:0x8011D904; // type:function size:0x4 +fn_8011D908 = .text:0x8011D908; // type:function size:0x4 +fn_8011D90C = .text:0x8011D90C; // type:function size:0x4 +fn_8011D910 = .text:0x8011D910; // type:function size:0x4 +fn_8011D914 = .text:0x8011D914; // type:function size:0x4 +fn_8011D918 = .text:0x8011D918; // type:function size:0x4 +fn_8011D91C = .text:0x8011D91C; // type:function size:0x4 +fn_8011D920 = .text:0x8011D920; // type:function size:0x4 +fn_8011D924 = .text:0x8011D924; // type:function size:0x4 +fn_8011D928 = .text:0x8011D928; // type:function size:0x4 +fn_8011D92C = .text:0x8011D92C; // type:function size:0x4 +fn_8011D930 = .text:0x8011D930; // type:function size:0x4 +fn_8011D934 = .text:0x8011D934; // type:function size:0x4 +fn_8011D938 = .text:0x8011D938; // type:function size:0x4 +fn_8011D93C = .text:0x8011D93C; // type:function size:0x4 +fn_8011D940 = .text:0x8011D940; // type:function size:0x4 +fn_8011D944 = .text:0x8011D944; // type:function size:0x4 +fn_8011D948 = .text:0x8011D948; // type:function size:0x4 +fn_8011D94C = .text:0x8011D94C; // type:function size:0x4 +fn_8011D950 = .text:0x8011D950; // type:function size:0x4 +fn_8011D954 = .text:0x8011D954; // type:function size:0x4 +fn_8011D958 = .text:0x8011D958; // type:function size:0x4 +fn_8011D95C = .text:0x8011D95C; // type:function size:0x4 +fn_8011D960 = .text:0x8011D960; // type:function size:0x4 +fn_8011D964 = .text:0x8011D964; // type:function size:0x4 +fn_8011D968 = .text:0x8011D968; // type:function size:0x4 +fn_8011D96C = .text:0x8011D96C; // type:function size:0x4 +fn_8011D970 = .text:0x8011D970; // type:function size:0x4 +fn_8011D974 = .text:0x8011D974; // type:function size:0x4 +fn_8011D978 = .text:0x8011D978; // type:function size:0x4 +fn_8011D97C = .text:0x8011D97C; // type:function size:0x4 +fn_8011D980 = .text:0x8011D980; // type:function size:0x4 +fn_8011D984 = .text:0x8011D984; // type:function size:0x4 +fn_8011D988 = .text:0x8011D988; // type:function size:0x4 +fn_8011D98C = .text:0x8011D98C; // type:function size:0x4 +fn_8011D990 = .text:0x8011D990; // type:function size:0x4 +fn_8011D994 = .text:0x8011D994; // type:function size:0x4 +fn_8011D998 = .text:0x8011D998; // type:function size:0x4 +fn_8011D99C = .text:0x8011D99C; // type:function size:0x4 +fn_8011D9A0 = .text:0x8011D9A0; // type:function size:0x4 +fn_8011D9A4 = .text:0x8011D9A4; // type:function size:0x4 +fn_8011D9A8 = .text:0x8011D9A8; // type:function size:0x4 +fn_8011D9AC = .text:0x8011D9AC; // type:function size:0x4 +fn_8011D9B0 = .text:0x8011D9B0; // type:function size:0x4 +fn_8011D9B4 = .text:0x8011D9B4; // type:function size:0x4 +fn_8011D9B8 = .text:0x8011D9B8; // type:function size:0x4 +fn_8011D9BC = .text:0x8011D9BC; // type:function size:0x4 +fn_8011D9C0 = .text:0x8011D9C0; // type:function size:0x4 +fn_8011D9C4 = .text:0x8011D9C4; // type:function size:0x4 +fn_8011D9C8 = .text:0x8011D9C8; // type:function size:0x4 +fn_8011D9CC = .text:0x8011D9CC; // type:function size:0x4 +fn_8011D9D0 = .text:0x8011D9D0; // type:function size:0x4 +fn_8011D9D4 = .text:0x8011D9D4; // type:function size:0x4 +fn_8011D9D8 = .text:0x8011D9D8; // type:function size:0x4 +fn_8011D9DC = .text:0x8011D9DC; // type:function size:0x4 +fn_8011D9E0 = .text:0x8011D9E0; // type:function size:0x4 +fn_8011D9E4 = .text:0x8011D9E4; // type:function size:0x4 +fn_8011D9E8 = .text:0x8011D9E8; // type:function size:0x4 +fn_8011D9EC = .text:0x8011D9EC; // type:function size:0x4 +fn_8011D9F0 = .text:0x8011D9F0; // type:function size:0x4 +fn_8011D9F4 = .text:0x8011D9F4; // type:function size:0x4 +fn_8011D9F8 = .text:0x8011D9F8; // type:function size:0x4 +fn_8011D9FC = .text:0x8011D9FC; // type:function size:0x4 +fn_8011DA00 = .text:0x8011DA00; // type:function size:0x4 +fn_8011DA04 = .text:0x8011DA04; // type:function size:0x4 +fn_8011DA08 = .text:0x8011DA08; // type:function size:0x4 +fn_8011DA0C = .text:0x8011DA0C; // type:function size:0x4 +fn_8011DA10 = .text:0x8011DA10; // type:function size:0x4 +fn_8011DA14 = .text:0x8011DA14; // type:function size:0x4 +fn_8011DA18 = .text:0x8011DA18; // type:function size:0x4 +fn_8011DA1C = .text:0x8011DA1C; // type:function size:0x4 +fn_8011DA20 = .text:0x8011DA20; // type:function size:0x4 +fn_8011DA24 = .text:0x8011DA24; // type:function size:0x4 +fn_8011DA28 = .text:0x8011DA28; // type:function size:0x4 +fn_8011DA2C = .text:0x8011DA2C; // type:function size:0x4 +fn_8011DA30 = .text:0x8011DA30; // type:function size:0x4 +fn_8011DA34 = .text:0x8011DA34; // type:function size:0x4 +fn_8011DA38 = .text:0x8011DA38; // type:function size:0x4 +fn_8011DA3C = .text:0x8011DA3C; // type:function size:0x4 +fn_8011DA40 = .text:0x8011DA40; // type:function size:0x4 +fn_8011DA44 = .text:0x8011DA44; // type:function size:0x4 +fn_8011DA48 = .text:0x8011DA48; // type:function size:0x4 +fn_8011DA4C = .text:0x8011DA4C; // type:function size:0x4 +fn_8011DA50 = .text:0x8011DA50; // type:function size:0x4 +fn_8011DA54 = .text:0x8011DA54; // type:function size:0x4 +fn_8011DA58 = .text:0x8011DA58; // type:function size:0x4 +fn_8011DA5C = .text:0x8011DA5C; // type:function size:0x4 +fn_8011DA60 = .text:0x8011DA60; // type:function size:0x4 +fn_8011DA64 = .text:0x8011DA64; // type:function size:0x4 +fn_8011DA68 = .text:0x8011DA68; // type:function size:0x4 +fn_8011DA6C = .text:0x8011DA6C; // type:function size:0x4 +fn_8011DA70 = .text:0x8011DA70; // type:function size:0x4 +fn_8011DA74 = .text:0x8011DA74; // type:function size:0x4 +fn_8011DA78 = .text:0x8011DA78; // type:function size:0x4 +fn_8011DA7C = .text:0x8011DA7C; // type:function size:0x4 +fn_8011DA80 = .text:0x8011DA80; // type:function size:0x4 +fn_8011DA84 = .text:0x8011DA84; // type:function size:0x4 +fn_8011DA88 = .text:0x8011DA88; // type:function size:0x4 +fn_8011DA8C = .text:0x8011DA8C; // type:function size:0x4 +fn_8011DA90 = .text:0x8011DA90; // type:function size:0x4 +fn_8011DA94 = .text:0x8011DA94; // type:function size:0x4 +fn_8011DA98 = .text:0x8011DA98; // type:function size:0x4 +fn_8011DA9C = .text:0x8011DA9C; // type:function size:0x4 +fn_8011DAA0 = .text:0x8011DAA0; // type:function size:0x4 +fn_8011DAA4 = .text:0x8011DAA4; // type:function size:0x4 +fn_8011DAA8 = .text:0x8011DAA8; // type:function size:0x4 +fn_8011DAAC = .text:0x8011DAAC; // type:function size:0x4 +fn_8011DAB0 = .text:0x8011DAB0; // type:function size:0x4 +fn_8011DAB4 = .text:0x8011DAB4; // type:function size:0x4 +fn_8011DAB8 = .text:0x8011DAB8; // type:function size:0x4 +fn_8011DABC = .text:0x8011DABC; // type:function size:0x4 +fn_8011DAC0 = .text:0x8011DAC0; // type:function size:0x4 +fn_8011DAC4 = .text:0x8011DAC4; // type:function size:0x4 +fn_8011DAC8 = .text:0x8011DAC8; // type:function size:0x4 +fn_8011DACC = .text:0x8011DACC; // type:function size:0x4 +fn_8011DAD0 = .text:0x8011DAD0; // type:function size:0x4 +fn_8011DAD4 = .text:0x8011DAD4; // type:function size:0x4 +fn_8011DAD8 = .text:0x8011DAD8; // type:function size:0x4 +fn_8011DADC = .text:0x8011DADC; // type:function size:0x4 +_ctors = .ctors:0x8011DAE0; // type:label scope:global data:4byte +__init_cpp_exceptions_reference = .ctors:0x8011DAE0; // type:object size:0x4 scope:global +_dtors = .dtors:0x8011DB00; // type:label scope:global data:4byte +__destroy_global_chain_reference = .dtors:0x8011DB00; // type:object size:0x4 scope:global +__fini_cpp_exceptions_reference = .dtors:0x8011DB04; // type:object size:0x4 scope:global +lbl_8011DB20 = .rodata:0x8011DB20; // type:object size:0x10 data:4byte +lbl_8011DB30 = .rodata:0x8011DB30; // type:object size:0x10 data:4byte +lbl_8011DB40 = .rodata:0x8011DB40; // type:object size:0x10 data:4byte +lbl_8011DB50 = .rodata:0x8011DB50; // type:object size:0x20 scope:local data:byte +lbl_8011DB70 = .rodata:0x8011DB70; // type:object size:0x10 data:4byte +lbl_8011DB80 = .rodata:0x8011DB80; // type:object size:0x24 data:4byte +lbl_8011DBA4 = .rodata:0x8011DBA4; // type:object size:0xC data:4byte +lbl_8011DBB0 = .rodata:0x8011DBB0; // type:object size:0x20 data:4byte +lbl_8011DBD0 = .rodata:0x8011DBD0; // type:object size:0x7C data:4byte +lbl_8011DC4C = .rodata:0x8011DC4C; // type:object size:0x24 data:4byte +lbl_8011DC70 = .rodata:0x8011DC70; // type:object size:0x10 data:4byte +lbl_8011DC80 = .rodata:0x8011DC80; // type:object size:0x38 data:4byte +lbl_8011DCB8 = .rodata:0x8011DCB8; // type:object size:0x38 data:4byte +lbl_8011DCF0 = .rodata:0x8011DCF0; // type:object size:0x20 data:4byte +lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte +lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0x90 data:4byte +lbl_8011DDB0 = .rodata:0x8011DDB0; // type:object size:0x20 data:4byte +lbl_8011DDD0 = .rodata:0x8011DDD0; // type:object size:0x20 data:4byte +pickSpr = .rodata:0x8011DDF0; // type:object size:0x20 scope:local +handMdl = .rodata:0x8011DE10; // type:object size:0x20 scope:local +ticketSpr = .rodata:0x8011DE30; // type:object size:0x10 scope:local +lbl_8011DE40 = .rodata:0x8011DE40; // type:object size:0x20 data:4byte +starMesTbl1 = .rodata:0x8011DE60; // type:object size:0x24 scope:local +starMesTbl2 = .rodata:0x8011DE84; // type:object size:0x48 scope:local +lbl_8011DED0 = .rodata:0x8011DED0; // type:object size:0x68 data:4byte +lbl_8011DF38 = .rodata:0x8011DF38; // type:object size:0x38 data:4byte +lbl_8011DF70 = .rodata:0x8011DF70; // type:object size:0x3C data:4byte +lbl_8011DFAC = .rodata:0x8011DFAC; // type:object size:0x14 data:2byte +lbl_8011DFC0 = .rodata:0x8011DFC0; // type:object size:0x20 data:4byte +lbl_8011DFE0 = .rodata:0x8011DFE0; // type:object size:0x20 data:4byte +lbl_8011E000 = .rodata:0x8011E000; // type:object size:0x20 data:4byte +lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte +lbl_8011E040 = .rodata:0x8011E040; // type:object size:0xC data:4byte +lbl_8011E04C = .rodata:0x8011E04C; // type:object size:0xC data:4byte +lbl_8011E058 = .rodata:0x8011E058; // type:object size:0xC data:4byte +lbl_8011E064 = .rodata:0x8011E064; // type:object size:0xC data:4byte +bowserMotTbl = .rodata:0x8011E070; // type:object size:0x18 scope:local +lbl_8011E088 = .rodata:0x8011E088; // type:object size:0x70 data:4byte +lbl_8011E0F8 = .rodata:0x8011E0F8; // type:object size:0xC data:byte +miniBowserMotTbl = .rodata:0x8011E104; // type:object size:0x1C scope:local +lbl_8011E120 = .rodata:0x8011E120; // type:object size:0x24 data:4byte +lbl_8011E144 = .rodata:0x8011E144; // type:object size:0x20 data:4byte +lbl_8011E164 = .rodata:0x8011E164; // type:object size:0x2C data:4byte +lbl_8011E190 = .rodata:0x8011E190; // type:object size:0x10 data:4byte +lbl_8011E1A0 = .rodata:0x8011E1A0; // type:object size:0x28 data:4byte +lbl_8011E1C8 = .rodata:0x8011E1C8; // type:object size:0x28 data:4byte +lbl_8011E1F0 = .rodata:0x8011E1F0; // type:object size:0x20 data:4byte +lbl_8011E210 = .rodata:0x8011E210; // type:object size:0x20 data:4byte +lbl_8011E230 = .rodata:0x8011E230; // type:object size:0x20 data:4byte +lbl_8011E250 = .rodata:0x8011E250; // type:object size:0x10 data:4byte +lbl_8011E260 = .rodata:0x8011E260; // type:object size:0x90 data:byte +lbl_8011E2F0 = .rodata:0x8011E2F0; // type:object size:0x10 +lbl_8011E300 = .rodata:0x8011E300; // type:object size:0x10 +lbl_8011E310 = .rodata:0x8011E310; // type:object size:0x18 data:double +lbl_8011E328 = .rodata:0x8011E328; // type:object size:0x54 +lbl_8011E37C = .rodata:0x8011E37C; // type:object size:0x14 +lbl_8011E390 = .rodata:0x8011E390; // type:object size:0x10 +lbl_8011E3A0 = .rodata:0x8011E3A0; // type:object size:0x20 +lbl_8011E3C0 = .rodata:0x8011E3C0; // type:object size:0x38 +lbl_8011E3F8 = .rodata:0x8011E3F8; // type:object size:0x40 +lbl_8011E438 = .rodata:0x8011E438; // type:object size:0x18 data:4byte +lbl_8011E450 = .rodata:0x8011E450; // type:object size:0xE0 +@stringBase0 = .rodata:0x8011E530; // type:object size:0x25 scope:local data:string_table +lbl_8011E558 = .rodata:0x8011E558; // type:object size:0x10 +lbl_8011E568 = .rodata:0x8011E568; // type:object size:0x30 data:double +lbl_8011E598 = .rodata:0x8011E598; // type:object size:0x108 +lbl_8011E6A0 = .rodata:0x8011E6A0; // type:object size:0x80 +lbl_8011E720 = .rodata:0x8011E720; // type:object size:0x10 +lbl_8011E730 = .rodata:0x8011E730; // type:object size:0x40 data:double +lbl_8011E770 = .rodata:0x8011E770; // type:object size:0x68 data:double +lbl_8011E7D8 = .rodata:0x8011E7D8; // type:object size:0x98 +@62 = .rodata:0x8011E870; // type:object size:0x1B scope:local data:string +lbl_8011E890 = .rodata:0x8011E890; // type:object size:0x20 +lbl_8011E8B0 = .rodata:0x8011E8B0; // type:object size:0x10 data:4byte +lbl_8011E8C0 = .rodata:0x8011E8C0; // type:object size:0x28 data:4byte +lbl_8011E8E8 = .rodata:0x8011E8E8; // type:object size:0x28 data:4byte +lbl_8011E910 = .rodata:0x8011E910; // type:object size:0x28 data:4byte +@154 = .rodata:0x8011E938; // type:object size:0x21 scope:local data:string +@155 = .rodata:0x8011E95C; // type:object size:0x24 scope:local data:string +lbl_8011E980 = .rodata:0x8011E980; // type:object size:0x40 +lbl_8011E9C0 = .rodata:0x8011E9C0; // type:object size:0x18 +lbl_8011E9D8 = .rodata:0x8011E9D8; // type:object size:0x88 +lbl_8011EA60 = .rodata:0x8011EA60; // type:object size:0x88 data:byte +lbl_8011EAE8 = .rodata:0x8011EAE8; // type:object size:0x100 +lbl_8011EC00 = .data:0x8011EC00; // type:object size:0x10 data:string +chanTbl = .data:0x8011EC10; // type:object size:0x10 scope:local +lbl_8011EC20 = .data:0x8011EC20; // type:object size:0x124 +jumptable_8011ED44 = .data:0x8011ED44; // type:object size:0x34 scope:local +lbl_8011ED78 = .data:0x8011ED78; // type:object size:0x11 data:string +lbl_8011ED89 = .data:0x8011ED89; // type:object size:0x11 data:string +lbl_8011ED9A = .data:0x8011ED9A; // type:object size:0x10 data:string +lbl_8011EDAA = .data:0x8011EDAA; // type:object size:0x10 data:string +lbl_8011EDBA = .data:0x8011EDBA; // type:object size:0x14 data:string +lbl_8011EDCE = .data:0x8011EDCE; // type:object size:0x11 data:string +lbl_8011EDDF = .data:0x8011EDDF; // type:object size:0x10 data:string +lbl_8011EDEF = .data:0x8011EDEF; // type:object size:0xF data:string +lbl_8011EDFE = .data:0x8011EDFE; // type:object size:0x10 data:string +lbl_8011EE0E = .data:0x8011EE0E; // type:object size:0x13 data:string +lbl_8011EE21 = .data:0x8011EE21; // type:object size:0xF data:string +lbl_8011EE30 = .data:0x8011EE30; // type:object size:0x13 data:string +lbl_8011EE43 = .data:0x8011EE43; // type:object size:0x13 data:string +lbl_8011EE56 = .data:0x8011EE56; // type:object size:0x12 data:string +lbl_8011EE68 = .data:0x8011EE68; // type:object size:0x10 data:string +lbl_8011EE78 = .data:0x8011EE78; // type:object size:0x14 data:string +lbl_8011EE8C = .data:0x8011EE8C; // type:object size:0x14 data:string +lbl_8011EEA0 = .data:0x8011EEA0; // type:object size:0x13 data:string +lbl_8011EEB3 = .data:0x8011EEB3; // type:object size:0x10 data:string +lbl_8011EEC3 = .data:0x8011EEC3; // type:object size:0x11 data:string +lbl_8011EED4 = .data:0x8011EED4; // type:object size:0xE data:string +lbl_8011EEE2 = .data:0x8011EEE2; // type:object size:0x12 data:string +lbl_8011EEF4 = .data:0x8011EEF4; // type:object size:0x11 data:string +lbl_8011EF05 = .data:0x8011EF05; // type:object size:0xF data:string +lbl_8011EF14 = .data:0x8011EF14; // type:object size:0x13 data:string +lbl_8011EF27 = .data:0x8011EF27; // type:object size:0x13 data:string +lbl_8011EF3A = .data:0x8011EF3A; // type:object size:0x12 data:string +lbl_8011EF4C = .data:0x8011EF4C; // type:object size:0xE data:string +lbl_8011EF5A = .data:0x8011EF5A; // type:object size:0xE data:string +lbl_8011EF68 = .data:0x8011EF68; // type:object size:0xE data:string +lbl_8011EF76 = .data:0x8011EF76; // type:object size:0xE data:string +lbl_8011EF84 = .data:0x8011EF84; // type:object size:0xE data:string +lbl_8011EF92 = .data:0x8011EF92; // type:object size:0xE data:string +lbl_8011EFA0 = .data:0x8011EFA0; // type:object size:0xE data:string +lbl_8011EFAE = .data:0x8011EFAE; // type:object size:0xE data:string +lbl_8011EFBC = .data:0x8011EFBC; // type:object size:0xE data:string +lbl_8011EFCA = .data:0x8011EFCA; // type:object size:0xE data:string +lbl_8011EFD8 = .data:0x8011EFD8; // type:object size:0xE data:string +lbl_8011EFE6 = .data:0x8011EFE6; // type:object size:0xE data:string +lbl_8011EFF4 = .data:0x8011EFF4; // type:object size:0xE data:string +lbl_8011F002 = .data:0x8011F002; // type:object size:0xE data:string +lbl_8011F010 = .data:0x8011F010; // type:object size:0xE data:string +lbl_8011F01E = .data:0x8011F01E; // type:object size:0xE data:string +lbl_8011F02C = .data:0x8011F02C; // type:object size:0xE data:string +lbl_8011F03A = .data:0x8011F03A; // type:object size:0xE data:string +lbl_8011F048 = .data:0x8011F048; // type:object size:0xE data:string +lbl_8011F056 = .data:0x8011F056; // type:object size:0xE data:string +lbl_8011F064 = .data:0x8011F064; // type:object size:0xE data:string +lbl_8011F072 = .data:0x8011F072; // type:object size:0xE data:string +lbl_8011F080 = .data:0x8011F080; // type:object size:0xE data:string +lbl_8011F08E = .data:0x8011F08E; // type:object size:0xE data:string +lbl_8011F09C = .data:0x8011F09C; // type:object size:0xE data:string +lbl_8011F0AA = .data:0x8011F0AA; // type:object size:0xE data:string +lbl_8011F0B8 = .data:0x8011F0B8; // type:object size:0xE data:string +lbl_8011F0C6 = .data:0x8011F0C6; // type:object size:0xE data:string +lbl_8011F0D4 = .data:0x8011F0D4; // type:object size:0xE data:string +lbl_8011F0E2 = .data:0x8011F0E2; // type:object size:0xE data:string +lbl_8011F0F0 = .data:0x8011F0F0; // type:object size:0xE data:string +lbl_8011F0FE = .data:0x8011F0FE; // type:object size:0xE data:string +lbl_8011F10C = .data:0x8011F10C; // type:object size:0xE data:string +lbl_8011F11A = .data:0x8011F11A; // type:object size:0xE data:string +lbl_8011F128 = .data:0x8011F128; // type:object size:0xE data:string +lbl_8011F136 = .data:0x8011F136; // type:object size:0xE data:string +lbl_8011F144 = .data:0x8011F144; // type:object size:0xE data:string +lbl_8011F152 = .data:0x8011F152; // type:object size:0xE data:string +lbl_8011F160 = .data:0x8011F160; // type:object size:0xE data:string +lbl_8011F16E = .data:0x8011F16E; // type:object size:0xE data:string +lbl_8011F17C = .data:0x8011F17C; // type:object size:0xE data:string +lbl_8011F18A = .data:0x8011F18A; // type:object size:0xE data:string +lbl_8011F198 = .data:0x8011F198; // type:object size:0xE data:string +lbl_8011F1A6 = .data:0x8011F1A6; // type:object size:0xE data:string +lbl_8011F1B4 = .data:0x8011F1B4; // type:object size:0xE data:string +lbl_8011F1C2 = .data:0x8011F1C2; // type:object size:0xE data:string +lbl_8011F1D0 = .data:0x8011F1D0; // type:object size:0xE data:string +lbl_8011F1DE = .data:0x8011F1DE; // type:object size:0xE data:string +lbl_8011F1EC = .data:0x8011F1EC; // type:object size:0xE data:string +lbl_8011F1FA = .data:0x8011F1FA; // type:object size:0xE data:string +lbl_8011F208 = .data:0x8011F208; // type:object size:0xE data:string +lbl_8011F216 = .data:0x8011F216; // type:object size:0xE data:string +lbl_8011F224 = .data:0x8011F224; // type:object size:0xE data:string +lbl_8011F232 = .data:0x8011F232; // type:object size:0xE data:string +lbl_8011F240 = .data:0x8011F240; // type:object size:0xE data:string +lbl_8011F24E = .data:0x8011F24E; // type:object size:0xE data:string +lbl_8011F25C = .data:0x8011F25C; // type:object size:0xE data:string +lbl_8011F26A = .data:0x8011F26A; // type:object size:0xE data:string +lbl_8011F278 = .data:0x8011F278; // type:object size:0xE data:string +lbl_8011F286 = .data:0x8011F286; // type:object size:0xE data:string +lbl_8011F294 = .data:0x8011F294; // type:object size:0xE data:string +lbl_8011F2A2 = .data:0x8011F2A2; // type:object size:0xE data:string +lbl_8011F2B0 = .data:0x8011F2B0; // type:object size:0xE data:string +lbl_8011F2BE = .data:0x8011F2BE; // type:object size:0xE data:string +lbl_8011F2CC = .data:0x8011F2CC; // type:object size:0xE data:string +lbl_8011F2DA = .data:0x8011F2DA; // type:object size:0xF data:string +lbl_8011F2E9 = .data:0x8011F2E9; // type:object size:0x13 data:string +lbl_8011F2FC = .data:0x8011F2FC; // type:object size:0x13 data:string +lbl_8011F30F = .data:0x8011F30F; // type:object size:0x12 data:string +lbl_8011F321 = .data:0x8011F321; // type:object size:0xE data:string +lbl_8011F32F = .data:0x8011F32F; // type:object size:0x11 data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0x10 data:string +lbl_8011F350 = .data:0x8011F350; // type:object size:0x11 data:string +lbl_8011F361 = .data:0x8011F361; // type:object size:0xE data:string +lbl_8011F36F = .data:0x8011F36F; // type:object size:0x10 data:string +lbl_8011F37F = .data:0x8011F37F; // type:object size:0x11 data:string +lbl_8011F390 = .data:0x8011F390; // type:object size:0x11 data:string +lbl_8011F3A1 = .data:0x8011F3A1; // type:object size:0x11 data:string +lbl_8011F3B2 = .data:0x8011F3B2; // type:object size:0x10 data:string +lbl_8011F3C2 = .data:0x8011F3C2; // type:object size:0xF data:string +lbl_8011F3D1 = .data:0x8011F3D1; // type:object size:0x13 data:string +lbl_8011F3E4 = .data:0x8011F3E4; // type:object size:0x13 data:string +lbl_8011F3F7 = .data:0x8011F3F7; // type:object size:0x12 data:string +lbl_8011F409 = .data:0x8011F409; // type:object size:0x11 data:string +lbl_8011F41A = .data:0x8011F41A; // type:object size:0x10 data:string +lbl_8011F42A = .data:0x8011F42A; // type:object size:0xD data:string +lbl_8011F437 = .data:0x8011F437; // type:object size:0x11 data:string +lbl_8011F448 = .data:0x8011F448; // type:object size:0xF data:string +lbl_8011F457 = .data:0x8011F457; // type:object size:0xF data:string +lbl_8011F466 = .data:0x8011F466; // type:object size:0xF data:string +lbl_8011F475 = .data:0x8011F475; // type:object size:0xD data:string +lbl_8011F482 = .data:0x8011F482; // type:object size:0xD data:string +lbl_8011F48F = .data:0x8011F48F; // type:object size:0xD data:string +lbl_8011F49C = .data:0x8011F49C; // type:object size:0xD data:string +lbl_8011F4A9 = .data:0x8011F4A9; // type:object size:0xD data:string +lbl_8011F4B6 = .data:0x8011F4B6; // type:object size:0xD data:string +lbl_8011F4C3 = .data:0x8011F4C3; // type:object size:0xD data:string +lbl_8011F4D0 = .data:0x8011F4D0; // type:object size:0xD data:string +lbl_8011F4DD = .data:0x8011F4DD; // type:object size:0xD data:string +lbl_8011F4EA = .data:0x8011F4EA; // type:object size:0x11 data:string +lbl_8011F4FB = .data:0x8011F4FB; // type:object size:0x15 data:string +lbl_8011F510 = .data:0x8011F510; // type:object size:0x15 data:string +lbl_8011F525 = .data:0x8011F525; // type:object size:0x14 data:string +lbl_8011F539 = .data:0x8011F539; // type:object size:0xF data:string +lbl_8011F548 = .data:0x8011F548; // type:object size:0x13 data:string +lbl_8011F55B = .data:0x8011F55B; // type:object size:0x13 data:string +lbl_8011F56E = .data:0x8011F56E; // type:object size:0x12 data:string +lbl_8011F580 = .data:0x8011F580; // type:object size:0xD data:string +lbl_8011F58D = .data:0x8011F58D; // type:object size:0xF data:string +lbl_8011F59C = .data:0x8011F59C; // type:object size:0x13 data:string +lbl_8011F5AF = .data:0x8011F5AF; // type:object size:0x13 data:string +lbl_8011F5C2 = .data:0x8011F5C2; // type:object size:0x12 data:string +lbl_8011F5D4 = .data:0x8011F5D4; // type:object size:0xE data:string +DataDirStat = .data:0x8011F5E4; // type:object size:0x468 scope:local data:4byte +lbl_8011FA4C = .data:0x8011FA4C; // type:object size:0x1D data:string +lbl_8011FA69 = .data:0x8011FA69; // type:object size:0x1F data:string +lbl_8011FA88 = .data:0x8011FA88; // type:object size:0x3C +lbl_8011FAC4 = .data:0x8011FAC4; // type:object size:0x1A data:string +lbl_8011FADE = .data:0x8011FADE; // type:object size:0x122 +lbl_8011FC00 = .data:0x8011FC00; // type:object size:0x20 +ank8x8_4b = .data:0x8011FC20; // type:object size:0x2000 align:32 +lbl_80121C20 = .data:0x80121C20; // type:object size:0x150 +HeapSizeTbl = .data:0x80121D70; // type:object size:0x78 scope:local +lbl_80121DE8 = .data:0x80121DE8; // type:object size:0x50 +lbl_80121E38 = .data:0x80121E38; // type:object size:0x128 +fcoltbl = .data:0x80121F60; // type:object size:0x40 scope:local align:32 +lbl_80121FA0 = .data:0x80121FA0; // type:object size:0x1F data:string +lbl_80121FBF = .data:0x80121FBF; // type:object size:0x31 +lbl_80121FF0 = .data:0x80121FF0; // type:object size:0x12 +bitSizeTbl = .data:0x80122002; // type:object size:0x16 scope:local +lbl_80122018 = .data:0x80122018; // type:object size:0xF8 +jumptable_80122110 = .data:0x80122110; // type:object size:0x2C scope:local +jumptable_80122140 = .data:0x80122140; // type:object size:0x28 scope:local +jumptable_80122168 = .data:0x80122168; // type:object size:0x2C scope:local +lbl_80122194 = .data:0x80122194; // type:object size:0x18 data:string +texMtxTbl = .data:0x801221B0; // type:object size:0xC data:byte +jumptable_801221BC = .data:0x801221BC; // type:object size:0x28 scope:local +lbl_801221E4 = .data:0x801221E4; // type:object size:0x18 data:string +jumptable_801221FC = .data:0x801221FC; // type:object size:0x28 scope:local +jumptable_80122224 = .data:0x80122224; // type:object size:0x28 scope:local +refMtx = .data:0x8012224C; // type:object size:0x30 scope:local +kColorSelTbl = .data:0x8012227C; // type:object size:0x30 scope:local +kColorTbl = .data:0x801222AC; // type:object size:0x10 scope:local +kColorSelTbl2 = .data:0x801222BC; // type:object size:0x10 scope:local +kColorSelATbl = .data:0x801222CC; // type:object size:0x10 scope:local +lbl_801222DC = .data:0x801222DC; // type:object size:0x14 +jumptable_801222F0 = .data:0x801222F0; // type:object size:0x30 scope:local +jumptable_80122320 = .data:0x80122320; // type:object size:0x28 scope:local +jumptable_80122348 = .data:0x80122348; // type:object size:0x28 scope:local +lbl_80122370 = .data:0x80122370; // type:object size:0x19 data:string +lbl_80122389 = .data:0x80122389; // type:object size:0xA data:string +lbl_80122393 = .data:0x80122393; // type:object size:0x2D +refMapData0 = .data:0x801223C0; // type:object size:0x1240 align:32 noreloc +refMapData1 = .data:0x80123600; // type:object size:0x1100 align:32 noreloc +refMapData2 = .data:0x80124700; // type:object size:0x2080 align:32 noreloc +refMapData3 = .data:0x80126780; // type:object size:0x2080 align:32 noreloc +refMapData4 = .data:0x80128800; // type:object size:0x2080 align:32 noreloc +toonMapData = .data:0x8012A880; // type:object size:0x880 align:32 noreloc +toonMapData2 = .data:0x8012B100; // type:object size:0x1080 align:32 noreloc +hiliteData = .data:0x8012C180; // type:object size:0x480 align:32 noreloc +hiliteData2 = .data:0x8012C600; // type:object size:0x480 align:32 noreloc +hiliteData3 = .data:0x8012CA80; // type:object size:0x480 align:32 noreloc +hiliteData4 = .data:0x8012CF00; // type:object size:0x480 align:32 noreloc +lbl_8012D380 = .data:0x8012D380; // type:object size:0x1B data:string +lbl_8012D39B = .data:0x8012D39B; // type:object size:0x16 data:string +lbl_8012D3B1 = .data:0x8012D3B1; // type:object size:0x21 data:string +lbl_8012D3D2 = .data:0x8012D3D2; // type:object size:0x26 +defCamera = .data:0x8012D3F8; // type:object size:0x58 data:4byte +lbl_8012D450 = .data:0x8012D450; // type:object size:0x28 +lbl_8012D478 = .data:0x8012D478; // type:object size:0x1C data:string +lbl_8012D494 = .data:0x8012D494; // type:object size:0x1C +jumptable_8012D4B0 = .data:0x8012D4B0; // type:object size:0x2C scope:local +jumptable_8012D4DC = .data:0x8012D4DC; // type:object size:0x68 scope:local +jumptable_8012D544 = .data:0x8012D544; // type:object size:0xF0 scope:local +jumptable_8012D634 = .data:0x8012D634; // type:object size:0x20 scope:local +lbl_8012D658 = .data:0x8012D658; // type:object size:0x15 data:string +lbl_8012D66D = .data:0x8012D66D; // type:object size:0x1F data:string +lbl_8012D68C = .data:0x8012D68C; // type:object size:0x18 +basePos = .data:0x8012D6A4; // type:object size:0x30 scope:local +baseST = .data:0x8012D6D4; // type:object size:0x20 scope:local +jitterTbl = .data:0x8012D6F4; // type:object size:0x24 scope:local +jumptable_8012D718 = .data:0x8012D718; // type:object size:0x1C scope:local +lbl_8012D738 = .data:0x8012D738; // type:object size:0xCA +lbl_8012D802 = .data:0x8012D802; // type:object size:0x1C data:string +lbl_8012D81E = .data:0x8012D81E; // type:object size:0x1C data:string +lbl_8012D83A = .data:0x8012D83A; // type:object size:0x1D data:string +lbl_8012D857 = .data:0x8012D857; // type:object size:0x18 data:string +lbl_8012D86F = .data:0x8012D86F; // type:object size:0xC data:string +lbl_8012D87B = .data:0x8012D87B; // type:object size:0x45 +lbl_8012D8C0 = .data:0x8012D8C0; // type:object size:0x45 +lbl_8012D905 = .data:0x8012D905; // type:object size:0x19 data:string +lbl_8012D91E = .data:0x8012D91E; // type:object size:0x17 data:string +lbl_8012D935 = .data:0x8012D935; // type:object size:0x1B3 +XFB_Colors = .data:0x8012DAE8; // type:object size:0xF scope:local data:byte +Ascii8x8_1bpp = .data:0x8012DAF7; // type:object size:0x800 scope:local align:1 +lbl_8012E2F7 = .data:0x8012E2F7; // type:object size:0x19 +lbl_8012E310 = .data:0x8012E310; // type:object size:0x21A +lbl_8012E52A = .data:0x8012E52A; // type:object size:0xB data:string +lbl_8012E535 = .data:0x8012E535; // type:object size:0x273 +lbl_8012E7A8 = .data:0x8012E7A8; // type:object size:0x12 data:string +lbl_8012E7BA = .data:0x8012E7BA; // type:object size:0xD6 +sndGrpTable = .data:0x8012E890; // type:object size:0x5B0 +lbl_8012EE40 = .data:0x8012EE40; // type:object size:0x94 +lbl_8012EED4 = .data:0x8012EED4; // type:object size:0x11 data:string +lbl_8012EEE5 = .data:0x8012EEE5; // type:object size:0x3A +lbl_8012EF1F = .data:0x8012EF1F; // type:object size:0x31 +seqInfoTbl = .data:0x8012EF50; // type:object size:0x1DC scope:local +seqType2SprTbl = .data:0x8012F12C; // type:object size:0x18 scope:local +mgSeqTypeTbl = .data:0x8012F144; // type:object size:0x12 scope:local +lbl_8012F156 = .data:0x8012F156; // type:object size:0x53 scope:local data:string +lbl_8012F1A2 = .data:0x8012F1A9; // type:object size:0x9 scope:local data:string +lbl_8012F1B2 = .data:0x8012F1B2; // type:object size:0x9 scope:local data:string +seqFontAlphaTbl = .data:0x8012F1BB; // type:object size:0x35 scope:local data:string +seqFontKanaTbl = .data:0x8012F1F0; // type:object size:0x52 scope:local +seqFontNumTbl = .data:0x8012F242; // type:object size:0xB scope:local data:string +letterBufTbl = .data:0x8012F250; // type:object size:0x14 scope:local +wordMgTbl = .data:0x8012F264; // type:object size:0x18 scope:local +letterOfs$1002 = .data:0x8012F27C; // type:object size:0x40 scope:local +letterOfs$1479 = .data:0x8012F2BC; // type:object size:0x1C scope:local +letterOfs$1853 = .data:0x8012F2D8; // type:object size:0x38 scope:local +lbl_8012F310 = .data:0x8012F310; // type:object size:0xC scope:local data:string +winCharNameTbl = .data:0x8012F31C; // type:object size:0x78 scope:local +lbl_8012F394 = .data:0x8012F394; // type:object size:0xC scope:local +winWordTbl = .data:0x8012F3A0; // type:object size:0x18 scope:local +winPosOfs = .data:0x8012F3B8; // type:object size:0x50 scope:local +practiceTbl = .data:0x8012F408; // type:object size:0xAC scope:local +yPosTbl$2458 = .data:0x8012F4B4; // type:object size:0xC scope:local +seqStartFXTbl = .data:0x8012F4C0; // type:object size:0xEC scope:local +lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x15 data:string +lbl_8012F5C5 = .data:0x8012F5C5; // type:object size:0x10 data:string +lbl_8012F5D5 = .data:0x8012F5D5; // type:object size:0x13 data:string +lbl_8012F5E8 = .data:0x8012F5E8; // type:object size:0x10 data:string +lbl_8012F5F8 = .data:0x8012F5F8; // type:object size:0x10 data:string +lbl_8012F608 = .data:0x8012F608; // type:object size:0x10 data:string +lbl_8012F618 = .data:0x8012F618; // type:object size:0x10 data:string +lbl_8012F628 = .data:0x8012F628; // type:object size:0x10 data:string +lbl_8012F638 = .data:0x8012F638; // type:object size:0x10 data:string +lbl_8012F648 = .data:0x8012F648; // type:object size:0x10 data:string +lbl_8012F658 = .data:0x8012F658; // type:object size:0x10 data:string +lbl_8012F668 = .data:0x8012F668; // type:object size:0x10 data:string +lbl_8012F678 = .data:0x8012F678; // type:object size:0x10 data:string +lbl_8012F688 = .data:0x8012F688; // type:object size:0x10 data:string +lbl_8012F698 = .data:0x8012F698; // type:object size:0x10 data:string +lbl_8012F6A8 = .data:0x8012F6A8; // type:object size:0x10 data:string +lbl_8012F6B8 = .data:0x8012F6B8; // type:object size:0x10 data:string +lbl_8012F6C8 = .data:0x8012F6C8; // type:object size:0x10 data:string +lbl_8012F6D8 = .data:0x8012F6D8; // type:object size:0x10 data:string +lbl_8012F6E8 = .data:0x8012F6E8; // type:object size:0x10 data:string +lbl_8012F6F8 = .data:0x8012F6F8; // type:object size:0x10 data:string +lbl_8012F708 = .data:0x8012F708; // type:object size:0x10 data:string +lbl_8012F718 = .data:0x8012F718; // type:object size:0x10 data:string +lbl_8012F728 = .data:0x8012F728; // type:object size:0x10 data:string +lbl_8012F738 = .data:0x8012F738; // type:object size:0x10 data:string +lbl_8012F748 = .data:0x8012F748; // type:object size:0x10 data:string +lbl_8012F758 = .data:0x8012F758; // type:object size:0x10 data:string +lbl_8012F768 = .data:0x8012F768; // type:object size:0x10 data:string +lbl_8012F778 = .data:0x8012F778; // type:object size:0x10 data:string +lbl_8012F788 = .data:0x8012F788; // type:object size:0x10 data:string +lbl_8012F798 = .data:0x8012F798; // type:object size:0x10 data:string +lbl_8012F7A8 = .data:0x8012F7A8; // type:object size:0x10 data:string +lbl_8012F7B8 = .data:0x8012F7B8; // type:object size:0x10 data:string +lbl_8012F7C8 = .data:0x8012F7C8; // type:object size:0x10 data:string +lbl_8012F7D8 = .data:0x8012F7D8; // type:object size:0x10 data:string +lbl_8012F7E8 = .data:0x8012F7E8; // type:object size:0x10 data:string +lbl_8012F7F8 = .data:0x8012F7F8; // type:object size:0x10 data:string +lbl_8012F808 = .data:0x8012F808; // type:object size:0x10 data:string +lbl_8012F818 = .data:0x8012F818; // type:object size:0x10 data:string +lbl_8012F828 = .data:0x8012F828; // type:object size:0x10 data:string +lbl_8012F838 = .data:0x8012F838; // type:object size:0x10 data:string +lbl_8012F848 = .data:0x8012F848; // type:object size:0x10 data:string +lbl_8012F858 = .data:0x8012F858; // type:object size:0x10 data:string +lbl_8012F868 = .data:0x8012F868; // type:object size:0x10 data:string +lbl_8012F878 = .data:0x8012F878; // type:object size:0x10 data:string +lbl_8012F888 = .data:0x8012F888; // type:object size:0x10 data:string +lbl_8012F898 = .data:0x8012F898; // type:object size:0x10 data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0x10 data:string +lbl_8012F8B8 = .data:0x8012F8B8; // type:object size:0x10 data:string +lbl_8012F8C8 = .data:0x8012F8C8; // type:object size:0x10 data:string +lbl_8012F8D8 = .data:0x8012F8D8; // type:object size:0x10 data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0x10 data:string +lbl_8012F8F8 = .data:0x8012F8F8; // type:object size:0x10 data:string +lbl_8012F908 = .data:0x8012F908; // type:object size:0x10 data:string +lbl_8012F918 = .data:0x8012F918; // type:object size:0x10 data:string +lbl_8012F928 = .data:0x8012F928; // type:object size:0x10 data:string +lbl_8012F938 = .data:0x8012F938; // type:object size:0x10 data:string +lbl_8012F948 = .data:0x8012F948; // type:object size:0x10 data:string +lbl_8012F958 = .data:0x8012F958; // type:object size:0x10 data:string +lbl_8012F968 = .data:0x8012F968; // type:object size:0x10 data:string +lbl_8012F978 = .data:0x8012F978; // type:object size:0x10 data:string +lbl_8012F988 = .data:0x8012F988; // type:object size:0x10 data:string +lbl_8012F998 = .data:0x8012F998; // type:object size:0x10 data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0x10 data:string +lbl_8012F9B8 = .data:0x8012F9B8; // type:object size:0x10 data:string +lbl_8012F9C8 = .data:0x8012F9C8; // type:object size:0x10 data:string +lbl_8012F9D8 = .data:0x8012F9D8; // type:object size:0x10 data:string +lbl_8012F9E8 = .data:0x8012F9E8; // type:object size:0x10 data:string +lbl_8012F9F8 = .data:0x8012F9F8; // type:object size:0x10 data:string +lbl_8012FA08 = .data:0x8012FA08; // type:object size:0x10 data:string +lbl_8012FA18 = .data:0x8012FA18; // type:object size:0x10 data:string +lbl_8012FA28 = .data:0x8012FA28; // type:object size:0x10 data:string +lbl_8012FA38 = .data:0x8012FA38; // type:object size:0x12 data:string +lbl_8012FA4A = .data:0x8012FA4A; // type:object size:0x15 data:string +lbl_8012FA5F = .data:0x8012FA5F; // type:object size:0x13 data:string +lbl_8012FA72 = .data:0x8012FA72; // type:object size:0x10 data:string +lbl_8012FA82 = .data:0x8012FA82; // type:object size:0x12 data:string +lbl_8012FA94 = .data:0x8012FA94; // type:object size:0x13 data:string +lbl_8012FAA7 = .data:0x8012FAA7; // type:object size:0x13 data:string +lbl_8012FABA = .data:0x8012FABA; // type:object size:0x13 data:string +lbl_8012FACD = .data:0x8012FACD; // type:object size:0x12 data:string +lbl_8012FADF = .data:0x8012FADF; // type:object size:0xF data:string +lbl_8012FAEE = .data:0x8012FAEE; // type:object size:0xF data:string +lbl_8012FAFD = .data:0x8012FAFD; // type:object size:0x10 data:string +lbl_8012FB0D = .data:0x8012FB0D; // type:object size:0x12 data:string +lbl_8012FB1F = .data:0x8012FB1F; // type:object size:0xF data:string +lbl_8012FB2E = .data:0x8012FB2E; // type:object size:0x13 data:string +lbl_8012FB41 = .data:0x8012FB41; // type:object size:0x11 data:string +lbl_8012FB52 = .data:0x8012FB52; // type:object size:0x15 data:string +lbl_8012FB67 = .data:0x8012FB67; // type:object size:0xF data:string +lbl_8012FB76 = .data:0x8012FB76; // type:object size:0xF data:string +lbl_8012FB85 = .data:0x8012FB85; // type:object size:0xF data:string +lbl_8012FB94 = .data:0x8012FB94; // type:object size:0xF data:string +lbl_8012FBA3 = .data:0x8012FBA3; // type:object size:0xF data:string +lbl_8012FBB2 = .data:0x8012FBB2; // type:object size:0xF data:string +lbl_8012FBC1 = .data:0x8012FBC1; // type:object size:0xF data:string +lbl_8012FBD0 = .data:0x8012FBD0; // type:object size:0xF data:string +lbl_8012FBDF = .data:0x8012FBDF; // type:object size:0xF data:string +lbl_8012FBEE = .data:0x8012FBEE; // type:object size:0x12 +_ovltbl = .data:0x8012FC00; // type:object size:0x320 +lbl_8012FF20 = .data:0x8012FF20; // type:object size:0x20 +fadeInFunc = .data:0x8012FF40; // type:object size:0xC scope:local +fadeOutFunc = .data:0x8012FF4C; // type:object size:0xC scope:local +spcFontTbl = .data:0x8012FF60; // type:object size:0x170 scope:local +charWETbl = .data:0x801300D0; // type:object size:0x130 +charWJTbl = .data:0x80130200; // type:object size:0x140 +charColPal = .data:0x80130340; // type:object size:0x3C scope:local align:32 +frameFileTbl = .data:0x8013037C; // type:object size:0x10 scope:local +lbl_8013038C = .data:0x8013038C; // type:object size:0xE data:string +lbl_8013039A = .data:0x8013039A; // type:object size:0xF data:string +lbl_801303A9 = .data:0x801303A9; // type:object size:0x10 data:string +lbl_801303B9 = .data:0x801303B9; // type:object size:0x11 data:string +lbl_801303CA = .data:0x801303CA; // type:object size:0x10 data:string +lbl_801303DA = .data:0x801303DA; // type:object size:0x11 data:string +lbl_801303EB = .data:0x801303EB; // type:object size:0x10 data:string +lbl_801303FB = .data:0x801303FB; // type:object size:0x11 data:string +lbl_8013040C = .data:0x8013040C; // type:object size:0x10 data:string +lbl_8013041C = .data:0x8013041C; // type:object size:0x11 data:string +lbl_8013042D = .data:0x8013042D; // type:object size:0x10 data:string +lbl_8013043D = .data:0x8013043D; // type:object size:0x13 +mesDataTbl = .data:0x80130450; // type:object size:0x30 scope:local +winVoiceTbl = .data:0x80130480; // type:object size:0x54 scope:local +lbl_801304D4 = .data:0x801304D4; // type:object size:0x13 data:string +lbl_801304E7 = .data:0x801304E7; // type:object size:0x19 +winPortraitTbl = .data:0x80130500; // type:object size:0x50 scope:local +lbl_80130550 = .data:0x80130550; // type:object size:0x26 data:string +lbl_80130576 = .data:0x80130576; // type:object size:0x2A +lbl_801305A0 = .data:0x801305A0; // type:object size:0x19 data:string +lbl_801305B9 = .data:0x801305B9; // type:object size:0x14 data:string +lbl_801305CD = .data:0x801305CD; // type:object size:0x93 +lbl_80130660 = .data:0x80130660; // type:object size:0x30 +effectDataTbl = .data:0x80130690; // type:object size:0x60 scope:local +charDirTbl = .data:0x801306F0; // type:object size:0x60 scope:local +effectDustParam = .data:0x80130750; // type:object size:0x38 scope:local +effectDotParam = .data:0x80130788; // type:object size:0x38 scope:local +effectStarParam = .data:0x801307C0; // type:object size:0x38 scope:local +effectWarnParam = .data:0x801307F8; // type:object size:0x38 scope:local +effectSmokeParam = .data:0x80130830; // type:object size:0x38 scope:local +lbl_801309A0 = .data:0x80130868; // type:object size:0x20 scope:local +lbl_801309C0 = .data:0x80130888; // type:object size:0x20 scope:local +lbl_801309E0 = .data:0x801308A8; // type:object size:0x10 scope:local +jumptable_801308B8 = .data:0x801308B8; // type:object size:0x1E8 scope:local +voiceParam = .data:0x80130AA0; // type:object size:0x40 scope:local +lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE data:string +lbl_80130AEE = .data:0x80130AEE; // type:object size:0xE data:string +lbl_80130AFC = .data:0x80130AFC; // type:object size:0xE data:string +lbl_80130B0A = .data:0x80130B0A; // type:object size:0xD data:string +lbl_80130B17 = .data:0x80130B17; // type:object size:0xD data:string +lbl_80130B24 = .data:0x80130B24; // type:object size:0xB data:string +lbl_80130B2F = .data:0x80130B2F; // type:object size:0xF data:string +lbl_80130B3E = .data:0x80130B3E; // type:object size:0xF data:string +lbl_80130B4D = .data:0x80130B4D; // type:object size:0xF data:string +lbl_80130B5C = .data:0x80130B5C; // type:object size:0xF data:string +lbl_80130B6B = .data:0x80130B6B; // type:object size:0xF data:string +lbl_80130B7A = .data:0x80130B7A; // type:object size:0xF data:string +lbl_80130B89 = .data:0x80130B89; // type:object size:0x9 data:string +lbl_80130B92 = .data:0x80130B92; // type:object size:0xD data:string +lbl_80130B9F = .data:0x80130B9F; // type:object size:0x17 data:string +lbl_80130BB6 = .data:0x80130BB6; // type:object size:0x17 data:string +lbl_80130BCD = .data:0x80130BCD; // type:object size:0xE data:string +lbl_80130BDB = .data:0x80130BDB; // type:object size:0xE data:string +lbl_80130BE9 = .data:0x80130BE9; // type:object size:0xD data:string +lbl_80130BF6 = .data:0x80130BF6; // type:object size:0xE data:string +lbl_80130C04 = .data:0x80130C04; // type:object size:0xE data:string +lbl_80130C12 = .data:0x80130C12; // type:object size:0xF data:string +lbl_80130C21 = .data:0x80130C21; // type:object size:0xF data:string +lbl_80130C30 = .data:0x80130C30; // type:object size:0x18 data:string +lbl_80130C48 = .data:0x80130C48; // type:object size:0x18 data:string +lbl_80130C60 = .data:0x80130C60; // type:object size:0xE data:string +lbl_80130C6E = .data:0x80130C6E; // type:object size:0x18 data:string +lbl_80130C86 = .data:0x80130C86; // type:object size:0x1A +charTexNameTbl = .data:0x80130CA0; // type:object size:0x100 +lbl_80130DA0 = .data:0x80130DA0; // type:object size:0xD data:string +lbl_80130DAD = .data:0x80130DAD; // type:object size:0xD data:string +lbl_80130DBA = .data:0x80130DBA; // type:object size:0xE data:string +lbl_80130DC8 = .data:0x80130DC8; // type:object size:0xE data:string +lbl_80130DD6 = .data:0x80130DD6; // type:object size:0x12 +hookNameTbl = .data:0x80130DE8; // type:object size:0xA0 scope:local +modelParticleParam = .data:0x80130E88; // type:object size:0x38 scope:local +coinParticleParam = .data:0x80130EC0; // type:object size:0x38 +lbl_80130EF8 = .data:0x80130EF8; // type:object size:0x38 scope:local +lbl_80130F30 = .data:0x80130F30; // type:object size:0x38 scope:local +lbl_80130F68 = .data:0x80130F68; // type:object size:0x1C +lbl_80130F84 = .data:0x80130F84; // type:object size:0x38 +lbl_80130FBC = .data:0x80130FBC; // type:object size:0x38 +lbl_80130FF4 = .data:0x80130FF4; // type:object size:0xBC +VolumeTable = .data:0x801310B0; // type:object size:0x100 scope:local +lbl_801311B0 = .data:0x801311B0; // type:object size:0x4D +lbl_801311FD = .data:0x801311FD; // type:object size:0x1B +mgInfoTbl = .data:0x80131218; // type:object size:0xE00 data:2byte +commentTbl = .data:0x80132018; // type:object size:0x40 scope:local +lbl_80132058 = .data:0x80132058; // type:object size:0xC data:string +lbl_80132064 = .data:0x80132064; // type:object size:0xC data:string +lbl_80132070 = .data:0x80132070; // type:object size:0xC data:string +SaveFileNameTbl = .data:0x8013207C; // type:object size:0xC +jumptable_80132088 = .data:0x80132088; // type:object size:0x34 scope:local +SR_PreRstChk = .data:0x801320C0; // type:object size:0x10 scope:local +coveropen_en = .data:0x801320D0; // type:object size:0x1384 noreloc +fatalerror_en = .data:0x80133454; // type:object size:0x1384 noreloc +loading_en = .data:0x801347D8; // type:object size:0x1384 noreloc +nodisc_en = .data:0x80135B5C; // type:object size:0x1384 noreloc +retryerror_en = .data:0x80136EE0; // type:object size:0x1384 noreloc +wrongdisc_en = .data:0x80138264; // type:object size:0x1384 noreloc +coveropen_fr = .data:0x801395E8; // type:object size:0x1384 noreloc +fatalerror_fr = .data:0x8013A96C; // type:object size:0x1384 noreloc +loading_fr = .data:0x8013BCF0; // type:object size:0x1384 noreloc +nodisc_fr = .data:0x8013D074; // type:object size:0x1384 noreloc +retryerror_fr = .data:0x8013E3F8; // type:object size:0x1384 noreloc +wrongdisc_fr = .data:0x8013F77C; // type:object size:0x1384 noreloc +coveropen_ge = .data:0x80140B00; // type:object size:0x1384 noreloc +fatalerror_ge = .data:0x80141E84; // type:object size:0x1384 noreloc +loading_ge = .data:0x80143208; // type:object size:0x1384 noreloc +nodisc_ge = .data:0x8014458C; // type:object size:0x1384 noreloc +retryerror_ge = .data:0x80145910; // type:object size:0x1384 noreloc +wrongdisc_ge = .data:0x80146C94; // type:object size:0x1384 noreloc +coveropen_it = .data:0x80148018; // type:object size:0x1384 noreloc +fatalerror_it = .data:0x8014939C; // type:object size:0x1384 noreloc +loading_it = .data:0x8014A720; // type:object size:0x1384 noreloc +nodisc_it = .data:0x8014BAA4; // type:object size:0x1384 noreloc +retryerror_it = .data:0x8014CE28; // type:object size:0x1384 noreloc +wrongdisc_it = .data:0x8014E1AC; // type:object size:0x1384 noreloc +coveropen_sp = .data:0x8014F530; // type:object size:0x1384 noreloc +fatalerror_sp = .data:0x801508B4; // type:object size:0x1384 noreloc +loading_sp = .data:0x80151C38; // type:object size:0x1384 noreloc +nodisc_sp = .data:0x80152FBC; // type:object size:0x1384 noreloc +retryerror_sp = .data:0x80154340; // type:object size:0x1384 noreloc +wrongdisc_sp = .data:0x801556C4; // type:object size:0x1384 noreloc +jumptable_80156A48 = .data:0x80156A48; // type:object size:0x34 scope:local +bmpMes$493 = .data:0x80156A7C; // type:object size:0x78 scope:local +lbl_80156AF4 = .data:0x80156AF4; // type:object size:0x13 data:string +lbl_80156B07 = .data:0x80156B07; // type:object size:0x12 data:string +camViewTbl = .data:0x80156B20; // type:object size:0x24 scope:local +jumptable_80156B44 = .data:0x80156B44; // type:object size:0x24 scope:local +confettiLightTbl = .data:0x80156B68; // type:object size:0x48 scope:local +last5GfxSprTbl = .data:0x80156BB0; // type:object size:0xC scope:local +last5GfxPosTbl = .data:0x80156BBC; // type:object size:0x30 scope:local +tauntActiveFXTbl = .data:0x80156BEC; // type:object size:0x10 scope:local +tauntFXTbl = .data:0x80156BFC; // type:object size:0x20 scope:local +diceJumpObj = .data:0x80156C20; // type:object size:0x10 scope:local +motDoneF = .data:0x80156C30; // type:object size:0x10 scope:local +bowserSuitMot = .data:0x80156C40; // type:object size:0xA scope:local data:2byte +lbl_80156C4A = .data:0x80156C4A; // type:object size:0x17 data:string +lbl_80156C61 = .data:0x80156C61; // type:object size:0x17 data:string +lbl_80156C78 = .data:0x80156C78; // type:object size:0xE data:string +lbl_80156C86 = .data:0x80156C86; // type:object size:0xE data:string +lbl_80156C94 = .data:0x80156C94; // type:object size:0x18 data:string +lbl_80156CAC = .data:0x80156CAC; // type:object size:0x18 data:string +eyeMatTbl = .data:0x80156CC4; // type:object size:0x40 scope:local +lbl_80156D04 = .data:0x80156D04; // type:object size:0x20 +boardMotTbl = .data:0x80156D24; // type:object size:0x20 scope:local +boardMotRevTbl = .data:0x80156D44; // type:object size:0x20 scope:local +bowserSuitCharMdlTbl = .data:0x80156D64; // type:object size:0x20 scope:local +bowserSuitMotTbl = .data:0x80156D84; // type:object size:0x14 scope:local +sparkMotTbl = .data:0x80156D98; // type:object size:0x20 scope:local +boardSparkSfxTbl = .data:0x80156DB8; // type:object size:0x20 scope:local +boardSparkSfxTblAlt = .data:0x80156DD8; // type:object size:0x20 scope:local +megaSquishObj = .data:0x80156DF8; // type:object size:0x10 scope:local +megaSquishSfxTbl = .data:0x80156E08; // type:object size:0x20 scope:local +PortraitTbl = .data:0x80156E28; // type:object size:0x24 scope:local +StarPortraitTbl = .data:0x80156E4C; // type:object size:0x24 scope:local +boardMusTbl = .data:0x80156E70; // type:object size:0x18 scope:local +comItemPreferTbl = .data:0x80156E88; // type:object size:0x60 scope:local +comItemUseCheckFuncTbl = .data:0x80156EE8; // type:object size:0x38 scope:local +comJunctionDirTbl = .data:0x80156F20; // type:object size:0x30 scope:local +overhead2DPos = .data:0x80156F50; // type:object size:0x28 scope:local +mapViewMinZ = .data:0x80156F78; // type:object size:0x24 scope:local +mapViewMaxZ = .data:0x80156F9C; // type:object size:0x24 scope:local +mapViewMinX = .data:0x80156FC0; // type:object size:0x24 scope:local +mapViewMaxX = .data:0x80156FE4; // type:object size:0x24 scope:local +overheadCamZoom = .data:0x80157008; // type:object size:0x24 scope:local +overheadCamPosZ = .data:0x8015702C; // type:object size:0x24 scope:local +spaceImgIdx = .data:0x80157050; // type:object size:0xC scope:local +spaceHiliteImgIdx = .data:0x8015705C; // type:object size:0xC scope:local +jumptable_80157068 = .data:0x80157068; // type:object size:0x28 scope:local +hostMessTbl = .data:0x80157090; // type:object size:0x24 scope:local +itemPriceTbl = .data:0x801570B4; // type:object size:0x10 scope:local +shopMotTbl = .data:0x801570C4; // type:object size:0x6C scope:local +lbl_80157130 = .data:0x80157130; // type:object size:0xA data:string +itemPrioTbl = .data:0x8015713A; // type:object size:0x8C scope:local +rankItemGroupTbl = .data:0x801571C6; // type:object size:0x18 scope:local +cursorPosTbl = .data:0x801571E0; // type:object size:0x30 scope:local data:float +comInputDraw1 = .data:0x80157210; // type:object size:0xEE scope:local +comInputDraw2 = .data:0x801572FE; // type:object size:0xBA scope:local +comInputBall = .data:0x801573B8; // type:object size:0xCE scope:local +lbl_80157486 = .data:0x80157486; // type:object size:0xC scope:local data:string +lbl_80157492 = .data:0x80157492; // type:object size:0x13 +lbl_801574A5 = .data:0x801574A5; // type:object size:0x23 +jumptable_801574C8 = .data:0x801574C8; // type:object size:0x24 scope:local +ticketObj = .data:0x801574EC; // type:object size:0x30 scope:local +ticketPrize = .data:0x8015751C; // type:object size:0xC scope:local +handLastPos = .data:0x80157528; // type:object size:0xC scope:local data:4byte +loseSoundTbl = .data:0x80157534; // type:object size:0x20 scope:local +loseMotTbl = .data:0x80157554; // type:object size:0x24 scope:local +coinChgObj = .data:0x80157578; // type:object size:0x10 scope:local +coinDigitMdl = .data:0x80157588; // type:object size:0x28 scope:local +jumptable_801575B0 = .data:0x801575B0; // type:object size:0x1C scope:local +wheelSprTbl = .data:0x801575D0; // type:object size:0x28 scope:local +wheelSprPrio = .data:0x801575F8; // type:object size:0xE scope:local +wheelCharIconTbl = .data:0x80157608; // type:object size:0x20 scope:local +lbl_80157628 = .data:0x80157628; // type:object size:0x10 +boardStarSndTbl = .data:0x80157638; // type:object size:0x20 +hostMotTbl = .data:0x80157658; // type:object size:0x48 scope:local +starEffParam = .data:0x801576A0; // type:object size:0x50 scope:local noreloc +diceObj = .data:0x801576F0; // type:object size:0xC scope:local data:4byte +diceDigitObj = .data:0x801576FC; // type:object size:0xC scope:local data:4byte +diceSndStatus = .data:0x80157708; // type:object size:0xC scope:local +diceEffParam = .data:0x80157714; // type:object size:0x50 scope:local +diceDigitMdlTbl = .data:0x80157764; // type:object size:0x28 scope:local +uiStatus = .data:0x80157790; // type:object size:0x70 scope:local data:byte +statusSprTbl = .data:0x80157800; // type:object size:0x2C scope:local data:byte +statusSprPrioTbl = .data:0x8015782C; // type:object size:0x18 scope:local data:byte +statusHideOfsTbl = .data:0x80157844; // type:object size:0x10 scope:local data:byte +statusPosTbl = .data:0x80157854; // type:object size:0x20 scope:local data:float +statusColTbl = .data:0x80157874; // type:object size:0x10 scope:local +statusSprPosTbl = .data:0x80157884; // type:object size:0x88 scope:local +statusItemPosTbl = .data:0x8015790C; // type:object size:0x30 scope:local +itemMdlTbl = .data:0x8015793C; // type:object size:0x38 scope:local +teamItemStatusPosTbl = .data:0x80157974; // type:object size:0x18 scope:local +coinMdl = .data:0x80157990; // type:object size:0x14 scope:local +itemFuncTbl = .data:0x801579A8; // type:object size:0x38 scope:local +itemRestoreFuncTbl = .data:0x801579E0; // type:object size:0x38 scope:local +itemMdlTbl = .data:0x80157A18; // type:object size:0x38 scope:local +forceMoveSfxTbl = .data:0x80157A50; // type:object size:0x18 scope:local +callMotTbl = .data:0x80157A68; // type:object size:0x20 scope:local +lbl_80157A88 = .data:0x80157A88; // type:object size:0x13 data:string +lbl_80157A9B = .data:0x80157A9B; // type:object size:0x13 data:string +lbl_80157AAE = .data:0x80157AAE; // type:object size:0x13 data:string +lbl_80157AC1 = .data:0x80157AC1; // type:object size:0x13 data:string +lbl_80157AD4 = .data:0x80157AD4; // type:object size:0x13 data:string +lbl_80157AE7 = .data:0x80157AE7; // type:object size:0x13 data:string +lbl_80157AFA = .data:0x80157AFA; // type:object size:0x13 data:string +lbl_80157B0D = .data:0x80157B0D; // type:object size:0x13 data:string +callHookTbl = .data:0x80157B20; // type:object size:0x20 scope:local +callAttackMotTbl = .data:0x80157B40; // type:object size:0x18 scope:local +callAttackMotTbl2 = .data:0x80157B58; // type:object size:0x18 scope:local +suitMotTbl = .data:0x80157B70; // type:object size:0x40 scope:local +lbl_80157BB0 = .data:0x80157BB0; // type:object size:0x10 +booMotTbl = .data:0x80157BC0; // type:object size:0xC scope:local +shadowPos = .data:0x80157BCC; // type:object size:0xC scope:local +shadowTarget = .data:0x80157BD8; // type:object size:0xC scope:local +shadowUp = .data:0x80157BE4; // type:object size:0xC scope:local +armUpMotTbl = .data:0x80157BF0; // type:object size:0x20 scope:local +scareMotTbl = .data:0x80157C10; // type:object size:0x20 scope:local +impactMotTbl = .data:0x80157C30; // type:object size:0x20 scope:local +cameraDataTbl = .data:0x80157C50; // type:object size:0x134 scope:local +genieMotTbl = .data:0x80157D84; // type:object size:0x10 scope:local +scareFXTbl = .data:0x80157D98; // type:object size:0x20 scope:local +jumptable_80157DB8 = .data:0x80157DB8; // type:object size:0x1C scope:local +lbl_80157DD4 = .data:0x80157DD4; // type:object size:0x14 +battleCursorPosTbl = .data:0x80157DE8; // type:object size:0x18 scope:local +bombFXTbl = .data:0x80157E00; // type:object size:0x20 scope:local +battleSprPrioTbl = .data:0x80157E20; // type:object size:0x16 scope:local +jumptable_80157E38 = .data:0x80157E38; // type:object size:0x24 scope:local +battleChanceTbl = .data:0x80157E5C; // type:object size:0x3C scope:local +comPrizeMessTbl = .data:0x80157E98; // type:object size:0x18 scope:local +booPlayerMotTbl = .data:0x80157EB0; // type:object size:0xC0 scope:local +booSfxTbl = .data:0x80157F70; // type:object size:0x80 scope:local +hostMess = .data:0x80157FF0; // type:object size:0x18 scope:local +lbl_80158008 = .data:0x80158008; // type:object size:0xC data:string +ballBooMdl = .data:0x80158014; // type:object size:0x18 scope:local +jumptable_8015802C = .data:0x8015802C; // type:object size:0x20 scope:local +stealSuccessTbl = .data:0x8015804C; // type:object size:0x24 scope:local +stealTbl = .data:0x80158070; // type:object size:0x12 scope:local +mgSetupSprTbl = .data:0x80158088; // type:object size:0x34 scope:local +statusLayout4P = .data:0x801580BC; // type:object size:0x30 scope:local +statusLayout1Vs3 = .data:0x801580EC; // type:object size:0x30 scope:local +statusLayout2Vs2 = .data:0x8015811C; // type:object size:0x30 scope:local +luckyMessTbl = .data:0x8015814C; // type:object size:0x24 scope:local +jumptable_80158170 = .data:0x80158170; // type:object size:0x20 scope:local +cursorYTbl = .data:0x80158190; // type:object size:0x10 scope:local +hiliteYTbl = .data:0x801581A0; // type:object size:0x10 scope:local +hiliteColTbl = .data:0x801581B0; // type:object size:0xC scope:local +hostMesTbl = .data:0x801581C0; // type:object size:0x90 scope:local +houseMdlTbl = .data:0x80158250; // type:object size:0x30 scope:local +booMotTbl = .data:0x80158280; // type:object size:0xC scope:local +hostMotTbl = .data:0x8015828C; // type:object size:0x6C scope:local +playerStartObj = .data:0x801582F8; // type:object size:0x10 scope:local data:4byte +hitFX = .data:0x80158308; // type:object size:0x10 scope:local +startMesTbl = .data:0x80158318; // type:object size:0xB4 scope:local +logoSprTbl = .data:0x801583CC; // type:object size:0x24 scope:local +jumptable_801583F0 = .data:0x801583F0; // type:object size:0x1C scope:local +digitMdlTbl = .data:0x8015840C; // type:object size:0x24 scope:local +playerOrderMesTbl = .data:0x80158430; // type:object size:0xC scope:local +jumptable_8015843C = .data:0x8015843C; // type:object size:0x24 scope:local +hostMotTbl = .data:0x80158460; // type:object size:0x120 scope:local +messBaseTbl = .data:0x80158580; // type:object size:0x24 scope:local +playerOfsTbl = .data:0x801585A4; // type:object size:0x18 scope:local +plateObjNameTbl = .data:0x801585BC; // type:object size:0x10 scope:local +hiliteObjNameTbl = .data:0x801585CC; // type:object size:0x10 scope:local +faceObjNameTbl = .data:0x801585DC; // type:object size:0x10 scope:local +resultRankFX12Tbl = .data:0x801585EC; // type:object size:0x20 scope:local +resultRankFX3Tbl = .data:0x8015860C; // type:object size:0x20 scope:local +resultRankFX4Tbl = .data:0x8015862C; // type:object size:0x20 scope:local +impactFXTbl = .data:0x8015864C; // type:object size:0x20 scope:local +lotteryWheelMdlTbl = .data:0x8015866C; // type:object size:0x20 scope:local +teamSprPrioTbl = .data:0x8015868C; // type:object size:0x1E scope:local +teamSprTbl = .data:0x801586AC; // type:object size:0x34 scope:local +teamSprPosTbl = .data:0x801586E0; // type:object size:0x78 scope:local +teamCharSprTbl = .data:0x80158758; // type:object size:0x20 scope:local +boxModelID = .data:0x80158778; // type:object size:0x10 scope:local data:2byte +boxPosTbl = .data:0x80158788; // type:object size:0x40 scope:local data:float +padConfigPosTbl = .data:0x801587C8; // type:object size:0x20 scope:local +boardLogoTbl = .data:0x801587E8; // type:object size:0x24 scope:local +turnDigitPosTbl = .data:0x8015880C; // type:object size:0x10 scope:local +boxMdlTbl = .data:0x8015881C; // type:object size:0x20 scope:local +jumptable_8015883C = .data:0x8015883C; // type:object size:0x20 scope:local +jumptable_8015885C = .data:0x8015885C; // type:object size:0x20 scope:local +jumptable_8015887C = .data:0x8015887C; // type:object size:0x20 scope:local +lbl_801588A0 = .data:0x801588A0; // type:object size:0x24 data:string +lbl_801588C4 = .data:0x801588C4; // type:object size:0x24 data:string +@84 = .data:0x801588E8; // type:object size:0x1E scope:local data:string +__OSExceptionLocations = .data:0x801589D0; // type:object size:0x3C scope:local +lbl_80158AA8 = .data:0x80158AA8; // type:object size:0x398 +DSPInitCode = .data:0x80158E40; // type:object size:0x80 scope:local +@69 = .data:0x80158EC0; // type:object size:0x29 scope:local data:string +lbl_801590F0 = .data:0x801590F0; // type:object size:0x1B4 +@74 = .data:0x801592A4; // type:object size:0x23 scope:local data:string +@10 = .data:0x801592C8; // type:object size:0x16 scope:local data:string +@43 = .data:0x801595A4; // type:object size:0x40 scope:local +lbl_801595E8 = .data:0x801595E8; // type:object size:0x30 data:4byte +lbl_80159618 = .data:0x80159618; // type:object size:0x28 +lbl_80159640 = .data:0x80159640; // type:object size:0x28 +ResetFunctionInfo = .data:0x80159668; // type:object size:0x10 scope:local +lbl_80159678 = .data:0x80159678; // type:object size:0x78 +lbl_801596F0 = .data:0x801596F0; // type:object size:0x30 +lbl_80159720 = .data:0x80159720; // type:object size:0x30 +lbl_80159750 = .data:0x80159750; // type:object size:0x18 data:string +lbl_80159768 = .data:0x80159768; // type:object size:0xC8 data:string +lbl_80159830 = .data:0x80159830; // type:object size:0x38 +lbl_80159868 = .data:0x80159868; // type:object size:0x34 data:string +lbl_8015989C = .data:0x8015989C; // type:object size:0x34 +@13 = .data:0x801598D0; // type:object size:0x15 scope:local data:string +@293 = .data:0x8015991C; // type:object size:0x20 scope:local +jumptable_8015993C = .data:0x8015993C; // type:object size:0x40 scope:local +jumptable_8015997C = .data:0x8015997C; // type:object size:0x34 scope:local +jumptable_801599B0 = .data:0x801599B0; // type:object size:0x34 scope:local +lbl_801599E8 = .data:0x801599E8; // type:object size:0x48 data:4byte +@36 = .data:0x80159A30; // type:object size:0x1A scope:local data:string +lbl_80159AA0 = .data:0x80159AA0; // type:object size:0x164 +jumptable_80159C04 = .data:0x80159C04; // type:object size:0x58 scope:local +lbl_80159D80 = .data:0x80159D80; // type:object size:0xC00 +lbl_8015A980 = .data:0x8015A980; // type:object size:0xC data:string +lbl_8015A98C = .data:0x8015A98C; // type:object size:0x28 +jumptable_8015A9B4 = .data:0x8015A9B4; // type:object size:0x28 scope:local +jumptable_8015AA38 = .data:0x8015AA38; // type:object size:0x28 scope:local +jumptable_8015AA60 = .data:0x8015AA60; // type:object size:0x28 scope:local +jumptable_8015AA88 = .data:0x8015AA88; // type:object size:0x28 scope:local +jumptable_8015AAB0 = .data:0x8015AAB0; // type:object size:0x28 scope:local +lbl_8015AAD8 = .data:0x8015AAD8; // type:object size:0x10 +lbl_8015AAE8 = .data:0x8015AAE8; // type:object size:0x38 +lbl_8015AB20 = .data:0x8015AB20; // type:object size:0x140 +jumptable_8015AC60 = .data:0x8015AC60; // type:object size:0x68 scope:local +jumptable_8015ACC8 = .data:0x8015ACC8; // type:object size:0x44 scope:local +jumptable_8015AD0C = .data:0x8015AD0C; // type:object size:0x1C scope:local +jumptable_8015AD28 = .data:0x8015AD28; // type:object size:0x54 scope:local +GXNtsc480IntDf = .data:0x8015AD80; // type:object size:0x3C +GXNtsc480Prog = .data:0x8015ADBC; // type:object size:0x3C +GXMpal480IntDf = .data:0x8015ADF8; // type:object size:0x3C +GXPal528IntDf = .data:0x8015AE34; // type:object size:0x3C +GXEurgb60Hz480IntDf = .data:0x8015AE70; // type:object size:0x3C +jumptable_8015AEB0 = .data:0x8015AEB0; // type:object size:0x1C scope:local +jumptable_8015AED0 = .data:0x8015AED0; // type:object size:0xF4 scope:local +jumptable_8015AFC4 = .data:0x8015AFC4; // type:object size:0xF4 scope:local +jumptable_8015B0B8 = .data:0x8015B0B8; // type:object size:0x3C scope:local +lbl_8015B0F8 = .data:0x8015B0F8; // type:object size:0x28 +lbl_8015B120 = .data:0x8015B120; // type:object size:0x20 +jumptable_8015B140 = .data:0x8015B140; // type:object size:0x5C scope:local +jumptable_8015B19C = .data:0x8015B19C; // type:object size:0x90 scope:local +jumptable_8015B22C = .data:0x8015B22C; // type:object size:0x5C scope:local +lbl_8015B288 = .data:0x8015B288; // type:object size:0x18 +lbl_8015B2A0 = .data:0x8015B2A0; // type:object size:0x160 +lbl_8015B400 = .data:0x8015B400; // type:object size:0x20 +lbl_8015B420 = .data:0x8015B420; // type:object size:0x20 +Si = .data:0x8015B440; // type:object size:0x14 scope:local data:4byte +Type = .data:0x8015B454; // type:object size:0x10 scope:local +XYNTSC = .data:0x8015B510; // type:object size:0x30 scope:local +lbl_8015B5A8 = .data:0x8015B5A8; // type:object size:0x10 +jumptable_8015B5B8 = .data:0x8015B5B8; // type:object size:0x44 scope:local +jumptable_8015B5FC = .data:0x8015B5FC; // type:object size:0x44 scope:local +jumptable_8015B640 = .data:0x8015B640; // type:object size:0x44 scope:local +lbl_8015B684 = .data:0x8015B684; // type:object size:0xC +lbl_8015B690 = .data:0x8015B690; // type:object size:0x10 +__files = .data:0x8015B6A0; // type:object size:0x140 scope:global +jumptable_8015B7E0 = .data:0x8015B7E0; // type:object size:0x124 scope:local +lbl_8015B908 = .data:0x8015B908; // type:object size:0x100 +lbl_8015BA08 = .data:0x8015BA08; // type:object size:0x100 +@1249 = .data:0x8015BB08; // type:object size:0x84 scope:local +jumptable_8015BB8C = .data:0x8015BB8C; // type:object size:0x84 scope:local +jumptable_8015BC10 = .data:0x8015BC10; // type:object size:0xE0 scope:local +jumptable_8015BCF0 = .data:0x8015BCF0; // type:object size:0x44 scope:local +lbl_8015BD38 = .data:0x8015BD38; // type:object size:0x88 +jumptable_8015BDC0 = .data:0x8015BDC0; // type:object size:0x1C scope:local +jumptable_8015BDDC = .data:0x8015BDDC; // type:object size:0x1C scope:local +gTRKRestoreFlags = .data:0x8015BDF8; // type:object size:0x9 scope:global data:byte +gTRKExceptionStatus = .data:0x8015BE04; // type:object size:0x10 scope:local data:4byte +lbl_8015BE14 = .data:0x8015BE14; // type:object size:0x14 data:4byte +lbl_8015BE28 = .data:0x8015BE28; // type:object size:0x40 data:4byte +gDBCommTable = .data:0x8015BE68; // type:object size:0x1C scope:global data:4byte +jumptable_8015BE88 = .data:0x8015BE88; // type:object size:0x50 scope:local +lbl_8015BED8 = .data:0x8015BED8; // type:object size:0x1C +lbl_8015BEF4 = .data:0x8015BEF4; // type:object size:0x204 +lbl_8015C0F8 = .data:0x8015C0F8; // type:object size:0x20 +lbl_8015C118 = .data:0x8015C118; // type:object size:0x10 +lbl_8015C128 = .data:0x8015C128; // type:object size:0x20 +lbl_8015C148 = .data:0x8015C148; // type:object size:0x10 +jumptable_8015C158 = .data:0x8015C158; // type:object size:0x1C8 scope:local +lbl_8015C320 = .data:0x8015C320; // type:object size:0x200 +lbl_8015C520 = .data:0x8015C520; // type:object size:0x200 +lbl_8015C720 = .data:0x8015C720; // type:object size:0x184 +lbl_8015C8A4 = .data:0x8015C8A4; // type:object size:0x400 +lbl_8015CCA4 = .data:0x8015CCA4; // type:object size:0x204 +lbl_8015CEA8 = .data:0x8015CEA8; // type:object size:0x18 +lbl_8015CEC0 = .data:0x8015CEC0; // type:object size:0x228 +lbl_8015D0E8 = .data:0x8015D0E8; // type:object size:0x10 +lbl_8015D0F8 = .data:0x8015D0F8; // type:object size:0x10 +jumptable_8015D108 = .data:0x8015D108; // type:object size:0x24 scope:local +jumptable_8015D12C = .data:0x8015D12C; // type:object size:0x24 scope:local +jumptable_8015D150 = .data:0x8015D150; // type:object size:0x24 scope:local +lbl_8015D178 = .data:0x8015D178; // type:object size:0x808 +lbl_8015D980 = .data:0x8015D980; // type:object size:0x19E0 +lbl_8015F360 = .data:0x8015F360; // type:object size:0x10 +lbl_8015F370 = .data:0x8015F370; // type:object size:0x20 +lbl_8015F390 = .data:0x8015F390; // type:object size:0x800 +padStatErrOld = .bss:0x8015FBA0; // type:object size:0x10 scope:local +rumbleData = .bss:0x8015FBB0; // type:object size:0x20 scope:local +ReadDataStat = .bss:0x8015FBE0; // type:object size:0x2E00 scope:local align:32 data:4byte +textBuffer = .bss:0x801629E0; // type:object size:0x400 +rmodeobj = .bss:0x80162DE0; // type:object size:0x40 scope:local +HeapTbl = .bss:0x80162E20; // type:object size:0x14 scope:local +strline = .bss:0x80162E38; // type:object size:0x6800 scope:local +pfStrBuf = .bss:0x80169638; // type:object size:0x100 scope:local data:byte +processjmpbuf = .bss:0x80169738; // type:object size:0xF8 scope:local align:8 +HuSprData = .bss:0x80169830; // type:object size:0x9600 +HuSprGrpData = .bss:0x80172E30; // type:object size:0x5400 data:2byte +HuSprOrder = .bss:0x80178230; // type:object size:0x1800 +bmpNoCC = .bss:0x80179A30; // type:object size:0x20 scope:local +HuSprLayerDrawNo = .bss:0x80179A50; // type:object size:0x10 scope:local +Model = .bss:0x80179A60; // type:object size:0x80 +head = .bss:0x80179AE0; // type:object size:0xB0 +rgba = .bss:0x80179B90; // type:object size:0x190 +buf$648 = .bss:0x80179D20; // type:object size:0x300 scope:local data:byte +DrawObjData = .bss:0x8017A020; // type:object size:0x9000 scope:local +BmpPtrBak = .bss:0x80183020; // type:object size:0x20 scope:local data:4byte +MTXBuf = .bss:0x80183040; // type:object size:0x1200 scope:local +scaleBuf = .bss:0x80184240; // type:object size:0x480 scope:local data:4byte +texCol = .bss:0x801846C0; // type:object size:0x40 scope:local data:byte +hiliteMtx = .bss:0x80184700; // type:object size:0x30 scope:local +DrawObjNum = .bss:0x80184730; // type:object size:0x400 scope:local +NBTB = .bss:0x80184B30; // type:object size:0xC scope:local data:float +NBTT = .bss:0x80184B3C; // type:object size:0xC scope:local data:float +PGMaxPos = .bss:0x80184B48; // type:object size:0xC data:float +PGMinPos = .bss:0x80184B54; // type:object size:0xC data:float +Hu3DData = .bss:0x80184B60; // type:object size:0x24800 data:byte +Hu3DCamera = .bss:0x801A9360; // type:object size:0x580 data:float +layerNum = .bss:0x801A98E0; // type:object size:0x10 scope:local data:2byte +layerHook = .bss:0x801A98F0; // type:object size:0x20 scope:local +reflectAnim = .bss:0x801A9910; // type:object size:0x14 data:4byte +hiliteAnim = .bss:0x801A9924; // type:object size:0x10 data:4byte +Hu3DProjection = .bss:0x801A9934; // type:object size:0x260 data:byte +Hu3DShadowData = .bss:0x801A9B94; // type:object size:0x98 data:byte +FogData = .bss:0x801A9C2C; // type:object size:0x10 data:4byte +Hu3DCameraMtx = .bss:0x801A9C3C; // type:object size:0x30 +Hu3DCameraMtxXPose = .bss:0x801A9C6C; // type:object size:0x30 +Hu3DGlobalLight = .bss:0x801A9C9C; // type:object size:0x220 data:2byte +Hu3DLocalLight = .bss:0x801A9EBC; // type:object size:0x880 data:2byte +lbl_8018D39C = .bss:0x801AA73C; // type:object size:0x30 data:2byte +Hu3DMotion = .bss:0x801AA770; // type:object size:0x800 data:2byte +Hu3DTexAnimData = .bss:0x801AAF70; // type:object size:0x1400 data:2byte +Hu3DTexScrData = .bss:0x801AC370; // type:object size:0x6C0 data:2byte +parManProc = .bss:0x801ACA30; // type:object size:0x100 scope:local +perf = .bss:0x801ACB30; // type:object size:0x370 scope:local +Ssw = .bss:0x801ACEA0; // type:object size:0x38 scope:local +omovlhis = .bss:0x801ACED8; // type:object size:0xC0 scope:local +XFB_Geometry = .bss:0x801ACF98; // type:object size:0x18 scope:local +GWPlayerCfg = .bss:0x801ACFB0; // type:object size:0x28 +GWPlayer = .bss:0x801ACFD8; // type:object size:0xC0 data:byte +GWSystem = .bss:0x801AD098; // type:object size:0xDC data:byte +GWGameStat = .bss:0x801AD178; // type:object size:0x118 +GWGameStatDefault = .bss:0x801AD290; // type:object size:0x118 +CRot = .bss:0x801AD3A8; // type:object size:0xC data:float +Center = .bss:0x801AD3B4; // type:object size:0xC data:float +CRotM = .bss:0x801AD3C0; // type:object size:0xC0 +CenterM = .bss:0x801AD480; // type:object size:0xC0 +CZoomM = .bss:0x801AD540; // type:object size:0x40 +omDLLinfoTbl = .bss:0x801AD580; // type:object size:0x50 +sndFXBuf = .bss:0x801AD5D0; // type:object size:0x200 scope:local +charVoiceGroupStat = .bss:0x801AD7D0; // type:object size:0x20 +seqWorkData = .bss:0x801AD7F0; // type:object size:0x400 scope:local data:4byte +winnerNameW = .bss:0x801ADBF0; // type:object size:0x10 scope:local data:2byte +esprite = .bss:0x801ADC00; // type:object size:0x600 data:2byte +espanim = .bss:0x801AE200; // type:object size:0x1200 data:4byte +lbl_80192060 = .bss:0x801AF400; // type:object size:0x100 +lbl_80192160 = .bss:0x801AF500; // type:object size:0x100 +lbl_80192260 = .bss:0x801AF600; // type:object size:0x100 +wipeData = .bss:0x801AF700; // type:object size:0x4C data:4byte +winData = .bss:0x801AF760; // type:object size:0x3000 align:32 data:byte +winKey = .bss:0x801B2760; // type:object size:0x10 +winComKeyBuf = .bss:0x801B2770; // type:object size:0x1400 +mesWInsert = .bss:0x801B3B70; // type:object size:0x10 scope:local +ARInfo = .bss:0x801B3B80; // type:object size:0x400 data:byte +arqReq = .bss:0x801B3F80; // type:object size:0x20 scope:local +ARQueBuf = .bss:0x801B3FA0; // type:object size:0x280 scope:local +preLoadBuf = .bss:0x801B4220; // type:object size:0x40 scope:local +charInstance = .bss:0x801B4260; // type:object size:0x640 scope:local +effectMdl = .bss:0x801B48A0; // type:object size:0x10 scope:local data:2byte +particleData = .bss:0x801B48B0; // type:object size:0x20 scope:local +itemHookProcess = .bss:0x801B48D0; // type:object size:0x80 scope:local +lbl_801975B0 = .bss:0x801B4950; // type:object size:0x10 scope:local +lbl_801975C0 = .bss:0x801B4960; // type:object size:0x90 scope:local +MapObject = .bss:0x801B49F0; // type:object size:0x40 +MapMT = .bss:0x801B4A30; // type:object size:0x30 +MapMTR = .bss:0x801B4A60; // type:object size:0x30 +MTRAdd = .bss:0x801B4A90; // type:object size:0xC scope:local data:float +FieldVec = .bss:0x801B4A9C; // type:object size:0xC scope:local data:float +ColisionIdx = .bss:0x801B4AA8; // type:object size:0x78 +HitFaceVec = .bss:0x801B4B20; // type:object size:0x180 +OldXYZ = .bss:0x801B4CA0; // type:object size:0xC scope:local +HitFace = .bss:0x801B4CAC; // type:object size:0x180 +CharObject = .bss:0x801B4E2C; // type:object size:0x30 +SimpleControl = .bss:0x801B4E60; // type:object size:0x1A0 +SoundBuffer = .bss:0x801B5000; // type:object size:0x500 scope:local align:32 +WorkBuffer = .bss:0x801B5500; // type:object size:0x40 scope:local align:32 +THPFileName = .bss:0x801B5540; // type:object size:0x40 scope:local +mgGameStatBackup = .bss:0x801B5580; // type:object size:0x118 +mgIndexList = .bss:0x801B5698; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x801B5798; // type:object size:0x12 +_Sys_Flag = .bss:0x801B57B0; // type:object size:0x10 scope:local +curFileInfo = .bss:0x801B57C0; // type:object size:0x20 +saveBuf = .bss:0x801B57E0; // type:object size:0x4000 +ToeMessageQueue = .bss:0x801B97E0; // type:object size:0x20 scope:local +padStat$377 = .bss:0x801B9800; // type:object size:0x30 scope:local +ToeMessageArray = .bss:0x801B9830; // type:object size:0x40 scope:local +ToeThread = .bss:0x801B9870; // type:object size:0x310 scope:local align:8 +ToeThreadStack = .bss:0x801B9B80; // type:object size:0x1000 scope:local +boardCamera = .bss:0x801BAB80; // type:object size:0xC4 data:byte +cameraBackup = .bss:0x801BAC44; // type:object size:0xC4 scope:local +preTurnHook = .bss:0x801BAD08; // type:object size:0x10 scope:local +postTurnHook = .bss:0x801BAD18; // type:object size:0x10 scope:local +playerMatCopy = .bss:0x801BAD28; // type:object size:0x10 scope:local +winInsertMesTbl = .bss:0x801BAD38; // type:object size:0x20 scope:local +choiceDisableTbl = .bss:0x801BAD58; // type:object size:0x40 scope:local +focusPos = .bss:0x801BAD98; // type:object size:0xC scope:local data:float +focusPosTarget = .bss:0x801BADA4; // type:object size:0xC scope:local data:4byte +spaceData = .bss:0x801BADB0; // type:object size:0x7000 scope:local data:4byte +boardSpaceStarTbl = .bss:0x801C1DB0; // type:object size:0x10 +spaceTex = .bss:0x801C1DC0; // type:object size:0x20 scope:local +spaceHiliteTex = .bss:0x801C1DE0; // type:object size:0x20 scope:local +activeItemTbl = .bss:0x801C1E00; // type:object size:0x14 scope:local data:4byte +choiceEnableTbl = .bss:0x801C1E14; // type:object size:0x18 scope:local +lbl_801C1E30 = .bss:0x801C1E30; // type:object size:0xC data:2byte +lbl_801C1E3C = .bss:0x801C1E3C; // type:object size:0xC +lbl_801C1E48 = .bss:0x801C1E48; // type:object size:0x18 data:2byte +warpPos = .bss:0x801C1E60; // type:object size:0xC scope:local +starCharPos = .bss:0x801C1E70; // type:object size:0xC scope:local data:4byte +tutorialRoll = .bss:0x801C1E80; // type:object size:0xC scope:local +itemMdlId = .bss:0x801C1E90; // type:object size:0x18 scope:local +pickerPos = .bss:0x801C1EA8; // type:object size:0x30 scope:local +itemPosTemp = .bss:0x801C1ED8; // type:object size:0x48 scope:local +coinF = .bss:0x801C1F20; // type:object size:0x28 scope:local +booBallPos = .bss:0x801C1F48; // type:object size:0xC scope:local data:4byte +booBallScale = .bss:0x801C1F54; // type:object size:0xC scope:local data:float +booCamPos = .bss:0x801C1F60; // type:object size:0xC scope:local data:float +booCamTarget = .bss:0x801C1F6C; // type:object size:0xC scope:local data:float +booCamUp = .bss:0x801C1F78; // type:object size:0xC scope:local data:float +playerPosTemp = .bss:0x801C1F88; // type:object size:0x30 scope:local +bowserEvent = .bss:0x801C1FB8; // type:object size:0x16 scope:local +battleMGList = .bss:0x801C1FD0; // type:object size:0x10 scope:local data:2byte +camPosFortune = .bss:0x801C1FE0; // type:object size:0xC scope:local data:4byte +camTargetFortune = .bss:0x801C1FEC; // type:object size:0xC scope:local data:float +activeMG = .bss:0x801C1FF8; // type:object size:0x20 scope:local data:2byte +mgListAll = .bss:0x801C2018; // type:object size:0x40 scope:local data:2byte +mgPlay4P = .bss:0x801C2058; // type:object size:0x10 scope:local +houseMdl = .bss:0x801C2068; // type:object size:0xC scope:local data:2byte +spacePos = .bss:0x801C2078; // type:object size:0xC scope:local data:float +camStartFocusPos = .bss:0x801C2084; // type:object size:0xC scope:local data:float +spacePos = .bss:0x801C2090; // type:object size:0xC scope:local data:float +focusPos = .bss:0x801C209C; // type:object size:0xC scope:local data:float +hostPos = .bss:0x801C20A8; // type:object size:0xC scope:local +hostMot = .bss:0x801C20B4; // type:object size:0x10 scope:local data:2byte +lotteryTicketObj = .bss:0x801C20C4; // type:object size:0x10 scope:local data:4byte +boxRot = .bss:0x801C20D8; // type:object size:0x20 scope:local +padBoxPos = .bss:0x801C20F8; // type:object size:0xC scope:local data:float +pathNodeData = .bss:0x801C2108; // type:object size:0x500 scope:local data:byte +candidateNodes = .bss:0x801C2608; // type:object size:0x40 scope:local +startPathSpaceSearch = .bss:0x801C2648; // type:object size:0x20 scope:local +startPathSpace = .bss:0x801C2668; // type:object size:0x20 scope:local +boardTutorialData = .bss:0x801C2688; // type:object size:0x10 data:4byte +DriveInfo = .bss:0x801C26A0; // type:object size:0x20 scope:local align:32 +DriveBlock = .bss:0x801C26C0; // type:object size:0x30 scope:local +__OSErrorTable = .bss:0x801C26F0; // type:object size:0x40 scope:global +lbl_801C2740 = .bss:0x801C2740; // type:object size:0x20 +Scb = .bss:0x801C2760; // type:object size:0x54 scope:local data:4byte +RunQueue = .bss:0x801C27B8; // type:object size:0x100 scope:local data:4byte +lbl_801C3079 = .bss:0x801C3079; // type:object size:0x6A +lbl_801C30E3 = .bss:0x801C30E3; // type:object size:0xBD +CommandList = .bss:0x801C31A0; // type:object size:0x3C scope:local data:4byte +AlarmForTimeout = .bss:0x801C3208; // type:object size:0x28 scope:local +tmpBuffer = .bss:0x801C3280; // type:object size:0x80 scope:local +DummyCommandBlock = .bss:0x801C3300; // type:object size:0x30 scope:local +WaitingQueue = .bss:0x801C3358; // type:object size:0x20 scope:local data:4byte +bb2Buf = .bss:0x801C3378; // type:object size:0x3F scope:local +block$16 = .bss:0x801C33B8; // type:object size:0x30 scope:local +lbl_801C33E8 = .bss:0x801C33E8; // type:object size:0x78 data:2byte +lbl_801C3460 = .bss:0x801C3460; // type:object size:0x78 +lbl_801C34D8 = .bss:0x801C34D8; // type:object size:0x58 data:2byte +lbl_801C3530 = .bss:0x801C3530; // type:object size:0x20 +lbl_801C3550 = .bss:0x801C3550; // type:object size:0x10 +lbl_801C3560 = .bss:0x801C3560; // type:object size:0x40 +gxData = .bss:0x801C35A0; // type:object size:0x4F8 scope:local +lbl_801C3B18 = .bss:0x801C3B18; // type:object size:0x520 data:4byte +lbl_801C4038 = .bss:0x801C4038; // type:object size:0x220 data:4byte +lbl_801C4258 = .bss:0x801C4258; // type:object size:0x20 +Ecb = .bss:0x801C4278; // type:object size:0xC0 scope:local data:4byte +Packet = .bss:0x801C4338; // type:object size:0x80 scope:local data:4byte +lbl_801C43B8 = .bss:0x801C43B8; // type:object size:0xA0 +TypeTime = .bss:0x801C4458; // type:object size:0x20 scope:local +lbl_801C4478 = .bss:0x801C4478; // type:object size:0x20 +lbl_801C4498 = .bss:0x801C4498; // type:object size:0x40 +lbl_801C44D8 = .bss:0x801C44D8; // type:object size:0x68 data:4byte +lbl_801C4540 = .bss:0x801C4540; // type:object size:0x118 +lbl_801C4658 = .bss:0x801C4658; // type:object size:0x18 data:4byte +fragmentinfo = .bss:0x801C4670; // type:object size:0xC scope:local data:4byte +__atexit_funcs = .bss:0x801C4680; // type:object size:0x100 scope:local +lbl_801C4780 = .bss:0x801C4780; // type:object size:0x38 data:4byte +lbl_801C47B8 = .bss:0x801C47B8; // type:object size:0x100 +lbl_801C48B8 = .bss:0x801C48B8; // type:object size:0x100 +lbl_801C49B8 = .bss:0x801C49B8; // type:object size:0x100 +lbl_801C4AB8 = .bss:0x801C4AB8; // type:object size:0x18 +lbl_801C4AD0 = .bss:0x801C4AD0; // type:object size:0x28 +gTRKBigEndian = .bss:0x801C4AF8; // type:object size:0x4 scope:global data:4byte +lbl_801C4B00 = .bss:0x801C4B00; // type:object size:0x19B0 +gTRKInputPendingPtr = .bss:0x801C64B0; // type:object size:0x4 scope:global data:4byte +lbl_801C64B4 = .bss:0x801C64B4; // type:object size:0x14 data:4byte +lbl_801C64C8 = .bss:0x801C64C8; // type:object size:0x8 data:4byte +lbl_801C64D0 = .bss:0x801C64D0; // type:object size:0x8 data:4byte +TRK_saved_exceptionID = .bss:0x801C64D8; // type:object size:0x2 scope:local data:2byte +gTRKState = .bss:0x801C64DC; // type:object size:0xA4 scope:global data:4byte +gTRKCPUState = .bss:0x801C6580; // type:object size:0x430 scope:global +gTRKSaveState = .bss:0x801C69B0; // type:object size:0x94 scope:global data:4byte +lbl_801C6A44 = .bss:0x801C6A44; // type:object size:0x14 +lbl_801C6A58 = .bss:0x801C6A58; // type:object size:0x8 data:4byte +TRK_mainError = .bss:0x801C6A60; // type:object size:0x4 scope:local data:4byte +lbl_801C6A68 = .bss:0x801C6A68; // type:object size:0x758 data:4byte +lbl_801C71C0 = .bss:0x801C71C0; // type:object size:0x7 +lbl_801C71C7 = .bss:0x801C71C7; // type:object size:0x547 +lbl_801C770E = .bss:0x801C770E; // type:object size:0x476 +lbl_801C7B84 = .bss:0x801C7B84; // type:object size:0x110C +lbl_801C8C90 = .bss:0x801C8C90; // type:object size:0x8 data:byte +lbl_801C8C98 = .bss:0x801C8C98; // type:object size:0x1400 data:4byte +lbl_801CA098 = .bss:0x801CA098; // type:object size:0x3F85 +lbl_801CE01D = .bss:0x801CE01D; // type:object size:0x300 +lbl_801CE31D = .bss:0x801CE31D; // type:object size:0x64 +lbl_801CE381 = .bss:0x801CE381; // type:object size:0xE3F +lbl_801CF1C0 = .bss:0x801CF1C0; // type:object size:0x6BC +lbl_801CF87C = .bss:0x801CF87C; // type:object size:0x480 +lbl_801CFCFC = .bss:0x801CFCFC; // type:object size:0x66DC +lbl_801D63D8 = .bss:0x801D63D8; // type:object size:0x100 data:2byte +lbl_801D64D8 = .bss:0x801D64D8; // type:object size:0x240 +lbl_801D6718 = .bss:0x801D6718; // type:object size:0x214 data:4byte +lbl_801D692C = .bss:0x801D692C; // type:object size:0x600 data:float +lbl_801D6F2C = .bss:0x801D6F2C; // type:object size:0x40 data:byte +lbl_801D6F6C = .bss:0x801D6F6C; // type:object size:0x180 +lbl_801D70EC = .bss:0x801D70EC; // type:object size:0x20 data:4byte +lbl_801D710C = .bss:0x801D710C; // type:object size:0x20 data:4byte +lbl_801D712C = .bss:0x801D712C; // type:object size:0x20 data:4byte +lbl_801D714C = .bss:0x801D714C; // type:object size:0x20 data:4byte +lbl_801D716C = .bss:0x801D716C; // type:object size:0x10 data:byte +lbl_801D717C = .bss:0x801D717C; // type:object size:0x40 data:4byte +lbl_801D71BC = .bss:0x801D71BC; // type:object size:0x480 +lbl_801D763C = .bss:0x801D763C; // type:object size:0x484 +lbl_801D7AC0 = .bss:0x801D7AC0; // type:object size:0x1900 data:4byte +lbl_801D93C0 = .bss:0x801D93C0; // type:object size:0x800 +lbl_801D9BC0 = .bss:0x801D9BC0; // type:object size:0xC00 +lbl_801DA7C0 = .bss:0x801DA7C0; // type:object size:0x184E +lbl_801DC00E = .bss:0x801DC00E; // type:object size:0x1 +lbl_801DC00F = .bss:0x801DC00F; // type:object size:0x6F4 +lbl_801DC703 = .bss:0x801DC703; // type:object size:0x1C84 +lbl_801DE387 = .bss:0x801DE387; // type:object size:0x439 +lbl_801DE7C0 = .bss:0x801DE7C0; // type:object size:0x600 data:4byte +lbl_801DEDC0 = .bss:0x801DEDC0; // type:object size:0x400 data:2byte +lbl_801DF1C0 = .bss:0x801DF1C0; // type:object size:0x800 data:2byte +lbl_801DF9C0 = .bss:0x801DF9C0; // type:object size:0x22B0 +lbl_801E1C70 = .bss:0x801E1C70; // type:object size:0x1D50 +lbl_801E39C0 = .bss:0x801E39C0; // type:object size:0x20 data:2byte +lbl_801E39E0 = .bss:0x801E39E0; // type:object size:0xC +lbl_801E39EC = .bss:0x801E39EC; // type:object size:0xC data:2byte +lbl_801E39F8 = .bss:0x801E39F8; // type:object size:0x20 data:4byte +lbl_801E3A18 = .bss:0x801E3A18; // type:object size:0xF00 data:4byte +lbl_801E4918 = .bss:0x801E4918; // type:object size:0x40 data:byte +lbl_801E4958 = .bss:0x801E4958; // type:object size:0x80 data:byte +lbl_801E49D8 = .bss:0x801E49D8; // type:object size:0x950 data:byte +lbl_801E5328 = .bss:0x801E5328; // type:object size:0x600 data:4byte +lbl_801E5928 = .bss:0x801E5928; // type:object size:0x5E0 data:4byte +lbl_801E5F08 = .bss:0x801E5F08; // type:object size:0x100 data:4byte +lbl_801E6008 = .bss:0x801E6008; // type:object size:0x50 +lbl_801E6058 = .bss:0x801E6058; // type:object size:0x400 data:4byte +lbl_801E6458 = .bss:0x801E6458; // type:object size:0x300 +lbl_801E6758 = .bss:0x801E6758; // type:object size:0x700 +lbl_801E6E58 = .bss:0x801E6E58; // type:object size:0x200 data:4byte +lbl_801E7058 = .bss:0x801E7058; // type:object size:0x8B +lbl_801E70E3 = .bss:0x801E70E3; // type:object size:0x16 +lbl_801E70F9 = .bss:0x801E70F9; // type:object size:0x740 +lbl_801E7839 = .bss:0x801E7839; // type:object size:0xAA +lbl_801E78E3 = .bss:0x801E78E3; // type:object size:0x3A75 +lbl_801EB358 = .bss:0x801EB358; // type:object size:0x80 +lbl_801EB3D8 = .bss:0x801EB3D8; // type:object size:0x2180 +lbl_801ED558 = .bss:0x801ED558; // type:object size:0x40 +lbl_801ED598 = .bss:0x801ED598; // type:object size:0x80 +lbl_801ED618 = .bss:0x801ED618; // type:object size:0x40 +lbl_801ED658 = .bss:0x801ED658; // type:object size:0x284 +lbl_801ED8DC = .bss:0x801ED8DC; // type:object size:0x284 +lbl_801EDB60 = .bss:0x801EDB60; // type:object size:0x400 data:4byte +lbl_801EDF60 = .bss:0x801EDF60; // type:object size:0x60 +lbl_801EDFC0 = .bss:0x801EDFC0; // type:object size:0x2000 +lbl_801EFFC0 = .bss:0x801EFFC0; // type:object size:0x500 data:4byte +lbl_801F04C0 = .bss:0x801F04C0; // type:object size:0x30 data:4byte +lbl_801F04F0 = .bss:0x801F04F0; // type:object size:0x10 data:4byte +lbl_801F0500 = .bss:0x801F0500; // type:object size:0x178 data:2byte +lbl_801F0678 = .bss:0x801F0678; // type:object size:0xE8 data:4byte +lbl_801F0760 = .bss:0x801F0760; // type:object size:0x60 data:4byte +lbl_801F07C0 = .sdata:0x801F07C0; // type:object size:0x5 data:string +lbl_801F07C5 = .sdata:0x801F07C5; // type:object size:0x7 +rnd_seed = .sdata:0x801F07CC; // type:object size:0x4 data:4byte +lbl_801F07D0 = .sdata:0x801F07D0; // type:object size:0x6 data:string +lbl_801F07D6 = .sdata:0x801F07D6; // type:object size:0x2 data:string +lbl_801F07D8 = .sdata:0x801F07D8; // type:object size:0x7 data:string +lbl_801F07DF = .sdata:0x801F07DF; // type:object size:0x2 data:string +FirstFrame = .sdata:0x801F07E8; // type:object size:0x4 scope:local data:4byte +lbl_801F07EC = .sdata:0x801F07EC; // type:object size:0x7 data:string +lbl_801F07F3 = .sdata:0x801F07F3; // type:object size:0x4 data:string +lbl_801F07F7 = .sdata:0x801F07F7; // type:object size:0x9 +lbl_801F0800 = .sdata:0x801F0800; // type:object size:0x2 data:string +lbl_801F0802 = .sdata:0x801F0802; // type:object size:0x8 data:string +oneceF = .sdata:0x801F0810; // type:object size:0x2 scope:local data:2byte +firstTev = .sdata:0x801F0812; // type:object size:0x4 scope:local +secondTev = .sdata:0x801F0816; // type:object size:0x4 scope:local +lbl_801F081A = .sdata:0x801F081A; // type:object size:0x7 scope:local data:string +lbl_801F0828 = .sdata:0x801F0828; // type:object size:0x4 data:string +lbl_801F082C = .sdata:0x801F082C; // type:object size:0x5 data:string +omSysPauseEnableFlag = .sdata:0x801F0838; // type:object size:0x1 data:byte +omprevovl = .sdata:0x801F083C; // type:object size:0x4 data:4byte +titleMes$442 = .sdata:0x801F0840; // type:object size:0x4 scope:local data:4byte +lbl_801F0844 = .sdata:0x801F0844; // type:object size:0xC +GwLanguage = .sdata:0x801F0850; // type:object size:0x2 data:2byte +GwLanguageSave = .sdata:0x801F0852; // type:object size:0x2 +lbl_801F0858 = .sdata:0x801F0858; // type:object size:0x1 +lbl_801F0859 = .sdata:0x801F0859; // type:object size:0x7 +mgSeqOvlPrev = .sdata:0x801F0860; // type:object size:0x4 data:4byte +wordStartE = .sdata:0x801F0864; // type:object size:0x7 scope:local data:string +seqPunctTbl = .sdata:0x801F086B; // type:object size:0x3 scope:local data:byte +wordStartJ = .sdata:0x801F086E; // type:object size:0x6 scope:local +wordFinishJ = .sdata:0x801F0874; // type:object size:0x8 scope:local +wordDrawJ = .sdata:0x801F087C; // type:object size:0x6 scope:local +wordFinishE = .sdata:0x801F0882; // type:object size:0x8 scope:local data:string +wordDrawE = .sdata:0x801F088A; // type:object size:0x6 scope:local data:string +lbl_801F0890 = .sdata:0x801F0890; // type:object size:0x4 scope:local +lbl_801F0894 = .sdata:0x801F0894; // type:object size:0x6 scope:local data:string +lbl_801F089A = .sdata:0x801F089A; // type:object size:0x6 scope:local +lbl_801F08A0 = .sdata:0x801F08A0; // type:object size:0x6 scope:local data:string +lbl_801F08A6 = .sdata:0x801F08A6; // type:object size:0x5 scope:local +lbl_801F08AB = .sdata:0x801F08AB; // type:object size:0x6 scope:local data:string +lbl_801F08B1 = .sdata:0x801F08B1; // type:object size:0x5 scope:local +lbl_801F08B6 = .sdata:0x801F08B6; // type:object size:0x6 scope:local data:string +lbl_801F08BC = .sdata:0x801F08BC; // type:object size:0x4 scope:local +lbl_801F08C0 = .sdata:0x801F08C0; // type:object size:0x6 scope:local data:string +lbl_801F08C6 = .sdata:0x801F08C6; // type:object size:0x6 scope:local +lbl_801F08CC = .sdata:0x801F08CC; // type:object size:0x5 scope:local data:string +lbl_801F08D1 = .sdata:0x801F08D1; // type:object size:0x7 scope:local +lbl_801F08D8 = .sdata:0x801F08D8; // type:object size:0x6 scope:local data:string +lbl_801F08DE = .sdata:0x801F08DE; // type:object size:0x7 scope:local +lbl_801F08E5 = .sdata:0x801F08E5; // type:object size:0x8 scope:local data:string +lbl_801F08ED = .sdata:0x801F08ED; // type:object size:0x5 scope:local +lbl_801F08F2 = .sdata:0x801F08F2; // type:object size:0x7 scope:local data:string +lbl_801F08F9 = .sdata:0x801F08F9; // type:object size:0x6 scope:local +lbl_801F08FF = .sdata:0x801F08FF; // type:object size:0x5 scope:local data:string +lbl_801F0904 = .sdata:0x801F0904; // type:object size:0x5 scope:local +lbl_801F0909 = .sdata:0x801F0909; // type:object size:0x8 scope:local data:string +lbl_801F0911 = .sdata:0x801F0911; // type:object size:0x4 scope:local +lbl_801F0915 = .sdata:0x801F0915; // type:object size:0x4 scope:local data:string +lbl_801F0919 = .sdata:0x801F0919; // type:object size:0x5 scope:local +lbl_801F091E = .sdata:0x801F091E; // type:object size:0x6 scope:local data:string +lbl_801F0924 = .sdata:0x801F0924; // type:object size:0x7 scope:local +lbl_801F092B = .sdata:0x801F092B; // type:object size:0x6 scope:local +lbl_801F0931 = .sdata:0x801F0931; // type:object size:0x7 scope:local data:string +lbl_801F0938 = .sdata:0x801F0938; // type:object size:0x3 scope:local +lbl_801F093B = .sdata:0x801F093B; // type:object size:0x5 scope:local data:string +lbl_801F0940 = .sdata:0x801F0940; // type:object size:0x6 scope:local +lbl_801F0946 = .sdata:0x801F0946; // type:object size:0x5 scope:local data:string +lbl_801F094B = .sdata:0x801F094B; // type:object size:0x7 scope:local +lbl_801F0952 = .sdata:0x801F0952; // type:object size:0x6 scope:local +lbl_801F0958 = .sdata:0x801F0958; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801F0960; // type:object size:0x8 scope:local +lbl_801F0968 = .sdata:0x801F0968; // type:object size:0x8 scope:local +lbl_801F0970 = .sdata:0x801F0970; // type:object size:0x8 +lbl_801F0978 = .sdata:0x801F0978; // type:object size:0x8 +lbl_801F0980 = .sdata:0x801F0980; // type:object size:0x8 +colorN$226 = .sdata:0x801F0988; // type:object size:0x4 scope:local data:byte +colorN$271 = .sdata:0x801F098C; // type:object size:0x4 scope:local data:byte +winPrio = .sdata:0x801F0990; // type:object size:0x2 scope:local data:2byte +lbl_801F0998 = .sdata:0x801F0998; // type:object size:0x8 +lbl_801F09A0 = .sdata:0x801F09A0; // type:object size:0x8 +lbl_801F09A8 = .sdata:0x801F09A8; // type:object size:0x8 +lbl_801F09B0 = .sdata:0x801F09B0; // type:object size:0x8 +lbl_801F09B8 = .sdata:0x801F09B8; // type:object size:0x8 +lbl_801F09C0 = .sdata:0x801F09C0; // type:object size:0x1 +lbl_801F09C1 = .sdata:0x801F09C1; // type:object size:0x5 data:string +lbl_801F09C6 = .sdata:0x801F09C6; // type:object size:0x5 data:string +lbl_801F09CB = .sdata:0x801F09CB; // type:object size:0x8 data:string +lbl_801F09D3 = .sdata:0x801F09D3; // type:object size:0x6 data:string +lbl_801F09D9 = .sdata:0x801F09D9; // type:object size:0x7 +lbl_801F09E0 = .sdata:0x801F09E0; // type:object size:0x8 +SaveEnableF = .sdata:0x801F09E8; // type:object size:0x4 data:4byte +lbl_801F09EC = .sdata:0x801F09EC; // type:object size:0x2 data:string +lbl_801F09EE = .sdata:0x801F09EE; // type:object size:0x2 data:string +SlotNameTbl = .sdata:0x801F09F0; // type:object size:0x8 scope:local +saveMessWin = .sdata:0x801F09F8; // type:object size:0x4 data:4byte +SR_PushTime = .sdata:0x801F0A00; // type:object size:0x8 scope:local data:2byte +SR_ResetPad = .sdata:0x801F0A08; // type:object size:0x1 scope:local data:byte +Xfb = .sdata:0x801F0A0C; // type:object size:0x8 scope:local data:4byte +nextOvl = .sdata:0x801F0A18; // type:object size:0x4 scope:local data:4byte +colorN$1400 = .sdata:0x801F0A1C; // type:object size:0x4 scope:local data:byte +lbl_801F0A20 = .sdata:0x801F0A20; // type:object size:0x8 +suitMdl = .sdata:0x801F0A28; // type:object size:0x2 scope:local data:2byte +suitPlayerMdl = .sdata:0x801F0A2A; // type:object size:0x2 scope:local data:2byte +suitCurrMot = .sdata:0x801F0A2C; // type:object size:0x2 scope:local data:2byte +lbl_801F0A2E = .sdata:0x801F0A2E; // type:object size:0x5 data:string +lbl_801F0A33 = .sdata:0x801F0A33; // type:object size:0x5 data:string +lbl_801F0A38 = .sdata:0x801F0A38; // type:object size:0x6 data:string +lbl_801F0A3E = .sdata:0x801F0A3E; // type:object size:0x6 data:string +lbl_801F0A44 = .sdata:0x801F0A44; // type:object size:0x6 data:string +lbl_801F0A4A = .sdata:0x801F0A4A; // type:object size:0x6 data:string +lbl_801F0A50 = .sdata:0x801F0A50; // type:object size:0x6 data:string +lbl_801F0A56 = .sdata:0x801F0A56; // type:object size:0x6 data:string +lbl_801F0A5C = .sdata:0x801F0A5C; // type:object size:0x6 data:string +lbl_801F0A62 = .sdata:0x801F0A62; // type:object size:0x6 data:string +lbl_801F0A68 = .sdata:0x801F0A68; // type:object size:0x6 data:string +lbl_801F0A6E = .sdata:0x801F0A6E; // type:object size:0x6 data:string +lbl_801F0A74 = .sdata:0x801F0A74; // type:object size:0x6 data:string +lbl_801F0A7A = .sdata:0x801F0A7A; // type:object size:0xE +windowID = .sdata:0x801F0A88; // type:object size:0x2 scope:local data:2byte +boardFX = .sdata:0x801F0A90; // type:object size:0x4 scope:local data:4byte +itemUse = .sdata:0x801F0A98; // type:object size:0x1 scope:local data:byte +buttonWin = .sdata:0x801F0AA0; // type:object size:0x2 scope:local data:2byte +focusMdl = .sdata:0x801F0AA2; // type:object size:0x2 scope:local data:2byte +spaceDrawMdl = .sdata:0x801F0AA8; // type:object size:0x2 scope:local data:2byte +starPlatMdl = .sdata:0x801F0AAA; // type:object size:0x2 scope:local data:2byte +itemMdl = .sdata:0x801F0AB0; // type:object size:0x2 scope:local data:2byte +itemChoice = .sdata:0x801F0AB2; // type:object size:0x1 scope:local data:byte +shopMdlParam = .sdata:0x801F0AB4; // type:object size:0x8 scope:local +hostMdl = .sdata:0x801F0ABC; // type:object size:0x2 scope:local data:2byte +shopMot = .sdata:0x801F0ABE; // type:object size:0x6 scope:local data:2byte +itemCurChoice = .sdata:0x801F0AC4; // type:object size:0x1 scope:local data:byte +defaultItemTbl = .sdata:0x801F0AC5; // type:object size:0x5 scope:local +hostMdl = .sdata:0x801F0AD0; // type:object size:0x2 scope:local data:2byte +lotteryMot = .sdata:0x801F0AD2; // type:object size:0x8 scope:local data:2byte +lotterySpr = .sdata:0x801F0ADA; // type:object size:0x2 scope:local data:2byte +lotteryInstWin = .sdata:0x801F0ADC; // type:object size:0x2 scope:local data:2byte +gripMdl = .sdata:0x801F0ADE; // type:object size:0x4 scope:local data:2byte +turnMot = .sdata:0x801F0AE2; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801F0AE4; // type:object size:0x8 scope:local +loseMot = .sdata:0x801F0AEC; // type:object size:0x2 scope:local data:2byte +ticketSprGrp = .sdata:0x801F0AEE; // type:object size:0x2 data:2byte +warpSpringMdl = .sdata:0x801F0AF0; // type:object size:0x2 scope:local data:2byte +warpImpactMdl = .sdata:0x801F0AF2; // type:object size:0x2 scope:local data:2byte +warpImpactPlayer = .sdata:0x801F0AF4; // type:object size:0x4 scope:local +lbl_801F0AF8 = .sdata:0x801F0AF8; // type:object size:0x8 +wheelPos = .sdata:0x801F0B00; // type:object size:0x1 scope:local data:byte +wheelSprGrp = .sdata:0x801F0B02; // type:object size:0x2 scope:local data:2byte +wheelFXStat = .sdata:0x801F0B04; // type:object size:0x4 scope:local data:4byte +boxObj = .sdata:0x801F0B08; // type:object size:0x8 scope:local +itemMdl = .sdata:0x801F0B10; // type:object size:0x2 scope:local data:2byte +starParman = .sdata:0x801F0B18; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801F0B1A; // type:object size:0x2 scope:local data:2byte +diceMdl = .sdata:0x801F0B20; // type:object size:0x6 scope:local +diceEff = .sdata:0x801F0B26; // type:object size:0x6 scope:local +rollWin = .sdata:0x801F0B2C; // type:object size:0x2 scope:local data:2byte +lbl_801F0B2E = .sdata:0x801F0B2E; // type:object size:0x3 data:string +itemPickupMdlId = .sdata:0x801F0B38; // type:object size:0x2 scope:local data:2byte +yourTurnSprGrp = .sdata:0x801F0B3A; // type:object size:0x2 scope:local data:2byte +jumpMot = .sdata:0x801F0B40; // type:object size:0x2 scope:local data:2byte +starMdl = .sdata:0x801F0B42; // type:object size:0x2 scope:local data:2byte +itemMotTbl = .sdata:0x801F0B48; // type:object size:0x8 scope:local +lbl_801F0B50 = .sdata:0x801F0B50; // type:object size:0x8 +jumpMot = .sdata:0x801F0B58; // type:object size:0x2 scope:local data:2byte +scareMot = .sdata:0x801F0B5A; // type:object size:0x2 scope:local data:2byte +suitItemMdl = .sdata:0x801F0B5C; // type:object size:0x2 scope:local data:2byte +bowserMdl = .sdata:0x801F0B5E; // type:object size:0x2 scope:local data:2byte +lbl_801F0B60 = .sdata:0x801F0B60; // type:object size:0x3 data:string +lbl_801F0B63 = .sdata:0x801F0B63; // type:object size:0x8 data:string +lbl_801F0B70 = .sdata:0x801F0B70; // type:object size:0x8 +lbl_801F0B78 = .sdata:0x801F0B78; // type:object size:0x8 +ballMdlTbl = .sdata:0x801F0B80; // type:object size:0x8 scope:local +lbl_801F0B88 = .sdata:0x801F0B88; // type:object size:0x8 +luckyValue = .sdata:0x801F0B90; // type:object size:0x1 scope:local data:byte +cursorPos = .sdata:0x801F0B91; // type:object size:0x1 scope:local data:byte +houseShowMot = .sdata:0x801F0B98; // type:object size:0x2 scope:local data:2byte +houseHideMot = .sdata:0x801F0B9A; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801F0B9C; // type:object size:0x2 scope:local data:2byte +booMdl = .sdata:0x801F0B9E; // type:object size:0x2 scope:local data:2byte +smokeMdl = .sdata:0x801F0BA0; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801F0BA2; // type:object size:0x2 scope:local data:2byte +hostMot = .sdata:0x801F0BA4; // type:object size:0x6 scope:local data:2byte +lbl_801F0BAA = .sdata:0x801F0BAA; // type:object size:0x7 data:string +lbl_801F0BB1 = .sdata:0x801F0BB1; // type:object size:0x7 data:string +lbl_801F0BB8 = .sdata:0x801F0BB8; // type:object size:0x7 data:string +lbl_801F0BBF = .sdata:0x801F0BBF; // type:object size:0x7 data:string +lbl_801F0BC6 = .sdata:0x801F0BC6; // type:object size:0x7 data:string +lbl_801F0BCD = .sdata:0x801F0BCD; // type:object size:0x6 data:string +lbl_801F0BD3 = .sdata:0x801F0BD3; // type:object size:0x7 data:string +lbl_801F0BDA = .sdata:0x801F0BDA; // type:object size:0x6 data:string +lbl_801F0BE0 = .sdata:0x801F0BE0; // type:object size:0x3 data:string +logoSprGrp = .sdata:0x801F0BE8; // type:object size:0x2 scope:local data:2byte +logoSpr = .sdata:0x801F0BEA; // type:object size:0x2 scope:local data:2byte +camFocus = .sdata:0x801F0BEC; // type:object size:0x2 scope:local data:2byte +tapWin = .sdata:0x801F0BEE; // type:object size:0x2 scope:local data:2byte +streamStatus = .sdata:0x801F0BF0; // type:object size:0x4 scope:local data:4byte +tutorialRollTbl = .sdata:0x801F0BF4; // type:object size:0x4 scope:local +stopWin = .sdata:0x801F0BF8; // type:object size:0x2 scope:local data:2byte +wheelMdl = .sdata:0x801F0BFA; // type:object size:0x2 scope:local data:2byte +lbl_801D3854 = .sdata:0x801F0BFC; // type:object size:0x2 data:2byte +focusMdl = .sdata:0x801F0BFE; // type:object size:0x2 scope:local data:2byte +messBase = .sdata:0x801F0C00; // type:object size:0x4 scope:local data:4byte +lbl_801F0C04 = .sdata:0x801F0C04; // type:object size:0x6 data:string +lbl_801F0C0A = .sdata:0x801F0C0A; // type:object size:0x7 data:string +lbl_801F0C11 = .sdata:0x801F0C11; // type:object size:0x7 data:string +lbl_801F0C18 = .sdata:0x801F0C18; // type:object size:0x7 data:string +lbl_801F0C1F = .sdata:0x801F0C1F; // type:object size:0x5 data:string +lbl_801F0C24 = .sdata:0x801F0C24; // type:object size:0x6 data:string +lbl_801F0C2A = .sdata:0x801F0C2A; // type:object size:0x6 data:string +lbl_801F0C30 = .sdata:0x801F0C30; // type:object size:0x6 data:string +lbl_801F0C36 = .sdata:0x801F0C36; // type:object size:0x4 data:string +lbl_801F0C3A = .sdata:0x801F0C3A; // type:object size:0x5 data:string +lbl_801F0C3F = .sdata:0x801F0C3F; // type:object size:0x5 data:string +lbl_801F0C44 = .sdata:0x801F0C44; // type:object size:0xC +pausePad = .sdata:0x801F0C50; // type:object size:0x1 scope:local data:byte +pauseSprGrp = .sdata:0x801F0C52; // type:object size:0x2 scope:local data:2byte +padConfigSprGrp = .sdata:0x801F0C54; // type:object size:0x2 scope:local data:2byte +pauseCursorPos = .sdata:0x801F0C56; // type:object size:0x2 scope:local data:2byte +settingsControlWin = .sdata:0x801F0C58; // type:object size:0x2 scope:local data:2byte +controlWin = .sdata:0x801F0C5A; // type:object size:0x2 scope:local data:2byte +quitWin = .sdata:0x801F0C5C; // type:object size:0x2 scope:local data:2byte +settingsWin = .sdata:0x801F0C5E; // type:object size:0x2 scope:local data:2byte +__OSCurrHeap = .sdata:0x801F0C60; // type:object size:0x8 data:4byte +__OSArenaLo = .sdata:0x801F0C68; // type:object size:0x4 scope:local data:4byte +@32 = .sdata:0x801F0C70; // type:object size:0x2 scope:local data:string +lbl_801F0C78 = .sdata:0x801F0C78; // type:object size:0x8 data:2byte +lbl_801F0C80 = .sdata:0x801F0C80; // type:object size:0x8 +lbl_801F0C88 = .sdata:0x801F0C88; // type:object size:0x8 data:4byte +lbl_801F0C90 = .sdata:0x801F0C90; // type:object size:0x8 data:string +autoInvalidation = .sdata:0x801F0C98; // type:object size:0x4 scope:local data:4byte +@35 = .sdata:0x801F0CA0; // type:object size:0x2 scope:local data:string +@40 = .sdata:0x801F0CA4; // type:object size:0x4 scope:local data:string +@41 = .sdata:0x801F0CA8; // type:object size:0x3 scope:local data:string +lbl_801F0CB0 = .sdata:0x801F0CB0; // type:object size:0x8 data:string +lbl_801F0CB8 = .sdata:0x801F0CB8; // type:object size:0x8 data:byte +lbl_801F0CC0 = .sdata:0x801F0CC0; // type:object size:0x4 data:4byte +lbl_801F0CC4 = .sdata:0x801F0CC4; // type:object size:0x4 data:4byte +lbl_801F0CC8 = .sdata:0x801F0CC8; // type:object size:0x4 data:4byte +lbl_801F0CCC = .sdata:0x801F0CCC; // type:object size:0x4 data:4byte +lbl_801F0CD0 = .sdata:0x801F0CD0; // type:object size:0x4 data:4byte +lbl_801F0CD4 = .sdata:0x801F0CD4; // type:object size:0x4 +lbl_801F0CD8 = .sdata:0x801F0CD8; // type:object size:0x8 +gx = .sdata:0x801F0CE0; // type:object size:0x4 scope:global data:4byte +lbl_801F0CE8 = .sdata:0x801F0CE8; // type:object size:0x4 +lbl_801F0CEC = .sdata:0x801F0CEC; // type:object size:0x4 +lbl_801F0CF0 = .sdata:0x801F0CF0; // type:object size:0x8 +lbl_801F0CF8 = .sdata:0x801F0CF8; // type:object size:0x8 +lbl_801F0D00 = .sdata:0x801F0D00; // type:object size:0x8 +lbl_801F0D08 = .sdata:0x801F0D08; // type:object size:0x8 +lbl_801F0D10 = .sdata:0x801F0D10; // type:object size:0x8 +lbl_801F0D18 = .sdata:0x801F0D18; // type:object size:0x8 +lbl_801F0D20 = .sdata:0x801F0D20; // type:object size:0x8 +lbl_801F0D28 = .sdata:0x801F0D28; // type:object size:0x8 +lbl_801F0D30 = .sdata:0x801F0D30; // type:object size:0x8 +lbl_801F0D38 = .sdata:0x801F0D38; // type:object size:0x8 data:4byte +lbl_801F0D40 = .sdata:0x801F0D40; // type:object size:0x8 data:2byte +lbl_801F0D48 = .sdata:0x801F0D48; // type:object size:0x8 +lbl_801F0D50 = .sdata:0x801F0D50; // type:object size:0x4 data:4byte +lbl_801F0D54 = .sdata:0x801F0D54; // type:object size:0x4 data:4byte +fragmentID = .sdata:0x801F0D58; // type:object size:0x4 scope:local data:4byte +lbl_801F0D60 = .sdata:0x801F0D60; // type:object size:0x8 +lbl_801F0D68 = .sdata:0x801F0D68; // type:object size:0x8 +@wstringBase0 = .sdata:0x801F0D70; // type:object size:0x2 scope:local +lbl_801F0D78 = .sdata:0x801F0D78; // type:object size:0x4 data:float +lbl_801F0D7C = .sdata:0x801F0D7C; // type:object size:0x4 data:float +lbl_801F0D80 = .sdata:0x801F0D80; // type:object size:0x8 data:4byte +lbl_801F0D88 = .sdata:0x801F0D88; // type:object size:0x8 +lbl_801F0D90 = .sdata:0x801F0D90; // type:object size:0x8 +lbl_801F0D98 = .sdata:0x801F0D98; // type:object size:0x8 data:2byte +lbl_801F0DA0 = .sdata:0x801F0DA0; // type:object size:0x1 data:byte +SystemInitF = .sbss:0x801F0DC0; // type:object size:0x4 data:4byte +HuDvdErrWait = .sbss:0x801F0DC4; // type:object size:0x4 data:4byte +fi_req = .sbss:0x801F0DC8; // type:object size:0x4 scope:local +rf_req = .sbss:0x801F0DCC; // type:object size:0x4 scope:local +pe_req = .sbss:0x801F0DD0; // type:object size:0x4 scope:local +vi_req = .sbss:0x801F0DD4; // type:object size:0x4 scope:local +io_req = .sbss:0x801F0DD8; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801F0DDC; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801F0DE0; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801F0DE4; // type:object size:0x4 scope:local +tc_req = .sbss:0x801F0DE8; // type:object size:0x4 scope:local +cp_req = .sbss:0x801F0DEC; // type:object size:0x4 scope:local +total_copy_clks = .sbss:0x801F0DF0; // type:object size:0x4 scope:local +clr_pixels_in = .sbss:0x801F0DF4; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801F0DF8; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801F0DFC; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801F0E00; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801F0E04; // type:object size:0x4 scope:local +vstall = .sbss:0x801F0E08; // type:object size:0x4 scope:local +vmiss = .sbss:0x801F0E0C; // type:object size:0x4 scope:local +vcheck = .sbss:0x801F0E10; // type:object size:0x4 scope:local +GlobalCounter = .sbss:0x801F0E14; // type:object size:0x4 data:4byte +VCounter = .sbss:0x801F0E18; // type:object size:0x4 data:4byte +RumbleBit = .sbss:0x801F0E1C; // type:object size:0x4 scope:local data:4byte +_PadErr = .sbss:0x801F0E20; // type:object size:0x4 scope:local +_PadDStkRepOld = .sbss:0x801F0E24; // type:object size:0x4 scope:local +_PadDStkRepCnt = .sbss:0x801F0E28; // type:object size:0x4 scope:local +_PadDStkRep = .sbss:0x801F0E2C; // type:object size:0x4 scope:local +_PadDStk = .sbss:0x801F0E30; // type:object size:0x4 scope:local +_PadTrigR = .sbss:0x801F0E34; // type:object size:0x4 scope:local +_PadTrigL = .sbss:0x801F0E38; // type:object size:0x4 scope:local +_PadSubStkY = .sbss:0x801F0E3C; // type:object size:0x4 scope:local +_PadSubStkX = .sbss:0x801F0E40; // type:object size:0x4 scope:local +_PadStkY = .sbss:0x801F0E44; // type:object size:0x4 scope:local +_PadStkX = .sbss:0x801F0E48; // type:object size:0x4 scope:local +_PadRepCnt = .sbss:0x801F0E4C; // type:object size:0x8 scope:local +_PadBtnDown = .sbss:0x801F0E54; // type:object size:0x8 +_PadBtn = .sbss:0x801F0E5C; // type:object size:0x8 +HuPadErr = .sbss:0x801F0E64; // type:object size:0x4 +HuPadDStkRep = .sbss:0x801F0E68; // type:object size:0x4 +HuPadDStk = .sbss:0x801F0E6C; // type:object size:0x4 +HuPadTrigR = .sbss:0x801F0E70; // type:object size:0x4 +HuPadTrigL = .sbss:0x801F0E74; // type:object size:0x4 +HuPadSubStkY = .sbss:0x801F0E78; // type:object size:0x4 +HuPadSubStkX = .sbss:0x801F0E7C; // type:object size:0x4 +HuPadStkY = .sbss:0x801F0E80; // type:object size:0x4 +HuPadStkX = .sbss:0x801F0E84; // type:object size:0x4 +HuPadBtnRep = .sbss:0x801F0E88; // type:object size:0x8 +HuPadBtnDown = .sbss:0x801F0E90; // type:object size:0x8 data:2byte +HuPadBtn = .sbss:0x801F0E98; // type:object size:0x8 +beforeDvdStatus = .sbss:0x801F0EA0; // type:object size:0x4 scope:local data:4byte +CallBackStatus = .sbss:0x801F0EA4; // type:object size:0x4 scope:local data:4byte +shortAccessSleep = .sbss:0x801F0EA8; // type:object size:0x4 scope:local data:4byte +DataDirMax = .sbss:0x801F0EAC; // type:object size:0x4 scope:local data:4byte +DirDataSize = .sbss:0x801F0EB0; // type:object size:0x8 data:4byte +DemoStatEnable = .sbss:0x801F0EB8; // type:object size:0x4 scope:local data:4byte +worstVcount = .sbss:0x801F0EBC; // type:object size:0x4 data:4byte +minimumVcountf = .sbss:0x801F0EC0; // type:object size:0x4 data:float +minimumVcount = .sbss:0x801F0EC4; // type:object size:0x4 data:4byte +DemoCurrentBuffer = .sbss:0x801F0EC8; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801F0ECC; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801F0ED0; // type:object size:0x4 data:4byte +DefaultFifoObj = .sbss:0x801F0ED4; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801F0ED8; // type:object size:0x4 scope:local data:4byte +currentHeapHandle = .sbss:0x801F0EDC; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801F0EE0; // type:object size:0x8 data:4byte +saftyFrameF = .sbss:0x801F0EE8; // type:object size:0x4 data:4byte +strlinecnt = .sbss:0x801F0EEC; // type:object size:0x2 data:2byte +empstrline = .sbss:0x801F0EEE; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801F0EF0; // type:object size:0x8 data:4byte +procfunc = .sbss:0x801F0EF8; // type:object size:0x4 data:4byte +processcnt = .sbss:0x801F0EFC; // type:object size:0x2 scope:local data:2byte +processcur = .sbss:0x801F0F00; // type:object size:0x4 scope:local data:4byte +processtop = .sbss:0x801F0F04; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801F0F08; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801F0F0C; // type:object size:0x2 scope:local data:2byte +HuSprOrderNum = .sbss:0x801F0F0E; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801F0F10; // type:object size:0x8 scope:local data:2byte +MaterialTop = .sbss:0x801F0F18; // type:object size:0x4 data:4byte +AttributeTop = .sbss:0x801F0F1C; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801F0F20; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801F0F24; // type:object size:0x4 data:4byte +objtop = .sbss:0x801F0F28; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801F0F2C; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801F0F30; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801F0F34; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801F0F38; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801F0F3C; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801F0F40; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801F0F44; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801F0F48; // type:object size:0x8 scope:local data:4byte +CancelTRXF = .sbss:0x801F0F50; // type:object size:0x4 scope:local data:4byte +TL32F = .sbss:0x801F0F54; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801F0F58; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801F0F5C; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801F0F60; // type:object size:0x2 scope:local data:2byte +curModelID = .sbss:0x801F0F64; // type:object size:0x4 scope:local data:4byte +mallocNo = .sbss:0x801F0F68; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801F0F6C; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801F0F70; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801F0F74; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801F0F78; // type:object size:0x2 scope:local data:2byte +quadCnt = .sbss:0x801F0F7A; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801F0F7C; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801F0F7E; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801F0F80; // type:object size:0x4 scope:local data:4byte +modelObjNum = .sbss:0x801F0F84; // type:object size:0x2 data:2byte +modelMeshNum = .sbss:0x801F0F86; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801F0F88; // type:object size:0x4 data:4byte +totalTexCacheCnt = .sbss:0x801F0F8C; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801F0F90; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801F0F94; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801F0F98; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801F0F9C; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801F0FA0; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801F0FA4; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801F0FA8; // type:object size:0x2 scope:local data:2byte +kColorIdx = .sbss:0x801F0FAC; // type:object size:0x4 scope:local data:4byte +kColor = .sbss:0x801F0FB0; // type:object size:0x4 scope:local data:byte +projectionMapNo = .sbss:0x801F0FB4; // type:object size:0x2 data:2byte +toonMapNo = .sbss:0x801F0FB6; // type:object size:0x2 scope:local data:2byte +shadowMapNo = .sbss:0x801F0FB8; // type:object size:0x2 scope:local data:2byte +attachMotionF = .sbss:0x801F0FBC; // type:object size:0x4 scope:local data:4byte +vtxModeBak = .sbss:0x801F0FC0; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801F0FC2; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801F0FC4; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801F0FC8; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801F0FCC; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801F0FCE; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801F0FD0; // type:object size:0x4 scope:local data:4byte +DrawData = .sbss:0x801F0FD4; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801F0FD8; // type:object size:0x4 scope:local data:4byte +DLBufP = .sbss:0x801F0FDC; // type:object size:0x4 scope:local data:4byte +shadingBak = .sbss:0x801F0FE0; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801F0FE4; // type:object size:0x1 scope:local data:byte +materialBak = .sbss:0x801F0FE8; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801F0FEC; // type:object size:0x2 data:2byte +modelKillAllF = .sbss:0x801F0FF0; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801F0FF4; // type:object size:0x2 scope:local data:2byte +Hu3DCameraExistF = .sbss:0x801F0FF6; // type:object size:0x2 data:2byte +Hu3DPauseF = .sbss:0x801F0FF8; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801F0FFC; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801F1000; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801F1002; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801F1004; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801F1008; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801F100C; // type:object size:0x4 data:4byte +Hu3DShadowCamBit = .sbss:0x801F1010; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801F1014; // type:object size:0x4 data:4byte +reflectMapNo = .sbss:0x801F1018; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801F101A; // type:object size:0x4 data:byte +bitMapPtr = .sbss:0x801F1020; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801F1028; // type:object size:0x1 scope:local data:byte +tokenEndF = .sbss:0x801F102A; // type:object size:0x2 scope:local data:2byte +total_copy_clks = .sbss:0x801F102C; // type:object size:0x4 scope:local data:4byte +clr_pixels_in = .sbss:0x801F1030; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801F1034; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801F1038; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801F103C; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801F1040; // type:object size:0x4 scope:local +fi_req = .sbss:0x801F1044; // type:object size:0x4 scope:local +rf_req = .sbss:0x801F1048; // type:object size:0x4 scope:local +pe_req = .sbss:0x801F104C; // type:object size:0x4 scope:local +vi_req = .sbss:0x801F1050; // type:object size:0x4 scope:local +io_req = .sbss:0x801F1054; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801F1058; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801F105C; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801F1060; // type:object size:0x4 scope:local +tc_req = .sbss:0x801F1064; // type:object size:0x4 scope:local +cp_req = .sbss:0x801F1068; // type:object size:0x4 scope:local +vstall = .sbss:0x801F106C; // type:object size:0x4 scope:local +vmiss = .sbss:0x801F1070; // type:object size:0x4 scope:local +vcheck = .sbss:0x801F1074; // type:object size:0x4 scope:local +met1 = .sbss:0x801F1078; // type:object size:0x4 scope:local +met0 = .sbss:0x801F107C; // type:object size:0x4 scope:local +omdispinfo = .sbss:0x801F1080; // type:object size:0x2 data:2byte +omSysExitReq = .sbss:0x801F1082; // type:object size:0x2 data:2byte +omUPauseFlag = .sbss:0x801F1084; // type:object size:0x1 data:byte +omnextovlstat = .sbss:0x801F1088; // type:object size:0x4 scope:local data:4byte +omovlstat = .sbss:0x801F108C; // type:object size:0x4 data:4byte +omnextovlevtno = .sbss:0x801F1090; // type:object size:0x4 scope:local data:4byte +omovlevtno = .sbss:0x801F1094; // type:object size:0x4 data:4byte +omovlhisidx = .sbss:0x801F1098; // type:object size:0x4 data:4byte +omcurdll = .sbss:0x801F109C; // type:object size:0x4 data:4byte +omcurovl = .sbss:0x801F10A0; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801F10A4; // type:object size:0x4 scope:local data:4byte +omwatchproc = .sbss:0x801F10A8; // type:object size:0x4 scope:local data:4byte +omDBGSysKeyObj = .sbss:0x801F10AC; // type:object size:0x4 data:4byte +y_start = .sbss:0x801F10B0; // type:object size:0x4 scope:local data:4byte +x_start = .sbss:0x801F10B4; // type:object size:0x4 scope:local data:4byte +Draw_Color = .sbss:0x801F10B8; // type:object size:0x3 scope:local data:byte +XFB_putc = .sbss:0x801F10BC; // type:object size:0x4 scope:local data:4byte +omDBGMenuButton = .sbss:0x801F10C0; // type:object size:0x2 +CZoom = .sbss:0x801F10C4; // type:object size:0x4 data:float +omDLLFileList = .sbss:0x801F10C8; // type:object size:0x8 scope:local data:4byte +frand_seed = .sbss:0x801F10D0; // type:object size:0x8 scope:local data:4byte +fadeStat = .sbss:0x801F10D8; // type:object size:0x1 data:byte +musicOffF = .sbss:0x801F10DC; // type:object size:0x4 data:4byte +Snd3DDistOffset = .sbss:0x801F10E0; // type:object size:0x4 data:float +Snd3DSpeedOffset = .sbss:0x801F10E4; // type:object size:0x4 data:float +Snd3DStartDisOffset = .sbss:0x801F10E8; // type:object size:0x4 data:float +Snd3DFrontSurDisOffset = .sbss:0x801F10EC; // type:object size:0x4 data:float +Snd3DBackSurDisOffset = .sbss:0x801F10F0; // type:object size:0x4 data:float +HuAuxBVol = .sbss:0x801F10F4; // type:object size:0x1 scope:local data:byte +HuAuxAVol = .sbss:0x801F10F5; // type:object size:0x1 scope:local data:byte +auxBNoBak = .sbss:0x801F10F8; // type:object size:0x4 scope:local data:4byte +auxANoBak = .sbss:0x801F10FC; // type:object size:0x4 scope:local data:4byte +sndGroupBak = .sbss:0x801F1100; // type:object size:0x2 scope:local data:2byte +Hu3DAudVol = .sbss:0x801F1102; // type:object size:0x2 scope:local data:2byte +Meshno = .sbss:0x801F1108; // type:object size:0x4 scope:local data:4byte +Meshcnt = .sbss:0x801F110C; // type:object size:0x4 scope:local data:4byte +normtop = .sbss:0x801F1110; // type:object size:0x4 scope:local data:4byte +normenv = .sbss:0x801F1114; // type:object size:0x4 scope:local data:4byte +vtxenv = .sbss:0x801F1118; // type:object size:0x4 scope:local data:4byte +CurHsf = .sbss:0x801F111C; // type:object size:0x4 scope:local data:4byte +objtop = .sbss:0x801F1120; // type:object size:0x4 scope:local data:4byte +nMesh = .sbss:0x801F1124; // type:object size:0x4 scope:local data:4byte +nObj = .sbss:0x801F1128; // type:object size:0x4 scope:local data:4byte +MtxTop = .sbss:0x801F112C; // type:object size:0x4 scope:local data:4byte +Vertextop = .sbss:0x801F1130; // type:object size:0x4 data:4byte +seqLanguage = .sbss:0x801F1138; // type:object size:0x4 scope:local data:4byte +pauseProcess = .sbss:0x801F113C; // type:object size:0x4 scope:local data:4byte +pauseActiveF = .sbss:0x801F1140; // type:object size:0x4 scope:local data:4byte +pauseExitF = .sbss:0x801F1144; // type:object size:0x4 scope:local data:4byte +pauseWaitF = .sbss:0x801F1148; // type:object size:0x4 scope:local data:4byte +seqRecordVal = .sbss:0x801F114C; // type:object size:0x4 scope:local data:4byte +seqPauseF = .sbss:0x801F1150; // type:object size:0x2 scope:local data:2byte +seqSpeed = .sbss:0x801F1152; // type:object size:0x2 scope:local data:2byte +lbl_801F1154 = .sbss:0x801F1154; // type:object size:0x1 data:byte +seqDoneF = .sbss:0x801F1155; // type:object size:0x1 scope:local data:byte +seqTimer = .sbss:0x801F1156; // type:object size:0x2 scope:local data:2byte +gid = .sbss:0x801F1158; // type:object size:0x2 scope:local data:2byte +lbl_801D3DA0 = .sbss:0x801F1160; // type:object size:0x8 +wipeFadeInF = .sbss:0x801F1168; // type:object size:0x8 data:4byte +fontAnim = .sbss:0x801F1170; // type:object size:0x4 data:4byte +LanguageNo = .sbss:0x801F1174; // type:object size:0x1 scope:local data:byte +comKeyIdx = .sbss:0x801F1176; // type:object size:0x2 scope:local data:2byte +comKeyIdxNow = .sbss:0x801F1178; // type:object size:0x2 scope:local data:2byte +mesCharCnt = .sbss:0x801F117A; // type:object size:0x2 scope:local data:2byte +cancelCRF = .sbss:0x801F117C; // type:object size:0x4 scope:local data:4byte +fontWidthP = .sbss:0x801F1180; // type:object size:0x4 scope:local data:4byte +winAMemP = .sbss:0x801F1184; // type:object size:0x4 scope:local data:4byte +winInsertF = .sbss:0x801F1188; // type:object size:0x1 scope:local data:byte +winTabSize = .sbss:0x801F1189; // type:object size:0x1 scope:local data:byte +winMaxHeight = .sbss:0x801F118A; // type:object size:0x2 scope:local data:2byte +winMaxWidth = .sbss:0x801F118C; // type:object size:0x2 scope:local data:2byte +messDataNo = .sbss:0x801F1190; // type:object size:0x4 scope:local data:4byte +messDataPtr = .sbss:0x801F1194; // type:object size:0x4 data:4byte +winProc = .sbss:0x801F1198; // type:object size:0x4 scope:local data:4byte +cardAnimB = .sbss:0x801F119C; // type:object size:0x4 scope:local data:4byte +cardAnimA = .sbss:0x801F11A0; // type:object size:0x4 scope:local data:4byte +cursorAnim = .sbss:0x801F11A4; // type:object size:0x4 scope:local data:4byte +iconAnim = .sbss:0x801F11A8; // type:object size:0x8 scope:local data:4byte +UnMountCnt = .sbss:0x801F11B0; // type:object size:0x1 data:byte +cardWork = .sbss:0x801F11B4; // type:object size:0x4 scope:local data:4byte +arqIdx = .sbss:0x801F11B8; // type:object size:0x2 scope:local data:2byte +arqCnt = .sbss:0x801F11BC; // type:object size:0x4 scope:local data:4byte +ARBase = .sbss:0x801F11C0; // type:object size:0x8 scope:local data:4byte +effectAMemP = .sbss:0x801F11C8; // type:object size:0x4 scope:local data:4byte +skipAnimUpdate = .sbss:0x801F11CC; // type:object size:0x4 scope:local data:4byte +CollisionCount = .sbss:0x801F11D0; // type:object size:0x4 data:4byte +topvtx = .sbss:0x801F11D4; // type:object size:0x4 scope:local data:4byte +AttrHsf = .sbss:0x801F11D8; // type:object size:0x4 scope:local data:4byte +HitFaceCount = .sbss:0x801F11DC; // type:object size:0x4 data:4byte +nChar = .sbss:0x801F11E0; // type:object size:0x4 +nMap = .sbss:0x801F11E4; // type:object size:0x4 data:4byte +AddZ = .sbss:0x801F11E8; // type:object size:0x4 data:float +AddX = .sbss:0x801F11EC; // type:object size:0x4 data:float +Initialized = .sbss:0x801F11F0; // type:object size:0x4 scope:local data:4byte +OldAIDCallback = .sbss:0x801F11F4; // type:object size:0x4 scope:local data:4byte +AudioSystem = .sbss:0x801F11F8; // type:object size:0x4 scope:local data:4byte +bufIdx = .sbss:0x801F11FC; // type:object size:0x4 scope:local data:4byte +CurAudioBuffer = .sbss:0x801F1200; // type:object size:0x4 scope:local data:4byte +LastAudioBuffer = .sbss:0x801F1204; // type:object size:0x4 scope:local data:4byte +SoundBufferIndex = .sbss:0x801F1208; // type:object size:0x4 scope:local data:4byte +THPProc = .sbss:0x801F1210; // type:object size:0x4 data:4byte +THPStart = .sbss:0x801F1214; // type:object size:0x2 scope:local data:2byte +THPFrame = .sbss:0x801F1218; // type:object size:0x4 scope:local data:4byte +THPStat = .sbss:0x801F121C; // type:object size:0x2 scope:local data:2byte +THPLoopF = .sbss:0x801F121E; // type:object size:0x2 scope:local data:2byte +decodeThread = .sbss:0x801F1220; // type:object size:0x4 scope:local data:4byte +decodeStackP = .sbss:0x801F1224; // type:object size:0x4 scope:local data:4byte +decodeRate = .sbss:0x801F1228; // type:object size:0x4 scope:local data:4byte +audioTrack = .sbss:0x801F122C; // type:object size:0x8 scope:local data:4byte +mgBoardHostEnableF = .sbss:0x801F1238; // type:object size:0x4 +mgInstExitEnableF = .sbss:0x801F123C; // type:object size:0x4 +mgPracticeEnableF = .sbss:0x801F1240; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801F1244; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801F1248; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801F124C; // type:object size:0x2 +mgBattleStarMax = .sbss:0x801F124E; // type:object size:0x2 +mgBattleStar = .sbss:0x801F1250; // type:object size:0x8 +mgTypeCurr = .sbss:0x801F1258; // type:object size:0x2 +curSlotNo = .sbss:0x801F1260; // type:object size:0x2 data:2byte +curBoxNo = .sbss:0x801F1262; // type:object size:0x1 data:byte +saveExecF = .sbss:0x801F1264; // type:object size:0x4 +SLSerialNo = .sbss:0x801F1268; // type:object size:0x8 data:4byte +H_ResetReady = .sbss:0x801F1270; // type:object size:0x4 scope:local data:4byte +SR_RestartChk = .sbss:0x801F1274; // type:object size:0x4 scope:local data:4byte +SR_ExecReset = .sbss:0x801F1278; // type:object size:0x4 data:4byte +trychkBusyWait = .sbss:0x801F127C; // type:object size:0x4 scope:local data:4byte +XfbProg = .sbss:0x801F1280; // type:object size:0x4 scope:local data:4byte +XfbH = .sbss:0x801F1284; // type:object size:0x2 scope:local data:2byte +XfbW = .sbss:0x801F1286; // type:object size:0x2 scope:local data:2byte +boardMainProc = .sbss:0x801F1288; // type:object size:0x4 data:4byte +boardObjMan = .sbss:0x801F128C; // type:object size:0x4 data:4byte +cameraObj = .sbss:0x801F1290; // type:object size:0x4 scope:local data:4byte +tauntObj = .sbss:0x801F1294; // type:object size:0x4 scope:local data:4byte +cameraUseBackup = .sbss:0x801F1298; // type:object size:0x4 scope:local data:4byte +createFunc = .sbss:0x801F129C; // type:object size:0x4 scope:local data:4byte +destroyFunc = .sbss:0x801F12A0; // type:object size:0x4 scope:local data:4byte +boardLightSetHook = .sbss:0x801F12A4; // type:object size:0x4 data:4byte +boardLightResetHook = .sbss:0x801F12A8; // type:object size:0x4 data:4byte +boardTurnFunc = .sbss:0x801F12AC; // type:object size:0x4 data:4byte +boardStarGiveHook = .sbss:0x801F12B0; // type:object size:0x4 data:4byte +boardStarShowNextHook = .sbss:0x801F12B4; // type:object size:0x4 data:4byte +boardBowserHook = .sbss:0x801F12B8; // type:object size:0x4 data:4byte +boardTurnStartFunc = .sbss:0x801F12BC; // type:object size:0x4 data:4byte +filterObj = .sbss:0x801F12C0; // type:object size:0x4 scope:local data:4byte +confettiObj = .sbss:0x801F12C4; // type:object size:0x4 scope:local data:4byte +last5GfxObj = .sbss:0x801F12C8; // type:object size:0x4 scope:local data:4byte +boardRandSeed = .sbss:0x801F12CC; // type:object size:0x4 data:4byte +boardMainObj = .sbss:0x801F12D0; // type:object size:0x8 data:4byte +megaDoubleDiceF = .sbss:0x801F12D8; // type:object size:0x4 scope:local data:4byte +bowserSuitObj = .sbss:0x801F12DC; // type:object size:0x4 scope:local data:4byte +junctionMask = .sbss:0x801F12E0; // type:object size:0x4 scope:local data:4byte +junctionObj = .sbss:0x801F12E4; // type:object size:0x4 scope:local data:4byte +rollObj = .sbss:0x801F12E8; // type:object size:0x4 scope:local data:4byte +moveAwayObj = .sbss:0x801F12EC; // type:object size:0x4 scope:local data:4byte +junctionArrowRot = .sbss:0x801F12F0; // type:object size:0x8 scope:local +moveAwayPlayer = .sbss:0x801F12F8; // type:object size:0x4 scope:local data:byte +itemPrev = .sbss:0x801F12FC; // type:object size:0x1 scope:local data:byte +playerMot = .sbss:0x801F12FE; // type:object size:0x8 scope:local +boardPlayerMdl = .sbss:0x801F1306; // type:object size:0x8 +modelDataList = .sbss:0x801F1310; // type:object size:0x4 scope:local data:4byte +modelMgrObj = .sbss:0x801F1314; // type:object size:0x4 scope:local data:4byte +modelDataNum = .sbss:0x801F1318; // type:object size:0x2 scope:local data:2byte +winProc = .sbss:0x801F1320; // type:object size:0x4 scope:local data:4byte +comKeyFunc = .sbss:0x801F1324; // type:object size:0x4 scope:local data:4byte +lbl_801D3F70 = .sbss:0x801F1328; // type:object size:0x8 scope:local data:float +winAttr = .sbss:0x801F1330; // type:object size:0x4 scope:local data:4byte +winMess = .sbss:0x801F1334; // type:object size:0x4 scope:local data:4byte +defaultChoice = .sbss:0x801F1338; // type:object size:0x2 scope:local data:2byte +messSpeed = .sbss:0x801F133A; // type:object size:0x2 scope:local data:2byte +winPrio = .sbss:0x801F133C; // type:object size:0x2 scope:local data:2byte +winWait = .sbss:0x801F133E; // type:object size:0x1 scope:local data:byte +winPause = .sbss:0x801F133F; // type:object size:0x1 scope:local data:byte +disablePlayer = .sbss:0x801F1340; // type:object size:0x1 scope:local data:byte +winPosIdx = .sbss:0x801F1341; // type:object size:0x1 scope:local data:byte +winPortrait = .sbss:0x801F1342; // type:object size:0x1 scope:local data:byte +autoPickF = .sbss:0x801F1343; // type:object size:0x1 scope:local data:byte +winChoice = .sbss:0x801F1344; // type:object size:0x1 scope:local data:byte +boardSeq = .sbss:0x801F1348; // type:object size:0x8 scope:local +viewProc = .sbss:0x801F1350; // type:object size:0x4 scope:local data:4byte +pauseDisableF = .sbss:0x801F1354; // type:object size:0x1 scope:local data:byte +overheadObj = .sbss:0x801F1358; // type:object size:0x4 scope:local data:4byte +focusTimer = .sbss:0x801F135C; // type:object size:0x2 scope:local data:2byte +focusDestroyF = .sbss:0x801F135E; // type:object size:0x1 scope:local data:byte +viewMoveF = .sbss:0x801F135F; // type:object size:0x1 scope:local data:byte +viewPlayer = .sbss:0x801F1360; // type:object size:0x1 scope:local data:byte +viewControls = .sbss:0x801F1361; // type:object size:0x1 scope:local data:byte +spaceDrawF = .sbss:0x801F1368; // type:object size:0x2 scope:local data:2byte +spaceDrawCnt = .sbss:0x801F136C; // type:object size:0x4 scope:local data:4byte +walkEventFunc = .sbss:0x801F1370; // type:object size:0x4 scope:local data:4byte +walkMiniEventFunc = .sbss:0x801F1374; // type:object size:0x4 scope:local data:4byte +landEventFunc = .sbss:0x801F1378; // type:object size:0x4 scope:local data:4byte +lbl_801D3FC4 = .sbss:0x801F137C; // type:object size:0x8 data:2byte +spaceHiliteTexFmt = .sbss:0x801F1384; // type:object size:0x4 scope:local data:4byte +spaceTexFmt = .sbss:0x801F1388; // type:object size:0x4 scope:local data:4byte +spaceHiliteTexData = .sbss:0x801F138C; // type:object size:0x4 scope:local data:4byte +spaceTexData = .sbss:0x801F1390; // type:object size:0x4 scope:local data:4byte +spaceAttr = .sbss:0x801F1394; // type:object size:0x8 scope:local data:4byte +spaceCnt = .sbss:0x801F139C; // type:object size:0x4 scope:local data:2byte +shopProc = .sbss:0x801F13A0; // type:object size:0x4 scope:local data:4byte +shopWinObj = .sbss:0x801F13A4; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801F13A8; // type:object size:0x4 scope:local data:4byte +itemChoiceObj = .sbss:0x801F13AC; // type:object size:0x4 scope:local data:4byte +comF = .sbss:0x801F13B0; // type:object size:0x4 scope:local data:4byte +angleVal = .sbss:0x801F13B4; // type:object size:0x2 scope:local data:2byte +shopPlayer = .sbss:0x801F13B6; // type:object size:0x1 scope:local data:byte +shopMdlPtr = .sbss:0x801F13B8; // type:object size:0x4 scope:local data:4byte +shopMdlIdx = .sbss:0x801F13BC; // type:object size:0x4 scope:local +lotteryProc = .sbss:0x801F13C0; // type:object size:0x4 scope:local data:4byte +comInputDrawP = .sbss:0x801F13C4; // type:object size:0x4 scope:local data:4byte +lotteryTicketPickObj = .sbss:0x801F13C8; // type:object size:0x4 scope:local data:4byte +handUpdateF = .sbss:0x801F13CC; // type:object size:0x4 scope:local data:4byte +comInputPos = .sbss:0x801F13D0; // type:object size:0x1 scope:local data:byte +comLotteryWinType = .sbss:0x801F13D1; // type:object size:0x1 scope:local data:byte +comLotteryType = .sbss:0x801F13D2; // type:object size:0x1 scope:local data:byte +lbl_801D401B = .sbss:0x801F13D3; // type:object size:0x1 scope:local data:byte +currPrize = .sbss:0x801F13D4; // type:object size:0x1 scope:local data:byte +lotterySpace = .sbss:0x801F13D6; // type:object size:0x2 scope:local data:2byte +lotteryMessBase = .sbss:0x801F13D8; // type:object size:0x4 scope:local data:4byte +warpProcess = .sbss:0x801F13E0; // type:object size:0x4 scope:local data:4byte +warpYVel = .sbss:0x801F13E4; // type:object size:0x4 scope:local data:float +warpYFloor = .sbss:0x801F13E8; // type:object size:0x4 scope:local data:float +warpSpace = .sbss:0x801F13EC; // type:object size:0x2 scope:local data:2byte +warpImpactCnt = .sbss:0x801F13EE; // type:object size:0x1 scope:local data:byte +warpTarget = .sbss:0x801F13EF; // type:object size:0x1 scope:local data:byte +warpState = .sbss:0x801F13F0; // type:object size:0x1 scope:local data:byte +charWheelObj = .sbss:0x801F13F8; // type:object size:0x4 scope:local data:4byte +targetF = .sbss:0x801F13FC; // type:object size:0x2 scope:local data:2byte +angleOfs = .sbss:0x801F1400; // type:object size:0x4 scope:local data:float +targetVal = .sbss:0x801F1404; // type:object size:0x2 scope:local data:2byte +wheelSpeed = .sbss:0x801F1408; // type:object size:0x4 scope:local data:float +wheelTimer = .sbss:0x801F140C; // type:object size:0x2 scope:local data:2byte +comDelay = .sbss:0x801F140E; // type:object size:0x2 scope:local data:2byte +wheelChars = .sbss:0x801F1410; // type:object size:0x4 scope:local data:byte +mushroomProc = .sbss:0x801F1418; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801F141C; // type:object size:0x4 scope:local data:4byte +pickerChoice = .sbss:0x801F1420; // type:object size:0x1 scope:local data:byte +itemResult = .sbss:0x801F1421; // type:object size:0x1 scope:local data:byte +starProc = .sbss:0x801F1428; // type:object size:0x4 scope:local data:4byte +giveStarObj = .sbss:0x801F142C; // type:object size:0x4 scope:local data:4byte +starEffAnim = .sbss:0x801F1430; // type:object size:0x4 scope:local data:4byte +starDoneF = .sbss:0x801F1434; // type:object size:0x2 scope:local data:2byte +showNextObj = .sbss:0x801F1438; // type:object size:0x4 scope:local data:4byte +hostMot = .sbss:0x801F143C; // type:object size:0x4 scope:local data:2byte +rollProc = .sbss:0x801F1440; // type:object size:0x4 scope:local data:4byte +tutorialRollF = .sbss:0x801F1444; // type:object size:0x1 scope:local data:byte +sameRollCoinStr = .sbss:0x801F1445; // type:object size:0x8 scope:local +lbl_801D4098 = .sbss:0x801F1450; // type:object size:0x4 data:4byte +diceSize = .sbss:0x801F1454; // type:object size:0x1 scope:local data:byte +destMode = .sbss:0x801F1455; // type:object size:0x1 scope:local data:byte +maxRoll = .sbss:0x801F1456; // type:object size:0x1 scope:local data:byte +inputTimer = .sbss:0x801F1457; // type:object size:0x1 scope:local data:byte +numDice = .sbss:0x801F1458; // type:object size:0x1 scope:local data:byte +rollPlayer = .sbss:0x801F1459; // type:object size:0x1 scope:local data:byte +diceValue = .sbss:0x801F145A; // type:object size:0x3 scope:local data:byte +statusProc = .sbss:0x801F1460; // type:object size:0x4 scope:local data:4byte +itemWindowObj = .sbss:0x801F1464; // type:object size:0x4 scope:local data:4byte +pickerObj = .sbss:0x801F1468; // type:object size:0x4 scope:local data:4byte +yourTurnObj = .sbss:0x801F146C; // type:object size:0x4 scope:local data:4byte +itemUseProc = .sbss:0x801F1470; // type:object size:0x4 scope:local data:4byte +itemPickObj = .sbss:0x801F1474; // type:object size:0x4 scope:local data:4byte +itemPickupPos = .sbss:0x801F1478; // type:object size:0x4 scope:local data:float +itemRandTbl = .sbss:0x801F147C; // type:object size:0x6 scope:local +teamItemPlayer = .sbss:0x801F1482; // type:object size:0x1 scope:local data:byte +itemUsed = .sbss:0x801F1483; // type:object size:0x1 scope:local data:byte +itemPlayer = .sbss:0x801F1484; // type:object size:0x1 scope:local data:byte +yourTurnSpr = .sbss:0x801F1486; // type:object size:0x2 scope:local data:2byte +lbl_801D40D0 = .sbss:0x801F1488; // type:object size:0x4 data:2byte +pickerBackF = .sbss:0x801F148C; // type:object size:0x4 scope:local data:4byte +pickerChoiceDefault = .sbss:0x801F1490; // type:object size:0x1 scope:local data:byte +pickerChoice = .sbss:0x801F1491; // type:object size:0x1 scope:local data:byte +boardItemUser = .sbss:0x801F1492; // type:object size:0x1 data:byte +itemTeamF = .sbss:0x801F1493; // type:object size:0x1 scope:local data:byte +itemTeam = .sbss:0x801F1494; // type:object size:0x1 scope:local data:byte +blockProc = .sbss:0x801F1498; // type:object size:0x4 scope:local data:4byte +blockObj = .sbss:0x801F149C; // type:object size:0x4 scope:local data:4byte +rotY = .sbss:0x801F14A0; // type:object size:0x4 scope:local data:float +scaleAngle = .sbss:0x801F14A4; // type:object size:0x4 scope:local data:float +rotMax = .sbss:0x801F14A8; // type:object size:0x4 scope:local data:float +itemProc = .sbss:0x801F14B0; // type:object size:0x4 scope:local data:4byte +geniePlayerMot = .sbss:0x801F14B4; // type:object size:0x6 scope:local data:2byte +genieParticleAnim = .sbss:0x801F14BC; // type:object size:0x4 scope:local data:4byte +genieFov = .sbss:0x801F14C0; // type:object size:0x4 scope:local data:float +booCoinStr = .sbss:0x801F14C4; // type:object size:0x8 scope:local +booBallAlpha = .sbss:0x801F14CC; // type:object size:0x4 scope:local data:float +booBallMdl = .sbss:0x801F14D0; // type:object size:0x2 scope:local data:2byte +suitCommonMot = .sbss:0x801F14D4; // type:object size:0x8 scope:local data:4byte +suitMot = .sbss:0x801F14DC; // type:object size:0x8 scope:local data:4byte +suitMdl = .sbss:0x801F14E4; // type:object size:0x2 scope:local data:2byte +currItem = .sbss:0x801F14E6; // type:object size:0x1 scope:local data:byte +currItemRestore = .sbss:0x801F14E7; // type:object size:0x1 scope:local data:byte +itemBagItems = .sbss:0x801F14E8; // type:object size:0x6 scope:local +bowserProc = .sbss:0x801F14F0; // type:object size:0x4 scope:local data:4byte +bowserObj = .sbss:0x801F14F4; // type:object size:0x4 scope:local data:4byte +miniBowserObj = .sbss:0x801F14F8; // type:object size:0x4 scope:local data:4byte +bowserEventObj = .sbss:0x801F14FC; // type:object size:0x4 scope:local data:4byte +miniBowserBalloonObj = .sbss:0x801F1500; // type:object size:0x4 scope:local data:4byte +suitGiveObj = .sbss:0x801F1504; // type:object size:0x4 scope:local data:4byte +coinStealStr = .sbss:0x801F1508; // type:object size:0x8 scope:local +coinStealStrAll = .sbss:0x801F1510; // type:object size:0x8 scope:local +fireAnim = .sbss:0x801F1518; // type:object size:0x4 scope:local data:4byte +fireParMan = .sbss:0x801F151C; // type:object size:0x2 scope:local data:2byte +playerMot = .sbss:0x801F151E; // type:object size:0x8 scope:local data:2byte +eventSpace = .sbss:0x801F1526; // type:object size:0x2 scope:local data:2byte +eventType = .sbss:0x801F1528; // type:object size:0x1 scope:local data:byte +eventPlayer = .sbss:0x801F1529; // type:object size:0x1 scope:local data:byte +battleProc = .sbss:0x801F1530; // type:object size:0x4 scope:local data:4byte +battleObj = .sbss:0x801F1534; // type:object size:0x4 scope:local data:4byte +explodeObj = .sbss:0x801F1538; // type:object size:0x4 scope:local data:4byte +battleCoinPosF = .sbss:0x801F153C; // type:object size:0x4 scope:local data:float +battleCoinSpeed = .sbss:0x801F1540; // type:object size:0x4 scope:local data:float +totalCoinStr = .sbss:0x801F1544; // type:object size:0x8 scope:local +battleMGIdx = .sbss:0x801F154C; // type:object size:0x2 scope:local data:byte +battleCoinIdx = .sbss:0x801F154E; // type:object size:0x1 scope:local data:byte +currSpace = .sbss:0x801F1550; // type:object size:0x2 scope:local data:2byte +mgChoice = .sbss:0x801F1552; // type:object size:0x1 scope:local data:byte +coinTakeMax = .sbss:0x801F1553; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F1554; // type:object size:0x1 scope:local data:byte +fortuneProc = .sbss:0x801F1558; // type:object size:0x4 scope:local data:4byte +fortunePlatformObj = .sbss:0x801F155C; // type:object size:0x4 scope:local data:4byte +comStar = .sbss:0x801F1560; // type:object size:0x1 scope:local data:byte +comCoin = .sbss:0x801F1561; // type:object size:0x1 scope:local data:byte +comPrize = .sbss:0x801F1562; // type:object size:0x1 scope:local data:byte +comPlayer1 = .sbss:0x801F1563; // type:object size:0x1 scope:local data:byte +comPlayer2 = .sbss:0x801F1564; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F1565; // type:object size:0x1 scope:local data:byte +booEventObj = .sbss:0x801F1568; // type:object size:0x4 scope:local data:4byte +ballObj = .sbss:0x801F156C; // type:object size:0x4 scope:local data:4byte +ballCameraObj = .sbss:0x801F1570; // type:object size:0x4 scope:local data:4byte +ballBooObj = .sbss:0x801F1574; // type:object size:0x4 scope:local data:4byte +ballPlayerObj = .sbss:0x801F1578; // type:object size:0x4 scope:local data:4byte +ballTakeCoinObj = .sbss:0x801F157C; // type:object size:0x4 scope:local data:4byte +attackTimer = .sbss:0x801F1580; // type:object size:0x4 scope:local data:4byte +battleTimer = .sbss:0x801F1584; // type:object size:0x4 scope:local data:4byte +starChoiceEnable = .sbss:0x801F1588; // type:object size:0x3 scope:local +stealAvail = .sbss:0x801F158B; // type:object size:0x3 scope:local +punchCount = .sbss:0x801F158E; // type:object size:0x1 scope:local data:byte +stealSuccess = .sbss:0x801F158F; // type:object size:0x1 scope:local data:byte +stealValue = .sbss:0x801F1590; // type:object size:0x1 scope:local data:byte +booKillF = .sbss:0x801F1594; // type:object size:0x4 scope:local data:4byte +stealType = .sbss:0x801F1598; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801F1599; // type:object size:0x1 scope:local data:byte +lbl_801D41E2 = .sbss:0x801F159A; // type:object size:0x1 data:byte +mgSetupProc = .sbss:0x801F15A0; // type:object size:0x4 scope:local data:4byte +mgSetupObj = .sbss:0x801F15A4; // type:object size:0x4 scope:local data:4byte +hiliteShowF = .sbss:0x801F15A8; // type:object size:0x1 scope:local data:byte +hiliteBlinkLen = .sbss:0x801F15A9; // type:object size:0x1 scope:local data:byte +hiliteTimer = .sbss:0x801F15AA; // type:object size:0x1 scope:local data:byte +mgPlayBattle = .sbss:0x801F15AC; // type:object size:0x4 scope:local +mgPlay2Vs2 = .sbss:0x801F15B0; // type:object size:0x6 scope:local +mgPlay1Vs3 = .sbss:0x801F15B6; // type:object size:0x6 scope:local +mgPlayBattleLen = .sbss:0x801F15BC; // type:object size:0x1 scope:local data:byte +mgPlay2Vs2Len = .sbss:0x801F15BD; // type:object size:0x1 scope:local data:byte +mgPlay1Vs3Len = .sbss:0x801F15BE; // type:object size:0x1 scope:local data:byte +mgPlay4PLen = .sbss:0x801F15BF; // type:object size:0x1 scope:local data:byte +mgNext = .sbss:0x801F15C0; // type:object size:0x2 scope:local data:2byte +hilitePos = .sbss:0x801F15C4; // type:object size:0x4 scope:local data:float +luckyF = .sbss:0x801F15C8; // type:object size:0x4 scope:local data:4byte +mgType = .sbss:0x801F15CC; // type:object size:0x1 scope:local data:byte +houseProc = .sbss:0x801F15D0; // type:object size:0x4 scope:local data:4byte +stealAmountStr = .sbss:0x801F15D4; // type:object size:0x8 scope:local +comCoinStealTarget = .sbss:0x801F15DC; // type:object size:0x4 scope:local data:4byte +comStarStealTarget = .sbss:0x801F15E0; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801F15E1; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F15E2; // type:object size:0x1 scope:local data:byte +startProc = .sbss:0x801F15E8; // type:object size:0x4 scope:local data:4byte +playerOrderOld = .sbss:0x801F15EC; // type:object size:0x4 scope:local +playerOrderNew = .sbss:0x801F15F0; // type:object size:0x4 scope:local +startSpace = .sbss:0x801F15F4; // type:object size:0x2 scope:local data:2byte +hostMdl = .sbss:0x801F15F6; // type:object size:0x2 scope:local data:2byte +lotteryDrawWheelObj = .sbss:0x801F15F8; // type:object size:0x4 scope:local data:4byte +lotteryDrawObj = .sbss:0x801F15FC; // type:object size:0x4 scope:local data:4byte +hostMoveObj = .sbss:0x801F1600; // type:object size:0x4 scope:local data:4byte +teamResultObj = .sbss:0x801F1604; // type:object size:0x4 scope:local data:4byte +last5Proc = .sbss:0x801F1608; // type:object size:0x4 scope:local data:4byte +last5RouletteObj = .sbss:0x801F160C; // type:object size:0x4 scope:local data:4byte +hostMdl = .sbss:0x801F1610; // type:object size:0x2 scope:local data:2byte +last5Space = .sbss:0x801F1612; // type:object size:0x2 scope:local data:2byte +last5Player = .sbss:0x801F1614; // type:object size:0x1 scope:local data:byte +numTickets = .sbss:0x801F1615; // type:object size:0x1 scope:local data:byte +currTicket = .sbss:0x801F1616; // type:object size:0x1 scope:local data:byte +mainProcess = .sbss:0x801F1618; // type:object size:0x4 scope:local data:4byte +quitProcess = .sbss:0x801F161C; // type:object size:0x4 scope:local data:4byte +configObj = .sbss:0x801F1620; // type:object size:0x4 scope:local data:4byte +boxState = .sbss:0x801F1624; // type:object size:0x8 scope:local +cursorPos = .sbss:0x801F162C; // type:object size:0x1 scope:local data:byte +hostMdl = .sbss:0x801F162E; // type:object size:0x2 scope:local data:2byte +hostOldLayer = .sbss:0x801F1630; // type:object size:0x1 scope:local data:byte +mainScreenF = .sbss:0x801F1631; // type:object size:0x1 scope:local data:byte +pauseQuitF = .sbss:0x801F1632; // type:object size:0x1 scope:local data:byte +childNodeCnt = .sbss:0x801F1638; // type:object size:0x2 scope:local data:2byte +numCandidates = .sbss:0x801F163A; // type:object size:0x2 scope:local data:2byte +gameStatCopy = .sbss:0x801F1640; // type:object size:0x4 scope:local data:4byte +systemCopy = .sbss:0x801F1644; // type:object size:0x4 scope:local data:4byte +playerCopy = .sbss:0x801F1648; // type:object size:0x4 scope:local data:4byte +playerCfgCopy = .sbss:0x801F164C; // type:object size:0x4 scope:local data:4byte +tutorialProcess = .sbss:0x801F1650; // type:object size:0x4 scope:local data:4byte +boardTutorialF = .sbss:0x801F1654; // type:object size:0x1 data:byte +hostMdl = .sbss:0x801F1656; // type:object size:0x2 scope:local data:2byte +boardTutorialUseItem = .sbss:0x801F1658; // type:object size:0x1 data:byte +boardTutorialBlockF = .sbss:0x801F1659; // type:object size:0x1 data:byte +boardTutorialBlockItem = .sbss:0x801F165A; // type:object size:0x1 data:byte +boardTutorialBlockPos = .sbss:0x801F165C; // type:object size:0x4 data:4byte +boardTutorialDirInputTime = .sbss:0x801F1660; // type:object size:0x2 data:2byte +boardTutorialDirInputY = .sbss:0x801F1662; // type:object size:0x1 data:byte +boardTutorialDirInputX = .sbss:0x801F1663; // type:object size:0x1 data:byte +tutorialHook = .sbss:0x801F1664; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801F1668; // type:object size:0x4 scope:local data:4byte +BI2DebugFlag = .sbss:0x801F166C; // type:object size:0x4 scope:local data:4byte +BI2DebugFlagHolder = .sbss:0x801F1670; // type:object size:0x4 scope:local data:4byte +__OSIsGcam = .sbss:0x801F1674; // type:object size:0x4 scope:global data:4byte +AreWeInitialized = .sbss:0x801F1678; // type:object size:0x4 scope:local data:4byte +OSExceptionTable = .sbss:0x801F167C; // type:object size:0x4 scope:local data:4byte +__OSSavedRegionEnd = .sbss:0x801F1680; // type:object size:0x4 scope:global data:4byte +__OSSavedRegionStart = .sbss:0x801F1684; // type:object size:0x4 scope:global data:4byte +__OSInIPL = .sbss:0x801F1688; // type:object size:0x4 scope:global data:4byte +__OSStartTime = .sbss:0x801F1690; // type:object size:0x8 scope:global data:4byte +AlarmQueue = .sbss:0x801F1698; // type:object size:0x8 scope:local data:4byte +lbl_801F16A0 = .sbss:0x801F16A0; // type:object size:0x4 data:4byte +lbl_801F16A4 = .sbss:0x801F16A4; // type:object size:0x4 data:4byte +lbl_801F16A8 = .sbss:0x801F16A8; // type:object size:0x4 data:4byte +lbl_801F16AC = .sbss:0x801F16AC; // type:object size:0x4 data:4byte +__OSArenaHi = .sbss:0x801F16B0; // type:object size:0x4 scope:local data:4byte +InterruptHandlerTable = .sbss:0x801F16B8; // type:object size:0x4 scope:local data:4byte +__OSLastInterruptSrr0 = .sbss:0x801F16BC; // type:object size:0x4 scope:global data:4byte +__OSLastInterrupt = .sbss:0x801F16C0; // type:object size:0x2 scope:global data:2byte +__OSLastInterruptTime = .sbss:0x801F16C8; // type:object size:0x8 scope:global data:4byte +lbl_801F16D0 = .sbss:0x801F16D0; // type:object size:0x4 data:4byte +lbl_801F16D4 = .sbss:0x801F16D4; // type:object size:0x4 data:4byte +lbl_801F16D8 = .sbss:0x801F16D8; // type:object size:0x8 data:4byte +ResetFunctionQueue = .sbss:0x801F16E0; // type:object size:0x8 scope:local data:4byte +lbl_801F16E8 = .sbss:0x801F16E8; // type:object size:0x4 data:4byte +lbl_801F16EC = .sbss:0x801F16EC; // type:object size:0x4 data:4byte +lbl_801F16F0 = .sbss:0x801F16F0; // type:object size:0x8 data:4byte +lbl_801F16F8 = .sbss:0x801F16F8; // type:object size:0x4 data:4byte +lbl_801F16FC = .sbss:0x801F16FC; // type:object size:0x4 data:4byte +lbl_801F1700 = .sbss:0x801F1700; // type:object size:0x4 data:4byte +lbl_801F1704 = .sbss:0x801F1704; // type:object size:0x4 data:4byte +RunQueueBits = .sbss:0x801F1708; // type:object size:0x4 scope:local data:4byte +RunQueueHint = .sbss:0x801F170C; // type:object size:0x4 scope:local data:4byte +Reschedule = .sbss:0x801F1710; // type:object size:0x4 scope:local data:4byte +__DBInterface = .sbss:0x801F1718; // type:object size:0x4 scope:global data:4byte +DBVerbose = .sbss:0x801F171C; // type:object size:0x4 scope:global data:4byte +StopAtNextInt = .sbss:0x801F1720; // type:object size:0x4 scope:local data:4byte +lbl_801F1724 = .sbss:0x801F1724; // type:object size:0x4 data:4byte +Callback = .sbss:0x801F1728; // type:object size:0x4 scope:local data:4byte +lbl_801F172C = .sbss:0x801F172C; // type:object size:0x4 data:4byte +LastResetEnd = .sbss:0x801F1730; // type:object size:0x8 scope:local data:4byte +ResetOccurred = .sbss:0x801F1738; // type:object size:0x4 scope:local data:4byte +WaitingCoverClose = .sbss:0x801F173C; // type:object size:0x4 scope:local data:4byte +lbl_801F1740 = .sbss:0x801F1740; // type:object size:0x4 data:4byte +WorkAroundType = .sbss:0x801F1744; // type:object size:0x4 scope:local data:4byte +WorkAroundSeekLocation = .sbss:0x801F1748; // type:object size:0x4 scope:local data:4byte +lbl_801F1750 = .sbss:0x801F1750; // type:object size:0x4 data:4byte +lbl_801F1754 = .sbss:0x801F1754; // type:object size:0x4 data:4byte +lbl_801F1758 = .sbss:0x801F1758; // type:object size:0x4 data:4byte +lbl_801F175C = .sbss:0x801F175C; // type:object size:0x4 data:4byte +lbl_801F1760 = .sbss:0x801F1760; // type:object size:0x4 data:4byte +NextCommandNumber = .sbss:0x801F1764; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801F1768; // type:object size:0x4 scope:local data:4byte +FstStart = .sbss:0x801F176C; // type:object size:0x4 scope:local data:4byte +FstStringStart = .sbss:0x801F1770; // type:object size:0x4 scope:local data:4byte +MaxEntryNum = .sbss:0x801F1774; // type:object size:0x4 scope:local data:4byte +lbl_801F1778 = .sbss:0x801F1778; // type:object size:0x4 data:4byte +__DVDLongFileNameFlag = .sbss:0x801F177C; // type:object size:0x4 scope:global data:4byte +__DVDThreadQueue = .sbss:0x801F1780; // type:object size:0x8 scope:global +executing = .sbss:0x801F1788; // type:object size:0x4 scope:local data:4byte +currID = .sbss:0x801F178C; // type:object size:0x4 scope:local data:4byte +bootInfo = .sbss:0x801F1790; // type:object size:0x4 scope:local data:4byte +PauseFlag = .sbss:0x801F1794; // type:object size:0x4 scope:local data:4byte +PausingFlag = .sbss:0x801F1798; // type:object size:0x4 scope:local data:4byte +lbl_801F179C = .sbss:0x801F179C; // type:object size:0x4 data:4byte +FatalErrorFlag = .sbss:0x801F17A0; // type:object size:0x4 scope:local data:4byte +CurrCommand = .sbss:0x801F17A4; // type:object size:0x4 scope:local data:4byte +lbl_801F17A8 = .sbss:0x801F17A8; // type:object size:0x4 data:4byte +lbl_801F17AC = .sbss:0x801F17AC; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x801F17B0; // type:object size:0x4 scope:local data:4byte +CancelLastError = .sbss:0x801F17B4; // type:object size:0x4 scope:local data:4byte +lbl_801F17B8 = .sbss:0x801F17B8; // type:object size:0x4 data:4byte +lbl_801F17BC = .sbss:0x801F17BC; // type:object size:0x4 data:4byte +ResetRequired = .sbss:0x801F17C0; // type:object size:0x4 scope:local data:4byte +FirstTimeInBootrom = .sbss:0x801F17C4; // type:object size:0x4 scope:local data:4byte +DVDInitialized = .sbss:0x801F17C8; // type:object size:0x4 scope:local data:4byte +lbl_801F17CC = .sbss:0x801F17CC; // type:object size:0x4 data:4byte +lbl_801F17D0 = .sbss:0x801F17D0; // type:object size:0x4 data:4byte +bb2 = .sbss:0x801F17D4; // type:object size:0x4 scope:local data:4byte +idTmp = .sbss:0x801F17D8; // type:object size:0x4 scope:local data:4byte +lbl_801F17E0 = .sbss:0x801F17E0; // type:object size:0x4 data:4byte +lbl_801F17E4 = .sbss:0x801F17E4; // type:object size:0x4 data:4byte +lbl_801F17E8 = .sbss:0x801F17E8; // type:object size:0x8 +lbl_801F17F0 = .sbss:0x801F17F0; // type:object size:0x4 data:4byte +lbl_801F17F4 = .sbss:0x801F17F4; // type:object size:0x4 data:4byte +lbl_801F17F8 = .sbss:0x801F17F8; // type:object size:0x4 data:4byte +lbl_801F17FC = .sbss:0x801F17FC; // type:object size:0x2 data:2byte +lbl_801F17FE = .sbss:0x801F17FE; // type:object size:0x2 data:2byte +lbl_801F1800 = .sbss:0x801F1800; // type:object size:0x8 data:4byte +lbl_801F1808 = .sbss:0x801F1808; // type:object size:0x4 data:4byte +lbl_801F180C = .sbss:0x801F180C; // type:object size:0x4 data:4byte +lbl_801F1810 = .sbss:0x801F1810; // type:object size:0x8 data:4byte +lbl_801F1818 = .sbss:0x801F1818; // type:object size:0x4 data:4byte +lbl_801F181C = .sbss:0x801F181C; // type:object size:0x4 data:4byte +lbl_801F1820 = .sbss:0x801F1820; // type:object size:0x4 data:4byte +CurrTvMode = .sbss:0x801F1824; // type:object size:0x4 scope:local data:4byte +lbl_801F1828 = .sbss:0x801F1828; // type:object size:0x4 data:4byte +lbl_801F182C = .sbss:0x801F182C; // type:object size:0x4 data:4byte +lbl_801F1830 = .sbss:0x801F1830; // type:object size:0x8 data:4byte +lbl_801F1838 = .sbss:0x801F1838; // type:object size:0x8 data:4byte +lbl_801F1840 = .sbss:0x801F1840; // type:object size:0x4 data:4byte +lbl_801F1844 = .sbss:0x801F1844; // type:object size:0x4 data:4byte +lbl_801F1848 = .sbss:0x801F1848; // type:object size:0x4 data:4byte +lbl_801F184C = .sbss:0x801F184C; // type:object size:0x4 data:4byte +lbl_801F1850 = .sbss:0x801F1850; // type:object size:0x4 data:4byte +lbl_801F1854 = .sbss:0x801F1854; // type:object size:0x4 data:4byte +lbl_801F1858 = .sbss:0x801F1858; // type:object size:0x4 data:4byte +lbl_801F185C = .sbss:0x801F185C; // type:object size:0x4 data:4byte +lbl_801F1860 = .sbss:0x801F1860; // type:object size:0x4 data:4byte +lbl_801F1864 = .sbss:0x801F1864; // type:object size:0x4 data:4byte +lbl_801F1868 = .sbss:0x801F1868; // type:object size:0x4 data:4byte +lbl_801F186C = .sbss:0x801F186C; // type:object size:0x4 data:4byte +lbl_801F1870 = .sbss:0x801F1870; // type:object size:0x4 data:4byte +lbl_801F1874 = .sbss:0x801F1874; // type:object size:0x4 data:4byte +lbl_801F1878 = .sbss:0x801F1878; // type:object size:0x4 data:4byte +lbl_801F187C = .sbss:0x801F187C; // type:object size:0x4 data:4byte +lbl_801F1880 = .sbss:0x801F1880; // type:object size:0x4 data:4byte +lbl_801F1884 = .sbss:0x801F1884; // type:object size:0x4 data:4byte +lbl_801F1888 = .sbss:0x801F1888; // type:object size:0x4 data:4byte +lbl_801F188C = .sbss:0x801F188C; // type:object size:0x4 data:4byte +lbl_801F1890 = .sbss:0x801F1890; // type:object size:0x4 data:4byte +lbl_801F1894 = .sbss:0x801F1894; // type:object size:0x4 data:4byte +lbl_801F1898 = .sbss:0x801F1898; // type:object size:0x4 data:4byte +lbl_801F189C = .sbss:0x801F189C; // type:object size:0x4 data:4byte +lbl_801F18A0 = .sbss:0x801F18A0; // type:object size:0x4 data:4byte +lbl_801F18A4 = .sbss:0x801F18A4; // type:object size:0x4 data:4byte +lbl_801F18A8 = .sbss:0x801F18A8; // type:object size:0x4 data:4byte +lbl_801F18AC = .sbss:0x801F18AC; // type:object size:0x4 data:4byte +lbl_801F18B0 = .sbss:0x801F18B0; // type:object size:0x4 data:4byte +lbl_801F18B4 = .sbss:0x801F18B4; // type:object size:0x4 data:4byte +lbl_801F18B8 = .sbss:0x801F18B8; // type:object size:0x4 data:4byte +lbl_801F18BC = .sbss:0x801F18BC; // type:object size:0x4 data:4byte +lbl_801F18C0 = .sbss:0x801F18C0; // type:object size:0x4 data:4byte +__PADSpec = .sbss:0x801F18C4; // type:object size:0x4 scope:global data:4byte +lbl_801F18C8 = .sbss:0x801F18C8; // type:object size:0x4 data:4byte +lbl_801F18CC = .sbss:0x801F18CC; // type:object size:0x4 data:4byte +lbl_801F18D0 = .sbss:0x801F18D0; // type:object size:0x4 data:4byte +lbl_801F18D4 = .sbss:0x801F18D4; // type:object size:0x4 data:4byte +lbl_801F18D8 = .sbss:0x801F18D8; // type:object size:0x8 data:4byte +lbl_801F18E0 = .sbss:0x801F18E0; // type:object size:0x4 data:4byte +lbl_801F18E4 = .sbss:0x801F18E4; // type:object size:0x4 data:4byte +lbl_801F18E8 = .sbss:0x801F18E8; // type:object size:0x4 data:4byte +lbl_801F18EC = .sbss:0x801F18EC; // type:object size:0x4 data:4byte +lbl_801F18F0 = .sbss:0x801F18F0; // type:object size:0x4 data:4byte +lbl_801F18F4 = .sbss:0x801F18F4; // type:object size:0x4 data:4byte +lbl_801F18F8 = .sbss:0x801F18F8; // type:object size:0x4 data:4byte +lbl_801F18FC = .sbss:0x801F18FC; // type:object size:0x4 data:4byte +lbl_801F1900 = .sbss:0x801F1900; // type:object size:0x4 data:4byte +lbl_801F1904 = .sbss:0x801F1904; // type:object size:0x4 data:4byte +lbl_801F1908 = .sbss:0x801F1908; // type:object size:0x4 data:4byte +lbl_801F190C = .sbss:0x801F190C; // type:object size:0x4 data:4byte +lbl_801F1910 = .sbss:0x801F1910; // type:object size:0x4 data:4byte +lbl_801F1914 = .sbss:0x801F1914; // type:object size:0x4 data:4byte +lbl_801F1918 = .sbss:0x801F1918; // type:object size:0x4 data:4byte +lbl_801F191C = .sbss:0x801F191C; // type:object size:0x4 data:4byte +lbl_801F1920 = .sbss:0x801F1920; // type:object size:0x4 data:4byte +lbl_801F1924 = .sbss:0x801F1924; // type:object size:0x4 data:4byte +lbl_801F1928 = .sbss:0x801F1928; // type:object size:0x4 data:4byte +lbl_801F192C = .sbss:0x801F192C; // type:object size:0x4 data:4byte +lbl_801F1930 = .sbss:0x801F1930; // type:object size:0x4 data:4byte +lbl_801F1934 = .sbss:0x801F1934; // type:object size:0x4 data:4byte +lbl_801F1938 = .sbss:0x801F1938; // type:object size:0x4 data:4byte +lbl_801F193C = .sbss:0x801F193C; // type:object size:0x4 data:4byte +lbl_801F1940 = .sbss:0x801F1940; // type:object size:0x4 data:4byte +lbl_801F1944 = .sbss:0x801F1944; // type:object size:0x4 data:4byte +lbl_801F1948 = .sbss:0x801F1948; // type:object size:0x4 data:4byte +lbl_801F194C = .sbss:0x801F194C; // type:object size:0x4 data:4byte +lbl_801F1950 = .sbss:0x801F1950; // type:object size:0x8 data:4byte +lbl_801F1958 = .sbss:0x801F1958; // type:object size:0x4 data:4byte +lbl_801F195C = .sbss:0x801F195C; // type:object size:0x4 data:4byte +lbl_801F1960 = .sbss:0x801F1960; // type:object size:0x4 data:4byte +lbl_801F1964 = .sbss:0x801F1964; // type:object size:0x4 data:4byte +lbl_801F1968 = .sbss:0x801F1968; // type:object size:0x4 data:4byte +lbl_801F196C = .sbss:0x801F196C; // type:object size:0x4 data:4byte +__piReg = .sbss:0x801F1970; // type:object size:0x4 scope:global data:4byte +__cpReg = .sbss:0x801F1974; // type:object size:0x4 scope:global data:4byte +__peReg = .sbss:0x801F1978; // type:object size:0x4 scope:global data:4byte +__memReg = .sbss:0x801F197C; // type:object size:0x4 scope:global data:4byte +lbl_801F1980 = .sbss:0x801F1980; // type:object size:0x4 data:4byte +lbl_801F1984 = .sbss:0x801F1984; // type:object size:0x4 data:4byte +lbl_801F1988 = .sbss:0x801F1988; // type:object size:0x4 data:4byte +lbl_801F198C = .sbss:0x801F198C; // type:object size:0x1 data:byte +lbl_801F1990 = .sbss:0x801F1990; // type:object size:0x4 data:4byte +lbl_801F1994 = .sbss:0x801F1994; // type:object size:0x4 data:4byte +lbl_801F1998 = .sbss:0x801F1998; // type:object size:0x8 data:4byte +lbl_801F19A0 = .sbss:0x801F19A0; // type:object size:0x4 data:4byte +lbl_801F19A4 = .sbss:0x801F19A4; // type:object size:0x4 data:4byte +lbl_801F19A8 = .sbss:0x801F19A8; // type:object size:0x1 data:byte +lbl_801F19AC = .sbss:0x801F19AC; // type:object size:0xC +lbl_801F19B8 = .sbss:0x801F19B8; // type:object size:0x8 data:4byte +lbl_801F19C0 = .sbss:0x801F19C0; // type:object size:0x4 data:4byte +lbl_801F19C4 = .sbss:0x801F19C4; // type:object size:0x4 data:4byte +lbl_801F19C8 = .sbss:0x801F19C8; // type:object size:0x4 data:4byte +lbl_801F19CC = .sbss:0x801F19CC; // type:object size:0x4 data:4byte +lbl_801F19D0 = .sbss:0x801F19D0; // type:object size:0x4 +cmdTypeAndStatus$371 = .sbss:0x801F19D4; // type:object size:0x4 scope:local +lbl_801F19D8 = .sbss:0x801F19D8; // type:object size:0x8 data:4byte +SamplingRate = .sbss:0x801F19E0; // type:object size:0x4 scope:local data:4byte +lbl_801F1A00 = .sbss:0x801F1A00; // type:object size:0x20 data:4byte +lbl_801F1A20 = .sbss:0x801F1A20; // type:object size:0x20 data:4byte +lbl_801F1A40 = .sbss:0x801F1A40; // type:object size:0x20 data:4byte +lbl_801F1A60 = .sbss:0x801F1A60; // type:object size:0x20 data:4byte +lbl_801F1A80 = .sbss:0x801F1A80; // type:object size:0x20 data:4byte +lbl_801F1AA0 = .sbss:0x801F1AA0; // type:object size:0x4 data:4byte +lbl_801F1AA4 = .sbss:0x801F1AA4; // type:object size:0x4 data:4byte +lbl_801F1AA8 = .sbss:0x801F1AA8; // type:object size:0x4 data:4byte +lbl_801F1AAC = .sbss:0x801F1AAC; // type:object size:0x14 data:4byte +lbl_801F1AC0 = .sbss:0x801F1AC0; // type:object size:0x20 data:4byte +lbl_801F1AE0 = .sbss:0x801F1AE0; // type:object size:0x20 data:4byte +lbl_801F1B00 = .sbss:0x801F1B00; // type:object size:0x4 data:4byte +lbl_801F1B04 = .sbss:0x801F1B04; // type:object size:0x4 data:4byte +lbl_801F1B08 = .sbss:0x801F1B08; // type:object size:0x4 data:4byte +lbl_801F1B0C = .sbss:0x801F1B0C; // type:object size:0x4 data:4byte +lbl_801F1B10 = .sbss:0x801F1B10; // type:object size:0x4 data:4byte +lbl_801F1B14 = .sbss:0x801F1B14; // type:object size:0x4 data:4byte +__global_destructor_chain = .sbss:0x801F1B18; // type:object size:0x4 scope:global data:4byte +__aborting = .sbss:0x801F1B20; // type:object size:0x4 scope:global data:4byte +__atexit_curr_func = .sbss:0x801F1B24; // type:object size:0x4 scope:local data:4byte +__stdio_exit = .sbss:0x801F1B28; // type:object size:0x4 scope:global data:4byte +__console_exit = .sbss:0x801F1B2C; // type:object size:0x4 scope:global data:4byte +lbl_801F1B30 = .sbss:0x801F1B30; // type:object size:0x8 data:byte +lbl_801F1B38 = .sbss:0x801F1B38; // type:object size:0x8 data:4byte +lbl_801F1B40 = .sbss:0x801F1B40; // type:object size:0x8 data:4byte +lbl_801F1B48 = .sbss:0x801F1B48; // type:object size:0x4 data:4byte +lbl_801F1B4C = .sbss:0x801F1B4C; // type:object size:0x1 data:byte +lbl_801F1B50 = .sbss:0x801F1B50; // type:object size:0x4 data:4byte +lbl_801F1B54 = .sbss:0x801F1B54; // type:object size:0x4 data:4byte +lbl_801F1B58 = .sbss:0x801F1B58; // type:object size:0x4 data:4byte +lbl_801F1B5C = .sbss:0x801F1B5C; // type:object size:0x4 data:4byte +lbl_801F1B60 = .sbss:0x801F1B60; // type:object size:0x4 data:4byte +lbl_801F1B64 = .sbss:0x801F1B64; // type:object size:0x4 data:4byte +lbl_801F1B68 = .sbss:0x801F1B68; // type:object size:0x1 data:byte +lbl_801F1B69 = .sbss:0x801F1B69; // type:object size:0x1 data:byte +lbl_801F1B6C = .sbss:0x801F1B6C; // type:object size:0x8 data:byte +lbl_801F1B74 = .sbss:0x801F1B74; // type:object size:0x8 data:byte +lbl_801F1B7C = .sbss:0x801F1B7C; // type:object size:0x8 data:byte +lbl_801F1B84 = .sbss:0x801F1B84; // type:object size:0x8 data:byte +lbl_801F1B8C = .sbss:0x801F1B8C; // type:object size:0x4 data:4byte +lbl_801F1B90 = .sbss:0x801F1B90; // type:object size:0x4 data:4byte +lbl_801F1B94 = .sbss:0x801F1B94; // type:object size:0x4 data:4byte +lbl_801F1B98 = .sbss:0x801F1B98; // type:object size:0x4 data:4byte +lbl_801F1B9C = .sbss:0x801F1B9C; // type:object size:0x4 data:4byte +lbl_801F1BA0 = .sbss:0x801F1BA0; // type:object size:0x8 data:byte +lbl_801F1BA8 = .sbss:0x801F1BA8; // type:object size:0x4 data:4byte +lbl_801F1BAC = .sbss:0x801F1BAC; // type:object size:0x4 data:4byte +lbl_801F1BB0 = .sbss:0x801F1BB0; // type:object size:0x4 data:4byte +lbl_801F1BB4 = .sbss:0x801F1BB4; // type:object size:0x1 data:byte +lbl_801F1BB5 = .sbss:0x801F1BB5; // type:object size:0x1 data:byte +lbl_801F1BB8 = .sbss:0x801F1BB8; // type:object size:0x4 data:4byte +lbl_801F1BBC = .sbss:0x801F1BBC; // type:object size:0x4 data:4byte +lbl_801F1BC0 = .sbss:0x801F1BC0; // type:object size:0x8 +lbl_801F1BC8 = .sbss:0x801F1BC8; // type:object size:0x4 data:4byte +lbl_801F1BCC = .sbss:0x801F1BCC; // type:object size:0x8 +lbl_801F1BD4 = .sbss:0x801F1BD4; // type:object size:0x4 data:4byte +lbl_801F1BD8 = .sbss:0x801F1BD8; // type:object size:0x4 data:4byte +lbl_801F1BDC = .sbss:0x801F1BDC; // type:object size:0x4 data:4byte +lbl_801F1BE0 = .sbss:0x801F1BE0; // type:object size:0x8 +lbl_801F1BE8 = .sbss:0x801F1BE8; // type:object size:0x4 data:4byte +lbl_801F1BEC = .sbss:0x801F1BEC; // type:object size:0x4 data:4byte +lbl_801F1BF0 = .sbss:0x801F1BF0; // type:object size:0x2 data:2byte +lbl_801F1BF2 = .sbss:0x801F1BF2; // type:object size:0x2 data:2byte +lbl_801F1BF4 = .sbss:0x801F1BF4; // type:object size:0x2 data:2byte +lbl_801F1BF6 = .sbss:0x801F1BF6; // type:object size:0x2 data:2byte +lbl_801F1BF8 = .sbss:0x801F1BF8; // type:object size:0x2 data:2byte +lbl_801F1BFA = .sbss:0x801F1BFA; // type:object size:0x6 data:2byte +lbl_801F1C00 = .sbss:0x801F1C00; // type:object size:0x8 data:4byte +lbl_801F1C08 = .sbss:0x801F1C08; // type:object size:0x4 data:4byte +lbl_801F1C0C = .sbss:0x801F1C0C; // type:object size:0x4 data:4byte +lbl_801F1C10 = .sbss:0x801F1C10; // type:object size:0x4 data:4byte +lbl_801F1C14 = .sbss:0x801F1C14; // type:object size:0x4 data:4byte +lbl_801F1C18 = .sbss:0x801F1C18; // type:object size:0x8 data:byte +lbl_801F1C20 = .sbss:0x801F1C20; // type:object size:0x4 data:4byte +lbl_801F1C24 = .sbss:0x801F1C24; // type:object size:0x4 data:4byte +lbl_801F1C28 = .sbss:0x801F1C28; // type:object size:0x4 data:4byte +lbl_801F1C2C = .sbss:0x801F1C2C; // type:object size:0x2 data:2byte +lbl_801F1C2E = .sbss:0x801F1C2E; // type:object size:0x1 data:byte +lbl_801F1C2F = .sbss:0x801F1C2F; // type:object size:0x1 data:byte +lbl_801F1C30 = .sbss:0x801F1C30; // type:object size:0x1 data:byte +lbl_801F1C31 = .sbss:0x801F1C31; // type:object size:0x7 data:byte +lbl_801F1C38 = .sbss:0x801F1C38; // type:object size:0x8 data:2byte +lbl_801F1C40 = .sbss:0x801F1C40; // type:object size:0x4 data:4byte +lbl_801F1C44 = .sbss:0x801F1C44; // type:object size:0x4 data:4byte +lbl_801F1C48 = .sbss:0x801F1C48; // type:object size:0x4 data:4byte +lbl_801F1C4C = .sbss:0x801F1C4C; // type:object size:0x2 data:2byte +lbl_801F1C50 = .sbss:0x801F1C50; // type:object size:0x4 data:4byte +lbl_801F1C54 = .sbss:0x801F1C54; // type:object size:0x4 data:4byte +lbl_801F1C58 = .sbss:0x801F1C58; // type:object size:0x4 data:4byte +lbl_801F1C5C = .sbss:0x801F1C5C; // type:object size:0x2 data:2byte +lbl_801F1C60 = .sbss:0x801F1C60; // type:object size:0x4 data:4byte +lbl_801F1C64 = .sbss:0x801F1C64; // type:object size:0x4 data:4byte +lbl_801F1C68 = .sbss:0x801F1C68; // type:object size:0x4 data:4byte +lbl_801F1C6C = .sbss:0x801F1C6C; // type:object size:0x4 data:4byte +lbl_801F1C70 = .sbss:0x801F1C70; // type:object size:0x3 +lbl_801F1C73 = .sbss:0x801F1C73; // type:object size:0x1 +lbl_801F1C74 = .sbss:0x801F1C74; // type:object size:0x4 data:4byte +lbl_801F1C78 = .sbss:0x801F1C78; // type:object size:0x8 data:4byte +lbl_801F1C80 = .sbss:0x801F1C80; // type:object size:0x1 data:byte +lbl_801F1C81 = .sbss:0x801F1C81; // type:object size:0x1 data:byte +lbl_801F1C82 = .sbss:0x801F1C82; // type:object size:0x1 data:byte +lbl_801F1C83 = .sbss:0x801F1C83; // type:object size:0x1 data:byte +lbl_801F1C84 = .sbss:0x801F1C84; // type:object size:0x1 data:byte +lbl_801F1C85 = .sbss:0x801F1C85; // type:object size:0x1 data:byte +lbl_801F1C88 = .sbss:0x801F1C88; // type:object size:0x4 data:4byte +lbl_801F1C8C = .sbss:0x801F1C8C; // type:object size:0x4 data:4byte +lbl_801F1C90 = .sbss:0x801F1C90; // type:object size:0x4 data:4byte +lbl_801F1C94 = .sbss:0x801F1C94; // type:object size:0x4 data:4byte +lbl_801F1C98 = .sbss:0x801F1C98; // type:object size:0x4 data:4byte +lbl_801F1C9C = .sbss:0x801F1C9C; // type:object size:0x1 data:byte +lbl_801F1CA0 = .sbss:0x801F1CA0; // type:object size:0x1 data:byte +lbl_801F1CA4 = .sbss:0x801F1CA4; // type:object size:0x4 data:4byte +lbl_801F1CA8 = .sbss:0x801F1CA8; // type:object size:0x4 data:4byte +lbl_801F1CAC = .sbss:0x801F1CAC; // type:object size:0x1 data:byte +lbl_801F1CAD = .sbss:0x801F1CAD; // type:object size:0x1 data:byte +lbl_801F1CAE = .sbss:0x801F1CAE; // type:object size:0x1 data:byte +lbl_801F1CAF = .sbss:0x801F1CAF; // type:object size:0x1 data:byte +lbl_801F1CB0 = .sbss:0x801F1CB0; // type:object size:0x4 data:4byte +lbl_801F1CB4 = .sbss:0x801F1CB4; // type:object size:0x4 data:4byte +lbl_801F1CB8 = .sbss:0x801F1CB8; // type:object size:0x4 data:4byte +lbl_801F1CBC = .sbss:0x801F1CBC; // type:object size:0x4 data:4byte +lbl_801F1CC0 = .sbss:0x801F1CC0; // type:object size:0x4 data:4byte +lbl_801F1CC4 = .sbss:0x801F1CC4; // type:object size:0x4 data:4byte +lbl_801F1CC8 = .sbss:0x801F1CC8; // type:object size:0x4 data:4byte +lbl_801F1CCC = .sbss:0x801F1CCC; // type:object size:0x4 data:4byte +lbl_801F1CD0 = .sbss:0x801F1CD0; // type:object size:0x4 data:4byte +lbl_801F1CD4 = .sbss:0x801F1CD4; // type:object size:0x2 data:2byte +lbl_801F1CD8 = .sbss:0x801F1CD8; // type:object size:0x4 data:4byte +lbl_801F1CDC = .sbss:0x801F1CDC; // type:object size:0x4 data:4byte +lbl_801F1CE0 = .sbss:0x801F1CE0; // type:object size:0x4 data:4byte +lbl_801F1CE4 = .sbss:0x801F1CE4; // type:object size:0x4 data:4byte +lbl_801F1CE8 = .sbss:0x801F1CE8; // type:object size:0x4 data:4byte +lbl_801F1CEC = .sbss:0x801F1CEC; // type:object size:0x4 data:4byte +lbl_801F1CF0 = .sbss:0x801F1CF0; // type:object size:0x1 data:byte +lbl_801F1CF4 = .sbss:0x801F1CF4; // type:object size:0x4 data:4byte +lbl_801F1CF8 = .sbss:0x801F1CF8; // type:object size:0x4 data:4byte +lbl_801F1CFC = .sbss:0x801F1CFC; // type:object size:0x4 data:4byte +lbl_801F1D00 = .sbss:0x801F1D00; // type:object size:0x4 data:4byte +lbl_801F1D04 = .sbss:0x801F1D04; // type:object size:0x4 data:4byte +lbl_801F1D08 = .sbss:0x801F1D08; // type:object size:0x4 data:4byte +lbl_801F1D0C = .sbss:0x801F1D0C; // type:object size:0x1 data:byte +lbl_801F1D20 = .sdata2:0x801F1D20; // type:object size:0x8 data:double +lbl_801F1D28 = .sdata2:0x801F1D28; // type:object size:0x4 data:float +lbl_801F1D2C = .sdata2:0x801F1D2C; // type:object size:0x4 data:float +lbl_801F1D30 = .sdata2:0x801F1D30; // type:object size:0x8 data:double +lbl_801F1D38 = .sdata2:0x801F1D38; // type:object size:0x4 data:float +lbl_801F1D3C = .sdata2:0x801F1D3C; // type:object size:0x4 data:float +lbl_801F1D40 = .sdata2:0x801F1D40; // type:object size:0x4 data:float +lbl_801F1D44 = .sdata2:0x801F1D44; // type:object size:0x4 data:float +lbl_801F1D48 = .sdata2:0x801F1D48; // type:object size:0x4 data:float +lbl_801F1D4C = .sdata2:0x801F1D4C; // type:object size:0x4 data:float +lbl_801F1D50 = .sdata2:0x801F1D50; // type:object size:0x4 data:float +lbl_801F1D54 = .sdata2:0x801F1D54; // type:object size:0x4 data:float +lbl_801F1D58 = .sdata2:0x801F1D58; // type:object size:0x4 data:float +lbl_801F1D60 = .sdata2:0x801F1D60; // type:object size:0x8 data:double +lbl_801F1D68 = .sdata2:0x801F1D68; // type:object size:0x8 data:double +lbl_801F1D70 = .sdata2:0x801F1D70; // type:object size:0x4 data:float +lbl_801F1D74 = .sdata2:0x801F1D74; // type:object size:0x4 data:float +lbl_801F1D78 = .sdata2:0x801F1D78; // type:object size:0x4 data:float +lbl_801F1D7C = .sdata2:0x801F1D7C; // type:object size:0x4 data:float +lbl_801F1D80 = .sdata2:0x801F1D80; // type:object size:0x8 data:float +lbl_801F1D88 = .sdata2:0x801F1D88; // type:object size:0x4 data:float +lbl_801F1D8C = .sdata2:0x801F1D8C; // type:object size:0x4 data:float +lbl_801F1D90 = .sdata2:0x801F1D90; // type:object size:0x4 data:float +lbl_801F1D98 = .sdata2:0x801F1D98; // type:object size:0x8 data:double +lbl_801F1DA0 = .sdata2:0x801F1DA0; // type:object size:0x8 data:double +lbl_801F1DA8 = .sdata2:0x801F1DA8; // type:object size:0x8 data:float +lbl_801F1DB0 = .sdata2:0x801F1DB0; // type:object size:0x4 data:float +lbl_801F1DB4 = .sdata2:0x801F1DB4; // type:object size:0x4 data:float +lbl_801F1DB8 = .sdata2:0x801F1DB8; // type:object size:0x4 data:float +lbl_801F1DBC = .sdata2:0x801F1DBC; // type:object size:0x4 data:float +lbl_801F1DC0 = .sdata2:0x801F1DC0; // type:object size:0x4 data:float +lbl_801F1DC4 = .sdata2:0x801F1DC4; // type:object size:0x4 data:float +lbl_801F1DC8 = .sdata2:0x801F1DC8; // type:object size:0x4 data:float +lbl_801F1DD0 = .sdata2:0x801F1DD0; // type:object size:0x8 data:double +lbl_801F1DD8 = .sdata2:0x801F1DD8; // type:object size:0x8 data:double +lbl_801F1DE0 = .sdata2:0x801F1DE0; // type:object size:0x8 data:double +lbl_801F1DE8 = .sdata2:0x801F1DE8; // type:object size:0x4 data:float +lbl_801F1DEC = .sdata2:0x801F1DEC; // type:object size:0x4 data:float +lbl_801F1DF0 = .sdata2:0x801F1DF0; // type:object size:0x4 data:float +lbl_801F1DF4 = .sdata2:0x801F1DF4; // type:object size:0x4 data:float +lbl_801F1DF8 = .sdata2:0x801F1DF8; // type:object size:0x8 data:double +lbl_801F1E00 = .sdata2:0x801F1E00; // type:object size:0x8 data:double +lbl_801F1E08 = .sdata2:0x801F1E08; // type:object size:0x8 data:double +lbl_801F1E10 = .sdata2:0x801F1E10; // type:object size:0x8 data:double +lbl_801F1E18 = .sdata2:0x801F1E18; // type:object size:0x4 data:float +lbl_801F1E20 = .sdata2:0x801F1E20; // type:object size:0x8 data:double +lbl_801F1E28 = .sdata2:0x801F1E28; // type:object size:0x4 data:float +lbl_801F1E2C = .sdata2:0x801F1E2C; // type:object size:0x4 data:float +lbl_801F1E30 = .sdata2:0x801F1E30; // type:object size:0x4 data:float +lbl_801F1E34 = .sdata2:0x801F1E34; // type:object size:0x4 data:float +lbl_801F1E38 = .sdata2:0x801F1E38; // type:object size:0x8 data:double +lbl_801F1E40 = .sdata2:0x801F1E40; // type:object size:0x4 data:float +lbl_801F1E44 = .sdata2:0x801F1E44; // type:object size:0x4 data:float +lbl_801F1E48 = .sdata2:0x801F1E48; // type:object size:0x4 data:float +lbl_801F1E4C = .sdata2:0x801F1E4C; // type:object size:0x4 data:float +lbl_801F1E50 = .sdata2:0x801F1E50; // type:object size:0x8 data:double +lbl_801F1E58 = .sdata2:0x801F1E58; // type:object size:0x4 data:float +lbl_801F1E60 = .sdata2:0x801F1E60; // type:object size:0x8 data:double +lbl_801F1E68 = .sdata2:0x801F1E68; // type:object size:0x4 data:float +lbl_801F1E6C = .sdata2:0x801F1E6C; // type:object size:0x4 data:float +lbl_801F1E70 = .sdata2:0x801F1E70; // type:object size:0x4 data:float +lbl_801F1E74 = .sdata2:0x801F1E74; // type:object size:0x4 data:float +lbl_801F1E78 = .sdata2:0x801F1E78; // type:object size:0x4 data:float +lbl_801F1E80 = .sdata2:0x801F1E80; // type:object size:0x8 data:double +lbl_801F1E88 = .sdata2:0x801F1E88; // type:object size:0x8 data:double +lbl_801F1E90 = .sdata2:0x801F1E90; // type:object size:0x8 data:double +lbl_801F1E98 = .sdata2:0x801F1E98; // type:object size:0x8 data:double +lbl_801F1EA0 = .sdata2:0x801F1EA0; // type:object size:0x4 data:float +lbl_801F1EA4 = .sdata2:0x801F1EA4; // type:object size:0x4 data:float +lbl_801F1EA8 = .sdata2:0x801F1EA8; // type:object size:0x4 data:float +lbl_801F1EAC = .sdata2:0x801F1EAC; // type:object size:0x4 data:float +lbl_801F1EB0 = .sdata2:0x801F1EB0; // type:object size:0x4 data:float +lbl_801F1EB4 = .sdata2:0x801F1EB4; // type:object size:0x4 data:float +lbl_801F1EB8 = .sdata2:0x801F1EB8; // type:object size:0x4 data:float +lbl_801F1EBC = .sdata2:0x801F1EBC; // type:object size:0x4 data:float +lbl_801F1EC0 = .sdata2:0x801F1EC0; // type:object size:0x8 data:double +lbl_801F1EC8 = .sdata2:0x801F1EC8; // type:object size:0x8 data:float +lbl_801F1ED0 = .sdata2:0x801F1ED0; // type:object size:0x4 data:float +lbl_801F1ED4 = .sdata2:0x801F1ED4; // type:object size:0x4 data:float +lbl_801F1ED8 = .sdata2:0x801F1ED8; // type:object size:0x8 data:double +lbl_801F1EE0 = .sdata2:0x801F1EE0; // type:object size:0x8 data:double +lbl_801F1EE8 = .sdata2:0x801F1EE8; // type:object size:0x4 data:float +lbl_801F1EEC = .sdata2:0x801F1EEC; // type:object size:0x4 data:float +lbl_801F1EF0 = .sdata2:0x801F1EF0; // type:object size:0x4 data:float +lbl_801F1EF8 = .sdata2:0x801F1EF8; // type:object size:0x8 data:double +lbl_801F1F00 = .sdata2:0x801F1F00; // type:object size:0x8 data:double +lbl_801F1F08 = .sdata2:0x801F1F08; // type:object size:0x8 data:double +lbl_801F1F10 = .sdata2:0x801F1F10; // type:object size:0x4 data:float +lbl_801F1F14 = .sdata2:0x801F1F14; // type:object size:0x4 data:float +lbl_801F1F18 = .sdata2:0x801F1F18; // type:object size:0x8 data:float +lbl_801F1F20 = .sdata2:0x801F1F20; // type:object size:0x4 data:float +lbl_801F1F24 = .sdata2:0x801F1F24; // type:object size:0x4 data:float +lbl_801F1F28 = .sdata2:0x801F1F28; // type:object size:0x8 data:double +lbl_801F1F30 = .sdata2:0x801F1F30; // type:object size:0x4 data:float +lbl_801F1F34 = .sdata2:0x801F1F34; // type:object size:0x4 data:float +lbl_801F1F38 = .sdata2:0x801F1F38; // type:object size:0x4 data:float +lbl_801F1F3C = .sdata2:0x801F1F3C; // type:object size:0x4 data:float +lbl_801F1F40 = .sdata2:0x801F1F40; // type:object size:0x8 data:double +lbl_801F1F48 = .sdata2:0x801F1F48; // type:object size:0x4 data:float +lbl_801F1F50 = .sdata2:0x801F1F50; // type:object size:0x8 data:double +lbl_801F1F58 = .sdata2:0x801F1F58; // type:object size:0x8 data:double +lbl_801F1F60 = .sdata2:0x801F1F60; // type:object size:0x8 data:double +lbl_801F1F68 = .sdata2:0x801F1F68; // type:object size:0x4 data:float +lbl_801F1F70 = .sdata2:0x801F1F70; // type:object size:0x8 data:double +lbl_801F1F78 = .sdata2:0x801F1F78; // type:object size:0x8 data:double +lbl_801F1F80 = .sdata2:0x801F1F80; // type:object size:0x4 data:float +lbl_801F1F88 = .sdata2:0x801F1F88; // type:object size:0x8 data:double +lbl_801F1F90 = .sdata2:0x801F1F90; // type:object size:0x8 data:double +lbl_801F1F98 = .sdata2:0x801F1F98; // type:object size:0x8 data:double +lbl_801F1FA0 = .sdata2:0x801F1FA0; // type:object size:0x8 data:double +lbl_801F1FA8 = .sdata2:0x801F1FA8; // type:object size:0x4 data:float +lbl_801F1FAC = .sdata2:0x801F1FAC; // type:object size:0x4 data:float +lbl_801F1FB0 = .sdata2:0x801F1FB0; // type:object size:0x4 data:float +lbl_801F1FB4 = .sdata2:0x801F1FB4; // type:object size:0x4 data:float +lbl_801F1FB8 = .sdata2:0x801F1FB8; // type:object size:0x8 data:double +lbl_801F1FC0 = .sdata2:0x801F1FC0; // type:object size:0x4 data:float +lbl_801F1FC8 = .sdata2:0x801F1FC8; // type:object size:0x8 data:double +lbl_801F1FD0 = .sdata2:0x801F1FD0; // type:object size:0x8 data:double +lbl_801F1FD8 = .sdata2:0x801F1FD8; // type:object size:0x4 data:float +lbl_801F1FE0 = .sdata2:0x801F1FE0; // type:object size:0x8 data:double +lbl_801F1FE8 = .sdata2:0x801F1FE8; // type:object size:0x4 data:float +lbl_801F1FEC = .sdata2:0x801F1FEC; // type:object size:0x4 data:float +lbl_801F1FF0 = .sdata2:0x801F1FF0; // type:object size:0x4 data:float +lbl_801F1FF4 = .sdata2:0x801F1FF4; // type:object size:0x4 data:float +lbl_801F1FF8 = .sdata2:0x801F1FF8; // type:object size:0x8 data:double +lbl_801F2000 = .sdata2:0x801F2000; // type:object size:0x8 data:double +lbl_801F2008 = .sdata2:0x801F2008; // type:object size:0x4 data:float +lbl_801F200C = .sdata2:0x801F200C; // type:object size:0x4 data:float +lbl_801F2010 = .sdata2:0x801F2010; // type:object size:0x8 data:double +lbl_801F2018 = .sdata2:0x801F2018; // type:object size:0x4 data:float +lbl_801F201C = .sdata2:0x801F201C; // type:object size:0x4 data:float +lbl_801F2020 = .sdata2:0x801F2020; // type:object size:0x4 data:float +lbl_801F2024 = .sdata2:0x801F2024; // type:object size:0x4 data:float +lbl_801F2028 = .sdata2:0x801F2028; // type:object size:0x8 data:double +lbl_801F2030 = .sdata2:0x801F2030; // type:object size:0x8 data:double +lbl_801F2038 = .sdata2:0x801F2038; // type:object size:0x4 data:float +lbl_801F203C = .sdata2:0x801F203C; // type:object size:0x4 data:float +lbl_801F2040 = .sdata2:0x801F2040; // type:object size:0x4 data:float +lbl_801F2044 = .sdata2:0x801F2044; // type:object size:0x4 data:float +lbl_801F2048 = .sdata2:0x801F2048; // type:object size:0x4 data:float +lbl_801F204C = .sdata2:0x801F204C; // type:object size:0x4 data:float +lbl_801F2050 = .sdata2:0x801F2050; // type:object size:0x4 data:float +lbl_801F2054 = .sdata2:0x801F2054; // type:object size:0x4 data:float +lbl_801F2058 = .sdata2:0x801F2058; // type:object size:0x4 data:float +lbl_801F2060 = .sdata2:0x801F2060; // type:object size:0x8 data:double +lbl_801F2068 = .sdata2:0x801F2068; // type:object size:0x8 data:double +lbl_801F2070 = .sdata2:0x801F2070; // type:object size:0x4 data:float +lbl_801F2078 = .sdata2:0x801F2078; // type:object size:0x8 data:double +lbl_801F2080 = .sdata2:0x801F2080; // type:object size:0x8 data:double +lbl_801F2088 = .sdata2:0x801F2088; // type:object size:0x8 data:double +lbl_801F2090 = .sdata2:0x801F2090; // type:object size:0x4 data:float +lbl_801F2094 = .sdata2:0x801F2094; // type:object size:0x4 data:float +lbl_801F2098 = .sdata2:0x801F2098; // type:object size:0x4 data:float +lbl_801F20A0 = .sdata2:0x801F20A0; // type:object size:0x8 data:double +lbl_801F20A8 = .sdata2:0x801F20A8; // type:object size:0x4 scope:local data:float +lbl_801F20AC = .sdata2:0x801F20AC; // type:object size:0x4 scope:local data:float +lbl_801F20B0 = .sdata2:0x801F20B0; // type:object size:0x4 scope:local data:float +lbl_801F20B8 = .sdata2:0x801F20B8; // type:object size:0x8 scope:local data:double +lbl_801F20C0 = .sdata2:0x801F20C0; // type:object size:0x8 scope:local data:double +lbl_801F20C8 = .sdata2:0x801F20C8; // type:object size:0x8 scope:local data:double +lbl_801F20D0 = .sdata2:0x801F20D0; // type:object size:0x8 scope:local data:double +lbl_801F20D8 = .sdata2:0x801F20D8; // type:object size:0x8 scope:local data:double +lbl_801F20E0 = .sdata2:0x801F20E0; // type:object size:0x8 scope:local data:double +lbl_801F20E8 = .sdata2:0x801F20E8; // type:object size:0x4 scope:local data:float +lbl_801F20EC = .sdata2:0x801F20EC; // type:object size:0x4 scope:local data:float +lbl_801F20F0 = .sdata2:0x801F20F0; // type:object size:0x8 scope:local data:double +lbl_801F20F8 = .sdata2:0x801F20F8; // type:object size:0x4 scope:local data:float +lbl_801F20FC = .sdata2:0x801F20FC; // type:object size:0x4 scope:local data:float +lbl_801F2100 = .sdata2:0x801F2100; // type:object size:0x4 scope:local data:float +lbl_801F2104 = .sdata2:0x801F2104; // type:object size:0x4 scope:local data:float +lbl_801F2108 = .sdata2:0x801F2108; // type:object size:0x4 scope:local data:float +lbl_801F210C = .sdata2:0x801F210C; // type:object size:0x4 scope:local data:float +lbl_801F2110 = .sdata2:0x801F2110; // type:object size:0x4 scope:local data:float +lbl_801F2114 = .sdata2:0x801F2114; // type:object size:0x4 scope:local data:float +lbl_801F2118 = .sdata2:0x801F2118; // type:object size:0x4 scope:local data:float +lbl_801F211C = .sdata2:0x801F211C; // type:object size:0x4 scope:local data:float +lbl_801F2120 = .sdata2:0x801F2120; // type:object size:0x4 scope:local data:float +lbl_801F2124 = .sdata2:0x801F2124; // type:object size:0x4 scope:local data:float +lbl_801F2128 = .sdata2:0x801F2128; // type:object size:0x4 scope:local data:float +lbl_801F212C = .sdata2:0x801F212C; // type:object size:0x4 scope:local data:float +lbl_801F2130 = .sdata2:0x801F2130; // type:object size:0x4 scope:local data:float +lbl_801F2134 = .sdata2:0x801F2134; // type:object size:0x4 scope:local data:float +lbl_801F2138 = .sdata2:0x801F2138; // type:object size:0x4 scope:local data:float +lbl_801F213C = .sdata2:0x801F213C; // type:object size:0x4 scope:local data:float +lbl_801F2140 = .sdata2:0x801F2140; // type:object size:0x8 scope:local data:double +lbl_801F2148 = .sdata2:0x801F2148; // type:object size:0x4 scope:local data:float +lbl_801F214C = .sdata2:0x801F214C; // type:object size:0x4 scope:local data:float +lbl_801F2150 = .sdata2:0x801F2150; // type:object size:0x8 scope:local data:double +lbl_801F2158 = .sdata2:0x801F2158; // type:object size:0x8 scope:local data:double +lbl_801F2160 = .sdata2:0x801F2160; // type:object size:0x4 scope:local data:float +lbl_801F2164 = .sdata2:0x801F2164; // type:object size:0x4 scope:local data:float +lbl_801F2168 = .sdata2:0x801F2168; // type:object size:0x8 scope:local data:double +lbl_801F2170 = .sdata2:0x801F2170; // type:object size:0x4 scope:local data:float +lbl_801F2174 = .sdata2:0x801F2174; // type:object size:0x4 scope:local data:float +lbl_801F2178 = .sdata2:0x801F2178; // type:object size:0x4 scope:local data:float +lbl_801F217C = .sdata2:0x801F217C; // type:object size:0x4 scope:local data:float +lbl_801F2180 = .sdata2:0x801F2180; // type:object size:0x4 scope:local data:float +lbl_801F2188 = .sdata2:0x801F2188; // type:object size:0x8 scope:local data:double +lbl_801F2190 = .sdata2:0x801F2190; // type:object size:0x4 scope:local data:float +lbl_801F2198 = .sdata2:0x801F2198; // type:object size:0x8 scope:local data:double +lbl_801F21A0 = .sdata2:0x801F21A0; // type:object size:0x4 scope:local data:float +lbl_801F21A4 = .sdata2:0x801F21A4; // type:object size:0x4 scope:local data:float +lbl_801F21A8 = .sdata2:0x801F21A8; // type:object size:0x4 scope:local data:float +lbl_801F21AC = .sdata2:0x801F21AC; // type:object size:0x4 scope:local data:float +lbl_801F21B0 = .sdata2:0x801F21B0; // type:object size:0x8 scope:local data:double +lbl_801F21B8 = .sdata2:0x801F21B8; // type:object size:0x4 scope:local data:float +lbl_801F21C0 = .sdata2:0x801F21C0; // type:object size:0x8 scope:local data:double +lbl_801F21C8 = .sdata2:0x801F21C8; // type:object size:0x8 scope:local data:double +lbl_801F21D0 = .sdata2:0x801F21D0; // type:object size:0x8 scope:local data:double +lbl_801F21D8 = .sdata2:0x801F21D8; // type:object size:0x4 scope:local data:float +lbl_801F21E0 = .sdata2:0x801F21E0; // type:object size:0x8 scope:local data:double +lbl_801F21E8 = .sdata2:0x801F21E8; // type:object size:0x4 scope:local data:float +lbl_801F21EC = .sdata2:0x801F21EC; // type:object size:0x4 scope:local data:float +lbl_801F21F0 = .sdata2:0x801F21F0; // type:object size:0x4 scope:local data:float +lbl_801F21F4 = .sdata2:0x801F21F4; // type:object size:0x4 scope:local data:float +lbl_801F21F8 = .sdata2:0x801F21F8; // type:object size:0x4 scope:local data:float +lbl_801F21FC = .sdata2:0x801F21FC; // type:object size:0x4 scope:local data:float +lbl_801F2200 = .sdata2:0x801F2200; // type:object size:0x4 scope:local data:float +lbl_801F2208 = .sdata2:0x801F2208; // type:object size:0x8 scope:local data:double +lbl_801F2210 = .sdata2:0x801F2210; // type:object size:0x8 scope:local data:double +lbl_801F2218 = .sdata2:0x801F2218; // type:object size:0x8 scope:local data:double +lbl_801F2220 = .sdata2:0x801F2220; // type:object size:0x2 scope:local data:2byte +lbl_801F2222 = .sdata2:0x801F2222; // type:object size:0x2 scope:local data:2byte +lbl_801F2224 = .sdata2:0x801F2224; // type:object size:0x2 scope:local data:2byte +lbl_801F2228 = .sdata2:0x801F2228; // type:object size:0x4 scope:local data:float +lbl_801F222C = .sdata2:0x801F222C; // type:object size:0x4 scope:local data:float +lbl_801F2230 = .sdata2:0x801F2230; // type:object size:0x4 scope:local data:float +lbl_801F2234 = .sdata2:0x801F2234; // type:object size:0x4 scope:local data:float +lbl_801F2238 = .sdata2:0x801F2238; // type:object size:0x4 scope:local data:float +lbl_801F223C = .sdata2:0x801F223C; // type:object size:0x4 scope:local data:float +lbl_801F2240 = .sdata2:0x801F2240; // type:object size:0x4 scope:local data:float +lbl_801F2244 = .sdata2:0x801F2244; // type:object size:0x4 scope:local data:float +lbl_801F2248 = .sdata2:0x801F2248; // type:object size:0x4 scope:local data:float +lbl_801F224C = .sdata2:0x801F224C; // type:object size:0x4 scope:local data:float +lbl_801F2250 = .sdata2:0x801F2250; // type:object size:0x8 scope:local data:double +lbl_801F2258 = .sdata2:0x801F2258; // type:object size:0x8 scope:local data:double +lbl_801F2260 = .sdata2:0x801F2260; // type:object size:0x4 scope:local data:float +lbl_801F2264 = .sdata2:0x801F2264; // type:object size:0x4 scope:local data:float +lbl_801F2268 = .sdata2:0x801F2268; // type:object size:0x4 data:float +lbl_801F2270 = .sdata2:0x801F2270; // type:object size:0x8 data:double +lbl_801F2278 = .sdata2:0x801F2278; // type:object size:0x8 data:double +lbl_801F2280 = .sdata2:0x801F2280; // type:object size:0x4 data:float +lbl_801F2284 = .sdata2:0x801F2284; // type:object size:0x4 data:float +lbl_801F2288 = .sdata2:0x801F2288; // type:object size:0x8 data:double +lbl_801F2290 = .sdata2:0x801F2290; // type:object size:0x4 data:float +lbl_801F2294 = .sdata2:0x801F2294; // type:object size:0x4 data:float +lbl_801F2298 = .sdata2:0x801F2298; // type:object size:0x8 data:double +lbl_801F22A0 = .sdata2:0x801F22A0; // type:object size:0x4 data:float +lbl_801F22A8 = .sdata2:0x801F22A8; // type:object size:0x8 data:double +lbl_801F22B0 = .sdata2:0x801F22B0; // type:object size:0x4 data:float +lbl_801F22B4 = .sdata2:0x801F22B4; // type:object size:0x4 data:float +lbl_801F22B8 = .sdata2:0x801F22B8; // type:object size:0x4 data:float +lbl_801F22BC = .sdata2:0x801F22BC; // type:object size:0x4 data:float +lbl_801F22C0 = .sdata2:0x801F22C0; // type:object size:0x8 data:double +lbl_801F22C8 = .sdata2:0x801F22C8; // type:object size:0x4 data:float +lbl_801F22CC = .sdata2:0x801F22CC; // type:object size:0x4 data:float +lbl_801F22D0 = .sdata2:0x801F22D0; // type:object size:0x4 data:float +lbl_801F22D4 = .sdata2:0x801F22D4; // type:object size:0x4 data:float +lbl_801F22D8 = .sdata2:0x801F22D8; // type:object size:0x4 data:float +lbl_801F22E0 = .sdata2:0x801F22E0; // type:object size:0x8 data:double +lbl_801F22E8 = .sdata2:0x801F22E8; // type:object size:0x4 data:float +lbl_801F22EC = .sdata2:0x801F22EC; // type:object size:0x4 data:float +lbl_801F22F0 = .sdata2:0x801F22F0; // type:object size:0x4 data:float +lbl_801F22F4 = .sdata2:0x801F22F4; // type:object size:0x4 data:float +lbl_801F22F8 = .sdata2:0x801F22F8; // type:object size:0x4 data:float +lbl_801F22FC = .sdata2:0x801F22FC; // type:object size:0x4 data:float +lbl_801F2300 = .sdata2:0x801F2300; // type:object size:0x4 data:float +lbl_801F2308 = .sdata2:0x801F2308; // type:object size:0x8 data:double +lbl_801F2310 = .sdata2:0x801F2310; // type:object size:0x4 data:float +lbl_801F2318 = .sdata2:0x801F2318; // type:object size:0x8 data:double +lbl_801F2320 = .sdata2:0x801F2320; // type:object size:0x4 data:float +lbl_801F2324 = .sdata2:0x801F2324; // type:object size:0x4 data:float +lbl_801F2328 = .sdata2:0x801F2328; // type:object size:0x4 data:float +lbl_801F2330 = .sdata2:0x801F2330; // type:object size:0x8 data:double +lbl_801F2338 = .sdata2:0x801F2338; // type:object size:0x8 data:double +lbl_801F2340 = .sdata2:0x801F2340; // type:object size:0x8 data:double +lbl_801F2348 = .sdata2:0x801F2348; // type:object size:0x4 data:float +lbl_801F2350 = .sdata2:0x801F2350; // type:object size:0x8 data:double +lbl_801F2358 = .sdata2:0x801F2358; // type:object size:0x8 data:double +lbl_801F2360 = .sdata2:0x801F2360; // type:object size:0x8 data:double +lbl_801F2368 = .sdata2:0x801F2368; // type:object size:0x8 data:double +lbl_801F2370 = .sdata2:0x801F2370; // type:object size:0x8 data:double +lbl_801F2378 = .sdata2:0x801F2378; // type:object size:0x8 data:double +lbl_801F2380 = .sdata2:0x801F2380; // type:object size:0x8 data:double +lbl_801F2388 = .sdata2:0x801F2388; // type:object size:0x8 data:double +lbl_801F2390 = .sdata2:0x801F2390; // type:object size:0x8 data:double +lbl_801F2398 = .sdata2:0x801F2398; // type:object size:0x4 data:float +lbl_801F239C = .sdata2:0x801F239C; // type:object size:0x4 data:float +lbl_801F23A0 = .sdata2:0x801F23A0; // type:object size:0x4 data:float +lbl_801F23A4 = .sdata2:0x801F23A4; // type:object size:0x4 data:float +lbl_801F23A8 = .sdata2:0x801F23A8; // type:object size:0x8 data:double +lbl_801F23B0 = .sdata2:0x801F23B0; // type:object size:0x4 data:float +lbl_801F23B8 = .sdata2:0x801F23B8; // type:object size:0x8 data:double +lbl_801F23C0 = .sdata2:0x801F23C0; // type:object size:0x8 data:double +lbl_801F23C8 = .sdata2:0x801F23C8; // type:object size:0x4 data:float +lbl_801F23CC = .sdata2:0x801F23CC; // type:object size:0x4 data:float +lbl_801F23D0 = .sdata2:0x801F23D0; // type:object size:0x8 data:double +lbl_801F23D8 = .sdata2:0x801F23D8; // type:object size:0x4 data:float +lbl_801F23DC = .sdata2:0x801F23DC; // type:object size:0x4 data:float +lbl_801F23E0 = .sdata2:0x801F23E0; // type:object size:0x4 data:float +lbl_801F23E4 = .sdata2:0x801F23E4; // type:object size:0x4 data:float +lbl_801F23E8 = .sdata2:0x801F23E8; // type:object size:0x4 data:float +lbl_801F23EC = .sdata2:0x801F23EC; // type:object size:0x4 data:float +lbl_801F23F0 = .sdata2:0x801F23F0; // type:object size:0x8 data:double +lbl_801F23F8 = .sdata2:0x801F23F8; // type:object size:0x4 data:float +lbl_801F2400 = .sdata2:0x801F2400; // type:object size:0x8 data:double +lbl_801F2408 = .sdata2:0x801F2408; // type:object size:0x8 data:double +lbl_801F2410 = .sdata2:0x801F2410; // type:object size:0x4 data:float +lbl_801F2418 = .sdata2:0x801F2418; // type:object size:0x8 data:double +lbl_801F2420 = .sdata2:0x801F2420; // type:object size:0x4 data:float +lbl_801F2424 = .sdata2:0x801F2424; // type:object size:0x4 data:float +lbl_801F2428 = .sdata2:0x801F2428; // type:object size:0x8 data:double +lbl_801F2430 = .sdata2:0x801F2430; // type:object size:0x8 data:double +lbl_801F2438 = .sdata2:0x801F2438; // type:object size:0x4 data:float +lbl_801F243C = .sdata2:0x801F243C; // type:object size:0x4 data:float +lbl_801F2440 = .sdata2:0x801F2440; // type:object size:0x4 data:float +lbl_801F2448 = .sdata2:0x801F2448; // type:object size:0x8 data:double +lbl_801F2450 = .sdata2:0x801F2450; // type:object size:0x4 data:float +lbl_801F2454 = .sdata2:0x801F2454; // type:object size:0x4 data:float +lbl_801F2458 = .sdata2:0x801F2458; // type:object size:0x4 data:float +lbl_801F245C = .sdata2:0x801F245C; // type:object size:0x4 data:float +lbl_801F2460 = .sdata2:0x801F2460; // type:object size:0x8 data:double +lbl_801F2468 = .sdata2:0x801F2468; // type:object size:0x4 data:float +lbl_801F2470 = .sdata2:0x801F2470; // type:object size:0x8 data:double +lbl_801F2478 = .sdata2:0x801F2478; // type:object size:0x4 data:float +lbl_801F2480 = .sdata2:0x801F2480; // type:object size:0x8 data:double +lbl_801F2488 = .sdata2:0x801F2488; // type:object size:0x8 data:float +lbl_801F2490 = .sdata2:0x801F2490; // type:object size:0x4 data:float +lbl_801F2494 = .sdata2:0x801F2494; // type:object size:0x4 data:float +lbl_801F2498 = .sdata2:0x801F2498; // type:object size:0x4 data:float +lbl_801F249C = .sdata2:0x801F249C; // type:object size:0x4 data:float +lbl_801F24A0 = .sdata2:0x801F24A0; // type:object size:0x8 data:double +lbl_801F24A8 = .sdata2:0x801F24A8; // type:object size:0x8 data:double +lbl_801F24B0 = .sdata2:0x801F24B0; // type:object size:0x8 data:double +lbl_801F24B8 = .sdata2:0x801F24B8; // type:object size:0x4 data:float +lbl_801F24C0 = .sdata2:0x801F24C0; // type:object size:0x8 data:double +lbl_801F24C8 = .sdata2:0x801F24C8; // type:object size:0x2 data:2byte +lbl_801F24CA = .sdata2:0x801F24CA; // type:object size:0x2 data:2byte +lbl_801F24CC = .sdata2:0x801F24CC; // type:object size:0x2 data:2byte +lbl_801F24CE = .sdata2:0x801F24CE; // type:object size:0x2 data:2byte +lbl_801F24D0 = .sdata2:0x801F24D0; // type:object size:0x1 data:byte +lbl_801F24D1 = .sdata2:0x801F24D1; // type:object size:0x1 data:byte +lbl_801F24D2 = .sdata2:0x801F24D2; // type:object size:0x1 data:byte +lbl_801F24D3 = .sdata2:0x801F24D3; // type:object size:0x1 data:byte +lbl_801F24D4 = .sdata2:0x801F24D4; // type:object size:0x1 data:byte +lbl_801F24D5 = .sdata2:0x801F24D5; // type:object size:0x1 data:byte +lbl_801F24D6 = .sdata2:0x801F24D6; // type:object size:0x1 data:byte +lbl_801F24D7 = .sdata2:0x801F24D7; // type:object size:0x1 data:byte +lbl_801F24D8 = .sdata2:0x801F24D8; // type:object size:0x1 data:byte +lbl_801F24D9 = .sdata2:0x801F24D9; // type:object size:0x1 data:byte +lbl_801F24DA = .sdata2:0x801F24DA; // type:object size:0x1 data:byte +lbl_801F24DB = .sdata2:0x801F24DB; // type:object size:0x1 data:byte +lbl_801F24DC = .sdata2:0x801F24DC; // type:object size:0x4 data:float +lbl_801F24E0 = .sdata2:0x801F24E0; // type:object size:0x4 data:float +lbl_801F24E4 = .sdata2:0x801F24E4; // type:object size:0x1 data:byte +lbl_801F24E5 = .sdata2:0x801F24E5; // type:object size:0x1 data:byte +lbl_801F24E6 = .sdata2:0x801F24E6; // type:object size:0x1 data:byte +lbl_801F24E7 = .sdata2:0x801F24E7; // type:object size:0x1 data:byte +lbl_801F24E8 = .sdata2:0x801F24E8; // type:object size:0x4 data:float +lbl_801F24EC = .sdata2:0x801F24EC; // type:object size:0x4 data:float +lbl_801F24F0 = .sdata2:0x801F24F0; // type:object size:0x8 data:float +lbl_801F24F8 = .sdata2:0x801F24F8; // type:object size:0x4 data:float +lbl_801F24FC = .sdata2:0x801F24FC; // type:object size:0x4 data:float +lbl_801F2500 = .sdata2:0x801F2500; // type:object size:0x8 data:float +lbl_801F2508 = .sdata2:0x801F2508; // type:object size:0x4 data:float +lbl_801F250C = .sdata2:0x801F250C; // type:object size:0x4 data:float +lbl_801F2510 = .sdata2:0x801F2510; // type:object size:0x4 data:float +lbl_801F2514 = .sdata2:0x801F2514; // type:object size:0x4 data:float +lbl_801F2518 = .sdata2:0x801F2518; // type:object size:0x4 data:float +lbl_801F251C = .sdata2:0x801F251C; // type:object size:0x4 data:float +lbl_801F2520 = .sdata2:0x801F2520; // type:object size:0x8 data:double +lbl_801F2528 = .sdata2:0x801F2528; // type:object size:0x8 data:double +lbl_801F2530 = .sdata2:0x801F2530; // type:object size:0x4 data:float +lbl_801F2534 = .sdata2:0x801F2534; // type:object size:0x4 data:float +lbl_801F2538 = .sdata2:0x801F2538; // type:object size:0x8 data:double +lbl_801F2540 = .sdata2:0x801F2540; // type:object size:0x8 data:double +lbl_801F2548 = .sdata2:0x801F2548; // type:object size:0x4 data:float +lbl_801F254C = .sdata2:0x801F254C; // type:object size:0x4 data:float +lbl_801F2550 = .sdata2:0x801F2550; // type:object size:0x4 data:float +lbl_801F2554 = .sdata2:0x801F2554; // type:object size:0x4 data:float +lbl_801F2558 = .sdata2:0x801F2558; // type:object size:0x4 data:float +lbl_801F255C = .sdata2:0x801F255C; // type:object size:0x4 data:float +lbl_801F2560 = .sdata2:0x801F2560; // type:object size:0x8 data:double +lbl_801F2568 = .sdata2:0x801F2568; // type:object size:0x4 data:float +lbl_801F256C = .sdata2:0x801F256C; // type:object size:0x4 data:float +lbl_801F2570 = .sdata2:0x801F2570; // type:object size:0x8 data:double +lbl_801F2578 = .sdata2:0x801F2578; // type:object size:0x4 data:float +lbl_801F257C = .sdata2:0x801F257C; // type:object size:0x4 data:float +lbl_801F2580 = .sdata2:0x801F2580; // type:object size:0x4 data:float +lbl_801F2584 = .sdata2:0x801F2584; // type:object size:0x4 data:float +lbl_801F2588 = .sdata2:0x801F2588; // type:object size:0x4 data:float +lbl_801F258C = .sdata2:0x801F258C; // type:object size:0x4 data:float +lbl_801F2590 = .sdata2:0x801F2590; // type:object size:0x4 data:float +lbl_801F2594 = .sdata2:0x801F2594; // type:object size:0x4 data:float +lbl_801F2598 = .sdata2:0x801F2598; // type:object size:0x4 data:float +lbl_801F259C = .sdata2:0x801F259C; // type:object size:0x4 data:float +lbl_801F25A0 = .sdata2:0x801F25A0; // type:object size:0x4 data:float +lbl_801F25A4 = .sdata2:0x801F25A4; // type:object size:0x4 data:float +lbl_801F25A8 = .sdata2:0x801F25A8; // type:object size:0x4 data:float +lbl_801F25AC = .sdata2:0x801F25AC; // type:object size:0x4 data:float +lbl_801F25B0 = .sdata2:0x801F25B0; // type:object size:0x4 data:float +lbl_801F25B4 = .sdata2:0x801F25B4; // type:object size:0x4 data:float +lbl_801F25B8 = .sdata2:0x801F25B8; // type:object size:0x4 data:float +lbl_801F25BC = .sdata2:0x801F25BC; // type:object size:0x4 data:float +lbl_801F25C0 = .sdata2:0x801F25C0; // type:object size:0x4 data:float +lbl_801F25C4 = .sdata2:0x801F25C4; // type:object size:0x4 data:float +lbl_801F25C8 = .sdata2:0x801F25C8; // type:object size:0x4 data:float +lbl_801F25CC = .sdata2:0x801F25CC; // type:object size:0x4 data:float +lbl_801F25D0 = .sdata2:0x801F25D0; // type:object size:0x4 data:float +lbl_801F25D8 = .sdata2:0x801F25D8; // type:object size:0x8 data:double +lbl_801F25E0 = .sdata2:0x801F25E0; // type:object size:0x8 data:double +lbl_801F25E8 = .sdata2:0x801F25E8; // type:object size:0x4 data:float +lbl_801F25F0 = .sdata2:0x801F25F0; // type:object size:0x8 data:double +lbl_801F25F8 = .sdata2:0x801F25F8; // type:object size:0x4 data:float +lbl_801F2600 = .sdata2:0x801F2600; // type:object size:0x8 data:double +lbl_801F2608 = .sdata2:0x801F2608; // type:object size:0x4 data:float +lbl_801F260C = .sdata2:0x801F260C; // type:object size:0x4 data:float +lbl_801F2610 = .sdata2:0x801F2610; // type:object size:0x4 data:float +lbl_801F2614 = .sdata2:0x801F2614; // type:object size:0x4 data:float +lbl_801F2618 = .sdata2:0x801F2618; // type:object size:0x8 data:double +lbl_801F2620 = .sdata2:0x801F2620; // type:object size:0x8 data:double +lbl_801F2628 = .sdata2:0x801F2628; // type:object size:0x4 data:float +lbl_801F262C = .sdata2:0x801F262C; // type:object size:0x4 data:float +lbl_801F2630 = .sdata2:0x801F2630; // type:object size:0x4 data:float +lbl_801F2634 = .sdata2:0x801F2634; // type:object size:0x4 data:float +lbl_801F2638 = .sdata2:0x801F2638; // type:object size:0x4 data:float +lbl_801F263C = .sdata2:0x801F263C; // type:object size:0x4 data:float +lbl_801F2640 = .sdata2:0x801F2640; // type:object size:0x4 data:float +lbl_801F2644 = .sdata2:0x801F2644; // type:object size:0x4 data:float +lbl_801F2648 = .sdata2:0x801F2648; // type:object size:0x4 data:float +lbl_801F264C = .sdata2:0x801F264C; // type:object size:0x4 data:float +lbl_801F2650 = .sdata2:0x801F2650; // type:object size:0x4 data:float +lbl_801F2654 = .sdata2:0x801F2654; // type:object size:0x4 data:float +lbl_801F2658 = .sdata2:0x801F2658; // type:object size:0x4 data:float +lbl_801F265C = .sdata2:0x801F265C; // type:object size:0x4 data:float +lbl_801F2660 = .sdata2:0x801F2660; // type:object size:0x4 data:4byte +lbl_801F2664 = .sdata2:0x801F2664; // type:object size:0x4 data:4byte +lbl_801F2668 = .sdata2:0x801F2668; // type:object size:0x4 data:float +lbl_801F266C = .sdata2:0x801F266C; // type:object size:0x4 data:float +lbl_801F2670 = .sdata2:0x801F2670; // type:object size:0x4 data:float +lbl_801F2674 = .sdata2:0x801F2674; // type:object size:0x4 data:float +lbl_801F2678 = .sdata2:0x801F2678; // type:object size:0x4 data:float +lbl_801F267C = .sdata2:0x801F267C; // type:object size:0x4 data:float +lbl_801F2680 = .sdata2:0x801F2680; // type:object size:0x4 data:float +lbl_801F2684 = .sdata2:0x801F2684; // type:object size:0x4 data:float +lbl_801F2688 = .sdata2:0x801F2688; // type:object size:0x4 data:float +lbl_801F268C = .sdata2:0x801F268C; // type:object size:0x2 data:2byte +lbl_801F268E = .sdata2:0x801F268E; // type:object size:0x2 data:2byte +lbl_801F2690 = .sdata2:0x801F2690; // type:object size:0x2 data:2byte +lbl_801F2692 = .sdata2:0x801F2692; // type:object size:0x2 data:2byte +lbl_801F2694 = .sdata2:0x801F2694; // type:object size:0x1 data:byte +lbl_801F2695 = .sdata2:0x801F2695; // type:object size:0x1 data:byte +lbl_801F2696 = .sdata2:0x801F2696; // type:object size:0x1 data:byte +lbl_801F2697 = .sdata2:0x801F2697; // type:object size:0x1 data:byte +lbl_801F2698 = .sdata2:0x801F2698; // type:object size:0x1 data:byte +lbl_801F2699 = .sdata2:0x801F2699; // type:object size:0x1 data:byte +lbl_801F269A = .sdata2:0x801F269A; // type:object size:0x1 data:byte +lbl_801F269B = .sdata2:0x801F269B; // type:object size:0x1 data:byte +lbl_801F269C = .sdata2:0x801F269C; // type:object size:0x4 data:float +lbl_801F26A0 = .sdata2:0x801F26A0; // type:object size:0x4 data:float +lbl_801F26A4 = .sdata2:0x801F26A4; // type:object size:0x4 data:float +lbl_801F26A8 = .sdata2:0x801F26A8; // type:object size:0x4 data:float +lbl_801F26AC = .sdata2:0x801F26AC; // type:object size:0x4 data:float +lbl_801F26B0 = .sdata2:0x801F26B0; // type:object size:0x4 data:float +lbl_801F26B8 = .sdata2:0x801F26B8; // type:object size:0x8 data:double +lbl_801F26C0 = .sdata2:0x801F26C0; // type:object size:0x4 data:float +lbl_801F26C4 = .sdata2:0x801F26C4; // type:object size:0x4 data:float +lbl_801F26C8 = .sdata2:0x801F26C8; // type:object size:0x4 data:float +lbl_801F26CC = .sdata2:0x801F26CC; // type:object size:0x4 data:float +lbl_801F26D0 = .sdata2:0x801F26D0; // type:object size:0x8 data:float +winSpeedTbl = .sdata2:0x801F26D8; // type:object size:0x4 scope:local +lbl_801F26DC = .sdata2:0x801F26DC; // type:object size:0x4 data:float +lbl_801F26E0 = .sdata2:0x801F26E0; // type:object size:0x4 data:float +lbl_801F26E4 = .sdata2:0x801F26E4; // type:object size:0x4 data:float +lbl_801F26E8 = .sdata2:0x801F26E8; // type:object size:0x8 data:double +lbl_801F26F0 = .sdata2:0x801F26F0; // type:object size:0x8 data:double +lbl_801F26F8 = .sdata2:0x801F26F8; // type:object size:0x8 data:double +lbl_801F2700 = .sdata2:0x801F2700; // type:object size:0x4 data:float +lbl_801F2704 = .sdata2:0x801F2704; // type:object size:0x4 data:float +lbl_801F2708 = .sdata2:0x801F2708; // type:object size:0x8 data:float +lbl_801F2710 = .sdata2:0x801F2710; // type:object size:0x4 data:float +lbl_801F2714 = .sdata2:0x801F2714; // type:object size:0x4 data:float +lbl_801F2718 = .sdata2:0x801F2718; // type:object size:0x4 data:float +lbl_801F2720 = .sdata2:0x801F2720; // type:object size:0x8 data:double +lbl_801F2728 = .sdata2:0x801F2728; // type:object size:0x8 data:double +lbl_801F2730 = .sdata2:0x801F2730; // type:object size:0x4 data:float +lbl_801F2734 = .sdata2:0x801F2734; // type:object size:0x4 data:float +lbl_801F2738 = .sdata2:0x801F2738; // type:object size:0x4 data:float +lbl_801F273C = .sdata2:0x801F273C; // type:object size:0x4 data:float +lbl_801F2740 = .sdata2:0x801F2740; // type:object size:0x4 data:float +lbl_801F2744 = .sdata2:0x801F2744; // type:object size:0x4 data:float +lbl_801F2748 = .sdata2:0x801F2748; // type:object size:0x4 data:float +lbl_801F274C = .sdata2:0x801F274C; // type:object size:0x4 data:float +lbl_801F2750 = .sdata2:0x801F2750; // type:object size:0x4 data:float +lbl_801F2754 = .sdata2:0x801F2754; // type:object size:0x4 data:float +lbl_801F2758 = .sdata2:0x801F2758; // type:object size:0x4 data:float +lbl_801F275C = .sdata2:0x801F275C; // type:object size:0x4 data:float +lbl_801F2760 = .sdata2:0x801F2760; // type:object size:0x4 data:float +lbl_801F2764 = .sdata2:0x801F2764; // type:object size:0x4 data:float +lbl_801F2768 = .sdata2:0x801F2768; // type:object size:0x4 data:float +lbl_801F2770 = .sdata2:0x801F2770; // type:object size:0x8 data:double +lbl_801F2778 = .sdata2:0x801F2778; // type:object size:0x4 data:float +lbl_801F277C = .sdata2:0x801F277C; // type:object size:0x4 data:float +lbl_801F2780 = .sdata2:0x801F2780; // type:object size:0x1 data:byte +lbl_801F2781 = .sdata2:0x801F2781; // type:object size:0x1 data:byte +lbl_801F2782 = .sdata2:0x801F2782; // type:object size:0x1 data:byte +lbl_801F2783 = .sdata2:0x801F2783; // type:object size:0x1 data:byte +lbl_801F2784 = .sdata2:0x801F2784; // type:object size:0x1 data:byte +lbl_801F2785 = .sdata2:0x801F2785; // type:object size:0x1 data:byte +lbl_801F2786 = .sdata2:0x801F2786; // type:object size:0x1 data:byte +lbl_801F2787 = .sdata2:0x801F2787; // type:object size:0x1 data:byte +lbl_801F2788 = .sdata2:0x801F2788; // type:object size:0x4 data:float +lbl_801F278C = .sdata2:0x801F278C; // type:object size:0x4 data:float +lbl_801F2790 = .sdata2:0x801F2790; // type:object size:0x8 data:double +lbl_801F2798 = .sdata2:0x801F2798; // type:object size:0x8 data:double +lbl_801F27A0 = .sdata2:0x801F27A0; // type:object size:0x8 data:double +lbl_801F27A8 = .sdata2:0x801F27A8; // type:object size:0x4 data:float +lbl_801F27B0 = .sdata2:0x801F27B0; // type:object size:0x8 data:double +lbl_801F27B8 = .sdata2:0x801F27B8; // type:object size:0x4 data:float +lbl_801F27BC = .sdata2:0x801F27BC; // type:object size:0x4 data:float +lbl_801F27C0 = .sdata2:0x801F27C0; // type:object size:0x4 data:float +lbl_801F27C4 = .sdata2:0x801F27C4; // type:object size:0x4 data:float +lbl_801F27C8 = .sdata2:0x801F27C8; // type:object size:0x4 data:float +lbl_801F27CC = .sdata2:0x801F27CC; // type:object size:0x4 data:float +lbl_801F27D0 = .sdata2:0x801F27D0; // type:object size:0x4 data:float +lbl_801F27D4 = .sdata2:0x801F27D4; // type:object size:0x1 data:byte +lbl_801F27D5 = .sdata2:0x801F27D5; // type:object size:0x1 data:byte +lbl_801F27D6 = .sdata2:0x801F27D6; // type:object size:0x1 data:byte +lbl_801F27D7 = .sdata2:0x801F27D7; // type:object size:0x1 data:byte +lbl_801F27D8 = .sdata2:0x801F27D8; // type:object size:0x4 data:float +lbl_801F27DC = .sdata2:0x801F27DC; // type:object size:0x4 data:float +lbl_801F27E0 = .sdata2:0x801F27E0; // type:object size:0x4 data:float +lbl_801F27E4 = .sdata2:0x801F27E4; // type:object size:0x4 data:float +lbl_801F27E8 = .sdata2:0x801F27E8; // type:object size:0x4 data:float +lbl_801F27EC = .sdata2:0x801F27EC; // type:object size:0x4 data:float +lbl_801F27F0 = .sdata2:0x801F27F0; // type:object size:0x4 data:float +lbl_801F27F4 = .sdata2:0x801F27F4; // type:object size:0x4 data:float +lbl_801F27F8 = .sdata2:0x801F27F8; // type:object size:0x4 data:float +lbl_801F27FC = .sdata2:0x801F27FC; // type:object size:0x4 data:float +lbl_801F2800 = .sdata2:0x801F2800; // type:object size:0x4 data:4byte +lbl_801F2804 = .sdata2:0x801F2804; // type:object size:0x4 data:4byte +lbl_801F2808 = .sdata2:0x801F2808; // type:object size:0x4 data:float +lbl_801F2810 = .sdata2:0x801F2810; // type:object size:0x8 data:double +lbl_801F2818 = .sdata2:0x801F2818; // type:object size:0x8 data:double +lbl_801F2820 = .sdata2:0x801F2820; // type:object size:0x4 data:float +lbl_801F2824 = .sdata2:0x801F2824; // type:object size:0x4 data:float +lbl_801F2828 = .sdata2:0x801F2828; // type:object size:0x4 data:float +lbl_801F282C = .sdata2:0x801F282C; // type:object size:0x4 data:float +lbl_801F2830 = .sdata2:0x801F2830; // type:object size:0x4 data:float +lbl_801F2834 = .sdata2:0x801F2834; // type:object size:0x4 data:float +lbl_801F2838 = .sdata2:0x801F2838; // type:object size:0x4 data:float +lbl_801F283C = .sdata2:0x801F283C; // type:object size:0x4 data:float +lbl_801F2840 = .sdata2:0x801F2840; // type:object size:0x4 data:float +lbl_801F2844 = .sdata2:0x801F2844; // type:object size:0x4 data:float +lbl_801F2848 = .sdata2:0x801F2848; // type:object size:0x4 data:float +lbl_801F284C = .sdata2:0x801F284C; // type:object size:0x4 data:float +lbl_801F2850 = .sdata2:0x801F2850; // type:object size:0x4 data:float +lbl_801F2854 = .sdata2:0x801F2854; // type:object size:0x4 data:float +lbl_801F2858 = .sdata2:0x801F2858; // type:object size:0x4 data:float +lbl_801F285C = .sdata2:0x801F285C; // type:object size:0x4 data:float +lbl_801F2860 = .sdata2:0x801F2860; // type:object size:0x4 data:float +lbl_801F2868 = .sdata2:0x801F2868; // type:object size:0x8 data:double +lbl_801F2870 = .sdata2:0x801F2870; // type:object size:0x4 data:float +lbl_801F2874 = .sdata2:0x801F2874; // type:object size:0x4 data:float +lbl_801F2878 = .sdata2:0x801F2878; // type:object size:0x4 data:float +lbl_801F287C = .sdata2:0x801F287C; // type:object size:0x4 data:float +lbl_801F2880 = .sdata2:0x801F2880; // type:object size:0x4 data:float +lbl_801F2884 = .sdata2:0x801F2884; // type:object size:0x4 data:float +lbl_801F2888 = .sdata2:0x801F2888; // type:object size:0x4 data:float +lbl_801F288C = .sdata2:0x801F288C; // type:object size:0x4 data:float +lbl_801F2890 = .sdata2:0x801F2890; // type:object size:0x4 data:float +lbl_801F2894 = .sdata2:0x801F2894; // type:object size:0x4 data:float +lbl_801F2898 = .sdata2:0x801F2898; // type:object size:0x4 data:float +lbl_801F289C = .sdata2:0x801F289C; // type:object size:0x4 data:float +lbl_801F28A0 = .sdata2:0x801F28A0; // type:object size:0x4 data:float +lbl_801F28A8 = .sdata2:0x801F28A8; // type:object size:0x8 data:double +lbl_801F28B0 = .sdata2:0x801F28B0; // type:object size:0x4 data:float +lbl_801F28B4 = .sdata2:0x801F28B4; // type:object size:0x4 data:float +lbl_801F28B8 = .sdata2:0x801F28B8; // type:object size:0x4 data:float +lbl_801F28C0 = .sdata2:0x801F28C0; // type:object size:0x8 data:double +lbl_801F28C8 = .sdata2:0x801F28C8; // type:object size:0x4 data:float +lbl_801F28CC = .sdata2:0x801F28CC; // type:object size:0x4 data:float +lbl_801F28D0 = .sdata2:0x801F28D0; // type:object size:0x8 data:float +lbl_801F28D8 = .sdata2:0x801F28D8; // type:object size:0x4 data:float +lbl_801F28DC = .sdata2:0x801F28DC; // type:object size:0x4 data:4byte +lbl_801F28E0 = .sdata2:0x801F28E0; // type:object size:0x4 data:4byte +lbl_801F28E4 = .sdata2:0x801F28E4; // type:object size:0x4 data:float +lbl_801F28E8 = .sdata2:0x801F28E8; // type:object size:0x4 data:float +lbl_801F28F0 = .sdata2:0x801F28F0; // type:object size:0x8 data:double +lbl_801F28F8 = .sdata2:0x801F28F8; // type:object size:0x8 data:double +lbl_801F2900 = .sdata2:0x801F2900; // type:object size:0x4 data:float +lbl_801F2904 = .sdata2:0x801F2904; // type:object size:0x4 data:float +lbl_801F2908 = .sdata2:0x801F2908; // type:object size:0x4 data:float +lbl_801F290C = .sdata2:0x801F290C; // type:object size:0x4 data:float +lbl_801F2910 = .sdata2:0x801F2910; // type:object size:0x8 data:double +lbl_801F2918 = .sdata2:0x801F2918; // type:object size:0x4 data:float +lbl_801F291C = .sdata2:0x801F291C; // type:object size:0x4 data:float +lbl_801F2920 = .sdata2:0x801F2920; // type:object size:0x4 data:float +lbl_801F2924 = .sdata2:0x801F2924; // type:object size:0x4 data:float +lbl_801F2928 = .sdata2:0x801F2928; // type:object size:0x4 data:float +lbl_801F292C = .sdata2:0x801F292C; // type:object size:0x4 data:float +lbl_801F2930 = .sdata2:0x801F2930; // type:object size:0x4 data:float +lbl_801F2934 = .sdata2:0x801F2934; // type:object size:0x4 data:float +lbl_801F2938 = .sdata2:0x801F2938; // type:object size:0x4 data:float +lbl_801F293C = .sdata2:0x801F293C; // type:object size:0x4 data:float +lbl_801F2940 = .sdata2:0x801F2940; // type:object size:0x4 data:float +lbl_801F2944 = .sdata2:0x801F2944; // type:object size:0x4 data:float +lbl_801F2948 = .sdata2:0x801F2948; // type:object size:0x4 data:float +lbl_801F294C = .sdata2:0x801F294C; // type:object size:0x4 data:4byte +lbl_801F2950 = .sdata2:0x801F2950; // type:object size:0x4 data:4byte +lbl_801F2954 = .sdata2:0x801F2954; // type:object size:0x2 data:2byte +lbl_801F2956 = .sdata2:0x801F2956; // type:object size:0x2 data:2byte +lbl_801F2958 = .sdata2:0x801F2958; // type:object size:0x2 data:2byte +lbl_801F295A = .sdata2:0x801F295A; // type:object size:0x2 data:2byte +lbl_801F295C = .sdata2:0x801F295C; // type:object size:0x4 data:float +lbl_801F2960 = .sdata2:0x801F2960; // type:object size:0x4 data:float +lbl_801F2964 = .sdata2:0x801F2964; // type:object size:0x4 data:float +lbl_801F2968 = .sdata2:0x801F2968; // type:object size:0x4 data:float +lbl_801F296C = .sdata2:0x801F296C; // type:object size:0x4 data:float +lbl_801F2970 = .sdata2:0x801F2970; // type:object size:0x4 data:float +lbl_801F2974 = .sdata2:0x801F2974; // type:object size:0x4 data:float +lbl_801F2978 = .sdata2:0x801F2978; // type:object size:0x4 data:float +lbl_801F297C = .sdata2:0x801F297C; // type:object size:0x4 data:float +lbl_801F2980 = .sdata2:0x801F2980; // type:object size:0x4 data:float +lbl_801F2984 = .sdata2:0x801F2984; // type:object size:0x4 data:float +lbl_801F2988 = .sdata2:0x801F2988; // type:object size:0x4 data:float +lbl_801F298C = .sdata2:0x801F298C; // type:object size:0x4 data:float +lbl_801F2990 = .sdata2:0x801F2990; // type:object size:0x4 data:float +lbl_801F2994 = .sdata2:0x801F2994; // type:object size:0x4 data:float +lbl_801F2998 = .sdata2:0x801F2998; // type:object size:0x4 data:float +lbl_801F299C = .sdata2:0x801F299C; // type:object size:0x4 data:float +lbl_801F29A0 = .sdata2:0x801F29A0; // type:object size:0x4 data:float +lbl_801F29A4 = .sdata2:0x801F29A4; // type:object size:0x4 data:float +lbl_801F29A8 = .sdata2:0x801F29A8; // type:object size:0x4 data:float +lbl_801F29AC = .sdata2:0x801F29AC; // type:object size:0x4 data:float +lbl_801F29B0 = .sdata2:0x801F29B0; // type:object size:0x4 data:float +lbl_801F29B4 = .sdata2:0x801F29B4; // type:object size:0x4 data:float +lbl_801F29B8 = .sdata2:0x801F29B8; // type:object size:0x4 data:float +lbl_801F29BC = .sdata2:0x801F29BC; // type:object size:0x4 data:float +lbl_801F29C0 = .sdata2:0x801F29C0; // type:object size:0x4 data:float +lbl_801F29C4 = .sdata2:0x801F29C4; // type:object size:0x4 data:float +lbl_801F29C8 = .sdata2:0x801F29C8; // type:object size:0x4 data:float +lbl_801F29CC = .sdata2:0x801F29CC; // type:object size:0x4 data:float +lbl_801F29D0 = .sdata2:0x801F29D0; // type:object size:0x4 data:float +lbl_801F29D4 = .sdata2:0x801F29D4; // type:object size:0x4 data:float +lbl_801F29D8 = .sdata2:0x801F29D8; // type:object size:0x4 data:float +lbl_801F29DC = .sdata2:0x801F29DC; // type:object size:0x4 data:float +lbl_801F29E0 = .sdata2:0x801F29E0; // type:object size:0x4 data:float +lbl_801F29E4 = .sdata2:0x801F29E4; // type:object size:0x4 data:float +lbl_801F29E8 = .sdata2:0x801F29E8; // type:object size:0x4 data:float +lbl_801F29EC = .sdata2:0x801F29EC; // type:object size:0x4 data:float +lbl_801F29F0 = .sdata2:0x801F29F0; // type:object size:0x8 data:double +lbl_801F29F8 = .sdata2:0x801F29F8; // type:object size:0x8 data:double +lbl_801F2A00 = .sdata2:0x801F2A00; // type:object size:0x4 data:float +lbl_801F2A04 = .sdata2:0x801F2A04; // type:object size:0x4 data:float +lbl_801F2A08 = .sdata2:0x801F2A08; // type:object size:0x4 data:float +lbl_801F2A0C = .sdata2:0x801F2A0C; // type:object size:0x4 data:float +lbl_801F2A10 = .sdata2:0x801F2A10; // type:object size:0x4 data:float +lbl_801F2A14 = .sdata2:0x801F2A14; // type:object size:0x4 data:float +lbl_801F2A18 = .sdata2:0x801F2A18; // type:object size:0x4 data:float +lbl_801F2A1C = .sdata2:0x801F2A1C; // type:object size:0x4 data:float +lbl_801F2A20 = .sdata2:0x801F2A20; // type:object size:0x4 data:float +lbl_801F2A24 = .sdata2:0x801F2A24; // type:object size:0x4 data:float +lbl_801F2A28 = .sdata2:0x801F2A28; // type:object size:0x4 data:float +lbl_801F2A2C = .sdata2:0x801F2A2C; // type:object size:0x4 data:float +lbl_801F2A30 = .sdata2:0x801F2A30; // type:object size:0x8 data:double +lbl_801F2A38 = .sdata2:0x801F2A38; // type:object size:0x4 data:4byte +lbl_801F2A3C = .sdata2:0x801F2A3C; // type:object size:0x4 data:4byte +lbl_801F2A40 = .sdata2:0x801F2A40; // type:object size:0x1 data:byte +lbl_801F2A41 = .sdata2:0x801F2A41; // type:object size:0x1 data:byte +lbl_801F2A44 = .sdata2:0x801F2A44; // type:object size:0x4 data:float +lbl_801F2A48 = .sdata2:0x801F2A48; // type:object size:0x4 data:float +lbl_801F2A4C = .sdata2:0x801F2A4C; // type:object size:0x4 data:float +lbl_801F2A50 = .sdata2:0x801F2A50; // type:object size:0x4 data:float +lbl_801F2A54 = .sdata2:0x801F2A54; // type:object size:0x4 data:float +lbl_801F2A58 = .sdata2:0x801F2A58; // type:object size:0x4 data:float +lbl_801F2A5C = .sdata2:0x801F2A5C; // type:object size:0x4 data:float +lbl_801F2A60 = .sdata2:0x801F2A60; // type:object size:0x8 data:float +lbl_801F2A68 = .sdata2:0x801F2A68; // type:object size:0x4 data:float +lbl_801F2A6C = .sdata2:0x801F2A6C; // type:object size:0x4 data:float +lbl_801F2A70 = .sdata2:0x801F2A70; // type:object size:0x4 data:float +lbl_801F2A74 = .sdata2:0x801F2A74; // type:object size:0x4 data:float +coinSignMdl = .sdata2:0x801F2A78; // type:object size:0x8 scope:local +lbl_801F2A80 = .sdata2:0x801F2A80; // type:object size:0x4 data:float +lbl_801F2A84 = .sdata2:0x801F2A84; // type:object size:0x4 data:float +lbl_801F2A88 = .sdata2:0x801F2A88; // type:object size:0x4 data:float +lbl_801F2A90 = .sdata2:0x801F2A90; // type:object size:0x8 data:double +lbl_801F2A98 = .sdata2:0x801F2A98; // type:object size:0x8 data:double +lbl_801F2AA0 = .sdata2:0x801F2AA0; // type:object size:0x4 data:float +lbl_801F2AA4 = .sdata2:0x801F2AA4; // type:object size:0x4 data:float +lbl_801F2AA8 = .sdata2:0x801F2AA8; // type:object size:0x4 data:float +lbl_801F2AB0 = .sdata2:0x801F2AB0; // type:object size:0x8 data:double +lbl_801F2AB8 = .sdata2:0x801F2AB8; // type:object size:0x4 data:float +lbl_801F2ABC = .sdata2:0x801F2ABC; // type:object size:0x4 data:float +lbl_801F2AC0 = .sdata2:0x801F2AC0; // type:object size:0x4 data:float +lbl_801F2AC4 = .sdata2:0x801F2AC4; // type:object size:0x4 data:float +lbl_801F2AC8 = .sdata2:0x801F2AC8; // type:object size:0x4 data:float +lbl_801F2ACC = .sdata2:0x801F2ACC; // type:object size:0x4 data:float +lbl_801F2AD0 = .sdata2:0x801F2AD0; // type:object size:0x4 data:float +lbl_801F2AD4 = .sdata2:0x801F2AD4; // type:object size:0x4 data:float +lbl_801F2AD8 = .sdata2:0x801F2AD8; // type:object size:0x8 data:double +lbl_801F2AE0 = .sdata2:0x801F2AE0; // type:object size:0x8 data:double +lbl_801F2AE8 = .sdata2:0x801F2AE8; // type:object size:0x4 data:float +lbl_801F2AF0 = .sdata2:0x801F2AF0; // type:object size:0x8 data:double +lbl_801F2AF8 = .sdata2:0x801F2AF8; // type:object size:0x4 data:float +lbl_801F2AFC = .sdata2:0x801F2AFC; // type:object size:0x4 data:float +lbl_801F2B00 = .sdata2:0x801F2B00; // type:object size:0x4 data:float +lbl_801F2B04 = .sdata2:0x801F2B04; // type:object size:0x4 data:float +lbl_801F2B08 = .sdata2:0x801F2B08; // type:object size:0x4 data:float +lbl_801F2B0C = .sdata2:0x801F2B0C; // type:object size:0x4 data:float +lbl_801F2B10 = .sdata2:0x801F2B10; // type:object size:0x4 data:float +lbl_801F2B14 = .sdata2:0x801F2B14; // type:object size:0x4 data:float +lbl_801F2B18 = .sdata2:0x801F2B18; // type:object size:0x4 data:float +lbl_801F2B1C = .sdata2:0x801F2B1C; // type:object size:0x4 data:float +lbl_801F2B20 = .sdata2:0x801F2B20; // type:object size:0x4 data:float +lbl_801F2B24 = .sdata2:0x801F2B24; // type:object size:0x4 data:float +lbl_801F2B28 = .sdata2:0x801F2B28; // type:object size:0x4 data:float +lbl_801F2B30 = .sdata2:0x801F2B30; // type:object size:0x8 data:double +lbl_801F2B38 = .sdata2:0x801F2B38; // type:object size:0x8 data:double +lbl_801F2B40 = .sdata2:0x801F2B40; // type:object size:0x8 data:float +lbl_801F2B48 = .sdata2:0x801F2B48; // type:object size:0x4 data:float +lbl_801F2B4C = .sdata2:0x801F2B4C; // type:object size:0x4 data:float +lbl_801F2B50 = .sdata2:0x801F2B50; // type:object size:0x4 data:float +lbl_801F2B54 = .sdata2:0x801F2B54; // type:object size:0x4 data:float +lbl_801F2B58 = .sdata2:0x801F2B58; // type:object size:0x4 data:float +lbl_801F2B5C = .sdata2:0x801F2B5C; // type:object size:0x4 data:float +lbl_801F2B60 = .sdata2:0x801F2B60; // type:object size:0x4 data:float +lbl_801F2B64 = .sdata2:0x801F2B64; // type:object size:0x4 data:float +lbl_801F2B68 = .sdata2:0x801F2B68; // type:object size:0x4 data:float +lbl_801F2B6C = .sdata2:0x801F2B6C; // type:object size:0x4 data:float +lbl_801F2B70 = .sdata2:0x801F2B70; // type:object size:0x4 data:float +lbl_801F2B74 = .sdata2:0x801F2B74; // type:object size:0x4 data:float +lbl_801F2B78 = .sdata2:0x801F2B78; // type:object size:0x4 data:float +lbl_801F2B7C = .sdata2:0x801F2B7C; // type:object size:0x4 data:float +lbl_801F2B80 = .sdata2:0x801F2B80; // type:object size:0x4 data:float +lbl_801F2B84 = .sdata2:0x801F2B84; // type:object size:0x4 data:float +lbl_801F2B88 = .sdata2:0x801F2B88; // type:object size:0x8 data:double +lbl_801F2B90 = .sdata2:0x801F2B90; // type:object size:0x4 data:float +lbl_801F2B94 = .sdata2:0x801F2B94; // type:object size:0x4 data:float +lbl_801F2B98 = .sdata2:0x801F2B98; // type:object size:0x4 data:float +lbl_801F2B9C = .sdata2:0x801F2B9C; // type:object size:0x4 data:float +lbl_801F2BA0 = .sdata2:0x801F2BA0; // type:object size:0x4 data:float +lbl_801F2BA4 = .sdata2:0x801F2BA4; // type:object size:0x4 data:float +lbl_801F2BA8 = .sdata2:0x801F2BA8; // type:object size:0x4 data:float +lbl_801F2BAC = .sdata2:0x801F2BAC; // type:object size:0x4 data:float +lbl_801F2BB0 = .sdata2:0x801F2BB0; // type:object size:0x8 data:double +lbl_801F2BB8 = .sdata2:0x801F2BB8; // type:object size:0x8 data:double +lbl_801F2BC0 = .sdata2:0x801F2BC0; // type:object size:0x4 data:float +lbl_801F2BC8 = .sdata2:0x801F2BC8; // type:object size:0x8 data:double +lbl_801F2BD0 = .sdata2:0x801F2BD0; // type:object size:0x8 data:float +boxOfs = .sdata2:0x801F2BD8; // type:object size:0x8 scope:local +lbl_801F2BE0 = .sdata2:0x801F2BE0; // type:object size:0x4 data:float +lbl_801F2BE4 = .sdata2:0x801F2BE4; // type:object size:0x4 data:float +lbl_801F2BE8 = .sdata2:0x801F2BE8; // type:object size:0x4 data:float +lbl_801F2BEC = .sdata2:0x801F2BEC; // type:object size:0x4 data:float +lbl_801F2BF0 = .sdata2:0x801F2BF0; // type:object size:0x4 data:float +lbl_801F2BF4 = .sdata2:0x801F2BF4; // type:object size:0x4 data:float +lbl_801F2BF8 = .sdata2:0x801F2BF8; // type:object size:0x8 data:double +lbl_801F2C00 = .sdata2:0x801F2C00; // type:object size:0x8 data:double +lbl_801F2C08 = .sdata2:0x801F2C08; // type:object size:0x8 data:double +lbl_801F2C10 = .sdata2:0x801F2C10; // type:object size:0x4 data:float +lbl_801F2C14 = .sdata2:0x801F2C14; // type:object size:0x4 data:float +lbl_801F2C18 = .sdata2:0x801F2C18; // type:object size:0x4 data:float +lbl_801F2C1C = .sdata2:0x801F2C1C; // type:object size:0x4 data:4byte +lbl_801F2C20 = .sdata2:0x801F2C20; // type:object size:0x4 data:4byte +lbl_801F2C24 = .sdata2:0x801F2C24; // type:object size:0x4 data:float +lbl_801F2C28 = .sdata2:0x801F2C28; // type:object size:0x4 data:float +lbl_801F2C2C = .sdata2:0x801F2C2C; // type:object size:0x4 data:float +lbl_801F2C30 = .sdata2:0x801F2C30; // type:object size:0x4 data:float +lbl_801F2C34 = .sdata2:0x801F2C34; // type:object size:0x4 data:4byte +lbl_801F2C38 = .sdata2:0x801F2C38; // type:object size:0x4 data:4byte +lbl_801F2C3C = .sdata2:0x801F2C3C; // type:object size:0x4 data:float +lbl_801F2C40 = .sdata2:0x801F2C40; // type:object size:0x4 data:float +lbl_801F2C44 = .sdata2:0x801F2C44; // type:object size:0x4 data:float +lbl_801F2C48 = .sdata2:0x801F2C48; // type:object size:0x4 data:float +lbl_801F2C4C = .sdata2:0x801F2C4C; // type:object size:0x4 data:float +lbl_801F2C50 = .sdata2:0x801F2C50; // type:object size:0x8 data:double +lbl_801F2C58 = .sdata2:0x801F2C58; // type:object size:0x4 data:float +lbl_801F2C60 = .sdata2:0x801F2C60; // type:object size:0x8 data:double +lbl_801F2C68 = .sdata2:0x801F2C68; // type:object size:0x8 data:double +lbl_801F2C70 = .sdata2:0x801F2C70; // type:object size:0x8 data:double +lbl_801F2C78 = .sdata2:0x801F2C78; // type:object size:0x4 data:float +lbl_801F2C7C = .sdata2:0x801F2C7C; // type:object size:0x4 data:float +lbl_801F2C80 = .sdata2:0x801F2C80; // type:object size:0x4 data:float +lbl_801F2C84 = .sdata2:0x801F2C84; // type:object size:0x4 data:float +lbl_801F2C88 = .sdata2:0x801F2C88; // type:object size:0x4 data:float +lbl_801F2C8C = .sdata2:0x801F2C8C; // type:object size:0x4 data:float +lbl_801F2C90 = .sdata2:0x801F2C90; // type:object size:0x4 data:float +lbl_801F2C94 = .sdata2:0x801F2C94; // type:object size:0x4 data:float +lbl_801F2C98 = .sdata2:0x801F2C98; // type:object size:0x4 data:float +lbl_801F2C9C = .sdata2:0x801F2C9C; // type:object size:0x4 data:float +lbl_801F2CA0 = .sdata2:0x801F2CA0; // type:object size:0x4 data:float +lbl_801F2CA8 = .sdata2:0x801F2CA8; // type:object size:0x8 data:double +lbl_801F2CB0 = .sdata2:0x801F2CB0; // type:object size:0x4 data:float +lbl_801F2CB4 = .sdata2:0x801F2CB4; // type:object size:0x4 data:float +lbl_801F2CB8 = .sdata2:0x801F2CB8; // type:object size:0x4 data:float +lbl_801F2CBC = .sdata2:0x801F2CBC; // type:object size:0x4 data:float +lbl_801F2CC0 = .sdata2:0x801F2CC0; // type:object size:0x4 data:float +lbl_801F2CC4 = .sdata2:0x801F2CC4; // type:object size:0x4 data:float +lbl_801F2CC8 = .sdata2:0x801F2CC8; // type:object size:0x4 data:float +lbl_801F2CCC = .sdata2:0x801F2CCC; // type:object size:0x4 data:float +lbl_801F2CD0 = .sdata2:0x801F2CD0; // type:object size:0x4 data:float +lbl_801F2CD4 = .sdata2:0x801F2CD4; // type:object size:0x4 data:float +lbl_801F2CD8 = .sdata2:0x801F2CD8; // type:object size:0x4 data:float +lbl_801F2CDC = .sdata2:0x801F2CDC; // type:object size:0x4 data:float +lbl_801F2CE0 = .sdata2:0x801F2CE0; // type:object size:0x4 data:float +lbl_801F2CE4 = .sdata2:0x801F2CE4; // type:object size:0x4 data:float +lbl_801F2CE8 = .sdata2:0x801F2CE8; // type:object size:0x4 data:float +lbl_801F2CEC = .sdata2:0x801F2CEC; // type:object size:0x4 data:float +lbl_801F2CF0 = .sdata2:0x801F2CF0; // type:object size:0x4 data:float +lbl_801F2CF4 = .sdata2:0x801F2CF4; // type:object size:0x4 data:float +lbl_801F2CF8 = .sdata2:0x801F2CF8; // type:object size:0x8 data:float +lbl_801F2D00 = .sdata2:0x801F2D00; // type:object size:0x4 data:float +lbl_801F2D04 = .sdata2:0x801F2D04; // type:object size:0x4 data:float +lbl_801F2D08 = .sdata2:0x801F2D08; // type:object size:0x4 data:float +lbl_801F2D0C = .sdata2:0x801F2D0C; // type:object size:0x4 data:float +lbl_801F2D10 = .sdata2:0x801F2D10; // type:object size:0x4 data:float +lbl_801F2D14 = .sdata2:0x801F2D14; // type:object size:0x4 data:float +lbl_801F2D18 = .sdata2:0x801F2D18; // type:object size:0x4 data:float +lbl_801F2D1C = .sdata2:0x801F2D1C; // type:object size:0x4 data:float +lbl_801F2D20 = .sdata2:0x801F2D20; // type:object size:0x4 data:float +lbl_801F2D24 = .sdata2:0x801F2D24; // type:object size:0x4 data:float +lbl_801F2D28 = .sdata2:0x801F2D28; // type:object size:0x4 data:float +lbl_801F2D2C = .sdata2:0x801F2D2C; // type:object size:0x4 data:float +lbl_801F2D30 = .sdata2:0x801F2D30; // type:object size:0x4 data:float +lbl_801F2D34 = .sdata2:0x801F2D34; // type:object size:0x4 data:float +lbl_801F2D38 = .sdata2:0x801F2D38; // type:object size:0x8 data:double +lbl_801F2D40 = .sdata2:0x801F2D40; // type:object size:0x8 data:double +lbl_801F2D48 = .sdata2:0x801F2D48; // type:object size:0x4 data:float +lbl_801F2D50 = .sdata2:0x801F2D50; // type:object size:0x8 data:double +lbl_801F2D58 = .sdata2:0x801F2D58; // type:object size:0x8 data:double +lbl_801F2D60 = .sdata2:0x801F2D60; // type:object size:0x8 data:double +lbl_801F2D68 = .sdata2:0x801F2D68; // type:object size:0x4 data:float +lbl_801F2D70 = .sdata2:0x801F2D70; // type:object size:0x8 data:double +lbl_801F2D78 = .sdata2:0x801F2D78; // type:object size:0x4 data:float +lbl_801F2D7C = .sdata2:0x801F2D7C; // type:object size:0x4 data:float +lbl_801F2D80 = .sdata2:0x801F2D80; // type:object size:0x4 data:float +lbl_801F2D84 = .sdata2:0x801F2D84; // type:object size:0x4 data:float +lbl_801F2D88 = .sdata2:0x801F2D88; // type:object size:0x4 data:float +lbl_801F2D8C = .sdata2:0x801F2D8C; // type:object size:0x4 data:float +lbl_801F2D90 = .sdata2:0x801F2D90; // type:object size:0x4 data:float +lbl_801F2D94 = .sdata2:0x801F2D94; // type:object size:0x4 data:float +lbl_801F2D98 = .sdata2:0x801F2D98; // type:object size:0x4 data:float +lbl_801F2D9C = .sdata2:0x801F2D9C; // type:object size:0x4 data:float +lbl_801F2DA0 = .sdata2:0x801F2DA0; // type:object size:0x4 data:float +lbl_801F2DA4 = .sdata2:0x801F2DA4; // type:object size:0x4 data:float +lbl_801F2DA8 = .sdata2:0x801F2DA8; // type:object size:0x8 data:float +lbl_801F2DB0 = .sdata2:0x801F2DB0; // type:object size:0x4 data:float +lbl_801F2DB4 = .sdata2:0x801F2DB4; // type:object size:0x4 data:float +lbl_801F2DB8 = .sdata2:0x801F2DB8; // type:object size:0x4 data:float +lbl_801F2DBC = .sdata2:0x801F2DBC; // type:object size:0x4 data:float +lbl_801F2DC0 = .sdata2:0x801F2DC0; // type:object size:0x4 data:float +lbl_801F2DC4 = .sdata2:0x801F2DC4; // type:object size:0x4 data:float +lbl_801F2DC8 = .sdata2:0x801F2DC8; // type:object size:0x4 data:float +lbl_801F2DCC = .sdata2:0x801F2DCC; // type:object size:0x4 data:float +lbl_801F2DD0 = .sdata2:0x801F2DD0; // type:object size:0x4 data:float +lbl_801F2DD8 = .sdata2:0x801F2DD8; // type:object size:0x8 data:double +lbl_801F2DE0 = .sdata2:0x801F2DE0; // type:object size:0x8 data:double +lbl_801F2DE8 = .sdata2:0x801F2DE8; // type:object size:0x8 data:double +lbl_801F2DF0 = .sdata2:0x801F2DF0; // type:object size:0x4 data:float +lbl_801F2DF4 = .sdata2:0x801F2DF4; // type:object size:0x4 data:float +lbl_801F2DF8 = .sdata2:0x801F2DF8; // type:object size:0x4 data:float +lbl_801F2DFC = .sdata2:0x801F2DFC; // type:object size:0x4 data:float +lbl_801F2E00 = .sdata2:0x801F2E00; // type:object size:0x8 data:double +lbl_801F2E08 = .sdata2:0x801F2E08; // type:object size:0x8 data:double +lbl_801F2E10 = .sdata2:0x801F2E10; // type:object size:0x4 data:float +lbl_801F2E14 = .sdata2:0x801F2E14; // type:object size:0x4 data:float +lbl_801F2E18 = .sdata2:0x801F2E18; // type:object size:0x4 data:float +lbl_801F2E1C = .sdata2:0x801F2E1C; // type:object size:0x4 data:float +lbl_801F2E20 = .sdata2:0x801F2E20; // type:object size:0x4 data:float +lbl_801F2E24 = .sdata2:0x801F2E24; // type:object size:0x4 data:float +lbl_801F2E28 = .sdata2:0x801F2E28; // type:object size:0x4 data:float +lbl_801F2E30 = .sdata2:0x801F2E30; // type:object size:0x8 data:double +lbl_801F2E38 = .sdata2:0x801F2E38; // type:object size:0x4 data:float +lbl_801F2E3C = .sdata2:0x801F2E3C; // type:object size:0x4 data:float +lbl_801F2E40 = .sdata2:0x801F2E40; // type:object size:0x4 data:float +lbl_801F2E44 = .sdata2:0x801F2E44; // type:object size:0x4 data:float +lbl_801F2E48 = .sdata2:0x801F2E48; // type:object size:0x4 data:float +lbl_801F2E4C = .sdata2:0x801F2E4C; // type:object size:0x4 data:float +lbl_801F2E50 = .sdata2:0x801F2E50; // type:object size:0x4 data:float +lbl_801F2E54 = .sdata2:0x801F2E54; // type:object size:0x4 data:float +lbl_801F2E58 = .sdata2:0x801F2E58; // type:object size:0x4 data:float +lbl_801F2E5C = .sdata2:0x801F2E5C; // type:object size:0x4 data:float +lbl_801F2E60 = .sdata2:0x801F2E60; // type:object size:0x4 data:float +lbl_801F2E64 = .sdata2:0x801F2E64; // type:object size:0x4 data:float +lbl_801F2E68 = .sdata2:0x801F2E68; // type:object size:0x4 data:float +lbl_801F2E6C = .sdata2:0x801F2E6C; // type:object size:0x4 data:float +lbl_801F2E70 = .sdata2:0x801F2E70; // type:object size:0x4 data:float +lbl_801F2E74 = .sdata2:0x801F2E74; // type:object size:0x4 data:float +lbl_801F2E78 = .sdata2:0x801F2E78; // type:object size:0x4 data:float +lbl_801F2E7C = .sdata2:0x801F2E7C; // type:object size:0x4 data:float +lbl_801F2E80 = .sdata2:0x801F2E80; // type:object size:0x4 data:float +lbl_801F2E84 = .sdata2:0x801F2E84; // type:object size:0x4 data:float +lbl_801F2E88 = .sdata2:0x801F2E88; // type:object size:0x4 data:float +lbl_801F2E8C = .sdata2:0x801F2E8C; // type:object size:0x4 data:float +lbl_801F2E90 = .sdata2:0x801F2E90; // type:object size:0x4 data:float +lbl_801F2E94 = .sdata2:0x801F2E94; // type:object size:0x4 data:float +lbl_801F2E98 = .sdata2:0x801F2E98; // type:object size:0x4 data:float +lbl_801F2E9C = .sdata2:0x801F2E9C; // type:object size:0x4 data:float +lbl_801F2EA0 = .sdata2:0x801F2EA0; // type:object size:0x8 data:double +lbl_801F2EA8 = .sdata2:0x801F2EA8; // type:object size:0x8 data:double +lbl_801F2EB0 = .sdata2:0x801F2EB0; // type:object size:0x8 data:double +lbl_801F2EB8 = .sdata2:0x801F2EB8; // type:object size:0x4 data:float +lbl_801F2EBC = .sdata2:0x801F2EBC; // type:object size:0x4 data:float +lbl_801F2EC0 = .sdata2:0x801F2EC0; // type:object size:0x4 data:float +lbl_801F2EC4 = .sdata2:0x801F2EC4; // type:object size:0x4 data:float +lbl_801F2EC8 = .sdata2:0x801F2EC8; // type:object size:0x4 data:float +lbl_801F2ECC = .sdata2:0x801F2ECC; // type:object size:0x4 data:float +lbl_801F2ED0 = .sdata2:0x801F2ED0; // type:object size:0x4 data:float +lbl_801F2ED8 = .sdata2:0x801F2ED8; // type:object size:0x8 data:double +lbl_801F2EE0 = .sdata2:0x801F2EE0; // type:object size:0x8 data:double +lbl_801F2EE8 = .sdata2:0x801F2EE8; // type:object size:0x8 data:double +lbl_801F2EF0 = .sdata2:0x801F2EF0; // type:object size:0x4 data:float +lbl_801F2EF4 = .sdata2:0x801F2EF4; // type:object size:0x4 data:float +lbl_801F2EF8 = .sdata2:0x801F2EF8; // type:object size:0x4 data:float +lbl_801F2EFC = .sdata2:0x801F2EFC; // type:object size:0x4 data:float +lbl_801F2F00 = .sdata2:0x801F2F00; // type:object size:0x4 data:float +lbl_801F2F04 = .sdata2:0x801F2F04; // type:object size:0x4 data:float +lbl_801F2F08 = .sdata2:0x801F2F08; // type:object size:0x4 data:float +lbl_801F2F0C = .sdata2:0x801F2F0C; // type:object size:0x4 data:float +lbl_801F2F10 = .sdata2:0x801F2F10; // type:object size:0x4 data:float +lbl_801F2F14 = .sdata2:0x801F2F14; // type:object size:0x4 data:float +lbl_801F2F18 = .sdata2:0x801F2F18; // type:object size:0x8 data:double +lbl_801F2F20 = .sdata2:0x801F2F20; // type:object size:0x4 data:float +lbl_801F2F24 = .sdata2:0x801F2F24; // type:object size:0x4 data:float +lbl_801F2F28 = .sdata2:0x801F2F28; // type:object size:0x4 data:float +lbl_801F2F2C = .sdata2:0x801F2F2C; // type:object size:0x4 data:float +lbl_801F2F30 = .sdata2:0x801F2F30; // type:object size:0x4 data:float +lbl_801F2F34 = .sdata2:0x801F2F34; // type:object size:0x4 data:float +lbl_801F2F38 = .sdata2:0x801F2F38; // type:object size:0x4 data:float +lbl_801F2F3C = .sdata2:0x801F2F3C; // type:object size:0x4 data:float +lbl_801F2F40 = .sdata2:0x801F2F40; // type:object size:0x4 data:float +lbl_801F2F44 = .sdata2:0x801F2F44; // type:object size:0x4 data:float +lbl_801F2F48 = .sdata2:0x801F2F48; // type:object size:0x4 data:float +lbl_801F2F4C = .sdata2:0x801F2F4C; // type:object size:0x4 data:float +lbl_801F2F50 = .sdata2:0x801F2F50; // type:object size:0x4 data:float +lbl_801F2F54 = .sdata2:0x801F2F54; // type:object size:0x4 data:float +lbl_801F2F58 = .sdata2:0x801F2F58; // type:object size:0x4 data:float +lbl_801F2F5C = .sdata2:0x801F2F5C; // type:object size:0x4 data:float +lbl_801F2F60 = .sdata2:0x801F2F60; // type:object size:0x4 data:float +lbl_801F2F64 = .sdata2:0x801F2F64; // type:object size:0x4 data:float +lbl_801F2F68 = .sdata2:0x801F2F68; // type:object size:0x4 data:float +lbl_801F2F6C = .sdata2:0x801F2F6C; // type:object size:0x4 data:float +lbl_801F2F70 = .sdata2:0x801F2F70; // type:object size:0x4 data:float +lbl_801F2F74 = .sdata2:0x801F2F74; // type:object size:0x4 data:float +lbl_801F2F78 = .sdata2:0x801F2F78; // type:object size:0x4 data:float +lbl_801F2F7C = .sdata2:0x801F2F7C; // type:object size:0x4 data:float +lbl_801F2F80 = .sdata2:0x801F2F80; // type:object size:0x8 data:double +lbl_801F2F88 = .sdata2:0x801F2F88; // type:object size:0x8 data:double +lbl_801F2F90 = .sdata2:0x801F2F90; // type:object size:0x4 data:float +lbl_801F2F94 = .sdata2:0x801F2F94; // type:object size:0x4 data:float +lbl_801F2F98 = .sdata2:0x801F2F98; // type:object size:0x4 data:float +lbl_801F2F9C = .sdata2:0x801F2F9C; // type:object size:0x4 data:float +lbl_801F2FA0 = .sdata2:0x801F2FA0; // type:object size:0x4 data:float +lbl_801F2FA8 = .sdata2:0x801F2FA8; // type:object size:0x8 data:double +lbl_801F2FB0 = .sdata2:0x801F2FB0; // type:object size:0x4 data:float +lbl_801F2FB4 = .sdata2:0x801F2FB4; // type:object size:0x4 data:float +lbl_801F2FB8 = .sdata2:0x801F2FB8; // type:object size:0x4 data:float +lbl_801F2FBC = .sdata2:0x801F2FBC; // type:object size:0x4 data:float +lbl_801F2FC0 = .sdata2:0x801F2FC0; // type:object size:0x4 data:float +lbl_801F2FC4 = .sdata2:0x801F2FC4; // type:object size:0x4 data:float +lbl_801F2FC8 = .sdata2:0x801F2FC8; // type:object size:0x4 data:float +lbl_801F2FCC = .sdata2:0x801F2FCC; // type:object size:0x4 data:float +lbl_801F2FD0 = .sdata2:0x801F2FD0; // type:object size:0x4 data:float +lbl_801F2FD4 = .sdata2:0x801F2FD4; // type:object size:0x4 data:float +lbl_801F2FD8 = .sdata2:0x801F2FD8; // type:object size:0x4 data:float +lbl_801F2FE0 = .sdata2:0x801F2FE0; // type:object size:0x8 data:double +lbl_801F2FE8 = .sdata2:0x801F2FE8; // type:object size:0x4 data:float +lbl_801F2FEC = .sdata2:0x801F2FEC; // type:object size:0x4 data:float +lbl_801F2FF0 = .sdata2:0x801F2FF0; // type:object size:0x4 data:float +lbl_801F2FF4 = .sdata2:0x801F2FF4; // type:object size:0x4 data:float +lbl_801F2FF8 = .sdata2:0x801F2FF8; // type:object size:0x4 data:float +lbl_801F2FFC = .sdata2:0x801F2FFC; // type:object size:0x4 data:float +lbl_801F3000 = .sdata2:0x801F3000; // type:object size:0x4 data:float +lbl_801F3004 = .sdata2:0x801F3004; // type:object size:0x4 data:float +lbl_801F3008 = .sdata2:0x801F3008; // type:object size:0x4 data:float +lbl_801F300C = .sdata2:0x801F300C; // type:object size:0x4 data:float +lbl_801F3010 = .sdata2:0x801F3010; // type:object size:0x4 data:float +lbl_801F3014 = .sdata2:0x801F3014; // type:object size:0x4 data:float +lbl_801F3018 = .sdata2:0x801F3018; // type:object size:0x4 data:float +lbl_801F301C = .sdata2:0x801F301C; // type:object size:0x4 data:float +lbl_801F3020 = .sdata2:0x801F3020; // type:object size:0x4 data:float +lbl_801F3024 = .sdata2:0x801F3024; // type:object size:0x4 data:float +lbl_801F3028 = .sdata2:0x801F3028; // type:object size:0x4 data:float +lbl_801F302C = .sdata2:0x801F302C; // type:object size:0x4 data:float +lbl_801F3030 = .sdata2:0x801F3030; // type:object size:0x4 data:float +lbl_801F3038 = .sdata2:0x801F3038; // type:object size:0x8 data:double +lbl_801F3040 = .sdata2:0x801F3040; // type:object size:0x4 data:float +lbl_801F3048 = .sdata2:0x801F3048; // type:object size:0x8 data:double +lbl_801F3050 = .sdata2:0x801F3050; // type:object size:0x4 data:float +lbl_801F3054 = .sdata2:0x801F3054; // type:object size:0x4 data:float +lbl_801F3058 = .sdata2:0x801F3058; // type:object size:0x4 data:float +lbl_801F305C = .sdata2:0x801F305C; // type:object size:0x4 data:float +lbl_801F3060 = .sdata2:0x801F3060; // type:object size:0x4 data:float +lbl_801F3068 = .sdata2:0x801F3068; // type:object size:0x8 data:double +lbl_801F3070 = .sdata2:0x801F3070; // type:object size:0x4 data:float +lbl_801F3074 = .sdata2:0x801F3074; // type:object size:0x4 data:float +lbl_801F3078 = .sdata2:0x801F3078; // type:object size:0x4 data:float +lbl_801F307C = .sdata2:0x801F307C; // type:object size:0x4 data:float +lbl_801F3080 = .sdata2:0x801F3080; // type:object size:0x4 data:float +lbl_801F3084 = .sdata2:0x801F3084; // type:object size:0x4 data:float +lbl_801F3088 = .sdata2:0x801F3088; // type:object size:0x4 data:float +lbl_801F308C = .sdata2:0x801F308C; // type:object size:0x4 data:float +lbl_801F3090 = .sdata2:0x801F3090; // type:object size:0x4 data:float +lbl_801F3094 = .sdata2:0x801F3094; // type:object size:0x4 data:float +lbl_801F3098 = .sdata2:0x801F3098; // type:object size:0x4 data:float +lbl_801F309C = .sdata2:0x801F309C; // type:object size:0x4 data:float +lbl_801F30A0 = .sdata2:0x801F30A0; // type:object size:0x1 data:byte +lbl_801F30A1 = .sdata2:0x801F30A1; // type:object size:0x1 data:byte +lbl_801F30A2 = .sdata2:0x801F30A2; // type:object size:0x1 data:byte +lbl_801F30A3 = .sdata2:0x801F30A3; // type:object size:0x1 data:byte +lbl_801F30A4 = .sdata2:0x801F30A4; // type:object size:0x4 data:float +lbl_801F30A8 = .sdata2:0x801F30A8; // type:object size:0x4 data:float +lbl_801F30AC = .sdata2:0x801F30AC; // type:object size:0x4 data:float +lbl_801F30B0 = .sdata2:0x801F30B0; // type:object size:0x4 data:float +lbl_801F30B4 = .sdata2:0x801F30B4; // type:object size:0x4 data:float +lbl_801F30B8 = .sdata2:0x801F30B8; // type:object size:0x8 data:double +lbl_801F30C0 = .sdata2:0x801F30C0; // type:object size:0x8 data:double +lbl_801F30C8 = .sdata2:0x801F30C8; // type:object size:0x4 data:float +lbl_801F30CC = .sdata2:0x801F30CC; // type:object size:0x4 data:float +lbl_801F30D0 = .sdata2:0x801F30D0; // type:object size:0x4 data:float +lbl_801F30D4 = .sdata2:0x801F30D4; // type:object size:0x4 data:float +lbl_801F30D8 = .sdata2:0x801F30D8; // type:object size:0x4 data:float +lbl_801F30DC = .sdata2:0x801F30DC; // type:object size:0x4 data:float +lbl_801F30E0 = .sdata2:0x801F30E0; // type:object size:0x8 data:double +lbl_801F30E8 = .sdata2:0x801F30E8; // type:object size:0x4 data:float +lbl_801F30EC = .sdata2:0x801F30EC; // type:object size:0x4 data:float +lbl_801F30F0 = .sdata2:0x801F30F0; // type:object size:0x8 data:double +lbl_801F30F8 = .sdata2:0x801F30F8; // type:object size:0x8 data:float +lbl_801F3100 = .sdata2:0x801F3100; // type:object size:0x4 data:float +lbl_801F3104 = .sdata2:0x801F3104; // type:object size:0x4 data:float +lbl_801F3108 = .sdata2:0x801F3108; // type:object size:0x4 data:float +lbl_801F310C = .sdata2:0x801F310C; // type:object size:0x4 data:float +lbl_801F3110 = .sdata2:0x801F3110; // type:object size:0x4 data:float +lbl_801F3114 = .sdata2:0x801F3114; // type:object size:0x4 data:float +lbl_801F3118 = .sdata2:0x801F3118; // type:object size:0x4 data:float +lbl_801F311C = .sdata2:0x801F311C; // type:object size:0x4 data:float +lbl_801F3120 = .sdata2:0x801F3120; // type:object size:0x4 data:float +lbl_801F3124 = .sdata2:0x801F3124; // type:object size:0x4 data:float +lbl_801F3128 = .sdata2:0x801F3128; // type:object size:0x2 data:2byte +lbl_801F312A = .sdata2:0x801F312A; // type:object size:0x2 data:2byte +lbl_801F312C = .sdata2:0x801F312C; // type:object size:0x2 data:2byte +lbl_801F3130 = .sdata2:0x801F3130; // type:object size:0x4 data:float +lbl_801F3134 = .sdata2:0x801F3134; // type:object size:0x4 data:float +lbl_801F3138 = .sdata2:0x801F3138; // type:object size:0x4 data:float +lbl_801F313C = .sdata2:0x801F313C; // type:object size:0x4 data:float +lbl_801F3140 = .sdata2:0x801F3140; // type:object size:0x4 data:float +lbl_801F3144 = .sdata2:0x801F3144; // type:object size:0x4 data:float +lbl_801F3148 = .sdata2:0x801F3148; // type:object size:0x4 data:float +lbl_801F314C = .sdata2:0x801F314C; // type:object size:0x4 data:float +lbl_801F3150 = .sdata2:0x801F3150; // type:object size:0x8 data:double +lbl_801F3158 = .sdata2:0x801F3158; // type:object size:0x8 data:double +lbl_801F3160 = .sdata2:0x801F3160; // type:object size:0x8 data:double +lbl_801F3168 = .sdata2:0x801F3168; // type:object size:0x4 data:float +lbl_801F316C = .sdata2:0x801F316C; // type:object size:0x4 data:float +lbl_801F3170 = .sdata2:0x801F3170; // type:object size:0x4 data:float +lbl_801F3174 = .sdata2:0x801F3174; // type:object size:0x4 data:float +lbl_801F3178 = .sdata2:0x801F3178; // type:object size:0x4 data:float +lbl_801F317C = .sdata2:0x801F317C; // type:object size:0x4 data:float +lbl_801F3180 = .sdata2:0x801F3180; // type:object size:0x4 data:float +lbl_801F3184 = .sdata2:0x801F3184; // type:object size:0x4 data:float +lbl_801F3188 = .sdata2:0x801F3188; // type:object size:0x4 data:float +lbl_801F3190 = .sdata2:0x801F3190; // type:object size:0x8 data:double +lbl_801F3198 = .sdata2:0x801F3198; // type:object size:0x1 data:byte +lbl_801F3199 = .sdata2:0x801F3199; // type:object size:0x1 data:byte +lbl_801F319A = .sdata2:0x801F319A; // type:object size:0x1 data:byte +lbl_801F319C = .sdata2:0x801F319C; // type:object size:0x4 data:float +lbl_801F31A0 = .sdata2:0x801F31A0; // type:object size:0x8 data:double +lbl_801F31A8 = .sdata2:0x801F31A8; // type:object size:0x8 data:float +battleCoinTbl = .sdata2:0x801F31B0; // type:object size:0x5 scope:local +lbl_801F31B8 = .sdata2:0x801F31B8; // type:object size:0x4 data:float +lbl_801F31BC = .sdata2:0x801F31BC; // type:object size:0x4 data:float +lbl_801F31C0 = .sdata2:0x801F31C0; // type:object size:0x4 data:float +lbl_801F31C4 = .sdata2:0x801F31C4; // type:object size:0x4 data:float +lbl_801F31C8 = .sdata2:0x801F31C8; // type:object size:0x4 data:float +lbl_801F31CC = .sdata2:0x801F31CC; // type:object size:0x4 data:float +lbl_801F31D0 = .sdata2:0x801F31D0; // type:object size:0x4 data:float +lbl_801F31D4 = .sdata2:0x801F31D4; // type:object size:0x4 data:float +lbl_801F31D8 = .sdata2:0x801F31D8; // type:object size:0x4 data:float +lbl_801F31DC = .sdata2:0x801F31DC; // type:object size:0x4 data:float +lbl_801F31E0 = .sdata2:0x801F31E0; // type:object size:0x4 data:float +lbl_801F31E4 = .sdata2:0x801F31E4; // type:object size:0x4 data:float +lbl_801F31E8 = .sdata2:0x801F31E8; // type:object size:0x4 data:float +lbl_801F31EC = .sdata2:0x801F31EC; // type:object size:0x4 data:float +lbl_801F31F0 = .sdata2:0x801F31F0; // type:object size:0x4 data:float +lbl_801F31F4 = .sdata2:0x801F31F4; // type:object size:0x4 data:float +lbl_801F31F8 = .sdata2:0x801F31F8; // type:object size:0x4 data:float +lbl_801F31FC = .sdata2:0x801F31FC; // type:object size:0x4 data:float +lbl_801F3200 = .sdata2:0x801F3200; // type:object size:0x4 data:float +lbl_801F3204 = .sdata2:0x801F3204; // type:object size:0x4 data:float +lbl_801F3208 = .sdata2:0x801F3208; // type:object size:0x4 data:float +lbl_801F3210 = .sdata2:0x801F3210; // type:object size:0x8 data:double +lbl_801F3218 = .sdata2:0x801F3218; // type:object size:0x8 data:double +lbl_801F3220 = .sdata2:0x801F3220; // type:object size:0x4 data:float +lbl_801F3224 = .sdata2:0x801F3224; // type:object size:0x4 data:float +lbl_801F3228 = .sdata2:0x801F3228; // type:object size:0x4 data:float +lbl_801F322C = .sdata2:0x801F322C; // type:object size:0x4 data:float +lbl_801F3230 = .sdata2:0x801F3230; // type:object size:0x4 data:float +lbl_801F3234 = .sdata2:0x801F3234; // type:object size:0x4 data:float +lbl_801F3238 = .sdata2:0x801F3238; // type:object size:0x4 data:float +lbl_801F323C = .sdata2:0x801F323C; // type:object size:0x4 data:float +lbl_801F3240 = .sdata2:0x801F3240; // type:object size:0x8 data:double +lbl_801F3248 = .sdata2:0x801F3248; // type:object size:0x4 data:float +lbl_801F3250 = .sdata2:0x801F3250; // type:object size:0x8 data:double +lbl_801F3258 = .sdata2:0x801F3258; // type:object size:0x4 data:float +lbl_801F325C = .sdata2:0x801F325C; // type:object size:0x4 data:float +lbl_801F3260 = .sdata2:0x801F3260; // type:object size:0x1 data:byte +lbl_801F3261 = .sdata2:0x801F3261; // type:object size:0x1 data:byte +lbl_801F3262 = .sdata2:0x801F3262; // type:object size:0x1 data:byte +lbl_801F3263 = .sdata2:0x801F3263; // type:object size:0x1 data:byte +lbl_801F3264 = .sdata2:0x801F3264; // type:object size:0x1 data:byte +lbl_801F3268 = .sdata2:0x801F3268; // type:object size:0x4 data:float +lbl_801F326C = .sdata2:0x801F326C; // type:object size:0x4 data:float +lbl_801F3270 = .sdata2:0x801F3270; // type:object size:0x4 data:float +lbl_801F3274 = .sdata2:0x801F3274; // type:object size:0x4 data:float +lbl_801F3278 = .sdata2:0x801F3278; // type:object size:0x4 data:float +lbl_801F327C = .sdata2:0x801F327C; // type:object size:0x4 data:float +lbl_801F3280 = .sdata2:0x801F3280; // type:object size:0x4 data:float +lbl_801F3284 = .sdata2:0x801F3284; // type:object size:0x4 data:float +lbl_801F3288 = .sdata2:0x801F3288; // type:object size:0x4 data:float +lbl_801F328C = .sdata2:0x801F328C; // type:object size:0x4 data:float +lbl_801F3290 = .sdata2:0x801F3290; // type:object size:0x4 data:float +lbl_801F3294 = .sdata2:0x801F3294; // type:object size:0x4 data:float +lbl_801F3298 = .sdata2:0x801F3298; // type:object size:0x4 data:float +lbl_801F329C = .sdata2:0x801F329C; // type:object size:0x4 data:float +lbl_801F32A0 = .sdata2:0x801F32A0; // type:object size:0x8 data:double +lbl_801F32A8 = .sdata2:0x801F32A8; // type:object size:0x8 data:double +lbl_801F32B0 = .sdata2:0x801F32B0; // type:object size:0x4 data:float +lbl_801F32B8 = .sdata2:0x801F32B8; // type:object size:0x8 data:double +lbl_801F32C0 = .sdata2:0x801F32C0; // type:object size:0x8 data:double +lbl_801F32C8 = .sdata2:0x801F32C8; // type:object size:0x8 data:double +lbl_801F32D0 = .sdata2:0x801F32D0; // type:object size:0x8 data:double +lbl_801F32D8 = .sdata2:0x801F32D8; // type:object size:0x4 data:float +lbl_801F32E0 = .sdata2:0x801F32E0; // type:object size:0x8 data:double +lbl_801F32E8 = .sdata2:0x801F32E8; // type:object size:0x4 data:float +lbl_801F32EC = .sdata2:0x801F32EC; // type:object size:0x4 data:float +lbl_801F32F0 = .sdata2:0x801F32F0; // type:object size:0x4 data:float +lbl_801F32F8 = .sdata2:0x801F32F8; // type:object size:0x8 data:double +lbl_801F3300 = .sdata2:0x801F3300; // type:object size:0x8 data:double +lbl_801F3308 = .sdata2:0x801F3308; // type:object size:0x4 data:float +lbl_801F3310 = .sdata2:0x801F3310; // type:object size:0x8 data:double +lbl_801F3318 = .sdata2:0x801F3318; // type:object size:0x4 data:float +lbl_801F331C = .sdata2:0x801F331C; // type:object size:0x4 data:float +lbl_801F3320 = .sdata2:0x801F3320; // type:object size:0x4 data:float +lbl_801F3324 = .sdata2:0x801F3324; // type:object size:0x4 data:float +lbl_801F3328 = .sdata2:0x801F3328; // type:object size:0x8 data:double +lbl_801F3330 = .sdata2:0x801F3330; // type:object size:0x8 data:double +lbl_801F3338 = .sdata2:0x801F3338; // type:object size:0x4 data:float +lbl_801F333C = .sdata2:0x801F333C; // type:object size:0x4 data:float +lbl_801F3340 = .sdata2:0x801F3340; // type:object size:0x4 data:float +lbl_801F3348 = .sdata2:0x801F3348; // type:object size:0x8 data:double +lbl_801F3350 = .sdata2:0x801F3350; // type:object size:0x4 data:float +lbl_801F3354 = .sdata2:0x801F3354; // type:object size:0x4 data:float +lbl_801F3358 = .sdata2:0x801F3358; // type:object size:0x4 data:float +lbl_801F335C = .sdata2:0x801F335C; // type:object size:0x4 data:float +lbl_801F3360 = .sdata2:0x801F3360; // type:object size:0x8 data:double +lbl_801F3368 = .sdata2:0x801F3368; // type:object size:0x4 data:float +lbl_801F336C = .sdata2:0x801F336C; // type:object size:0x4 data:float +lbl_801F3370 = .sdata2:0x801F3370; // type:object size:0x4 data:float +lbl_801F3374 = .sdata2:0x801F3374; // type:object size:0x4 data:float +lbl_801F3378 = .sdata2:0x801F3378; // type:object size:0x4 data:float +lbl_801F337C = .sdata2:0x801F337C; // type:object size:0x4 data:float +lbl_801F3380 = .sdata2:0x801F3380; // type:object size:0x4 data:float +lbl_801F3384 = .sdata2:0x801F3384; // type:object size:0x4 data:float +lbl_801F3388 = .sdata2:0x801F3388; // type:object size:0x4 data:float +lbl_801F338C = .sdata2:0x801F338C; // type:object size:0x4 data:float +lbl_801F3390 = .sdata2:0x801F3390; // type:object size:0x4 data:float +lbl_801F3394 = .sdata2:0x801F3394; // type:object size:0x1 data:byte +lbl_801F3395 = .sdata2:0x801F3395; // type:object size:0x1 data:byte +lbl_801F3398 = .sdata2:0x801F3398; // type:object size:0x4 data:float +lbl_801F33A0 = .sdata2:0x801F33A0; // type:object size:0x8 data:double +lbl_801F33A8 = .sdata2:0x801F33A8; // type:object size:0x8 data:double +lbl_801F33B0 = .sdata2:0x801F33B0; // type:object size:0x8 data:double +lbl_801F33B8 = .sdata2:0x801F33B8; // type:object size:0x8 data:double +lbl_801F33C0 = .sdata2:0x801F33C0; // type:object size:0x4 data:float +lbl_801F33C4 = .sdata2:0x801F33C4; // type:object size:0x4 data:float +lbl_801F33C8 = .sdata2:0x801F33C8; // type:object size:0x8 data:double +lbl_801F33D0 = .sdata2:0x801F33D0; // type:object size:0x4 data:float +lbl_801F33D4 = .sdata2:0x801F33D4; // type:object size:0x4 data:float +lbl_801F33D8 = .sdata2:0x801F33D8; // type:object size:0x8 data:double +lbl_801F33E0 = .sdata2:0x801F33E0; // type:object size:0x4 data:float +lbl_801F33E4 = .sdata2:0x801F33E4; // type:object size:0x2 data:2byte +lbl_801F33E6 = .sdata2:0x801F33E6; // type:object size:0x2 data:2byte +lbl_801F33E8 = .sdata2:0x801F33E8; // type:object size:0x2 data:2byte +lbl_801F33EC = .sdata2:0x801F33EC; // type:object size:0x4 data:float +lbl_801F33F0 = .sdata2:0x801F33F0; // type:object size:0x4 data:float +lbl_801F33F4 = .sdata2:0x801F33F4; // type:object size:0x4 data:float +lbl_801F33F8 = .sdata2:0x801F33F8; // type:object size:0x2 data:2byte +lbl_801F33FA = .sdata2:0x801F33FA; // type:object size:0x2 data:2byte +lbl_801F33FC = .sdata2:0x801F33FC; // type:object size:0x2 data:2byte +lbl_801F3400 = .sdata2:0x801F3400; // type:object size:0x4 data:float +lbl_801F3404 = .sdata2:0x801F3404; // type:object size:0x4 data:float +lbl_801F3408 = .sdata2:0x801F3408; // type:object size:0x4 data:float +lbl_801F340C = .sdata2:0x801F340C; // type:object size:0x4 data:float +lbl_801F3410 = .sdata2:0x801F3410; // type:object size:0x4 data:float +lbl_801F3414 = .sdata2:0x801F3414; // type:object size:0x4 data:float +lbl_801F3418 = .sdata2:0x801F3418; // type:object size:0x4 data:float +lbl_801F3420 = .sdata2:0x801F3420; // type:object size:0x8 data:double +lbl_801F3428 = .sdata2:0x801F3428; // type:object size:0x4 data:float +lbl_801F342C = .sdata2:0x801F342C; // type:object size:0x4 data:float +lbl_801F3430 = .sdata2:0x801F3430; // type:object size:0x4 data:float +lbl_801F3434 = .sdata2:0x801F3434; // type:object size:0x4 data:float +lbl_801F3438 = .sdata2:0x801F3438; // type:object size:0x4 data:float +lbl_801F343C = .sdata2:0x801F343C; // type:object size:0x4 data:float +lbl_801F3440 = .sdata2:0x801F3440; // type:object size:0x4 data:float +lbl_801F3448 = .sdata2:0x801F3448; // type:object size:0x8 data:double +lbl_801F3450 = .sdata2:0x801F3450; // type:object size:0x8 data:double +lbl_801F3458 = .sdata2:0x801F3458; // type:object size:0x8 data:double +lbl_801F3460 = .sdata2:0x801F3460; // type:object size:0x4 data:float +lbl_801F3464 = .sdata2:0x801F3464; // type:object size:0x4 data:float +lbl_801F3468 = .sdata2:0x801F3468; // type:object size:0x4 data:float +lbl_801F346C = .sdata2:0x801F346C; // type:object size:0x4 data:float +lbl_801F3470 = .sdata2:0x801F3470; // type:object size:0x4 data:float +lbl_801F3474 = .sdata2:0x801F3474; // type:object size:0x4 data:float +lbl_801F3478 = .sdata2:0x801F3478; // type:object size:0x4 data:float +lbl_801F347C = .sdata2:0x801F347C; // type:object size:0x4 data:float +lbl_801F3480 = .sdata2:0x801F3480; // type:object size:0x4 data:float +lbl_801F3484 = .sdata2:0x801F3484; // type:object size:0x4 data:float +lbl_801F3488 = .sdata2:0x801F3488; // type:object size:0x4 data:float +lbl_801F348C = .sdata2:0x801F348C; // type:object size:0x4 data:float +lbl_801F3490 = .sdata2:0x801F3490; // type:object size:0x4 data:float +lbl_801F3494 = .sdata2:0x801F3494; // type:object size:0x4 data:float +lbl_801F3498 = .sdata2:0x801F3498; // type:object size:0x4 data:float +lbl_801F349C = .sdata2:0x801F349C; // type:object size:0x4 data:float +lbl_801F34A0 = .sdata2:0x801F34A0; // type:object size:0x4 data:float +lbl_801F34A4 = .sdata2:0x801F34A4; // type:object size:0x4 data:float +lbl_801F34A8 = .sdata2:0x801F34A8; // type:object size:0x4 data:float +lbl_801F34AC = .sdata2:0x801F34AC; // type:object size:0x4 data:float +lbl_801F34B0 = .sdata2:0x801F34B0; // type:object size:0x8 data:double +lbl_801F34B8 = .sdata2:0x801F34B8; // type:object size:0x8 data:double +lbl_801F34C0 = .sdata2:0x801F34C0; // type:object size:0x4 data:float +lbl_801F34C8 = .sdata2:0x801F34C8; // type:object size:0x8 data:double +lbl_801F34D0 = .sdata2:0x801F34D0; // type:object size:0x8 data:double +lbl_801F34D8 = .sdata2:0x801F34D8; // type:object size:0x4 data:float +lbl_801F34DC = .sdata2:0x801F34DC; // type:object size:0x4 data:float +lbl_801F34E0 = .sdata2:0x801F34E0; // type:object size:0x4 data:float +lbl_801F34E4 = .sdata2:0x801F34E4; // type:object size:0x4 data:float +lbl_801F34E8 = .sdata2:0x801F34E8; // type:object size:0x4 data:float +lbl_801F34EC = .sdata2:0x801F34EC; // type:object size:0x4 data:float +lbl_801F34F0 = .sdata2:0x801F34F0; // type:object size:0x4 data:float +lbl_801F34F4 = .sdata2:0x801F34F4; // type:object size:0x4 data:float +lbl_801F34F8 = .sdata2:0x801F34F8; // type:object size:0x4 data:float +lbl_801F34FC = .sdata2:0x801F34FC; // type:object size:0x4 data:float +lbl_801F3500 = .sdata2:0x801F3500; // type:object size:0x4 data:float +lbl_801F3504 = .sdata2:0x801F3504; // type:object size:0x4 data:float +lbl_801F3508 = .sdata2:0x801F3508; // type:object size:0x4 data:float +lbl_801F350C = .sdata2:0x801F350C; // type:object size:0x4 data:float +lbl_801F3510 = .sdata2:0x801F3510; // type:object size:0x4 data:float +lbl_801F3514 = .sdata2:0x801F3514; // type:object size:0x4 data:float +lbl_801F3518 = .sdata2:0x801F3518; // type:object size:0x4 data:float +lbl_801F351C = .sdata2:0x801F351C; // type:object size:0x4 data:float +lbl_801F3520 = .sdata2:0x801F3520; // type:object size:0x4 data:float +lbl_801F3528 = .sdata2:0x801F3528; // type:object size:0x8 data:double +lbl_801F3530 = .sdata2:0x801F3530; // type:object size:0x8 data:double +lbl_801F3538 = .sdata2:0x801F3538; // type:object size:0x8 data:double +lbl_801F3540 = .sdata2:0x801F3540; // type:object size:0x8 data:double +lbl_801F3548 = .sdata2:0x801F3548; // type:object size:0x4 data:float +lbl_801F354C = .sdata2:0x801F354C; // type:object size:0x4 data:float +lbl_801F3550 = .sdata2:0x801F3550; // type:object size:0x4 data:float +lbl_801F3554 = .sdata2:0x801F3554; // type:object size:0x4 data:float +lbl_801F3558 = .sdata2:0x801F3558; // type:object size:0x4 data:float +lbl_801F355C = .sdata2:0x801F355C; // type:object size:0x4 data:float +lbl_801F3560 = .sdata2:0x801F3560; // type:object size:0x4 data:float +lbl_801F3564 = .sdata2:0x801F3564; // type:object size:0x4 data:float +lbl_801F3568 = .sdata2:0x801F3568; // type:object size:0x4 data:float +lbl_801F356C = .sdata2:0x801F356C; // type:object size:0x4 data:float +lbl_801F3570 = .sdata2:0x801F3570; // type:object size:0x4 data:float +lbl_801F3574 = .sdata2:0x801F3574; // type:object size:0x4 data:float +lbl_801F3578 = .sdata2:0x801F3578; // type:object size:0x4 data:float +lbl_801F357C = .sdata2:0x801F357C; // type:object size:0x4 data:float +lbl_801F3580 = .sdata2:0x801F3580; // type:object size:0x4 data:float +lbl_801F3584 = .sdata2:0x801F3584; // type:object size:0x4 data:float +lbl_801F3588 = .sdata2:0x801F3588; // type:object size:0x4 data:float +lbl_801F358C = .sdata2:0x801F358C; // type:object size:0x4 data:float +lbl_801F3590 = .sdata2:0x801F3590; // type:object size:0x4 data:float +lbl_801F3594 = .sdata2:0x801F3594; // type:object size:0x4 data:float +lbl_801F3598 = .sdata2:0x801F3598; // type:object size:0x4 data:float +lbl_801F359C = .sdata2:0x801F359C; // type:object size:0x4 data:float +lbl_801F35A0 = .sdata2:0x801F35A0; // type:object size:0x8 data:double +lbl_801F35A8 = .sdata2:0x801F35A8; // type:object size:0x8 data:double +lbl_801F35B0 = .sdata2:0x801F35B0; // type:object size:0x4 data:float +lbl_801F35B4 = .sdata2:0x801F35B4; // type:object size:0x4 data:float +lbl_801F35B8 = .sdata2:0x801F35B8; // type:object size:0x8 data:double +lbl_801F35C0 = .sdata2:0x801F35C0; // type:object size:0x4 data:float +lbl_801F35C4 = .sdata2:0x801F35C4; // type:object size:0x4 data:float +lbl_801F35C8 = .sdata2:0x801F35C8; // type:object size:0x4 data:float +lbl_801F35CC = .sdata2:0x801F35CC; // type:object size:0x4 data:float +lbl_801F35D0 = .sdata2:0x801F35D0; // type:object size:0x4 data:float +lbl_801F35D4 = .sdata2:0x801F35D4; // type:object size:0x4 data:float +lbl_801F35D8 = .sdata2:0x801F35D8; // type:object size:0x4 data:float +lbl_801F35DC = .sdata2:0x801F35DC; // type:object size:0x4 data:float +lbl_801F35E0 = .sdata2:0x801F35E0; // type:object size:0x4 data:float +lbl_801F35E4 = .sdata2:0x801F35E4; // type:object size:0x4 data:float +lbl_801F35E8 = .sdata2:0x801F35E8; // type:object size:0x4 data:float +lbl_801F35EC = .sdata2:0x801F35EC; // type:object size:0x4 data:float +lbl_801F35F0 = .sdata2:0x801F35F0; // type:object size:0x4 data:float +lbl_801F35F4 = .sdata2:0x801F35F4; // type:object size:0x4 data:float +lbl_801F35F8 = .sdata2:0x801F35F8; // type:object size:0x4 data:float +lbl_801F35FC = .sdata2:0x801F35FC; // type:object size:0x4 data:float +lbl_801F3600 = .sdata2:0x801F3600; // type:object size:0x4 data:float +lbl_801F3604 = .sdata2:0x801F3604; // type:object size:0x4 data:float +lbl_801F3608 = .sdata2:0x801F3608; // type:object size:0x4 data:float +lbl_801F360C = .sdata2:0x801F360C; // type:object size:0x4 data:float +lbl_801F3610 = .sdata2:0x801F3610; // type:object size:0x4 data:float +lbl_801F3618 = .sdata2:0x801F3618; // type:object size:0x8 data:double +lbl_801F3620 = .sdata2:0x801F3620; // type:object size:0x8 data:double +lbl_801F3628 = .sdata2:0x801F3628; // type:object size:0x8 data:double +lbl_801F3630 = .sdata2:0x801F3630; // type:object size:0x8 data:double +lbl_801F3638 = .sdata2:0x801F3638; // type:object size:0x4 data:float +lbl_801F363C = .sdata2:0x801F363C; // type:object size:0x4 data:float +lbl_801F3640 = .sdata2:0x801F3640; // type:object size:0x4 data:float +lbl_801F3644 = .sdata2:0x801F3644; // type:object size:0x4 data:float +lbl_801F3648 = .sdata2:0x801F3648; // type:object size:0x4 data:float +lbl_801F364C = .sdata2:0x801F364C; // type:object size:0x4 data:float +lbl_801F3650 = .sdata2:0x801F3650; // type:object size:0x4 data:float +lbl_801F3654 = .sdata2:0x801F3654; // type:object size:0x4 data:float +lbl_801F3658 = .sdata2:0x801F3658; // type:object size:0x4 data:float +lbl_801F365C = .sdata2:0x801F365C; // type:object size:0x1 data:byte +lbl_801F365D = .sdata2:0x801F365D; // type:object size:0x1 data:byte +lbl_801F365E = .sdata2:0x801F365E; // type:object size:0x1 data:byte +lbl_801F365F = .sdata2:0x801F365F; // type:object size:0x1 data:byte +lbl_801F3660 = .sdata2:0x801F3660; // type:object size:0x8 data:float +lbl_801F3668 = .sdata2:0x801F3668; // type:object size:0x4 data:float +lbl_801F366C = .sdata2:0x801F366C; // type:object size:0x4 data:float +lbl_801F3670 = .sdata2:0x801F3670; // type:object size:0x4 data:float +lbl_801F3674 = .sdata2:0x801F3674; // type:object size:0x4 data:float +lbl_801F3678 = .sdata2:0x801F3678; // type:object size:0x4 data:float +lbl_801F367C = .sdata2:0x801F367C; // type:object size:0x4 data:float +lbl_801F3680 = .sdata2:0x801F3680; // type:object size:0x4 data:float +lbl_801F3684 = .sdata2:0x801F3684; // type:object size:0x4 data:float +lbl_801F3688 = .sdata2:0x801F3688; // type:object size:0x4 data:float +lbl_801F368C = .sdata2:0x801F368C; // type:object size:0x4 data:float +lbl_801F3690 = .sdata2:0x801F3690; // type:object size:0x4 data:float +lbl_801F3694 = .sdata2:0x801F3694; // type:object size:0x4 data:float +lbl_801F3698 = .sdata2:0x801F3698; // type:object size:0x4 data:float +lbl_801F369C = .sdata2:0x801F369C; // type:object size:0x4 data:float +lbl_801F36A0 = .sdata2:0x801F36A0; // type:object size:0x4 data:float +lbl_801F36A4 = .sdata2:0x801F36A4; // type:object size:0x4 data:float +lbl_801F36A8 = .sdata2:0x801F36A8; // type:object size:0x4 data:float +lbl_801F36AC = .sdata2:0x801F36AC; // type:object size:0x4 data:float +lbl_801F36B0 = .sdata2:0x801F36B0; // type:object size:0x4 data:float +lbl_801F36B4 = .sdata2:0x801F36B4; // type:object size:0x4 data:float +lbl_801F36B8 = .sdata2:0x801F36B8; // type:object size:0x4 data:float +lbl_801F36BC = .sdata2:0x801F36BC; // type:object size:0x4 data:float +lbl_801F36C0 = .sdata2:0x801F36C0; // type:object size:0x4 data:float +lbl_801F36C4 = .sdata2:0x801F36C4; // type:object size:0x4 data:float +lbl_801F36C8 = .sdata2:0x801F36C8; // type:object size:0x4 data:float +lbl_801F36CC = .sdata2:0x801F36CC; // type:object size:0x4 data:float +lbl_801F36D0 = .sdata2:0x801F36D0; // type:object size:0x4 data:float +lbl_801F36D4 = .sdata2:0x801F36D4; // type:object size:0x4 data:float +lbl_801F36D8 = .sdata2:0x801F36D8; // type:object size:0x4 data:float +lbl_801F36DC = .sdata2:0x801F36DC; // type:object size:0x4 data:float +lbl_801F36E0 = .sdata2:0x801F36E0; // type:object size:0x4 data:float +lbl_801F36E4 = .sdata2:0x801F36E4; // type:object size:0x4 data:float +lbl_801F36E8 = .sdata2:0x801F36E8; // type:object size:0x4 data:float +lbl_801F36EC = .sdata2:0x801F36EC; // type:object size:0x4 data:float +lbl_801F36F0 = .sdata2:0x801F36F0; // type:object size:0x4 data:float +lbl_801F36F4 = .sdata2:0x801F36F4; // type:object size:0x4 data:float +lbl_801F36F8 = .sdata2:0x801F36F8; // type:object size:0x4 data:float +lbl_801F36FC = .sdata2:0x801F36FC; // type:object size:0x4 data:float +lbl_801F3700 = .sdata2:0x801F3700; // type:object size:0x4 data:float +lbl_801F3704 = .sdata2:0x801F3704; // type:object size:0x4 data:float +lbl_801F3708 = .sdata2:0x801F3708; // type:object size:0x4 data:float +lbl_801F370C = .sdata2:0x801F370C; // type:object size:0x4 data:float +lbl_801F3710 = .sdata2:0x801F3710; // type:object size:0x8 data:double +lbl_801F3718 = .sdata2:0x801F3718; // type:object size:0x8 data:float +lbl_801F3720 = .sdata2:0x801F3720; // type:object size:0x4 data:float +lbl_801F3724 = .sdata2:0x801F3724; // type:object size:0x4 data:float +lbl_801F3728 = .sdata2:0x801F3728; // type:object size:0x4 data:float +lbl_801F372C = .sdata2:0x801F372C; // type:object size:0x4 data:float +lbl_801F3730 = .sdata2:0x801F3730; // type:object size:0x8 data:float +lbl_801F3738 = .sdata2:0x801F3738; // type:object size:0x4 data:float +lbl_801F373C = .sdata2:0x801F373C; // type:object size:0x4 data:float +lbl_801F3740 = .sdata2:0x801F3740; // type:object size:0x4 data:float +lbl_801F3744 = .sdata2:0x801F3744; // type:object size:0x4 data:float +lbl_801F3748 = .sdata2:0x801F3748; // type:object size:0x4 data:float +lbl_801F374C = .sdata2:0x801F374C; // type:object size:0x4 data:float +lbl_801F3750 = .sdata2:0x801F3750; // type:object size:0x4 data:float +lbl_801F3754 = .sdata2:0x801F3754; // type:object size:0x4 data:float +lbl_801F3758 = .sdata2:0x801F3758; // type:object size:0x4 data:float +lbl_801F375C = .sdata2:0x801F375C; // type:object size:0x4 data:float +lbl_801F3760 = .sdata2:0x801F3760; // type:object size:0x4 data:float +lbl_801F3764 = .sdata2:0x801F3764; // type:object size:0x4 data:float +lbl_801F3768 = .sdata2:0x801F3768; // type:object size:0x8 data:double +lbl_801F3770 = .sdata2:0x801F3770; // type:object size:0x8 data:double +lbl_801F3778 = .sdata2:0x801F3778; // type:object size:0x4 data:float +lbl_801F377C = .sdata2:0x801F377C; // type:object size:0x4 data:float +lbl_801F3780 = .sdata2:0x801F3780; // type:object size:0x4 data:float +lbl_801F3784 = .sdata2:0x801F3784; // type:object size:0x4 data:float +lbl_801F3788 = .sdata2:0x801F3788; // type:object size:0x4 data:float +lbl_801F378C = .sdata2:0x801F378C; // type:object size:0x4 data:float +lbl_801F3790 = .sdata2:0x801F3790; // type:object size:0x8 data:double +lbl_801F3798 = .sdata2:0x801F3798; // type:object size:0x8 data:double +lbl_801F37A0 = .sdata2:0x801F37A0; // type:object size:0x8 data:float +lbl_801F37A8 = .sdata2:0x801F37A8; // type:object size:0x4 data:float +lbl_801F37B0 = .sdata2:0x801F37B0; // type:object size:0x8 data:double +lbl_801F37B8 = .sdata2:0x801F37B8; // type:object size:0x4 data:4byte +lbl_801F37BC = .sdata2:0x801F37BC; // type:object size:0x4 data:4byte +lbl_801F37C0 = .sdata2:0x801F37C0; // type:object size:0x4 data:4byte +lbl_801F37C4 = .sdata2:0x801F37C4; // type:object size:0x4 data:float +lbl_801F37C8 = .sdata2:0x801F37C8; // type:object size:0x4 data:float +lbl_801F37CC = .sdata2:0x801F37CC; // type:object size:0x4 data:float +lbl_801F37D0 = .sdata2:0x801F37D0; // type:object size:0x8 data:double +lbl_801F37D8 = .sdata2:0x801F37D8; // type:object size:0x4 data:float +lbl_801F37E0 = .sdata2:0x801F37E0; // type:object size:0x8 data:double +lbl_801F37E8 = .sdata2:0x801F37E8; // type:object size:0x4 data:float +lbl_801F37EC = .sdata2:0x801F37EC; // type:object size:0x4 data:float +lbl_801F37F0 = .sdata2:0x801F37F0; // type:object size:0x4 data:float +lbl_801F37F4 = .sdata2:0x801F37F4; // type:object size:0x4 data:float +lbl_801F37F8 = .sdata2:0x801F37F8; // type:object size:0x4 data:float +lbl_801F37FC = .sdata2:0x801F37FC; // type:object size:0x4 data:float +lbl_801F3800 = .sdata2:0x801F3800; // type:object size:0x4 data:float +lbl_801F3804 = .sdata2:0x801F3804; // type:object size:0x4 data:float +lbl_801F3808 = .sdata2:0x801F3808; // type:object size:0x4 data:float +lbl_801F380C = .sdata2:0x801F380C; // type:object size:0x4 data:float +lbl_801F3810 = .sdata2:0x801F3810; // type:object size:0x4 data:float +lbl_801F3814 = .sdata2:0x801F3814; // type:object size:0x4 data:float +lbl_801F3818 = .sdata2:0x801F3818; // type:object size:0x4 data:float +lbl_801F3820 = .sdata2:0x801F3820; // type:object size:0x8 data:double +lbl_801F3828 = .sdata2:0x801F3828; // type:object size:0x8 data:double +lbl_801F3830 = .sdata2:0x801F3830; // type:object size:0x8 data:float +lbl_801F3838 = .sdata2:0x801F3838; // type:object size:0x4 data:float +lbl_801F3840 = .sdata2:0x801F3840; // type:object size:0x8 data:double +lbl_801F3848 = .sdata2:0x801F3848; // type:object size:0x4 data:float +lbl_801F384C = .sdata2:0x801F384C; // type:object size:0x4 data:float +lbl_801F3850 = .sdata2:0x801F3850; // type:object size:0x4 data:float +lbl_801F3854 = .sdata2:0x801F3854; // type:object size:0x4 data:float +lbl_801F3858 = .sdata2:0x801F3858; // type:object size:0x4 data:float +lbl_801F385C = .sdata2:0x801F385C; // type:object size:0x4 data:float +lbl_801F3860 = .sdata2:0x801F3860; // type:object size:0x4 data:float +lbl_801F3864 = .sdata2:0x801F3864; // type:object size:0x4 data:float +lbl_801F3868 = .sdata2:0x801F3868; // type:object size:0x4 data:float +lbl_801F3870 = .sdata2:0x801F3870; // type:object size:0x8 data:double +lbl_801F3878 = .sdata2:0x801F3878; // type:object size:0x4 data:float +lbl_801F387C = .sdata2:0x801F387C; // type:object size:0x4 data:float +lbl_801F3880 = .sdata2:0x801F3880; // type:object size:0x8 data:double +lbl_801F3888 = .sdata2:0x801F3888; // type:object size:0x4 data:float +lbl_801F3890 = .sdata2:0x801F3890; // type:object size:0x8 data:double +lbl_801F3898 = .sdata2:0x801F3898; // type:object size:0x4 data:float +lbl_801F38A0 = .sdata2:0x801F38A0; // type:object size:0x8 data:double +lbl_801F38A8 = .sdata2:0x801F38A8; // type:object size:0x4 data:float +lbl_801F38AC = .sdata2:0x801F38AC; // type:object size:0x4 data:float +lbl_801F38B0 = .sdata2:0x801F38B0; // type:object size:0x4 data:float +lbl_801F38B8 = .sdata2:0x801F38B8; // type:object size:0x8 data:double +lbl_801F38C0 = .sdata2:0x801F38C0; // type:object size:0x4 data:float +lbl_801F38C4 = .sdata2:0x801F38C4; // type:object size:0x4 data:float +lbl_801F38C8 = .sdata2:0x801F38C8; // type:object size:0x8 data:double +lbl_801F38D0 = .sdata2:0x801F38D0; // type:object size:0x4 data:float +lbl_801F38D4 = .sdata2:0x801F38D4; // type:object size:0x4 data:float +lbl_801F38D8 = .sdata2:0x801F38D8; // type:object size:0x4 data:float +lbl_801F38DC = .sdata2:0x801F38DC; // type:object size:0x4 data:float +lbl_801F38E0 = .sdata2:0x801F38E0; // type:object size:0x4 data:float +lbl_801F38E8 = .sdata2:0x801F38E8; // type:object size:0x8 data:double +lbl_801F38F0 = .sdata2:0x801F38F0; // type:object size:0x4 data:4byte +lbl_801F38F8 = .sdata2:0x801F38F8; // type:object size:0x8 data:double +lbl_801F3900 = .sdata2:0x801F3900; // type:object size:0x8 data:double +lbl_801F3908 = .sdata2:0x801F3908; // type:object size:0x8 data:double +lbl_801F3910 = .sdata2:0x801F3910; // type:object size:0x8 data:double +lbl_801F3918 = .sdata2:0x801F3918; // type:object size:0x8 data:double +lbl_801F3920 = .sdata2:0x801F3920; // type:object size:0x8 data:double +lbl_801F3928 = .sdata2:0x801F3928; // type:object size:0x8 data:double +lbl_801F3930 = .sdata2:0x801F3930; // type:object size:0x8 data:double +lbl_801F3938 = .sdata2:0x801F3938; // type:object size:0x8 data:double +lbl_801F3940 = .sdata2:0x801F3940; // type:object size:0x8 data:double +lbl_801F3948 = .sdata2:0x801F3948; // type:object size:0x8 data:double +lbl_801F3950 = .sdata2:0x801F3950; // type:object size:0x8 data:double +lbl_801F3958 = .sdata2:0x801F3958; // type:object size:0x8 data:double +lbl_801F3960 = .sdata2:0x801F3960; // type:object size:0x8 data:double +lbl_801F3968 = .sdata2:0x801F3968; // type:object size:0x8 data:double +lbl_801F3970 = .sdata2:0x801F3970; // type:object size:0x8 data:double +lbl_801F3978 = .sdata2:0x801F3978; // type:object size:0x8 data:double +lbl_801F3980 = .sdata2:0x801F3980; // type:object size:0x8 data:double +lbl_801F3988 = .sdata2:0x801F3988; // type:object size:0x8 data:double +lbl_801F3990 = .sdata2:0x801F3990; // type:object size:0x8 data:double +lbl_801F3998 = .sdata2:0x801F3998; // type:object size:0x8 data:double +lbl_801F39A0 = .sdata2:0x801F39A0; // type:object size:0x8 data:double +lbl_801F39A8 = .sdata2:0x801F39A8; // type:object size:0x8 data:double +lbl_801F39B0 = .sdata2:0x801F39B0; // type:object size:0x8 data:double +lbl_801F39B8 = .sdata2:0x801F39B8; // type:object size:0x8 data:double +lbl_801F39C0 = .sdata2:0x801F39C0; // type:object size:0x8 data:double +lbl_801F39C8 = .sdata2:0x801F39C8; // type:object size:0x8 data:double +lbl_801F39D0 = .sdata2:0x801F39D0; // type:object size:0x8 data:double +lbl_801F39D8 = .sdata2:0x801F39D8; // type:object size:0x8 data:double +lbl_801F39E0 = .sdata2:0x801F39E0; // type:object size:0x8 data:double +lbl_801F39E8 = .sdata2:0x801F39E8; // type:object size:0x8 data:double +lbl_801F39F0 = .sdata2:0x801F39F0; // type:object size:0x8 data:double +lbl_801F39F8 = .sdata2:0x801F39F8; // type:object size:0x8 data:double +lbl_801F3A00 = .sdata2:0x801F3A00; // type:object size:0x8 data:double +lbl_801F3A08 = .sdata2:0x801F3A08; // type:object size:0x8 data:double +lbl_801F3A10 = .sdata2:0x801F3A10; // type:object size:0x8 data:double +lbl_801F3A18 = .sdata2:0x801F3A18; // type:object size:0x8 data:double +lbl_801F3A20 = .sdata2:0x801F3A20; // type:object size:0x8 data:double +lbl_801F3A28 = .sdata2:0x801F3A28; // type:object size:0x8 data:double +lbl_801F3A30 = .sdata2:0x801F3A30; // type:object size:0x8 data:double +lbl_801F3A38 = .sdata2:0x801F3A38; // type:object size:0x8 data:double +lbl_801F3A40 = .sdata2:0x801F3A40; // type:object size:0x8 data:double +lbl_801F3A48 = .sdata2:0x801F3A48; // type:object size:0x8 data:double +lbl_801F3A50 = .sdata2:0x801F3A50; // type:object size:0x8 data:double +lbl_801F3A58 = .sdata2:0x801F3A58; // type:object size:0x8 data:double +lbl_801F3A60 = .sdata2:0x801F3A60; // type:object size:0x8 data:double +lbl_801F3A68 = .sdata2:0x801F3A68; // type:object size:0x8 data:double +lbl_801F3A70 = .sdata2:0x801F3A70; // type:object size:0x8 data:double +lbl_801F3A78 = .sdata2:0x801F3A78; // type:object size:0x8 data:double +lbl_801F3A80 = .sdata2:0x801F3A80; // type:object size:0x8 data:double +lbl_801F3A88 = .sdata2:0x801F3A88; // type:object size:0x8 data:double +lbl_801F3A90 = .sdata2:0x801F3A90; // type:object size:0x8 data:double +lbl_801F3A98 = .sdata2:0x801F3A98; // type:object size:0x8 data:double +lbl_801F3AA0 = .sdata2:0x801F3AA0; // type:object size:0x8 data:double +lbl_801F3AA8 = .sdata2:0x801F3AA8; // type:object size:0x8 data:double +lbl_801F3AB0 = .sdata2:0x801F3AB0; // type:object size:0x8 data:double +lbl_801F3AB8 = .sdata2:0x801F3AB8; // type:object size:0x8 data:double +lbl_801F3AC0 = .sdata2:0x801F3AC0; // type:object size:0x8 data:double +lbl_801F3AC8 = .sdata2:0x801F3AC8; // type:object size:0x8 data:double +lbl_801F3AD0 = .sdata2:0x801F3AD0; // type:object size:0x8 data:double +lbl_801F3AD8 = .sdata2:0x801F3AD8; // type:object size:0x8 data:double +lbl_801F3AE0 = .sdata2:0x801F3AE0; // type:object size:0x8 data:double +lbl_801F3AE8 = .sdata2:0x801F3AE8; // type:object size:0x8 data:double +lbl_801F3AF0 = .sdata2:0x801F3AF0; // type:object size:0x8 data:double +lbl_801F3AF8 = .sdata2:0x801F3AF8; // type:object size:0x8 data:double +lbl_801F3B00 = .sdata2:0x801F3B00; // type:object size:0x8 data:double +lbl_801F3B08 = .sdata2:0x801F3B08; // type:object size:0x8 data:double +lbl_801F3B10 = .sdata2:0x801F3B10; // type:object size:0x8 data:double +lbl_801F3B18 = .sdata2:0x801F3B18; // type:object size:0x8 data:double +lbl_801F3B20 = .sdata2:0x801F3B20; // type:object size:0x8 data:double +lbl_801F3B28 = .sdata2:0x801F3B28; // type:object size:0x8 data:double +lbl_801F3B30 = .sdata2:0x801F3B30; // type:object size:0x8 data:double +lbl_801F3B38 = .sdata2:0x801F3B38; // type:object size:0x8 data:double +lbl_801F3B40 = .sdata2:0x801F3B40; // type:object size:0x8 data:double +lbl_801F3B48 = .sdata2:0x801F3B48; // type:object size:0x8 data:double +lbl_801F3B50 = .sdata2:0x801F3B50; // type:object size:0x8 data:double +lbl_801F3B58 = .sdata2:0x801F3B58; // type:object size:0x8 data:double +lbl_801F3B60 = .sdata2:0x801F3B60; // type:object size:0x8 data:double +lbl_801F3B68 = .sdata2:0x801F3B68; // type:object size:0x8 data:double +lbl_801F3B70 = .sdata2:0x801F3B70; // type:object size:0x8 data:double +lbl_801F3B78 = .sdata2:0x801F3B78; // type:object size:0x8 data:double +lbl_801F3B80 = .sdata2:0x801F3B80; // type:object size:0x8 data:double +lbl_801F3B88 = .sdata2:0x801F3B88; // type:object size:0x8 data:double +lbl_801F3B90 = .sdata2:0x801F3B90; // type:object size:0x8 data:double +lbl_801F3B98 = .sdata2:0x801F3B98; // type:object size:0x8 data:double +lbl_801F3BA0 = .sdata2:0x801F3BA0; // type:object size:0x8 data:double +lbl_801F3BA8 = .sdata2:0x801F3BA8; // type:object size:0x8 data:double +lbl_801F3BB0 = .sdata2:0x801F3BB0; // type:object size:0x8 data:double +lbl_801F3BB8 = .sdata2:0x801F3BB8; // type:object size:0x8 data:double +lbl_801F3BC0 = .sdata2:0x801F3BC0; // type:object size:0x8 data:double +lbl_801F3BC8 = .sdata2:0x801F3BC8; // type:object size:0x8 data:double +lbl_801F3BD0 = .sdata2:0x801F3BD0; // type:object size:0x8 data:double +lbl_801F3BD8 = .sdata2:0x801F3BD8; // type:object size:0x8 data:double +lbl_801F3BE0 = .sdata2:0x801F3BE0; // type:object size:0x8 data:double +lbl_801F3BE8 = .sdata2:0x801F3BE8; // type:object size:0x8 data:double +lbl_801F3BF0 = .sdata2:0x801F3BF0; // type:object size:0x8 data:double +lbl_801F3BF8 = .sdata2:0x801F3BF8; // type:object size:0x8 data:double +lbl_801F3C00 = .sdata2:0x801F3C00; // type:object size:0x8 data:double +lbl_801F3C08 = .sdata2:0x801F3C08; // type:object size:0x8 data:double +lbl_801F3C10 = .sdata2:0x801F3C10; // type:object size:0x8 data:double +lbl_801F3C18 = .sdata2:0x801F3C18; // type:object size:0x8 data:double +lbl_801F3C20 = .sdata2:0x801F3C20; // type:object size:0x8 data:double +lbl_801F3C28 = .sdata2:0x801F3C28; // type:object size:0x8 data:double +lbl_801F3C30 = .sdata2:0x801F3C30; // type:object size:0x8 data:double +lbl_801F3C38 = .sdata2:0x801F3C38; // type:object size:0x8 data:double +lbl_801F3C40 = .sdata2:0x801F3C40; // type:object size:0x8 data:double +lbl_801F3C48 = .sdata2:0x801F3C48; // type:object size:0x8 data:double +lbl_801F3C50 = .sdata2:0x801F3C50; // type:object size:0x8 data:double +lbl_801F3C58 = .sdata2:0x801F3C58; // type:object size:0x8 data:double +lbl_801F3C60 = .sdata2:0x801F3C60; // type:object size:0x8 data:double +lbl_801F3C68 = .sdata2:0x801F3C68; // type:object size:0x8 data:double +lbl_801F3C70 = .sdata2:0x801F3C70; // type:object size:0x8 data:double +lbl_801F3C78 = .sdata2:0x801F3C78; // type:object size:0x8 data:double +lbl_801F3C80 = .sdata2:0x801F3C80; // type:object size:0x8 data:double +lbl_801F3C88 = .sdata2:0x801F3C88; // type:object size:0x8 data:double +lbl_801F3C90 = .sdata2:0x801F3C90; // type:object size:0x8 data:double +lbl_801F3C98 = .sdata2:0x801F3C98; // type:object size:0x8 data:double +lbl_801F3CA0 = .sdata2:0x801F3CA0; // type:object size:0x8 data:double +lbl_801F3CA8 = .sdata2:0x801F3CA8; // type:object size:0x8 data:double +lbl_801F3CB0 = .sdata2:0x801F3CB0; // type:object size:0x8 data:double +lbl_801F3CB8 = .sdata2:0x801F3CB8; // type:object size:0x8 data:double +lbl_801F3CC0 = .sdata2:0x801F3CC0; // type:object size:0x8 data:double +lbl_801F3CC8 = .sdata2:0x801F3CC8; // type:object size:0x8 data:double +lbl_801F3CD0 = .sdata2:0x801F3CD0; // type:object size:0x8 data:double +lbl_801F3CD8 = .sdata2:0x801F3CD8; // type:object size:0x8 data:double +lbl_801F3CE0 = .sdata2:0x801F3CE0; // type:object size:0x8 data:double +lbl_801F3CE8 = .sdata2:0x801F3CE8; // type:object size:0x8 data:double +lbl_801F3CF0 = .sdata2:0x801F3CF0; // type:object size:0x8 data:double +lbl_801F3CF8 = .sdata2:0x801F3CF8; // type:object size:0x8 data:double +lbl_801F3D00 = .sdata2:0x801F3D00; // type:object size:0x8 data:double +lbl_801F3D08 = .sdata2:0x801F3D08; // type:object size:0x8 data:double +lbl_801F3D10 = .sdata2:0x801F3D10; // type:object size:0x8 data:double +lbl_801F3D18 = .sdata2:0x801F3D18; // type:object size:0x8 data:double +lbl_801F3D20 = .sdata2:0x801F3D20; // type:object size:0x8 data:double +lbl_801F3D28 = .sdata2:0x801F3D28; // type:object size:0x8 data:double +lbl_801F3D30 = .sdata2:0x801F3D30; // type:object size:0x8 data:double +lbl_801F3D38 = .sdata2:0x801F3D38; // type:object size:0x8 data:double +lbl_801F3D40 = .sdata2:0x801F3D40; // type:object size:0x8 data:double +lbl_801F3D48 = .sdata2:0x801F3D48; // type:object size:0x8 data:double +lbl_801F3D50 = .sdata2:0x801F3D50; // type:object size:0x8 data:double +lbl_801F3D58 = .sdata2:0x801F3D58; // type:object size:0x8 data:double +lbl_801F3D60 = .sdata2:0x801F3D60; // type:object size:0x4 data:float +lbl_801F3D64 = .sdata2:0x801F3D64; // type:object size:0x4 data:float +lbl_801F3D68 = .sdata2:0x801F3D68; // type:object size:0x4 data:float +lbl_801F3D70 = .sdata2:0x801F3D70; // type:object size:0x8 data:double +lbl_801F3D78 = .sdata2:0x801F3D78; // type:object size:0x8 data:double +lbl_801F3D80 = .sdata2:0x801F3D80; // type:object size:0x4 data:float +lbl_801F3D84 = .sdata2:0x801F3D84; // type:object size:0x4 data:float +lbl_801F3D88 = .sdata2:0x801F3D88; // type:object size:0x4 data:float +lbl_801F3D8C = .sdata2:0x801F3D8C; // type:object size:0x4 data:float +lbl_801F3D90 = .sdata2:0x801F3D90; // type:object size:0x4 data:float +lbl_801F3D94 = .sdata2:0x801F3D94; // type:object size:0x4 data:float +lbl_801F3D98 = .sdata2:0x801F3D98; // type:object size:0x4 data:float +lbl_801F3D9C = .sdata2:0x801F3D9C; // type:object size:0x4 data:float +lbl_801F3DA0 = .sdata2:0x801F3DA0; // type:object size:0x4 data:float +lbl_801F3DA8 = .sdata2:0x801F3DA8; // type:object size:0x8 data:double +lbl_801F3DB0 = .sdata2:0x801F3DB0; // type:object size:0x8 data:double +lbl_801F3DB8 = .sdata2:0x801F3DB8; // type:object size:0x4 data:float +lbl_801F3DBC = .sdata2:0x801F3DBC; // type:object size:0x4 data:float +lbl_801F3DC0 = .sdata2:0x801F3DC0; // type:object size:0x4 data:float +lbl_801F3DC8 = .sdata2:0x801F3DC8; // type:object size:0x8 data:double +lbl_801F3DD0 = .sdata2:0x801F3DD0; // type:object size:0x8 data:float +lbl_801F3DD8 = .sdata2:0x801F3DD8; // type:object size:0x4 data:float +lbl_801F3DDC = .sdata2:0x801F3DDC; // type:object size:0x4 data:float +lbl_801F3DE0 = .sdata2:0x801F3DE0; // type:object size:0x4 data:float +lbl_801F3DE8 = .sdata2:0x801F3DE8; // type:object size:0x8 data:double +lbl_801F3DF0 = .sdata2:0x801F3DF0; // type:object size:0x8 data:double +lbl_801F3DF8 = .sdata2:0x801F3DF8; // type:object size:0x4 data:float +lbl_801F3DFC = .sdata2:0x801F3DFC; // type:object size:0x4 data:float +lbl_801F3E00 = .sdata2:0x801F3E00; // type:object size:0x4 data:float +lbl_801F3E08 = .sdata2:0x801F3E08; // type:object size:0x8 data:double +lbl_801F3E10 = .sdata2:0x801F3E10; // type:object size:0x4 data:float +lbl_801F3E18 = .sdata2:0x801F3E18; // type:object size:0x8 data:double +lbl_801F3E20 = .sdata2:0x801F3E20; // type:object size:0x4 data:float +lbl_801F3E24 = .sdata2:0x801F3E24; // type:object size:0x4 data:float +lbl_801F3E28 = .sdata2:0x801F3E28; // type:object size:0x8 data:double +lbl_801F3E30 = .sdata2:0x801F3E30; // type:object size:0x4 data:float +lbl_801F3E38 = .sdata2:0x801F3E38; // type:object size:0x8 data:double +lbl_801F3E40 = .sdata2:0x801F3E40; // type:object size:0x4 data:float +lbl_801F3E44 = .sdata2:0x801F3E44; // type:object size:0x4 data:float +lbl_801F3E48 = .sdata2:0x801F3E48; // type:object size:0x4 data:float +lbl_801F3E50 = .sdata2:0x801F3E50; // type:object size:0x8 data:double +lbl_801F3E58 = .sdata2:0x801F3E58; // type:object size:0x4 data:float +lbl_801F3E60 = .sdata2:0x801F3E60; // type:object size:0x8 data:double +lbl_801F3E68 = .sdata2:0x801F3E68; // type:object size:0x4 data:float +lbl_801F3E6C = .sdata2:0x801F3E6C; // type:object size:0x4 data:float +lbl_801F3E70 = .sdata2:0x801F3E70; // type:object size:0x8 data:float +lbl_801F3E78 = .sdata2:0x801F3E78; // type:object size:0x4 data:float +lbl_801F3E80 = .sdata2:0x801F3E80; // type:object size:0x8 data:double +lbl_801F3E88 = .sdata2:0x801F3E88; // type:object size:0x4 data:float +lbl_801F3E8C = .sdata2:0x801F3E8C; // type:object size:0x4 data:float +lbl_801F3E90 = .sdata2:0x801F3E90; // type:object size:0x8 data:double +lbl_801F3E98 = .sdata2:0x801F3E98; // type:object size:0x4 data:float +lbl_801F3E9C = .sdata2:0x801F3E9C; // type:object size:0x4 data:float +lbl_801F3EA0 = .sdata2:0x801F3EA0; // type:object size:0x8 data:double +lbl_801F3EA8 = .sdata2:0x801F3EA8; // type:object size:0x4 data:float +lbl_801F3EAC = .sdata2:0x801F3EAC; // type:object size:0x4 data:float +lbl_801F3EB0 = .sdata2:0x801F3EB0; // type:object size:0x4 data:float +lbl_801F3EB4 = .sdata2:0x801F3EB4; // type:object size:0x4 data:float +lbl_801F3EB8 = .sdata2:0x801F3EB8; // type:object size:0x4 data:float +lbl_801F3EBC = .sdata2:0x801F3EBC; // type:object size:0x4 data:float +lbl_801F3EC0 = .sdata2:0x801F3EC0; // type:object size:0x8 data:float +lbl_801F3EC8 = .sdata2:0x801F3EC8; // type:object size:0x4 data:float +lbl_801F3ED0 = .sdata2:0x801F3ED0; // type:object size:0x8 data:double +lbl_801F3ED8 = .sdata2:0x801F3ED8; // type:object size:0x8 data:double +lbl_801F3EE0 = .sdata2:0x801F3EE0; // type:object size:0x8 data:float +lbl_801F3EE8 = .sdata2:0x801F3EE8; // type:object size:0x4 data:float +lbl_801F3EEC = .sdata2:0x801F3EEC; // type:object size:0x4 data:float +lbl_801F3EF0 = .sdata2:0x801F3EF0; // type:object size:0x4 data:float +lbl_801F3EF8 = .sdata2:0x801F3EF8; // type:object size:0x8 data:double +lbl_801F3F00 = .sdata2:0x801F3F00; // type:object size:0x4 data:float +lbl_801F3F04 = .sdata2:0x801F3F04; // type:object size:0x4 data:float +lbl_801F3F08 = .sdata2:0x801F3F08; // type:object size:0x4 data:float +lbl_801F3F0C = .sdata2:0x801F3F0C; // type:object size:0x4 data:float +lbl_801F3F10 = .sdata2:0x801F3F10; // type:object size:0x4 data:float +lbl_801F3F14 = .sdata2:0x801F3F14; // type:object size:0x4 data:float +lbl_801F3F18 = .sdata2:0x801F3F18; // type:object size:0x8 data:double +lbl_801F3F20 = .sdata2:0x801F3F20; // type:object size:0x4 data:float +lbl_801F3F24 = .sdata2:0x801F3F24; // type:object size:0x4 data:float +lbl_801F3F28 = .sdata2:0x801F3F28; // type:object size:0x8 data:double +lbl_801F3F30 = .sdata2:0x801F3F30; // type:object size:0x4 data:float +lbl_801F3F34 = .sdata2:0x801F3F34; // type:object size:0x4 data:float +lbl_801F3F38 = .sdata2:0x801F3F38; // type:object size:0x8 data:double +lbl_801F3F40 = .sdata2:0x801F3F40; // type:object size:0x4 data:float +lbl_801F3F44 = .sdata2:0x801F3F44; // type:object size:0x4 data:float +lbl_801F3F48 = .sdata2:0x801F3F48; // type:object size:0x4 data:float +lbl_801F3F4C = .sdata2:0x801F3F4C; // type:object size:0x4 data:float +lbl_801F3F50 = .sdata2:0x801F3F50; // type:object size:0x4 data:float +lbl_801F3F54 = .sdata2:0x801F3F54; // type:object size:0x4 data:float +lbl_801F3F58 = .sdata2:0x801F3F58; // type:object size:0x8 data:double +lbl_801F3F60 = .sdata2:0x801F3F60; // type:object size:0x4 data:float +lbl_801F3F64 = .sdata2:0x801F3F64; // type:object size:0x4 data:float +lbl_801F3F68 = .sdata2:0x801F3F68; // type:object size:0x8 data:double +lbl_801F3F70 = .sdata2:0x801F3F70; // type:object size:0x8 data:double +lbl_801F3F78 = .sdata2:0x801F3F78; // type:object size:0x4 data:float +lbl_801F3F7C = .sdata2:0x801F3F7C; // type:object size:0x4 data:float +lbl_801F3F80 = .sdata2:0x801F3F80; // type:object size:0x4 data:float +lbl_801F3F88 = .sdata2:0x801F3F88; // type:object size:0x8 data:double +lbl_801F3F90 = .sdata2:0x801F3F90; // type:object size:0x4 data:4byte +lbl_801F3F94 = .sdata2:0x801F3F94; // type:object size:0x4 data:4byte +lbl_801F3F98 = .sdata2:0x801F3F98; // type:object size:0x4 data:float +lbl_801F3F9C = .sdata2:0x801F3F9C; // type:object size:0x4 data:float +lbl_801F3FA0 = .sdata2:0x801F3FA0; // type:object size:0x4 data:float +lbl_801F3FA4 = .sdata2:0x801F3FA4; // type:object size:0x4 data:float +lbl_801F3FA8 = .sdata2:0x801F3FA8; // type:object size:0x8 data:double +lbl_801F3FC0 = .sbss2:0x801F3FC0; // type:object size:0x1 data:byte +lbl_801F3FC1 = .sbss2:0x801F3FC1; // type:object size:0x1 data:byte +lbl_801F3FC2 = .sbss2:0x801F3FC2; // type:object size:0x1 data:byte +lbl_801F3FC3 = .sbss2:0x801F3FC3; // type:object size:0x1 data:byte +lbl_801F3FC4 = .sbss2:0x801F3FC4; // type:object size:0x1 data:byte +lbl_801F3FC5 = .sbss2:0x801F3FC5; // type:object size:0x1 data:byte +lbl_801F3FC6 = .sbss2:0x801F3FC6; // type:object size:0x1 data:byte +lbl_801F3FC7 = .sbss2:0x801F3FC7; // type:object size:0x1 data:byte diff --git a/config/GMPP01_02/build.sha1 b/config/GMPP01_02/build.sha1 new file mode 100644 index 00000000..fcf1ec59 --- /dev/null +++ b/config/GMPP01_02/build.sha1 @@ -0,0 +1,100 @@ +65ef91650e9201047f50a3c39c7693a21fff2b29 build/GMPP01_02/main.dol +7101a759bcd45edee5bbc00a36d347c1f787c2a1 build/GMPP01_02/_minigameDll/_minigameDll.rel +b60fe8dd6faa20663224d64651b80c25b9b202ef build/GMPP01_02/bootDll/bootDll.rel +eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 build/GMPP01_02/instDll/instDll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m302Dll/m302Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m303Dll/m303Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m330Dll/m330Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m333Dll/m333Dll.rel +cd3532af828e8217924296c4cadbd31ddd915a05 build/GMPP01_02/m402Dll/m402Dll.rel +b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 build/GMPP01_02/m403Dll/m403Dll.rel +56c825a1e0bbe33e3a0e1e70396c21af9b575243 build/GMPP01_02/m404Dll/m404Dll.rel +cc76ded0a41aea632fd9b3c5e37fe6d847107d91 build/GMPP01_02/m405Dll/m405Dll.rel +5c2aee9c8f10dc763c9ff763874f3a4b58880f02 build/GMPP01_02/m406Dll/m406Dll.rel +7133701b7c28a66f9d24ab64081e472d458dad51 build/GMPP01_02/m407dll/m407dll.rel +6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 build/GMPP01_02/m408Dll/m408Dll.rel +71a91946651b40cc217b08d293f23fbf01c7407a build/GMPP01_02/m409Dll/m409Dll.rel +e938c2f354224a6a5a7b015f9abae596298788ee build/GMPP01_02/m410Dll/m410Dll.rel +e29bae44753c7ce8e5213881b10d6b27c02c4f7a build/GMPP01_02/m411Dll/m411Dll.rel +23da1cff677f992bb76dcbf4a9f9061542b4be7f build/GMPP01_02/m412Dll/m412Dll.rel +6ed381e5b4d75eeab2c3ded39473a482f61ee32d build/GMPP01_02/m413Dll/m413Dll.rel +902f32cc75ac0030c7c531dbeefda055bc8d7f27 build/GMPP01_02/m414Dll/m414Dll.rel +7063ae505540bafebf802128d8d2f394b7f6f921 build/GMPP01_02/m415Dll/m415Dll.rel +2979d5f934b9099116fbd943a91d6a3bb56e6ec0 build/GMPP01_02/m416Dll/m416Dll.rel +b20482a2af7c839456fe7580dcbd92ca9984ec71 build/GMPP01_02/m417Dll/m417Dll.rel +762f56820668c74cdcde436a08419bdb59a35a89 build/GMPP01_02/m418Dll/m418Dll.rel +5fba3dfcfca6ef78eb46833f665019bca641063e build/GMPP01_02/m419Dll/m419Dll.rel +bb514277a33821093fd2acfae2cb86531b317d17 build/GMPP01_02/m420dll/m420dll.rel +216ba8bbc8905f33370ae651d478f6bd56c17b27 build/GMPP01_02/m421Dll/m421Dll.rel +6c152ddb5f518c9c6444030dfc30ab53ef931b40 build/GMPP01_02/m422Dll/m422Dll.rel +db80fcb993ce09d808de29d2488f2b1ab2afc8cd build/GMPP01_02/m423Dll/m423Dll.rel +827da0897edcc2706a3623722430d4e70512c653 build/GMPP01_02/m424Dll/m424Dll.rel +26eb36bfc9106af2462a0d7e013f5321dbaecdd1 build/GMPP01_02/m425Dll/m425Dll.rel +04b649fb6eb248e506cf15fdcfbed3e915a80682 build/GMPP01_02/m426Dll/m426Dll.rel +810a1c91f794897862ac9b6a4e076a70c6b0238a build/GMPP01_02/m427Dll/m427Dll.rel +888af662a228e349ea6a0c60e19de74f8fa47914 build/GMPP01_02/m428Dll/m428Dll.rel +88b2330f175d1346a71f67491dcf9eff62d2d2d1 build/GMPP01_02/m429Dll/m429Dll.rel +e611007dd71ab515de65e9a6879f0508193fd58a build/GMPP01_02/m430Dll/m430Dll.rel +6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad build/GMPP01_02/m431Dll/m431Dll.rel +17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d build/GMPP01_02/m432Dll/m432Dll.rel +ce90f494ced6f2611603c247bdc733a458b5a523 build/GMPP01_02/m433Dll/m433Dll.rel +100fe402942821dc8e5753f3cada5e2bf5ab6214 build/GMPP01_02/m434Dll/m434Dll.rel +4936db381fa068395cff28c0d635c5ec7cc7218f build/GMPP01_02/m435Dll/m435Dll.rel +ba1c3bdc5f250996a5c873791347ce4c20b38692 build/GMPP01_02/m436Dll/m436Dll.rel +7273786a2995182baf9a85148c5974097999fe8e build/GMPP01_02/m437Dll/m437Dll.rel +d7c4bdf1729695a7348f8a36de2911db7aa24abb build/GMPP01_02/m438Dll/m438Dll.rel +4d5a719b49edb55e0b0b52c0d81b31c14d197d20 build/GMPP01_02/m439Dll/m439Dll.rel +469b18886221ae8a5b90f3e85b01ce6a01befb0b build/GMPP01_02/m440Dll/m440Dll.rel +7d6e99b67d2dde25d3fc75ac314c2a69be34137e build/GMPP01_02/m441Dll/m441Dll.rel +63af3c4f33fd362f17aa1be9f764d0549f92598d build/GMPP01_02/m442Dll/m442Dll.rel +5118a0bab1877455eae9002c3cc561d3360fd792 build/GMPP01_02/m443Dll/m443Dll.rel +a344672428b1e3a1d4bc3ce935472af529a6dd18 build/GMPP01_02/m444dll/m444dll.rel +02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 build/GMPP01_02/m445Dll/m445Dll.rel +2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 build/GMPP01_02/m446dll/m446dll.rel +0640357fe4d0148dac4bc382c8231410e24fe951 build/GMPP01_02/m447dll/m447dll.rel +78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 build/GMPP01_02/m448Dll/m448Dll.rel +fcf6e4b0089e19ffddf01a119c8c515a4acc943a build/GMPP01_02/m449Dll/m449Dll.rel +ebcf95781e8078813ed041dd0a869ae2e413679b build/GMPP01_02/m450Dll/m450Dll.rel +aa16b743f7b64f22abfd8bb93646883cc73bd7e0 build/GMPP01_02/m451Dll/m451Dll.rel +f6fd7a6537e56c535d02ac4a48c9008605f93ea1 build/GMPP01_02/m453Dll/m453Dll.rel +cc3431f55b523d474a952f3a0e927fac6b5402ab build/GMPP01_02/m455Dll/m455Dll.rel +09797251306bbd0f6fd712d6f832128ca8c58690 build/GMPP01_02/m456Dll/m456Dll.rel +8a992a09077fd5e1f6ca3e717547792938a519c1 build/GMPP01_02/m457Dll/m457Dll.rel +5dea2127d51d621b30d78b22cfa32327797e6e0b build/GMPP01_02/m458Dll/m458Dll.rel +e96dafe5949909cb7cc839174aa38e8e6661a63b build/GMPP01_02/m459dll/m459dll.rel +ea1e0bda22675840d39c74117e2a11ffe45f8dd4 build/GMPP01_02/m460Dll/m460Dll.rel +8d515f3b92a786df53bb88291b5cfc4bc59a3c8d build/GMPP01_02/m461Dll/m461Dll.rel +f02ba47e4459d9b0de174c5619a4efe61942962d build/GMPP01_02/m462Dll/m462Dll.rel +352ad6d84ded6cf28b9ff2f9e5da8812ac9164db build/GMPP01_02/m463Dll/m463Dll.rel +4705ada9d259a81ab2815fee3516f6217d848dd9 build/GMPP01_02/mentDll/mentDll.rel +b966ce340e98dbda624ff80f96c78d51ff1ed687 build/GMPP01_02/messDll/messDll.rel +7a3fed787df2d1bc942efd56a160eaf59605b94f build/GMPP01_02/mgmodedll/mgmodedll.rel +1e5bf1777b1470fcead2174c25b291b8f0513284 build/GMPP01_02/modeltestDll/modeltestDll.rel +d958038528a774801a4f5a0aee9e7aaae4bd94ce build/GMPP01_02/modeseldll/modeseldll.rel +a3e1e06937703f98191f4080e092bf06c4f449b3 build/GMPP01_02/mpexDll/mpexDll.rel +86ff8288bb92472376d02cade1d3c9603b613c57 build/GMPP01_02/msetupDll/msetupDll.rel +24b3e03e35f5bd395ef80a14babae724b7414190 build/GMPP01_02/mstory2Dll/mstory2Dll.rel +ccac71c67e5171a02b4a086df4d2daad81455466 build/GMPP01_02/mstory3Dll/mstory3Dll.rel +a8eee3981f4965412490cb9eef76aaa798957db1 build/GMPP01_02/mstory4Dll/mstory4Dll.rel +4ef3463c5dc60771468c6ab033dda1391c39d689 build/GMPP01_02/mstoryDll/mstoryDll.rel +45619d95e61d9296f25d94d7c6756f397fb89bee build/GMPP01_02/nisDll/nisDll.rel +1304967e3aa58a46492d4c736a7c86cf8a3b2e11 build/GMPP01_02/option/option.rel +7845814c6be2546930cfd8e0b9dec263fc1a959f build/GMPP01_02/present/present.rel +d9bd10433d1e2a6c0c4d9f942b766d743f99deec build/GMPP01_02/resultDll/resultDll.rel +c13262cf14f00e1d70bd65d20bbf988479816ca7 build/GMPP01_02/safDll/safDll.rel +51f53e1398c86c5a22251a457e3af86339b4b11f build/GMPP01_02/selmenuDll/selmenuDll.rel +af869e37d004f687fab2ff6897d75d6c15e31a00 build/GMPP01_02/staffDll/staffDll.rel +21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 build/GMPP01_02/subchrselDll/subchrselDll.rel +70ee81af67a4f55de2fef65823583d22312f09be build/GMPP01_02/w01Dll/w01Dll.rel +33b5663ece821df4dbc50870e00de0e22e099efd build/GMPP01_02/w02Dll/w02Dll.rel +97aa16f847cdf2d6fd014f06df14c55f5f02024d build/GMPP01_02/w03Dll/w03Dll.rel +135cf03d803b9d8d39721b2a96769909aa719ee6 build/GMPP01_02/w04Dll/w04Dll.rel +e6d07092b69cc3b0514d9c12e3f5949edeb25f5f build/GMPP01_02/w05Dll/w05Dll.rel +0d5445461f58fac4c043c75bed7237b7f4045188 build/GMPP01_02/w06Dll/w06Dll.rel +5678fedd4a0490aeb9703328e959fdedea7da117 build/GMPP01_02/w10Dll/w10Dll.rel +58ae9e311cc8bd0291921480f423e2ad4774e1a2 build/GMPP01_02/w20Dll/w20Dll.rel +8ea052be8c7585a1ab152682a0698b631c5b566f build/GMPP01_02/w21Dll/w21Dll.rel +8987f11fafd11f69161ca275967afe9c8b4e7b20 build/GMPP01_02/ztardll/ztardll.rel +d59c60b0149a85782fa98d1a4da6cc768a09b473 build/GMPP01_02/E3setupDLL/E3setupDLL.rel +eba8a17e8b263bc9cd601b1aea7e698a8785416a build/GMPP01_02/m300Dll/m300Dll.rel +c457a4a45ebae776331484ba94f5798041a77a57 build/GMPP01_02/m401Dll/m401Dll.rel diff --git a/config/GMPP01_02/config.yml b/config/GMPP01_02/config.yml new file mode 100644 index 00000000..fa72e0a2 --- /dev/null +++ b/config/GMPP01_02/config.yml @@ -0,0 +1,643 @@ +object_base: orig/GMPP01_02 +object: sys/main.dol +hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 +symbols: config/GMPP01_00/symbols.txt +splits: config/GMPP01_00/splits.txt +quick_analysis: true # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, lbl_801D40D0] + +detect_objects: true +detect_strings: true +fill_gaps: true +modules: +- object: files/dll/_minigameDll.rel + hash: 7101a759bcd45edee5bbc00a36d347c1f787c2a1 + symbols: config/GMPP01_00/rels/_minigameDll/symbols.txt + splits: config/GMPP01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + hash: b60fe8dd6faa20663224d64651b80c25b9b202ef + symbols: config/GMPP01_00/rels/bootDll/symbols.txt + splits: config/GMPP01_00/rels/bootDll/splits.txt + links: [] + extract: + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc +- object: files/dll/instDll.rel + hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 + symbols: config/GMPP01_00/rels/instDll/symbols.txt + splits: config/GMPP01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m302Dll/symbols.txt + splits: config/GMPP01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m303Dll/symbols.txt + splits: config/GMPP01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m330Dll/symbols.txt + splits: config/GMPP01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m333Dll/symbols.txt + splits: config/GMPP01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + hash: cd3532af828e8217924296c4cadbd31ddd915a05 + symbols: config/GMPP01_00/rels/m402Dll/symbols.txt + splits: config/GMPP01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + hash: b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 + symbols: config/GMPP01_00/rels/m403Dll/symbols.txt + splits: config/GMPP01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + hash: 56c825a1e0bbe33e3a0e1e70396c21af9b575243 + symbols: config/GMPP01_00/rels/m404Dll/symbols.txt + splits: config/GMPP01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + hash: cc76ded0a41aea632fd9b3c5e37fe6d847107d91 + symbols: config/GMPP01_00/rels/m405Dll/symbols.txt + splits: config/GMPP01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + hash: 5c2aee9c8f10dc763c9ff763874f3a4b58880f02 + symbols: config/GMPP01_00/rels/m406Dll/symbols.txt + splits: config/GMPP01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + hash: 7133701b7c28a66f9d24ab64081e472d458dad51 + symbols: config/GMPP01_00/rels/m407dll/symbols.txt + splits: config/GMPP01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + hash: 6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 + symbols: config/GMPP01_00/rels/m408Dll/symbols.txt + splits: config/GMPP01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + hash: 71a91946651b40cc217b08d293f23fbf01c7407a + symbols: config/GMPP01_00/rels/m409Dll/symbols.txt + splits: config/GMPP01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + hash: e938c2f354224a6a5a7b015f9abae596298788ee + symbols: config/GMPP01_00/rels/m410Dll/symbols.txt + splits: config/GMPP01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + hash: e29bae44753c7ce8e5213881b10d6b27c02c4f7a + symbols: config/GMPP01_00/rels/m411Dll/symbols.txt + splits: config/GMPP01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + hash: 23da1cff677f992bb76dcbf4a9f9061542b4be7f + symbols: config/GMPP01_00/rels/m412Dll/symbols.txt + splits: config/GMPP01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + hash: 6ed381e5b4d75eeab2c3ded39473a482f61ee32d + symbols: config/GMPP01_00/rels/m413Dll/symbols.txt + splits: config/GMPP01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + hash: 902f32cc75ac0030c7c531dbeefda055bc8d7f27 + symbols: config/GMPP01_00/rels/m414Dll/symbols.txt + splits: config/GMPP01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + hash: 7063ae505540bafebf802128d8d2f394b7f6f921 + symbols: config/GMPP01_00/rels/m415Dll/symbols.txt + splits: config/GMPP01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + hash: 2979d5f934b9099116fbd943a91d6a3bb56e6ec0 + symbols: config/GMPP01_00/rels/m416Dll/symbols.txt + splits: config/GMPP01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + hash: b20482a2af7c839456fe7580dcbd92ca9984ec71 + symbols: config/GMPP01_00/rels/m417Dll/symbols.txt + splits: config/GMPP01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + hash: 762f56820668c74cdcde436a08419bdb59a35a89 + symbols: config/GMPP01_00/rels/m418Dll/symbols.txt + splits: config/GMPP01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + hash: 5fba3dfcfca6ef78eb46833f665019bca641063e + symbols: config/GMPP01_00/rels/m419Dll/symbols.txt + splits: config/GMPP01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + hash: bb514277a33821093fd2acfae2cb86531b317d17 + symbols: config/GMPP01_00/rels/m420dll/symbols.txt + splits: config/GMPP01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + hash: 216ba8bbc8905f33370ae651d478f6bd56c17b27 + symbols: config/GMPP01_00/rels/m421Dll/symbols.txt + splits: config/GMPP01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + hash: 6c152ddb5f518c9c6444030dfc30ab53ef931b40 + symbols: config/GMPP01_00/rels/m422Dll/symbols.txt + splits: config/GMPP01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + hash: db80fcb993ce09d808de29d2488f2b1ab2afc8cd + symbols: config/GMPP01_00/rels/m423Dll/symbols.txt + splits: config/GMPP01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + hash: 827da0897edcc2706a3623722430d4e70512c653 + symbols: config/GMPP01_00/rels/m424Dll/symbols.txt + splits: config/GMPP01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + hash: 26eb36bfc9106af2462a0d7e013f5321dbaecdd1 + symbols: config/GMPP01_00/rels/m425Dll/symbols.txt + splits: config/GMPP01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + hash: 04b649fb6eb248e506cf15fdcfbed3e915a80682 + symbols: config/GMPP01_00/rels/m426Dll/symbols.txt + splits: config/GMPP01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + hash: 810a1c91f794897862ac9b6a4e076a70c6b0238a + symbols: config/GMPP01_00/rels/m427Dll/symbols.txt + splits: config/GMPP01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + hash: 888af662a228e349ea6a0c60e19de74f8fa47914 + symbols: config/GMPP01_00/rels/m428Dll/symbols.txt + splits: config/GMPP01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + hash: 88b2330f175d1346a71f67491dcf9eff62d2d2d1 + symbols: config/GMPP01_00/rels/m429Dll/symbols.txt + splits: config/GMPP01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + hash: e611007dd71ab515de65e9a6879f0508193fd58a + symbols: config/GMPP01_00/rels/m430Dll/symbols.txt + splits: config/GMPP01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + hash: 6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad + symbols: config/GMPP01_00/rels/m431Dll/symbols.txt + splits: config/GMPP01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + hash: 17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d + symbols: config/GMPP01_00/rels/m432Dll/symbols.txt + splits: config/GMPP01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + hash: ce90f494ced6f2611603c247bdc733a458b5a523 + symbols: config/GMPP01_00/rels/m433Dll/symbols.txt + splits: config/GMPP01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + hash: 100fe402942821dc8e5753f3cada5e2bf5ab6214 + symbols: config/GMPP01_00/rels/m434Dll/symbols.txt + splits: config/GMPP01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + hash: 4936db381fa068395cff28c0d635c5ec7cc7218f + symbols: config/GMPP01_00/rels/m435Dll/symbols.txt + splits: config/GMPP01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + hash: ba1c3bdc5f250996a5c873791347ce4c20b38692 + symbols: config/GMPP01_00/rels/m436Dll/symbols.txt + splits: config/GMPP01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + hash: 7273786a2995182baf9a85148c5974097999fe8e + symbols: config/GMPP01_00/rels/m437Dll/symbols.txt + splits: config/GMPP01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + hash: d7c4bdf1729695a7348f8a36de2911db7aa24abb + symbols: config/GMPP01_00/rels/m438Dll/symbols.txt + splits: config/GMPP01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + hash: 4d5a719b49edb55e0b0b52c0d81b31c14d197d20 + symbols: config/GMPP01_00/rels/m439Dll/symbols.txt + splits: config/GMPP01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + hash: 469b18886221ae8a5b90f3e85b01ce6a01befb0b + symbols: config/GMPP01_00/rels/m440Dll/symbols.txt + splits: config/GMPP01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + hash: 7d6e99b67d2dde25d3fc75ac314c2a69be34137e + symbols: config/GMPP01_00/rels/m441Dll/symbols.txt + splits: config/GMPP01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + hash: 63af3c4f33fd362f17aa1be9f764d0549f92598d + symbols: config/GMPP01_00/rels/m442Dll/symbols.txt + splits: config/GMPP01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + hash: 5118a0bab1877455eae9002c3cc561d3360fd792 + symbols: config/GMPP01_00/rels/m443Dll/symbols.txt + splits: config/GMPP01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + hash: a344672428b1e3a1d4bc3ce935472af529a6dd18 + symbols: config/GMPP01_02/rels/m444dll/symbols.txt + splits: config/GMPP01_02/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + hash: 02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 + symbols: config/GMPP01_00/rels/m445Dll/symbols.txt + splits: config/GMPP01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + hash: 2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 + symbols: config/GMPP01_00/rels/m446dll/symbols.txt + splits: config/GMPP01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + hash: 0640357fe4d0148dac4bc382c8231410e24fe951 + symbols: config/GMPP01_00/rels/m447dll/symbols.txt + splits: config/GMPP01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + hash: 78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 + symbols: config/GMPP01_00/rels/m448Dll/symbols.txt + splits: config/GMPP01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + hash: fcf6e4b0089e19ffddf01a119c8c515a4acc943a + symbols: config/GMPP01_00/rels/m449Dll/symbols.txt + splits: config/GMPP01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + hash: ebcf95781e8078813ed041dd0a869ae2e413679b + symbols: config/GMPP01_00/rels/m450Dll/symbols.txt + splits: config/GMPP01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + hash: aa16b743f7b64f22abfd8bb93646883cc73bd7e0 + symbols: config/GMPP01_00/rels/m451Dll/symbols.txt + splits: config/GMPP01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + hash: f6fd7a6537e56c535d02ac4a48c9008605f93ea1 + symbols: config/GMPP01_00/rels/m453Dll/symbols.txt + splits: config/GMPP01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + hash: cc3431f55b523d474a952f3a0e927fac6b5402ab + symbols: config/GMPP01_00/rels/m455Dll/symbols.txt + splits: config/GMPP01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + hash: 09797251306bbd0f6fd712d6f832128ca8c58690 + symbols: config/GMPP01_00/rels/m456Dll/symbols.txt + splits: config/GMPP01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + hash: 8a992a09077fd5e1f6ca3e717547792938a519c1 + symbols: config/GMPP01_00/rels/m457Dll/symbols.txt + splits: config/GMPP01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + hash: 5dea2127d51d621b30d78b22cfa32327797e6e0b + symbols: config/GMPP01_00/rels/m458Dll/symbols.txt + splits: config/GMPP01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + hash: e96dafe5949909cb7cc839174aa38e8e6661a63b + symbols: config/GMPP01_00/rels/m459dll/symbols.txt + splits: config/GMPP01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + hash: ea1e0bda22675840d39c74117e2a11ffe45f8dd4 + symbols: config/GMPP01_00/rels/m460Dll/symbols.txt + splits: config/GMPP01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + hash: 8d515f3b92a786df53bb88291b5cfc4bc59a3c8d + symbols: config/GMPP01_00/rels/m461Dll/symbols.txt + splits: config/GMPP01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + hash: f02ba47e4459d9b0de174c5619a4efe61942962d + symbols: config/GMPP01_00/rels/m462Dll/symbols.txt + splits: config/GMPP01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + hash: 352ad6d84ded6cf28b9ff2f9e5da8812ac9164db + symbols: config/GMPP01_00/rels/m463Dll/symbols.txt + splits: config/GMPP01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + hash: 4705ada9d259a81ab2815fee3516f6217d848dd9 + symbols: config/GMPP01_00/rels/mentDll/symbols.txt + splits: config/GMPP01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/messDll.rel + hash: b966ce340e98dbda624ff80f96c78d51ff1ed687 + symbols: config/GMPP01_00/rels/messDll/symbols.txt + splits: config/GMPP01_00/rels/messDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + hash: 7a3fed787df2d1bc942efd56a160eaf59605b94f + symbols: config/GMPP01_00/rels/mgmodedll/symbols.txt + splits: config/GMPP01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + hash: 1e5bf1777b1470fcead2174c25b291b8f0513284 + symbols: config/GMPP01_00/rels/modeltestDll/symbols.txt + splits: config/GMPP01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + hash: d958038528a774801a4f5a0aee9e7aaae4bd94ce + symbols: config/GMPP01_00/rels/modeseldll/symbols.txt + splits: config/GMPP01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + hash: a3e1e06937703f98191f4080e092bf06c4f449b3 + symbols: config/GMPP01_00/rels/mpexDll/symbols.txt + splits: config/GMPP01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + hash: 86ff8288bb92472376d02cade1d3c9603b613c57 + symbols: config/GMPP01_00/rels/msetupDll/symbols.txt + splits: config/GMPP01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + hash: 24b3e03e35f5bd395ef80a14babae724b7414190 + symbols: config/GMPP01_02/rels/mstory2Dll/symbols.txt + splits: config/GMPP01_02/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + hash: ccac71c67e5171a02b4a086df4d2daad81455466 + symbols: config/GMPP01_02/rels/mstory3Dll/symbols.txt + splits: config/GMPP01_02/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + hash: a8eee3981f4965412490cb9eef76aaa798957db1 + symbols: config/GMPP01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + hash: 4ef3463c5dc60771468c6ab033dda1391c39d689 + symbols: config/GMPP01_02/rels/mstoryDll/symbols.txt + splits: config/GMPP01_02/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + hash: 45619d95e61d9296f25d94d7c6756f397fb89bee + symbols: config/GMPP01_00/rels/nisDll/symbols.txt + splits: config/GMPP01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + hash: 1304967e3aa58a46492d4c736a7c86cf8a3b2e11 + symbols: config/GMPP01_00/rels/option/symbols.txt + splits: config/GMPP01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + hash: 7845814c6be2546930cfd8e0b9dec263fc1a959f + symbols: config/GMPP01_00/rels/present/symbols.txt + splits: config/GMPP01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + hash: d9bd10433d1e2a6c0c4d9f942b766d743f99deec + symbols: config/GMPP01_00/rels/resultDll/symbols.txt + splits: config/GMPP01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + hash: c13262cf14f00e1d70bd65d20bbf988479816ca7 + symbols: config/GMPP01_00/rels/safDll/symbols.txt + splits: config/GMPP01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + hash: 51f53e1398c86c5a22251a457e3af86339b4b11f + symbols: config/GMPP01_00/rels/selmenuDll/symbols.txt + splits: config/GMPP01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + hash: af869e37d004f687fab2ff6897d75d6c15e31a00 + symbols: config/GMPP01_00/rels/staffDll/symbols.txt + splits: config/GMPP01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + hash: 21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 + symbols: config/GMPP01_00/rels/subchrselDll/symbols.txt + splits: config/GMPP01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + hash: 70ee81af67a4f55de2fef65823583d22312f09be + symbols: config/GMPP01_00/rels/w01Dll/symbols.txt + splits: config/GMPP01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + hash: 33b5663ece821df4dbc50870e00de0e22e099efd + symbols: config/GMPP01_00/rels/w02Dll/symbols.txt + splits: config/GMPP01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + hash: 97aa16f847cdf2d6fd014f06df14c55f5f02024d + symbols: config/GMPP01_00/rels/w03Dll/symbols.txt + splits: config/GMPP01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + hash: 135cf03d803b9d8d39721b2a96769909aa719ee6 + symbols: config/GMPP01_00/rels/w04Dll/symbols.txt + splits: config/GMPP01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + hash: e6d07092b69cc3b0514d9c12e3f5949edeb25f5f + symbols: config/GMPP01_00/rels/w05Dll/symbols.txt + splits: config/GMPP01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + hash: 0d5445461f58fac4c043c75bed7237b7f4045188 + symbols: config/GMPP01_00/rels/w06Dll/symbols.txt + splits: config/GMPP01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + hash: 5678fedd4a0490aeb9703328e959fdedea7da117 + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 + symbols: config/GMPP01_00/rels/w20Dll/symbols.txt + splits: config/GMPP01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + hash: 8ea052be8c7585a1ab152682a0698b631c5b566f + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 + symbols: config/GMPP01_00/rels/ztardll/symbols.txt + splits: config/GMPP01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + hash: d59c60b0149a85782fa98d1a4da6cc768a09b473 + symbols: config/GMPP01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPP01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a + symbols: config/GMPP01_00/rels/m300Dll/symbols.txt + splits: config/GMPP01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + hash: c457a4a45ebae776331484ba94f5798041a77a57 + symbols: config/GMPP01_00/rels/m401Dll/symbols.txt + splits: config/GMPP01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_fr + binary: coveropen_fr.bin + header: coveropen_fr.inc +- symbol: fatalerror_fr + binary: fatalerror_fr.bin + header: fatalerror_fr.inc +- symbol: loading_fr + binary: loading_fr.bin + header: loading_fr.inc +- symbol: nodisc_fr + binary: nodisc_fr.bin + header: nodisc_fr.inc +- symbol: retryerror_fr + binary: retryerror_fr.bin + header: retryerror_fr.inc +- symbol: wrongdisc_fr + binary: wrongdisc_fr.bin + header: wrongdisc_fr.inc +- symbol: coveropen_ge + binary: coveropen_ge.bin + header: coveropen_ge.inc +- symbol: fatalerror_ge + binary: fatalerror_ge.bin + header: fatalerror_ge.inc +- symbol: loading_ge + binary: loading_ge.bin + header: loading_ge.inc +- symbol: nodisc_ge + binary: nodisc_ge.bin + header: nodisc_ge.inc +- symbol: retryerror_ge + binary: retryerror_ge.bin + header: retryerror_ge.inc +- symbol: wrongdisc_ge + binary: wrongdisc_ge.bin + header: wrongdisc_ge.inc +- symbol: coveropen_it + binary: coveropen_it.bin + header: coveropen_it.inc +- symbol: fatalerror_it + binary: fatalerror_it.bin + header: fatalerror_it.inc +- symbol: loading_it + binary: loading_it.bin + header: loading_it.inc +- symbol: nodisc_it + binary: nodisc_it.bin + header: nodisc_it.inc +- symbol: retryerror_it + binary: retryerror_it.bin + header: retryerror_it.inc +- symbol: wrongdisc_it + binary: wrongdisc_it.bin + header: wrongdisc_it.inc +- symbol: coveropen_sp + binary: coveropen_sp.bin + header: coveropen_sp.inc +- symbol: fatalerror_sp + binary: fatalerror_sp.bin + header: fatalerror_sp.inc +- symbol: loading_sp + binary: loading_sp.bin + header: loading_sp.inc +- symbol: nodisc_sp + binary: nodisc_sp.bin + header: nodisc_sp.inc +- symbol: retryerror_sp + binary: retryerror_sp.bin + header: retryerror_sp.inc +- symbol: wrongdisc_sp + binary: wrongdisc_sp.bin + header: wrongdisc_sp.inc diff --git a/config/GMPP01_02/rels/m444dll/splits.txt b/config/GMPP01_02/rels/m444dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_02/rels/m444dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/m444dll/symbols.txt b/config/GMPP01_02/rels/m444dll/symbols.txt new file mode 100644 index 00000000..45016f3f --- /dev/null +++ b/config/GMPP01_02/rels/m444dll/symbols.txt @@ -0,0 +1,321 @@ +_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:0x3D0 +fn_1_470 = .text:0x00000470; // type:function size:0x3788 +fn_1_3BF8 = .text:0x00003BF8; // type:function size:0x1270 +fn_1_4E68 = .text:0x00004E68; // type:function size:0x7C4 +fn_1_562C = .text:0x0000562C; // type:function size:0x1C4 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x6F4 +fn_1_5EE4 = .text:0x00005EE4; // type:function size:0x6F4 +fn_1_65D8 = .text:0x000065D8; // type:function size:0x824 +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xBC +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0xA0 +fn_1_6F58 = .text:0x00006F58; // type:function size:0x3B4 +fn_1_730C = .text:0x0000730C; // type:function size:0xC2C +fn_1_7F38 = .text:0x00007F38; // type:function size:0x2C4 +fn_1_81FC = .text:0x000081FC; // type:function size:0x90 +fn_1_828C = .text:0x0000828C; // type:function size:0xEC +fn_1_8378 = .text:0x00008378; // type:function size:0x128 +fn_1_84A0 = .text:0x000084A0; // type:function size:0x1F8 +fn_1_8698 = .text:0x00008698; // type:function size:0x7B4 +fn_1_8E4C = .text:0x00008E4C; // type:function size:0x648 +fn_1_9494 = .text:0x00009494; // type:function size:0x894 +fn_1_9D28 = .text:0x00009D28; // type:function size:0x3B4 +fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xB70 +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x618 +fn_1_B264 = .text:0x0000B264; // type:function size:0x1108 +fn_1_C36C = .text:0x0000C36C; // type:function size:0x528 +fn_1_C894 = .text:0x0000C894; // type:function size:0x2F4 +fn_1_CB88 = .text:0x0000CB88; // type:function size:0x140 +fn_1_CCC8 = .text:0x0000CCC8; // type:function size:0x298 +fn_1_CF60 = .text:0x0000CF60; // type:function size:0x194 +fn_1_D0F4 = .text:0x0000D0F4; // type:function size:0x244 +fn_1_D338 = .text:0x0000D338; // type:function size:0x3A8 +fn_1_D6E0 = .text:0x0000D6E0; // type:function size:0x290 +fn_1_D970 = .text:0x0000D970; // type:function size:0x138 +fn_1_DAA8 = .text:0x0000DAA8; // type:function size:0x78 +fn_1_DB20 = .text:0x0000DB20; // type:function size:0x2C +fn_1_DB4C = .text:0x0000DB4C; // type:function size:0x42C +_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 +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPP01_02/rels/mstory2Dll/splits.txt b/config/GMPP01_02/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..4359ae61 --- /dev/null +++ b/config/GMPP01_02/rels/mstory2Dll/splits.txt @@ -0,0 +1,54 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B5A4 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B5A4 end:0x0001B9B8 + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPP01_02/rels/mstory2Dll/symbols.txt b/config/GMPP01_02/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..7c85e645 --- /dev/null +++ b/config/GMPP01_02/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 +fn_1_199A0 = .text:0x000199E4; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019C2C; // type:function size:0x84 +fn_1_19C6C = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F58; // type:function size:0xB4 +fn_1_19FC8 = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A810; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B690; // type:function size:0x23C +fn_1_1B870 = .text:0x0001B8CC; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B968; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_02/rels/mstory3Dll/splits.txt b/config/GMPP01_02/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..5251d4d5 --- /dev/null +++ b/config/GMPP01_02/rels/mstory3Dll/splits.txt @@ -0,0 +1,31 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DEF0 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DEF0 end:0x0001F118 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPP01_02/rels/mstory3Dll/symbols.txt b/config/GMPP01_02/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..3113f967 --- /dev/null +++ b/config/GMPP01_02/rels/mstory3Dll/symbols.txt @@ -0,0 +1,550 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x210 +fn_1_17484 = .text:0x0001749C; // type:function size:0xEC +fn_1_17570 = .text:0x00017588; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DD8; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018098; // type:function size:0x9C +fn_1_1811C = .text:0x00018134; // type:function size:0x218 +fn_1_18334 = .text:0x0001834C; // type:function size:0x1B4 +fn_1_184E8 = .text:0x00018500; // type:function size:0x70 +fn_1_18558 = .text:0x00018570; // type:function size:0x110 +fn_1_18668 = .text:0x00018680; // type:function size:0x694 +fn_1_18CFC = .text:0x00018D14; // type:function size:0x29C +fn_1_18F98 = .text:0x00018FB0; // type:function size:0x1AC +fn_1_19144 = .text:0x0001915C; // type:function size:0xD0 +fn_1_19214 = .text:0x0001922C; // type:function size:0x28C +fn_1_194A0 = .text:0x000194B8; // type:function size:0xF0 +fn_1_19590 = .text:0x000195A8; // type:function size:0x224 +fn_1_197B4 = .text:0x000197CC; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A020; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BF14; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C30C; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C478; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C54C; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C92C; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CAB0; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB94; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC74; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD78; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CE08; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D13C; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D654; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D794; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8E4; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D97C; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA7C; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAC4; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE64; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DEF0; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E10C; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E120; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E130; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E144; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E154; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E570; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E838; // type:function size:0x8E0 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 scope:local +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B scope:local +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPP01_02/rels/mstoryDll/splits.txt b/config/GMPP01_02/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..7378f74e --- /dev/null +++ b/config/GMPP01_02/rels/mstoryDll/splits.txt @@ -0,0 +1,43 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141B8 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPP01_02/rels/mstoryDll/symbols.txt b/config/GMPP01_02/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..d7aca560 --- /dev/null +++ b/config/GMPP01_02/rels/mstoryDll/symbols.txt @@ -0,0 +1,500 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x210 +fn_1_13E2C = .text:0x00013E44; // type:function size:0x324 +fn_1_14150 = .text:0x00014168; // type:function size:0x50 +_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 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_02/rels/w04Dll/splits.txt b/config/GMPP01_02/rels/w04Dll/splits.txt new file mode 100644 index 00000000..c1698acd --- /dev/null +++ b/config/GMPP01_02/rels/w04Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .section2 type:data align:8 + .section3 type:data align:4 + .section4 type:data align:8 + .section5 type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/w04Dll/symbols.txt b/config/GMPP01_02/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..cc5cf0ab --- /dev/null +++ b/config/GMPP01_02/rels/w04Dll/symbols.txt @@ -0,0 +1,399 @@ +_prolog = .text:0x00000030; // type:function scope:global +_epilog = .text:0x00000094; // type:function scope:global +lbl_1_text_E0 = .text:0x000000E0; // type:label +lbl_1_text_5F4 = .text:0x000005F4; // type:label +lbl_1_text_750 = .text:0x00000750; // type:label +lbl_1_text_794 = .text:0x00000794; // type:label +lbl_1_text_798 = .text:0x00000798; // type:label +lbl_1_text_7FC = .text:0x000007FC; // type:label +lbl_1_text_958 = .text:0x00000958; // type:label +lbl_1_text_CF8 = .text:0x00000CF8; // type:label +lbl_1_text_103C = .text:0x0000103C; // type:label +lbl_1_text_1618 = .text:0x00001618; // type:label +lbl_1_text_1E60 = .text:0x00001E60; // type:label +lbl_1_text_2008 = .text:0x00002008; // type:label +lbl_1_text_2044 = .text:0x00002044; // type:label +lbl_1_text_20EC = .text:0x000020EC; // type:label +lbl_1_text_2FDC = .text:0x00002FDC; // type:label +lbl_1_text_30A4 = .text:0x000030A4; // type:label +lbl_1_text_38D8 = .text:0x000038D8; // type:label +lbl_1_text_45A8 = .text:0x000045A8; // type:label +lbl_1_text_4630 = .text:0x00004630; // type:label +lbl_1_text_4848 = .text:0x00004848; // type:label +lbl_1_text_55A0 = .text:0x000055A0; // type:label +lbl_1_text_59C4 = .text:0x000059C4; // type:label +lbl_1_text_5A2C = .text:0x00005A2C; // type:label +lbl_1_text_62B0 = .text:0x000062B0; // type:label +lbl_1_text_757C = .text:0x0000757C; // type:label +lbl_1_text_75D8 = .text:0x000075D8; // type:label +lbl_1_text_9BC0 = .text:0x00009BC0; // type:label +lbl_1_text_9E8C = .text:0x00009E8C; // type:label +lbl_1_text_A700 = .text:0x0000A700; // type:label +lbl_1_text_C36C = .text:0x0000C36C; // type:label +lbl_1_text_CF70 = .text:0x0000CF70; // type:label +lbl_1_text_D158 = .text:0x0000D158; // type:label +lbl_1_text_D214 = .text:0x0000D214; // type:label +lbl_1_text_D288 = .text:0x0000D288; // type:label +lbl_1_text_D538 = .text:0x0000D538; // type:label +lbl_1_text_D68C = .text:0x0000D68C; // type:label +lbl_1_text_D6F0 = .text:0x0000D6F0; // type:label +lbl_1_text_D754 = .text:0x0000D754; // type:label +lbl_1_text_DFE8 = .text:0x0000DFE8; // type:label +lbl_1_text_E128 = .text:0x0000E128; // type:label +lbl_1_text_E170 = .text:0x0000E170; // type:label +lbl_1_text_E358 = .text:0x0000E358; // type:label +lbl_1_text_E4A4 = .text:0x0000E4A4; // type:label +lbl_1_text_E690 = .text:0x0000E690; // type:label +lbl_1_section2_0 = .section2:0x00000000; // type:object size:0x4 +lbl_1_section3_0 = .section3:0x00000000; // type:object size:0x4 +lbl_1_section4_10 = .section4:0x00000010; // type:object size:0x4 +lbl_1_section4_14 = .section4:0x00000014; // type:object size:0x4 +lbl_1_section4_18 = .section4:0x00000018; // type:object size:0x4 +lbl_1_section4_1C = .section4:0x0000001C; // type:object size:0x4 +lbl_1_section4_20 = .section4:0x00000020; // type:object size:0x4 +lbl_1_section4_24 = .section4:0x00000024; // type:object size:0x4 +lbl_1_section4_28 = .section4:0x00000028; // type:object size:0x4 +lbl_1_section4_2C = .section4:0x0000002C; // type:object size:0x4 +lbl_1_section4_30 = .section4:0x00000030; // type:object size:0x8 +lbl_1_section4_38 = .section4:0x00000038; // type:object size:0x4 +lbl_1_section4_3C = .section4:0x0000003C; // type:object size:0x4 +lbl_1_section4_40 = .section4:0x00000040; // type:object size:0x4 +lbl_1_section4_44 = .section4:0x00000044; // type:object size:0x4 +lbl_1_section4_48 = .section4:0x00000048; // type:object size:0x4 +lbl_1_section4_4C = .section4:0x0000004C; // type:object size:0x4 +lbl_1_section4_50 = .section4:0x00000050; // type:object size:0x4 +lbl_1_section4_54 = .section4:0x00000054; // type:object size:0x4 +lbl_1_section4_58 = .section4:0x00000058; // type:object size:0x8 +lbl_1_section4_60 = .section4:0x00000060; // type:object size:0x8 +lbl_1_section4_68 = .section4:0x00000068; // type:object size:0x4 +lbl_1_section4_6C = .section4:0x0000006C; // type:object size:0x4 +lbl_1_section4_70 = .section4:0x00000070; // type:object size:0x4 +lbl_1_section4_74 = .section4:0x00000074; // type:object size:0x4 +lbl_1_section4_78 = .section4:0x00000078; // type:object size:0x4 +lbl_1_section4_7C = .section4:0x0000007C; // type:object size:0x4 +lbl_1_section4_80 = .section4:0x00000080; // type:object size:0x8 +lbl_1_section4_88 = .section4:0x00000088; // type:object size:0x8 +lbl_1_section4_90 = .section4:0x00000090; // type:object size:0x8 +lbl_1_section4_98 = .section4:0x00000098; // type:object size:0x4 +lbl_1_section4_9C = .section4:0x0000009C; // type:object size:0x4 +lbl_1_section4_A0 = .section4:0x000000A0; // type:object size:0x8 +lbl_1_section4_A8 = .section4:0x000000A8; // type:object size:0x8 +lbl_1_section4_B0 = .section4:0x000000B0; // type:object size:0x8 +lbl_1_section4_B8 = .section4:0x000000B8; // type:object size:0x4 +lbl_1_section4_BC = .section4:0x000000BC; // type:object size:0x4 +lbl_1_section4_C0 = .section4:0x000000C0; // type:object size:0x4 +lbl_1_section4_C4 = .section4:0x000000C4; // type:object size:0x4 +lbl_1_section4_C8 = .section4:0x000000C8; // type:object size:0x4 +lbl_1_section4_CC = .section4:0x000000CC; // type:object size:0x4 +lbl_1_section4_D0 = .section4:0x000000D0; // type:object size:0x4 +lbl_1_section4_D4 = .section4:0x000000D4; // type:object size:0x4 +lbl_1_section4_D8 = .section4:0x000000D8; // type:object size:0x8 +lbl_1_section4_E0 = .section4:0x000000E0; // type:object size:0x8 +lbl_1_section4_E8 = .section4:0x000000E8; // type:object size:0x8 +lbl_1_section4_F0 = .section4:0x000000F0; // type:object size:0x4 +lbl_1_section4_F4 = .section4:0x000000F4; // type:object size:0x4 +lbl_1_section4_F8 = .section4:0x000000F8; // type:object size:0x4 +lbl_1_section4_FC = .section4:0x000000FC; // type:object size:0x4 +lbl_1_section4_100 = .section4:0x00000100; // type:object size:0x4 +lbl_1_section4_104 = .section4:0x00000104; // type:object size:0x4 +lbl_1_section4_108 = .section4:0x00000108; // type:object size:0x4 +lbl_1_section4_10C = .section4:0x0000010C; // type:object size:0x4 +lbl_1_section4_110 = .section4:0x00000110; // type:object size:0x4 +lbl_1_section4_114 = .section4:0x00000114; // type:object size:0x4 +lbl_1_section4_118 = .section4:0x00000118; // type:object size:0x4 +lbl_1_section4_11C = .section4:0x0000011C; // type:object size:0x4 +lbl_1_section4_120 = .section4:0x00000120; // type:object size:0x8 +lbl_1_section4_128 = .section4:0x00000128; // type:object size:0x8 +lbl_1_section4_130 = .section4:0x00000130; // type:object size:0x4 +lbl_1_section4_134 = .section4:0x00000134; // type:object size:0x4 +lbl_1_section4_138 = .section4:0x00000138; // type:object size:0x4 +lbl_1_section4_13C = .section4:0x0000013C; // type:object size:0x4 +lbl_1_section4_140 = .section4:0x00000140; // type:object size:0x8 +lbl_1_section4_148 = .section4:0x00000148; // type:object size:0x8 +lbl_1_section4_150 = .section4:0x00000150; // type:object size:0x4 +lbl_1_section4_154 = .section4:0x00000154; // type:object size:0x4 +lbl_1_section4_158 = .section4:0x00000158; // type:object size:0x4 +lbl_1_section4_15C = .section4:0x0000015C; // type:object size:0x4 +lbl_1_section4_160 = .section4:0x00000160; // type:object size:0x4 +lbl_1_section4_164 = .section4:0x00000164; // type:object size:0x4 +lbl_1_section4_168 = .section4:0x00000168; // type:object size:0x4 +lbl_1_section4_16C = .section4:0x0000016C; // type:object size:0x4 +lbl_1_section4_170 = .section4:0x00000170; // type:object size:0x4 +lbl_1_section4_174 = .section4:0x00000174; // type:object size:0x4 +lbl_1_section4_178 = .section4:0x00000178; // type:object size:0x4 +lbl_1_section4_17C = .section4:0x0000017C; // type:object size:0x4 +lbl_1_section4_180 = .section4:0x00000180; // type:object size:0x4 +lbl_1_section4_184 = .section4:0x00000184; // type:object size:0x4 +lbl_1_section4_188 = .section4:0x00000188; // type:object size:0x4 +lbl_1_section4_18C = .section4:0x0000018C; // type:object size:0x4 +lbl_1_section4_190 = .section4:0x00000190; // type:object size:0x4 +lbl_1_section4_194 = .section4:0x00000194; // type:object size:0x4 +lbl_1_section4_198 = .section4:0x00000198; // type:object size:0x8 +lbl_1_section4_1A0 = .section4:0x000001A0; // type:object size:0x4 +lbl_1_section4_1A4 = .section4:0x000001A4; // type:object size:0x4 +lbl_1_section4_1A8 = .section4:0x000001A8; // type:object size:0x4 +lbl_1_section4_1AC = .section4:0x000001AC; // type:object size:0x4 +lbl_1_section4_1B0 = .section4:0x000001B0; // type:object size:0x4 +lbl_1_section4_1B4 = .section4:0x000001B4; // type:object size:0x4 +lbl_1_section4_1B8 = .section4:0x000001B8; // type:object size:0x4 +lbl_1_section4_1BC = .section4:0x000001BC; // type:object size:0x4 +lbl_1_section4_1C0 = .section4:0x000001C0; // type:object size:0x4 +lbl_1_section4_1C4 = .section4:0x000001C4; // type:object size:0x4 +lbl_1_section4_1C8 = .section4:0x000001C8; // type:object size:0x4 +lbl_1_section4_1CC = .section4:0x000001CC; // type:object size:0x4 +lbl_1_section4_1D0 = .section4:0x000001D0; // type:object size:0x4 +lbl_1_section4_1D4 = .section4:0x000001D4; // type:object size:0x4 +lbl_1_section4_1D8 = .section4:0x000001D8; // type:object size:0x4 +lbl_1_section4_1DC = .section4:0x000001DC; // type:object size:0x4 +lbl_1_section4_1E0 = .section4:0x000001E0; // type:object size:0x4 +lbl_1_section4_1E4 = .section4:0x000001E4; // type:object size:0x4 +lbl_1_section4_1E8 = .section4:0x000001E8; // type:object size:0x4 +lbl_1_section4_1EC = .section4:0x000001EC; // type:object size:0x4 +lbl_1_section4_1F0 = .section4:0x000001F0; // type:object size:0x8 +lbl_1_section4_1F8 = .section4:0x000001F8; // type:object size:0x8 +lbl_1_section4_200 = .section4:0x00000200; // type:object size:0x4 +lbl_1_section4_204 = .section4:0x00000204; // type:object size:0x4 data:string +lbl_1_section4_208 = .section4:0x00000208; // type:object size:0x8 +lbl_1_section4_210 = .section4:0x00000210; // type:object size:0x8 +lbl_1_section4_218 = .section4:0x00000218; // type:object size:0x8 +lbl_1_section4_220 = .section4:0x00000220; // type:object size:0x4 +lbl_1_section4_224 = .section4:0x00000224; // type:object size:0x4 +lbl_1_section4_228 = .section4:0x00000228; // type:object size:0x4 +lbl_1_section4_22C = .section4:0x0000022C; // type:object size:0xC +lbl_1_section4_238 = .section4:0x00000238; // type:object size:0x4 +lbl_1_section4_23C = .section4:0x0000023C; // type:object size:0x4 +lbl_1_section4_240 = .section4:0x00000240; // type:object size:0x8 +lbl_1_section4_248 = .section4:0x00000248; // type:object size:0x8 +lbl_1_section4_250 = .section4:0x00000250; // type:object size:0x4 +lbl_1_section4_254 = .section4:0x00000254; // type:object size:0x4 +lbl_1_section4_258 = .section4:0x00000258; // type:object size:0x4 +lbl_1_section4_25C = .section4:0x0000025C; // type:object size:0x4 +lbl_1_section4_260 = .section4:0x00000260; // type:object size:0x4 +lbl_1_section4_264 = .section4:0x00000264; // type:object size:0x4 +lbl_1_section4_268 = .section4:0x00000268; // type:object size:0x4 +lbl_1_section4_26C = .section4:0x0000026C; // type:object size:0x4 +lbl_1_section4_270 = .section4:0x00000270; // type:object size:0x4 +lbl_1_section4_274 = .section4:0x00000274; // type:object size:0x4 +lbl_1_section4_278 = .section4:0x00000278; // type:object size:0x4 +lbl_1_section4_27C = .section4:0x0000027C; // type:object size:0x4 +lbl_1_section4_280 = .section4:0x00000280; // type:object size:0x4 +lbl_1_section4_284 = .section4:0x00000284; // type:object size:0xC +lbl_1_section4_290 = .section4:0x00000290; // type:object size:0x4 +lbl_1_section4_294 = .section4:0x00000294; // type:object size:0x4 +lbl_1_section4_298 = .section4:0x00000298; // type:object size:0x4 +lbl_1_section4_29C = .section4:0x0000029C; // type:object size:0x4 +lbl_1_section4_2A0 = .section4:0x000002A0; // type:object size:0x4 +lbl_1_section4_2A4 = .section4:0x000002A4; // type:object size:0x4 +lbl_1_section4_2A8 = .section4:0x000002A8; // type:object size:0x4 +lbl_1_section4_2AC = .section4:0x000002AC; // type:object size:0x4 +lbl_1_section4_2B0 = .section4:0x000002B0; // type:object size:0x4 +lbl_1_section4_2B4 = .section4:0x000002B4; // type:object size:0x4 +lbl_1_section4_2B8 = .section4:0x000002B8; // type:object size:0x8 +lbl_1_section4_2C0 = .section4:0x000002C0; // type:object size:0x4 +lbl_1_section4_2C4 = .section4:0x000002C4; // type:object size:0x4 +lbl_1_section4_2C8 = .section4:0x000002C8; // type:object size:0x4 +lbl_1_section4_2CC = .section4:0x000002CC; // type:object size:0x4 +lbl_1_section4_2D0 = .section4:0x000002D0; // type:object size:0x4 +lbl_1_section4_2D4 = .section4:0x000002D4; // type:object size:0x4 +lbl_1_section4_2D8 = .section4:0x000002D8; // type:object size:0x4 +lbl_1_section4_2DC = .section4:0x000002DC; // type:object size:0x4 +lbl_1_section4_2E0 = .section4:0x000002E0; // type:object size:0x4 +lbl_1_section4_2E4 = .section4:0x000002E4; // type:object size:0x4 +lbl_1_section4_2E8 = .section4:0x000002E8; // type:object size:0x8 +lbl_1_section4_2F0 = .section4:0x000002F0; // type:object size:0x8 +lbl_1_section4_2F8 = .section4:0x000002F8; // type:object size:0x8 +lbl_1_section4_300 = .section4:0x00000300; // type:object size:0x4 +lbl_1_section4_304 = .section4:0x00000304; // type:object size:0x4 +lbl_1_section4_308 = .section4:0x00000308; // type:object size:0x8 +lbl_1_section4_310 = .section4:0x00000310; // type:object size:0x8 +lbl_1_section4_318 = .section4:0x00000318; // type:object size:0x8 +lbl_1_section4_320 = .section4:0x00000320; // type:object size:0x4 +lbl_1_section4_324 = .section4:0x00000324; // type:object size:0x4 +lbl_1_section4_328 = .section4:0x00000328; // type:object size:0x4 +lbl_1_section4_32C = .section4:0x0000032C; // type:object size:0x4 +lbl_1_section4_330 = .section4:0x00000330; // type:object size:0x4 +lbl_1_section4_334 = .section4:0x00000334; // type:object size:0x4 +lbl_1_section4_338 = .section4:0x00000338; // type:object size:0x4 +lbl_1_section4_33C = .section4:0x0000033C; // type:object size:0x4 +lbl_1_section4_340 = .section4:0x00000340; // type:object size:0x4 +lbl_1_section4_344 = .section4:0x00000344; // type:object size:0x4 +lbl_1_section4_348 = .section4:0x00000348; // type:object size:0x4 +lbl_1_section4_34C = .section4:0x0000034C; // type:object size:0x4 +lbl_1_section4_350 = .section4:0x00000350; // type:object size:0x8 +lbl_1_section4_358 = .section4:0x00000358; // type:object size:0x8 +lbl_1_section4_360 = .section4:0x00000360; // type:object size:0x4 +lbl_1_section4_364 = .section4:0x00000364; // type:object size:0x4 +lbl_1_section4_368 = .section4:0x00000368; // type:object size:0x4 +lbl_1_section4_36C = .section4:0x0000036C; // type:object size:0x4 +lbl_1_section4_370 = .section4:0x00000370; // type:object size:0x8 +lbl_1_section4_378 = .section4:0x00000378; // type:object size:0x8 +lbl_1_section4_380 = .section4:0x00000380; // type:object size:0x4 +lbl_1_section4_384 = .section4:0x00000384; // type:object size:0x4 +lbl_1_section4_388 = .section4:0x00000388; // type:object size:0x4 +lbl_1_section4_38C = .section4:0x0000038C; // type:object size:0x4 +lbl_1_section4_390 = .section4:0x00000390; // type:object size:0x4 +lbl_1_section4_394 = .section4:0x00000394; // type:object size:0x4 +lbl_1_section4_398 = .section4:0x00000398; // type:object size:0x8 +lbl_1_section4_3A0 = .section4:0x000003A0; // type:object size:0x4 +lbl_1_section4_3A4 = .section4:0x000003A4; // type:object size:0x4 +lbl_1_section4_3A8 = .section4:0x000003A8; // type:object size:0x4 +lbl_1_section4_3AC = .section4:0x000003AC; // type:object size:0x4 +lbl_1_section4_3B0 = .section4:0x000003B0; // type:object size:0x4 +lbl_1_section4_3B4 = .section4:0x000003B4; // type:object size:0x4 +lbl_1_section4_3B8 = .section4:0x000003B8; // type:object size:0x4 +lbl_1_section4_3BC = .section4:0x000003BC; // type:object size:0x4 +lbl_1_section4_3C0 = .section4:0x000003C0; // type:object size:0x4 +lbl_1_section4_3C4 = .section4:0x000003C4; // type:object size:0x4 +lbl_1_section4_3C8 = .section4:0x000003C8; // type:object size:0x4 +lbl_1_section4_3CC = .section4:0x000003CC; // type:object size:0x4 +lbl_1_section4_3D0 = .section4:0x000003D0; // type:object size:0x8 +lbl_1_section4_3D8 = .section4:0x000003D8; // type:object size:0x4 +lbl_1_section4_3DC = .section4:0x000003DC; // type:object size:0x4 +lbl_1_section4_3E0 = .section4:0x000003E0; // type:object size:0x4 +lbl_1_section4_3E4 = .section4:0x000003E4; // type:object size:0x4 +lbl_1_section4_3E8 = .section4:0x000003E8; // type:object size:0x4 +lbl_1_section4_3EC = .section4:0x000003EC; // type:object size:0x4 +lbl_1_section4_3F0 = .section4:0x000003F0; // type:object size:0x4 +lbl_1_section4_3F4 = .section4:0x000003F4; // type:object size:0x4 +lbl_1_section4_3F8 = .section4:0x000003F8; // type:object size:0x4 +lbl_1_section4_3FC = .section4:0x000003FC; // type:object size:0x4 +lbl_1_section4_400 = .section4:0x00000400; // type:object size:0x4 +lbl_1_section4_404 = .section4:0x00000404; // type:object size:0x4 +lbl_1_section4_408 = .section4:0x00000408; // type:object size:0x8 +lbl_1_section4_410 = .section4:0x00000410; // type:object size:0x8 +lbl_1_section4_418 = .section4:0x00000418; // type:object size:0x4 +lbl_1_section4_41C = .section4:0x0000041C; // type:object size:0x4 +lbl_1_section4_420 = .section4:0x00000420; // type:object size:0x4 +lbl_1_section4_424 = .section4:0x00000424; // type:object size:0x4 +lbl_1_section5_0 = .section5:0x00000000; // type:object size:0x280 +lbl_1_section5_280 = .section5:0x00000280; // type:object size:0x2 +lbl_1_section5_282 = .section5:0x00000282; // type:object size:0x2 +lbl_1_section5_284 = .section5:0x00000284; // type:object size:0x2 +lbl_1_section5_286 = .section5:0x00000286; // type:object size:0x2 +lbl_1_section5_288 = .section5:0x00000288; // type:object size:0x8 +lbl_1_section5_290 = .section5:0x00000290; // type:object size:0x8 +lbl_1_section5_298 = .section5:0x00000298; // type:object size:0x8 +lbl_1_section5_2A0 = .section5:0x000002A0; // type:object size:0xC +lbl_1_section5_2AC = .section5:0x000002AC; // type:object size:0x24 +lbl_1_section5_2D0 = .section5:0x000002D0; // type:object size:0x20 +lbl_1_section5_2F0 = .section5:0x000002F0; // type:object size:0x4 +lbl_1_section5_2F4 = .section5:0x000002F4; // type:object size:0x20 +lbl_1_section5_314 = .section5:0x00000314; // type:object size:0x20 +lbl_1_section5_334 = .section5:0x00000334; // type:object size:0x5 data:string +lbl_1_section5_339 = .section5:0x00000339; // type:object size:0x5 data:string +lbl_1_section5_33E = .section5:0x0000033E; // type:object size:0x5 data:string +lbl_1_section5_343 = .section5:0x00000343; // type:object size:0x5 data:string +lbl_1_section5_348 = .section5:0x00000348; // type:object size:0x10 +lbl_1_section5_358 = .section5:0x00000358; // type:object size:0x10 +lbl_1_section5_368 = .section5:0x00000368; // type:object size:0x8 data:string +lbl_1_section5_370 = .section5:0x00000370; // type:object size:0x12 data:string +lbl_1_section5_382 = .section5:0x00000382; // type:object size:0x11 data:string +lbl_1_section5_393 = .section5:0x00000393; // type:object size:0x15 +lbl_1_section5_3A8 = .section5:0x000003A8; // type:object size:0x8 data:string +lbl_1_section5_3B0 = .section5:0x000003B0; // type:object size:0x9 data:string +lbl_1_section5_3B9 = .section5:0x000003B9; // type:object size:0x6 data:string +lbl_1_section5_3BF = .section5:0x000003BF; // type:object size:0x5 data:string +lbl_1_section5_3C4 = .section5:0x000003C4; // type:object size:0x8 +lbl_1_section5_3CC = .section5:0x000003CC; // type:object size:0x14 +lbl_1_section5_3E0 = .section5:0x000003E0; // type:object size:0x14 +lbl_1_section5_3F4 = .section5:0x000003F4; // type:object size:0x20 +lbl_1_section5_414 = .section5:0x00000414; // type:object size:0x10 +lbl_1_section5_424 = .section5:0x00000424; // type:object size:0x30 +lbl_1_section5_454 = .section5:0x00000454; // type:object size:0xB data:string +lbl_1_section5_45F = .section5:0x0000045F; // type:object size:0x2 data:string +lbl_1_section5_461 = .section5:0x00000461; // type:object size:0xC data:string +lbl_1_section5_46D = .section5:0x0000046D; // type:object size:0x1B +lbl_1_section5_488 = .section5:0x00000488; // type:object size:0x3 data:string +lbl_1_section5_48B = .section5:0x0000048B; // type:object size:0x11 +lbl_1_section5_49C = .section5:0x0000049C; // type:object size:0x54 +lbl_1_section5_4F0 = .section5:0x000004F0; // type:object size:0x6 data:string +lbl_1_section5_4F6 = .section5:0x000004F6; // type:object size:0x6 data:string +lbl_1_section5_4FC = .section5:0x000004FC; // type:object size:0x6 data:string +lbl_1_section5_502 = .section5:0x00000502; // type:object size:0x8 data:string +lbl_1_section5_50A = .section5:0x0000050A; // type:object size:0x8 data:string +lbl_1_section5_512 = .section5:0x00000512; // type:object size:0xA +lbl_1_section5_51C = .section5:0x0000051C; // type:object size:0x18 +lbl_1_section5_534 = .section5:0x00000534; // type:object size:0xC +lbl_1_section5_540 = .section5:0x00000540; // type:object size:0x48 +lbl_1_section5_588 = .section5:0x00000588; // type:object size:0x4 +lbl_1_section5_58C = .section5:0x0000058C; // type:object size:0x5 data:string +lbl_1_section5_591 = .section5:0x00000591; // type:object size:0x5 data:string +lbl_1_section5_596 = .section5:0x00000596; // type:object size:0x5 data:string +lbl_1_section5_59B = .section5:0x0000059B; // type:object size:0x5 data:string +lbl_1_section5_5A0 = .section5:0x000005A0; // type:object size:0x5 data:string +lbl_1_section5_5A5 = .section5:0x000005A5; // type:object size:0x5 data:string +lbl_1_section5_5AA = .section5:0x000005AA; // type:object size:0x5 data:string +lbl_1_section5_5AF = .section5:0x000005AF; // type:object size:0x5 data:string +lbl_1_section5_5B4 = .section5:0x000005B4; // type:object size:0x8 +lbl_1_section5_5BC = .section5:0x000005BC; // type:object size:0x24 +lbl_1_section5_5E0 = .section5:0x000005E0; // type:object size:0x10 +lbl_1_section5_5F0 = .section5:0x000005F0; // type:object size:0x20 +lbl_1_section5_610 = .section5:0x00000610; // type:object size:0xE data:string +lbl_1_section5_61E = .section5:0x0000061E; // type:object size:0xE data:string +lbl_1_section5_62C = .section5:0x0000062C; // type:object size:0x10 +lbl_1_section5_63C = .section5:0x0000063C; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x4 +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 diff --git a/configure.py b/configure.py index c9a29b4f..3721f4c9 100644 --- a/configure.py +++ b/configure.py @@ -31,6 +31,9 @@ DEFAULT_VERSION = 0 VERSIONS = [ "GMPE01_00", # USA 1.0 "GMPE01_01", # USA 1.1 + "GMPP01_00", # PAL 1.0 + "GMPP01_02", # PAL 1.2 + "GMPJ01_00", # Japan 1.0 ] parser = argparse.ArgumentParser() @@ -147,7 +150,7 @@ config.binutils_tag = "2.42-1" config.compilers_tag = "20240706" config.dtk_tag = "v1.1.4" config.objdiff_tag = "v2.3.3" -config.sjiswrap_tag = "v1.1.1" +config.sjiswrap_tag = "v1.2.0" config.wibo_tag = "0.6.11" # Project @@ -196,6 +199,9 @@ cflags_base = [ "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", ] +if config.non_matching: + cflags_base.append("-DNON_MATCHING") + # Debug flags if args.debug: cflags_base.extend(["-sym on", "-DDEBUG=1"]) @@ -206,7 +212,7 @@ else: cflags_runtime = [ *cflags_base, "-use_lmw_stmw on", - "-str reuse,pool,readonly", + "-str reuse,readonly", "-common off", "-inline auto,deferred", ] @@ -224,6 +230,7 @@ cflags_thp = [ # Metrowerks library flags cflags_msl = [ *cflags_base, + "-char signed", "-use_lmw_stmw on", "-str reuse,pool,readonly", "-common off", @@ -234,21 +241,20 @@ cflags_msl = [ cflags_trk = [ *cflags_base, "-use_lmw_stmw on", - "-str reuse,pool,readonly", + "-str reuse,readonly", "-common off", "-sdata 0", "-sdata2 0", "-inline auto,deferred", + "-enum min", + "-sdatathreshold 0" ] cflags_odemuexi = [ *cflags_base, - # TODO figure out flags + "-inline deferred" ] -if version_num > 0: - cflags_odemuexi.append("-inline auto,deferred") - cflags_amcstub = [ *cflags_base, "-inline auto,deferred", @@ -273,6 +279,24 @@ cflags_musyx = [ "-str reuse,pool,readonly", "-fp_contract off", "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", + "-sym on" +] + +cflags_musyx_debug = [ + "-proc gecko", + "-fp hard", + "-nodefaults", + "-nosyspath", + "-i include", + "-i extern/musyx/include", + "-i libc", + "-g", + "-sym on", + "-D_DEBUG=1", + "-fp hard", + "-enum int", + "-Cpp_exceptions off", + "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", ] # REL flags @@ -324,6 +348,16 @@ def DolphinLib(lib_name, objects): } +def DolphinLibUnpatched(lib_name, objects): + return { + "lib": lib_name, + "mw_version": "GC/1.2.5", + "cflags": cflags_dolphin, + "host": False, + "objects": objects, + } + + def MusyX(objects, mw_version="GC/1.3.2", debug=False, major=1, minor=5, patch=4): cflags = cflags_musyx if not debug else cflags_musyx_debug return { @@ -386,7 +420,7 @@ config.libs = [ Object(Matching, "game/sprman.c"), Object(Matching, "game/sprput.c"), Object(Matching, "game/hsfload.c"), - Object(NonMatching, "game/hsfdraw.c"), + Object(Equivalent, "game/hsfdraw.c"), Object(Matching, "game/hsfman.c"), Object(Matching, "game/hsfmotion.c"), Object(Matching, "game/hsfanim.c"), @@ -419,198 +453,198 @@ config.libs = [ Object(Matching, "game/objsub.c"), Object(Matching, "game/flag.c"), Object(Matching, "game/saveload.c"), - Object(Matching, "game/sreset.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), Object(Matching, "game/board/main.c"), Object(Matching, "game/board/player.c"), - Object(Matching, "game/board/model.c"), - Object(Matching, "game/board/window.c"), - Object(Matching, "game/board/audio.c"), - Object(Matching, "game/board/com.c"), - Object(Matching, "game/board/view.c"), - Object(Matching, "game/board/space.c"), - Object(Matching, "game/board/shop.c"), - Object(Matching, "game/board/lottery.c"), - Object(Matching, "game/board/basic_space.c"), - Object(Matching, "game/board/warp.c"), - Object(Matching, "game/board/char_wheel.c"), - Object(Matching, "game/board/mushroom.c"), - Object(Matching, "game/board/star.c"), - Object(Matching, "game/board/roll.c"), - Object(Matching, "game/board/ui.c"), - Object(Matching, "game/board/block.c"), - Object(Matching, "game/board/item.c"), - Object(Matching, "game/board/bowser.c"), - Object(Matching, "game/board/battle.c"), - Object(Matching, "game/board/fortune.c"), - Object(Matching, "game/board/boo.c"), - Object(Matching, "game/board/mg_setup.c"), - Object(Matching, "game/board/boo_house.c"), - Object(Matching, "game/board/start.c"), - Object(Matching, "game/board/last5.c"), - Object(Matching, "game/board/pause.c"), - Object(Matching, "game/board/com_path.c"), - Object(Matching, "game/board/tutorial.c"), - Object(Matching, "game/kerent.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/model.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/com.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/view.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/shop.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/lottery.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/basic_space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/warp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/char_wheel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/mushroom.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/star.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/roll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/ui.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/bowser.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/fortune.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/boo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/mg_setup.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/boo_house.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/last5.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/pause.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/com_path.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/tutorial.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/kerent.c"), ], }, DolphinLib( "base", [ - Object(Matching, "dolphin/PPCArch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/PPCArch.c"), ], ), DolphinLib( "os", [ - Object(Matching, "dolphin/os/OS.c"), - Object(Matching, "dolphin/os/OSAlarm.c"), - Object(Matching, "dolphin/os/OSAlloc.c"), - Object(Matching, "dolphin/os/OSArena.c"), - Object(Matching, "dolphin/os/OSAudioSystem.c"), - Object(Matching, "dolphin/os/OSCache.c"), - Object(Matching, "dolphin/os/OSContext.c"), - Object(Matching, "dolphin/os/OSError.c"), - Object(Matching, "dolphin/os/OSFont.c"), - Object(Matching, "dolphin/os/OSInterrupt.c"), - Object(Matching, "dolphin/os/OSLink.c"), - Object(Matching, "dolphin/os/OSMessage.c"), - Object(Matching, "dolphin/os/OSMemory.c"), - Object(Matching, "dolphin/os/OSMutex.c"), - Object(NonMatching, "dolphin/os/OSReboot.c"), - Object(Matching, "dolphin/os/OSReset.c"), - Object(Matching, "dolphin/os/OSResetSW.c"), - Object(Matching, "dolphin/os/OSRtc.c"), - Object(Matching, "dolphin/os/OSStopwatch.c"), - Object(Matching, "dolphin/os/OSSync.c"), - Object(Matching, "dolphin/os/OSThread.c"), - Object(Matching, "dolphin/os/OSTime.c"), - Object(Matching, "dolphin/os/__start.c"), - Object(Matching, "dolphin/os/__ppc_eabi_init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "dolphin/os/OS.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlarm.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlloc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSArena.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAudioSystem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSCache.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSContext.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSError.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSFont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSInterrupt.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSLink.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMessage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMemory.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMutex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSReboot.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSReset.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSResetSW.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSRtc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSStopwatch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSSync.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSThread.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSTime.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "dolphin/os/__start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__ppc_eabi_init.c"), ], ), DolphinLib( "db", [ - Object(Matching, "dolphin/db.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/db.c"), ], ), - DolphinLib( + DolphinLibUnpatched( "mtx", [ - Object(NonMatching, "dolphin/mtx/mtx.c"), - Object(Matching, "dolphin/mtx/mtxvec.c"), - Object(Matching, "dolphin/mtx/mtx44.c"), - Object(NonMatching, "dolphin/mtx/vec.c"), - Object(NonMatching, "dolphin/mtx/quat.c"), - Object(Matching, "dolphin/mtx/psmtx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtxvec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtx44.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/vec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/quat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/psmtx.c"), ], ), DolphinLib( "dvd", [ - Object(Matching, "dolphin/dvd/dvdlow.c"), - Object(Matching, "dolphin/dvd/dvdfs.c"), - Object(Matching, "dolphin/dvd/dvd.c"), - Object(Matching, "dolphin/dvd/dvdqueue.c"), - Object(Matching, "dolphin/dvd/dvderror.c"), - Object(Matching, "dolphin/dvd/fstload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdlow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdfs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvd.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdqueue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvderror.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/fstload.c"), ], ), DolphinLib( "vi", [ - Object(Matching, "dolphin/vi.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/vi.c"), ], ), DolphinLib( "demo", [ - Object(Matching, "dolphin/demo/DEMOInit.c"), - Object(Matching, "dolphin/demo/DEMOFont.c"), - Object(Matching, "dolphin/demo/DEMOPuts.c"), - Object(Matching, "dolphin/demo/DEMOStats.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOInit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOFont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOPuts.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOStats.c"), ], ), DolphinLib( "pad", [ - Object(NonMatching, "dolphin/pad/Padclamp.c"), - Object(Matching, "dolphin/pad/Pad.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/pad/Padclamp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/pad/Pad.c"), ], ), DolphinLib( "ai", [ - Object(Matching, "dolphin/ai.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ai.c"), ], ), DolphinLib( "ar", [ - Object(NonMatching, "dolphin/ar/ar.c"), - Object(Matching, "dolphin/ar/arq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ar/ar.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ar/arq.c"), ], ), DolphinLib( "dsp", [ - Object(Matching, "dolphin/dsp/dsp.c"), - Object(Matching, "dolphin/dsp/dsp_debug.c"), - Object(Matching, "dolphin/dsp/dsp_task.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp_debug.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp_task.c"), ], ), DolphinLib( "gx", [ - Object(NonMatching, "dolphin/gx/GXInit.c"), - Object(NonMatching, "dolphin/gx/GXFifo.c"), - Object(NonMatching, "dolphin/gx/GXAttr.c"), - Object(NonMatching, "dolphin/gx/GXMisc.c"), - Object(NonMatching, "dolphin/gx/GXGeometry.c"), - Object(NonMatching, "dolphin/gx/GXFrameBuf.c"), - Object(NonMatching, "dolphin/gx/GXLight.c"), - Object(NonMatching, "dolphin/gx/GXTexture.c"), - Object(NonMatching, "dolphin/gx/GXBump.c"), - Object(NonMatching, "dolphin/gx/GXTev.c"), - Object(NonMatching, "dolphin/gx/GXPixel.c"), - Object(NonMatching, "dolphin/gx/GXStubs.c"), - Object(NonMatching, "dolphin/gx/GXDisplayList.c"), - Object(NonMatching, "dolphin/gx/GXTransform.c"), - Object(NonMatching, "dolphin/gx/GXPerf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXInit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXFifo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXAttr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXMisc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXGeometry.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXFrameBuf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXLight.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTexture.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXBump.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTev.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXPixel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXStubs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXDisplayList.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTransform.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXPerf.c"), ], ), DolphinLib( "card", [ - Object(Matching, "dolphin/card/CARDBios.c"), - Object(Matching, "dolphin/card/CARDUnlock.c"), - Object(Matching, "dolphin/card/CARDRdwr.c"), - Object(Matching, "dolphin/card/CARDBlock.c"), - Object(Matching, "dolphin/card/CARDDir.c"), - Object(Matching, "dolphin/card/CARDCheck.c"), - Object(Matching, "dolphin/card/CARDMount.c"), - Object(Matching, "dolphin/card/CARDFormat.c"), - Object(Matching, "dolphin/card/CARDOpen.c"), - Object(Matching, "dolphin/card/CARDCreate.c"), - Object(Matching, "dolphin/card/CARDRead.c"), - Object(Matching, "dolphin/card/CARDWrite.c"), - Object(Matching, "dolphin/card/CARDDelete.c"), - Object(Matching, "dolphin/card/CARDStat.c"), - Object(Matching, "dolphin/card/CARDNet.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDUnlock.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDRdwr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDBlock.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDDir.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDCheck.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDMount.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDFormat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDOpen.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDCreate.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDRead.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDWrite.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDDelete.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDStat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDNet.c"), ], ), DolphinLib( "exi", [ - Object(Matching, "dolphin/exi/EXIBios.c"), - Object(Matching, "dolphin/exi/EXIUart.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/exi/EXIBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/exi/EXIUart.c"), ], ), DolphinLib( "si", [ - Object(Matching, "dolphin/si/SIBios.c"), - Object(Matching, "dolphin/si/SISamplingRate.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/si/SIBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/si/SISamplingRate.c"), ], ), { @@ -619,8 +653,8 @@ config.libs = [ "cflags": cflags_thp, "host": False, "objects": [ - Object(Matching, "dolphin/thp/THPDec.c"), - Object(NonMatching, "dolphin/thp/THPAudio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/thp/THPDec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/thp/THPAudio.c"), ], }, { @@ -629,137 +663,137 @@ 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(NonMatching, "Runtime.PPCEABI.H/runtime.c"), - 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"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__va_arg.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/global_destructor_chain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/New.cp", extra_cflags=["-Cpp_exceptions on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NewMore.cp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NMWException.cpp", extra_cflags=["-Cpp_exceptions on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), + Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], }, { "lib": "MSL_C.PPCEABI.bare.H", - "mw_version": config.linker_version, + "mw_version": "GC/1.3", "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"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/abort_exit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/alloc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_files.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_fp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/arith.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/buffer_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ctype.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/direct_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/file_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/FILE_POS.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mbstring.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem_funcs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/misc_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/printf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/float.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/signal.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/string.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/uart_console_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/wchar_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_acos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_asin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_atan2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_fmod.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_pow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_cos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_sin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_tan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_atan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_copysign.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_cos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_floor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_frexp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_ldexp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_modf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_sin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_tan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_acos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_asin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_atan2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_fmod.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_pow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/math_ppc.c"), ], }, { "lib": "TRK_MINNOW_DOLPHIN", - "mw_version": config.linker_version, + "mw_version": "GC/1.3", "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"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mainloop.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubevent.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubinit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msg.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/serpoll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c", mw_version="GC/1.3.2"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dispatch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/support.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/notify.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mem_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targimpl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targsupp.s"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/__exception.s"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targcont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/target_options.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mslsupp.c"), ], }, MusyX( objects={ - Object(Matching, "musyx/runtime/seq.c"), - Object(Matching, "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(Matching, "musyx/runtime/synthvoice.c"), - Object(Matching, "musyx/runtime/synth_ac.c"), - Object(Matching, "musyx/runtime/synth_dbtab.c"), - Object(Matching, "musyx/runtime/synth_adsr.c"), - Object(NonMatching, "musyx/runtime/synth_vsamples.c"), - Object(Matching, "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(Matching, "musyx/runtime/snd_math.c"), - Object(NonMatching, "musyx/runtime/snd_midictrl.c"), - Object(Matching, "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(Matching, "musyx/runtime/CheapReverb/creverb.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb_fx.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb.c"), - Object(Matching, "musyx/runtime/Delay/delay_fx.c"), - Object(Matching, "musyx/runtime/Chorus/chorus_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/seq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/seq_api.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_synthapi.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/stream.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthdata.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthmacros.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthvoice.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_ac.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_dbtab.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_adsr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_vsamples.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/s_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_dspctrl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_volconv.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd3d.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_math.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_midictrl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_service.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hardware.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/dsp_import.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_aramdma.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_dolphin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_memory.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/CheapReverb/creverb_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/CheapReverb/creverb.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/StdReverb/reverb_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/StdReverb/reverb.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/Delay/delay_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/Chorus/chorus_fx.c"), } ), { @@ -768,7 +802,7 @@ config.libs = [ "cflags": cflags_odemuexi, "host": False, "objects": [ - Object(MatchingFor("GMPE01_01"), "OdemuExi2/DebuggerDriver.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "OdemuExi2/DebuggerDriver.c"), ], }, { @@ -777,7 +811,7 @@ config.libs = [ "cflags": cflags_amcstub, "host": False, "objects": [ - Object(Matching, "amcstubs/AmcExi2Stubs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "amcstubs/AmcExi2Stubs.c"), ], }, { @@ -786,7 +820,7 @@ config.libs = [ "cflags": cflags_odenotstub, "host": False, "objects": [ - Object(Matching, "odenotstub/odenotstub.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "odenotstub/odenotstub.c"), ], }, { @@ -795,22 +829,22 @@ config.libs = [ "cflags": cflags_libhu, "host": False, "objects": [ - Object(Matching, "libhu/setvf.c"), - Object(Matching, "libhu/subvf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "libhu/setvf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "libhu/subvf.c"), ], }, { "lib": "msm", - "mw_version": "GC/1.2.5n", + "mw_version": "GC/1.2.5", "cflags": cflags_msm, "host": False, "objects": [ - Object(NonMatching, "msm/msmsys.c"), - Object(Matching, "msm/msmmem.c"), - Object(Matching, "msm/msmfio.c"), - Object(NonMatching, "msm/msmmus.c"), - Object(NonMatching, "msm/msmse.c"), - Object(NonMatching, "msm/msmstream.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmsys.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmfio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmus.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmse.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmstream.c"), ], }, { @@ -833,8 +867,8 @@ config.libs = [ Rel( "bootDll", objects={ - Object(Matching, "REL/bootDll/main.c"), - Object(Matching, "REL/bootDll/nintendo_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/language.c"), }, ), Rel( @@ -847,8 +881,8 @@ config.libs = [ Rel( "instDll", objects={ - Object(Matching, "REL/instDll/main.c"), - Object(Matching, "REL/instDll/font.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/instDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/font.c"), }, ), Rel( @@ -867,8 +901,8 @@ config.libs = [ Rel( "m403Dll", # Booksquirm objects={ - Object(Matching, "REL/m403Dll/main.c"), - Object(Matching, "REL/m403Dll/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m403Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m403Dll/scene.c"), }, ), Rel( @@ -880,114 +914,114 @@ config.libs = [ Rel( "m405Dll", # Mario Medley objects={ - Object(Matching, "REL/m405Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m405Dll/main.c"), }, ), Rel( "m406Dll", # Avalanche! objects={ - Object(Matching, "REL/m406Dll/main.c"), - Object(Matching, "REL/m406Dll/map.c"), - Object(Matching, "REL/m406Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/player.c"), }, ), Rel( "m407dll", # Domination objects={ - Object(Matching, "REL/m407dll/player.c"), - Object(Matching, "REL/m407dll/map.c"), - Object(Matching, "REL/m407dll/camera.c"), - Object(Matching, "REL/m407dll/whomp.c"), - Object(Matching, "REL/m407dll/whomp_score.c"), - Object(Matching, "REL/m407dll/effect.c"), - Object(Matching, "REL/m407dll/main.c"), - Object(Matching, "REL/m407dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/whomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/whomp_score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/effect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/score.c"), }, ), Rel( "m408Dll", # Paratrooper Plunge objects={ - Object(Matching, "REL/m408Dll/main.c"), - Object(Matching, "REL/m408Dll/camera.c"), - Object(Matching, "REL/m408Dll/stage.c"), - Object(Matching, "REL/m408Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/object.c"), }, ), Rel( "m409Dll", # Toad's Quick Draw objects={ - Object(Matching, "REL/m409Dll/main.c"), - Object(Matching, "REL/m409Dll/player.c"), - Object(Matching, "REL/m409Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/cursor.c"), }, ), Rel( "m410Dll", # Three Throw objects={ - Object(Matching, "REL/m410Dll/main.c"), - Object(Matching, "REL/m410Dll/stage.c"), - Object(Matching, "REL/m410Dll/game.c"), - Object(Matching, "REL/m410Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/game.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/player.c"), }, ), Rel( "m411Dll", # Photo Finish objects={ - Object(Matching, "REL/m411Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m411Dll/main.c"), }, ), Rel( "m412Dll", # Mr. Blizzard's Brigade objects={ - Object(Matching, "REL/m412Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m412Dll/main.c"), }, ), Rel( "m413Dll", # Bob-omb Breakers objects={ - Object(NonMatching, "REL/m413Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m413Dll/main.c"), }, ), Rel( "m414Dll", # Long Claw of the Law objects={ - Object(Matching, "REL/m414Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m414Dll/main.c"), }, ), Rel( "m415Dll", # Stamp Out! objects={ - Object(Matching, "REL/m415Dll/main.c"), - Object(NonMatching, "REL/m415Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m415Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m415Dll/map.c"), }, ), Rel( "m416Dll", # Candlelight Flight objects={ - Object(Matching, "REL/m416Dll/main.c"), - Object(Matching, "REL/m416Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m416Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m416Dll/map.c"), }, ), Rel( "m417Dll", # Makin' Waves objects={ - Object(Matching, "REL/m417Dll/main.c"), - Object(Matching, "REL/m417Dll/water.c"), - Object(Matching, "REL/m417Dll/player.c"), - Object(Matching, "REL/m417Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/water.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/sequence.c"), }, ), Rel( "m418Dll", # Hide and Go BOOM! objects={ - Object(NonMatching, "REL/m418Dll/main.c"), - Object(NonMatching, "REL/m418Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/sequence.c"), }, ), Rel( "m419Dll", # Tree Stomp objects={ - Object(NonMatching, "REL/m419Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m419Dll/main.c"), }, ), Rel( @@ -1003,59 +1037,59 @@ config.libs = [ Rel( "m421Dll", # Hop or Pop objects={ - Object(NonMatching, "REL/m421Dll/main.c"), - Object(NonMatching, "REL/m421Dll/player.c"), - Object(NonMatching, "REL/m421Dll/map.c"), + Object(Matching, "REL/m421Dll/main.c"), + Object(Matching, "REL/m421Dll/player.c"), + Object(Matching, "REL/m421Dll/map.c"), }, ), Rel( "m422Dll", # Money Belts objects={ - Object(NonMatching, "REL/m422Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m422Dll/main.c"), }, ), Rel( "m423Dll", # GOOOOOOOAL!! objects={ - Object(NonMatching, "REL/m423Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m423Dll/main.c"), }, ), Rel( "m424Dll", # Blame it on the Crane objects={ - Object(NonMatching, "REL/m424Dll/main.c"), - Object(NonMatching, "REL/m424Dll/map.c"), - Object(NonMatching, "REL/m424Dll/ball.c"), - Object(NonMatching, "REL/m424Dll/claw.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/ball.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/claw.c"), }, ), Rel( "m425Dll", # The Great Deflate objects={ - Object(NonMatching, "REL/m425Dll/main.c"), - Object(NonMatching, "REL/m425Dll/thwomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/thwomp.c"), }, ), Rel( "m426Dll", # Revers-a-Bomb objects={ - Object(NonMatching, "REL/m426Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m426Dll/main.c"), }, ), Rel( "m427Dll", # Right Oar Left? objects={ - Object(NonMatching, "REL/m427Dll/main.c"), - Object(NonMatching, "REL/m427Dll/map.c"), - Object(NonMatching, "REL/m427Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/player.c"), }, ), Rel( "m428Dll", # Cliffhangers objects={ - Object(NonMatching, "REL/m428Dll/main.c"), - Object(NonMatching, "REL/m428Dll/map.c"), - Object(NonMatching, "REL/m428Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/player.c"), }, ), Rel( @@ -1067,9 +1101,9 @@ config.libs = [ Rel( "m430Dll", # Pair-a-sailing objects={ - Object(NonMatching, "REL/m430Dll/main.c"), - Object(NonMatching, "REL/m430Dll/water.c"), - Object(NonMatching, "REL/m430Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/water.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/player.c"), }, ), Rel( @@ -1088,9 +1122,9 @@ config.libs = [ Rel( "m433Dll", # Beach Volley Folly objects={ - Object(NonMatching, "REL/m433Dll/main.c"), - Object(NonMatching, "REL/m433Dll/map.c"), - Object(NonMatching, "REL/m433Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/player.c"), }, ), Rel( @@ -1098,15 +1132,15 @@ config.libs = [ objects={ Object(Matching, "REL/m434Dll/main.c"), Object(Matching, "REL/m434Dll/map.c"), - Object(NonMatching, "REL/m434Dll/player.c"), + Object(Matching, "REL/m434Dll/player.c"), Object(Matching, "REL/m434Dll/fish.c"), }, ), Rel( "m435Dll", # Darts of Doom objects={ - Object(NonMatching, "REL/m435Dll/main.c"), - Object(NonMatching, "REL/m435Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m435Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m435Dll/sequence.c"), }, ), Rel( @@ -1126,9 +1160,9 @@ config.libs = [ Rel( "m438Dll", # Chain Chomp Fever objects={ - Object(NonMatching, "REL/m438Dll/main.c"), - Object(NonMatching, "REL/m438Dll/map.c"), - Object(NonMatching, "REL/m438Dll/fire.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/fire.c"), }, ), Rel( @@ -1154,66 +1188,66 @@ config.libs = [ "m442Dll", # Barrel Baron objects={ Object(Matching, "REL/m442Dll/main.c"), - Object(Matching, "REL/m442Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m442Dll/score.c"), }, ), Rel( "m443Dll", # Mario Speedwagons objects={ - Object(Matching, "REL/m443Dll/main.c"), - Object(Matching, "REL/m443Dll/map.c"), - Object(Matching, "REL/m443Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/player.c"), }, ), Rel( "m444dll", # Reversal of Fortune objects={ - Object(Matching, "REL/m444dll/main.c"), - Object(Matching, "REL/m444dll/pinball.c"), - Object(Matching, "REL/m444dll/datalist.c"), - Object(Matching, "REL/m444dll/shadow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/pinball.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/shadow.c"), }, ), Rel( "m445Dll", # Bowser Bop objects={ - Object(Matching, "REL/m445Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m445Dll/main.c"), }, ), Rel( "m446dll", # Mystic Match 'Em objects={ - Object(Matching, "REL/m446Dll/main.c"), - Object(Matching, "REL/m446Dll/card.c"), - Object(Matching, "REL/m446Dll/deck.c"), - Object(Matching, "REL/m446Dll/table.c"), - Object(Matching, "REL/m446Dll/player.c"), - Object(Matching, "REL/m446Dll/camera.c"), - Object(Matching, "REL/m446Dll/cursor.c"), - Object(Matching, "REL/m446Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/deck.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/table.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/stage.c"), }, ), Rel( "m447dll", # Archaeologuess objects={ - Object(Matching, "REL/m447dll/main.c"), - Object(Matching, "REL/m447dll/stage.c"), - Object(Matching, "REL/m447dll/camera.c"), - Object(Matching, "REL/m447dll/player.c"), - Object(Matching, "REL/m447dll/player_col.c"), - Object(Matching, "REL/m447dll/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/player_col.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/block.c"), }, ), Rel( "m448Dll", # Goomba's Chip Flip objects={ - Object(Matching, "REL/m448Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m448Dll/main.c"), }, ), Rel( "m449Dll", # Kareening Koopa objects={ - Object(NonMatching, "REL/m449Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m449Dll/main.c"), }, ), Rel( @@ -1225,100 +1259,100 @@ config.libs = [ Rel( "m451Dll", # Jigsaw Jitters objects={ - Object(Matching, "REL/m451Dll/m451.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m451Dll/m451.c"), }, ), Rel( "m453Dll", # Challenge Booksquirm objects={ - Object(Matching, "REL/m453Dll/main.c"), - Object(Matching, "REL/m453Dll/map.c"), - Object(Matching, "REL/m453Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/score.c"), }, ), Rel( "m455Dll", # Rumble Fishing objects={ - Object(Matching, "REL/m455Dll/main.c"), - Object(Matching, "REL/m455Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m455Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m455Dll/stage.c"), }, ), Rel( "m456Dll", # Take a Breather objects={ - Object(NonMatching, "REL/m456Dll/main.c"), - Object(NonMatching, "REL/m456Dll/stage.c"), + Object(Matching, "REL/m456Dll/main.c"), + Object(Matching, "REL/m456Dll/stage.c"), }, ), Rel( "m457Dll", # Bowser Wrestling objects={ - Object(NonMatching, "REL/m457Dll/main.c"), + Object(Matching, "REL/m457Dll/main.c"), }, ), Rel( "m458Dll", # Panels of Doom objects={ - Object(NonMatching, "REL/m458Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m458Dll/main.c"), }, ), Rel( "m459dll", # Mushroom Medic objects={ - Object(NonMatching, "REL/m459dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m459dll/main.c"), }, ), Rel( "m460Dll", # Doors of Doom objects={ - Object(NonMatching, "REL/m460Dll/main.c"), - Object(NonMatching, "REL/m460Dll/player.c"), - Object(NonMatching, "REL/m460Dll/map.c"), - Object(NonMatching, "REL/m460Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/score.c"), }, ), Rel( "m461Dll", # Bob-omb X-ing objects={ - Object(Matching, "REL/m461Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m461Dll/main.c"), }, ), Rel( "m462Dll", # Goomba Stomp objects={ - Object(NonMatching, "REL/m462Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m462Dll/main.c"), }, ), Rel( "m463Dll", # Panel Panic 9 Player objects={ - Object(NonMatching, "REL/m463Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m463Dll/main.c"), }, ), Rel( "mentDll", objects={ - Object(Matching, "REL/mentDll/common.c"), - Object(Matching, "REL/mentDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mentDll/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mentDll/main.c"), }, ), Rel( "messDll", objects={ - Object(Matching, "REL/messDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/messDll/main.c"), }, ), Rel( "mgmodedll", objects={ - Object(Matching, "REL/mgmodedll/mgmode.c"), - Object(Matching, "REL/mgmodedll/free_play.c"), - Object(Matching, "REL/mgmodedll/record.c"), - Object(Matching, "REL/mgmodedll/battle.c"), - Object(NonMatching, "REL/mgmodedll/tictactoe.c"), - Object(Matching, "REL/mgmodedll/main.c"), - Object(Matching, "REL/mgmodedll/datalist.c"), - Object(Matching, "REL/mgmodedll/minigame.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/mgmode.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/free_play.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/tictactoe.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/minigame.c"), }, ), Rel( @@ -1332,78 +1366,78 @@ config.libs = [ Rel( "modeseldll", objects={ - Object(Matching, "REL/modeseldll/main.c"), - Object(NonMatching, "REL/modeseldll/modesel.c"), - Object(Matching, "REL/modeseldll/filesel.c"), - Object(Matching, "REL/modeseldll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/modesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/filesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/datalist.c"), }, ), Rel( "mpexDll", objects={ - Object(Matching, "REL/mpexDll/main.c"), - Object(Matching, "REL/mpexDll/mpex.c"), - Object(Matching, "REL/mpexDll/charsel.c"), - Object(Matching, "REL/mpexDll/mgname.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/mpex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/charsel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mgname.c"), }, ), Rel( "mstory2Dll", objects={ - Object(NonMatching, "REL/mstory2Dll/main.c"), - Object(NonMatching, "REL/mstory2Dll/board_entrance.c"), - Object(NonMatching, "REL/mstory2Dll/board_clear.c"), - Object(NonMatching, "REL/mstory2Dll/board_miss.c"), - Object(NonMatching, "REL/mstory2Dll/mg_clear.c"), - Object(NonMatching, "REL/mstory2Dll/mg_miss.c"), - Object(NonMatching, "REL/mstory2Dll/ending.c"), - Object(NonMatching, "REL/mstory2Dll/save.c"), + Object(Matching, "REL/mstory2Dll/main.c"), + Object(Matching, "REL/mstory2Dll/board_entrance.c"), + Object(Matching, "REL/mstory2Dll/board_clear.c"), + Object(Matching, "REL/mstory2Dll/board_miss.c"), + Object(Matching, "REL/mstory2Dll/mg_clear.c"), + Object(Matching, "REL/mstory2Dll/mg_miss.c"), + Object(Matching, "REL/mstory2Dll/ending.c"), + Object(Matching, "REL/mstory2Dll/save.c"), }, ), Rel( "mstory3Dll", objects={ - Object(NonMatching, "REL/mstory3Dll/main.c"), - Object(NonMatching, "REL/mstory3Dll/result_seq.c"), - Object(NonMatching, "REL/mstory3Dll/result.c"), - Object(NonMatching, "REL/mstory3Dll/win_effect.c"), + Object(Matching, "REL/mstory3Dll/main.c"), + Object(Matching, "REL/mstory3Dll/result_seq.c"), + Object(Matching, "REL/mstory3Dll/result.c"), + Object(Matching, "REL/mstory3Dll/win_effect.c"), }, ), Rel( "mstory4Dll", objects={ - Object(Matching, "REL/mstory4Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mstory4Dll/main.c"), }, ), Rel( "mstoryDll", objects={ - Object(NonMatching, "REL/mstoryDll/main.c"), - Object(NonMatching, "REL/mstoryDll/board_clear.c"), - Object(NonMatching, "REL/mstoryDll/board_miss.c"), - Object(NonMatching, "REL/mstoryDll/mg_clear.c"), - Object(NonMatching, "REL/mstoryDll/mg_miss.c"), - Object(NonMatching, "REL/mstoryDll/save.c"), + Object(Matching, "REL/mstoryDll/main.c"), + Object(Matching, "REL/mstoryDll/board_clear.c"), + Object(Matching, "REL/mstoryDll/board_miss.c"), + Object(Matching, "REL/mstoryDll/mg_clear.c"), + Object(Matching, "REL/mstoryDll/mg_miss.c"), + Object(Matching, "REL/mstoryDll/save.c"), }, ), Rel( "nisDll", objects={ - Object(Matching, "REL/nisDll/main.c") + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/nisDll/main.c") }, ), Rel( "option", objects={ - Object(Matching, "REL/option/scene.c"), - Object(Matching, "REL/option/camera.c"), - Object(Matching, "REL/option/room.c"), - Object(Matching, "REL/option/guide.c"), - Object(Matching, "REL/option/state.c"), - Object(Matching, "REL/option/rumble.c"), - Object(Matching, "REL/option/sound.c"), - Object(Matching, "REL/option/record.c"), - Object(Matching, "REL/option/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/room.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/guide.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/state.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/rumble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/sound.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/window.c"), }, ), Rel( @@ -1427,25 +1461,25 @@ config.libs = [ Rel( "safDll", objects={ - Object(Matching, "REL/safDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/safDll/main.c"), }, ), Rel( "selmenuDll", objects={ - Object(Matching, "REL/selmenuDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(Matching, "REL/staffDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/staffDll/main.c"), }, ), Rel( "subchrselDll", objects={ - Object(Matching, "REL/subchrselDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/subchrselDll/main.c"), }, ), Rel( diff --git a/extern/musyx b/extern/musyx index ddfad60c..a170f2ef 160000 --- a/extern/musyx +++ b/extern/musyx @@ -1 +1 @@ -Subproject commit ddfad60c3e4fede55479c744a1c70081e0d6cd12 +Subproject commit a170f2ef4a3f51edb89bc792dff79d55b2c42a89 diff --git a/include/OdemuExi2/odemuexi/DebuggerDriver.h b/include/OdemuExi2/odemuexi/DebuggerDriver.h new file mode 100644 index 00000000..71a27ed3 --- /dev/null +++ b/include/OdemuExi2/odemuexi/DebuggerDriver.h @@ -0,0 +1,24 @@ +#ifndef ODEMUEXI_DEBUGGER_DRIVER_H +#define ODEMUEXI_DEBUGGER_DRIVER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int Hu_IsStub(); + +void DBInitComm(volatile u8** param_1, __OSInterruptHandler param_2); +void DBInitInterrupts(void); +u32 DBQueryData(void); +int DBRead(void* data, u32 size); +int DBWrite(const void* data, u32 size); +void DBOpen(void); +void DBClose(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/MetroTRK/trk.h b/include/PowerPC_EABI_Support/MetroTRK/trk.h new file mode 100644 index 00000000..f7fa1c09 --- /dev/null +++ b/include/PowerPC_EABI_Support/MetroTRK/trk.h @@ -0,0 +1,384 @@ +#ifndef __METROTRK_TRK_H__ +#define __METROTRK_TRK_H__ + +#include "dolphin/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//////////// TRK ENUMS ///////////// +// Hardware types. +typedef enum { + HARDWARE_AMC_DDH = 0, + HARDWARE_GDEV = 1, + HARDWARE_BBA = 2 +} HardwareType; + +// DS Error returns. +enum { + DS_NoError = 0x0, + DS_StepError = 0x1, + DS_ParameterError = 0x2, + + DS_EventQueueFull = 0x100, + + DS_NoMessageBufferAvailable = 0x300, + DS_MessageBufferOverflow = 0x301, + DS_MessageBufferReadError = 0x302, + + DS_DispatchError = 0x500, + + DS_InvalidMemory = 0x700, + DS_InvalidRegister = 0x701, + DS_CWDSException = 0x702, + DS_UnsupportedError = 0x703, + DS_InvalidProcessID = 0x704, + DS_InvalidThreadID = 0x705, + DS_OSError = 0x706, + + DS_Error800 = 0x800 +}; + +typedef int DSError; + +// Where to read/write. +typedef enum { + DS_Stdin = 0, + DS_Stdout = 1, + DS_Stderr = 2 +} DSFileHandle; + +// IO returns. +typedef enum { + DS_IONoError = 0, + DS_IOError = 1, + DS_IOEOF = 2 +} DSIOResult; + +// Message command IDs +typedef enum { + DSMSG_Ping = 0x0, + DSMSG_Connect = 0x1, + DSMSG_Disconnect = 0x2, + DSMSG_Reset = 0x3, + DSMSG_Versions = 0x4, + DSMSG_SupportMask = 0x5, + DSMSG_Override = 0x7, + + DSMSG_ReadMemory = 0x10, + DSMSG_WriteMemory = 0x11, + DSMSG_ReadRegisters = 0x12, + DSMSG_WriteRegisters = 0x13, + DSMSG_SetOption = 0x17, + DSMSG_Continue = 0x18, + DSMSG_Step = 0x19, + DSMSG_Stop = 0x1A, + + DSMSG_ReplyACK = 0x80, + + DSMSG_NotifyStopped = 0x90, + DSMSG_NotifyException = 0x91, + + DSMSG_WriteFile = 0xD0, + DSMSG_ReadFile = 0xD1, + DSMSG_OpenFile = 0xD2, + DSMSG_CloseFile = 0xD3, + DSMSG_PositionFile = 0xD4, + + DSMSG_ReplyNAK = 0xFF +} MessageCommandID; + +// Register commands. +typedef enum { + DSREG_Default = 0, + DSREG_FP = 1, + DSREG_Extended1 = 2, + DSREG_Extended2 = 3 +} DSMessageRegisterOptions; + +// Step commands. +typedef enum { + DSSTEP_IntoCount = 0x0, + DSSTEP_IntoRange = 0x1, + DSSTEP_OverCount = 0x10, + DSSTEP_OverRange = 0x11 +} DSMessageStepOptions; + +typedef enum { + DSREPLY_NoError = 0x0, + DSREPLY_Error = 0x1, + DSREPLY_PacketSizeError = 0x2, + DSREPLY_CWDSError = 0x3, + DSREPLY_EscapeError = 0x4, + DSREPLY_BadFCS = 0x5, + DSREPLY_Overflow = 0x6, + DSREPLY_SequenceMissing = 0x7, + + DSREPLY_UnsupportedCommandError = 0x10, + DSREPLY_ParameterError = 0x11, + DSREPLY_UnsupportedOptionError = 0x12, + DSREPLY_InvalidMemoryRange = 0x13, + DSREPLY_InvalidRegisterRange = 0x14, + DSREPLY_CWDSException = 0x15, + DSREPLY_NotStopped = 0x16, + DSREPLY_BreakpointsFull = 0x17, + DSREPLY_BreakpointConflict = 0x18, + + DSREPLY_OSError = 0x20, + DSREPLY_InvalidProcessID = 0x21, + DSREPLY_InvalidThreadID = 0x22, + DSREPLY_DebugSecurityError = 0x23 +} DSReplyError; + +typedef enum { + DSRECV_Wait = 0, + DSRECV_Found = 1, + DSRECV_InFrame = 2, + DSRECV_FrameOverflow = 3 +} ReceiverState; + +typedef enum { + DSMSGMEMORY_Segmented = 0x01, /* non-flat addr space */ + DSMSGMEMORY_Extended = 0x02, /* > 32-bit data addr */ + DSMSGMEMORY_Protected = 0x04, /* non-user memory */ + DSMSGMEMORY_Userview = 0x08, /* breakpoints are invisible */ + DSMSGMEMORY_Space_program = 0x00, + DSMSGMEMORY_Space_data = 0x40, + DSMSGMEMORY_Space_io = 0x80 +}; + +typedef enum { + NUBEVENT_Null = 0, + NUBEVENT_Shutdown = 1, + NUBEVENT_Request = 2, + NUBEVENT_Breakpoint = 3, + NUBEVENT_Exception = 4, + NUBEVENT_Support = 5 +} NubEventType; + +typedef enum { + VALIDMEM_Readable = 0, + VALIDMEM_Writeable = 1 +} ValidMemoryOptions; + +typedef enum { + MEMACCESS_UserMemory = 0, + MEMACCESS_DebuggerMemory = 1 +} MemoryAccessOptions; + +typedef int UARTError; + +typedef enum { + UART_NoError = 0, + UART_UnknownBaudRate = 1, + UART_ConfigurationError = 2, + UART_BufferOverflow = 3, // specified buffer was too small + UART_NoData = 4 // no data available from polling +} UARTErrorOptions; + +typedef enum { + kBaudHWSet = -1, // use HW settings such as DIP switches + kBaud300 = 300, // valid baud rates + kBaud600 = 600, + kBaud1200 = 1200, + kBaud1800 = 1800, + kBaud2000 = 2000, + kBaud2400 = 2400, + kBaud3600 = 3600, + kBaud4800 = 4800, + kBaud7200 = 7200, + kBaud9600 = 9600, + kBaud19200 = 19200, + kBaud38400 = 38400, + kBaud57600 = 57600, + kBaud115200 = 115200, + kBaud230400 = 230400 +} UARTBaudRate; + +//////////////////////////////////// + +typedef int MessageBufferID; + +#define TRKMSGBUF_SIZE (0x800 + 0x80) + +typedef struct TRKBuffer { + /* 0x00 */ u32 mutex; + /* 0x04 */ BOOL isInUse; + /* 0x08 */ u32 length; + /* 0x0C */ u32 position; + /* 0x10 */ u8 data[TRKMSGBUF_SIZE]; +} TRKBuffer; + +typedef struct TRKFramingState { + MessageBufferID msgBufID; // _00 + TRKBuffer* buffer; // _04 + ReceiverState receiveState; // _08 + BOOL isEscape; // _0C + u8 fcsType; // _10 +} TRKFramingState; + +typedef struct TRKState_PPC { + u32 GPR[32]; // 0x0 + u32 LR; // 0x80 + u32 CTR; // 0x84 + u32 XER; // 0x88 + u32 MSR; // 0x8c + u32 DAR; // 0x90 + u32 DSISR; // 0x94 + BOOL stopped; // 0x98 + BOOL inputActivated; // 0x9c + u8* inputPendingPtr; // 0xA0 +} TRKState_PPC; + +typedef struct CommandReply { + u32 _00; // _00 + union { + u8 b; + MessageCommandID m; + } commandID; // _04, use MessageCommandID enum + union { + u8 b; + DSReplyError r; + } replyError; // _08, use DSReplyError enum - should be enum type? check + // size. + u32 _0C; // _0C + u8 _10[0x30]; // _10, unknown +} CommandReply; + +typedef struct ProcessorRestoreFlags_PPC { + u8 TBR; + u8 DEC; + u8 linker_padding[0x9 - 0x2]; +} ProcessorRestoreFlags_PPC; + +void TRKSaveExtended1Block(); + +void SetUseSerialIO(u8); +u8 GetUseSerialIO(void); + +#define SPR_XER 1 +#define SPR_LR 8 +#define SPR_CTR 9 +#define SPR_DSISR 18 +#define SPR_DAR 19 +#define SPR_DEC 22 +#define SPR_SDR1 25 +#define SPR_SRR0 26 +#define SPR_SRR1 27 +#define SPR_SPRG0 272 +#define SPR_SPRG1 273 +#define SPR_SPRG2 274 +#define SPR_SPRG3 275 +#define SPR_EAR 282 +#define SPR_TBL 284 +#define SPR_TBU 285 +#define SPR_PVR 287 +#define SPR_IBAT0U 528 +#define SPR_IBAT0L 529 +#define SPR_IBAT1U 530 +#define SPR_IBAT1L 531 +#define SPR_IBAT2U 532 +#define SPR_IBAT2L 533 +#define SPR_IBAT3U 534 +#define SPR_IBAT3L 535 +#define SPR_IBAT4U 560 +#define SPR_IBAT4L 561 +#define SPR_IBAT5U 562 +#define SPR_IBAT5L 563 +#define SPR_IBAT6U 564 +#define SPR_IBAT6L 565 +#define SPR_IBAT7U 566 +#define SPR_IBAT7L 567 +#define SPR_DBAT0U 536 +#define SPR_DBAT0L 537 +#define SPR_DBAT1U 538 +#define SPR_DBAT1L 539 +#define SPR_DBAT2U 540 +#define SPR_DBAT2L 541 +#define SPR_DBAT3U 542 +#define SPR_DBAT3L 543 +#define SPR_DBAT4U 568 +#define SPR_DBAT4L 569 +#define SPR_DBAT5U 570 +#define SPR_DBAT5L 571 +#define SPR_DBAT6U 572 +#define SPR_DBAT6L 573 +#define SPR_DBAT7U 574 +#define SPR_DBAT7L 575 +#define SPR_GQR0 912 +#define SPR_GQR1 913 +#define SPR_GQR2 914 +#define SPR_GQR3 915 +#define SPR_GQR4 916 +#define SPR_GQR5 917 +#define SPR_GQR6 918 +#define SPR_GQR7 919 +#define SPR_HID2 920 +#define SPR_WPAR 921 +#define SPR_DMA_U 922 +#define SPR_DMA_L 923 +#define SPR_UMMCR0 936 +#define SPR_UPMC1 937 +#define SPR_UPMC2 938 +#define SPR_USIA 939 +#define SPR_UMMCR1 940 +#define SPR_UPMC3 941 +#define SPR_UPMC4 942 +#define SPR_USDA 943 +#define SPR_MMCR0 952 +#define SPR_PMC1 953 +#define SPR_PMC2 954 +#define SPR_SIA 955 +#define SPR_MMCR1 956 +#define SPR_PMC3 957 +#define SPR_PMC4 958 +#define SPR_SDA 959 +#define SPR_HID0 1008 +#define SPR_HID1 1009 +#define SPR_IABR 1010 +#define SPR_HID4 1011 +#define SPR_DABR 1013 +#define SPR_L2CR 1017 +#define SPR_ICTC 1019 +#define SPR_THRM1 1020 +#define SPR_THRM2 1021 +#define SPR_FPECR 1022 + +// PPC exceptions +// 0x000 is reserved +#define PPC_SystemReset 0x100 +#define PPC_MachineCheck 0x200 +#define PPC_DataStorage 0x300 +#define PPC_InstructionStorage 0x400 +#define PPC_ExternalInterrupt 0x500 +#define PPC_Alignment 0x600 +#define PPC_Program 0x700 +#define PPC_FloatingPointUnavaiable 0x800 +#define PPC_Decrementer 0x900 +// 0xA00-0xB00 are reserved +#define PPC_SystemCall 0xC00 +#define PPC_Trace 0xD00 +#define PPC_FloatingPointAssist 0xE00 // unimplemented in 750CL +#define PPC_PerformanceMonitor 0xF00 // Dolphin/Broadway specific +// 0x1000-0x1200 are unimplemented in 750CL +#define PPC_InstructionAddressBreakpoint 0x1300 // Dolphin/Broadway specific +// 0x1400-0x2F00 are reserved, but TRK uses some +#define PPC_SystemManagementInterrupt 0x1400 +// 0x1500-0x1600 are unimplemented in 750CL +#define PPC_ThermalManagementInterrupt 0x1700 +#define PPC_1800Exception 0x1800 +#define PPC_1900Exception 0x1900 +#define PPC_1A00Exception 0x1A00 +#define PPC_1B00Exception 0x1B00 +#define PPC_1C00Exception 0x1C00 // Data breakpoint? +#define PPC_1D00Exception 0x1D00 // Instruction breakpoint? +#define PPC_1E00Exception 0x1E00 // Peripheral breakpoint? +#define PPC_1F00Exception 0x1F00 // Non maskable development port? +#define PPC_2000Exception 0x2000 + +#ifdef __cplusplus +} +#endif + +#endif /* __METROTRK_TRK_H__ */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h new file mode 100644 index 00000000..046471d5 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_FILE_POS_H +#define _MSL_COMMON_FILE_POS_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fseek(FILE* file, unsigned long offset, int mode); +int _fseek(FILE* file, fpos_t offset, int mode); +long ftell(FILE* file); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_FILE_POS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h new file mode 100644 index 00000000..7c62fe70 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_ABORT_EXIT_H +#define _MSL_COMMON_ABORT_EXIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +void exit(int status); +void abort(void); + +extern void (*__stdio_exit)(void); + +#ifdef __cplusplus +}; +#endif + +#endif /* _MSL_COMMON_ABORT_EXIT_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h new file mode 100644 index 00000000..6b08d6f9 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_ALLOC_H +#define _MSL_COMMON_ALLOC_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void free(void* ptr); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_ALLOC_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h new file mode 100644 index 00000000..2e0e8010 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h @@ -0,0 +1,129 @@ +#ifndef _MSL_COMMON_ANSI_FILES_H +#define _MSL_COMMON_ANSI_FILES_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +typedef unsigned long __file_handle; +typedef unsigned long fpos_t; +#ifndef __cplusplus +typedef unsigned short wchar_t; +#endif + +#define set_error(file) \ + do { \ + (file)->file_state.error = 1; \ + (file)->buffer_length = 0; \ + } while (0) + +enum __file_kinds { + __closed_file, + __disk_file, + __console_file, + __string_file, + __unavailable_file +}; + +enum __file_orientation { + /* 0x0 */ UNORIENTED, + /* 0x1 */ CHAR_ORIENTED, + /* 0x2 */ WIDE_ORIENTED +}; + +typedef struct _file_modes { + unsigned int open_mode : 2; + unsigned int io_mode : 3; + unsigned int buffer_mode : 2; + unsigned int file_kind : 3; + unsigned int file_orientation : 2; + unsigned int binary_io : 1; +} file_modes; + +enum __io_modes { + __read = 1, + __write = 2, + __read_write = 3, + __append = 4 +}; + +enum __io_states { + __neutral, + __writing, + __reading, + __rereading +}; + +enum __io_results { + __no_io_error, + __io_error, + __io_EOF +}; + +typedef struct _file_states { + unsigned int io_state : 3; + unsigned int free_buffer : 1; + unsigned char eof; + unsigned char error; +} file_states; + +typedef void (*__idle_proc)(void); +typedef int (*__pos_proc)(__file_handle file, fpos_t* position, int mode, + __idle_proc idle_proc); +typedef int (*__io_proc)(__file_handle file, unsigned char* buff, size_t* count, + __idle_proc idle_proc); +typedef int (*__close_proc)(__file_handle file); + +typedef struct _FILE { + __file_handle handle; + file_modes file_mode; + file_states file_state; + + unsigned char is_dynamically_allocated; + char char_buffer; + char char_buffer_overflow; + char ungetc_buffer[2]; + wchar_t ungetc_wide_buffer[2]; + + unsigned long position; + unsigned char* buffer; + unsigned long buffer_size; + unsigned char* buffer_ptr; + unsigned long buffer_length; + unsigned long buffer_alignment; + unsigned long save_buffer_length; + unsigned long buffer_position; + + __pos_proc position_fn; + __io_proc read_fn; + __io_proc write_fn; + __close_proc close_fn; + __idle_proc idle_fn; + struct _FILE* next_file_struct; +} FILE; + +#define _IONBF 0 +#define _IOLBF 1 +#define _IOFBF 2 + +extern FILE __files[]; +extern int __close_console(__file_handle file); +extern int __write_console(__file_handle file, unsigned char* buf, + size_t* count, __idle_proc idle_fn); +extern int __read_console(__file_handle file, unsigned char* buf, size_t* count, + __idle_proc idle_fn); + +unsigned int __flush_all(void); +void __close_all(void); + +#ifdef __cplusplus +}; +#endif + +#endif /* _MSL_COMMON_ANSI_FILES_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h new file mode 100644 index 00000000..a7a5cc67 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h @@ -0,0 +1,27 @@ +#ifndef _MSL_COMMON_ANSI_FP_H +#define _MSL_COMMON_ANSI_FP_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +#define SIGDIGLEN 36 + +typedef struct decimal { + char sign; + char unk1; + short exp; + struct { + unsigned char length; + unsigned char text[36]; + unsigned char unk41; + } sig; +} decimal; + +typedef struct decform { + char style; + char unk1; + short digits; +} decform; + +void __num2dec(const decform* form, double x, decimal* d); + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h new file mode 100644 index 00000000..317dfa0d --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h @@ -0,0 +1,19 @@ +#ifndef _MSL_COMMON_ARITH_H +#define _MSL_COMMON_ARITH_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + int quot; /* quotient */ + int rem; /* remainder */ +} div_t; + +div_t div(int numerator, int denominator); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_ARITH_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h new file mode 100644 index 00000000..85ad160a --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h @@ -0,0 +1,11 @@ +#ifndef _MSL_COMMON_BUFFER_IO_H +#define _MSL_COMMON_BUFFER_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +enum { __align_buffer, __dont_align_buffer }; + +void __prep_buffer(FILE* file); +int __flush_buffer(FILE* file, size_t* bytes_flushed); + +#endif /* _MSL_COMMON_BUFFER_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h new file mode 100644 index 00000000..e3733cf7 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_CHAR_IO_H +#define _MSL_COMMON_CHAR_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fputs(const char* str, FILE* stream); +int __put_char(int c, FILE* stream); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_CHAR_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h new file mode 100644 index 00000000..e4456725 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h @@ -0,0 +1,30 @@ +#ifndef _MSL_COMMON_CRITICAL_REGIONS_H +#define _MSL_COMMON_CRITICAL_REGIONS_H + +#ifdef __cplusplus +extern "C" { +#endif + +enum critical_regions { + atexit_funcs_access, + malloc_pool_access, + stdin_access, + stdout_access, + stderr_access, + files_access, + console_status_access, + signal_funcs_access, + thread_access, + num_critical_regions +}; + +void __init_critical_regions(void); +void __kill_critical_regions(void); +void __begin_critical_region(int region); +void __end_critical_region(int region); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h new file mode 100644 index 00000000..d6a1b29d --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h @@ -0,0 +1,76 @@ +#ifndef _MSL_COMMON_CTYPE_H +#define _MSL_COMMON_CTYPE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define EOF -1L + +extern unsigned char __ctype_map[]; +extern unsigned char __lower_map[]; +extern unsigned char __upper_map[]; + +#define __control_char 0x01 +#define __motion_char 0x02 +#define __space_char 0x04 +#define __punctuation 0x08 +#define __digit 0x10 +#define __hex_digit 0x20 +#define __lower_case 0x40 +#define __upper_case 0x80 + +#define __letter (__lower_case | __upper_case) +#define __alphanumeric (__letter | __digit) +#define __graphic (__alphanumeric | __punctuation) +#define __printable (__graphic | __space_char) +#define __whitespace (__motion_char | __space_char) +#define __control (__motion_char | __control_char) +#define __zero_fill(c) ((int)(unsigned char)(c)) + +int tolower(int c); +int toupper(int c); + +inline int _isalpha(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __letter); +} +inline int isdigit(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __digit); +} +inline int isspace(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __whitespace); +} +inline int isupper(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __upper_case); +} +inline int isxdigit(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __hex_digit); +} + +inline int _tolower(int c) +{ + return (c == -1 ? -1 : (int)__lower_map[(unsigned char)c]); +} + +#ifdef __cplusplus +}; + +namespace std { +inline int tolower(int c) +{ + return (c == -1 ? -1 : (int)__lower_map[(unsigned char)c]); +} +inline int toupper(int c) +{ + return (c == -1 ? -1 : (int)__upper_map[(unsigned char)c]); +} +}; // namespace std + +#endif + +#endif /* _MSL_COMMON_CTYPE_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h new file mode 100644 index 00000000..7e838551 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_DIRECT_IO_H +#define _MSL_COMMON_DIRECT_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +size_t __fwrite(const void* buffer, size_t size, size_t count, FILE* stream); +size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_DIRECT_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h new file mode 100644 index 00000000..269d896d --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h @@ -0,0 +1,20 @@ +#ifndef MSL_COMMON_SRC_ERRNO_H +#define MSL_COMMON_SRC_ERRNO_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define ENOERR 0 +#define EDOM 33 +#define ERANGE 34 +#define EFPOS 40 +#define ESIGPARM 36 + +extern int errno; + +#ifdef __cplusplus +} +#endif + +#endif /* MSL_COMMON_SRC_ERRNO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h new file mode 100644 index 00000000..4d8e8b62 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h @@ -0,0 +1,15 @@ +#ifndef _MSL_COMMON_EXTRAS_H +#define _MSL_COMMON_EXTRAS_H + +#ifdef __cplusplus +extern "C" { +#endif + +int strnicmp(const char* str1, const char* str2, int n); +int stricmp(const char* str1, const char* str2); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_EXTRAS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h new file mode 100644 index 00000000..a06e7cef --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_FILE_IO_H +#define _MSL_COMMON_FILE_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int __msl_strnicmp(const char* str1, const char* str2, int n); +int fflush(FILE* file); +int fclose(FILE* file); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_FILE_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h new file mode 100644 index 00000000..14d34342 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h @@ -0,0 +1,92 @@ +#ifndef _MSL_COMMON_FLOAT_H +#define _MSL_COMMON_FLOAT_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#define FP_SNAN 0 +#define FP_QNAN 1 +#define FP_INFINITE 2 +#define FP_ZERO 3 +#define FP_NORMAL 4 +#define FP_SUBNORMAL 5 + +#define FP_NAN FP_QNAN + +#define fpclassify(x) \ + ((sizeof(x) == sizeof(float)) ? __fpclassifyf(x) : __fpclassifyd(x)) +#define signbit(x) \ + ((sizeof(x) == sizeof(float)) ? __signbitf(x) : __signbitd(x)) +#define isfinite(x) ((fpclassify(x) > 2)) +#define isnan(x) ((fpclassify(x) == FP_NAN)) +#define isinf(x) ((fpclassify(x) == FP_INFINITE)) + +#define __signbitf(x) ((int)(__HI(x) & 0x80000000)) + +// TODO: OK? +#define __signbitd(x) ((int)(__HI(x) & 0x80000000)) + +extern unsigned long __float_nan[]; +extern unsigned long __float_huge[]; +extern unsigned long __float_max[]; +extern unsigned long __float_epsilon[]; + +inline int __fpclassifyf(float __value) +{ + unsigned long integer = *(unsigned long*)&__value; + + switch (integer & 0x7f800000) { + case 0x7f800000: + if ((integer & 0x7fffff) != 0) { + return FP_QNAN; + } + return FP_INFINITE; + + case 0: + if ((integer & 0x7fffff) != 0) { + return FP_SUBNORMAL; + } + return FP_ZERO; + } + + return FP_NORMAL; +} + +inline int __fpclassifyd(double __value) +{ + switch (__HI(__value) & 0x7ff00000) { + case 0x7ff00000: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_QNAN; + else + return FP_INFINITE; + break; + } + case 0: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_SUBNORMAL; + else + return FP_ZERO; + break; + } + } + return FP_NORMAL; +} + +#define FLT_MANT_DIG 24 +#define FLT_DIG 6 +#define FLT_MIN_EXP (-125) +#define FLT_MIN_10_EXP (-37) +#define FLT_MAX_EXP 128 +#define FLT_MAX_10_EXP 38 + +#define FLT_MAX 3.40282346638528860e+38f +#define FLT_EPSILON 1.1920928955078125e-07f + +#define DBL_MANT_DIG 53 +#define DBL_DIG 15 +#define DBL_MIN_EXP (-1021) +#define DBL_MIN_10_EXP (-308) +#define DBL_MAX_EXP 1024 +#define DBL_MAX_10_EXP 308 + +#endif /* _MSL_COMMON_FLOAT_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h new file mode 100644 index 00000000..2b8b756f --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h @@ -0,0 +1,93 @@ +#ifndef _STD_LIMITS_H +#define _STD_LIMITS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define CHAR_BIT 8 + +#define SCHAR_MIN (-0x7F - 1) +#define SCHAR_MAX 0x7F +#define UCHAR_MAX 0xFF + +#define CHAR_MIN 0 +#define CHAR_MAX SCHAR_MAX + +#define SHRT_MIN (-0x7FFF - 1) +#define SHRT_MAX 0x7FFF +#define USHRT_MAX 0xFFFF + +#define INT_MIN (-0x7FFFFFFF - 1) +#define INT_MAX 0x7FFFFFFF +#define UINT_MAX 0xFFFFFFFF + +#define LONG_MIN (-0x7FFFFFFFL - 1) +#define LONG_MAX 0x7FFFFFFFL +#define ULONG_MAX 0xFFFFFFFFUL + +#define LLONG_MIN (-0x7FFFFFFFFFFFFFFFLL - 1) +#define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL +#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL + +#ifdef __cplusplus +} + +namespace std { +template class numeric_limits { +public: + inline static T min(); + inline static T max(); +}; + +template <> class numeric_limits { +public: + inline static char min() { return -0x80; } + inline static char max() { return 0x7F; } +}; + +template <> class numeric_limits { +public: + inline static short min() { return -0x8000; } + inline static short max() { return 0x7FFF; } +}; + +template <> class numeric_limits { +public: + inline static int min() { return -0x80000000; } + inline static int max() { return 0x7FFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static long min() { return -0x80000000; } + inline static long max() { return 0x7FFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned char min() { return 0x0; } + inline static unsigned char max() { return 0xFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned short min() { return 0x0; } + inline static unsigned short max() { return 0xFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned int min() { return 0x0; } + inline static unsigned int max() { return 0xFFFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned long min() { return 0x0; } + inline static unsigned long max() { return 0xFFFFFFFF; } +}; + +} // namespace std +#endif +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h new file mode 100644 index 00000000..e99949cc --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h @@ -0,0 +1,106 @@ +#ifndef MSL_MATH_H_ +#define MSL_MATH_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +#define NAN (*(float*)__float_nan) +#define HUGE_VALF (*(float*)__float_huge) + +#define M_PI 3.14159265358979323846f +#define M_SQRT3 1.73205f + +#define DEG_TO_RAD(degrees) (degrees * (M_PI / 180.0f)) +#define RAD_TO_DEG(radians) \ + (radians \ + * (180.0f / M_PI + 0.000005f)) // the 0.000005f is probably a fakematch + +#ifdef __cplusplus +extern "C" { +#endif + +int abs(int); +double acos(double); +float acosf(float); +double asin(double); +double atan(double); +double atan2(double, double); +double ceil(double); +double copysign(double, double); +double cos(double); +float cosf(float); +double exp(double); + +extern double __fabs(double); +extern float __fabsf(float); +inline double fabs(double f) { return __fabs(f); } + +double __frsqrte(double); +float __fres(float); + +double floor(double); +double fmod(double, double); + +double frexp(double, int*); +double ldexp(double, int); +double modf(double, double*); +double pow(double, double); +double sin(double); +float sinf(float); +double tan(double); +float tanf(float); + +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess + * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } else if (x == 0) + return 0; + else if (x) + return NAN; + + return HUGE_VALF; +} + +#ifdef __cplusplus +}; + +namespace std { +inline float fabsf(float f) { return fabs(f); } +inline float abs(float f) { return fabsf(f); } +inline float fmodf(float x, float y) { return fmod(x, y); } +inline float atan2f(float y, float x) { return (float)atan2(y, x); } +inline float sinf(float x) { return sin(x); } +inline float cosf(float x) { return cos(x); } +inline float tanf(float x) { return tan(x); } + +extern inline float sqrtf(float x) +{ + const double _half = .5; + const double _three = 3.0; + volatile float y; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess + * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess + * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess + * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; + } + return x; +} +}; // namespace std +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h new file mode 100644 index 00000000..325c4527 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h @@ -0,0 +1,5 @@ +double acos(double x); +double tan(double); +double sin(double); +double cos(double); +double atan2(double); diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h new file mode 100644 index 00000000..2aa9f4ea --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_MBSTRING_H +#define _MSL_COMMON_MBSTRING_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +size_t wcstombs(char* dst, const wchar_t* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MBSTRING_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h new file mode 100644 index 00000000..0e245466 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h @@ -0,0 +1,19 @@ +#ifndef _MSL_COMMON_MEM_FUNCS_H +#define _MSL_COMMON_MEM_FUNCS_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void __copy_longs_rev_unaligned(void* dst, const void* src, size_t n); +void __copy_longs_unaligned(void* dst, const void* src, size_t n); +void __copy_longs_rev_aligned(void* dst, const void* src, size_t n); +void __copy_longs_aligned(void* dst, const void* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MEM_FUNCS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h new file mode 100644 index 00000000..715f282a --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h @@ -0,0 +1,14 @@ +#ifndef _MSL_COMMON_MISC_IO_H +#define _MSL_COMMON_MISC_IO_H + +#ifdef __cplusplus +extern "C" { +#endif + +void __stdio_atexit(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MISC_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h new file mode 100644 index 00000000..e716867f --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h @@ -0,0 +1,22 @@ +#ifndef _MSL_COMMON_PRINTF_H +#define _MSL_COMMON_PRINTF_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "stdarg.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fprintf(FILE* stream, const char* format, ...); +int printf(const char* format, ...); +int sprintf(char* s, const char* format, ...); +int snprintf(char* s, size_t n, const char* format, ...); +int vsnprintf(char* s, size_t n, const char* format, va_list arg); +int vprintf(const char* format, va_list arg); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_PRINTF_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h new file mode 100644 index 00000000..c6451e34 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h @@ -0,0 +1,43 @@ +#ifndef _MSL_COMMON_SCANF_H +#define _MSL_COMMON_SCANF_H + +#include "stddef.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum __ReadProcActions { __GetAChar, __UngetAChar, __TestForError }; + +enum __WReadProcActions { __GetAwChar, __UngetAwChar, __TestForwcsError }; + +typedef struct { + char* CharStr; + size_t MaxCharCount; + size_t CharsWritten; +} __OutStrCtrl; + +typedef struct { + char* NextChar; + int NullCharDetected; +} __InStrCtrl; + +typedef struct { + wchar_t* wCharStr; + size_t MaxCharCount; + size_t CharsWritten; +} __wOutStrCtrl; + +typedef struct { + wchar_t* wNextChar; + int wNullCharDetected; +} __wInStrCtrl; + +int __StringRead(void* str, int ch, int behavior); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_SCANF_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h new file mode 100644 index 00000000..58fc22ab --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_SIGNAL_H +#define _MSL_COMMON_SIGNAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*__signal_func_ptr)(int); + +int raise(int sig); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_SIGNAL_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h new file mode 100644 index 00000000..01097a0c --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h @@ -0,0 +1,13 @@ +#ifndef MSL_STDIO_H_ +#define MSL_STDIO_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h" // IWYU pragma: export + +#define stdin (&__files[0]) +#define stdout (&__files[1]) +#define stderr (&__files[2]) + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h new file mode 100644 index 00000000..9df0be5b --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h @@ -0,0 +1,9 @@ +#ifndef MSL_STDLIB_H_ +#define MSL_STDLIB_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h" + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h new file mode 100644 index 00000000..843ee863 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_STRTOUL_H +#define _MSL_COMMON_STRTOUL_H + +#ifdef __cplusplus +extern "C" { +#endif + +long strtol(const char* str, char** end, int base); +unsigned long strtoul(const char* str, char** end, int base); +unsigned long __strtoul(int base, int max_width, + int (*ReadProc)(void*, int, int), void* ReadProcArg, + int* chars_scanned, int* negative, int* overflow); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_STRTOUL_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h new file mode 100644 index 00000000..90153f95 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h @@ -0,0 +1,12 @@ +#ifndef _MSL_COMMON_WCHAR_IO_H +#define _MSL_COMMON_WCHAR_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifndef __cplusplus +typedef unsigned short wchar_t; +#endif + +int fwide(FILE* file, int mode); + +#endif /* _MSL_COMMON_WCHAR_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h new file mode 100644 index 00000000..1eef34b4 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h @@ -0,0 +1,234 @@ +#ifndef _FDLIBM_H +#define _FDLIBM_H + +/* @(#)fdlibm.h 1.5 04/04/22 */ +/** + * ==================================================== + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#ifdef __cplusplus +extern "C" { +#endif // ifdef __cplusplus + +/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly + but these catch some common cases. */ + +#if defined(i386) || defined(i486) || defined(intel) || defined(x86) \ + || defined(i86pc) || defined(__alpha) || defined(__osf__) +#define __LITTLE_ENDIAN +#endif + +#ifdef __LITTLE_ENDIAN +#define __HI(x) *(1 + (int*)&x) +#define __LO(x) *(int*)&x +#define __HIp(x) *(1 + (int*)x) +#define __LOp(x) *(int*)x +#else +#define __HI(x) *(int*)&x +#define __LO(x) *(1 + (int*)&x) +#define __HIp(x) *(int*)x +#define __LOp(x) *(1 + (int*)x) +#endif + +// NOTE: should be enabled according to w_atan2.c +#define _IEEE_LIBM + +// TODO: should __STDC__ actually be defined? +// #ifdef __STDC__ +#define __P(p) p +// #else +// #define __P(p) () +// #endif + +/** + * ANSI/POSIX + */ + +extern int signgam; + +#define MAXFLOAT ((f32)3.40282346638528860e+38) + +enum fdversion { fdlibm_ieee = -1, fdlibm_svid, fdlibm_xopen, fdlibm_posix }; + +#define _LIB_VERSION_TYPE enum fdversion +#define _LIB_VERSION _fdlib_version + +/* if global variable _LIB_VERSION is not desirable, one may + * change the following to be a constant by: + * #define _LIB_VERSION_TYPE const enum version + * In that case, after one initializes the value _LIB_VERSION (see + * s_lib_version.c) during compile time, it cannot be modified + * in the middle of a program + */ +extern _LIB_VERSION_TYPE _LIB_VERSION; + +#define _IEEE_ fdlibm_ieee +#define _SVID_ fdlibm_svid +#define _XOPEN_ fdlibm_xopen +#define _POSIX_ fdlibm_posix + +struct exception { + int type; + char* name; + double arg1; + double arg2; + double retval; +}; + +#define HUGE MAXFLOAT + +/** + * set X_TLOSS = pi*2**52, which is possibly defined in + * (one may replace the following line by "#include ") + */ + +#define X_TLOSS 1.41484755040568800000e+16 + +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 + +/** + * ANSI/POSIX + */ +extern double acos __P((double)); +extern double asin __P((double)); +extern double atan __P((double)); +extern double atan2 __P((double, double)); +extern double cos __P((double)); +extern double sin __P((double)); +extern double tan __P((double)); + +extern double cosh __P((double)); +extern double sinh __P((double)); +extern double tanh __P((double)); + +extern double exp __P((double)); +extern double frexp __P((double, int*)); +extern double ldexp __P((double, int)); +extern double scalbn __P((double, int)); +extern double log __P((double)); +extern double log10 __P((double)); +extern double modf __P((double, double*)); + +extern double pow __P((double, double)); +extern double sqrt __P((double)); + +extern double ceil __P((double)); +extern double fabs __P((double)); +// NOTE: I have no idea how they got it to mangle like this +static inline double fabs__Fd(double v) { return __fabs(v); } +extern double floor __P((double)); +extern double fmod __P((double, double)); + +extern double erf __P((double)); +extern double erfc __P((double)); +extern double gamma __P((double)); +extern double hypot __P((double, double)); +extern int isnan __P((double)); +extern int finite __P((double)); +extern double j0 __P((double)); +extern double j1 __P((double)); +extern double jn __P((int, double)); +extern double lgamma __P((double)); +extern double y0 __P((double)); +extern double y1 __P((double)); +extern double yn __P((int, double)); + +extern double acosh __P((double)); +extern double asinh __P((double)); +extern double atanh __P((double)); +extern double cbrt __P((double)); +extern double logb __P((double)); +extern double nextafter __P((double, double)); +extern double remainder __P((double, double)); +#ifdef _SCALB_INT +extern double scalb __P((double, int)); +#else +extern double scalb __P((double, double)); +#endif + +extern int matherr __P((struct exception*)); + +/** + * IEEE Test Vector + */ +extern double significand __P((double)); + +/** + * Functions callable from C, intended to support IEEE arithmetic. + */ +extern double copysign __P((double, double)); +extern int ilogb __P((double)); +extern double rint __P((double)); +extern double scalbn __P((double, int)); + +/** + * BSD math library entry points + */ +extern double expm1 __P((double)); +extern double log1p __P((double)); + +/** + * Reentrant version of gamma & lgamma; passes signgam back by reference + * as the second argument; user must allocate space for signgam. + */ +#ifdef _REENTRANT +extern double gamma_r __P((double, int*)); +extern double lgamma_r __P((double, int*)); +#endif /* _REENTRANT */ + +/* ieee style elementary functions */ +extern double __ieee754_sqrt __P((double)); +extern double __ieee754_acos __P((double)); +extern double __ieee754_acosh __P((double)); +extern double __ieee754_log __P((double)); +extern double __ieee754_atanh __P((double)); +extern double __ieee754_asin __P((double)); +extern double __ieee754_atan2 __P((double, double)); +extern double __ieee754_exp __P((double)); +extern double __ieee754_cosh __P((double)); +extern double __ieee754_fmod __P((double, double)); +extern double __ieee754_pow __P((double, double)); +extern double __ieee754_lgamma_r __P((double, int*)); +extern double __ieee754_gamma_r __P((double, int*)); +extern double __ieee754_lgamma __P((double)); +extern double __ieee754_gamma __P((double)); +extern double __ieee754_log10 __P((double)); +extern double __ieee754_sinh __P((double)); +extern double __ieee754_hypot __P((double, double)); +extern double __ieee754_j0 __P((double)); +extern double __ieee754_j1 __P((double)); +extern double __ieee754_y0 __P((double)); +extern double __ieee754_y1 __P((double)); +extern double __ieee754_jn __P((int, double)); +extern double __ieee754_yn __P((int, double)); +extern double __ieee754_remainder __P((double, double)); +extern int __ieee754_rem_pio2 __P((double, double*)); +#ifdef _SCALB_INT +extern double __ieee754_scalb __P((double, int)); +#else +extern double __ieee754_scalb __P((double, double)); +#endif + +/* fdlibm kernel function */ +extern double __kernel_standard __P((double, double, int)); +extern double __kernel_sin __P((double, double, int)); +extern double __kernel_cos __P((double, double)); +extern double __kernel_tan __P((double, double, int)); +extern int __kernel_rem_pio2 __P((double*, double*, int, int, int, const int*)); + +#ifdef __cplusplus +}; +#endif // ifdef __cplusplus + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h b/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h new file mode 100755 index 00000000..a864ea0d --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h @@ -0,0 +1,231 @@ +#ifndef _RUNTIME_GECKO_EXCEPTIONPPC_H +#define _RUNTIME_GECKO_EXCEPTIONPPC_H + +#include + +typedef u8 exaction_type; + +#define EXACTION_ENDBIT 0x80 +#define EXACTION_MASK 0x7F + +// EXAction structs + +#define EXACTION_ENDOFLIST 0 +#define EXACTION_BRANCH 1 + +typedef struct ex_branch { + exaction_type action; + u8 unused; + u16 target; +} ex_branch; + +#define EXACTION_DESTROYLOCAL 2 + +typedef struct ex_destroylocal { + exaction_type action; + u8 unused; + s16 local; + void* dtor; +} ex_destroylocal; + +#define EXACTION_DESTROYLOCALCOND 3 + +typedef struct ex_destroylocalcond { + exaction_type action; + u8 dlc_field; + s16 cond; + s16 local; + void* dtor; +} ex_destroylocalcond; + +#define ex_destroylocalcond_MakeField(regcond) (((regcond) << 7)) +#define ex_destroylocalcond_GetRegCond(field) ((field) >> 7) + +#define EXACTION_DESTROYLOCALPOINTER 4 + +typedef struct ex_destroylocalpointer { + exaction_type action; + u8 dlp_field; + s16 pointer; + void* dtor; +} ex_destroylocalpointer; + +#define ex_destroylocalpointer_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroylocalpointer_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DESTROYLOCALARRAY 5 + +typedef struct ex_destroylocalarray { + exaction_type action; + u8 unused; + s16 localarray; + u16 elements; + u16 element_size; + void* dtor; +} ex_destroylocalarray; + +#define EXACTION_DESTROYBASE 6 +#define EXACTION_DESTROYMEMBER 7 + +typedef struct ex_destroymember { + exaction_type action; + u8 dm_field; + s16 objectptr; + s32 offset; + void* dtor; +} ex_destroymember; + +#define ex_destroymember_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroymember_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DESTROYMEMBERCOND 8 + +typedef struct ex_destroymembercond { + exaction_type action; + u8 dmc_field; + s16 cond; + s16 objectptr; + s32 offset; + void* dtor; +} ex_destroymembercond; + +#define ex_destroymembercond_MakeField(regcond, regpointer) (((regcond) << 7) | (((regpointer)&0x1) << 6)) +#define ex_destroymembercond_GetRegCond(field) ((field) >> 7) +#define ex_destroymembercond_GetRegPointer(field) (((field) >> 6) & 0x1) + +#define EXACTION_DESTROYMEMBERARRAY 9 + +typedef struct ex_destroymemberarray { + exaction_type action; + u8 dma_field; + s16 objectptr; + s32 offset; + s32 elements; + s32 element_size; + void* dtor; +} ex_destroymemberarray; + +#define ex_destroymemberarray_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroymemberarray_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DELETEPOINTER 10 + +typedef struct ex_deletepointer { + exaction_type action; + u8 dp_field; + s16 objectptr; + void* deletefunc; +} ex_deletepointer; + +#define ex_deletepointer_MakeField(regpointer) (((regpointer) << 7)) +#define ex_deletepointer_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DELETEPOINTERCOND 11 + +typedef struct ex_deletepointercond { + exaction_type action; + u8 dpc_field; + s16 cond; + s16 objectptr; + void* deletefunc; +} ex_deletepointercond; + +#define ex_deletepointercond_MakeField(regcond, regpointer) (((regcond) << 7) | (((regpointer)&0x1) << 6)) +#define ex_deletepointercond_GetRegCond(field) ((field) >> 7) +#define ex_deletepointercond_GetRegPointer(field) (((field) >> 6) & 0x1) + +#define EXACTION_CATCHBLOCK 12 + +typedef struct ex_catchblock { + exaction_type action; + u8 unused; + char* catch_type; + u16 catch_pcoffset; + s16 cinfo_ref; +} ex_catchblock; + +#define EXACTION_ACTIVECATCHBLOCK 13 + +typedef struct ex_activecatchblock { + exaction_type action; + u8 unused; + s16 cinfo_ref; +} ex_activecatchblock; + +#define EXACTION_TERMINATE 14 + +typedef struct ex_terminate { + exaction_type action; + u8 unused; +} ex_terminate; + +#define EXACTION_SPECIFICATION 15 + +typedef struct ex_specification { + exaction_type action; + u8 unused; + u16 specs; + s32 pcoffset; + s32 cinfo_ref; + char* spec[]; +} ex_specification; + +#define EXACTION_CATCHBLOCK_32 16 + +typedef struct ex_catchblock_32 { + exaction_type action; + u8 unused; + char* catch_type; + s32 catch_pcoffset; + s32 cinfo_ref; +} ex_catchblock_32; + +// Other structs + +typedef struct ExceptionRangeSmall { + u16 start; + u16 end; + u16 action; +} ExceptionRangeSmall; + +typedef struct ExceptionTableSmall { + u16 et_field; + ExceptionRangeSmall ranges[0]; +} ExceptionTableSmall; + +typedef struct ExceptionRangeLarge { + u32 start; + u16 size; + u16 action; +} ExceptionRangeLarge; + +typedef struct ExceptionTableLarge { + u16 et_field; + u16 et_field2; + ExceptionRangeLarge ranges[]; +} ExceptionTableLarge; + +#define ET_MakeField(savedGPRs, savedFPRs, savedCR, hasframeptr, isLarge) \ + (((savedGPRs) << 11) | ((savedFPRs & 0x1f) << 6) | ((savedCR & 0x1) << 5) | ((hasframeptr & 0x1) << 4) | ((isLarge & 1) << 3)) + +#define ET_GetSavedGPRs(field) ((field) >> 11) +#define ET_GetSavedFPRs(field) (((field) >> 6) & 0x1f) +#define ET_GetSavedCR(field) (((field) >> 5) & 0x1) +#define ET_GetHasFramePtr(field) (((field) >> 4) & 0x1) +#define ET_IsLargeTable(field) (((field) >> 3) & 0x1) +#define ET_ClearLargeBit(field) ((field) & ~(1 << 3)) +#define ET_SetLargeBit(field) ((field) | (1 << 3)) + +#define ET_HasElfVector(field) (((field) >> 1) & 0x1) + +typedef struct ExceptionTableIndex { + u32 functionoffset; + u32 eti_field; + u32 exceptionoffset; +} ExceptionTableIndex; + +#define ETI_MakeField(direct, fsize) ((((s32)(direct)) << 31) | ((fsize)&0x7fffffff)) +#define ETI_GetDirectStore(field) ((field) >> 31) +#define ETI_GetFunctionSize(field) ((field)&0x7fffffff) + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h b/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h new file mode 100644 index 00000000..8d78b551 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h @@ -0,0 +1,44 @@ +#ifndef _RUNTIME_MWCPLUSLIB_H +#define _RUNTIME_MWCPLUSLIB_H + +#include "stddef.h" + +#define CTORARG_TYPE int +#define CTORARG_PARTIAL (0) +#define CTORARG_COMPLETE (1) + +#define CTORCALL_COMPLETE(ctor, objptr) \ + (((void (*)(void*, CTORARG_TYPE))ctor)(objptr, CTORARG_COMPLETE)) + +#define DTORARG_TYPE int + +#define DTORCALL_COMPLETE(dtor, objptr) \ + (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, -1)) +#define DTORCALL_PARTIAL(dtor, objptr) \ + (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, 0)) + +typedef void* ConstructorDestructor; + +#ifdef __cplusplus +extern "C" { +#endif + +extern void* __copy(char* to, char* from, size_t size); + +extern void __construct_array(void* ptr, ConstructorDestructor ctor, + ConstructorDestructor dtor, size_t size, + size_t n); +extern void __destroy_arr(void* block, ConstructorDestructor* dtor, size_t size, + size_t n); +extern void* __construct_new_array(void* block, ConstructorDestructor ctor, + ConstructorDestructor dtor_arg, size_t size, + size_t n); +extern void __destroy_new_array(void* block, ConstructorDestructor dtor); +extern void __destroy_new_array2(); +extern void __destroy_new_array3(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/NMWException.h b/include/PowerPC_EABI_Support/Runtime/NMWException.h new file mode 100644 index 00000000..aba83f4d --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/NMWException.h @@ -0,0 +1,45 @@ +#ifndef _NMWEXCEPTION +#define _NMWEXCEPTION + +#include "types.h" +#include "PowerPC_EABI_Support/Runtime/exception.h" +#include "PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef s16 vbase_ctor_arg_type; +typedef char local_cond_type; + +typedef struct CatchInfo { + void* location; + void* typeinfo; + void* dtor; + void* sublocation; + s32 pointercopy; + void* stacktop; +} CatchInfo; + +typedef struct DestructorChain { + struct DestructorChain* next; + void* destructor; + void* object; +} DestructorChain; + +extern void* __register_global_object(void* object, void* destructor, void* registration); +extern void __destroy_global_chain(void); + +extern void __end__catch(CatchInfo* catchinfo); +extern void __throw(char* throwtype, void* location, void* dtor); +extern char __throw_catch_compare(const char* throwtype, const char* catchtype, s32* offset_result); +extern void __unexpected(CatchInfo* catchinfo); + +extern int __register_fragment(struct __eti_init_info* info, char* TOC); +extern void __unregister_fragment(int fragmentID); + +#ifdef __cplusplus +} +#endif + +#endif // _NMWEXCEPTION diff --git a/include/PowerPC_EABI_Support/Runtime/New.h b/include/PowerPC_EABI_Support/Runtime/New.h new file mode 100644 index 00000000..1ae725b4 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/New.h @@ -0,0 +1 @@ +void operator delete(void* arg0); diff --git a/include/PowerPC_EABI_Support/Runtime/__mem.h b/include/PowerPC_EABI_Support/Runtime/__mem.h new file mode 100644 index 00000000..0a885b8f --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/__mem.h @@ -0,0 +1,17 @@ +#ifndef _RUNTIME_MEM_H +#define _RUNTIME_MEM_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +__declspec(section ".init") void* memcpy(void* dest, const void* src, size_t n); +__declspec(section ".init") void* memset(void* dest, int val, size_t count); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h b/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h new file mode 100644 index 00000000..a2fa3d63 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h @@ -0,0 +1,72 @@ +#ifndef __PPC_EABI_LINKER +#define __PPC_EABI_LINKER + +__declspec(section ".init") extern char _stack_addr[]; +__declspec(section ".init") extern char _stack_end[]; +__declspec(section ".init") extern char _heap_addr[]; +__declspec(section ".init") extern char _heap_end[]; +__declspec(section ".init") extern const char _fextabindex_rom[]; +__declspec(section ".init") extern char _fextabindex[]; +__declspec(section ".init") extern char _eextabindex[]; + +__declspec(section ".init") extern char _SDA_BASE_[]; + +__declspec(section ".init") extern char _SDA2_BASE_[]; + +typedef struct __rom_copy_info { + char* rom; + char* addr; + unsigned int size; +} __rom_copy_info; + +__declspec(section ".init") extern __rom_copy_info _rom_copy_info[]; + +typedef struct __bss_init_info { + char* addr; + unsigned int size; +} __bss_init_info; + +__declspec(section ".init") extern __bss_init_info _bss_init_info[]; + +typedef struct __eti_init_info { + void* eti_start; + void* eti_end; + void* code_start; + unsigned long code_size; +} __eti_init_info; + +__declspec(section ".init") extern __eti_init_info _eti_init_info[]; +__declspec(section ".init") extern const char _f_init_rom[]; +__declspec(section ".init") extern char _f_init[]; +__declspec(section ".init") extern char _e_init[]; +__declspec(section ".init") extern const char _f_text_rom[]; +__declspec(section ".init") extern char _f_text[]; +__declspec(section ".init") extern char _e_text[]; +__declspec(section ".init") extern const char _f_rodata_rom[]; +__declspec(section ".init") extern char _f_rodata[]; +__declspec(section ".init") extern char _e_rodata[]; +__declspec(section ".init") extern const char _fextab_rom[]; +__declspec(section ".init") extern char _fextab[]; +__declspec(section ".init") extern char _eextab[]; +__declspec(section ".init") extern const char _f_data_rom[]; +__declspec(section ".init") extern char _f_data[]; +__declspec(section ".init") extern char _e_data[]; +__declspec(section ".init") extern char _f_bss[]; +__declspec(section ".init") extern char _e_bss[]; +__declspec(section ".init") extern const char _f_sdata_rom[]; +__declspec(section ".init") extern char _f_sdata[]; +__declspec(section ".init") extern char _e_sdata[]; +__declspec(section ".init") extern char _f_sbss[]; +__declspec(section ".init") extern char _e_sbss[]; +__declspec(section ".init") extern const char _f_sdata2_rom[]; +__declspec(section ".init") extern char _f_sdata2[]; +__declspec(section ".init") extern char _e_sdata2[]; +__declspec(section ".init") extern char _f_sbss2[]; +__declspec(section ".init") extern char _e_sbss2[]; +__declspec(section ".init") extern const char _f_PPC_EMB_sdata0_rom[]; +__declspec(section ".init") extern char _f_PPC_EMB_sdata0[]; +__declspec(section ".init") extern char _e_PPC_EMB_sdata0[]; +__declspec(section ".init") extern char _f_PPC_EMB_sbss0[]; +__declspec(section ".init") extern char _e_PPC_EMB_sbss0[]; + +#endif // __PPC_EABI_LINKER diff --git a/include/PowerPC_EABI_Support/Runtime/exception.h b/include/PowerPC_EABI_Support/Runtime/exception.h new file mode 100755 index 00000000..2530b3de --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/exception.h @@ -0,0 +1,38 @@ +#ifndef _EXCEPTION +#define _EXCEPTION + +namespace std { +class exception { +public: + exception() { } + virtual ~exception() { } + virtual const char* what() const { return "exception"; } +}; + +class bad_exception : public exception { +public: + bad_exception() { } + virtual ~bad_exception() { } + virtual const char* what() const { return "bad_exception"; } +}; + +typedef void (*unexpected_handler)(); +unexpected_handler set_unexpected(unexpected_handler handler); +void unexpected(); + +typedef void (*terminate_handler)(); +terminate_handler set_terminate(terminate_handler handler); +void terminate(); + +} // namespace std + +using std::bad_exception; +using std::exception; +using std::set_terminate; +using std::set_unexpected; +using std::terminate; +using std::terminate_handler; +using std::unexpected; +using std::unexpected_handler; + +#endif diff --git a/include/REL/instDll.h b/include/REL/instDll.h index 8b00303e..adf1fe5c 100644 --- a/include/REL/instDll.h +++ b/include/REL/instDll.h @@ -3,6 +3,6 @@ #include "game/minigame_seq.h" -s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag); +s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag); #endif diff --git a/include/REL/m407dll.h b/include/REL/m407dll.h index a5dbf0fb..e007469c 100644 --- a/include/REL/m407dll.h +++ b/include/REL/m407dll.h @@ -3,8 +3,53 @@ #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +typedef void (*VoidFuncs)(void); +typedef void (*ObjFuncs)(omObjData *); -typedef void (*ObjFuncs)(omObjData*); +void fn_1_F4(Process *arg0); +void fn_1_194(void); +void fn_1_1E4(void); +void fn_1_238(void); +void fn_1_28C(void); +void fn_1_2E0(void); +void fn_1_334(void); +void fn_1_388(u8, s32); +void fn_1_3C4(u8); +void fn_1_404(void); +s32 fn_1_508(u8); +s32 fn_1_53C(u8); +void fn_1_568(s16, s16, s16); + +void fn_1_14F0(Process *arg0, s32 arg1); +void fn_1_15D8(void); + +void fn_1_1B1C(Process *arg0); +void fn_1_1CA8(void); +void fn_1_1CAC(float, float, float); +void fn_1_1CD4(float *arg0, float *arg1, float *arg2); +s32 fn_1_1D88(void); +void fn_1_1DB0(Vec *arg0, Vec *arg1, float *arg2, s32 arg3, s32 arg4); + +void fn_1_2354(Process *arg0); +void fn_1_2564(void); +void fn_1_25C0(void); +s32 fn_1_2880(void); +#ifndef __MWERKS__ +s16 fn_1_28B8(u8 arg0); +s16 fn_1_28D4(void); +#endif + +void fn_1_3AC8(Process *arg0); +void fn_1_3B68(void); + +void fn_1_41CC(Process *arg0); +void fn_1_44F4(void); + +void fn_1_4980(Process *arg0); +void fn_1_4C6C(omObjData *obj); + +void fn_1_5C5C(Process *arg0, s16 arg1); +void fn_1_5ECC(void); +void fn_1_5F40(s32 arg0); #endif diff --git a/include/REL/m409Dll.h b/include/REL/m409Dll.h index 76459447..1f7519b4 100644 --- a/include/REL/m409Dll.h +++ b/include/REL/m409Dll.h @@ -3,17 +3,18 @@ #include "dolphin.h" -#include "game/object.h" #include "game/animdata.h" #include "game/hsfanim.h" +#include "game/object.h" + extern s32 rand8(void); // types -typedef void (*m409Func6)(ModelData*, struct _unkStruct6*, Mtx); -typedef void (*m409PlayerFunc8)(struct _unkStruct8*); +typedef void (*m409Func6)(ModelData *, struct _unkStruct6 *, Mtx); +typedef void (*m409PlayerFunc8)(struct _unkStruct8 *); typedef struct _unkStruct { - f32 zoom; + float zoom; Vec center; Vec rot; } unkStruct; @@ -27,14 +28,14 @@ typedef struct _unkStruct3 { s8 unk0; s8 unk1; s16 unk2; - struct _unkStruct4* unk4; + struct _unkStruct4 *unk4; s16 unk8; s16 unkA; s16 unkC; s16 unkE; s16 unk10; s16 unk12; - f32 unk14; + float unk14; } unkStruct3; typedef struct _unkStruct4 { @@ -49,26 +50,26 @@ typedef struct _unkStruct4 { s16 unkA; s16 unkC; s16 unkE; - f32 unk10; + float unk10; s16 unk14; s16 unk16; - f32 unk18; - f32 unk1C; - struct _unkStruct4* unk20; + float unk18; + float unk1C; + struct _unkStruct4 *unk20; } unkStruct4; // sizeof 0x24 typedef struct _unkStruct5 { Vec unk0; Vec unkC; - f32 unk18; - f32 unk1C; - f32 unk20; - f32 unk24; + float unk18; + float unk1C; + float unk20; + float unk24; s16 unk28; s16 unk2A; s16 unk2C; s16 unk2E; - f32 unk30; + float unk30; Vec unk34; Vec unk40; s16 unk4C; @@ -81,20 +82,20 @@ typedef struct _unkStruct6 { u32 unk4; u8 unk8; m409Func6 unkC; - AnimData* unk10; + AnimData *unk10; s16 unk14; - unkStruct5* unk18; - Vec* unk1C; - HsfVector2f* unk20; - GXColor* unk24; - void* unk28; + unkStruct5 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; Vec unk2C; Vec unk38; Vec unk44; Vec unk50; - HsfVector2f* unk5C; - f32 unk60; - f32 unk64; + HsfVector2f *unk5C; + float unk60; + float unk64; } unkStruct6; // sizeof 0x68 typedef struct _unkStruct7 { @@ -147,22 +148,22 @@ typedef struct _unkStruct8Sub { u8 unk32; u32 unk34; s16 unk38; - void* unk3C; - void* unk40; - void* unk44; - Vec* unk48; + void *unk3C; + void *unk40; + void *unk44; + Vec *unk48; GXColor unk4C; GXColor unk50; - struct _unkStruct12* unk54; + struct _unkStruct12 *unk54; Vec unk58; Vec unk64; union { s16 unk70[0x10]; struct { s16 unk70s; - f32 unk74; - f32 unk78; - f32 unk7C; + float unk74; + float unk78; + float unk7C; }; }; } unkStruct8Sub; // sizeof 0x90 @@ -177,9 +178,9 @@ typedef struct _unkStruct8 { Vec unk18; Vec unk24; m409PlayerFunc8 unk30; - s16* unk34; + s16 *unk34; char unk38[0x4]; - unkStruct8Sub* unk3C; + unkStruct8Sub *unk3C; char unk40[0x8]; Vec unk48; Vec unk54; @@ -187,7 +188,7 @@ typedef struct _unkStruct8 { } unkStruct8; // sizeof 0xA0 typedef struct _unkStruct9Sub { - AnimData* unk0; + AnimData *unk0; s16 unk4; s16 unk6; u32 unk8; @@ -197,10 +198,10 @@ typedef struct _unkStruct9Sub { u8 unk4C; s16 unk4E; s16 unk50; - f32 unk54; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk54; + float unk58; + float unk5C; + float unk60; } unkStruct9Sub; // sizeof 0x64 typedef struct _unkStruct9 { @@ -210,8 +211,8 @@ typedef struct _unkStruct9 { s16 unk6; s16 unk8; s16 unkA; - unkStruct9Sub* unkC; - unkStruct8* unk10; + unkStruct9Sub *unkC; + unkStruct8 *unk10; } unkStruct9; // sizeof 0x14 typedef struct _unkStruct10 { @@ -221,7 +222,7 @@ typedef struct _unkStruct10 { u8 unk3; u8 unk4; char unk5[0x3]; - f32 unk8; + float unk8; Vec unkC; Vec unk18; Vec unk24; @@ -229,7 +230,7 @@ typedef struct _unkStruct10 { Vec unk3C; s8 unk48; char unk49[0x3]; - f32 unk4C; + float unk4C; } unkStruct10; // sizeof 0x50 typedef struct unkStruct11 { @@ -243,11 +244,11 @@ typedef struct _unkStruct12 { s8 unk0; s8 unk1; s16 unk2; - HsfVector2f* unk4; + HsfVector2f *unk4; u8 unk8; s16 unkA; - f32 unkC; - f32 unk10; + float unkC; + float unk10; } unkStruct12; // bss @@ -255,78 +256,78 @@ extern unkStruct9 lbl_1_bss_F0; // prototypes void ObjectSetup(void); -void fn_1_434(omObjData* object); -void fn_1_4DC(omObjData* object); +void fn_1_434(omObjData *object); +void fn_1_4DC(omObjData *object); s8 fn_1_524(void); s8 fn_1_B80(void); -void fn_1_DDC(omObjData* object); -void fn_1_F70(omObjData* object); -s8 fn_1_10E8(omObjData* object); -s8 fn_1_1B74(omObjData* object); -void fn_1_2098(omObjData* object); +void fn_1_DDC(omObjData *object); +void fn_1_F70(omObjData *object); +s8 fn_1_10E8(omObjData *object); +s8 fn_1_1B74(omObjData *object); +void fn_1_2098(omObjData *object); void fn_1_23EC(s16); void fn_1_2414(u16, u16); u16 fn_1_2454(u16); -void fn_1_2484(omObjData* object); -void fn_1_2DCC(omObjData* object); +void fn_1_2484(omObjData *object); +void fn_1_2DCC(omObjData *object); void fn_1_3840(void); -void fn_1_3988(unkStruct4*, s16, s16); -s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32); +void fn_1_3988(unkStruct4 *, s16, s16); +s32 fn_1_3AD8(s32, float, float, float, float, float, float); void fn_1_40A4(Mtx, Mtx); -f32 fn_1_4120(f32, f32, f32, f32); +float fn_1_4120(float, float, float, float); void fn_1_417C(void); -void fn_1_44F0(s16, f32, f32, f32, s8, s16); -void fn_1_4FFC(s16, f32, f32, f32, s16); -void fn_1_5408(ModelData*, unkStruct6*, Mtx); -void fn_1_55E0(ModelData*, unkStruct6*, Mtx); -void fn_1_57DC(ModelData*, unkStruct6*, Mtx); -unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*); -s16 fn_1_5A18(AnimData*, s16, f32, s16, s16); +void fn_1_44F0(s16, float, float, float, s8, s16); +void fn_1_4FFC(s16, float, float, float, s16); +void fn_1_5408(ModelData *, unkStruct6 *, Mtx); +void fn_1_55E0(ModelData *, unkStruct6 *, Mtx); +void fn_1_57DC(ModelData *, unkStruct6 *, Mtx); +unkStruct5 *fn_1_58E0(s16, Vec *, Vec *, float, GXColor *); +s16 fn_1_5A18(AnimData *, s16, float, s16, s16); void fn_1_5F5C(s16); void fn_1_5FBC(s16, m409Func6); void fn_1_5FF4(s16, u8); -void fn_1_602C(ModelData*, Mtx); -void fn_1_6608(HsfVector2f*, s16, s16, f32, f32); -void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32); -void fn_1_6778(Vec*, Vec*, Vec*, s16); +void fn_1_602C(ModelData *, Mtx); +void fn_1_6608(HsfVector2f *, s16, s16, float, float); +void fn_1_66D4(HsfVector2f *, HsfVector2f *, s16, float, float); +void fn_1_6778(Vec *, Vec *, Vec *, s16); // player.c -void fn_1_67E0(Process*); +void fn_1_67E0(Process *); void fn_1_6900(void); -void fn_1_6928(omObjData*); -void fn_1_7344(omObjData*); -void fn_1_7FE8(omObjData*); -void fn_1_8838(unkStruct8*); +void fn_1_6928(omObjData *); +void fn_1_7344(omObjData *); +void fn_1_7FE8(omObjData *); +void fn_1_8838(unkStruct8 *); s8 fn_1_8D08(u8); -void fn_1_8D6C(unkStruct8*); -void fn_1_91C0(omObjData*); -void fn_1_962C(omObjData*); -s32 fn_1_A584(unkStruct10*); -s8 fn_1_A9C0(Vec*, f32*); +void fn_1_8D6C(unkStruct8 *); +void fn_1_91C0(omObjData *); +void fn_1_962C(omObjData *); +s32 fn_1_A584(unkStruct10 *); +s8 fn_1_A9C0(Vec *, float *); s32 fn_1_ABB4(void); -void fn_1_AC08(s32*, s32); -f32 fn_1_AD40(f32, f32, f32); -f32 fn_1_AE94(f32, f32, f32, f32); -void fn_1_AF0C(f32*, f32*, f32*, f32*, f32); -f32 fn_1_B028(f32, f32, f32, f32); -void fn_1_B0A0(f32*, f32*, f32*, f32*, f32); -f32 fn_1_B378(Vec*); -f32 fn_1_B6A4(Vec*, Vec*, Vec*); -f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*); -f32 fn_1_BF38(s16); +void fn_1_AC08(s32 *, s32); +float fn_1_AD40(float, float, float); +float fn_1_AE94(float, float, float, float); +void fn_1_AF0C(float *, float *, float *, float *, float); +float fn_1_B028(float, float, float, float); +void fn_1_B0A0(float *, float *, float *, float *, float); +float fn_1_B378(Vec *); +float fn_1_B6A4(Vec *, Vec *, Vec *); +float fn_1_B9E0(Vec *, Vec *, Vec *, Vec *, Vec *); +float fn_1_BF38(s16); // cursor.c void fn_1_BF88(s16, s16); void fn_1_C0C0(void); -void fn_1_C164(unkStruct8*); -void fn_1_CB98(ModelData* model, Mtx matrix); -unkStruct8* fn_1_CCB0(s16 idx); -unkStruct8Sub* fn_1_CCCC(s16, s16); -void fn_1_CCF8(unkStruct11**, s16, f32, f32); -void fn_1_CE7C(Vec**, s16, Vec*); -void fn_1_CF1C(GXColor**, s16, GXColor*); -void fn_1_CFC4(Vec**, s16, Vec*); -void fn_1_D050(HsfVector2f**, s16, HsfVector2f*); -void fn_1_D0E8(unkStruct8Sub*); -void fn_1_D430(unkStruct8*); +void fn_1_C164(unkStruct8 *); +void fn_1_CB98(ModelData *model, Mtx matrix); +unkStruct8 *fn_1_CCB0(s16 idx); +unkStruct8Sub *fn_1_CCCC(s16, s16); +void fn_1_CCF8(unkStruct11 **, s16, float, float); +void fn_1_CE7C(Vec **, s16, Vec *); +void fn_1_CF1C(GXColor **, s16, GXColor *); +void fn_1_CFC4(Vec **, s16, Vec *); +void fn_1_D050(HsfVector2f **, s16, HsfVector2f *); +void fn_1_D0E8(unkStruct8Sub *); +void fn_1_D430(unkStruct8 *); s16 fn_1_DA48(u8, u8); void fn_1_DDB8(s16); void fn_1_DEF4(s16, s16, u8); @@ -334,19 +335,19 @@ s16 fn_1_DF20(u32, s16, s16); void fn_1_E228(s16); s32 fn_1_E2A8(s16, u8, u32, s16, s16); s32 fn_1_E7C8(s16, u8, u32); -void fn_1_E818(s16, f32, f32, f32); -void fn_1_E85C(s16, s16, f32, f32, f32); -void fn_1_E8CC(s16, f32, f32, f32); -void fn_1_E940(s16, f32, f32, f32); -void fn_1_E99C(s16, s16, f32, f32, f32); -void fn_1_E940(s16, f32, f32, f32); -void fn_1_EA24(s16, f32, f32, f32); -void fn_1_EAB0(s16, f32, f32, f32); -void fn_1_EAF4(s16, s16, f32, f32, f32); -void fn_1_EB64(s16, f32, f32, f32); -void fn_1_EBD8(s16, f32, f32, f32); -void fn_1_EC1C(s16, s16, f32, f32, f32); -void fn_1_EC8C(s16, f32, f32, f32); +void fn_1_E818(s16, float, float, float); +void fn_1_E85C(s16, s16, float, float, float); +void fn_1_E8CC(s16, float, float, float); +void fn_1_E940(s16, float, float, float); +void fn_1_E99C(s16, s16, float, float, float); +void fn_1_E940(s16, float, float, float); +void fn_1_EA24(s16, float, float, float); +void fn_1_EAB0(s16, float, float, float); +void fn_1_EAF4(s16, s16, float, float, float); +void fn_1_EB64(s16, float, float, float); +void fn_1_EBD8(s16, float, float, float); +void fn_1_EC1C(s16, s16, float, float, float); +void fn_1_EC8C(s16, float, float, float); void fn_1_ED00(s16, s32); void fn_1_ED44(s16, s16, s32); void fn_1_EDB4(s16, s32); @@ -360,9 +361,9 @@ void fn_1_F098(s16, u8, u8, u8, u8); void fn_1_F110(s16, s16, u8); void fn_1_F17C(s16, s16, u8, u8); void fn_1_F1F4(s16, u8); -void fn_1_F28C(s16, s16, f32); -void fn_1_F2F8(s16, s16, u8, f32); -void fn_1_F370(s16, f32); +void fn_1_F28C(s16, s16, float); +void fn_1_F2F8(s16, s16, u8, float); +void fn_1_F370(s16, float); void fn_1_F408(s16, s16, u8); void fn_1_F478(s16, s16, u8, u8); void fn_1_F4F0(s16, u8); diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h index 2017123c..c91edb68 100644 --- a/include/REL/m412Dll.h +++ b/include/REL/m412Dll.h @@ -3,8 +3,9 @@ #include "dolphin.h" -#include "game/object.h" #include "game/hsfman.h" +#include "game/object.h" + // types typedef struct _unkStruct { @@ -18,8 +19,7 @@ typedef struct _unkStruct { Vec unk10; HsfVector2f unk1C; Vec unk24; - f32 unk30; - f32 unk34; + float unk30; } unkStruct; typedef struct _unkStruct2 { @@ -58,7 +58,7 @@ typedef struct _unkStruct3 { HsfVector2f unk4C; Vec unk54; Vec unk60; - f32 unk6C; + float unk6C; char unk70[0xC]; Vec unk7C; s8 unk88; @@ -68,7 +68,7 @@ typedef struct _unkStruct3 { u16 unk8C; u16 unk8E; HsfVector2f unk90; - f32 unk98; + float unk98; s32 unk9C; s32 unkA0; s32 unkA4; @@ -83,38 +83,38 @@ typedef struct _unkStruct4 { // prototypes void ObjectSetup(void); -void* fn_1_6EC(f32, f32, f32, s32); +void *fn_1_6EC(float, float, float, s32); void fn_1_73C(void); void fn_1_7BC(void); -void fn_1_894(omObjData* object); -void fn_1_898(omObjData* object); +void fn_1_894(omObjData *object); +void fn_1_898(omObjData *object); void fn_1_8BC(void); -f32 fn_1_1D08(f32); +float fn_1_1D08(float); void fn_1_1D88(void); void fn_1_1DBC(void); void fn_1_2014(void); void fn_1_2064(void); s32 fn_1_2708(void); -f32 fn_1_27C4(s32, f32, f32); +float fn_1_27C4(s32, float, float); void fn_1_2A1C(void); void fn_1_3950(void); s8 fn_1_4BE4(s32, s32); -void fn_1_4C9C(Vec*, f32, f32); +void fn_1_4C9C(Vec *, float, float); s8 fn_1_4E58(s32, s32); u8 fn_1_525C(s32, s32); u16 fn_1_531C(s32); u16 fn_1_5388(s32); -s32 fn_1_53F4(unkStruct3*, f32, f32, f32); -s32 fn_1_561C(unkStruct3*, s32*); -void fn_1_5838(unkStruct3*); -f32 fn_1_6594(f32, f32, f32); -f32 fn_1_6698(f32, f32, unkStruct3*); -void fn_1_6814(unkStruct3*); +s32 fn_1_53F4(unkStruct3 *, float, float, float); +s32 fn_1_561C(unkStruct3 *, s32 *); +void fn_1_5838(unkStruct3 *); +float fn_1_6594(float, float, float); +float fn_1_6698(float, float, unkStruct3 *); +void fn_1_6814(unkStruct3 *); void fn_1_7C60(void); -void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_A01C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_A618(ModelData *model, ParticleData *particle, Mtx matrix); //... -void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // * +void fn_1_AA88(ModelData *model, ParticleData *particle, Mtx matrix); // * void fn_1_B160(void); // * void fn_1_B1C0(void); // * diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h index c202ca5b..0be73a76 100644 --- a/include/REL/m415Dll.h +++ b/include/REL/m415Dll.h @@ -53,10 +53,10 @@ typedef struct _unkStruct3 { s16 unk16; s16 unk18; s16 unk1A; - f32 unk1C; - f32 unk20; - f32 unk24; - f32 unk28; + float unk1C; + float unk20; + float unk24; + float unk28; Vec unk2C; Vec unk38; Vec unk44; @@ -64,7 +64,7 @@ typedef struct _unkStruct3 { u8 unk5C; u8 unk5D; union { - s32* unk60; + s32 *unk60; struct { s16 unk60s; s16 unk62s; @@ -90,18 +90,18 @@ typedef struct _unkStruct4 { Vec unk88[3]; Vec unkAC[3]; Vec unkD0[3]; - f32 unkF4[3]; - f32 unk100[3]; - f32 unk10C[3]; - f32 unk118[3]; - f32 unk124[3]; - f32 unk130; - f32 unk134; - f32 unk138; - f32 unk13C; - f32 unk140; - f32 unk144; - f32 unk148; + float unkF4[3]; + float unk100[3]; + float unk10C[3]; + float unk118[3]; + float unk124[3]; + float unk130; + float unk134; + float unk138; + float unk13C; + float unk140; + float unk144; + float unk148; } unkStruct4; typedef struct _unkSubStruct4 { @@ -111,8 +111,8 @@ typedef struct _unkSubStruct4 { HsfVector2f unk4[4]; u8 unk24; char unk25[0x3]; - f32 unk28; - f32 unk2C; + float unk28; + float unk2C; } unkSubStruct4; // taken from m438 @@ -127,24 +127,24 @@ typedef struct _unkSubStruct { u8 unk33; u32 unk34; s16 unk38; - void* unk3C; - Vec* unk40; - GXColor* unk44; - Vec* unk48; + void *unk3C; + Vec *unk40; + GXColor *unk44; + Vec *unk48; GXColor unk4C; GXColor unk50; - unkSubStruct4* unk54; + unkSubStruct4 *unk54; u8 unk58; char unk59[0x3]; Vec unk5C; Vec unk68; s16 unk74[2]; - s16* unk78; - s16* unk7C; + s16 *unk78; + s16 *unk7C; char unk80[0x14]; } unkSubStruct; /* size = 0x94 */ -typedef void (*unkSubStruct2Func)(struct _unkSubStruct2*); +typedef void (*unkSubStruct2Func)(struct _unkSubStruct2 *); typedef struct _unkSubStruct2 { s16 unk0; @@ -154,18 +154,18 @@ typedef struct _unkSubStruct2 { Vec unkC; Vec unk18; Vec unk24; - void (*unk30)(struct _unkSubStruct2*); - s16* unk34; + void (*unk30)(struct _unkSubStruct2 *); + s16 *unk34; s16 unk38; char unk3A[2]; unkSubStruct *unk3C; char unk40[0x8]; s16 unk48; - char* unk4C; - Vec* unk50; - GXColor* unk54; - Vec* unk58; - unkSubStruct4* unk5C; + char *unk4C; + Vec *unk50; + GXColor *unk54; + Vec *unk58; + unkSubStruct4 *unk5C; u8 unk60; char unk61[0x3]; Vec unk64; @@ -186,7 +186,7 @@ typedef struct _unkSubStruct2 { } unkSubStruct2; /* size = 0xBC */ typedef struct _unkSubStruct3 { - AnimData* unk0; + AnimData *unk0; s16 unk4; s16 unk6; u32 unk8; @@ -198,10 +198,10 @@ typedef struct _unkSubStruct3 { s16 unk4E; s16 unk50; char unk52[0x2]; - f32 unk54; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk54; + float unk58; + float unk5C; + float unk60; } unkSubStruct3; /* size = 0x64 */ typedef struct _unkStruct5 { @@ -228,38 +228,38 @@ extern unkStruct5 lbl_1_bss_36C; // prototypes // main.c -void fn_1_43C(omObjData* object); -void fn_1_4B0(omObjData* object); -void fn_1_7D8(omObjData* object); -void fn_1_14C0(omObjData* object); -void fn_1_15D0(omObjData* object); -void fn_1_1960(omObjData* object); -void fn_1_2B18(omObjData* object); -void fn_1_2C14(omObjData* object); -void fn_1_2E88(f32, Vec*, Vec*, f32); -void fn_1_3208(omObjData* object); -void fn_1_3640(omObjData* object); -void fn_1_3764(omObjData* object); -void fn_1_3B44(omObjData* object); -void fn_1_4660(omObjData* object); -void fn_1_5B20(unkSubStruct2*); -void fn_1_6304(omObjData* object); +void fn_1_43C(omObjData *object); +void fn_1_4B0(omObjData *object); +void fn_1_7D8(omObjData *object); +void fn_1_14C0(omObjData *object); +void fn_1_15D0(omObjData *object); +void fn_1_1960(omObjData *object); +void fn_1_2B18(omObjData *object); +void fn_1_2C14(omObjData *object); +void fn_1_2E88(float, Vec *, Vec *, float); +void fn_1_3208(omObjData *object); +void fn_1_3640(omObjData *object); +void fn_1_3764(omObjData *object); +void fn_1_3B44(omObjData *object); +void fn_1_4660(omObjData *object); +void fn_1_5B20(unkSubStruct2 *); +void fn_1_6304(omObjData *object); void fn_1_6368(void); -void* fn_1_63A8(s32); +void *fn_1_63A8(s32); void fn_1_64DC(void); -AnimBmpData* fn_1_668C(s16); +AnimBmpData *fn_1_668C(s16); s16 fn_1_66AC(void); s32 fn_1_679C(void); -f32 fn_1_67F0(f32, f32, f32); -void fn_1_6A78(Mtx, Vec*); -void fn_1_7268(f32*, f32*, f32*, s32); -f32 fn_1_7520(f32, f32*, f32*, f32*, s32); -void fn_1_7674(f32*, Vec*, Vec*, s32); -void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32); +float fn_1_67F0(float, float, float); +void fn_1_6A78(Mtx, Vec *); +void fn_1_7268(float *, float *, float *, s32); +float fn_1_7520(float, float *, float *, float *, s32); +void fn_1_7674(float *, Vec *, Vec *, s32); +void fn_1_7A54(float, Vec *, float *, Vec *, Vec *, s32); // map.c -void fn_1_95C0(ModelData*, Mtx); -AnimData** fn_1_9734(s16); -void fn_1_9DC8(unkSubStruct2*); +void fn_1_95C0(ModelData *, Mtx); +AnimData **fn_1_9734(s16); +void fn_1_9DC8(unkSubStruct2 *); s16 fn_1_A2D0(u8, u8); void fn_1_A800(s16); s16 fn_1_A94C(u32, s16, s16); @@ -267,12 +267,12 @@ void fn_1_ACF4(s16, s16, s16, s16, s16, s16); void fn_1_AF48(s16); u8 fn_1_AFC8(s16, u8, s32, s16, s16); s32 fn_1_B0B8(s16, u8, s16); -void fn_1_B864(s16, f32, f32, f32); -void fn_1_BB4C(s16, f32, f32, f32); -void fn_1_BC9C(s16, f32, f32, f32); -void fn_1_BD08(s16, s16, f32, f32, f32); +void fn_1_B864(s16, float, float, float); +void fn_1_BB4C(s16, float, float, float); +void fn_1_BC9C(s16, float, float, float); +void fn_1_BD08(s16, s16, float, float, float); void fn_1_C264(s16, u8); void fn_1_C2D0(s16, s16, u8); void fn_1_C410(s16, s16, u8, u8); -void fn_1_C58C(s16, s16, u8, f32); -void fn_1_C81C(s16, u8); \ No newline at end of file +void fn_1_C58C(s16, s16, u8, float); +void fn_1_C81C(s16, u8); diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h new file mode 100644 index 00000000..3ef089ba --- /dev/null +++ b/include/REL/m418Dll.h @@ -0,0 +1,58 @@ +#ifndef M418DLL_H +#define M418DLL_H + +#include "dolphin.h" + +#include "ext_math.h" +#include "game/hsfmotion.h" +#include "game/object.h" + +typedef void (*M418DllFunc)(void); +typedef s32 (*M418DllRetFunc)(void); +typedef void (*M418DllInFunc)(s32); +typedef s32 (*M418DllInRetFunc)(s32); + +typedef struct M418DllUnkStruct { + M418DllFunc unk0; + Vec center; + Vec unk10; // sequence center + Vec rot; + Vec unk28; // sequence rot + float zoom; + float unk38; // sequence zoom + float unk3C[3]; + float unk48; +} M418DllUnkStruct; // sizeof 0x4C + +typedef struct M418DllUnkStruct8 { + M418DllInFunc unk0; + M418DllInRetFunc unk4; + s32 unk8; +} M418DllUnkStruct8; // sizeof 0x24 + +typedef struct M418DllUnkStruct7 { + s32 unk0; + M418DllUnkStruct8 *unk4; + s32 unk8; + s32 unkC; + M418DllFunc unk10; + M418DllRetFunc unk14; +} M418DllUnkStruct7; // sizeof 0x18 + +float fn_1_A920(float, float, float); +float fn_1_A940(float, float, float, float); +float fn_1_AA30(float, float, float, float); +void fn_1_ABC4(omObjData *, s32, s32, s32, s32); +void fn_1_AD14(omObjData *, s32, s32, s32, s32); +void fn_1_AEDC(M418DllUnkStruct7 *, M418DllUnkStruct8 *); +s32 fn_1_AF38(M418DllUnkStruct7 *); +s32 fn_1_B034(M418DllUnkStruct7 *, s32); +s32 fn_1_B0C8(M418DllUnkStruct7 *, s32); +void fn_1_B104(M418DllUnkStruct *, Vec, Vec); +void fn_1_B41C(M418DllUnkStruct *); +void fn_1_B458(M418DllUnkStruct *); +void fn_1_BEAC(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); +void fn_1_CBF8(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); +void fn_1_DC10(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); + +#endif diff --git a/include/REL/m421Dll.h b/include/REL/m421Dll.h new file mode 100644 index 00000000..9f2ff4a9 --- /dev/null +++ b/include/REL/m421Dll.h @@ -0,0 +1,62 @@ +#ifndef M421DLL_H +#define M421DLL_H + +#include "game/object.h" + +typedef struct UnkM421DllStruct { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; +} UnkM421DllStruct; + +typedef struct M421DllCameraStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + float unk_10; + float unk_14; + float unk_18; + Vec unk_1C; + Vec unk_28; + float unk_34; + s32 unk_38; + s32 unk_3C; + float unk_40; + UnkM421DllStruct unk_44; + float unk_54; + float unk_58; + float unk_5C; + float unk_60; + float unk_64; + float unk_68; + char unk6C[0x18]; + float unk_84; + char unk88[0x4]; + float unk_8C; + float unk_90; + u32 unk_94; + char unk98[0xC]; +} M421DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct and M460 + +M421DllCameraStruct *fn_1_3C14(s32 arg0); +u32 fn_1_3E34(void); +u32 fn_1_3E4C(void); +u32 fn_1_3E64(void); +s32 fn_1_3E7C(s32 arg0); +s32 fn_1_3EF8(s32 arg0); +void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2); +void fn_1_3F68(s32 arg0); +void fn_1_3F98(s32 arg0); +void fn_1_3FC8(s32 arg0); +s32 fn_1_3FF8(void); +float fn_1_4478(float arg8, float arg9, float argA); + +void fn_1_4648(Process *process); +void fn_1_48B0(void); +void fn_1_B15C(Process *process); +void fn_1_B1BC(void); +void fn_1_B39C(void); + +#endif diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h new file mode 100644 index 00000000..ac79d774 --- /dev/null +++ b/include/REL/m424Dll.h @@ -0,0 +1,50 @@ +#include "dolphin.h" + +#include "game/object.h" + +typedef struct _M424DllMainStruct { + Vec rot; + Vec center; + float zoom; +} M424DllMainStruct; // sizeof 1C + +typedef struct _M424DllBallStruct2 { + omObjData *unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; + u16 unkA; + Mtx unkC; + Vec unk3C; + Vec unk48; + Vec unk54; + Vec unk60; + Vec unk6C; + Vec unk78; + Vec unk84; + u8 unk90; + u8 unk91; +} M424DllBallStruct2; // sizeof 0x94 + +extern M424DllBallStruct2 lbl_1_bss_60[9]; +extern u8 lbl_1_bss_58; +extern s16 lbl_1_bss_24[4]; + +float fn_1_1358(float, float); +float fn_1_1470(float, float, float); +omObjData *fn_1_1AB8(Process *); +void fn_1_1B8C(void); +float fn_1_213C(void); +void fn_1_252C(float, s32); +void fn_1_2670(s32, s32); +void fn_1_2720(Process *); +void fn_1_2880(void); +Vec *fn_1_8A00(u8); +s32 fn_1_8A2C(void); +omObjData *fn_1_93F0(Process *); +void fn_1_94A4(void); +s32 fn_1_B804(void); +s32 fn_1_B888(void); +s32 fn_1_B8AC(void); +s32 fn_1_B924(void); diff --git a/include/REL/m425Dll.h b/include/REL/m425Dll.h new file mode 100644 index 00000000..413e47c3 --- /dev/null +++ b/include/REL/m425Dll.h @@ -0,0 +1,15 @@ +#ifndef M425DLL_H +#define M425DLL_H + +#include "game/object.h" + +omObjData *fn_1_6A0C(Process *process, s32 arg1); +void fn_1_6C08(void); +void fn_1_6CD0(s32 arg0, Vec *arg1); +s32 fn_1_109EC(s32 arg0, s32 arg1, Vec *arg2, Vec *arg3, Vec *arg4, s32 arg5); +float fn_1_10CF4(s32 arg0); +void fn_1_10DB4(s32 arg0); +void fn_1_10E3C(s32 arg0); +float fn_1_10EF8(s32 arg0, s32 arg1, float arg8, float arg9); + +#endif diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h new file mode 100644 index 00000000..7c84b7a1 --- /dev/null +++ b/include/REL/m427Dll.h @@ -0,0 +1,35 @@ +#include "dolphin.h" +#include "game/object.h" + +typedef struct M427DllStruct { + s32 unk0; + s32 unk4; +} M427DllStruct; + +s32 fn_1_1788(void); +void fn_1_1798(s32 arg0, float arg8); +s32 fn_1_1884(void); +s32 fn_1_32EC(void); + +void fn_1_32F4(Process *arg0); +void fn_1_3B20(s8 arg0, s16 arg1); +void fn_1_3A88(void); +void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB); +float fn_1_AE78(s16 arg0, float arg8, float arg9); +void fn_1_E98C(Process *); +void fn_1_EC54(void); +s32 fn_1_10FE8(s32 arg0, s32 *arg1); +void fn_1_110E8(s32, s32 *); +void fn_1_111C0(s32, s32 *); +void fn_1_11298(float); +s32 fn_1_113F0(s32); +float fn_1_168FC(float, float, float); + +s32 fn_1_15F10(Vec arg0, Vec arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_15FD0(Vec arg0, float arg8, s32 arg1, s32 arg2, s32 arg3); + +extern s32 lbl_1_bss_580; +extern Vec *lbl_1_bss_558; +extern Vec *lbl_1_bss_554; +extern Vec *lbl_1_bss_550; +extern M427DllStruct lbl_1_bss_0[8]; diff --git a/include/REL/m428Dll.h b/include/REL/m428Dll.h new file mode 100644 index 00000000..567c3f99 --- /dev/null +++ b/include/REL/m428Dll.h @@ -0,0 +1,34 @@ +#ifndef M428DLL_H +#define M428DLL_H + +#include "game/object.h" + +s32 fn_1_26E0(void); +void fn_1_4170(s16 arg0, s32 arg1); + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_43C8(Process *arg0); +void fn_1_4630(void); +u8 fn_1_9990(Vec *arg0); +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9); +void fn_1_9ADC(u8 arg0); +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1); +void fn_1_9EA8(u8 arg0); + +omObjData *fn_1_9F5C(Process *process); +void fn_1_A0B0(void); +s32 fn_1_F354(void); +s32 fn_1_F3BC(s32 arg0); +void fn_1_F414(s32 arg0); +void fn_1_F454(s32 arg0, s32 arg1); +void fn_1_F46C(s32 arg0, s32 arg1); +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8); +s32 fn_1_F4E8(s32 arg0); +void fn_1_116C4(s32 arg0, s32 arg1); +void fn_1_11754(s32 arg0, float arg8); +void fn_1_11798(s32 arg0); + +extern s16 lbl_1_bss_50[4]; +extern s32 lbl_1_bss_18; + +#endif diff --git a/include/REL/m430Dll.h b/include/REL/m430Dll.h new file mode 100644 index 00000000..e1a47014 --- /dev/null +++ b/include/REL/m430Dll.h @@ -0,0 +1,26 @@ +#ifndef M430DLL_H +#define M430DLL_H + +#include "game/object.h" + +s32 fn_1_4030(void); +u32 fn_1_4058(void); +u32 fn_1_4070(void); +u32 fn_1_4088(void); +void fn_1_40D0(s32 arg0); +void fn_1_4100(s32 arg0); +float fn_1_4130(void); +float fn_1_48B0(float arg8, float arg9, float argA); + +void fn_1_4A80(Process *process); +void fn_1_4C48(void); +float fn_1_7FBC(s32 arg0); +void fn_1_7FFC(s32 arg0, float arg8); +void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9); +void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2); +void fn_1_BB98(u32 arg0); + +void fn_1_BBC4(Process *process); +void fn_1_C00C(void); + +#endif diff --git a/include/REL/m431Dll.h b/include/REL/m431Dll.h index 78bcb746..c4286562 100644 --- a/include/REL/m431Dll.h +++ b/include/REL/m431Dll.h @@ -3,113 +3,116 @@ #include "game/object.h" -#define rand16() ((rand8() << 8)|(rand8())) - +#define rand16() ((rand8() << 8) | (rand8())) typedef struct bss_12C_inner { - Vec unk0; - float unkC; - s8 unk10; + Vec unk0; + float unkC; + s8 unk10; } Bss12CInner; typedef struct bss_12c_struct { - s16 unk0[2]; - s16 unk4; - s16 unk6; - s16 unk8; - Vec unkC; - float unk18; - Bss12CInner unk1C[10]; - float unkE4[10][2]; - s16 unk134[2]; - s16 unk138[2]; + s16 unk0[2]; + s16 unk4; + s16 unk6; + s16 unk8; + Vec unkC; + float unk18; + Bss12CInner unk1C[10]; + float unkE4[10][2]; + s16 unk134[2]; + s16 unk138[2]; } Bss12CStruct; typedef struct bss_61C_work { - u32 unk0; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; - float unk10; - struct bss_61C_work *unk14; - Vec unk18; - Vec unk24; - float unk30; - omObjFunc unk34; - s16 unk38; - s16 unk3A; - u32 unk3C; - s16 unk40; - s16 unk42; - Vec unk44; - s16 unk50; - s8 unk52; - u32 unk54; - s16 unk58; - s16 unk5A; - s16 unk5C; - s16 unk5E[8]; - s16 unk6E; - s16 unk70; - s16 unk72; - u32 unk74; - s16 unk78; - s16 unk7A; - s16 unk7C; - s16 unk7E; - s16 unk80; - s16 unk82; - s16 unk84; - s16 unk86; - float unk88; - Vec unk8C; - float unk98; - Vec unk9C; - float unkA8; - s32 unkAC; - s16 unkB0; - s16 unkB2; - s8 unkB4; - s8 unkB5; + u32 unk0; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + float unk10; + struct bss_61C_work *unk14; + Vec unk18; + Vec unk24; + float unk30; + omObjFunc unk34; + s16 unk38; + s16 unk3A; +#if VERSION_PAL + s16 unk3C_pal; + s16 unk3E_pal; +#endif + u32 unk3C; + s16 unk40; + s16 unk42; + Vec unk44; + s16 unk50; + s8 unk52; + u32 unk54; + s16 unk58; + s16 unk5A; + s16 unk5C; + s16 unk5E[8]; + s16 unk6E; + s16 unk70; + s16 unk72; + u32 unk74; + s16 unk78; + s16 unk7A; + s16 unk7C; + s16 unk7E; + s16 unk80; + s16 unk82; + s16 unk84; + s16 unk86; + float unk88; + Vec unk8C; + float unk98; + Vec unk9C; + float unkA8; + s32 unkAC; + s16 unkB0; + s16 unkB2; + s8 unkB4; + s8 unkB5; } Bss61CWork; typedef void (*unkHook72B4Data18)(struct unk_72B4_data_18 *); typedef void (*unkHook72B4)(ModelData *, struct work_72B4 *, Mtx); typedef struct unk_72B4_data_18 { - Vec unk0; - Vec unkC; - char unk18[16]; - s16 unk28; - s16 unk2A; - s16 unk2C; - unkHook72B4Data18 unk30; - s16 unk34; - float unk38; - Vec unk3C; - Vec unk48; - s16 unk54; - s8 unk56; + Vec unk0; + Vec unkC; + char unk18[16]; + s16 unk28; + s16 unk2A; + s16 unk2C; + unkHook72B4Data18 unk30; + s16 unk34; + float unk38; + Vec unk3C; + Vec unk48; + s16 unk54; + s8 unk56; } Unk72B4Data18; typedef struct work_72B4 { - s16 unk0; - u32 unk4; - u8 unk8; - unkHook72B4 unkC; - AnimData *unk10; - s16 unk14; - Unk72B4Data18 *unk18; - Vec *unk1C; - HsfVector2f *unk20; - GXColor *unk24; - void *unk28; - Vec unk2C[4]; - HsfVector2f *unk5C; - float unk60; - float unk64; + s16 unk0; + u32 unk4; + u8 unk8; + unkHook72B4 unkC; + AnimData *unk10; + s16 unk14; + Unk72B4Data18 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; + Vec unk2C[4]; + HsfVector2f *unk5C; + float unk60; + float unk64; } Work72B4; extern s32 lbl_1_bss_4; diff --git a/include/REL/m432data.h b/include/REL/m432data.h index 1152d0c7..a9b72135 100644 --- a/include/REL/m432data.h +++ b/include/REL/m432data.h @@ -4,6 +4,7 @@ #include "datadir_enum.h" #include "dolphin.h" #include "game/hsfanim.h" +#include "version.h" typedef struct UnkM432DllBss0SubStruct { char *unk_00; @@ -1202,10 +1203,10 @@ UnkM432DllBss0SubStruct lbl_1_data_EDC[0x1F] = { }, }; -UnkM432DllData1794Struct lbl_1_data_1794 = { 6300.0f, 0.7f, 10.0f, 0.4f, 1.0f, 0, 2, 6 }; -UnkM432DllData1794Struct lbl_1_data_17B4 = { 5700.0f, 0.8f, 8.0f, 0.6f, 1.0f, 0, 4, 5 }; -UnkM432DllData1794Struct lbl_1_data_17D4 = { 5100.0f, 0.9f, 6.0f, 0.8f, 1.0f, 0, 6, 4 }; -UnkM432DllData1794Struct lbl_1_data_17F4 = { 4500.0f, 1.0f, 4.0f, 1.0f, 1.0f, 0, 8, 3 }; +UnkM432DllData1794Struct lbl_1_data_1794 = { 105.0f * REFRESH_RATE, 0.7f, 10.0f, 0.4f, 1.0f, 0, 2, 6 }; +UnkM432DllData1794Struct lbl_1_data_17B4 = { 95.0f * REFRESH_RATE, 0.8f, 8.0f, 0.6f, 1.0f, 0, 4, 5 }; +UnkM432DllData1794Struct lbl_1_data_17D4 = { 85.0f * REFRESH_RATE, 0.9f, 6.0f, 0.8f, 1.0f, 0, 6, 4 }; +UnkM432DllData1794Struct lbl_1_data_17F4 = { 75.0f * REFRESH_RATE, 1.0f, 4.0f, 1.0f, 1.0f, 0, 8, 3 }; HsfanimStruct00 lbl_1_data_1814 = { 0x1E, { 0, 0 }, diff --git a/include/REL/m433Dll.h b/include/REL/m433Dll.h new file mode 100644 index 00000000..fc0407db --- /dev/null +++ b/include/REL/m433Dll.h @@ -0,0 +1,43 @@ +#ifndef M430DLL_H +#define M430DLL_H + +#include "game/object.h" + +typedef struct M433DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + u32 unk_1C; + u32 unk_20; + s32 unk_24; + u32 unk_28; + s32 unk_2C[2]; + u32 unk_34; + s32 unk_38; + s32 unk_3C; +} M433DllWork; /* size = 0x40 */ + +void fn_1_584(omObjData *object); +void fn_1_618(omObjData *object); +u32 fn_1_216C(void); +u32 fn_1_2184(void); +void fn_1_219C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_21E4(s32 arg0); +void fn_1_2214(s32 arg0); +s32 fn_1_2244(void); +float fn_1_26C4(float arg8, float arg9, float argA); + +void fn_1_2894(Process *process); +void fn_1_2984(void); +omObjFunc fn_1_29A4(Process *process, omObjData *object); +void fn_1_58D8(s32); + +void fn_1_5904(Process *process); +void fn_1_5B74(void); +s32 fn_1_10FA4(s32 arg0); + +#endif diff --git a/include/REL/m435Dll.h b/include/REL/m435Dll.h index d4a7464c..102610b2 100755 --- a/include/REL/m435Dll.h +++ b/include/REL/m435Dll.h @@ -17,12 +17,12 @@ typedef struct { /* 0x0C */ StructData3A0* unk0C; /* 0x10 */ void (*unk10)(void); /* 0x14 */ s32 (*unk14)(void); -} StructBss84; // Size unknown +} StructBss84; // Size 0x18 typedef struct { - /* 0x00 */ void (*unk00)(void); // inferred - /* 0x04 */ void (*unk04)(void); // inferred - /* 0x08 */ char unk08[4]; + /* 0x00 */ char unk00[4]; + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ void (*unk08)(void); /* 0x0C */ float unk0C; /* 0x10 */ float unk10; /* 0x14 */ float unk14; @@ -38,7 +38,9 @@ typedef struct { /* 0x3C */ float unk3C; /* 0x40 */ float unk40; /* 0x44 */ float unk44; -} StructBssE08; // Size unknown + /* 0x48 */ s32 unk48[7]; + /* 0x64 */ float unk64[7]; +} StructBssE08; // Size 0x80 typedef struct { /* 0x000 */ omObjData* unk00; @@ -55,7 +57,7 @@ typedef struct { /* 0x474 */ float unk474; /* 0x478 */ float unk478; /* 0x47C */ float unk47C; -} StructFn19894; // Size unknown +} StructFn19894; // Size 0x480 float fn_1_1526C(float arg0, float arg1, float arg2, float arg3); float fn_1_15294(float arg0, float arg1, float arg2); @@ -75,10 +77,10 @@ void fn_1_17804(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, void fn_1_188E0(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4); void fn_1_19530(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); -void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3); +void fn_1_19658(omObjData* arg0, s32 arg1, float arg2, s32 arg3); void fn_1_19894(StructFn19894* arg0, s32 arg1); void fn_1_198F8(StructFn19894* arg0, s32 arg1); void fn_1_19960(StructFn19894* arg0, s32 arg1); -void fn_1_19968(StructFn19894* arg0); +void fn_1_19968(StructFn19894* arg0, s32 arg1); void fn_1_19974(StructFn19894* arg0, s32 arg1); void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 arg4, s32 arg5); diff --git a/include/REL/m438Dll.h b/include/REL/m438Dll.h index 798483ee..828dd494 100644 --- a/include/REL/m438Dll.h +++ b/include/REL/m438Dll.h @@ -1,8 +1,158 @@ #ifndef M438DLL_H #define M438DLL_H +#include "game/animdata.h" +#include "game/hsfformat.h" #include "game/object.h" +typedef struct M438MainWork4 { + u8 unk_00; + char unk01[0x3]; + s32 unk_04; + float unk_08; + float unk_0C; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + char unk40[0xC]; +} M438MainWork4; /* size = 0x4C */ + +typedef struct M438UnkSubStruct { + s8 unk_00; + s8 unk_01; + char unk02[0x2]; + float unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + u8 unk_24; + float unk_28; + float unk_2C; +} M438UnkSubStruct; + +typedef struct M438UnkStruct { + Vec unk_00; + Vec unk_0C; + Vec unk_18; + Vec unk_24; + u8 unk_30; + u8 unk_31; + u8 unk_32; + u8 unk_33; + u8 unk_34; + u32 unk_38; + s16 unk_3C; + void *unk_40; + Vec *unk_44; + GXColor *unk_48; + Vec *unk_4C; + GXColor unk_50; + GXColor unk_54; + M438UnkSubStruct *unk_58; + u8 unk_5C; + char unk5D[0x3]; + Vec unk_60; + Vec unk_6C; + s16 unk_78[0x10]; +} M438UnkStruct; /* size = 0x98 */ + +typedef struct M438FireStruct { + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; +} M438FireStruct; // sizeof 0x30 + +typedef struct M438FireStruct2 { + GXColor unk0; + GXColor unk4; + GXColor unk8; + GXColor unkC; +} M438FireStruct2; // sizeof 0x10 + +typedef struct M438FireStruct3 { + HsfVector2f unk0; + HsfVector2f unk8; + HsfVector2f unk10; + HsfVector2f unk18; +} M438FireStruct3; // sizeof 0x20 + +typedef struct M438UnkStruct2 { + s16 unk_00; + s16 unk_02; + u8 unk_04; + u32 unk_08; + Vec unk_0C; + Vec unk_18; + Vec unk_24; + void (*unk_30)(struct M438UnkStruct2 *); + s16 *unk_34; + char unk_38[0x4]; + M438UnkStruct *unk_3C; + char unk40[0x8]; + s16 unk_48; + void *unk_4C; + Vec *unk_50; + GXColor *unk_54; + Vec *unk_58; + M438UnkSubStruct *unk_5C; + u8 unk_60; + char unk61[0x3]; + Vec unk_64; + Vec unk_70; + union { + s16 unk_7Ca[0x20]; + struct { + s16 unk_7C; + s16 unk_7E; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + char unk94[0x28]; + }; + }; +} M438UnkStruct2; /* size = 0xBC */ + +typedef struct M438UnkStruct3 { + AnimData *unk_00; + s16 unk_04; + s16 unk_06; + u32 unk_08; + Vec unk_0C; + Mtx unk_18; + GXColor unk_48; + u8 unk_4C; + u8 unk_4D; + s16 unk_4E; + s16 unk_50; + char unk52[0x2]; + float unk_54; + float unk_58; + float unk_5C; + float unk_60; +} M438UnkStruct3; /* size = 0x64 */ + +typedef struct M438StructBssDE4 { + Mtx unk_00; + s16 unk_30; + s16 unk_32; + s16 unk_34; + s16 unk_36; + s16 unk_38; + s16 unk_3A; + M438UnkStruct3 *unk_3C; + M438UnkStruct2 *unk_40; +} M438StructBssDE4; /* size = */ + +extern M438StructBssDE4 lbl_1_bss_DE4; + void fn_1_B4D8(Process *arg0); void fn_1_B548(); s32 fn_1_DA64(float arg8); @@ -11,11 +161,11 @@ float fn_1_E488(float arg8, float arg9, float argA); float fn_1_E5A4(float arg8, float arg9); void fn_1_E658(s16 arg0, s16 arg1); -s16 fn_1_10258(s32 arg0, s32 arg1); +s16 fn_1_10258(u8 arg0, u8 arg1); void fn_1_107BC(s16 arg0); -void fn_1_108E4(s16 arg0, s32 arg1, s32 arg2); +void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2); s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2); -s8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2); +u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2); void fn_1_11658(void); void fn_1_11890(s16 arg0, float arg8, float arg9, float argA); void fn_1_118FC(s16 arg0, s16 arg1, float arg8, float arg9, float argA); @@ -26,11 +176,11 @@ void fn_1_11F68(s16 arg0, s16 arg1, float arg8, float arg9, float argA); void fn_1_1204C(s16 arg0, s32 arg1); void fn_1_12090(s16 arg0, s16 arg1, s32 arg2); void fn_1_12100(s16 arg0, s32 arg1); -void fn_1_12174(s16 arg0, s32 arg1); -void fn_1_12378(s16 arg0, s16 arg1, s8 arg2, s8 arg3, s8 arg4, u8 arg5); -void fn_1_124CC(s16 arg0, s8 arg1); -void fn_1_12538(s16 arg0, s16 arg1, s8 arg2); -void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, s8 arg3); +void fn_1_12174(s16 arg0, u32 arg1); +void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5); +void fn_1_124CC(s16 arg0, u8 arg1); +void fn_1_12538(s16 arg0, s16 arg1, u8 arg2); +void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3); void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, float arg8); #endif diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 071bc6a5..d7d2c5b8 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -4,16 +4,18 @@ #include "dolphin/types.h" #include "game/hsfman.h" +#include "version.h" + #include "game/object.h" extern s32 rand8(void); ////// TYPES ////// -typedef void (*m440Func5)(ModelData*, struct _unkStruct5*, Mtx); -typedef void (*m440Func6)(struct _unkStruct6*); -typedef void (*m440Func14)(struct _unkStruct14*); +typedef void (*m440Func5)(ModelData *, struct _unkStruct5 *, Mtx); +typedef void (*m440Func6)(struct _unkStruct6 *); +typedef void (*m440Func14)(struct _unkStruct14 *); typedef struct _unkStruct { - f32 zoom; + float zoom; Vec center; Vec rot; } unkStruct; @@ -28,37 +30,37 @@ typedef struct _unkStruct2 { char unk10[0xC]; s16 unk1C; char unk20[0x4]; - f32 unk24; + float unk24; char unk28[0x4]; s16 unk2C; s16 unk2E; - f32 unk30; + float unk30; } unkStruct2; typedef struct _unkStruct3 { char unk0[0x34]; - f32 unk34; + float unk34; char unk38[0x8]; - f32 unk40; + float unk40; } unkStruct3; typedef struct _unkStruct4 { Vec unk0; char unkC[0xC]; - f32 unk18; - f32 unk1C; + float unk18; + float unk1C; char unk20[0x4]; - f32 unk24; - f32 unk28; - f32 unk2C; - f32 unk30; + float unk24; + float unk28; + float unk2C; + float unk30; s16 unk34; s16 unk36; char unk38[0x4]; s32 unk3C; s16 unk40; s16 unk42; - f32 unk44; + float unk44; Vec unk48; Vec unk54; s16 unk60; @@ -71,20 +73,20 @@ typedef struct _unkStruct5 { u32 unk4; u8 unk8; m440Func5 unkC; - AnimData* unk10; + AnimData *unk10; s16 unk14; - unkStruct4* unk18; - Vec* unk1C; - HsfVector2f* unk20; - GXColor* unk24; - void* unk28; + unkStruct4 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; Vec unk2C; Vec unk38; Vec unk44; Vec unk50; - HsfVector2f* unk5C; - f32 unk60; - f32 unk64; + HsfVector2f *unk5C; + float unk60; + float unk64; } unkStruct5; typedef struct _unkStruct6 { @@ -93,16 +95,16 @@ typedef struct _unkStruct6 { s16 unk4; s16 unk6; u32 unk8; - Vec* unkC; - Vec* unk10; - Vec* unk14; - Vec* unk18; - HsfVector2f* unk1C; + Vec *unkC; + Vec *unk10; + Vec *unk14; + Vec *unk18; + HsfVector2f *unk1C; s32 unk20; - struct _unkStruct8* unk24; - HsfMaterial* unk28; - HsfAttribute* unk2C; - void* unk30; + struct _unkStruct8 *unk24; + HsfMaterial *unk28; + HsfAttribute *unk2C; + void *unk30; u32 unk34; m440Func6 unk38; s16 unk3C; @@ -127,7 +129,7 @@ typedef struct _unkStruct8 { s16 unk1E; unkStruct11 unk20[3]; char unk38[0x30]; - f32 unk68[5]; + float unk68[5]; Vec unk7C; Vec unk88; Vec unk94; @@ -142,7 +144,7 @@ typedef struct _unkStruct10 { s16 unk2; unkStruct11 unk4[3]; u32 unk1C; - unkStruct11* unk20; + unkStruct11 *unk20; char unk24[0xC]; } unkStruct10; // sizeof 0x30 @@ -152,41 +154,41 @@ typedef struct _unkStruct12 { u8 unkB[3]; u8 unkE[3]; char unk12[0x2]; - f32 unk14; + float unk14; char unk18[0x4]; - f32 unk1C; + float unk1C; char unk20[0x10]; u32 unk30; u32 unk34; - s32* unk38; + s32 *unk38; } unkStruct12; typedef struct _unkStruct13 { char unk0[0xA]; u8 unkA; char unkB[0x15]; - f32 unk20; + float unk20; char unk24[0x40]; u32 unk64; u32 unk68; char unk6C[0x14]; - struct _unkStruct15* unk80; + struct _unkStruct15 *unk80; } unkStruct13; // sizeof 0x84 typedef struct _unkStruct14 { s16 unk0; s16 unk2; char unk4[0x8]; - void* unkC; + void *unkC; char unk10[0x4]; - void* unk14; - unkStruct4* unk18; - void* unk1C; + void *unk14; + unkStruct4 *unk18; + void *unk1C; char unk20[0x4]; - GXColor* unk24; - unkStruct12* unk28; - unkStruct13* unk2C; - void* unk30; + GXColor *unk24; + unkStruct12 *unk28; + unkStruct13 *unk2C; + void *unk30; u32 unk34; m440Func14 unk38; s16 unk3C; @@ -200,9 +202,9 @@ typedef struct _unkStruct15 { s16 unkC; s16 unkE; char unk10[0x4]; - void* unk14; + void *unk14; char unk18[0x4]; - void* unk1C; + void *unk1C; } unkStruct15; // object.c @@ -224,29 +226,34 @@ typedef struct _unkObjStruct { Vec unk3C; u8 unk48; s16 unk4A; - f32 unk4C; + float unk4C; s16 unk50; s16 unk52; s16 unk54; s16 unk56; s16 unk58; s16 unk5A; - f32 unk5C; + float unk5C; s16 unk60; s16 unk62; char unk64[0x4]; - f32 unk68; - f32 unk6C; - f32 unk70; + float unk68; + float unk6C; + float unk70; } unkObjStruct; +#if VERSION_NTSC +#define REFRESH_RATE_F 60.0f +#else +#define REFRESH_RATE_F 49.998f +#endif ////// BSS ////// -extern omObjData* lbl_1_bss_C0[4]; +extern omObjData *lbl_1_bss_C0[4]; ////// DATA ////// // main.c -extern f32 lbl_1_data_0[5]; +extern float lbl_1_data_0[5]; extern s16 lbl_1_data_14[6]; // object.c extern s16 lbl_1_data_1D8; @@ -254,14 +261,14 @@ extern s16 lbl_1_data_1D8; ////// FUNCTIONS ////// // main.c void ObjectSetup(void); -void fn_1_3C4(omObjData* object); -void fn_1_434(omObjData* object); +void fn_1_3C4(omObjData *object); +void fn_1_434(omObjData *object); s32 fn_1_4A4(void); s32 fn_1_6C8(void); -void fn_1_8F0(omObjData* object); -void fn_1_AE0(omObjData* object); -u8 fn_1_E14(omObjData* object); -u8 fn_1_1138(omObjData* object); +void fn_1_8F0(omObjData *object); +void fn_1_AE0(omObjData *object); +u8 fn_1_E14(omObjData *object); +u8 fn_1_1138(omObjData *object); void fn_1_16D8(void); void fn_1_1708(void); void fn_1_1768(void); @@ -273,82 +280,82 @@ void fn_1_18E0(void); u8 fn_1_1954(void); void fn_1_19B0(void); void fn_1_1CAC(void); -void fn_1_2240(ModelData* data, unkStruct5*, Mtx); +void fn_1_2240(ModelData *data, unkStruct5 *, Mtx); u16 fn_1_23E4(u16); void fn_1_2428(u16, u16); -void fn_1_2470(omObjData* object); -void fn_1_2A74(omObjData* object); -void fn_1_2AB4(omObjData* object); -void fn_1_2B04(omObjData* object); -void fn_1_2CA8(omObjData* object); -void fn_1_2D28(omObjData* object); -void fn_1_33D4(omObjData* object); -void fn_1_3DD8(omObjData* object); -void fn_1_4558(omObjData* object); -void fn_1_45BC(omObjData* object); -void fn_1_4660(omObjData* object); -void fn_1_46E0(omObjData* object); -void fn_1_4A20(omObjData* object); -void fn_1_4B44(omObjData* object); -void fn_1_4E00(s16, f32); +void fn_1_2470(omObjData *object); +void fn_1_2A74(omObjData *object); +void fn_1_2AB4(omObjData *object); +void fn_1_2B04(omObjData *object); +void fn_1_2CA8(omObjData *object); +void fn_1_2D28(omObjData *object); +void fn_1_33D4(omObjData *object); +void fn_1_3DD8(omObjData *object); +void fn_1_4558(omObjData *object); +void fn_1_45BC(omObjData *object); +void fn_1_4660(omObjData *object); +void fn_1_46E0(omObjData *object); +void fn_1_4A20(omObjData *object); +void fn_1_4B44(omObjData *object); +void fn_1_4E00(s16, float); s16 fn_1_4E2C(void); s16 fn_1_4E54(s16); u16 fn_1_4EA8(u16); void fn_1_4EEC(u16, u16); -void fn_1_4F34(unkStruct6*); -void fn_1_5010(unkStruct6*, Vec*, f32); -void fn_1_57B4(unkStruct6*); -void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16); -void fn_1_6554(unkStruct6*, HsfObject*); -void fn_1_6B58(unkStruct6*, HsfObject*); -void fn_1_71FC(unkStruct6*, Vec*, s16, Vec); -void fn_1_7934(unkStruct6*, unkStruct8*, Vec*); -void fn_1_7D60(unkStruct15*, unkStruct13*, s16); -void fn_1_806C(ModelData*, Mtx); -void fn_1_8470(unkStruct12*, unkStruct13*); +void fn_1_4F34(unkStruct6 *); +void fn_1_5010(unkStruct6 *, Vec *, float); +void fn_1_57B4(unkStruct6 *); +void fn_1_5C2C(s16, HsfObject *, unkStruct6 *, u16); +void fn_1_6554(unkStruct6 *, HsfObject *); +void fn_1_6B58(unkStruct6 *, HsfObject *); +void fn_1_71FC(unkStruct6 *, Vec *, s16, Vec); +void fn_1_7934(unkStruct6 *, unkStruct8 *, Vec *); +void fn_1_7D60(unkStruct15 *, unkStruct13 *, s16); +void fn_1_806C(ModelData *, Mtx); +void fn_1_8470(unkStruct12 *, unkStruct13 *); void fn_1_8AC4(Mtx); void fn_1_8D1C(void); -void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]); -f32 fn_1_927C(f32, f32, f32); +void fn_1_91A4(Vec *, Vec *, Vec *, float[5]); +float fn_1_927C(float, float, float); void fn_1_9344(Mtx, Mtx); -f32 fn_1_93C0(f32, f32, f32); -f32 fn_1_93D0(f32, f32, f32, f32); -unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*); -s16 fn_1_956C(AnimData*, s16, f32, s16, s16); +float fn_1_93C0(float, float, float); +float fn_1_93D0(float, float, float, float); +unkStruct4 *fn_1_942C(s16, Vec *, Vec *, float, GXColor *); +s16 fn_1_956C(AnimData *, s16, float, s16, s16); void fn_1_9AB0(s16); -unkStruct5* fn_1_9B10(s16); -unkStruct4* fn_1_9B3C(s16, s16); +unkStruct5 *fn_1_9B10(s16); +unkStruct4 *fn_1_9B3C(s16, s16); void fn_1_9B94(s16, m440Func5); void fn_1_9BCC(s16, u8); -void fn_1_9C04(ModelData*, Mtx); -void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32); -void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32); -void fn_1_A328(Vec*, Vec*, Vec*, s16); -void fn_1_A390(ModelData*, Mtx); +void fn_1_9C04(ModelData *, Mtx); +void fn_1_A1B8(HsfVector2f *, s16, s16, float, float); +void fn_1_A284(HsfVector2f *, HsfVector2f *, s16, float, float); +void fn_1_A328(Vec *, Vec *, Vec *, s16); +void fn_1_A390(ModelData *, Mtx); void fn_1_AA94(void); // object.c -void fn_1_AE08(Process*); -void fn_1_AEE4(omObjData*); -void fn_1_B17C(omObjData*); -void fn_1_B180(omObjData*); -void fn_1_B3A4(omObjData*); -void fn_1_B884(omObjData*, unkObjStruct*); -void fn_1_C1D4(omObjData*, unkObjStruct*); -void fn_1_C944(omObjData*, unkObjStruct*); -s16 fn_1_CFAC(unkObjStruct*, u8); -void fn_1_D24C(unkObjStruct*, f32, f32); -void fn_1_D34C(omObjData*, unkObjStruct*); -void fn_1_D7F8(omObjData*, unkObjStruct*); -void fn_1_E034(omObjData*, unkObjStruct*); -u8 fn_1_E8AC(omObjData*, unkObjStruct*); -s32 fn_1_ED88(omObjData*, s16, u32); +void fn_1_AE08(Process *); +void fn_1_AEE4(omObjData *); +void fn_1_B17C(omObjData *); +void fn_1_B180(omObjData *); +void fn_1_B3A4(omObjData *); +void fn_1_B884(omObjData *, unkObjStruct *); +void fn_1_C1D4(omObjData *, unkObjStruct *); +void fn_1_C944(omObjData *, unkObjStruct *); +s16 fn_1_CFAC(unkObjStruct *, u8); +void fn_1_D24C(unkObjStruct *, float, float); +void fn_1_D34C(omObjData *, unkObjStruct *); +void fn_1_D7F8(omObjData *, unkObjStruct *); +void fn_1_E034(omObjData *, unkObjStruct *); +u8 fn_1_E8AC(omObjData *, unkObjStruct *); +s32 fn_1_ED88(omObjData *, s16, u32); void fn_1_EE78(void); void fn_1_EF50(void); s16 fn_1_F0FC(void); void fn_1_F168(void); void fn_1_F228(void); -u16 fn_1_F4C0(unkObjStruct*, u16); -void fn_1_F4D4(unkObjStruct*, u16, u16); +u16 fn_1_F4C0(unkObjStruct *, u16); +void fn_1_F4D4(unkObjStruct *, u16, u16); s32 fn_1_F4FC(s32); #endif diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index 1f5a4c6a..bdbdadb2 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -3,8 +3,9 @@ #include "dolphin/types.h" -#include "game/process.h" #include "game/object.h" +#include "game/process.h" + ////// TYPES ////// typedef struct _unkStruct { @@ -17,26 +18,26 @@ typedef struct _unkStruct { s32 unk14; s32 unk18; s32 unk1C; - struct _unkStruct6* unk20; - struct _unkStruct9* unk24; - struct _unkStruct5* unk28; - struct _unkStruct8* unk2C[2]; - struct _unkStruct4* unk34; - struct _unkStruct4* unk38[23]; + struct _unkStruct6 *unk20; + struct _unkStruct9 *unk24; + struct _unkStruct5 *unk28; + struct _unkStruct8 *unk2C[2]; + struct _unkStruct4 *unk34; + struct _unkStruct4 *unk38[23]; s32 unk94; - Process* unk98; + Process *unk98; } unkStruct; typedef struct _unkStruct2 { - void** unk0; + void **unk0; s32 unk4; s32 unk8; } unkStruct2; typedef struct _unkStruct3 { - void* unk0; - struct _unkStruct3* unk4; - struct _unkStruct3* unk8; + void *unk0; + struct _unkStruct3 *unk4; + struct _unkStruct3 *unk8; } unkStruct3; typedef struct _unkStruct4 { @@ -52,9 +53,9 @@ typedef struct _unkStruct4 { Vec unk34; Vec unk40; Vec unk4C; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk58; + float unk5C; + float unk60; s32 unk64; s32 unk68; s32 unk6C; @@ -62,24 +63,24 @@ typedef struct _unkStruct4 { s32 unk74; s32 unk78; s32 unk7C; - f32 unk80; - f32 unk84; - f32 unk88; - f32 unk8C; - f32 unk90; - f32 unk94; + float unk80; + float unk84; + float unk88; + float unk8C; + float unk90; + float unk94; } unkStruct4; typedef struct _unkStruct5 { - unkStruct2* unk0; + unkStruct2 *unk0; Vec unk4; } unkStruct5; typedef struct _unkStruct6 { - struct _unkStruct7* unk0; + struct _unkStruct7 *unk0; s16 unk4; s16 unk6; - unkStruct4* unk8[21]; + unkStruct4 *unk8[21]; s32 unk5C; s32 unk60; s32 unk64; @@ -100,16 +101,16 @@ typedef struct _unkStruct7 { Vec unk20; Vec unk2C; Vec unk38; - f32 unk44; + float unk44; u8 unk48; - f32 unk4C; - f32 unk50; + float unk4C; + float unk50; } unkStruct7; typedef struct _unkStruct8 { s32 unk0; - unkStruct6* unk4; - unkStruct7* unk8; + unkStruct6 *unk4; + unkStruct7 *unk8; s32 unkC; s32 unk10; s32 unk14; @@ -118,13 +119,13 @@ typedef struct _unkStruct8 { s32 unk20; s32 unk24; s32 unk28; - unkStruct4* unk2C[3]; + unkStruct4 *unk2C[3]; s32 unk38; s16 unk3C[2]; s16 unk40[4]; Vec unk48; Vec unk54; - f32 unk60; + float unk60; u8 unk64; u8 unk65; u8 unk66; @@ -141,10 +142,10 @@ typedef struct _unkStruct8 { Vec unk9C; Vec unkA8; s32 unkB4; - f32 unkB8; - f32 unkBC; - f32 unkC0; - f32 unkC4; + float unkB8; + float unkBC; + float unkC0; + float unkC4; s32 unkC8; } unkStruct8; @@ -152,8 +153,8 @@ typedef struct _unkStruct9 { s16 unk0[5]; s16 unkA[2]; s16 unkE; - f32 unk10; - f32 unk14; + float unk10; + float unk14; s32 unk18; s32 unk1C; s32 unk20; @@ -169,141 +170,141 @@ typedef struct _unkStruct10 { } unkStruct10; typedef void (*m446Func)(s32); -typedef void (*m446Func1)(unkStruct*); -typedef void (*m446Func4)(unkStruct4*); -typedef void (*m446Func8)(unkStruct8*); +typedef void (*m446Func1)(unkStruct *); +typedef void (*m446Func4)(unkStruct4 *); +typedef void (*m446Func8)(unkStruct8 *); ////// PROTOTYPES ////// // main.c void ObjectSetup(void); -void fn_1_13C(omObjData*); -unkStruct* m446FlowCreate(void); -void fn_1_3FC(unkStruct*); -void fn_1_4B4(unkStruct*); -void fn_1_53C(unkStruct*); -void fn_1_958(unkStruct*); -void fn_1_B78(unkStruct*); -void fn_1_C0C(unkStruct*); -void fn_1_CA0(unkStruct*); -s32 fn_1_17FC(unkStruct*); -void fn_1_183C(unkStruct*); -void fn_1_1874(unkStruct*); -void fn_1_18B0(unkStruct*); +void fn_1_13C(omObjData *); +unkStruct *m446FlowCreate(void); +void fn_1_3FC(unkStruct *); +void fn_1_4B4(unkStruct *); +void fn_1_53C(unkStruct *); +void fn_1_958(unkStruct *); +void fn_1_B78(unkStruct *); +void fn_1_C0C(unkStruct *); +void fn_1_CA0(unkStruct *); +s32 fn_1_17FC(unkStruct *); +void fn_1_183C(unkStruct *); +void fn_1_1874(unkStruct *); +void fn_1_18B0(unkStruct *); void fn_1_19D4(void); // card.c -unkStruct2* fn_1_1C64(s32); -void fn_1_1CF8(unkStruct2*); -s32 fn_1_1D30(unkStruct2*, void*); -s32 fn_1_1D6C(unkStruct2*, unkStruct4**); -s32 fn_1_1DA8(unkStruct2*, void**); -BOOL fn_1_1DDC(unkStruct2*); -s32 fn_1_1DEC(unkStruct2*); -unkStruct3* fn_1_1DF4(void*); -void fn_1_1E5C(unkStruct3*); -void fn_1_1E84(unkStruct3**); -void fn_1_1EC8(unkStruct3*, unkStruct3*); -void fn_1_1F04(unkStruct3*); -void fn_1_1F38(u8*, u8*, s32); -void fn_1_1F84(u8*, s8, s32); -void fn_1_1FC0(u8*, s32); -s32 fn_1_1FFC(s8*, s8*, s32); +unkStruct2 *fn_1_1C64(s32); +void fn_1_1CF8(unkStruct2 *); +s32 fn_1_1D30(unkStruct2 *, void *); +s32 fn_1_1D6C(unkStruct2 *, unkStruct4 **); +s32 fn_1_1DA8(unkStruct2 *, void **); +BOOL fn_1_1DDC(unkStruct2 *); +s32 fn_1_1DEC(unkStruct2 *); +unkStruct3 *fn_1_1DF4(void *); +void fn_1_1E5C(unkStruct3 *); +void fn_1_1E84(unkStruct3 **); +void fn_1_1EC8(unkStruct3 *, unkStruct3 *); +void fn_1_1F04(unkStruct3 *); +void fn_1_1F38(u8 *, u8 *, s32); +void fn_1_1F84(u8 *, s8, s32); +void fn_1_1FC0(u8 *, s32); +s32 fn_1_1FFC(s8 *, s8 *, s32); s32 fn_1_2064(void); void fn_1_207C(void); void fn_1_20D4(void); -unkStruct4* m446CardCreate(s32); -void fn_1_2688(unkStruct4*); -void fn_1_272C(unkStruct4*); -void fn_1_2794(unkStruct4*); -void fn_1_27FC(unkStruct4*, Vec*, s32); -void fn_1_2890(unkStruct4*, Vec*, s32, s32); -void fn_1_2928(unkStruct4*, Vec*, s32); -void fn_1_29B4(unkStruct4*, f32, s32); -void fn_1_2A1C(unkStruct4*); -void fn_1_2A58(unkStruct4*); -void fn_1_2A94(unkStruct4*); -void fn_1_2AA8(unkStruct4*); -void fn_1_2D94(unkStruct4*); -void fn_1_2DA8(unkStruct4*); -void fn_1_2EC0(unkStruct4*, s32); -void fn_1_2F64(unkStruct4*); +unkStruct4 *m446CardCreate(s32); +void fn_1_2688(unkStruct4 *); +void fn_1_272C(unkStruct4 *); +void fn_1_2794(unkStruct4 *); +void fn_1_27FC(unkStruct4 *, Vec *, s32); +void fn_1_2890(unkStruct4 *, Vec *, s32, s32); +void fn_1_2928(unkStruct4 *, Vec *, s32); +void fn_1_29B4(unkStruct4 *, float, s32); +void fn_1_2A1C(unkStruct4 *); +void fn_1_2A58(unkStruct4 *); +void fn_1_2A94(unkStruct4 *); +void fn_1_2AA8(unkStruct4 *); +void fn_1_2D94(unkStruct4 *); +void fn_1_2DA8(unkStruct4 *); +void fn_1_2EC0(unkStruct4 *, s32); +void fn_1_2F64(unkStruct4 *); // deck.c -unkStruct5* fn_1_3064(void); -void fn_1_3180(unkStruct2**); -void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32); -void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32); -s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32); -s32 m446DeckPopCard(unkStruct2**, unkStruct4**); -void fn_1_38B0(unkStruct2**); +unkStruct5 *fn_1_3064(void); +void fn_1_3180(unkStruct2 **); +void fn_1_31D8(unkStruct2 **, unkStruct4 **, s32 *, s32); +void fn_1_34A0(unkStruct5 *, unkStruct4 **, s32, s32); +s32 m446DeckPushCard(unkStruct5 *, unkStruct4 *, s32); +s32 m446DeckPopCard(unkStruct2 **, unkStruct4 **); +void fn_1_38B0(unkStruct2 **); s32 fn_1_38F0(void); // table.c s32 fn_1_3924(void); void fn_1_393C(void); void fn_1_3994(void); -unkStruct6* fn_1_39D0(void); -void fn_1_3B4C(unkStruct6*); -s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32); -s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32); -s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**); -void fn_1_4000(unkStruct6*, s32); -s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32); -void fn_1_46AC(unkStruct6*); -void fn_1_46D0(unkStruct6*); -s32 fn_1_4720(unkStruct6*, s32); -void fn_1_4798(unkStruct6*); +unkStruct6 *fn_1_39D0(void); +void fn_1_3B4C(unkStruct6 *); +s32 fn_1_3BF0(unkStruct6 *, unkStruct4 *, s32); +s32 fn_1_3EB4(unkStruct6 *, unkStruct4 *, s32); +s32 fn_1_3FD0(unkStruct6 *, s32, unkStruct4 **); +void fn_1_4000(unkStruct6 *, s32); +s32 fn_1_4088(unkStruct6 *, u8, u8, s32, unkStruct4 **, s32); +void fn_1_46AC(unkStruct6 *); +void fn_1_46D0(unkStruct6 *); +s32 fn_1_4720(unkStruct6 *, s32); +void fn_1_4798(unkStruct6 *); // player.c s32 fn_1_480C(void); void fn_1_4824(void); void fn_1_487C(void); -unkStruct8* m446PlayerCreate(s32, unkStruct6*); -void fn_1_509C(unkStruct8*); -s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32); -s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32); -s32 fn_1_5648(unkStruct8*, s32, unkStruct4**); -s32 fn_1_5678(unkStruct8*, unkStruct4**, s32); -void fn_1_5B34(unkStruct8*); -void fn_1_5B48(unkStruct8*); -void fn_1_5C10(unkStruct8*); -void fn_1_5C24(unkStruct8*); -void fn_1_5CEC(unkStruct8*); -void fn_1_5D00(unkStruct8*); -void fn_1_5E54(unkStruct8*, s32); -void fn_1_6074(unkStruct8*); -void fn_1_6264(unkStruct8*, Vec*, s32); -void fn_1_62F0(unkStruct8*, Vec*, s32); -void fn_1_637C(unkStruct8*, s32); -void fn_1_64BC(unkStruct8*, s32, s32); -void fn_1_6578(unkStruct8*); -void fn_1_6620(unkStruct8*); +unkStruct8 *m446PlayerCreate(s32, unkStruct6 *); +void fn_1_509C(unkStruct8 *); +s32 m446PlayerAppendCard(unkStruct8 *, unkStruct4 *, s32); +s32 m446PlayerRemoveCard(unkStruct8 *, unkStruct4 *, s32); +s32 fn_1_5648(unkStruct8 *, s32, unkStruct4 **); +s32 fn_1_5678(unkStruct8 *, unkStruct4 **, s32); +void fn_1_5B34(unkStruct8 *); +void fn_1_5B48(unkStruct8 *); +void fn_1_5C10(unkStruct8 *); +void fn_1_5C24(unkStruct8 *); +void fn_1_5CEC(unkStruct8 *); +void fn_1_5D00(unkStruct8 *); +void fn_1_5E54(unkStruct8 *, s32); +void fn_1_6074(unkStruct8 *); +void fn_1_6264(unkStruct8 *, Vec *, s32); +void fn_1_62F0(unkStruct8 *, Vec *, s32); +void fn_1_637C(unkStruct8 *, s32); +void fn_1_64BC(unkStruct8 *, s32, s32); +void fn_1_6578(unkStruct8 *); +void fn_1_6620(unkStruct8 *); // camera.c s32 fn_1_6778(void); void fn_1_68D8(void); void fn_1_68DC(void); -void fn_1_6EA0(Vec*); -void fn_1_6EC4(Vec*); -void fn_1_6EE8(f32); -void fn_1_6EF8(Vec*, Vec*, f32*, s32); +void fn_1_6EA0(Vec *); +void fn_1_6EC4(Vec *); +void fn_1_6EE8(float); +void fn_1_6EF8(Vec *, Vec *, float *, s32); s32 fn_1_708C(void); void fn_1_709C(void); // cursor.c s32 fn_1_72E0(void); void fn_1_72F8(void); void fn_1_7350(void); -unkStruct7* m446CursorCreate(s32); -void fn_1_76E8(unkStruct7*); -void fn_1_77C8(unkStruct7*, u8); -void fn_1_7884(unkStruct7*); -void fn_1_7908(unkStruct7*, Vec*, s32); -void fn_1_799C(unkStruct7*); -void fn_1_7A38(unkStruct7*); -void fn_1_7AB4(unkStruct7*); +unkStruct7 *m446CursorCreate(s32); +void fn_1_76E8(unkStruct7 *); +void fn_1_77C8(unkStruct7 *, u8); +void fn_1_7884(unkStruct7 *); +void fn_1_7908(unkStruct7 *, Vec *, s32); +void fn_1_799C(unkStruct7 *); +void fn_1_7A38(unkStruct7 *); +void fn_1_7AB4(unkStruct7 *); // stage.c s32 fn_1_7BF0(void); void fn_1_7C08(void); void fn_1_7C60(void); -unkStruct9* m446StageCreate(void); -void fn_1_83F0(unkStruct9*); -void fn_1_84AC(unkStruct9*); -void fn_1_852C(unkStruct9*); -void fn_1_860C(unkStruct9*); +unkStruct9 *m446StageCreate(void); +void fn_1_83F0(unkStruct9 *); +void fn_1_84AC(unkStruct9 *); +void fn_1_852C(unkStruct9 *); +void fn_1_860C(unkStruct9 *); #endif diff --git a/include/REL/m456Dll.h b/include/REL/m456Dll.h index 749d8bd1..3b566223 100644 --- a/include/REL/m456Dll.h +++ b/include/REL/m456Dll.h @@ -8,5 +8,7 @@ void fn_1_2F3C(void); s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3); float fn_1_63AC(void); s32 fn_1_67E0(Vec *arg0, float arg1); +s32 fn_1_74F8(Vec *pos, float scale); +void fn_1_7F78(void); #endif diff --git a/include/REL/m460Dll.h b/include/REL/m460Dll.h new file mode 100644 index 00000000..40ca863d --- /dev/null +++ b/include/REL/m460Dll.h @@ -0,0 +1,64 @@ +#ifndef M460DLL_H +#define M460DLL_H + +#include "game/object.h" + +typedef struct UnkM460DllStruct { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; +} UnkM460DllStruct; + +typedef struct M460DllCameraStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + float unk_10; + float unk_14; + float unk_18; + Vec unk_1C; + Vec unk_28; + float unk_34; + s32 unk_38; + s32 unk_3C; + float unk_40; + UnkM460DllStruct unk_44; + char unk54[0x30]; + float unk_84; + char unk88[0x4]; + float unk_8C; + float unk_90; + s32 unk_94; + char unk98[0xC]; +} M460DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct + +void fn_1_3E68(u32 arg0); +M460DllCameraStruct *fn_1_3E90(s32 arg0); +M460DllCameraStruct *fn_1_3F2C(s32 arg0); +u32 fn_1_414C(void); +u32 fn_1_4164(void); +s32 fn_1_419C(void); +void fn_1_41B4(s32 arg0, s32 arg1, s32 arg2); +void fn_1_41F4(s32 arg0); +void fn_1_4224(s32 arg0); +void fn_1_42BC(u32 arg0); +s32 fn_1_42F0(void); +void fn_1_4308(void); +s32 fn_1_4324(void); +void fn_1_433C(void); +s32 fn_1_4358(void); +u32 fn_1_4370(void); +float fn_1_47D0(float arg8, float arg9, float argA); + +void fn_1_49A0(Process *process); +void fn_1_4BE4(void); +void fn_1_67B4(Process *process); +void fn_1_6814(void); +void fn_1_8BA0(float arg8); +void fn_1_8CAC(Process *process, s16 arg1); +void fn_1_8F38(void); +void fn_1_8FAC(s32 arg0); + +#endif diff --git a/include/REL/mentDll.h b/include/REL/mentDll.h index 623bdc08..fe6e9e49 100644 --- a/include/REL/mentDll.h +++ b/include/REL/mentDll.h @@ -4,16 +4,16 @@ #include "game/object.h" extern s32 lbl_1_data_0[][4]; -//the prev and current struct member might be vice versa +// the prev and current struct member might be vice versa typedef struct MentDllUnkBss64Struct { /* 0x00 */ void (*func)(void); - /* 0x04 */ void (*func2)(f32 arg9); + /* 0x04 */ void (*func2)(float arg9); /* 0x08 */ Vec center; /* 0x14 */ Vec prevCenter; /* 0x20 */ Vec rot; /* 0x2C */ Vec prevRot; /* 0x38 */ float zoom; - /* 0x3C */ f32 prevZoom; + /* 0x3C */ float prevZoom; /* 0x40 */ s32 unk_40; } MentDllUnkBss64Struct; /* size = 0x44 */ extern MentDllUnkBss64Struct lbl_1_bss_64; @@ -36,10 +36,10 @@ s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2); s32 fn_1_2154(s32 arg0); void fn_1_2318(s32 arg0); void fn_1_2808(void (*arg0)(void)); -void fn_1_2844(Process* arg0, void (*arg1)(void)); -void fn_1_29A0(MentDllUnkBss64Struct* arg0); -void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); -void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); +void fn_1_2844(Process *arg0, void (*arg1)(void)); +void fn_1_29A0(MentDllUnkBss64Struct *arg0); +void fn_1_4138(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, float arg8, float arg9, float argA); +void fn_1_5150(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, float arg8, float arg9, float argA); void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_5C08(omObjData *arg0); diff --git a/include/REL/mgmodedll.h b/include/REL/mgmodedll.h index 3e8ef9c3..fdfe352e 100644 --- a/include/REL/mgmodedll.h +++ b/include/REL/mgmodedll.h @@ -7,9 +7,9 @@ #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" #include "game/window.h" -#include "game/pad.h" typedef struct datalist_model { s32 datanum; @@ -33,7 +33,7 @@ typedef struct datalist_sprite { typedef struct struct_bss8_24 { omObjData *unk0; - void (*unk4)(omObjData*, ...); + void (*unk4)(omObjData *, ...); u8 unk8[0x50]; s32 unk58; s32 unk5C; @@ -72,7 +72,7 @@ extern s16 lbl_1_bss_20C0[10][70]; extern s16 lbl_1_bss_20AC[10]; extern s16 lbl_1_bss_20AA; -extern Process *lbl_1_bss_2D8; +extern Process *objman; extern s16 lbl_1_bss_2E4; @@ -80,7 +80,7 @@ extern s16 lbl_1_bss_2A6; extern s16 lbl_1_bss_2A4; extern StructBss8 lbl_1_bss_8; -extern s16 lbl_1_bss_4; +extern s16 mgModeEvtNo; extern s16 lbl_1_data_A2[]; extern DataListModel lbl_1_data_490[]; @@ -112,4 +112,4 @@ s16 fn_1_271B4(s16 mgNo, s16 x, s16 y); void fn_1_27418(void); void fn_1_279FC(s32 coinSkipF); -#endif \ No newline at end of file +#endif diff --git a/include/REL/modeltestDll.h b/include/REL/modeltestDll.h index d0b4ccc3..d4afecc4 100644 --- a/include/REL/modeltestDll.h +++ b/include/REL/modeltestDll.h @@ -2,46 +2,45 @@ #define REL_MODELTEST_H #include "game/hsfdraw.h" -#include "game/objsub.h" #include "game/object.h" +#include "game/objsub.h" + +#include "ext_math.h" // -------------------------------------------------------------------------- // #define US_PER_60TH_SEC (1000000.0f / 60.0f) #define US_TO_60TH_SEC(us) ((us) / US_PER_60TH_SEC) -#define FB_SIZE(width, height) width * height * 2 -#define ABS(x) ((x) < 0 ? -(x) : (x)) +#define FB_SIZE(width, height) width *height * 2 // -------------------------------------------------------------------------- // -typedef struct -{ +typedef struct { s16 unk0[7]; } HuUnkF9C2; -typedef struct -{ - Point3d pos; // 0000 - Point3d rot; // 000C - Point3d scale; // 0018 +typedef struct { + Vec pos; // 0000 + Vec rot; // 000C + Vec scale; // 0018 s32 unk24; s32 unk28; s32 unk2C; - HsfObject * obj; // 0030 + HsfObject *obj; // 0030 } HuObjUnk; -extern Point3d CRot; -extern Point3d Center; -extern f32 CZoom; +extern Vec CRot; +extern Vec Center; +extern float CZoom; void fn_1_29C(); -void fn_1_28F8(Point3d * arg0, Point3d * arg1); -void fn_1_37DC(omObjData*); -void fn_1_439C(omObjData*); +void fn_1_28F8(Vec *arg0, Vec *arg1); +void fn_1_37DC(omObjData *); +void fn_1_439C(omObjData *); void fn_1_46F0(); -typedef void (omObjFunc2)(struct om_obj_data *); +typedef void(omObjFunc2)(struct om_obj_data *); omObjFunc2 fn_1_F9C; #endif -// -------------------------------------------------------------------------- // \ No newline at end of file +// -------------------------------------------------------------------------- // diff --git a/include/REL/modeseldll.h b/include/REL/modeseldll.h index db80185b..4100ea20 100644 --- a/include/REL/modeseldll.h +++ b/include/REL/modeseldll.h @@ -27,6 +27,8 @@ typedef struct datalist_sprite { GXColor color; } DataListSprite; +// void fn_1_1EC0(s16 view); + s32 fn_1_2490(void); s32 fn_1_37DC(void); @@ -42,4 +44,4 @@ extern s16 lbl_1_data_100; extern DataListModel lbl_1_data_428[]; extern DataListSprite lbl_1_data_93C[]; -#endif \ No newline at end of file +#endif diff --git a/include/REL/mstory2Dll.h b/include/REL/mstory2Dll.h new file mode 100644 index 00000000..7998a490 --- /dev/null +++ b/include/REL/mstory2Dll.h @@ -0,0 +1,114 @@ +#ifndef MSTORY2DLL_H +#define MSTORY2DLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin/types.h" + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss24; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; +} StructFn357C; // Size 0x34 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ char unk10[0x18]; +} StructBss16C; // Size 0x28 + +// main.c +float fn_1_864(float arg0, float arg1, float arg2, float arg3); +float fn_1_88C(float arg0, float arg1, float arg2); +float fn_1_8AC(float arg0, float arg1, float arg2, float arg3); +float fn_1_984(float arg0, float arg1, float arg2, float arg3); +float fn_1_A4C(float arg0, float arg1, float arg2, float arg3); +float fn_1_B08(float arg0, float arg1, float arg2, float arg3); +void fn_1_BC8(void); +void fn_1_BE8(s32 arg0); +void fn_1_C30(void); +s32 fn_1_185C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_1A94(s32 arg0); +void fn_1_1AFC(s32 arg0, s32 arg1); +BOOL fn_1_1BA8(s32 arg0, s32 arg1); +BOOL fn_1_1C64(s32 arg0); +void fn_1_1D18(s32 arg0, s32 arg1); +void fn_1_1D4C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_1DFC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2264(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2750(void (*arg0)(void)); +void fn_1_2828(Process* arg0, void (*arg1)(void)); +void fn_1_2948(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_2D00(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_357C(StructFn357C* arg0, s32 arg1); +void fn_1_42A0(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); +s32 fn_1_3668(s32 arg0); +void fn_1_3754(void); +void fn_1_3854(StructBss24* arg0); +void fn_1_3B04(StructBss24* arg0, float arg1); +void fn_1_4FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); +void fn_1_6004(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); +int fn_1_66CC(int modelId); + +void fn_1_6704(omObjData* arg0); +void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_6DBC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_7064(s32 arg0, s32 arg1); +void fn_1_71DC(s32 arg0); +void fn_1_7244(s16 modelId, char *objName, u32 constAttr, float ofs); +void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag); + +// board_clear.c +void fn_1_7F54(Process* arg0, s32 arg1); + +// board_clear.c +void fn_1_B3E4(Process* arg0, s32 arg1); + +// board_miss.c +void fn_1_EA2C(Process* arg0, s32 arg1); + +// mg_clear.c +void fn_1_1256C(Process* arg0, s32 arg1); + +// mg_miss.c +void fn_1_16060(Process* arg0, s32 arg1); + +// ending.c +void fn_1_188F0(Process* arg0, s32 arg1); + +// ending.c +void fn_1_1B90C(Process* arg0); + +extern s32 lbl_1_bss_88[16]; +extern s32 lbl_1_bss_78[4]; +extern s32 lbl_1_bss_68[]; +extern StructBss24 lbl_1_bss_24; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/REL/mstory3Dll.h b/include/REL/mstory3Dll.h new file mode 100755 index 00000000..8ca3ed77 --- /dev/null +++ b/include/REL/mstory3Dll.h @@ -0,0 +1,99 @@ +#ifndef MSTORY3DLL_H +#define MSTORY3DLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin.h" + +// For future reference: seems to be identical to StructFn352C in mstoryDll. +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ char unk30[4]; +} StructFn352C; // Size 0x34 + +// For future reference: seems to be identical to StructBss4 in mstoryDll. +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss4; // Size 0x44 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ char unk20[8]; +} StructBss1530; // Size 0x28 + +// main.c +float fn_1_5D4(float arg8, float arg9, float argA, float argB); +float fn_1_5FC(float arg8, float arg9, float argA); +float fn_1_61C(float arg0, float arg1, float arg2, float arg3); +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3); +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3); +float fn_1_878(float arg0, float arg1, float arg2, float arg3); +void fn_1_938(void); +void fn_1_958(s32 arg0); +void fn_1_9A0(void); +void fn_1_9C4(void); +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_1834(u32 arg0, s32 arg1); +void fn_1_1A24(s32 arg0); +void fn_1_1AB0(s32 arg0); +void fn_1_1B18(s32 arg0, s32 arg1); +void fn_1_1D44(s32 arg0, s32 arg1); +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2420(s32 arg0, s32 arg1); +void fn_1_2834(void (*arg0)(void)); +void fn_1_290C(Process* arg0, void (*arg1)(void)); +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_35C8(s16 arg0); +void fn_1_3650(StructFn352C* arg0, s32 arg1); +s32 fn_1_36E4(void); +s32 fn_1_373C(void); +s32 fn_1_37C8(s32 arg0); +void fn_1_38B4(void); +void fn_1_39B4(StructBss4* arg0); +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3); +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); + +// result_seq.c +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); + +// result.c +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3); + +extern StructBss4 lbl_1_bss_4; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/REL/mstoryDll.h b/include/REL/mstoryDll.h new file mode 100755 index 00000000..b948d6ff --- /dev/null +++ b/include/REL/mstoryDll.h @@ -0,0 +1,96 @@ +#ifndef MSTORYDLL_H +#define MSTORYDLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin/types.h" + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss4; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; +} StructFn352C; // Size 0x34 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ char unk10[0x18]; +} StructBss19C; // Size 0x28 + +// main.c +float fn_1_828(float arg0, float arg1, float arg2, float arg3); +float fn_1_870(float arg0, float arg1, float arg2, float arg3); +float fn_1_948(float arg0, float arg1, float arg2, float arg3); +float fn_1_ACC(float arg0, float arg1, float arg2, float arg3); +void fn_1_B8C(void); +void fn_1_BAC(s32 arg0); +void fn_1_BF4(void); +s32 fn_1_1834(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_1A64(s32 arg0); +void fn_1_1ACC(s32 arg0, s32 arg1); +BOOL fn_1_1B78(s32 arg0, s32 arg1); +BOOL fn_1_1C34(s32 arg0); +void fn_1_1CE8(s32 arg0, s32 arg1); +void fn_1_1D1C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_1DCC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2224(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2710(void (*arg0)(void)); +void fn_1_27E8(Process* arg0, void (*arg1)(void)); +void fn_1_2908(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_2CB0(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_352C(StructFn352C* arg0, s32 arg1); +s32 fn_1_3618(s32 arg0); +void fn_1_3704(void); +void fn_1_3804(StructBss4* arg0); +void fn_1_3ABC(StructBss4* arg0, float arg1); +void fn_1_51D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_61E8(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_6C1C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_6EB8(s32 arg0, s32 arg1); +void fn_1_7028(s32 arg0); + +// board_clear.c +void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2); + +// board_miss.c +void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2); + +// mg_clear.c +void fn_1_E710(Process* arg0, s32 arg1, s32 arg2); + +// mg_miss.c +void fn_1_11624(Process* arg0, s32 arg1, s32 arg2); + +// save.c +void fn_1_14150(Process* arg0); + +extern s32 lbl_1_bss_68; +extern s32 lbl_1_bss_58[]; +extern StructBss4 lbl_1_bss_4; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/REL/resultdll.h b/include/REL/resultdll.h index afaf5df3..240731b4 100644 --- a/include/REL/resultdll.h +++ b/include/REL/resultdll.h @@ -7,7 +7,7 @@ #include "game/sprite.h" -typedef struct datalist_model { +typedef struct StageModel_s { s32 datanum; u32 attr; s16 type; @@ -16,33 +16,33 @@ typedef struct datalist_model { Vec pos; Vec rot; Vec scale; -} DataListModel; +} StageModel; -typedef struct datalist_sprite { +typedef struct StageSprite_s { u32 datanum; s16 attr; s16 prio; float x; float y; GXColor color; -} DataListSprite; +} StageSprite; -void fn_1_3FD8(void); -void fn_1_40DC(void); -void fn_1_423C(s16 *data); +void ResultBoardDataRead(void); +void ResultCoinAdd(void); +void ResultCoinNumGet(s16 *coinNum); -void fn_1_6490(void); +void ResultBattleMain(void); -void fn_1_8FF8(DataListModel *model_list); -void fn_1_927C(DataListSprite *sprite_list); -void fn_1_93B4(void); +void StageModelCreate(StageModel *model_list); +void StageSpriteCreate(StageSprite *sprite_list); +void StageSpriteKill(void); -extern s16 lbl_1_bss_1A9C[32]; -extern s16 lbl_1_bss_1A5C[32]; -extern s16 lbl_1_bss_1A1A[33]; +extern s16 stageMdlId[32]; +extern s16 stageMotId[32]; +extern s16 stageSprId[33]; extern s16 lbl_1_bss_1A18; -extern s32 lbl_1_bss_178; -extern s32 lbl_1_bss_174; -extern s16 lbl_1_bss_172; +extern s32 resultReadEndF; +extern s32 resultFastF; +extern s16 resultBonusPlayer; #endif \ No newline at end of file diff --git a/include/REL/w01Dll.h b/include/REL/w01Dll.h index f3e1e5d6..c8c44f3b 100755 --- a/include/REL/w01Dll.h +++ b/include/REL/w01Dll.h @@ -4,24 +4,56 @@ #include "dolphin/types.h" enum { + MAPOBJ_COASTER, + MAPOBJ_COASTER_RAIL, + MAPOBJ_HOST1, + MAPOBJ_HOST2, + MAPOBJ_HOST3, + MAPOBJ_HOST4, + MAPOBJ_SPACEAMIDA, + MAPOBJ_SPACEAMIDA_MAP1, + MAPOBJ_SPACEAMIDA_MAP2, + MAPOBJ_SPACEAMIDA_MAP3, + MAPOBJ_SPACEAMIDA_ROCKET1, + MAPOBJ_SPACEAMIDA_ROCKET2, + MAPOBJ_SPACEAMIDA_ROCKET3, + MAPOBJ_SPACEAMIDA_LIGHTEFF, + MAPOBJ_SPACEAMIDA_LAMP1, + MAPOBJ_SPACEAMIDA_LAMP2, + MAPOBJ_ROUNDITEM, + MAPOBJ_ROUNDITEM_UMA, + MAPOBJ_ROUNDITEM_BORDER, + MAPOBJ_ROUNDITEM_ITEM, + MAPOBJ_ROUNDITEM_ITEM_LIGHT, + MAPOBJ_ROUNDITEM_ITEM_UP, + MAPOBJ_ROUNDITEM_ITEM_DENSYOKU, + MAPOBJ_CUPR_DISH, + MAPOBJ_CUPR1, + MAPOBJ_CUPR2, + MAPOBJ_CUPR3, + MAPOBJ_CUPR_ARROW, + MAPOBJ_CUPL_DISH, + MAPOBJ_CUPL1, + MAPOBJ_CUPL2, + MAPOBJ_CUPL3, + MAPOBJ_CUPL_ARROW, MAPOBJ_MAX = 33 }; typedef struct { /* 0x00 */ struct { - u8 unk00_field0 : 1; + u8 hostSide : 1; }; - /* 0x01 */ s8 unk01[2]; -} UnkBoardDataStruct; // Size unknown + /* 0x01 */ s8 cupDir[2]; +} W01BoardWork; -extern void fn_1_9D00(s32 arg0); -extern void fn_1_9DD8(void); +extern void SpaceAmidaExec(void); -extern void fn_1_D740(s16 *arg0); -extern void fn_1_DD84(void); -extern void fn_1_DE94(void); +extern void RoundItemInit(s16 *itemTbl); +extern void RoundItemKill(void); +extern void RoundItemEventStart(void); -extern s16 lbl_1_bss_6C4[MAPOBJ_MAX]; -extern UnkBoardDataStruct *lbl_1_bss_0; +extern s16 mapObjMdlId[MAPOBJ_MAX]; +extern W01BoardWork *boardWork; #endif diff --git a/include/REL/w02Dll.h b/include/REL/w02Dll.h index b62d4a44..1a59411f 100644 --- a/include/REL/w02Dll.h +++ b/include/REL/w02Dll.h @@ -1,50 +1,48 @@ #ifndef W02DLL #define W02DLL -#include "math.h" #include "dolphin.h" -#include "game/process.h" -#include "game/gamework_data.h" -#include "game/board/model.h" -#include "game/board/space.h" #include "game/board/main.h" -#include "game/board/player.h" -#include "game/board/window.h" #include "game/board/map_object.h" - +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/window.h" +#include "game/gamework_data.h" +#include "game/process.h" +#include "math.h" /* STRUCTS*/ typedef struct m02_dice { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ s32 unk04; - /* 0x08 */ s32 *unk08; - /* 0x0C */ Vec unk0C; - /* 0x18 */ s16 unk18; - /* 0x1A */ s16 unk1A; - /* 0x1C */ u16 unk1C[3]; - /* 0x22 */ s16 unk22; - /* 0x24 */ f32 unk24; - /* 0x28 */ s16 unk28; - /* 0x2A */ u8 unk2A[0x2]; - /* 0x2C */ Process *unk2C; - /* 0x30 */ s16 unk30[3]; - /* 0x36 */ s16 unk36[3]; - /* 0x3C */ omObjData *unk3C[3]; - /* 0x48 */ s16 unk48[3]; - /* 0x4E */ u8 unk4E[0x2]; - /* 0x50 */ omObjData *unk50[3]; - /* 0x5C */ u8 unk5C[0x08]; - /* 0x64 */ Vec unk64[2]; - /* 0x7C */ Vec unk7C; - /* 0x88 */ s32 unk88[3]; - /* 0x94 */ s16 unk94; - /* 0x96 */ s16 unk96; - /* 0x98 */ f32 unk98; - /* 0x9C */ s16 unk9C; + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 *unk08; + /* 0x0C */ Vec unk0C; + /* 0x18 */ s16 unk18; + /* 0x1A */ s16 unk1A; + /* 0x1C */ u16 unk1C[3]; + /* 0x22 */ s16 unk22; + /* 0x24 */ float unk24; + /* 0x28 */ s16 unk28; + /* 0x2A */ u8 unk2A[0x2]; + /* 0x2C */ Process *unk2C; + /* 0x30 */ s16 unk30[3]; + /* 0x36 */ s16 unk36[3]; + /* 0x3C */ omObjData *unk3C[3]; + /* 0x48 */ s16 unk48[3]; + /* 0x4E */ u8 unk4E[0x2]; + /* 0x50 */ omObjData *unk50[3]; + /* 0x5C */ u8 unk5C[0x08]; + /* 0x64 */ Vec unk64[2]; + /* 0x7C */ Vec unk7C; + /* 0x88 */ s32 unk88[3]; + /* 0x94 */ s16 unk94; + /* 0x96 */ s16 unk96; + /* 0x98 */ float unk98; + /* 0x9C */ s16 unk9C; } m02GenDice; - extern s16 lbl_1_bss_2E; extern s16 lbl_1_bss_2C; extern Vec lbl_1_bss_20; @@ -58,12 +56,12 @@ extern void fn_1_72C(); extern s32 fn_1_774(); extern s32 fn_1_800(); extern void fn_1_92C(); -extern s32 fn_1_1128(); +extern s32 fn_1_1128(); extern void fn_1_121C(u32); -void fn_1_1254(m02GenDice* arg0); -void fn_1_1518(m02GenDice* arg0); -s32 fn_1_17F4(m02GenDice* arg0); +void fn_1_1254(m02GenDice *arg0); +void fn_1_1518(m02GenDice *arg0); +s32 fn_1_17F4(m02GenDice *arg0); // roulette.c extern void fn_1_D3AC(); @@ -75,15 +73,15 @@ extern void fn_1_3BF4(); extern void fn_1_39F4(); extern void fn_1_5CF8(); extern void fn_1_5D28(); -extern void fn_1_5F90(); +extern void fn_1_5F90(); extern void fn_1_79BC(s16 *arg0); extern void fn_1_8244(u16 arg0); extern s32 fn_1_9250(); extern void fn_1_93C8(u32 arg0); extern void fn_1_BC1C(); -extern s32 fn_1_BE88(); -extern s32 fn_1_C108(s32); -extern void fn_1_CD04(s32); +extern s32 fn_1_BE88(); +extern s32 fn_1_C108(s32); +extern void fn_1_CD04(s32); void fn_1_E41C(void); -#endif //W02DLL \ No newline at end of file +#endif // W02DLL diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index 022b6894..a7163c63 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -8,8 +8,6 @@ #include "game/window.h" #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - enum { MAPOBJ_MAX = 12 }; diff --git a/include/REL/w05Dll.h b/include/REL/w05Dll.h index be7b49db..2b5599fb 100644 --- a/include/REL/w05Dll.h +++ b/include/REL/w05Dll.h @@ -51,7 +51,7 @@ void fn_1_D84(void); void fn_1_E04(void); void fn_1_E40(void); s32 fn_1_1114(void); -s32 fn_1_1208(s16, f32, f32); +s32 fn_1_1208(s16, float, float); void fn_1_13D4(void); void fn_1_14D0(void); @@ -70,64 +70,64 @@ void fn_1_3E8C(void); void fn_1_3F74(void); void fn_1_3FD8(void); void fn_1_4034(s32); -void fn_1_4EB4(s32, s32, Vec*); +void fn_1_4EB4(s32, s32, Vec *); void fn_1_5648(void); -void fn_1_5794(s32, s32, Vec*); +void fn_1_5794(s32, s32, Vec *); void fn_1_6670(void); -omObjData* fn_1_66C0(u32, Vec*); -void fn_1_6914(omObjData*); -void fn_1_62AC(s32, Vec*); +omObjData *fn_1_66C0(u32, Vec *); +void fn_1_6914(omObjData *); +void fn_1_62AC(s32, Vec *); void fn_1_64BC(void); void fn_1_65E8(void); void fn_1_6670(void); -omObjData* fn_1_66C0(u32, Vec*); -void fn_1_6914(omObjData*); +omObjData *fn_1_66C0(u32, Vec *); +void fn_1_6914(omObjData *); void fn_1_6B28(void); void fn_1_6B7C(void); -void fn_1_7284(omObjData*); +void fn_1_7284(omObjData *); void fn_1_72E4(void); void fn_1_7314(void); void fn_1_73C0(void); void fn_1_74D0(s16[3]); void fn_1_77B0(void); -void fn_1_78A0(omObjData*); -void fn_1_7928(omObjData*); +void fn_1_78A0(omObjData *); +void fn_1_7928(omObjData *); void fn_1_799C(void); -void fn_1_7E4C(omObjData*); -void fn_1_7E94(dataCopy*); -void fn_1_7F04(omObjData*); -void fn_1_80D8(omObjData*); -void fn_1_8410(omObjData*); -void fn_1_850C(omObjData*); -void fn_1_8668(omObjData*); -void fn_1_8798(dataCopy*, s32*, s32*, s32*); -void* fn_1_8884(void); +void fn_1_7E4C(omObjData *); +void fn_1_7E94(dataCopy *); +void fn_1_7F04(omObjData *); +void fn_1_80D8(omObjData *); +void fn_1_8410(omObjData *); +void fn_1_850C(omObjData *); +void fn_1_8668(omObjData *); +void fn_1_8798(dataCopy *, s32 *, s32 *, s32 *); +void *fn_1_8884(void); void fn_1_88B8(void); void fn_1_896C(void); void fn_1_91DC(void); -void fn_1_9268(ModelData*, ParticleData*, f32[3][4]); +void fn_1_9268(ModelData *, ParticleData *, float[3][4]); void fn_1_9680(void); void fn_1_96B4(void); void fn_1_9760(void); void fn_1_97AC(void); -void fn_1_9A68(omObjData*); +void fn_1_9A68(omObjData *); void fn_1_9AC0(void); void fn_1_9AF0(void); void fn_1_9B74(void); -void fn_1_9C24(omObjData*); -void fn_1_9C98(dataCopy2*); -void fn_1_9D0C(omObjData*); -void fn_1_9F24(omObjData*); -void fn_1_A224(omObjData*); -void fn_1_A4F8(omObjData*); -void fn_1_A5B0(omObjData*); -void fn_1_A990(omObjData*); +void fn_1_9C24(omObjData *); +void fn_1_9C98(dataCopy2 *); +void fn_1_9D0C(omObjData *); +void fn_1_9F24(omObjData *); +void fn_1_A224(omObjData *); +void fn_1_A4F8(omObjData *); +void fn_1_A5B0(omObjData *); +void fn_1_A990(omObjData *); void fn_1_AB24(void); -void fn_1_B214(omObjData*); -void fn_1_B2B0(omObjData*, u16*, s16*); -void fn_1_B3C4(omObjData*); +void fn_1_B214(omObjData *); +void fn_1_B2B0(omObjData *, u16 *, s16 *); +void fn_1_B3C4(omObjData *); // data extern BoardMapObject lbl_1_data_0[7]; @@ -164,7 +164,7 @@ extern char *lbl_1_data_330[3]; extern s32 lbl_1_data_350[14]; extern s32 lbl_1_data_350[14]; extern s16 lbl_1_data_388[92]; -extern f32 lbl_1_data_440[3]; +extern float lbl_1_data_440[3]; extern char *lbl_1_data_464[3]; extern s32 lbl_1_data_470[3]; @@ -179,9 +179,9 @@ extern s16 lbl_1_bss_100; extern s16 lbl_1_bss_FE; extern s16 lbl_1_bss_D6[20]; extern s16 lbl_1_bss_D4; -extern omObjData* lbl_1_bss_D0; -extern omObjData* lbl_1_bss_CC; -extern omObjData* lbl_1_bss_C8; +extern omObjData *lbl_1_bss_D0; +extern omObjData *lbl_1_bss_CC; +extern omObjData *lbl_1_bss_C8; extern s16 lbl_1_bss_C6; extern s16 lbl_1_bss_C4; extern s16 lbl_1_bss_C2; @@ -196,13 +196,13 @@ extern s16 lbl_1_bss_A4[3]; extern s16 lbl_1_bss_A2; extern s16 lbl_1_bss_9E[2]; extern s16 lbl_1_bss_9C; -extern Process* lbl_1_bss_98; -extern omObjData* lbl_1_bss_94; -extern omObjData* lbl_1_bss_90; -extern omObjData* lbl_1_bss_8C; +extern Process *lbl_1_bss_98; +extern omObjData *lbl_1_bss_94; +extern omObjData *lbl_1_bss_90; +extern omObjData *lbl_1_bss_8C; extern s32 lbl_1_bss_88; extern s32 lbl_1_bss_7C[3]; -extern AnimData* lbl_1_bss_78; +extern AnimData *lbl_1_bss_78; extern s16 lbl_1_bss_72[2]; extern s16 lbl_1_bss_6C[3]; @@ -221,9 +221,9 @@ extern s16 lbl_1_bss_30[4]; extern s16 lbl_1_bss_28; extern s16 lbl_1_bss_14[7]; -extern s32* lbl_1_bss_10; +extern s32 *lbl_1_bss_10; extern s16 lbl_1_bss_8[4]; -extern Process* lbl_1_bss_4; -extern bitcopy* lbl_1_bss_0; +extern Process *lbl_1_bss_4; +extern bitcopy *lbl_1_bss_0; #endif diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index 93342461..a1446748 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -9,7 +9,7 @@ enum { MAPOBJ_MELON = 0, - MAPOBJ_MAX, + MAPOBJ_MAX }; typedef struct w10_board_work { diff --git a/include/Runtime.PPCEABI.H/__va_arg.h b/include/Runtime.PPCEABI.H/__va_arg.h new file mode 100644 index 00000000..22975640 --- /dev/null +++ b/include/Runtime.PPCEABI.H/__va_arg.h @@ -0,0 +1,40 @@ +#ifndef __VA_ARG_H +#define __VA_ARG_H + +#include "dolphin/types.h" + +typedef struct __va_list_struct { + char gpr; + char fpr; + char reserved[2]; + char* input_arg_area; + char* reg_save_area; +} _va_list_struct; + +typedef _va_list_struct __va_list[1]; + +#ifdef __cplusplus +extern "C" void* __va_arg(_va_list_struct*, int); +#else +void* __va_arg(_va_list_struct*, int); +#endif + +#ifndef __MWERKS__ +#define __builtin_va_info(...) +#define _var_arg_typeof(...) +#endif + +// from defined-string in mwcceppc.exe: +// __builtin_va_info: initialize the __va_list_struct +// _var_arg_typeof: convert type to integer for __va_arg +#define __va_start(list, fmt) __builtin_va_info(&list) +#define __va_arg(list, type) (*((type*)__va_arg(list, _var_arg_typeof(type)))) +#define va_start __va_start +#define va_arg __va_arg +#define va_end __va_end +#define va_list __va_list +#define __va_end(list) ((void)0) + +#define __va_copy(a, b) (*(a) = *(b)) + +#endif /* __VA_ARG_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h new file mode 100644 index 00000000..0861cde2 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h @@ -0,0 +1,35 @@ +#ifndef METROTRK_PORTABLE_DISPATCH_H +#define METROTRK_PORTABLE_DISPATCH_H + +#include "dolphin/types.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define TRK_DISPATCH_CMD_CONNECT 1 /* Connect to the console */ +#define TRK_DISPATCH_CMD_DISCONNECT 2 /* Disconnect from the console */ +#define TRK_DISPATCH_CMD_RESET 3 /* Reset the debugger */ +#define TRK_DISPATCH_CMD_GETVERSION 4 /* Get debugger version */ +#define TRK_DISPATCH_CMD_GETSUPPORTMASK 5 /* Get Support Mask */ +#define TRK_DISPATCH_CMD_OVERRIDE 7 /* Override? */ +#define TRK_DISPATCH_CMD_READMEM 16 /* Reading from memory */ +#define TRK_DISPATCH_CMD_WRITEMEM 17 /* Writing to memory */ +#define TRK_DISPATCH_CMD_READREGS 18 /* Read a register value */ +#define TRK_DISPATCH_CMD_WRITEREGS 19 /* Set a register */ +#define TRK_DISPATCH_CMD_SETOPTION 23 /* Set an option? */ +#define TRK_DISPATCH_CMD_CONTINUE 24 /* Continue debugging */ +#define TRK_DISPATCH_CMD_STEP 25 /* Step through an instruction */ +#define TRK_DISPATCH_CMD_STOP 26 /* Stop the debugger */ + +typedef struct TRKBuffer TRKBuffer; + +DSError TRKInitializeDispatcher(); +BOOL TRKDispatchMessage(TRKBuffer* buffer); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_DISPATCH_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h new file mode 100644 index 00000000..9ff3a2da --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h @@ -0,0 +1,16 @@ +#ifndef METROTRK_PORTABLE_MAIN_TRK_H +#define METROTRK_PORTABLE_MAIN_TRK_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRK_main(void); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MAIN_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h new file mode 100644 index 00000000..606a4437 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h @@ -0,0 +1,14 @@ +#ifndef METROTRK_PORTABLE_MAINLOOP_H +#define METROTRK_PORTABLE_MAINLOOP_H + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKNubMainLoop(void); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MAINLOOP_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h new file mode 100644 index 00000000..aeef9c7d --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h @@ -0,0 +1,17 @@ +#ifndef METROTRK_PORTABLE_MEM_TRK_H +#define METROTRK_PORTABLE_MEM_TRK_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void* TRK_memset(void* dst, int val, size_t n); +void* TRK_memcpy(void* dst, const void* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MEM_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h new file mode 100644 index 00000000..2dc2dff8 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h @@ -0,0 +1,24 @@ +#ifndef METROTRK_PORTABLE_MSG_H +#define METROTRK_PORTABLE_MSG_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "dolphin/types.h" + +typedef struct _TRK_Msg { + u8 _00[8]; + u32 m_msgLength; + u32 _0C; + u8 m_msg[4]; // TODO: unknown array length +} TRK_Msg; + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKMessageSend(TRK_Msg* msg); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MSG_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h new file mode 100644 index 00000000..f16fe261 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h @@ -0,0 +1,50 @@ +#ifndef METROTRK_PORTABLE_MSGBUF_H +#define METROTRK_PORTABLE_MSGBUF_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeMessageBuffers(void); + +DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos); +void* TRKGetBuffer(int); +void TRKResetBuffer(TRKBuffer* msg, u8 keepData); +void* TRKGetBuffer(int idx); +void TRKReleaseBuffer(int idx); +DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg); + +DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length); +DSError TRKAppendBuffer1_ui8(TRKBuffer* buffer, const u8 data); +inline DSError TRKAppendBuffer1_ui8(TRKBuffer* buffer, const u8 data) +{ + if (buffer->position >= TRKMSGBUF_SIZE) { + return DS_MessageBufferOverflow; + } + + buffer->data[buffer->position++] = data; + buffer->length++; + return DS_NoError; +} +DSError TRKAppendBuffer1_ui16(TRKBuffer* buffer, const u16 data); +DSError TRKAppendBuffer1_ui32(TRKBuffer* buffer, const u32 data); +DSError TRKAppendBuffer1_ui64(TRKBuffer* buffer, const u64 data); +DSError TRKAppendBuffer_ui8(TRKBuffer* buffer, const u8* data, int count); +DSError TRKAppendBuffer_ui32(TRKBuffer* buffer, const u32* data, int count); + +DSError TRKReadBuffer1_ui8(TRKBuffer* buffer, u8* data); +DSError TRKReadBuffer1_ui16(TRKBuffer* buffer, u16* data); +DSError TRKReadBuffer1_ui32(TRKBuffer* buffer, u32* data); +DSError TRKReadBuffer1_ui64(TRKBuffer* buffer, u64* data); +DSError TRKReadBuffer_ui8(TRKBuffer* buffer, u8* data, int count); +DSError TRKReadBuffer_ui32(TRKBuffer* buffer, u32* data, int count); +DSError TRKReadBuffer(TRKBuffer* msg, void* data, size_t length); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MSGBUF_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h new file mode 100644 index 00000000..aa8abff5 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h @@ -0,0 +1,31 @@ +#ifndef METROTRK_PORTABLE_MSGHNDLR_H +#define METROTRK_PORTABLE_MSGHNDLR_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +void SetTRKConnected(BOOL); +BOOL GetTRKConnected(void); +DSError TRKDoUnsupported(TRKBuffer*); +DSError TRKDoSetOption(TRKBuffer*); +DSError TRKDoStop(TRKBuffer*); +DSError TRKDoStep(TRKBuffer*); +DSError TRKDoContinue(TRKBuffer*); +DSError TRKDoWriteRegisters(TRKBuffer*); +DSError TRKDoReadRegisters(TRKBuffer*); +DSError TRKDoFlushCache(TRKBuffer*); +DSError TRKDoWriteMemory(TRKBuffer*); +DSError TRKDoReadMemory(TRKBuffer*); +DSError TRKDoSupportMask(TRKBuffer*); +DSError TRKDoVersions(TRKBuffer*); +DSError TRKDoSupportMask(TRKBuffer*); +DSError TRKDoCPUType(TRKBuffer*); +DSError TRKDoOverride(TRKBuffer*); +DSError TRKDoReset(TRKBuffer*); +DSError TRKDoDisconnect(TRKBuffer*); +DSError TRKDoConnect(TRKBuffer*); +DSError TRKStandardACK(TRKBuffer* buffer, MessageCommandID commandID, + DSReplyError replyError); + +void OutputData(void* data, int length); + +#endif /* METROTRK_PORTABLE_MSGHNDLR_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h new file mode 100644 index 00000000..7297cf18 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h @@ -0,0 +1,10 @@ +#ifndef METROTRK_PORTABLE_MUTEX_TRK_H +#define METROTRK_PORTABLE_MUTEX_TRK_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +DSError TRKInitializeMutex(void*); +DSError TRKAcquireMutex(void*); +DSError TRKReleaseMutex(void*); + +#endif /* METROTRK_PORTABLE_MUTEX_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h new file mode 100644 index 00000000..459830f9 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h @@ -0,0 +1,16 @@ +#ifndef METROTRK_PORTABLE_NOTIFY_H +#define METROTRK_PORTABLE_NOTIFY_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKDoNotifyStopped(MessageCommandID cmd); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NOTIFY_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h new file mode 100644 index 00000000..da5a012b --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h @@ -0,0 +1,37 @@ +#ifndef METROTRK_PORTABLE_NUBEVENT_H +#define METROTRK_PORTABLE_NUBEVENT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef u32 NubEventID; + +typedef struct TRKEvent { + NubEventType eventType; + NubEventID eventID; + MessageBufferID msgBufID; +} TRKEvent; + +typedef struct TRKEventQueue { + int _00; + int count; + int next; + TRKEvent events[2]; + NubEventID eventID; +} TRKEventQueue; +extern TRKEventQueue gTRKEventQueue; + +BOOL TRKGetNextEvent(TRKEvent* event); +void TRKDestructEvent(TRKEvent*); +void TRKConstructEvent(TRKEvent*, NubEventType); +DSError TRKPostEvent(TRKEvent*); +DSError TRKInitializeEventQueue(); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NUBEVENT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h new file mode 100644 index 00000000..9f1d4174 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h @@ -0,0 +1,21 @@ +#ifndef METROTRK_PORTABLE_NUBINIT_H +#define METROTRK_PORTABLE_NUBINIT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKNubWelcome(void); +void TRKNubMainLoop(void); +DSError TRKTerminateNub(void); +DSError TRKInitializeNub(void); + +extern BOOL gTRKBigEndian; + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NUBINIT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h new file mode 100644 index 00000000..40636776 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h @@ -0,0 +1,23 @@ +#ifndef METROTRK_PORTABLE_SERPOLL_H +#define METROTRK_PORTABLE_SERPOLL_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeSerialHandler(void); +DSError TRKTerminateSerialHandler(void); + +void TRKGetInput(void); +MessageBufferID TRKTestForPacket(); +void TRKProcessInput(int bufferIdx); + +extern void* gTRKInputPendingPtr; + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_SERPOLL_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h new file mode 100644 index 00000000..f2b2913d --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h @@ -0,0 +1,29 @@ +#ifndef METROTRK_PORTABLE_SUPPORT_H +#define METROTRK_PORTABLE_SUPPORT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKSuppAccessFile(u32 file_handle, u8* data, size_t* count, + DSIOResult* io_result, BOOL need_reply, BOOL read); + +DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, + int p3); + +DSError HandleOpenFileSupportRequest(const char* path, u8 replyError, + u32* param_3, u8* ioResult); + +DSError HandleCloseFileSupportRequest(int replyError, u8* ioResult); + +DSError HandlePositionFileSupportRequest(u32 replyErr, u32* param_2, + u8 param_3, u8* ioResult); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_SUPPORT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h new file mode 100644 index 00000000..fa3a575a --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h @@ -0,0 +1,24 @@ +#ifndef OS_DOLPHIN_DOLPHIN_TRK_H +#define OS_DOLPHIN_DOLPHIN_TRK_H + +#include "dolphin/types.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeTarget(); + +void EnableMetroTRKInterrupts(); +u32 TRKTargetTranslate(u32 param_0); +void TRK__read_aram(register int c, register u32 p2, void* p3); +void TRK__write_aram(register int c, register u32 p2, void* p3); + +void __TRK_copy_vectors(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_DOLPHIN_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h new file mode 100644 index 00000000..550454cc --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h @@ -0,0 +1,45 @@ +#ifndef OS_DOLPHIN_DOLPHIN_TRK_GLUE_H +#define OS_DOLPHIN_DOLPHIN_TRK_GLUE_H + +#include "dolphin/os.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*DBCommFunc)(void); +typedef u32 (*DBPollFunc)(void); +typedef void (*DBCommInitFunc)(volatile u8**, __OSInterruptHandler); +typedef int (*DBCommReadFunc)(void*, size_t); +typedef int (*DBCommWriteFunc)(const void*, size_t); + +typedef struct DBCommTable { + DBCommInitFunc initialize_func; + DBCommFunc init_interrupts_func; + DBPollFunc peek_func; + DBCommReadFunc read_func; + DBCommWriteFunc write_func; + DBCommFunc open_func; + DBCommFunc close_func; +} DBCommTable; + +DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, + volatile u8** param_3); + +void UnreserveEXI2Port(void); +void ReserveEXI2Port(void); +int TRKPollUART(void); +UARTError TRKReadUARTN(void* bytes, u32 length); +UARTError TRKWriteUARTN(const void* bytes, u32 length); +void TRKLoadContext(OSContext* ctx, u32 r4); +int InitMetroTRKCommTable(int hwId); +void EnableEXI2Interrupts(void); +void TRK_board_display(char* str); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_DOLPHIN_TRK_GLUE_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h new file mode 100644 index 00000000..1d1c4417 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h @@ -0,0 +1,16 @@ +#ifndef OS_DOLPHIN_TARGCONT_H +#define OS_DOLPHIN_TARGCONT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKTargetContinue(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_TARGCONT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h new file mode 100644 index 00000000..d01cc0b1 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h @@ -0,0 +1,14 @@ +#ifndef OS_DOLPHIN_USR_PUT_H +#define OS_DOLPHIN_USR_PUT_H + +#ifdef __cplusplus +extern "C" { +#endif + +void usr_put_initialize(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_USR_PUT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h new file mode 100644 index 00000000..a512aacf --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h @@ -0,0 +1,16 @@ +#ifndef PPC_GENERIC_FLUSH_CACHE_H +#define PPC_GENERIC_FLUSH_CACHE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void TRK_flush_cache(void* param_1, int param_2); + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_FLUSH_CACHE_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h new file mode 100644 index 00000000..e29725fb --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h @@ -0,0 +1,16 @@ +#ifndef PPC_GENERIC_MPC_7XX_603E_H +#define PPC_GENERIC_MPC_7XX_603E_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +u8 TRKTargetCPUMinorType(void); + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_MPC_7XX_603E_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h new file mode 100644 index 00000000..e7ce7015 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h @@ -0,0 +1,190 @@ +#ifndef PPC_GENERIC_TARGIMPL_H +#define PPC_GENERIC_TARGIMPL_H + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKTargetSetInputPendingPtr(void* ptr); + +void TRKSwapAndGo(); +void TRKTargetSetStopped(unsigned int); +DSError TRKTargetInterrupt(TRKEvent*); +DSError TRKTargetSupportRequest(); +void TRKDestructEvent(TRKEvent*); +DSError TRKTargetFlushCache(u8, void* start, void* end); +BOOL TRKTargetStopped(void); +DSError TRKTargetAddStopInfo(TRKBuffer* b); +DSError TRKTargetAddExceptionInfo(TRKBuffer* b); +DSError TRKTargetAccessARAM(u32 p1, u32 p2, u32* p3, BOOL read); +DSError TRKTargetAccessMemory(void* data, u32 start, size_t* length, + MemoryAccessOptions accessOptions, BOOL read); +DSError TRKTargetAccessDefault(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read); +DSError TRKTargetAccessFP(u32 firstRegister, u32 lastRegister, TRKBuffer* b, + size_t* registersLengthPtr, BOOL read); +DSError TRKTargetAccessExtended1(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read); +DSError TRKTargetAccessExtended2(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registerStorageSize, + BOOL read); +u32 TRKTargetGetPC(); +DSError TRKTargetSingleStep(u32 count, BOOL stepOver); +DSError TRKTargetStepOutOfRange(u32 rangeStart, u32 rangeEnd, BOOL stepOver); +u32 TRKTargetStop(); +void TRKInterruptHandler(); +void TRKPostInterruptEvent(void); + +typedef struct DSVersions { + u8 kernelMajor; + u8 kernelMinor; + u8 protocolMajor; + u8 protocolMinor; +} DSVersions; + +DSError TRKTargetVersions(DSVersions* versions); +DSError TRKTargetSupportMask(u8 mask[32]); + +typedef struct DSCPUType { + u8 cpuMajor; + u8 cpuMinor; + u8 bigEndian; + u8 defaultTypeSize; + u8 fpTypeSize; + u8 extended1TypeSize; + u8 extended2TypeSize; +} DSCPUType; +DSError TRKTargetCPUType(DSCPUType* cpuType); + +typedef struct Default_PPC { + u32 GPR[32]; + u32 PC; + u32 LR; + u32 CR; + u32 CTR; + u32 XER; +} Default_PPC; + +typedef struct Float_PPC { + u64 FPR[32]; + u64 FPSCR; + u64 FPECR; +} Float_PPC; + +typedef struct Extended1_PPC_6xx_7xx { + u32 SR[16]; + u32 TBL; + u32 TBU; + u32 HID0; + u32 HID1; + u32 MSR; + u32 PVR; + u32 IBAT0U; + u32 IBAT0L; + u32 IBAT1U; + u32 IBAT1L; + u32 IBAT2U; + u32 IBAT2L; + u32 IBAT3U; + u32 IBAT3L; + u32 DBAT0U; + u32 DBAT0L; + u32 DBAT1U; + u32 DBAT1L; + u32 DBAT2U; + u32 DBAT2L; + u32 DBAT3U; + u32 DBAT3L; + u32 DMISS; + u32 DCMP; + u32 HASH1; + u32 HASH2; + u32 IMISS; + u32 ICMP; + u32 RPA; + u32 SDR1; + u32 DAR; + u32 DSISR; + u32 SPRG0; + u32 SPRG1; + u32 SPRG2; + u32 SPRG3; + u32 DEC; + u32 IABR; + u32 EAR; + u32 DABR; + u32 PMC1; + u32 PMC2; + u32 PMC3; + u32 PMC4; + u32 SIA; + u32 MMCR0; + u32 MMCR1; + u32 THRM1; + u32 THRM2; + u32 THRM3; + u32 ICTC; + u32 L2CR; + u32 UMMCR2; + u32 UBAMR; + u32 UMMCR0; + u32 UPMC1; + u32 UPMC2; + u32 USIA; + u32 UMMCR1; + u32 UPMC3; + u32 UPMC4; + u32 USDA; + u32 MMCR2; + u32 BAMR; + u32 SDA; + u32 MSSCR0; + u32 MSSCR1; + u32 PIR; + u32 exceptionID; + u32 GQR[8]; + u32 HID_G; + u32 WPAR; + u32 DMA_U; + u32 DMA_L; +} Extended1_PPC_6xx_7xx; + +typedef struct Extended2_PPC_6xx_7xx { + u32 PSR[32][2]; +} Extended2_PPC_6xx_7xx; + +typedef struct ProcessorState_PPC_6xx_7xx { + Default_PPC Default; + Float_PPC Float; + Extended1_PPC_6xx_7xx Extended1; + Extended2_PPC_6xx_7xx Extended2; + u32 transport_handler_saved_ra; +} ProcessorState_PPC_6xx_7xx; + +typedef ProcessorState_PPC_6xx_7xx ProcessorState_PPC; +extern ProcessorState_PPC gTRKCPUState; + +typedef struct TRKState { + u32 gpr[32]; // _00 + u32 lr; // _80 + u32 ctr; // _84 + u32 xer; // _88 + u32 msr; // _8C + u32 dar; // _90 + u32 dsisr; // _94 + BOOL isStopped; // _98 + BOOL inputActivated; // _9C + void* inputPendingPtr; // _A0 +} TRKState; +extern TRKState gTRKState; + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_TARGIMPL_H */ diff --git a/include/amcstubs/AmcExi2Stubs.h b/include/amcstubs/AmcExi2Stubs.h new file mode 100644 index 00000000..48298c34 --- /dev/null +++ b/include/amcstubs/AmcExi2Stubs.h @@ -0,0 +1,27 @@ +#ifndef AMCEXI2STUBS_H +#define AMCEXI2STUBS_H + +#include "dolphin/os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef __OSInterruptHandler AmcEXICallback; + +typedef enum { AMC_EXI_NO_ERROR = 0, AMC_EXI_UNSELECTED } AmcExiError; + +void EXI2_Init(volatile u8**, AmcEXICallback); +void EXI2_EnableInterrupts(void); +u32 EXI2_Poll(void); +int EXI2_ReadN(void*, u32); +int EXI2_WriteN(const void*, u32); +void EXI2_Reserve(void); +void EXI2_Unreserve(void); +BOOL AMC_IsStub(void); + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/include/data_num/title.h b/include/data_num/title.h index 2d0ce603..13f41c0c 100644 --- a/include/data_num/title.h +++ b/include/data_num/title.h @@ -2,6 +2,9 @@ #define DATANUM_TITLE_H #include "datadir_enum.h" +#include "version.h" + +#if VERSION_NTSC enum { TITLE_NINTENDO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0), @@ -17,7 +20,43 @@ enum { TITLE_COPYRIGHT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 10), TITLE_CHAR_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 11), TITLE_CUBE_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 12), - TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13), + TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13) }; -#endif \ No newline at end of file +#else + +enum { + TITLE_HUDSON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0), + TITLE_PROGRESSIVE_CHOOSE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 1), + TITLE_PROGRESSIVE_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 2), + TITLE_PROGRESSIVE_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 3), + TITLE_PROGRESSIVE_CURSOR_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 4), + TITLE_PROGRESSIVE_CURSOR_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 5), + TITLE_BG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 6), + TITLE_LOGO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 7), + TITLE_COPYRIGHT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 8), + TITLE_CHAR_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 9), + TITLE_CUBE_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 10), + TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 11), + TITLE_LANGUAGEBG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 12), + TITLE_FLAG_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13), + TITLE_FLAG_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 14), + TITLE_FLAG_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 15), + TITLE_FLAG_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 16), + TITLE_FLAG_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 17), + TITLE_FLAG_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 18), + TITLE_PRESS_START_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 19), + TITLE_PRESS_START_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 20), + TITLE_PRESS_START_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 21), + TITLE_PRESS_START_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 22), + TITLE_PRESS_START_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 23), + TITLE_LANGUAGE_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 24), + TITLE_LANGUAGE_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 25), + TITLE_LANGUAGE_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 26), + TITLE_LANGUAGE_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 27), + TITLE_LANGUAGE_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 28) +}; + +#endif + +#endif diff --git a/include/data_num/win.h b/include/data_num/win.h index 3a38070f..07e510fb 100644 --- a/include/data_num/win.h +++ b/include/data_num/win.h @@ -36,7 +36,7 @@ enum { WIN_CARD_BOX2_ICON_ANM = DATA_MAKE_NUM(DATADIR_WIN, 29), WIN_CARD_BOX3_ICON_ANM = DATA_MAKE_NUM(DATADIR_WIN, 30), WIN_CARD_BANNER_ANM = DATA_MAKE_NUM(DATADIR_WIN, 31), - WIN_SAVE_BG_ANM = DATA_MAKE_NUM(DATADIR_WIN, 32), + WIN_SAVE_BG_ANM = DATA_MAKE_NUM(DATADIR_WIN, 32) }; -#endif \ No newline at end of file +#endif diff --git a/include/dol2asm.h b/include/dol2asm.h new file mode 100644 index 00000000..3b28a774 --- /dev/null +++ b/include/dol2asm.h @@ -0,0 +1,90 @@ +#ifndef DOL2ASM +#define DOL2ASM + +// this helps remove useless error from the linter when using vscode. +#ifdef __MWERKS__ + +#ifdef __cplusplus +#define SECTION_INIT extern "C" __declspec(section ".init") +#define SECTION_RODATA __declspec(section ".rodata") +#define SECTION_DATA __declspec(section ".data") +#define SECTION_SDATA __declspec(section ".sdata") +#define SECTION_SDATA2 __declspec(section ".sdata2") +#define SECTION_BSS __declspec(section ".data") +#define SECTION_SBSS __declspec(section ".sdata") +#define SECTION_SBSS2 __declspec(section ".sdata2") +#define SECTION_CTORS extern "C" __declspec(section ".ctors") +#define SECTION_DTORS extern "C" __declspec(section ".dtors") +#define SECTION_EXTAB extern "C" __declspec(section "extab_") +#define SECTION_EXTABINDEX extern "C" __declspec(section "extabindex_") +#define SECTION_DEAD extern "C" __declspec(section ".dead") +#define SECTION_CTORS10 __declspec(section ".ctors$10") +#define SECTION_CTORS15 __declspec(section ".ctors$15") +#define SECTION_DTORS10 __declspec(section ".dtors$10") +#define SECTION_DTORS15 __declspec(section ".dtors$15") +#define COMPILER_STRIP_GATE(NAME, VALUE) SECTION_DEAD void* const cg_##NAME = (void*)(VALUE) +#define REGISTER_CTORS(ADDR, FUNCTION) SECTION_CTORS void* const _ctors_##ADDR = (void*)(FUNCTION); +#else +#define SECTION_INIT __declspec(section ".init") +#define SECTION_RODATA __declspec(section ".rodata") +#define SECTION_DATA __declspec(section ".data") +#define SECTION_SDATA __declspec(section ".sdata") +#define SECTION_SDATA2 __declspec(section ".sdata2") +#define SECTION_BSS __declspec(section ".data") +#define SECTION_SBSS __declspec(section ".sdata") +#define SECTION_SBSS2 __declspec(section ".sdata2") +#define SECTION_CTORS __declspec(section ".ctors") +#define SECTION_DTORS __declspec(section ".dtors") +#define SECTION_EXTAB __declspec(section "extab_") +#define SECTION_EXTABINDEX __declspec(section "extabindex_") +#define SECTION_DEAD __declspec(section ".dead") +#define SECTION_CTORS10 __declspec(section ".ctors$10") +#define SECTION_CTORS15 __declspec(section ".ctors$15") +#define SECTION_DTORS10 __declspec(section ".dtors$10") +#define SECTION_DTORS15 __declspec(section ".dtors$15") +#define COMPILER_STRIP_GATE(NAME, VALUE) SECTION_DEAD void* const cg_##NAME = (void*)(VALUE) +#define REGISTER_CTORS(ADDR, FUNCTION) SECTION_CTORS void* const _ctors_##ADDR = (void*)(FUNCTION); +#endif + +#else +#define SECTION_INIT +#define SECTION_RODATA +#define SECTION_DATA +#define SECTION_SDATA +#define SECTION_SDATA2 +#define SECTION_BSS +#define SECTION_SBSS +#define SECTION_SBSS2 +#define SECTION_CTORS +#define SECTION_DTORS +#define SECTION_EXTAB +#define SECTION_EXTABINDEX +#define SECTION_DEAD +#define SECTION_CTORS10 +#define SECTION_CTORS15 +#define SECTION_DTORS10 +#define SECTION_DTORS15 +#define COMPILER_STRIP_GATE(...) +#define REGISTER_CTORS(...) + +// vscode doesn't like asm and nofralloc very much +#define asm +#define nofralloc +#endif + +// floating-point constants +// TODO: move to different header +#define _HUGE_ENUF 1e+300 +#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) +#define HUGE_VAL ((double)INFINITY) +#define HUGE_VALL ((long double)INFINITY) + +#define DOUBLE_INF HUGE_VAL + +#pragma section ".dead" +#pragma section ".ctors$10" +#pragma section ".ctors$15" +#pragma section ".dtors$10" +#pragma section ".dtors$15" + +#endif /* DOL2ASM */ diff --git a/include/dolphin/demo/DEMOPuts.h b/include/dolphin/demo/DEMOPuts.h index 49434d9c..219ca544 100644 --- a/include/dolphin/demo/DEMOPuts.h +++ b/include/dolphin/demo/DEMOPuts.h @@ -5,7 +5,7 @@ typedef enum { DMTF_POINTSAMPLE, - DMTF_BILERP, + DMTF_BILERP } DMTexFlt; typedef enum { DM_FT_OPQ, DM_FT_RVS, DM_FT_XLU } DMFontType; diff --git a/include/dolphin/demo/DEMOStats.h b/include/dolphin/demo/DEMOStats.h index 5ec6e00a..92a61bf6 100644 --- a/include/dolphin/demo/DEMOStats.h +++ b/include/dolphin/demo/DEMOStats.h @@ -11,7 +11,7 @@ typedef enum DEMO_STAT_TYPE { DEMO_STAT_TBW = 6, DEMO_STAT_TBP = 7, DEMO_STAT_MYC = 8, - DEMO_STAT_MYR = 9, + DEMO_STAT_MYR = 9 } DEMO_STAT_TYPE; typedef struct DemoStatData { @@ -26,7 +26,7 @@ typedef enum { DEMO_STAT_BL = 1, DEMO_STAT_TLD = 2, DEMO_STAT_BLD = 3, - DEMO_STAT_IO = 4, + DEMO_STAT_IO = 4 } DEMO_STAT_DISP; extern unsigned char DemoStatEnable; diff --git a/include/dolphin/dvd.h b/include/dolphin/dvd.h index cc6e1fa9..d8149fa2 100644 --- a/include/dolphin/dvd.h +++ b/include/dolphin/dvd.h @@ -89,6 +89,7 @@ void DVDInit(); BOOL DVDClose(DVDFileInfo* f); BOOL DVDSetAutoFatalMessaging(BOOL); void DVDReset(); +int DVDSetAutoInvalidation(int autoInval); s32 DVDCancel(DVDCommandBlock* block); BOOL DVDOpen(char* fileName, DVDFileInfo* fileInfo); BOOL DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo); diff --git a/include/dolphin/gx/GXEnum.h b/include/dolphin/gx/GXEnum.h index d6fed014..cf924f01 100644 --- a/include/dolphin/gx/GXEnum.h +++ b/include/dolphin/gx/GXEnum.h @@ -23,7 +23,7 @@ typedef u8 GXBool; typedef enum _GXProjectionType { GX_PERSPECTIVE, - GX_ORTHOGRAPHIC, + GX_ORTHOGRAPHIC } GXProjectionType; typedef enum _GXCompare { @@ -34,7 +34,7 @@ typedef enum _GXCompare { GX_GREATER, GX_NEQUAL, GX_GEQUAL, - GX_ALWAYS, + GX_ALWAYS } GXCompare; typedef enum _GXAlphaOp { @@ -42,20 +42,20 @@ typedef enum _GXAlphaOp { GX_AOP_OR, GX_AOP_XOR, GX_AOP_XNOR, - GX_MAX_ALPHAOP, + GX_MAX_ALPHAOP } GXAlphaOp; typedef enum _GXZFmt16 { GX_ZC_LINEAR, GX_ZC_NEAR, GX_ZC_MID, - GX_ZC_FAR, + GX_ZC_FAR } GXZFmt16; typedef enum _GXGamma { GX_GM_1_0, GX_GM_1_7, - GX_GM_2_2, + GX_GM_2_2 } GXGamma; typedef enum _GXPixelFmt { @@ -66,7 +66,7 @@ typedef enum _GXPixelFmt { GX_PF_Y8, GX_PF_U8, GX_PF_V8, - GX_PF_YUV420, + GX_PF_YUV420 } GXPixelFmt; typedef enum _GXPrimitive { @@ -76,7 +76,7 @@ typedef enum _GXPrimitive { GX_TRIANGLEFAN = 0xA0, GX_LINES = 0xA8, GX_LINESTRIP = 0xB0, - GX_POINTS = 0xB8, + GX_POINTS = 0xB8 } GXPrimitive; typedef enum _GXVtxFmt { @@ -88,7 +88,7 @@ typedef enum _GXVtxFmt { GX_VTXFMT5, GX_VTXFMT6, GX_VTXFMT7, - GX_MAX_VTXFMT, + GX_MAX_VTXFMT } GXVtxFmt; typedef enum _GXAttr { @@ -119,7 +119,7 @@ typedef enum _GXAttr { GX_LIGHT_ARRAY, GX_VA_NBT, GX_VA_MAX_ATTR, - GX_VA_NULL = 0xFF, + GX_VA_NULL = 0xFF } GXAttr; #define GX_MAX_VTXDESCLIST_SZ (GX_VA_MAX_ATTR + 1) @@ -128,7 +128,7 @@ typedef enum _GXAttrType { GX_NONE, GX_DIRECT, GX_INDEX8, - GX_INDEX16, + GX_INDEX16 } GXAttrType; #define _GX_TF_CTF 0x20 @@ -164,20 +164,20 @@ typedef enum _GXTexFmt { GX_CTF_Z8L = 0xA | _GX_TF_ZTF | _GX_TF_CTF, GX_CTF_Z16L = 0xC | _GX_TF_ZTF | _GX_TF_CTF, - GX_TF_A8 = GX_CTF_A8, + GX_TF_A8 = GX_CTF_A8 } GXTexFmt; typedef enum _GXCITexFmt { GX_TF_C4 = 0x8, GX_TF_C8 = 0x9, - GX_TF_C14X2 = 0xa, + GX_TF_C14X2 = 0xa } GXCITexFmt; typedef enum _GXTexWrapMode { GX_CLAMP, GX_REPEAT, GX_MIRROR, - GX_MAX_TEXWRAPMODE, + GX_MAX_TEXWRAPMODE } GXTexWrapMode; typedef enum _GXTexFilter { @@ -186,14 +186,14 @@ typedef enum _GXTexFilter { GX_NEAR_MIP_NEAR, GX_LIN_MIP_NEAR, GX_NEAR_MIP_LIN, - GX_LIN_MIP_LIN, + GX_LIN_MIP_LIN } GXTexFilter; typedef enum _GXAnisotropy { GX_ANISO_1, GX_ANISO_2, GX_ANISO_4, - GX_MAX_ANISOTROPY, + GX_MAX_ANISOTROPY } GXAnisotropy; typedef enum _GXTexMapID { @@ -207,7 +207,7 @@ typedef enum _GXTexMapID { GX_TEXMAP7, GX_MAX_TEXMAP, GX_TEXMAP_NULL = 0xFF, - GX_TEX_DISABLE = 0x100, + GX_TEX_DISABLE = 0x100 } GXTexMapID; typedef enum _GXTexCoordID { @@ -220,7 +220,7 @@ typedef enum _GXTexCoordID { GX_TEXCOORD6, GX_TEXCOORD7, GX_MAX_TEXCOORD, - GX_TEXCOORD_NULL = 0xFF, + GX_TEXCOORD_NULL = 0xFF } GXTexCoordID; typedef enum _GXTevStageID { @@ -240,7 +240,7 @@ typedef enum _GXTevStageID { GX_TEVSTAGE13, GX_TEVSTAGE14, GX_TEVSTAGE15, - GX_MAX_TEVSTAGE, + GX_MAX_TEVSTAGE } GXTevStageID; typedef enum _GXTevMode { @@ -248,12 +248,12 @@ typedef enum _GXTevMode { GX_DECAL, GX_BLEND, GX_REPLACE, - GX_PASSCLR, + GX_PASSCLR } GXTevMode; typedef enum _GXTexMtxType { GX_MTX3x4, - GX_MTX2x4, + GX_MTX2x4 } GXTexMtxType; typedef enum _GXTexGenType { @@ -267,7 +267,7 @@ typedef enum _GXTexGenType { GX_TG_BUMP5, GX_TG_BUMP6, GX_TG_BUMP7, - GX_TG_SRTG, + GX_TG_SRTG } GXTexGenType; typedef enum _GXPosNrmMtx { @@ -280,7 +280,7 @@ typedef enum _GXPosNrmMtx { GX_PNMTX6 = 18, GX_PNMTX7 = 21, GX_PNMTX8 = 24, - GX_PNMTX9 = 27, + GX_PNMTX9 = 27 } GXPosNrmMtx; typedef enum _GXTexMtx { @@ -294,7 +294,7 @@ typedef enum _GXTexMtx { GX_TEXMTX7 = 51, GX_TEXMTX8 = 54, GX_TEXMTX9 = 57, - GX_IDENTITY = 60, + GX_IDENTITY = 60 } GXTexMtx; typedef enum _GXChannelID { @@ -307,7 +307,7 @@ typedef enum _GXChannelID { GX_COLOR_ZERO, GX_ALPHA_BUMP, GX_ALPHA_BUMPN, - GX_COLOR_NULL = 0xFF, + GX_COLOR_NULL = 0xFF } GXChannelID; typedef enum _GXTexGenSrc { @@ -332,7 +332,7 @@ typedef enum _GXTexGenSrc { GX_TG_TEXCOORD6, GX_TG_COLOR0, GX_TG_COLOR1, - GX_MAX_TEXGENSRC, + GX_MAX_TEXGENSRC } GXTexGenSrc; typedef enum _GXBlendMode { @@ -340,7 +340,7 @@ typedef enum _GXBlendMode { GX_BM_BLEND, GX_BM_LOGIC, GX_BM_SUBTRACT, - GX_MAX_BLENDMODE, + GX_MAX_BLENDMODE } GXBlendMode; typedef enum _GXBlendFactor { @@ -353,7 +353,7 @@ typedef enum _GXBlendFactor { GX_BL_DSTALPHA, GX_BL_INVDSTALPHA, GX_BL_DSTCLR = GX_BL_SRCCLR, - GX_BL_INVDSTCLR = GX_BL_INVSRCCLR, + GX_BL_INVDSTCLR = GX_BL_INVSRCCLR } GXBlendFactor; typedef enum _GXLogicOp { @@ -372,7 +372,7 @@ typedef enum _GXLogicOp { GX_LO_INVCOPY, GX_LO_INVOR, GX_LO_NAND, - GX_LO_SET, + GX_LO_SET } GXLogicOp; typedef enum _GXCompCnt { @@ -384,7 +384,7 @@ typedef enum _GXCompCnt { GX_CLR_RGB = 0, GX_CLR_RGBA = 1, GX_TEX_S = 0, - GX_TEX_ST = 1, + GX_TEX_ST = 1 } GXCompCnt; typedef enum _GXCompType { @@ -398,7 +398,7 @@ typedef enum _GXCompType { GX_RGBX8 = 2, GX_RGBA4 = 3, GX_RGBA6 = 4, - GX_RGBA8 = 5, + GX_RGBA8 = 5 } GXCompType; typedef enum _GXPTTexMtx { @@ -422,7 +422,7 @@ typedef enum _GXPTTexMtx { GX_PTTEXMTX17 = 115, GX_PTTEXMTX18 = 118, GX_PTTEXMTX19 = 121, - GX_PTIDENTITY = 125, + GX_PTIDENTITY = 125 } GXPTTexMtx; typedef enum _GXTevRegID { @@ -430,24 +430,24 @@ typedef enum _GXTevRegID { GX_TEVREG0, GX_TEVREG1, GX_TEVREG2, - GX_MAX_TEVREG, + GX_MAX_TEVREG } GXTevRegID; typedef enum _GXDiffuseFn { GX_DF_NONE, GX_DF_SIGN, - GX_DF_CLAMP, + GX_DF_CLAMP } GXDiffuseFn; typedef enum _GXColorSrc { GX_SRC_REG, - GX_SRC_VTX, + GX_SRC_VTX } GXColorSrc; typedef enum _GXAttnFn { GX_AF_SPEC, GX_AF_SPOT, - GX_AF_NONE, + GX_AF_NONE } GXAttnFn; typedef enum _GXLightID { @@ -460,7 +460,7 @@ typedef enum _GXLightID { GX_LIGHT6 = 0x040, GX_LIGHT7 = 0x080, GX_MAX_LIGHT = 0x100, - GX_LIGHT_NULL = 0, + GX_LIGHT_NULL = 0 } GXLightID; typedef enum _GXTexOffset { @@ -470,7 +470,7 @@ typedef enum _GXTexOffset { GX_TO_FOURTH, GX_TO_HALF, GX_TO_ONE, - GX_MAX_TEXOFFSET, + GX_MAX_TEXOFFSET } GXTexOffset; typedef enum _GXSpotFn { @@ -480,21 +480,21 @@ typedef enum _GXSpotFn { GX_SP_COS2, GX_SP_SHARP, GX_SP_RING1, - GX_SP_RING2, + GX_SP_RING2 } GXSpotFn; typedef enum _GXDistAttnFn { GX_DA_OFF, GX_DA_GENTLE, GX_DA_MEDIUM, - GX_DA_STEEP, + GX_DA_STEEP } GXDistAttnFn; typedef enum _GXCullMode { GX_CULL_NONE, GX_CULL_FRONT, GX_CULL_BACK, - GX_CULL_ALL, + GX_CULL_ALL } GXCullMode; typedef enum _GXTevSwapSel { @@ -502,14 +502,14 @@ typedef enum _GXTevSwapSel { GX_TEV_SWAP1, GX_TEV_SWAP2, GX_TEV_SWAP3, - GX_MAX_TEVSWAP, + GX_MAX_TEVSWAP } GXTevSwapSel; typedef enum _GXTevColorChan { GX_CH_RED = 0, GX_CH_GREEN, GX_CH_BLUE, - GX_CH_ALPHA, + GX_CH_ALPHA } GXTevColorChan; typedef enum _GXFogType { @@ -528,7 +528,7 @@ typedef enum _GXFogType { GX_FOG_EXP = GX_FOG_PERSP_EXP, GX_FOG_EXP2 = GX_FOG_PERSP_EXP2, GX_FOG_REVEXP = GX_FOG_PERSP_REVEXP, - GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2, + GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2 } GXFogType; typedef enum _GXTevColorArg { @@ -547,7 +547,7 @@ typedef enum _GXTevColorArg { GX_CC_ONE, GX_CC_HALF, GX_CC_KONST, - GX_CC_ZERO, + GX_CC_ZERO } GXTevColorArg; typedef enum _GXTevAlphaArg { @@ -558,7 +558,7 @@ typedef enum _GXTevAlphaArg { GX_CA_TEXA, GX_CA_RASA, GX_CA_KONST, - GX_CA_ZERO, + GX_CA_ZERO } GXTevAlphaArg; typedef enum _GXTevOp { @@ -573,14 +573,14 @@ typedef enum _GXTevOp { GX_TEV_COMP_RGB8_GT = 14, GX_TEV_COMP_RGB8_EQ = 15, GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT, - GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ, + GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ } GXTevOp; typedef enum _GXTevBias { GX_TB_ZERO, GX_TB_ADDHALF, GX_TB_SUBHALF, - GX_MAX_TEVBIAS, + GX_MAX_TEVBIAS } GXTevBias; typedef enum _GXTevScale { @@ -588,7 +588,7 @@ typedef enum _GXTevScale { GX_CS_SCALE_2, GX_CS_SCALE_4, GX_CS_DIVIDE_2, - GX_MAX_TEVSCALE, + GX_MAX_TEVSCALE } GXTevScale; typedef enum _GXTevKColorSel { @@ -623,7 +623,7 @@ typedef enum _GXTevKColorSel { GX_TEV_KCSEL_K0_A = 0x1C, GX_TEV_KCSEL_K1_A = 0x1D, GX_TEV_KCSEL_K2_A = 0x1E, - GX_TEV_KCSEL_K3_A = 0x1F, + GX_TEV_KCSEL_K3_A = 0x1F } GXTevKColorSel; typedef enum _GXTevKAlphaSel { @@ -654,7 +654,7 @@ typedef enum _GXTevKAlphaSel { GX_TEV_KASEL_K0_A = 0x1C, GX_TEV_KASEL_K1_A = 0x1D, GX_TEV_KASEL_K2_A = 0x1E, - GX_TEV_KASEL_K3_A = 0x1F, + GX_TEV_KASEL_K3_A = 0x1F } GXTevKAlphaSel; typedef enum _GXTevKColorID { @@ -662,14 +662,14 @@ typedef enum _GXTevKColorID { GX_KCOLOR1, GX_KCOLOR2, GX_KCOLOR3, - GX_MAX_KCOLOR, + GX_MAX_KCOLOR } GXTevKColorID; typedef enum _GXZTexOp { GX_ZT_DISABLE, GX_ZT_ADD, GX_ZT_REPLACE, - GX_MAX_ZTEXOP, + GX_MAX_ZTEXO } GXZTexOp; typedef enum _GXIndTexFormat { @@ -677,7 +677,7 @@ typedef enum _GXIndTexFormat { GX_ITF_5, GX_ITF_4, GX_ITF_3, - GX_MAX_ITFORMAT, + GX_MAX_ITFORMAT } GXIndTexFormat; typedef enum _GXIndTexBiasSel { @@ -689,7 +689,7 @@ typedef enum _GXIndTexBiasSel { GX_ITB_SU, GX_ITB_TU, GX_ITB_STU, - GX_MAX_ITBIAS, + GX_MAX_ITBIAS } GXIndTexBiasSel; typedef enum _GXIndTexAlphaSel { @@ -697,7 +697,7 @@ typedef enum _GXIndTexAlphaSel { GX_ITBA_S, GX_ITBA_T, GX_ITBA_U, - GX_MAX_ITBALPHA, + GX_MAX_ITBALPHA } GXIndTexAlphaSel; typedef enum _GXIndTexMtxID { @@ -710,7 +710,7 @@ typedef enum _GXIndTexMtxID { GX_ITM_S2, GX_ITM_T0 = 9, GX_ITM_T1, - GX_ITM_T2, + GX_ITM_T2 } GXIndTexMtxID; typedef enum _GXIndTexWrap { @@ -721,7 +721,7 @@ typedef enum _GXIndTexWrap { GX_ITW_32, GX_ITW_16, GX_ITW_0, - GX_MAX_ITWRAP, + GX_MAX_ITWRAP } GXIndTexWrap; typedef enum _GXIndTexStageID { @@ -729,7 +729,7 @@ typedef enum _GXIndTexStageID { GX_INDTEXSTAGE1, GX_INDTEXSTAGE2, GX_INDTEXSTAGE3, - GX_MAX_INDTEXSTAGE, + GX_MAX_INDTEXSTAGE } GXIndTexStageID; typedef enum _GXIndTexScale { @@ -742,12 +742,12 @@ typedef enum _GXIndTexScale { GX_ITS_64, GX_ITS_128, GX_ITS_256, - GX_MAX_ITSCALE, + GX_MAX_ITSCALE } GXIndTexScale; typedef enum _GXClipMode { GX_CLIP_ENABLE = 0, - GX_CLIP_DISABLE = 1, + GX_CLIP_DISABLE = 1 } GXClipMode; typedef enum _GXTlut { @@ -770,21 +770,21 @@ typedef enum _GXTlut { GX_BIGTLUT0 = 16, GX_BIGTLUT1 = 17, GX_BIGTLUT2 = 18, - GX_BIGTLUT3 = 19, + GX_BIGTLUT3 = 19 } GXTlut; typedef enum _GXTlutFmt { GX_TL_IA8, GX_TL_RGB565, GX_TL_RGB5A3, - GX_MAX_TLUTFMT, + GX_MAX_TLUTFMT } GXTlutFmt; typedef enum _GXMiscToken { GX_MT_NULL = 0, GX_MT_XF_FLUSH = 1, GX_MT_DL_SAVE_CONTEXT = 2, - GX_MT_ABORT_WAIT_COPYOUT = 3, + GX_MT_ABORT_WAIT_COPYOUT = 3 } GXMiscToken; typedef enum _GXTexCacheSize { @@ -834,7 +834,6 @@ typedef enum _GXPerf0 { GX_PERF0_CLOCKS, GX_PERF0_NONE - } GXPerf0; typedef enum _GXPerf1 { @@ -864,7 +863,6 @@ typedef enum _GXPerf1 { GX_PERF1_CLOCKS, GX_PERF1_NONE - } GXPerf1; typedef enum _GXVCachePerf { @@ -881,27 +879,26 @@ typedef enum _GXVCachePerf { GX_VC_TEX6, GX_VC_TEX7, GX_VC_ALL = 0xf - } GXVCachePerf; typedef enum _GXFBClamp { GX_CLAMP_NONE = 0, GX_CLAMP_TOP = 1, - GX_CLAMP_BOTTOM = 2, + GX_CLAMP_BOTTOM = 2 } GXFBClamp; typedef enum _GXCopyMode { GX_COPY_PROGRESSIVE = 0, GX_COPY_INTLC_EVEN = 2, - GX_COPY_INTLC_ODD = 3, + GX_COPY_INTLC_ODD = 3 } GXCopyMode; typedef enum _GXAlphaReadMode { GX_READ_00 = 0, GX_READ_FF = 1, - GX_READ_NONE = 2, + GX_READ_NONE = 2 -} _GXAlphaReadMode; +} GXAlphaReadMode; #ifdef __cplusplus } diff --git a/include/dolphin/gx/GXExtra.h b/include/dolphin/gx/GXExtra.h index afd29caa..9ba48170 100644 --- a/include/dolphin/gx/GXExtra.h +++ b/include/dolphin/gx/GXExtra.h @@ -19,7 +19,7 @@ typedef struct { typedef enum { GX_TF_R8_PC = 0x60, - GX_TF_RGBA8_PC = 0x61, + GX_TF_RGBA8_PC = 0x61 } GXPCTexFmt; void GXDestroyTexObj(GXTexObj* obj); diff --git a/include/dolphin/gx/GXFrameBuffer.h b/include/dolphin/gx/GXFrameBuffer.h index ebd81e78..f5785f8c 100644 --- a/include/dolphin/gx/GXFrameBuffer.h +++ b/include/dolphin/gx/GXFrameBuffer.h @@ -47,6 +47,7 @@ void GXCopyDisp(void* dest, GXBool clear); void GXSetDispCopyGamma(GXGamma gamma); void GXSetDispCopySrc(u16 left, u16 top, u16 wd, u16 ht); void GXSetDispCopyDst(u16 wd, u16 ht); +f32 GXGetYScaleFactor(u16 efbHeight, u16 xfbHeight); u32 GXSetDispCopyYScale(f32 vscale); void GXSetCopyFilter(GXBool aa, u8 sample_pattern[12][2], GXBool vf, u8 vfilter[7]); void GXSetPixelFmt(GXPixelFmt pix_fmt, GXZFmt16 z_fmt); diff --git a/include/dolphin/gx/GXPriv.h b/include/dolphin/gx/GXPriv.h index ea3d2318..1cd42e37 100644 --- a/include/dolphin/gx/GXPriv.h +++ b/include/dolphin/gx/GXPriv.h @@ -1,7 +1,32 @@ #ifndef _DOLPHIN_GXPRIV #define _DOLPHIN_GXPRIV -#include "dolphin/gx/GXVert.h" +#include "dolphin/gx.h" + +#ifdef DEBUG +#define ASSERTLINE(line, cond) \ + ((cond) || (OSPanic(__FILE__, line, "Failed assertion " #cond), 0)) + +#define ASSERTMSGLINE(line, cond, msg) \ + ((cond) || (OSPanic(__FILE__, line, msg), 0)) + +// This is dumb but we dont have a Metrowerks way to do variadic macros in the macro to make this done in a not scrubby way. +#define ASSERTMSG1LINE(line, cond, msg, arg1) \ + ((cond) || (OSPanic(__FILE__, line, msg, arg1), 0)) + +#define ASSERTMSG2LINE(line, cond, msg, arg1, arg2) \ + ((cond) || (OSPanic(__FILE__, line, msg, arg1, arg2), 0)) + +#define ASSERTMSGLINEV(line, cond, ...) \ + ((cond) || (OSPanic(__FILE__, line, __VA_ARGS__), 0)) + +#else +#define ASSERTLINE(line, cond) (void)0 +#define ASSERTMSGLINE(line, cond, msg) (void)0 +#define ASSERTMSG1LINE(line, cond, msg, arg1) (void)0 +#define ASSERTMSG2LINE(line, cond, msg, arg1, arg2) (void)0 +#define ASSERTMSGLINEV(line, cond, ...) (void)0 +#endif typedef struct GXLightObjInt { u32 padding[3]; @@ -26,92 +51,137 @@ typedef struct GXLightObjInt { #define GX_FIFO_ADDR 0xCC008000 #define GX_WRITE_U8(v) (GXWGFifo.u8 = v) +#define GX_WRITE_U16(us) (GXWGFifo.u16 = (u16)(us)) #define GX_WRITE_U32(v) (GXWGFifo.u32 = v) +#define GX_WRITE_F32(f) (GXWGFifo.f32 = (f32)(f)) -typedef struct __GXData_struct { - u16 vNumNot; - u16 bpSentNot; - u16 vNum; - u16 vLim; - u32 cpEnable; - u32 cpStatus; - u32 cpClr; - u32 vcdLo; - u32 vcdHi; - u32 vatA[8]; - u32 vatB[8]; - u32 vatC[8]; - u32 lpSize; - u32 matIdxA; - u32 matIdxB; - u32 indexBase[4]; - u32 indexStride[4]; - u32 ambColor[2]; - u32 matColor[2]; - u32 suTs0[8]; - u32 suTs1[8]; - u32 suScis0; - u32 suScis1; - u32 tref[8]; - u32 iref; - u32 bpMask; - u32 IndTexScale0; - u32 IndTexScale1; - u32 tevc[16]; - u32 teva[16]; - u32 tevKsel[8]; - u32 cmode0; - u32 cmode1; - u32 zmode; - u32 peCtrl; - u32 cpDispSrc; - u32 cpDispSize; - u32 cpDispStride; - u32 cpDisp; - u32 cpTexSrc; - u32 cpTexSize; - u32 cpTexStride; - u32 cpTex; - GXBool cpTexZ; - u32 genMode; - GXTexRegion TexRegions[8]; - GXTexRegion TexRegionsCI[4]; - u32 nextTexRgn; - u32 nextTexRgnCI; - GXTlutRegion TlutRegions[20]; - GXTexRegion* (*texRegionCallback)(GXTexObj*, GXTexMapID); - GXTlutRegion* (*tlutRegionCallback)(u32); - GXAttrType nrmType; - GXBool hasNrms; - GXBool hasBiNrms; - u32 projType; - f32 projMtx[6]; - f32 vpLeft; - f32 vpTop; - f32 vpWd; - f32 vpHt; - f32 vpNearz; - f32 vpFarz; - u8 fgRange; - f32 fgSideX; - u32 tImage0[8]; - u32 tMode0[8]; - u32 texmapId[16]; - u32 tcsManEnab; - u32 tevTcEnab; - GXPerf0 perf0; - GXPerf1 perf1; - u32 perfSel; - GXBool inDispList; - GXBool dlSaveContext; - u8 dirtyVAT; - u32 dirtyState; -} GXData; +#if DEBUG +#define VERIF_XF_REG(addr, value) \ +do { \ + s32 regAddr = (addr); \ + if (regAddr >= 0 && regAddr < 0x50) { \ + __gxVerif->xfRegs[regAddr] = (value); \ + __gxVerif->xfRegsDirty[regAddr] = 1; \ + } \ +} while (0) +#define VERIF_XF_REG_alt(addr, value) \ +do { \ + s32 xfAddr = (addr); \ + if (xfAddr >= 0 && xfAddr < 0x50) { \ + __gxVerif->xfRegs[xfAddr] = (value); \ + __gxVerif->xfRegsDirty[xfAddr] = 1; \ + } \ +} while (0) +#define VERIF_RAS_REG(value) (__gxVerif->rasRegs[((value) & 0xFF000000) >> 24] = value) +#define VERIF_MTXLIGHT(addr, data) \ +do { \ + s32 xfAddr; \ + if (addr < 0x400U) { \ + __gxVerif->xfMtx[addr] = data; \ + __gxVerif->xfMtxDirty[addr] = 1; \ + } else if (addr < 0x500U) { \ + xfAddr = addr - 0x400; \ + __gxVerif->xfNrm[xfAddr] = data; \ + __gxVerif->xfNrmDirty[xfAddr] = 1; \ + } else if (addr < 0x600U) { \ + xfAddr = addr - 0x500; \ + __gxVerif->xfDMtx[xfAddr] = data; \ + __gxVerif->xfDMtxDirty[xfAddr] = 1; \ + } else if (addr < 0x680U) { \ + xfAddr = addr - 0x600; \ + __gxVerif->xfLight[xfAddr] = data; \ + __gxVerif->xfLightDirty[xfAddr] = 1; \ + } else { \ + xfAddr = addr - 0x1000; \ + if ((xfAddr >= 0) && (xfAddr < 0x50)) { \ + __gxVerif->xfRegs[xfAddr] = data; \ + __gxVerif->xfRegsDirty[xfAddr] = 1; \ + } \ + } \ +} while (0) +#else +#define VERIF_XF_REG(addr, value) ((void)0) +#define VERIF_XF_REG_alt(addr, value) ((void)0) +#define VERIF_RAS_REG(value) ((void)0) +#endif -extern GXData* gx; -// #define gx __GXData +#define GX_WRITE_XF_REG(addr, value) \ +do { \ + GX_WRITE_U8(0x10); \ + GX_WRITE_U32(0x1000 + (addr)); \ + GX_WRITE_U32(value); \ + VERIF_XF_REG(addr, value); \ +} while (0) -void __GXInitGX(); +#if DEBUG +#define GX_WRITE_XF_REG_2(addr, value) \ +do { \ + u32 xfData = (value); &xfData; \ + GX_WRITE_U32(value); \ + VERIF_XF_REG_alt(addr, xfData); \ +} while (0) +#define GX_WRITE_XF_REG_F(addr, value) \ +do { \ + f32 xfData = (value); \ + GX_WRITE_F32(value); \ + VERIF_XF_REG_alt(addr, *(u32 *)&xfData); \ +} while (0) +#else +#define GX_WRITE_XF_REG_2(addr, value) \ +do { \ + GX_WRITE_U32(value); \ +} while (0) +#define GX_WRITE_XF_REG_F(addr, value) \ +do { \ + GX_WRITE_F32(value); \ +} while (0) +#endif + +#define GX_WRITE_RAS_REG(value) \ +do { \ + GX_WRITE_U8(0x61); \ + GX_WRITE_U32(value); \ + VERIF_RAS_REG(value); \ +} while (0) + +#define GX_WRITE_SOME_REG2(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ + if (regAddr >= 0 && regAddr < 4) { \ + gx->indexBase[regAddr] = c; \ + } \ +} while (0) +#define GX_WRITE_SOME_REG3(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ + if (regAddr >= 0 && regAddr < 4) { \ + gx->indexStride[regAddr] = c; \ + } \ +} while (0) +#define GX_WRITE_SOME_REG4(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ +} while (0) + +#define GET_REG_FIELD(reg, size, shift) ((int)((reg) >> (shift)) & ((1 << (size)) - 1)) + +#define SET_REG_FIELD(line, reg, size, shift, val) \ +do { \ + ASSERTMSGLINE(line, ((u32)(val) & ~((1 << (size)) - 1)) == 0, "GX Internal: Register field out of range"); \ + (reg) = ((u32)(reg) & ~(((1 << (size)) - 1) << (shift))) | ((u32)(val) << (shift)); \ +} while (0) #define GX_REG_ASSERT(c) ASSERTMSG(c, "GX Internal: Register field out of range") @@ -358,4 +428,223 @@ void __GXInitGX(); #define GX_VAT_REG_B_UNK_SHIFT 31 #define GX_VAT_REG_B_UNK_MASK 0x80000000 +#define GX_GET_MEM_REG(offset) (*(volatile u16*)((volatile u16*)(__memReg) + (offset))) +#define GX_GET_CP_REG(offset) (*(volatile u16*)((volatile u16*)(__cpReg) + (offset))) +#define GX_GET_PE_REG(offset) (*(volatile u16*)((volatile u16*)(__peReg) + (offset))) +#define GX_GET_PI_REG(offset) (*(volatile u32*)((volatile u32*)(__piReg) + (offset))) + +#define GX_SET_MEM_REG(offset, val) (*(volatile u16*)((volatile u16*)(__memReg) + (offset)) = val) +#define GX_SET_CP_REG(offset, val) (*(volatile u16*)((volatile u16*)(__cpReg) + (offset)) = val) +#define GX_SET_PE_REG(offset, val) (*(volatile u16*)((volatile u16*)(__peReg) + (offset)) = val) +#define GX_SET_PI_REG(offset, val) (*(volatile u32*)((volatile u32*)(__piReg) + (offset)) = val) + +#define CHECK_GXBEGIN(line, name) ASSERTMSGLINE(line, !__GXinBegin, "'" name "' is not allowed between GXBegin/GXEnd") + +/* GXAttr.c */ + +void __GXSetVCD(void); +void __GXSetVAT(void); + +/* GXBump.c */ + +void __GXUpdateBPMask(void); +void __GXFlushTextureState(void); + +/* GXFifo.c */ + +// GXFifoObj private data +struct __GXFifoObj { + u8 *base; + u8 *top; + u32 size; + u32 hiWatermark; + u32 loWatermark; + void *rdPtr; + void *wrPtr; + s32 count; + u8 bind_cpu; + u8 bind_gp; +}; + +void __GXSaveCPUFifoAux(struct __GXFifoObj *realFifo); +void __GXFifoInit(void); +void __GXInsaneWatermark(void); +void __GXCleanGPFifo(void); + +/* GXGeometry.c */ + +void __GXSetDirtyState(void); +void __GXSendFlushPrim(void); +void __GXSetGenMode(void); + +/* GXInit.c */ +void __GXInitGX(); +void __GXInitRevisionBits(void); + +typedef struct __GXData_struct { + u16 vNumNot; + u16 bpSentNot; + u16 vNum; + u16 vLim; + u32 cpEnable; + u32 cpStatus; + u32 cpClr; + u32 vcdLo; + u32 vcdHi; + u32 vatA[8]; + u32 vatB[8]; + u32 vatC[8]; + u32 lpSize; + u32 matIdxA; + u32 matIdxB; + u32 indexBase[4]; + u32 indexStride[4]; + u32 ambColor[2]; + u32 matColor[2]; + u32 suTs0[8]; + u32 suTs1[8]; + u32 suScis0; + u32 suScis1; + u32 tref[8]; + u32 iref; + u32 bpMask; + u32 IndTexScale0; + u32 IndTexScale1; + u32 tevc[16]; + u32 teva[16]; + u32 tevKsel[8]; + u32 cmode0; + u32 cmode1; + u32 zmode; + u32 peCtrl; + u32 cpDispSrc; + u32 cpDispSize; + u32 cpDispStride; + u32 cpDisp; + u32 cpTexSrc; + u32 cpTexSize; + u32 cpTexStride; + u32 cpTex; + GXBool cpTexZ; + u32 genMode; + GXTexRegion TexRegions[8]; + GXTexRegion TexRegionsCI[4]; + u32 nextTexRgn; + u32 nextTexRgnCI; + GXTlutRegion TlutRegions[20]; + GXTexRegion* (*texRegionCallback)(GXTexObj*, GXTexMapID); + GXTlutRegion* (*tlutRegionCallback)(u32); + GXAttrType nrmType; + GXBool hasNrms; + GXBool hasBiNrms; + u32 projType; + f32 projMtx[6]; + f32 vpLeft; + f32 vpTop; + f32 vpWd; + f32 vpHt; + f32 vpNearz; + f32 vpFarz; + u8 fgRange; + f32 fgSideX; + u32 tImage0[8]; + u32 tMode0[8]; + u32 texmapId[16]; + u32 tcsManEnab; + u32 tevTcEnab; + GXPerf0 perf0; + GXPerf1 perf1; + u32 perfSel; + GXBool inDispList; + GXBool dlSaveContext; + u8 dirtyVAT; + u32 dirtyState; +} GXData; + +extern GXData* gx; +extern u16 *__memReg; +extern u16 *__peReg; +extern u16 *__cpReg; +extern u32 *__piReg; +// #define gx __GXData + +/* GXMisc.c */ + +void __GXBypass(u32 reg); +u16 __GXReadPEReg(u32 reg); +void __GXPEInit(void); +void __GXAbort(); + +/* GXPerf.c */ +void __GXSetBWDials(u16 cpDial, u16 tcDial, u16 peDial, u16 cpuRdDial, u16 cpuWrDial); + +static inline u32 __GXReadCPCounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_CP_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_CP_REG(regAddrL); + ctrH0 = GX_GET_CP_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +static inline u32 __GXReadMEMCounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_MEM_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_MEM_REG(regAddrL); + ctrH0 = GX_GET_MEM_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +static inline u32 __GXReadPECounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_PE_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_PE_REG(regAddrL); + ctrH0 = GX_GET_PE_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +/* GXSave.c */ + +void __GXShadowDispList(void *list, u32 nbytes); +void __GXShadowIndexState(u32 idx_reg, u32 reg_data); +void __GXPrintShadowState(void); + +/* GXStubs.c */ + +void __GXSetRange(float nearz, float fgSideX); + +/* GXTexture.c */ + +void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles); +void __GXSetSUTexRegs(void); +void __GXGetSUTexSize(GXTexCoordID coord, u16 *width, u16 *height); +void __GXSetTmemConfig(u32 config); + +/* GXTransform.c */ + +void __GXSetMatrixIndex(GXAttr matIdxAttr); + #endif // _DOLPHIN_GXPRIV diff --git a/include/dolphin/gx/GXStruct.h b/include/dolphin/gx/GXStruct.h index 4df23062..49f038bc 100644 --- a/include/dolphin/gx/GXStruct.h +++ b/include/dolphin/gx/GXStruct.h @@ -72,6 +72,26 @@ typedef struct _GXTlutRegion { u32 dummy[4]; } GXTlutRegion; +typedef struct _GXFogAdjTable +{ + u16 r[10]; +} GXFogAdjTable; + +typedef enum _GXTlutSize +{ + GX_TLUT_16 = 1, + GX_TLUT_32 = 2, + GX_TLUT_64 = 4, + GX_TLUT_128 = 8, + GX_TLUT_256 = 16, + GX_TLUT_512 = 32, + GX_TLUT_1K = 64, + GX_TLUT_2K = 128, + GX_TLUT_4K = 256, + GX_TLUT_8K = 512, + GX_TLUT_16K = 1024 +} GXTlutSize; + typedef struct _GXVtxAttrFmtList { // total size: 0x10 GXAttr attr; // offset 0x0, size 0x4 diff --git a/include/dolphin/gx/GXTexture.h b/include/dolphin/gx/GXTexture.h index a30b7430..0b569528 100644 --- a/include/dolphin/gx/GXTexture.h +++ b/include/dolphin/gx/GXTexture.h @@ -8,29 +8,35 @@ extern "C" { #endif -typedef GXTexRegion* (*GXTexRegionCallback)(const GXTexObj* obj, GXTexMapID id); +typedef GXTexRegion *(*GXTexRegionCallback)(GXTexObj *t_obj, GXTexMapID id); +typedef GXTlutRegion *(*GXTlutRegionCallback)(u32 idx); -void GXInitTexObj(GXTexObj* obj, const void* data, u16 width, u16 height, u32 format, - GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap); -void GXInitTexObjCI(GXTexObj* obj, const void* data, u16 width, u16 height, GXCITexFmt format, - GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap, u32 tlut); -void GXInitTexObjData(GXTexObj* obj, const void* data); -void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filt, GXTexFilter mag_filt, f32 min_lod, - f32 max_lod, f32 lod_bias, GXBool bias_clamp, GXBool do_edge_lod, - GXAnisotropy max_aniso); -void GXLoadTexObj(GXTexObj* obj, GXTexMapID id); -u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod); -void GXInvalidateTexAll(); -void GXInitTexObjWrapMode(GXTexObj* obj, GXTexWrapMode s, GXTexWrapMode t); -void GXInitTlutObj(GXTlutObj* obj, void* data, GXTlutFmt format, u16 entries); -void GXLoadTlut(const GXTlutObj* obj, GXTlut idx); -void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 ss, u16 ts); -void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_even, - GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd); -GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback); -void GXInvalidateTexRegion(const GXTexRegion* region); - -void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 ss, u16 ts); +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, u8 mipmap, u8 max_lod); +void GXInitTexObj(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap); +void GXInitTexObjCI(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXCITexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap, u32 tlut_name); +void GXInitTexObjLOD(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt, + f32 min_lod, f32 max_lod, f32 lod_bias, GXBool bias_clamp, + GXBool do_edge_lod, GXAnisotropy max_aniso); +void GXInitTexObjData(GXTexObj *obj, void *image_ptr); +void GXInitTexObjWrapMode(GXTexObj *obj, GXTexWrapMode s, GXTexWrapMode t); +void GXInitTexObjTlut(GXTexObj *obj, u32 tlut_name); +void GXInitTexObjUserData(GXTexObj *obj, void *user_data); +void *GXGetTexObjUserData(const GXTexObj *obj); +void GXLoadTexObjPreLoaded(GXTexObj *obj, GXTexRegion *region, GXTexMapID id); +void GXLoadTexObj(GXTexObj *obj, GXTexMapID id); +void GXInitTlutObj(GXTlutObj *tlut_obj, void *lut, GXTlutFmt fmt, u16 n_entries); +void GXLoadTlut(GXTlutObj *tlut_obj, u32 tlut_name); +void GXInitTexCacheRegion(GXTexRegion *region, u8 is_32b_mipmap, u32 tmem_even, GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd); +void GXInitTexPreLoadRegion(GXTexRegion *region, u32 tmem_even, u32 size_even, u32 tmem_odd, u32 size_odd); +void GXInitTlutRegion(GXTlutRegion *region, u32 tmem_addr, GXTlutSize tlut_size); +void GXInvalidateTexRegion(GXTexRegion *region); +void GXInvalidateTexAll(void); +GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback f); +GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback f); +void GXPreLoadEntireTexture(GXTexObj *tex_obj, GXTexRegion *region); +void GXSetTexCoordScaleManually(GXTexCoordID coord, u8 enable, u16 ss, u16 ts); +void GXSetTexCoordCylWrap(GXTexCoordID coord, u8 s_enable, u8 t_enable); +void GXSetTexCoordBias(GXTexCoordID coord, u8 s_enable, u8 t_enable); #ifdef __cplusplus } #endif diff --git a/include/dolphin/gx/GXTransform.h b/include/dolphin/gx/GXTransform.h index bc3bf107..70aa877c 100644 --- a/include/dolphin/gx/GXTransform.h +++ b/include/dolphin/gx/GXTransform.h @@ -20,6 +20,8 @@ void GXLoadPosMtxImm(f32 mtx[3][4], u32 id); void GXLoadNrmMtxImm(f32 mtx[3][4], u32 id); void GXLoadTexMtxImm(f32 mtx[][4], u32 id, GXTexMtxType type); #endif +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz); +void GXGetViewportv(f32 *vp); void GXSetViewport(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz); void GXSetCurrentMtx(u32 id); void GXSetViewportJitter(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field); diff --git a/include/dolphin/gx/GXVerify.h b/include/dolphin/gx/GXVerify.h index a4e40cfb..f43dee45 100644 --- a/include/dolphin/gx/GXVerify.h +++ b/include/dolphin/gx/GXVerify.h @@ -7,7 +7,7 @@ typedef enum { GX_WARN_NONE, GX_WARN_SEVERE, GX_WARN_MEDIUM, - GX_WARN_ALL, + GX_WARN_ALL } GXWarningLevel; #ifdef _DEBUG diff --git a/include/dolphin/gx/GXVert.h b/include/dolphin/gx/GXVert.h index 34745aaa..d57943b3 100644 --- a/include/dolphin/gx/GXVert.h +++ b/include/dolphin/gx/GXVert.h @@ -114,6 +114,12 @@ static inline void GXPosition3f32(const f32 x, const f32 y, const f32 z) { GXWGFifo.f32 = z; } +static inline void GXNormal3s16(const s16 x, const s16 y, const s16 z) { + GXWGFifo.s16 = x; + GXWGFifo.s16 = y; + GXWGFifo.s16 = z; +} + static inline void GXNormal3f32(const f32 x, const f32 y, const f32 z) { GXWGFifo.f32 = x; GXWGFifo.f32 = y; diff --git a/include/dolphin/math.h b/include/dolphin/math.h new file mode 100644 index 00000000..483d8081 --- /dev/null +++ b/include/dolphin/math.h @@ -0,0 +1,85 @@ +#ifndef _DOLPHIN_MATH +#define _DOLPHIN_MATH + +// this file is necessary to match mtx/quat.c + +#define M_PI 3.141592653589793 + +#ifndef _MATH_INLINE +#define _MATH_INLINE static inline +#endif + +extern int __float_nan[]; +extern int __float_huge[]; +extern int __double_huge[]; + +#define INFINITY (*(float *)__float_huge) +#define NAN (*(float *)__float_nan) +#define HUGE_VAL (*(double *)__double_huge) + +#ifdef __MWERKS__ +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } + else if (x == 0) + return 0; + else if (x) + return NAN; + + return INFINITY; +} + +extern inline float sqrtf(float x) +{ + const double _half = .5; + const double _three = 3.0; + volatile float y; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; + } + return x; +} +#else +double sqrt(double x); +float sqrtf(float x); +#endif + +double atan(double x); +double copysign(double x, double y); +double cos(double x); +double floor(double x); +double frexp(double x, int *exp); +double ldexp(double x, int exp); +double modf(double x, double *intpart); +double sin(double x); +double tan(double x); +double acos(double x); +double asin(double x); +double atan2(double y, double x); +double fmod(double x, double y); +double log(double x); +double pow(double x, double y); +float tanf(float x); + +#ifdef __MWERKS__ +extern inline double fabs(double x) +{ + return __fabs(x); +} +#else +double fabs(double x); +#endif + +#endif diff --git a/include/dolphin/mtx.h b/include/dolphin/mtx.h index fd975968..49dc1b7e 100644 --- a/include/dolphin/mtx.h +++ b/include/dolphin/mtx.h @@ -31,7 +31,7 @@ typedef struct { } MtxStack, *MtxStackPtr; -#define MTXDegToRad(a) ((a)*0.01745329252f) +#define MTXDegToRad(a) ((a)*0.017453292f) #define MTXRadToDeg(a) ((a)*57.29577951f) #define MTXRowCol(m, r, c) ((m)[(r)][(c)]) @@ -118,7 +118,7 @@ void PSMTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS); void PSMTXRotRad(Mtx m, char axis, f32 rad); void PSMTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA); -void PSMTXRotAxisRad(Mtx m, const Vec* axis, f32 rad); +void PSMTXRotAxisRad(register Mtx m, const Vec* axis, register f32 rad); #endif #ifdef MTX_USE_PS diff --git a/include/dolphin/os.h b/include/dolphin/os.h index 6394de8b..d255bb04 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -57,8 +57,14 @@ u32 OSUncachedToCached(void *ucaddr); #define OSDiffTick(tick1, tick0) ((s32)(tick1) - (s32)(tick0)) -#define OSRoundUp32B(v) (((u32)(v + 31) & ~31)) -#define OSRoundDown32B(x) (((u32)(x)) & ~31) +#define OSRoundUp32B(x) (((u32)(x) + 0x1F) & ~(0x1F)) +#define OSRoundDown32B(x) (((u32)(x)) & ~(0x1F)) + +#define OSRoundUp(x, align) (((x) + (align)-1) & (-(align))) +#define OSRoundUpPtr(x, align) ((void*)((((u32)(x)) + (align)-1) & (~((align)-1)))) + +#define OSRoundDown(x, align) ((x) & (-(align))) +#define OSRoundDownPtr(x, align) ((void*)(((u32)(x)) & (~((align)-1)))) void OSInit(); diff --git a/include/dolphin/os/OSBootInfo.h b/include/dolphin/os/OSBootInfo.h index 19d4dfb5..2ed59d35 100644 --- a/include/dolphin/os/OSBootInfo.h +++ b/include/dolphin/os/OSBootInfo.h @@ -45,6 +45,6 @@ typedef struct BI2Debug { #define OS_DVD_MAGIC_NINTENDO 0xC2339F3D #define OS_THREAD_STACK_MAGIC 0xDEADBABE -#define OS_BOOTROM_ADDR 0x81300000 +#define OS_BOOTROM_ADDR ((void*)0x81300000) #endif // _DOLPHIN_OSBOOTINFO diff --git a/include/dolphin/os/OSPriv.h b/include/dolphin/os/OSPriv.h index 11eeec59..6d24df24 100644 --- a/include/dolphin/os/OSPriv.h +++ b/include/dolphin/os/OSPriv.h @@ -40,6 +40,9 @@ __OSExceptionHandler __OSGetExceptionHandler(__OSException exception); OSTime __OSGetSystemTime(); OSTime __OSTimeToSystemTime(OSTime); +// OSReset.c +void __OSDoHotReset(s32); + // OSReboot void __OSReboot(u32 resetCode, u32 bootDol); diff --git a/include/dolphin/thp/THPPlayer.h b/include/dolphin/thp/THPPlayer.h index 8cd1e6ca..eb6fff62 100644 --- a/include/dolphin/thp/THPPlayer.h +++ b/include/dolphin/thp/THPPlayer.h @@ -2,11 +2,12 @@ #define _THP_THPPLAYER_H #include "types.h" -#include "Dolphin/os.h" -#include "Dolphin/gx.h" -#include "THP/THPBuffer.h" -#include "THP/THPFile.h" -#include "THP/THPInfo.h" +#include +#include "dolphin/os.h" +#include "dolphin/gx.h" +#include "dolphin/thp/THPBuffer.h" +#include "dolphin/thp/THPFile.h" +#include "dolphin/thp/THPInfo.h" #ifdef __cplusplus extern "C" { diff --git a/include/dolphin/vitypes.h b/include/dolphin/vitypes.h index db958702..be262ea3 100644 --- a/include/dolphin/vitypes.h +++ b/include/dolphin/vitypes.h @@ -50,12 +50,12 @@ typedef enum { // GCA VI_TVMODE_GCA_INT = VI_TVMODE(VI_GCA, VI_INTERLACE), VI_TVMODE_GCA_DS = VI_TVMODE(VI_GCA, VI_NON_INTERLACE), - VI_TVMODE_GCA_PROG = VI_TVMODE(VI_GCA, VI_PROGRESSIVE), + VI_TVMODE_GCA_PROG = VI_TVMODE(VI_GCA, VI_PROGRESSIVE) } VITVMode; typedef enum { VI_XFBMODE_SF = 0, - VI_XFBMODE_DF = 1, + VI_XFBMODE_DF = 1 } VIXFBMode; typedef void (*VIPositionCallback)(s16 x, s16 y); diff --git a/include/ext_math.h b/include/ext_math.h index 4651c2c4..e979909d 100644 --- a/include/ext_math.h +++ b/include/ext_math.h @@ -19,6 +19,7 @@ typedef struct vec2f { #define VECDistanceZY(a, b) sqrtf((((a)->z-(b)->z)*((a)->z-(b)->z))+(((a)->y-(b)->y)*((a)->y-(b)->y))) #define VECSumXZ(a, b) sqrtf((((a)->x+(b)->x)*((a)->x+(b)->x))+(((a)->z+(b)->z)*((a)->z+(b)->z))) +#define VECMagXYZ(a) sqrtf(((a)->x*(a)->x)+((a)->y*(a)->y)+((a)->z*(a)->z)) #define VECMagXZ(a) sqrtf(((a)->x*(a)->x)+((a)->z*(a)->z)) #define VECMagXY(a) sqrtf(((a)->x*(a)->x)+((a)->y*(a)->y)) @@ -28,6 +29,11 @@ typedef struct vec2f { #define sind(x) sin(M_PI*(x)/180.0) #define cosd(x) cos(M_PI*(x)/180.0) +#define asind(x) (180.0*(asinf((x)) / M_PI)) #define atan2d(y, x) (180.0*(atan2((y), (x)) / M_PI)) +#ifndef __MWERKS__ +void HuSetVecF(Vec* arg0, f32 arg8, f32 arg9, f32 argA) +#endif + #endif diff --git a/include/game/animdata.h b/include/game/animdata.h index 88b42cc4..63876d94 100644 --- a/include/game/animdata.h +++ b/include/game/animdata.h @@ -71,13 +71,13 @@ typedef struct anim_bmp_data { } AnimBmpData; typedef struct anim_data { - s16 bankNum; - s16 patNum; - s16 bmpNum; - s16 useNum; - AnimBankData *bank; - AnimPatData *pat; - AnimBmpData *bmp; -} AnimData; +/* 0x00 */ s16 bankNum; +/* 0x02 */ s16 patNum; +/* 0x04 */ s16 bmpNum; +/* 0x06 */ s16 useNum; +/* 0x08 */ AnimBankData *bank; +/* 0x0C */ AnimPatData *pat; +/* 0x10 */ AnimBmpData *bmp; +} AnimData; //sizeof 0x14 -#endif \ No newline at end of file +#endif diff --git a/include/game/audio.h b/include/game/audio.h index 16738144..3846ea73 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -30,41 +30,41 @@ void HuAudFXFadeOut(int seNo, s32 speed); void HuAudFXPanning(int seNo, s16 pan); void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed); void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis); -void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1); +void HuAudFXListnerUpdate(Vec *pos, Vec *heading); int HuAudFXEmiterPlay(int seId, Vec *pos); void HuAudFXEmiterUpDate(int seNo, Vec *pos); void HuAudFXListnerKill(void); -void HuAudFXPauseAll(s32 arg0); +void HuAudFXPauseAll(s32 pause); s32 HuAudFXStatusGet(int seNo); s32 HuAudFXPitchSet(int seNo, s16 pitch); s32 HuAudFXVolSet(int seNo, s16 vol); -s32 HuAudSeqPlay(s16 arg0); -void HuAudSeqStop(s32 arg0); -void HuAudSeqFadeOut(s32 arg0, s32 arg1); -void HuAudSeqAllFadeOut(s32 arg0); +s32 HuAudSeqPlay(s16 musId); +void HuAudSeqStop(s32 musNo); +void HuAudSeqFadeOut(s32 musNo, s32 speed); +void HuAudSeqAllFadeOut(s32 speed); void HuAudSeqAllStop(void); -void HuAudSeqPauseAll(s32 arg0); -void HuAudSeqPause(s32 arg0, s32 arg1, s32 arg2); -s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2); -s32 HuAudSStreamPlay(s16 arg0); -void HuAudSStreamStop(s32 arg0); -void HuAudSStreamFadeOut(s32 arg0, s32 arg1); -void HuAudSStreamAllFadeOut(s32 arg0); +void HuAudSeqPauseAll(s32 pause); +void HuAudSeqPause(s32 musNo, s32 pause, s32 speed); +s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl); +s32 HuAudSStreamPlay(s16 streamId); +void HuAudSStreamStop(s32 seNo); +void HuAudSStreamFadeOut(s32 seNo, s32 speed); +void HuAudSStreamAllFadeOut(s32 speed); void HuAudSStreamAllStop(void); -s32 HuAudSStreamStatGet(s32 arg0); +s32 HuAudSStreamStatGet(s32 seNo); void HuAudDllSndGrpSet(u16 ovl); -void HuAudSndGrpSetSet(s16 arg0); -void HuAudSndGrpSet(s16 arg0); -void HuAudSndCommonGrpSet(s16 arg0, s32 arg1); -void HuAudAUXSet(s32 arg0, s32 arg1); -void HuAudAUXVolSet(s8 arg0, s8 arg1); +void HuAudSndGrpSetSet(s16 dataSize); +void HuAudSndGrpSet(s16 grpId); +void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck); +void HuAudAUXSet(s32 auxA, s32 auxB); +void HuAudAUXVolSet(s8 auxA, s8 auxB); void HuAudVoiceInit(s16 ovl); -s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1); -s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); -void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1); -s32 HuAudCharVoicePlay(s16 arg0, s16 arg1); -s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); -void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1); +s32 HuAudPlayerVoicePlay(s16 player, s16 seId); +s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos); +void HuAudPlayerVoicePlayEntry(s16 player, s16 seId); +s32 HuAudCharVoicePlay(s16 charNo, s16 seId); +s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos); +void HuAudCharVoicePlayEntry(s16 charNo, s16 seId); extern float Snd3DBackSurDisOffset; extern float Snd3DFrontSurDisOffset; diff --git a/include/game/board/audio.h b/include/game/board/audio.h index a3b617b9..714e97fa 100755 --- a/include/game/board/audio.h +++ b/include/game/board/audio.h @@ -4,13 +4,13 @@ #include "dolphin/types.h" void BoardMusStartBoard(void); -void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3); -void BoardAudSeqFadeOutFast(s32 arg0); -void BoardAudSeqFadeOut(s32 arg0, u16 arg1); -void BoardMusLoudSet(s32 arg0, s32 arg1); -void BoardMusVolPanSet(s32 arg0, s8 arg1, u16 arg2); -void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2); -s32 BoardMusStatusGet(s32 arg0); +void BoardMusStart(s32 boardNo, s32 musId, s8 vol, u16 speed); +void BoardAudSeqFadeOutFast(s32 boardNo); +void BoardAudSeqFadeOut(s32 boardNo, u16 speed); +void BoardMusLoudSet(s32 boardNo, s32 isQuieter); +void BoardMusVolPanSet(s32 boardNo, s8 vol, u16 fadeSpeed); +void BoardAudSeqPause(s32 boardNo, s32 pause, u16 speed); +s32 BoardMusStatusGet(s32 boardNo); void BoardAudSeqClear(void); void BoardAudSeqFadeOutAll(void); void BoardAudFXPlay(void); diff --git a/include/game/board/window.h b/include/game/board/window.h index eb015c5f..dd0b87df 100644 --- a/include/game/board/window.h +++ b/include/game/board/window.h @@ -31,5 +31,6 @@ s32 BoardWinPortraitGetStar(void); void BoardWinPlayerSet(s32 player); void BoardWinStartComKeySet(void); void BoardWinComKeyFuncSet(BoardWinComKeyFunc func); +s16 BoardWinIDGet(void); #endif \ No newline at end of file diff --git a/include/game/chrman.h b/include/game/chrman.h index c20b79cc..d826fb68 100755 --- a/include/game/chrman.h +++ b/include/game/chrman.h @@ -44,6 +44,8 @@ s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3); s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2); void CharModelStepTypeSet(s16 character, s32 arg1); -#define GW_CHARACTER_MAX 8 +#define CHARNO_MAX 8 +#define CHAR_NPC_MAX 7 +#define CHAR_EFFECT_AND_PARTICLE_MAX 8 #endif diff --git a/include/game/data.h b/include/game/data.h index 288e5577..9c01b09b 100644 --- a/include/game/data.h +++ b/include/game/data.h @@ -17,7 +17,7 @@ #include "dolphin/types.h" -typedef struct data_read_stat { +struct data_read_stat { s32 dir_id; void *dir; void *file; @@ -27,7 +27,7 @@ typedef struct data_read_stat { s32 num; u32 status; DVDFileInfo file_info; -} DataReadStat; +}; void HuDataInit(void); s32 HuDataReadChk(s32 data_num); @@ -56,4 +56,4 @@ void HuDecodeData(void *src, void *dst, u32 size, s32 decode_type); extern u32 DirDataSize; -#endif \ No newline at end of file +#endif diff --git a/include/game/gamework.h b/include/game/gamework.h index 869cfad1..722ba147 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -15,10 +15,10 @@ void GWCharColorGet(s32 character, GXColor *color); void GWBoardPlayCountSet(s32 board, u8 value); void GWBoardPlayCountAdd(s32 board, u8 value); u8 GWBoardPlayCountGet(s32 board); -void GWBoardMaxStarsSet(s32 board, s32 value); -u16 GWBoardMaxStarsGet(s32 board); +void GWBoardMaxStarsSet(s32 board, s16 value); +s32 GWBoardMaxStarsGet(s32 board); void GWBoardMaxCoinsSet(s32 board, s32 value); -u16 GWBoardMaxCoinsGet(s32 board); +s32 GWBoardMaxCoinsGet(s32 board); s32 GWBoardWinCountInc(s32 character, s32 board); s32 GWBoardWinCountGet(s32 character, s32 board); void GWBoardWinCountSet(s32 character, s32 board, s32 value); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index cad58011..f26f62dc 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "game/flag.h" +#include "version.h" //HACK: to prevent prototype errors extern void HuPadRumbleAllStop(void); @@ -39,7 +40,8 @@ typedef struct system_state { }; /* 0x09 */ s8 last5_effect; /* 0x0A */ s8 player_curr; -/* 0x0B */ s8 unk0B[3]; +/* 0x0B */ u8 storyCharBit; +/* 0x0C */ s8 storyChar; /* 0x0E */ s16 block_pos; /* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32]; /* 0x30 */ u8 mess_delay; @@ -109,11 +111,11 @@ typedef struct player_state { } PlayerState; //size of 0x30 typedef struct pause_backup_config { - u8 explain_mg : 1; - u8 show_com_mg : 1; - u8 mg_list : 2; - u8 mess_speed : 2; - u8 save_mode : 2; + u8 explain_mg : 1; + u8 show_com_mg : 1; + u8 mg_list : 2; + u8 mess_speed : 2; + u8 save_mode : 2; } PauseBackupConfig; typedef struct game_stat { @@ -135,19 +137,27 @@ typedef struct game_stat { u8 story_continue : 1; u8 party_continue : 1; u8 open_w06 : 1; - u8 field10E_bit4 : 1; - u8 field10E_bit5 : 1; - u8 field10E_bit6 : 1; + u8 veryHardUnlock : 1; + u8 customPackEnable : 1; + u8 musicAllF : 1; }; /* 0x10F */ PauseBackupConfig story_pause; /* 0x110 */ PauseBackupConfig party_pause; } GameStat; +extern s16 GwLanguage; +extern s16 GwLanguageSave; + extern PlayerConfig GWPlayerCfg[4]; extern PlayerState GWPlayer[4]; extern SystemState GWSystem; extern GameStat GWGameStat; +static inline s32 GWPlayerCfgGroupGet(s32 player) +{ + return GWPlayerCfg[player].group; +} + static inline s32 GWTeamGet(void) { return GWSystem.team; @@ -155,12 +165,12 @@ static inline s32 GWTeamGet(void) static inline s32 GWMGTypeGet(void) { - return GWSystem.mg_type; + return GWSystem.mg_type; } static inline void GWMGTypeSet(s32 type) { - GWSystem.mg_type = type; + GWSystem.mg_type = type; } static inline s32 GWPartyGet(void) @@ -168,6 +178,11 @@ static inline s32 GWPartyGet(void) return GWSystem.party; } +static inline void GWLanguageSet(s16 language) +{ + GWGameStat.language = language; +} + static inline s32 GWLanguageGet(void) { return GWGameStat.language; @@ -181,9 +196,9 @@ static inline s32 GWRumbleGet(void) static inline void GWRumbleSet(s32 value) { GWGameStat.rumble = value; - if(value == 0) { - HuPadRumbleAllStop(); - } + if(value == 0) { + HuPadRumbleAllStop(); + } } static inline s32 GWBonusStarGet(void) @@ -235,20 +250,41 @@ static inline s32 GWMessSpeedGet(void) static inline void GWMessSpeedSet(s32 value) { - GWSystem.mess_speed = value; - switch(value) { - case 0: - GWSystem.mess_delay = 16; - break; - - case 2: - GWSystem.mess_delay = 48; - break; - - default: - GWSystem.mess_delay = 32; - break; - } + #if VERSION_NTSC + GWSystem.mess_speed = value; + switch(value) { + case 0: + GWSystem.mess_delay = 16; + break; + + case 2: + GWSystem.mess_delay = 48; + break; + + default: + GWSystem.mess_delay = 32; + break; + } + #else + GWSystem.mess_speed = value; + switch(value) { + case 0: + GWSystem.mess_delay = 32; + break; + + case 2: + GWSystem.mess_delay = 64; + break; + + case 1: + GWSystem.mess_delay = 48; + break; + + default: + GWSystem.mess_delay = 120; + break; + } + #endif } static inline void GWSaveModeSet(s32 value) @@ -259,16 +295,11 @@ static inline void GWSaveModeSet(s32 value) static inline s32 GWSaveModeGet(void) { if (GWSystem.save_mode == 3) { - GWSaveModeSet(1); + GWSaveModeSet(1); } return GWSystem.save_mode; } -static inline s32 GWTurnGet(void) -{ - return GWSystem.turn; -} - static inline s32 GWBoardGet(void) { return GWSystem.board; @@ -279,11 +310,26 @@ static inline s32 GWPlayerCurrGet(void) return GWSystem.player_curr; } +static inline s32 GWStoryCharGet(void) +{ + return GWSystem.storyChar; +} + +static inline void GWStoryCharSet(s32 storyChar) +{ + GWSystem.storyChar = storyChar; +} + static inline s32 GWPlayerTeamGet(s32 player) { return GWPlayer[player].team; } +static inline s32 GWPlayerHandicapGet(s32 player) +{ + return GWPlayer[player].handicap; +} + static inline s32 GWLuckyValueGet(void) { return GWSystem.lucky_value; @@ -296,32 +342,32 @@ static inline void GWLuckyValueSet(s32 value) static inline s16 GWPlayerCoinBattleGet(s32 player) { - return GWPlayer[player].coins_battle; + return GWPlayer[player].coins_battle; } static inline s16 GWPlayerCoinCollectGet(s32 player) { - return GWPlayer[player].coin_collect; + return GWPlayer[player].coin_collect; } static inline void GWPlayerCoinCollectSet(s32 player, s16 value) { - GWPlayer[player].coin_collect = value; + GWPlayer[player].coin_collect = value; } static inline s16 GWPlayerCoinWinGet(s32 player) { - return GWPlayer[player].coin_win; + return GWPlayer[player].coin_win; } static inline void GWPlayerCoinWinSet(s32 player, s16 value) { - if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { - GWPlayer[player].coin_win = value; - } + if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { + GWPlayer[player].coin_win = value; + } } #define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player))+(value)) -#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), GWPlayerCoinCollectGet((player))+(value)) +#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), (s32)GWPlayerCoinCollectGet((player))+(value)) #endif diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index db94ac1e..9cf16673 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -11,10 +11,7 @@ typedef struct particle_data ParticleData; typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix); typedef struct { - /* 0x00 */ union { - u16 unk00; - s16 unk00_s16; - }; + /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; /* 0x04 */ s16 unk04; /* 0x06 */ s16 unk06; @@ -29,7 +26,7 @@ typedef struct { /* 0x40 */ GXColor unk40; } HsfanimStruct01; // Size 0x44 -typedef struct particle_data { +struct particle_data { /* 0x00 */ s16 unk_00; /* 0x02 */ s16 unk_02; /* 0x04 */ Vec unk_04; @@ -53,7 +50,7 @@ typedef struct particle_data { /* 0x4C */ Vec *unk_4C; /* 0x50 */ void *unk_50; /* 0x54 */ ParticleHook unk_54; -} ParticleData; // Size 0x58 +}; // Size 0x58 typedef struct { /* 0x00 */ s16 unk00; @@ -69,7 +66,7 @@ typedef struct { /* 0x2C */ s16 unk2C; /* 0x2E */ GXColor unk2E[4]; /* 0x3E */ GXColor unk3E[4]; -} HsfanimStruct00; // Size unknown +} HsfanimStruct00; // Size (min:0x4E, max:0x50) typedef struct { /* 0x00 */ u16 unk00; diff --git a/include/game/hsfdraw.h b/include/game/hsfdraw.h index 12d6e179..d3b46df6 100755 --- a/include/game/hsfdraw.h +++ b/include/game/hsfdraw.h @@ -6,7 +6,7 @@ typedef struct model_data ModelData; -typedef struct { +typedef struct hsfdraw_struct_01 { /* 0x00 */ u16 unk00; /* 0x02 */ s16 unk02; /* 0x04 */ s16 unk04; @@ -44,10 +44,19 @@ typedef struct hsf_const_data { AnimData *hiliteMap; } HsfConstData; +typedef struct hsf_draw_object { + /* 0x00 */ ModelData *model; + /* 0x04 */ HsfObject *object; + /* 0x08 */ float z; + /* 0x0C */ Mtx matrix; + /* 0x3C */ Vec scale; +} HsfDrawObject; + void Hu3DDrawPreInit(void); void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2); s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2); +void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1); void Hu3DDrawPost(void); void MakeDisplayList(s16 arg0, u32 arg1); HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1); diff --git a/include/game/hsfformat.h b/include/game/hsfformat.h index 04f3d458..36c083a9 100644 --- a/include/game/hsfformat.h +++ b/include/game/hsfformat.h @@ -99,7 +99,7 @@ typedef struct hsf_palette { typedef struct hsf_attribute { char *name; - void *unk04; + struct hsfdraw_struct_01 *unk04; u8 unk8[4]; float unk0C; u8 unk10[4]; diff --git a/include/game/hsfman.h b/include/game/hsfman.h index 87299d79..2be96d31 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -1,10 +1,10 @@ #ifndef _GAME_HSFMAN_H #define _GAME_HSFMAN_H +#include "game/data.h" #include "game/hsfanim.h" #include "game/hsfformat.h" #include "game/memory.h" -#include "game/data.h" #define HU3D_MODEL_MAX 512 #define HU3D_MOTION_MAX 256 @@ -79,11 +79,12 @@ #define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) +typedef struct model_data ModelData; typedef struct particle_data ParticleData; typedef void (*ModelHookFunc)(struct model_data *, Mtx); -typedef struct model_data { +struct model_data { u8 unk_00; u8 unk_01; u8 unk_02; @@ -107,25 +108,25 @@ typedef struct model_data { u32 unk_4C; u32 attr; u32 motion_attr; - Point3d unk_58; - f32 unk_64; - f32 unk_68; - f32 unk_6C; - f32 unk_70; - f32 unk_74; - f32 unk_78; - f32 unk_7C; - f32 unk_80; - f32 unk_84; - f32 unk_88; - f32 unk_8C; - f32 unk_90; - f32 unk_94; - f32 unk_98; - f32 unk_9C; - f32 unk_A0; - f32 unk_A4[4]; - f32 unk_B4[4]; + Vec unk_58; + float unk_64; + float unk_68; + float unk_6C; + float unk_70; + float unk_74; + float unk_78; + float unk_7C; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + float unk_94; + float unk_98; + float unk_9C; + float unk_A0; + float unk_A4[4]; + float unk_B4[4]; union { HsfData *hsfData; ModelHookFunc hook; @@ -136,13 +137,13 @@ typedef struct model_data { Vec scale; Mtx unk_F0; void *unk_120; -} ModelData; // sizeof 0x124 +}; // sizeof 0x124 typedef struct camera_data { - f32 fov; - f32 near; - f32 far; - f32 aspect; - f32 aspect_dupe; + float fov; + float near; + float far; + float aspect; + float aspect_dupe; Vec pos; Vec up; Vec target; @@ -150,20 +151,20 @@ typedef struct camera_data { s16 scissor_y; s16 scissor_w; s16 scissor_h; - f32 viewport_x; - f32 viewport_y; - f32 viewport_w; - f32 viewport_h; - f32 near_z; - f32 far_z; + float viewport_x; + float viewport_y; + float viewport_w; + float viewport_h; + float near_z; + float far_z; } CameraData; // sizeof 0x58 typedef struct ThreeDProjectionStruct { u8 unk_00; char unk_01[0x3]; void *unk_04; Vec unk_08; - Point3d unk_14; - Point3d unk_20; + Vec unk_14; + Vec unk_20; Vec unk_2C; Mtx unk_38; Mtx unk_68; @@ -172,7 +173,7 @@ typedef struct shadow_data { u8 unk_00; u8 unk_01; u16 unk_02; - void* unk_04; + void *unk_04; Vec unk_08; Vec unk_14; Vec unk_20; @@ -183,8 +184,8 @@ typedef struct shadow_data { typedef struct light_data { s16 unk_00; s16 unk_02; - f32 unk_04; - f32 unk_08; + float unk_04; + float unk_08; char unk_0C[0x10]; Vec unk_1C; Vec unk_28; @@ -192,8 +193,8 @@ typedef struct light_data { GXColor color; } LightData; -extern void GXWaitDrawDone(); /* extern */ -extern void GXInitSpecularDir(GXLightObj*, f32, f32, f32); +extern void GXWaitDrawDone(); /* extern */ +extern void GXInitSpecularDir(GXLightObj *, float, float, float); void Hu3DInit(void); void Hu3DPreProc(void); @@ -208,11 +209,11 @@ s16 Hu3DModelLink(s16); s16 Hu3DHookFuncCreate(ModelHookFunc); void Hu3DModelKill(s16); void Hu3DModelAllKill(void); -void Hu3DModelPosSet(s16, f32, f32, f32); +void Hu3DModelPosSet(s16, float, float, float); void Hu3DModelPosSetV(s16, Vec *); -void Hu3DModelRotSet(s16, f32, f32, f32); +void Hu3DModelRotSet(s16, float, float, float); void Hu3DModelRotSetV(s16, Vec *); -void Hu3DModelScaleSet(s16, f32, f32, f32); +void Hu3DModelScaleSet(s16, float, float, float); void Hu3DModelScaleSetV(s16, Vec *); void Hu3DModelAttrSet(s16, u32); void Hu3DModelAttrReset(s16, u32); @@ -222,16 +223,16 @@ void Hu3DModelClusterAttrSet(s16, s16, s32); void Hu3DModelClusterAttrReset(s16, s16, s32); void Hu3DModelCameraSet(s16, u16); void Hu3DModelLayerSet(s16, s16); -HsfObject* Hu3DModelObjPtrGet(s16, char *); -void Hu3DModelTPLvlSet(s16, f32); -void Hu3DModelHiliteMapSet(s16, AnimData*); +HsfObject *Hu3DModelObjPtrGet(s16, char *); +void Hu3DModelTPLvlSet(s16, float); +void Hu3DModelHiliteMapSet(s16, AnimData *); void Hu3DModelShadowSet(s16); void Hu3DModelShadowReset(s16); void Hu3DModelShadowDispOn(s16); void Hu3DModelShadowDispOff(s16); void Hu3DModelShadowMapSet(s16); void Hu3DModelShadowMapObjSet(s16, char *); -void Hu3DModelAmbSet(s16, f32, f32, f32); +void Hu3DModelAmbSet(s16, float, float, float); void Hu3DModelHookSet(s16, char *, s16); void Hu3DModelHookReset(s16); void Hu3DModelHookObjReset(s16, char *); @@ -240,10 +241,10 @@ void Hu3DModelProjectionReset(s16, s16); void Hu3DModelHiliteTypeSet(s16, s16); void Hu3DModelReflectTypeSet(s16, s16); void Hu3DCameraCreate(s32); -void Hu3DCameraPerspectiveSet(s32, f32, f32, f32, f32); -void Hu3DCameraViewportSet(s32, f32, f32, f32, f32, f32, f32); +void Hu3DCameraPerspectiveSet(s32, float, float, float, float); +void Hu3DCameraViewportSet(s32, float, float, float, float, float, float); void Hu3DCameraScissorSet(s32, u32, u32, u32, u32); -void Hu3DCameraPosSet(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); +void Hu3DCameraPosSet(s32, float, float, float, float, float, float, float, float, float); void Hu3DCameraPosSetV(s32 cam, Vec *pos, Vec *up, Vec *target); void Hu3DCameraKill(s32); void Hu3DCameraAllKill(void); @@ -254,47 +255,47 @@ void Hu3DCameraMotionOn(s16, s8); void Hu3DCameraMotionStart(s16, u16); void Hu3DCameraMotionOff(s16); void Hu3DLighInit(void); -s16 Hu3DGLightCreate(f32, f32, f32, f32, f32, f32, u8, u8, u8); -s16 Hu3DGLightCreateV(Vec*, Vec*, GXColor*); -s16 Hu3DLLightCreate(s16, f32, f32, f32, f32, f32, f32, u8, u8, u8); -s16 Hu3DLLightCreateV(s16, Vec*, Vec*, GXColor*); -void Hu3DGLightSpotSet(s16, f32, u16); -void Hu3DLLightSpotSet(s16, s16, f32, u16); +s16 Hu3DGLightCreate(float, float, float, float, float, float, u8, u8, u8); +s16 Hu3DGLightCreateV(Vec *, Vec *, GXColor *); +s16 Hu3DLLightCreate(s16, float, float, float, float, float, float, u8, u8, u8); +s16 Hu3DLLightCreateV(s16, Vec *, Vec *, GXColor *); +void Hu3DGLightSpotSet(s16, float, u16); +void Hu3DLLightSpotSet(s16, s16, float, u16); void Hu3DGLightInfinitytSet(s16); void Hu3DLLightInfinitytSet(s16, s16); -void Hu3DGLightPointSet(s16, f32, f32, u16); -void Hu3DLLightPointSet(s16, s16, f32, f32, u16); +void Hu3DGLightPointSet(s16, float, float, u16); +void Hu3DLLightPointSet(s16, s16, float, float, u16); void Hu3DGLightKill(s16); void Hu3DLLightKill(s16, s16); void Hu3DLightAllKill(void); void Hu3DGLightColorSet(s16, u8, u8, u8, u8); void Hu3DLLightColorSet(s16, s16, u8, u8, u8, u8); -void Hu3DGLightPosSetV(s16, Vec*, Point3d*); -void Hu3DLLightPosSetV(s16, s16, Vec*, Point3d*); -void Hu3DGLightPosSet(s16, f32, f32, f32, f32, f32, f32); -void Hu3DLLightPosSet(s16, s16, f32, f32, f32, f32, f32, f32); -void Hu3DGLightPosAimSetV(s16, Point3d*, Point3d*); -void Hu3DLLightPosAimSetV(s16, s16, Point3d*, Point3d*); -void Hu3DGLightPosAimSet(s16, f32, f32, f32, f32, f32, f32); -void Hu3DLLightPosAimSet(s16, s16, f32, f32, f32, f32, f32, f32); +void Hu3DGLightPosSetV(s16, Vec *, Vec *); +void Hu3DLLightPosSetV(s16, s16, Vec *, Vec *); +void Hu3DGLightPosSet(s16, float, float, float, float, float, float); +void Hu3DLLightPosSet(s16, s16, float, float, float, float, float, float); +void Hu3DGLightPosAimSetV(s16, Vec *, Vec *); +void Hu3DLLightPosAimSetV(s16, s16, Vec *, Vec *); +void Hu3DGLightPosAimSet(s16, float, float, float, float, float, float); +void Hu3DLLightPosAimSet(s16, s16, float, float, float, float, float, float); void Hu3DGLightStaticSet(s16, s32); void Hu3DLLightStaticSet(s16, s16, s32); s32 Hu3DModelLightInfoSet(s16, s16); -s16 Hu3DLightSet(ModelData*, Mtx*, Mtx*, f32); -void lightSet(LightData* arg0, s16 arg1, Mtx *arg2, Mtx *arg3, f32 arg8); +s16 Hu3DLightSet(ModelData *, Mtx *, Mtx *, float); +void lightSet(LightData *arg0, s16 arg1, Mtx *arg2, Mtx *arg3, float arg8); void Hu3DReflectNoSet(s16 arg0); -void Hu3DFogSet(f32, f32, u8, u8, u8); +void Hu3DFogSet(float, float, u8, u8, u8); void Hu3DFogClear(void); -void Hu3DShadowCreate(f32, f32, f32); -void Hu3DShadowPosSet(Vec*, Vec*, Vec*); -void Hu3DShadowTPLvlSet(f32); +void Hu3DShadowCreate(float, float, float); +void Hu3DShadowPosSet(Vec *, Vec *, Vec *); +void Hu3DShadowTPLvlSet(float); void Hu3DShadowSizeSet(u16); void Hu3DShadowExec(void); -s16 Hu3DProjectionCreate(void*, f32, f32, f32); +s16 Hu3DProjectionCreate(void *, float, float, float); void Hu3DProjectionKill(s16); -void Hu3DProjectionPosSet(s16, Vec*, Vec*, Vec*); -void Hu3DProjectionTPLvlSet(s16, f32); -void Hu3DMipMapSet(char*, s16, s32, f32); +void Hu3DProjectionPosSet(s16, Vec *, Vec *, Vec *); +void Hu3DProjectionTPLvlSet(s16, float); +void Hu3DMipMapSet(char *, s16, s32, float); extern ModelData Hu3DData[0x200]; extern CameraData Hu3DCamera[0x10]; diff --git a/include/game/minigame_seq.h b/include/game/minigame_seq.h index 8e443630..6f20a101 100644 --- a/include/game/minigame_seq.h +++ b/include/game/minigame_seq.h @@ -48,7 +48,7 @@ typedef struct seq_work SeqWork; typedef s32 (*SeqUpdateFunc)(SeqWork *work); typedef s32 (*SeqInitFunc)(SeqWork *work, va_list params); -typedef struct seq_work { +struct seq_work { SeqUpdateFunc update; char *data; float x; @@ -73,7 +73,7 @@ typedef struct seq_work { u8 stat; u8 unk_7C; u8 unk_7D; -} SeqWork; +}; void MGSeqInit(void); void MGSeqMain(void); @@ -91,6 +91,32 @@ void MGSeqPauseEnableCtrl(s32 flag); void MGSeqPracticeInit(void); void MGSeqPracticeExitCheck(omObjData *object); +s32 MGSeqInitTimer(SeqWork *work, va_list params); +s32 MGSeqUpdateTimer(SeqWork *work); + +s32 MGSeqInitType2(SeqWork *work, va_list params); +s32 MGSeqUpdateType2(SeqWork *work); + +s32 MGSeqUpdateMGBattle(SeqWork *work); + +s32 MGSeqInitMGBasic(SeqWork *work, va_list params); +s32 MGSeqUpdateMGBasic(SeqWork *work); +s32 MGSeqInitMGCommon(SeqWork *work, va_list params); +s32 MGSeqUpdateMG1vs3(SeqWork *work); +s32 MGSeqUpdateMGStory(SeqWork *work); +s32 MGSeqUpdateMG2vs2(SeqWork *work); +s32 MGSeqUpdateMGBowser(SeqWork *work); + +s32 MGSeqInitWin(SeqWork *work, va_list params); +s32 MGSeqUpdateWin(SeqWork *work); +s32 MGSeqInitDraw(SeqWork *work, va_list params); +s32 MGSeqUpdateDraw(SeqWork *work); +s32 MGSeqInitRecord(SeqWork *work, va_list params); +s32 MGSeqUpdateRecord(SeqWork *work); + +s32 MGSeqInitFlip(SeqWork *work, va_list params); +s32 MGSeqUpdateFlip(SeqWork *work); + extern OverlayID mgSeqOvlPrev; #endif diff --git a/include/game/msm.h b/include/game/msm.h index 9ab79e8e..e5106677 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "musyx/musyx.h" +#include "game/msm_data.h" #define MSM_SEPARAM_NONE 0 #define MSM_SEPARAM_VOL (1 << 0) @@ -12,6 +13,7 @@ #define MSM_SEPARAM_AUXVOLA (1 << 4) #define MSM_SEPARAM_AUXVOLB (1 << 5) #define MSM_SEPARAM_POS (1 << 6) +#define MSM_SEPARAM_PAD (1 << 7) #define MSM_LISTENER_NONE 0 #define MSM_LISTENER_STARTDIS (1 << 0) @@ -39,17 +41,24 @@ #define MSM_ERR_READFAIL -2 #define MSM_ERR_OUTOFMEM -10 #define MSM_ERR_OUTOFAMEM -20 -#define MSM_ERR_INITFAIL -20 +#define MSM_ERR_INITFAIL -30 #define MSM_ERR_INVALID_AUXPARAM -31 +#define MSM_ERR_GRP_FAILPUSH -32 #define MSM_ERR_PLAYFAIL -33 +#define MSM_LISTENER_NO_UPDATA -34 #define MSM_ERR_STREAMALLOC_FAIL -35 #define MSM_ERR_INSTALLED -36 +#define MSM_ERR_64 -100 +#define MSM_ERR_STACK_OVERFLOW -101 #define MSM_ERR_GRP_NOTLOADED -103 +#define MSM_ERR_CHANLIMIT -110 +#define MSM_ERR_INVALIDSE -111 #define MSM_ERR_INVALIDID -120 #define MSM_ERR_INVALIDFILE -121 #define MSM_ERR_REMOVEDID -122 #define MSM_ERR_MUSGRP_NOTLOADED -123 #define MSM_ERR_OUTOFMUS -130 +#define MSM_ERR_RANGE_STREAM -140 #define MSM_VOL_MAX 127 #define MSM_PAN_LEFT 32 @@ -123,19 +132,6 @@ typedef struct msmSeParam_s { Vec pos; } MSM_SEPARAM; -typedef struct msmSe_s { - u16 groupId; - u16 fxId; - s8 vol; - s8 pan; - s16 pitchBend; - u8 span; - u8 reverb; - u8 chorus; - u8 doppler; - s8 comp; - u8 pad[3]; -} MSMSE; typedef struct msmSeListener_s { s32 flag; @@ -164,16 +160,16 @@ typedef struct msmStreamParam_s { } MSM_STREAMPARAM; s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); -void msmSysSetOutputMode(SND_OUTPUTMODE mode); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); -s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupBase(s32 grpNum); +s32 msmSysSetAux(s32 auxA, s32 auxB); s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); int msmSePlay(int seId, MSM_SEPARAM *param); s32 msmSeStop(int seNo, s32 speed); -s32 msmSePauseAll(BOOL pause, s32 speed); +void msmSePauseAll(BOOL pause, s32 speed); s32 msmSePause(int seNo, BOOL pause, s32 speed); void msmSeStopAll(BOOL checkGrp, s32 speed); s32 msmSeSetListener(Vec *pos, Vec *heading, float sndDist, float sndSpeed, MSM_SELISTENER *listener); @@ -181,16 +177,20 @@ s32 msmSeUpdataListener(Vec *pos, Vec *heading); void msmSeDelListener(void); s32 msmSeGetStatus(int seNo); s32 msmSeGetNumPlay(BOOL baseGrp); -s32 msmSeGetEntryID(s16 seId, int *seNo); +s32 msmSeGetEntryID(s32 seId, int *seNo); +void msmSeSetMasterVolume(s32 vol); +MSM_SE* msmSeGetIndexPtr(s32 seId); int msmMusPlay(int musId, MSM_MUSPARAM *musParam); s32 msmMusStop(int musNo, s32 speed); -s32 msmMusPauseAll(BOOL pause, s32 speed); +void msmMusPauseAll(BOOL pause, s32 speed); s32 msmMusPause(int musNo, BOOL pause, s32 speed); s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusGetStatus(int musNo); s32 msmMusGetNumPlay(BOOL baseGrp); +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param); +void msmMusSetMasterVolume(s32 vol); int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam); s32 msmStreamStop(int streamNo, s32 speed); @@ -199,5 +199,7 @@ s32 msmStreamPause(int streamNo, BOOL pause, s32 speed); void msmStreamStopAll(s32 speed); s32 msmStreamGetStatus(int streamNo); +void msmStreamSetMasterVolume(s32 arg0); +void msmStreamSetOutputMode(s32 outputMode); -#endif \ No newline at end of file +#endif diff --git a/include/game/msm_data.h b/include/game/msm_data.h new file mode 100644 index 00000000..0c282ffb --- /dev/null +++ b/include/game/msm_data.h @@ -0,0 +1,185 @@ +#ifndef _MSM_DATA_H +#define _MSM_DATA_H + +#include "dolphin.h" +#include "musyx/musyx.h" + +#define MSM_STREAM_FLAG_STEREO 0x1 +#define MSM_STREAM_FLAG_LOOP 0x2 + +#define MSM_FILE_VERSION 2 +#define MSM_PDT_FILE_VERSION 1 + +typedef struct MSMHeader_s { + s32 magic; + s32 version; + s32 endOfs; + s32 endSize; + s32 infoOfs; + u32 infoSize; + s32 auxParamOfs; + u32 auxParamSize; + s32 grpInfoOfs; + s32 grpInfoSize; + s32 musOfs; + s32 musSize; + s32 seOfs; + s32 seSize; + s32 grpDataOfs; + s32 grpDataSize; + s32 sampOfs; + s32 sampSize; + s32 dummyMusOfs; + s32 dummyMusSize; + s32 grpSetOfs; + s32 grpSetSize; + s32 pad[2]; +} MSM_HEADER; // sizeof 0x60 + +typedef struct MSMInfo_s { + s8 voices; + s8 music; + s8 sfx; + s8 grpMax; + s16 musMax; + s16 seMax; + s8 musChanMax; + s8 stackDepthA; + s8 stackDepthB; + s8 surroundF; + s8 unkC[2]; + s8 auxParamA; + s8 auxParamB; + s32 minMem; + s32 aramSize; + s32 grpBufSizeA; + s32 grpBufSizeB; + s32 dummyMusSize; + s32 unk24; + s8 baseGrpNum; + s8 baseGrp[23]; +} MSM_INFO; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBHI; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBSTD; + +typedef struct { + u32 baseDelay; + u32 variation; + u32 period; +} MSM_AUXPARAM_CHORUS; + +typedef struct { + u32 delay[3]; + u32 feedback[3]; + u32 output[3]; +} MSM_AUXPARAM_DELAY; + +typedef struct MSMAuxParam_s { + s8 type; + u8 pad[3]; + union { + MSM_AUXPARAM_REVERBHI revHi; + MSM_AUXPARAM_REVERBSTD revStd; + MSM_AUXPARAM_CHORUS chorus; + MSM_AUXPARAM_DELAY delay; + }; +} MSM_AUXPARAM; + +typedef struct MSMSe_s { + SND_GROUPID gid; + SND_FXID fxId; + s8 vol; + s8 pan; + s16 pitchBend; + u8 span; + u8 reverb; + u8 chorus; + s8 emitterF; + s8 emiComp; + u8 pad[3]; +} MSM_SE; + +typedef struct MSMMus_s { + SND_GROUPID sgid; + SND_SONGID sid; + s32 songOfs; + s32 songSize; + s8 songGrp; + s8 vol; + u8 pad[2]; +} MSM_MUS; // Size 0x10 + +typedef struct MSMGrpHead_s { + s32 poolOfs; + s32 projOfs; + s32 sdirOfs; + s32 sngOfs; +} MSM_GRP_HEAD; + +typedef struct MSMGrpInfo_s { + SND_GROUPID gid; + s8 stackNo; + s8 subGrpId; + s32 dataOfs; + s32 dataSize; + s32 sampOfs; + s32 sampSize; + u8 pad[12]; +} MSM_GRP_INFO; + +typedef struct MSMGrpSet_s { + s8 numGrpSet; + s8 grpSetW; + s8 data[1]; +} MSM_GRP_SET; + +typedef struct MSMStreamHeader_s { + s16 version; + s16 streamMax; + s32 chanMax; + s32 sampleFrq; + s32 maxBufs; + u32 streamPackListOfs; + u32 adpcmParamOfs; + u32 streamPackOfs; + u32 sampleOfs; +} MSM_STREAM_HEADER; + +typedef struct MSMStream_s { + s32 sampleOfs; + s16 adpcmParamIdx; + u16 pad; +} MSM_STREAM; + +typedef struct MSMStreamPack_s { + s8 flag; + s8 vol; + s8 pan; + s8 span; + s8 auxA; + s8 auxB; + u16 frq; + u32 loopOfsEnd; + u32 loopOfsStart; + MSM_STREAM stream[2]; +} MSM_STREAM_PACK; // Size unknown + +#endif diff --git a/include/math.h b/include/math.h index 389629df..5ac49892 100644 --- a/include/math.h +++ b/include/math.h @@ -7,24 +7,50 @@ #define _MATH_INLINE static inline #endif +extern int __float_nan[]; +extern int __float_huge[]; +extern int __double_huge[]; + +#define INFINITY (*(float *)__float_huge) +#define NAN (*(float *)__float_nan) +#define HUGE_VAL (*(double *)__double_huge) + #ifdef __MWERKS__ +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } + else if (x == 0) + return 0; + else if (x) + return NAN; + + return INFINITY; +} + extern inline float sqrtf(float x) { static const double _half = .5; static const double _three = 3.0; volatile float y; - if (x > 0.0f) - { - double guess = __frsqrte((double)x); // returns an approximation to - guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits - guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits - guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits - y = (float)(x*guess); - return y ; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; } return x; } #else +double sqrt(double x); float sqrtf(float x); #endif @@ -48,24 +74,54 @@ float tanf(float x); #ifdef __MWERKS__ extern inline double fabs(double x) { - return __fabs(x); + return __fabs(x); } #else double fabs(double x); #endif -_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 atanf(float x) { return (float)atan((double)x); } -_MATH_INLINE float asinf(float x) { return (float)asin((double)x); } -_MATH_INLINE float acosf(float x) { return (float)acos((double)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 atanf(float x) +{ + return (float)atan((double)x); +} +_MATH_INLINE float asinf(float x) +{ + return (float)asin((double)x); +} +_MATH_INLINE float acosf(float x) +{ + return (float)acos((double)x); +} -_MATH_INLINE float fmodf(float x, float m) { return (float)fmod((double)x, (double)m); } +_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 floorf(float x) +{ + return floor(x); +} -_MATH_INLINE float powf(float __x, float __y) { return pow(__x, __y); } +_MATH_INLINE float powf(float __x, float __y) +{ + return pow(__x, __y); +} #endif diff --git a/include/msm/msmmem.h b/include/msm/msmmem.h index 1acc500a..30d73f75 100644 --- a/include/msm/msmmem.h +++ b/include/msm/msmmem.h @@ -3,8 +3,8 @@ #include "dolphin/types.h" -void msmMemFree(void *); -void *msmMemAlloc(u32); -void msmMemInit(void *, u32); +void msmMemFree(void *ptr); +void *msmMemAlloc(u32 sze); +void msmMemInit(void *ptr, u32 size); #endif diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h index 8d3554fc..586af22c 100644 --- a/include/msm/msmmus.h +++ b/include/msm/msmmus.h @@ -1,10 +1,21 @@ #ifndef MSMMUS_H #define MSMMUS_H -#include "dolphin.h" -#include "dolphin/types.h" +#include "game/msm.h" +#include "msm/msmsys.h" -s32 msmMusInit(s32 *, DVDFileInfo *); +void msmMusFdoutEnd(void); void msmMusPeriodicProc(void); +s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); +s32 msmMusGetNumPlay(BOOL baseGrp); +s32 msmMusGetStatus(int musNo); +void msmMusSetMasterVolume(s32 arg0); +s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1); +void msmMusPauseAll(BOOL pause, s32 speed); +s32 msmMusPause(int musNo, BOOL pause, s32 speed); +void msmMusStopAll(BOOL checkGrp, s32 speed); +s32 msmMusStop(int musNo, s32 speed); +int msmMusPlay(int musId, MSM_MUSPARAM* musParam); +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmse.h b/include/msm/msmse.h index 10242362..b765a771 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -1,10 +1,23 @@ #ifndef MSMSE_H #define MSMSE_H -#include "dolphin.h" -#include "dolphin/types.h" +#include "game/msm.h" +#include "msm/msmsys.h" -s32 msmSeInit(s32 *, DVDFileInfo *); void msmSePeriodicProc(void); +MSM_SE* msmSeGetIndexPtr(s32 arg0); +void msmSeDelListener(void); +s32 msmSeUpdataListener(Vec* pos, Vec* heading); +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener); +s32 msmSeGetEntryID(s32 seId, int* seNo); +s32 msmSeGetNumPlay(BOOL baseGrp); +s32 msmSeGetStatus(int seNo); +void msmSeSetMasterVolume(s32 arg0); +s32 msmSeSetParam(int seNo, MSM_SEPARAM* param); +void msmSePauseAll(BOOL pause, s32 speed); +void msmSeStopAll(BOOL checkGrp, s32 speed); +s32 msmSeStop(int seNo, s32 speed); +int msmSePlay(int seId, MSM_SEPARAM* param); +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h index c21347b0..b86fcaad 100644 --- a/include/msm/msmstream.h +++ b/include/msm/msmstream.h @@ -1,12 +1,18 @@ #ifndef MSMSTREAM_H #define MSMSTREAM_H -#include "dolphin/types.h" +#include "game/msm.h" +s32 msmStreamGetStatus(int streamNo); +void msmStreamSetMasterVolume(s32 arg0); +void msmStreamStopAll(s32 speed); +s32 msmStreamStop(int streamNo, s32 speed); +int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam); void msmStreamPeriodicProc(void); -void msmStreamSetOutputMode(s8); +void msmStreamSetOutputMode(s32 arg0); void msmStreamAmemFree(void); s32 msmStreamAmemAlloc(void); -s32 msmStreamInit(char *); +s32 msmStreamInit(char* arg0); + #endif diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h new file mode 100755 index 00000000..6a55a4c6 --- /dev/null +++ b/include/msm/msmsys.h @@ -0,0 +1,84 @@ +#ifndef MSMSYS_H +#define MSMSYS_H + +#include "game/msm.h" // TODO remove, only for decomp + +#include "dolphin.h" + +#define MSM_AUX_REVERBHI 0 +#define MSM_AUX_REVERBSTD 1 +#define MSM_AUX_CHORUS 2 +#define MSM_AUX_DELAY 3 + +#define MSM_AUXNO_NULL -2 +#define MSM_AUXNO_UNSET -1 + +typedef union { + SND_AUX_REVERBHI revHi; + SND_AUX_REVERBSTD revStd; + SND_AUX_CHORUS chorus; + SND_AUX_DELAY delay; +} MSM_AUX; // Size 0x1E0 + +typedef struct MSMGrpWork_s { + s8 grpId; + s8 baseGrpF; + u32 num; + void *buf; +} MSM_GRP_STACK; + +typedef struct MSMSys_s { + s32 msmEntryNum; + s8 outputMode; + s8 unk5; + s8 unk6; + s8 arInitF; + s32 aramP; + MSM_HEADER *header; + MSM_INFO *info; + MSM_AUXPARAM *auxParam; + s8 auxParamNo[2]; + MSM_AUX aux[2]; // 0: userA, 1: userB + s8 grpMax; + s32 grpNum; + u32 sampSize; + u32 sampSizeBase; + MSM_GRP_INFO *grpInfo; + MSM_GRP_SET *grpSet; + s8 baseGrpNum; + MSM_GRP_HEAD *grpData[15]; + s8 grpStackAMax; + u8 grpStackADepth; + s8 grpStackAOfs; + void *grpBufA; + MSM_GRP_STACK grpStackA[4]; + s8 grpStackBMax; + u8 grpStackBDepth; + s8 grpStackBOfs; + void *grpBufB; + MSM_GRP_STACK grpStackB[10]; + s32 irqDepth; + BOOL irqState; + AIDCallback oldAIDCallback; + s32 timer; +} MSM_SYS; + +s32 msmSysSearchGroupStack(s32 arg0, s32 arg1); +s32 msmSysGroupInit(DVDFileInfo *arg0); +void msmSysIrqDisable(void); +void msmSysIrqEnable(void); +BOOL msmSysCheckBaseGroup(s32 arg0); +void *msmSysGetGroupDataPtr(s32 arg0); +BOOL msmSysCheckLoadGroupID(s32 arg0); +void msmSysRegularProc(void); +s32 msmSysGetOutputMode(void); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); +s32 msmSysGetSampSize(BOOL baseGrp); +s32 msmSysDelGroupAll(void); +s32 msmSysDelGroupBase(s32 grpNum); +s32 msmSysLoadGroupBase(s32 arg0, void *arg1); +s32 msmSysLoadGroupSet(s32 arg0, void *arg1); +void msmSysCheckInit(void); +s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); + +#endif diff --git a/include/ovl_table.h b/include/ovl_table.h index 4f66a2d2..fe695ea9 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -1,3 +1,5 @@ +#include "version.h" + OVL_DEFINE(OVL__MINI, "dll/_minigameDLL.rel") OVL_DEFINE(OVL_BOOT, "dll/bootdll.rel") OVL_DEFINE(OVL_E3SETUP, "dll/e3setupDLL.rel") @@ -69,10 +71,17 @@ OVL_DEFINE(OVL_M461, "dll/m461dll.rel") OVL_DEFINE(OVL_M462, "dll/m462dll.rel") OVL_DEFINE(OVL_M463, "dll/m463dll.rel") OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") +#if VERSION_JP +OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") +OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") +OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") +OVL_DEFINE(OVL_MOVIE, "dll/moviedll.rel") +#else OVL_DEFINE(OVL_MESS, "dll/messdll.rel") OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") +#endif OVL_DEFINE(OVL_MPEX, "dll/mpexdll.rel") OVL_DEFINE(OVL_MSETUP, "dll/msetupdll.rel") OVL_DEFINE(OVL_MSTORY2, "dll/mstory2dll.rel") @@ -96,4 +105,4 @@ OVL_DEFINE(OVL_W06, "dll/w06dll.rel") OVL_DEFINE(OVL_W10, "dll/w10dll.rel") OVL_DEFINE(OVL_W20, "dll/w20dll.rel") OVL_DEFINE(OVL_W21, "dll/w21dll.rel") -OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") \ No newline at end of file +OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") diff --git a/include/stdarg.h b/include/stdarg.h index 1ca0f853..e2cceee7 100644 --- a/include/stdarg.h +++ b/include/stdarg.h @@ -1,19 +1,39 @@ -#ifndef STDARG_H -#define STDARG_H +#ifndef _MSL_COMMON_STDARG_H +#define _MSL_COMMON_STDARG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __MWERKS__ typedef struct { - char gpr; - char fpr; - char reserved[2]; - char* input_arg_area; - char* reg_save_area; + char gpr; + char fpr; + char reserved[2]; + char* input_arg_area; + char* reg_save_area; } __va_list[1]; typedef __va_list va_list; +#ifndef __MWERKS__ +extern void __builtin_va_info(va_list*); +#endif + void* __va_arg(va_list v_list, unsigned char type); -#define va_start(ap, fmt) ((void) fmt, __builtin_va_info(&ap)) -#define va_arg(ap, t) (*((t*) __va_arg(ap, _var_arg_typeof(t)))) -#define va_end(ap) (void) 0 +#define va_start(ap, fmt) ((void)fmt, __builtin_va_info(&ap)) +#define va_arg(ap, t) (*((t*)__va_arg(ap, _var_arg_typeof(t)))) +#define va_end(ap) (void)0 -#endif \ No newline at end of file +#else +typedef __builtin_va_list va_list; +#define va_start(v, l) __builtin_va_start(v, l) +#define va_end(v) __builtin_va_end(v) +#define va_arg(v, l) __builtin_va_arg(v, l) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_STDARG_H */ diff --git a/include/stddef.h b/include/stddef.h index 5a133946..71816c2b 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -10,8 +10,13 @@ extern "C" { /* These break 1.2.5 */ //typedef __typeof__(sizeof(0)) size_t; //typedef __typeof__((char*)0 - (char*)0) ptrdiff_t; +#ifdef __INTELLISENSE__ +typedef unsigned int size_t; +typedef int ptrdiff_t; +#else typedef unsigned long size_t; typedef long ptrdiff_t; +#endif #ifndef NULL #define NULL 0L #endif @@ -20,4 +25,4 @@ typedef long ptrdiff_t; } #endif -#endif \ No newline at end of file +#endif diff --git a/include/string.h b/include/string.h index 583a906d..863a4f97 100644 --- a/include/string.h +++ b/include/string.h @@ -10,9 +10,9 @@ char* strrchr(const char* str, int c); char* strchr(const char* str, int c); int strncmp(const char* str1, const char* str2, size_t n); int strcmp(const char* str1, const char* str2); -char* strcat(char* dst, const char* src); +char* strcat(char* dst, const char* src, size_t n); char* strncpy(char* dst, const char* src, size_t n); char* strcpy(char* dst, const char* src); size_t strlen(const char* str); -#endif \ No newline at end of file +#endif diff --git a/include/types.h b/include/types.h index 462b4f66..349256d9 100644 --- a/include/types.h +++ b/include/types.h @@ -1,6 +1,8 @@ #ifndef _TYPES_H_ #define _TYPES_H_ +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + #include "dolphin/types.h" #endif diff --git a/include/version.h b/include/version.h new file mode 100644 index 00000000..209a7d53 --- /dev/null +++ b/include/version.h @@ -0,0 +1,24 @@ +#ifndef _VERSION_H +#define _VERSION_H + +#define VERSION_NO_ENG0 0 +#define VERSION_NO_ENG1 1 +#define VERSION_NO_PAL0 2 +#define VERSION_NO_PAL2 3 +#define VERSION_NO_JP 4 + +#define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1) +#define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2) +#define VERSION_JP (VERSION == VERSION_NO_JP) +#define VERSION_NTSC (!VERSION_PAL) + +#define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JP) +#define VERSION_REV1 (!VERSION_REV0) + +#if VERSION_PAL +#define REFRESH_RATE 50 +#else +#define REFRESH_RATE 60 +#endif + +#endif diff --git a/src/MSL_C.PPCEABI.bare.H/FILE_POS.c b/src/MSL_C.PPCEABI.bare.H/FILE_POS.c new file mode 100755 index 00000000..f0b5e933 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/FILE_POS.c @@ -0,0 +1,97 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" + +inline fpos_t _ftell(FILE* file) { + int charsInUndoBuffer = 0; + fpos_t position; + unsigned char tmp_kind = file->file_mode.file_kind; + + if (!(tmp_kind == __disk_file || tmp_kind == __console_file) || file->file_state.error) { + errno = EFPOS; + return -1; + } + + if (file->file_state.io_state == __neutral) + return (file->position); + + position = file->buffer_position + (file->buffer_ptr - file->buffer); + + if (file->file_state.io_state >= __rereading) { + charsInUndoBuffer = file->file_state.io_state - __rereading + 1; + position -= charsInUndoBuffer; + } + + return (position); +} + +long ftell(FILE* file) { + long retval; + + retval = (long)_ftell(file); + + return retval; +} + +int _fseek(FILE* file, fpos_t offset, int file_mode) { + fpos_t position; + __pos_proc pos_proc; + unsigned char tmp_kind = file->file_mode.file_kind; + + if (!(tmp_kind == __disk_file) || file->file_state.error) { + errno = EFPOS; + return (-1); + } + + if (file->file_state.io_state == __writing) { + if (__flush_buffer(file, NULL) != __no_io_error) { + set_error(file); + errno = EFPOS; + return (-1); + } + } + + if (file_mode == SEEK_CUR) { + file_mode = SEEK_SET; + if ((position = _ftell(file)) < 0) + position = 0; + offset += position; + } + + if ((file_mode != SEEK_END) && (file->file_mode.io_mode != __read_write) && + ((file->file_state.io_state == __reading) || (file->file_state.io_state == __rereading))) + { + if (offset >= file->position || offset < file->buffer_position) { + file->file_state.io_state = __neutral; + } else { + file->buffer_ptr = file->buffer + (offset - file->buffer_position); + file->buffer_length = file->position - offset; + file->file_state.io_state = __reading; + } + } else { + file->file_state.io_state = __neutral; + } + + if (file->file_state.io_state == __neutral) { + if ((pos_proc = file->position_fn) != NULL && pos_proc(file->handle, &offset, file_mode, file->idle_fn)) { + set_error(file); + errno = EFPOS; + return -1; + } + + file->file_state.eof = 0; + file->position = offset; + file->buffer_length = 0; + } + + return 0; +} + +int fseek(FILE * file, long offset, int file_mode) +{ + fpos_t real_offset = (fpos_t)offset; + int retval; + + retval = _fseek(file, real_offset, file_mode); + + return(retval); +} diff --git a/src/MSL_C.PPCEABI.bare.H/abort_exit.c b/src/MSL_C.PPCEABI.bare.H/abort_exit.c new file mode 100644 index 00000000..4432d145 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/abort_exit.c @@ -0,0 +1,67 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h" +#include "stddef.h" + +void _ExitProcess(); + +extern void (*_dtors[])(void); + +int __aborting = 0; + +static void (*atexit_funcs[64])(void); +static int atexit_curr_func = 0; + +static void (*__atexit_funcs[64])(void); +static int __atexit_curr_func = 0; + +void (*__stdio_exit)(void) = 0; +void (*__console_exit)(void) = 0; + +void abort(void) +{ + void (**var_r31)(void); + + raise(1); + __aborting = 1; + var_r31 = &__atexit_funcs[0]; + while (__atexit_curr_func > 0) { + var_r31[--__atexit_curr_func](); + } + if (__console_exit != 0) { + __console_exit(); + __console_exit = 0; + } + _ExitProcess(); +} + +void exit(int status) +{ + int i; + void (**dtor)(void); + + if (!__aborting) { + __destroy_global_chain(); + + dtor = _dtors; + while (*dtor != NULL) { + (*dtor)(); + dtor++; + } + + if (__stdio_exit != NULL) { + __stdio_exit(); + __stdio_exit = NULL; + } + } + + while (__atexit_curr_func > 0) + __atexit_funcs[--__atexit_curr_func](); + + if (__console_exit != NULL) { + __console_exit(); + __console_exit = NULL; + } + + _ExitProcess(); +} diff --git a/src/MSL_C.PPCEABI.bare.H/alloc.c b/src/MSL_C.PPCEABI.bare.H/alloc.c new file mode 100755 index 00000000..ba041356 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/alloc.c @@ -0,0 +1,410 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h" + +typedef struct Block { + struct Block* prev; + struct Block* next; + unsigned long max_size; + unsigned long size; +} Block; + +typedef struct SubBlock { + unsigned long size; + Block* block; + struct SubBlock* prev; + struct SubBlock* next; +} SubBlock; + +struct FixSubBlock; + +typedef struct FixBlock { + struct FixBlock* prev_; + struct FixBlock* next_; + unsigned long client_size_; + struct FixSubBlock* start_; + unsigned long n_allocated_; +} FixBlock; + +typedef struct FixSubBlock { + FixBlock* block_; + struct FixSubBlock* next_; +} FixSubBlock; + +typedef struct FixStart { + FixBlock* tail_; + FixBlock* head_; +} FixStart; + +typedef struct __mem_pool_obj { + Block* start_; + FixStart fix_start[6]; +} __mem_pool_obj; + +typedef struct __mem_pool { + void* reserved[14]; +} __mem_pool; + +typedef signed long tag_word; + +typedef struct block_header { + tag_word tag; + struct block_header * prev; + struct block_header * next; +} block_header; + +typedef struct list_header { + block_header * rover; + block_header header; +} list_header; + +typedef struct heap_header { + struct heap_header* prev; + struct heap_header* next; +} heap_header; + +struct mem_pool_obj; +typedef void * (*sys_alloc_ptr)(unsigned long, struct mem_pool_obj*); +typedef void (*sys_free_ptr)(void *, struct mem_pool_obj*); + +typedef struct pool_options{ + sys_alloc_ptr sys_alloc_func; + sys_free_ptr sys_free_func; + unsigned long min_heap_size; + int always_search_first; +} pool_options; + +typedef struct mem_pool_obj { + list_header free_list; + pool_options options; + heap_header* heap_list; + void* userData; + +} mem_pool_obj; + +mem_pool_obj __malloc_pool; +static int initialized = 0; + +static SubBlock* SubBlock_merge_prev(SubBlock*, SubBlock**); +static void SubBlock_merge_next(SubBlock* , SubBlock** ); + +static const unsigned long fix_pool_sizes[] = {4, 12, 20, 36, 52, 68}; + +#define SubBlock_size(ths) ((ths)->size & 0xFFFFFFF8) +#define SubBlock_block(ths) ((Block*)((unsigned long)((ths)->block) & ~0x1)) +#define Block_size(ths) ((ths)->size & 0xFFFFFFF8) +#define Block_start(ths) (*(SubBlock**)((char*)(ths) + Block_size((ths)) - sizeof(unsigned long))) + +#define SubBlock_set_free(ths) \ + unsigned long this_size = SubBlock_size((ths)); \ + (ths)->size &= ~0x2; \ + *(unsigned long*)((char*)(ths) + this_size) &= ~0x4; \ + *(unsigned long*)((char*)(ths) + this_size - sizeof(unsigned long)) = this_size + + +#define SubBlock_is_free(ths) !((ths)->size & 2) +#define SubBlock_set_size(ths, sz) \ + (ths)->size &= ~0xFFFFFFF8; \ + (ths)->size |= (sz) & 0xFFFFFFF8; \ + if (SubBlock_is_free((ths))) \ + *(unsigned long*)((char*)(ths) + (sz) - sizeof(unsigned long)) = (sz) + +#define SubBlock_from_pointer(ptr) ((SubBlock*)((char*)(ptr) - 8)) +#define FixSubBlock_from_pointer(ptr) ((FixSubBlock*)((char*)(ptr) - 4)) + +#define FixBlock_client_size(ths) ((ths)->client_size_) +#define FixSubBlock_size(ths) (FixBlock_client_size((ths)->block_)) + +#define classify(ptr) (*(unsigned long*)((char*)(ptr) - sizeof(unsigned long)) & 1) +#define __msize_inline(ptr) (!classify(ptr) ? FixSubBlock_size(FixSubBlock_from_pointer(ptr)) : SubBlock_size(SubBlock_from_pointer(ptr)) - 8) + +#define Block_empty(ths) \ + (_sb = (SubBlock*)((char*)(ths) + 16)), \ + SubBlock_is_free(_sb) && SubBlock_size(_sb) == Block_size((ths)) - 24 + +//unused +void Block_subBlock(){ +} + +void Block_link(Block* ths, SubBlock* sb) { + SubBlock** st; + SubBlock_set_free(sb); + st = &Block_start(ths); + + if (*st != 0) + { + sb->prev = (*st)->prev; + sb->prev->next = sb; + sb->next = *st; + (*st)->prev = sb; + *st = sb; + *st = SubBlock_merge_prev(*st, st); + SubBlock_merge_next(*st, st); + } + else + { + *st = sb; + sb->prev = sb; + sb->next = sb; + } + if (ths->max_size < SubBlock_size(*st)) + ths->max_size = SubBlock_size(*st); +} + +static SubBlock* SubBlock_merge_prev(SubBlock *ths, SubBlock **start) { + unsigned long prevsz; + SubBlock* p; + + if (!(ths->size & 0x04)) + { + prevsz = *(unsigned long*)((char*)ths - sizeof(unsigned long)); + if (prevsz & 0x2) + return ths; + p = (SubBlock*)((char*)ths - prevsz); + SubBlock_set_size(p, prevsz + SubBlock_size(ths)); + + if (*start == ths) + *start = (*start)->next; + ths->next->prev = ths->prev; + ths->next->prev->next = ths->next; + return p; + } + return ths; +} + + +static void SubBlock_merge_next(SubBlock *pBlock, SubBlock **pStart) { + SubBlock* next_sub_block; + unsigned long this_cur_size; + + next_sub_block = (SubBlock*)((char*)pBlock + (pBlock->size & 0xFFFFFFF8)); + + if (!(next_sub_block->size & 2)) { + this_cur_size = (pBlock->size & 0xFFFFFFF8) + (next_sub_block->size & 0xFFFFFFF8); + + pBlock->size &= ~0xFFFFFFF8; + pBlock->size |= this_cur_size & 0xFFFFFFF8; + + if (!(pBlock->size & 2)) { + *(unsigned long*)((char*)(pBlock) + (this_cur_size) - 4) = (this_cur_size); + } + + if (!(pBlock->size & 2)) { + *(unsigned long *)((char*)pBlock + this_cur_size) &= ~4; + } + else { + *(unsigned long *)((char*)pBlock + this_cur_size) |= 4; + } + + if (*pStart == next_sub_block) { + *pStart = (*pStart)->next; + } + + if (*pStart == next_sub_block) { + *pStart = 0; + } + + next_sub_block->next->prev = next_sub_block->prev; + next_sub_block->prev->next = next_sub_block->next; + } +} + +static Block* __unlink(__mem_pool_obj* pool_obj, Block* bp) { + Block* result = bp->next; + if (result == bp) { + result = 0; + } + + if (pool_obj->start_ == bp) { + pool_obj->start_ = result; + } + + if (result != 0) { + result->prev = bp->prev; + result->prev->next = result; + } + + bp->next = 0; + bp->prev = 0; + return result; +} + +//unused +void allocate_from_var_pools(){ +} + +//unused +void soft_allocate_from_var_pools(){ +} + +static void deallocate_from_var_pools(__mem_pool_obj* pool_obj, void *ptr) { + SubBlock* sb = SubBlock_from_pointer(ptr); + SubBlock* _sb; + + Block* bp = SubBlock_block(sb); + Block_link(bp, sb); + + if (Block_empty(bp)) { + __unlink(pool_obj, bp); + __sys_free(bp); + } +} + +//unused +void FixBlock_construct(){ +} + +void __init_pool_obj(__mem_pool* pool_obj) { + memset(pool_obj, 0, sizeof(__mem_pool_obj)); +} + + +static __mem_pool* get_malloc_pool(void) { + static __mem_pool protopool; + static unsigned char init = 0; + if (!init) { + __init_pool_obj(&protopool); + init = 1; + } + + return &protopool; +} + +//unused +void allocate_from_fixed_pools(){ +} + +void deallocate_from_fixed_pools(__mem_pool_obj* pool_obj, void* ptr, unsigned long size) { + unsigned long i = 0; + FixSubBlock* p; + FixBlock* b; + FixStart* fs; + + while (size > fix_pool_sizes[i]) { + ++i; + } + + fs = &pool_obj->fix_start[i]; + p = FixSubBlock_from_pointer(ptr); + b = p->block_; + + if (b->start_ == 0 && fs->head_ != b) { + if (fs->tail_ == b) { + fs->head_ = fs->head_->prev_; + fs->tail_ = fs->tail_->prev_; + } + else { + b->prev_->next_ = b->next_; + b->next_->prev_ = b->prev_; + b->next_ = fs->head_; + b->prev_ = b->next_->prev_; + b->prev_->next_ = b; + b->next_->prev_ = b; + fs->head_ = b; + } + } + + p->next_ = b->start_; + b->start_ = p; + + if (--b->n_allocated_ == 0) { + if (fs->head_ == b) { + fs->head_ = b->next_; + } + + if (fs->tail_ == b) { + fs->tail_ = b->prev_; + } + + b->prev_->next_ = b->next_; + b->next_->prev_ = b->prev_; + + if (fs->head_ == b) { + fs->head_ = 0; + } + + if (fs->tail_ == b) { + fs->tail_ = 0; + } + + deallocate_from_var_pools(pool_obj, b); + } +} + +//unused +void __pool_allocate_resize(){ +} + +//unused +void __msize(){ +} + +//unused +void __pool_alloc(){ +} + +//unused +void __allocate_size(){ +} + +//unused +void __allocate(){ +} + +//unused +void __allocate_resize(){ +} + +//unused +void __allocate_expand(){ +} + +void __pool_free(__mem_pool *pool, void *ptr) { + __mem_pool_obj* pool_obj; + unsigned long size; + + if (ptr == 0) { + return; + } + + pool_obj = (__mem_pool_obj*)pool; + size = __msize_inline(ptr); + + if (size <= 68) { + deallocate_from_fixed_pools(pool_obj, ptr, size); + } + else { + deallocate_from_var_pools(pool_obj, ptr); + } +} + +//unused +void __pool_realloc(){ +} + +//unused +void __pool_alloc_clear(){ +} + +//unused +void malloc(){ +} + +void free(void *ptr) { + __pool_free(get_malloc_pool(), ptr); +} + + +//unused +void realloc(){ +} + +//unused +void calloc(){ +} + +//unused +void __pool_free_all(){ +} + +//unused +void __malloc_free_all(){ +} diff --git a/src/MSL_C.PPCEABI.bare.H/ansi_files.c b/src/MSL_C.PPCEABI.bare.H/ansi_files.c new file mode 100644 index 00000000..76ffbe61 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ansi_files.c @@ -0,0 +1,111 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" + +static unsigned char stdin_buff[0x100]; +static unsigned char stdout_buff[0x100]; +static unsigned char stderr_buff[0x100]; + +FILE __files[4] = { + {0, + {0, 1, 1, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stdin_buff, + sizeof(stdin_buff), + stdin_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[1]}, + {1, + {0, 2, 1, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stdout_buff, + sizeof(stdout_buff), + stdout_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[2]}, + {2, + {0, 2, 0, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stderr_buff, + sizeof(stderr_buff), + stderr_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[3]}, +}; + +void __close_all() { + FILE* p = &__files[0]; + FILE* plast; + + while (p != NULL) { + if (p->file_mode.file_kind != __closed_file) { + fclose(p); + } + + plast = p; + p = p->next_file_struct; + if (plast->is_dynamically_allocated) + free(plast); + else { + plast->file_mode.file_kind = __string_file; + if ((p != NULL) && p->is_dynamically_allocated) + plast->next_file_struct = NULL; + } + } +} + +unsigned int __flush_all() { + unsigned int retval = 0; + FILE* __stream; + + __stream = &__files[0]; + while (__stream) { + if ((__stream->file_mode.file_kind) && (fflush(__stream))) { + retval = -1; + } + __stream = __stream->next_file_struct; + }; + + return retval; +} diff --git a/src/MSL_C.PPCEABI.bare.H/ansi_fp.c b/src/MSL_C.PPCEABI.bare.H/ansi_fp.c new file mode 100755 index 00000000..e8d7f0c7 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ansi_fp.c @@ -0,0 +1,393 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h" + +static int __count_trailing_zerol(unsigned int arg0) { + int var_r4; + int var_r5; + int var_r6; + int var_r7; + unsigned int var_r8; + + var_r5 = 0x20; + var_r8 = 0xFFFF; + var_r6 = 0x10; + var_r4 = 0; + var_r7 = 0x10; + while (var_r5 != 0) { + if (!(arg0 & var_r8)) { + var_r4 += var_r7; + arg0 >>= var_r7; + var_r5 -= var_r7; + } else if (var_r8 == 1) { + break; + } + if (var_r6 > 1) { + var_r6 /= 2; + } + if (var_r8 > 1) { + var_r8 >>= var_r6; + var_r7 -= var_r6; + } + } + return var_r4; +} + +static inline int __count_trailing_zero(double n){ + if (__LO(n) != 0U) { + return __count_trailing_zerol(__LO(n)); + } else { + return 32 + __count_trailing_zerol(__HI(n) | 0x100000); + } +} + +static void __ull2dec(decimal* result, unsigned long long val) { + result->sign = 0; + + if (val == 0) { + result->exp = 0; + result->sig.length = 1; + result->sig.text[0] = 0; + return; + } + + result->sig.length = 0; + + for(; val != 0; val /= 10) { + result->sig.text[result->sig.length++] = val % 10; + } + + { + unsigned char* i = result->sig.text; + unsigned char* j = result->sig.text + result->sig.length; + + for (; i < --j; ++i) { + unsigned char t = *i; + *i = *j; + *j = t; + } + } + + result->exp = result->sig.length - 1; +} + +static inline void __dorounddecup(decimal* d, int digits){ + unsigned char* b = d->sig.text; + unsigned char* i = b + digits - 1; + + while(1){ + if (*i < 9) { + *i += 1; + break; + } + if (i == b) { + *i = 1; + d->exp++; + break; + } + *i-- = 0; + } +} + +static void __timesdec(decimal* result, const decimal* x, const decimal* y) { + unsigned int accumulator = 0; + unsigned char mantissa[SIGDIGLEN * 2]; + int i = x->sig.length + y->sig.length - 1; + unsigned char* pDigit; + unsigned char* ip = mantissa + i + 1; + unsigned char* ep = ip; + + result->sign = 0; + + for(; i > 0; i--) { + int k = y->sig.length - 1; + int j = i - k - 1; + int l; + int t; + const unsigned char* jp; + const unsigned char* kp; + + if (j < 0) { + j = 0; + k = i - 1; + } + + jp = x->sig.text + j; + kp = y->sig.text + k; + l = k + 1; + t = x->sig.length - j; + + if (l > t) l = t; + + for (; l > 0; l--, jp++, kp--) { + accumulator += *jp * *kp; + } + + *--ip = accumulator % 10; + accumulator /= 10; + } + + result->exp = (short)(x->exp + y->exp); + + if (accumulator) { + *--ip = accumulator; + result->exp++; + } + + for (i = 0; i < SIGDIGLEN && ip < ep; i++, ip++) { + result->sig.text[i] = *ip; + } + result->sig.length = i; + + if (ip < ep && *ip >= 5){ + if (*ip == 5){ + unsigned char* jp = ip + 1; + for (; jp < ep; jp++) { + if (*jp != 0) goto round; + } + if ((ip[-1] & 1) == 0) return; + } + round: + __dorounddecup(result, result->sig.length); + } +} + +static void __str2dec(decimal* d, const signed char* s, short exp) { + int i; + + d->exp = exp; + d->sign = 0; + + for (i = 0; i < SIGDIGLEN && *s; ) { + d->sig.text[i++] = *s++ - '0'; + } + d->sig.length = i; + + if (*s != 0 && *s >= 5) { + const signed char* p = s + 1; + + for (; *p != 0; p++) { + if (*p != '0') goto round; + } + + if ((d->sig.text[i - 1] & 1) == 0) return; + round: + __dorounddecup(d, d->sig.length); + } +} + +// TODO: ideally, these strings should be used as literals in the function below. +// However, the first one (179769313486231580793729011405303420, corresponding to +// 2^1024) is not used in the function and messes up alignment. + +const signed char lbl_8011E630[] = + "179769313486231580793729011405303420\000" \ + "542101086242752217003726400434970855712890625\000" \ + "11102230246251565404236316680908203125\000" \ + "23283064365386962890625\000" \ + "152587890625\000" \ + "390625\000" \ + "78125\000" \ + "15625\000" \ + "3125\000" \ + "625\000" \ + "125\000" \ + "25\000" \ + "5\000" \ + "1\000" \ + "2\000" \ + "4\000" \ + "8\000" \ + "16\000" \ + "32\000" \ + "64\000" \ + "128\000" \ + "256"; + +static void __two_exp(decimal* result, short exp) { + decimal sp8C; + decimal sp60; + decimal sp34; + decimal sp8; + + switch (exp) { + case -64: + __str2dec(result, lbl_8011E630 + 0x25, -20); + break; + case -53: + __str2dec(result, lbl_8011E630 + 0x53, -16); + break; + case -32: + __str2dec(result, lbl_8011E630 + 0x7A, -10); + break; + case -16: + __str2dec(result, lbl_8011E630 + 0x92, -5); + break; + case -8: + __str2dec(result, lbl_8011E630 + 0x9F, -3); + break; + case -7: + __str2dec(result, lbl_8011E630 + 0xA6, -3); + break; + case -6: + __str2dec(result, lbl_8011E630 + 0xAC, -2); + break; + case -5: + __str2dec(result, lbl_8011E630 + 0xB2, -2); + break; + case -4: + __str2dec(result, lbl_8011E630 + 0xB7, -2); + break; + case -3: + __str2dec(result, lbl_8011E630 + 0xBB, -1); + break; + case -2: + __str2dec(result, lbl_8011E630 + 0xBF, -1); + break; + case -1: + __str2dec(result, lbl_8011E630 + 0xC2, -1); + break; + case 0: + __str2dec(result, lbl_8011E630 + 0xC4, 0); + break; + case 1: + __str2dec(result, lbl_8011E630 + 0xC6, 0); + break; + case 2: + __str2dec(result, lbl_8011E630 + 0xC8, 0); + break; + case 3: + __str2dec(result, lbl_8011E630 + 0xCA, 0); + break; + case 4: + __str2dec(result, lbl_8011E630 + 0xCC, 1); + break; + case 5: + __str2dec(result, lbl_8011E630 + 0xCF, 1); + break; + case 6: + __str2dec(result, lbl_8011E630 + 0xD2, 1); + break; + case 7: + __str2dec(result, lbl_8011E630 + 0xD5, 2); + break; + case 8: + __str2dec(result, lbl_8011E630 + 0xD9, 2); + break; + default: + __two_exp(&sp8C, exp / 2); + __timesdec(result, &sp8C, &sp8C); + if (exp & 1) { + sp60 = *result; + if (exp > 0) { + __str2dec(&sp34, lbl_8011E630 + 0xC6, 0); + __timesdec(result, &sp60, &sp34); + } else { + __str2dec(&sp8, lbl_8011E630 + 0xC2, -1); + __timesdec(result, &sp60, &sp8); + } + } + break; + } +} + +static void __num2dec_internal(decimal* d, double x) { + signed char sign = (signbit(x) != 0); + + if (x == 0) { + d->sign = sign; + d->exp = 0; + d->sig.length = 1; + d->sig.text[0] = 0; + return; + } + + if (!isfinite(x)) { + d->sign = sign; + d->exp = 0; + d->sig.length = 1; + d->sig.text[0] = (fpclassify(x) == 1) ? 'N' : 'I'; + return; + } + + if (sign != 0) { + x = -x; + } + + { + int exp; + double frac = frexp(x, &exp); + short num_bits_extract = DBL_MANT_DIG - __count_trailing_zero(frac); + decimal int_d, pow2_d; + double sp30; + + __two_exp(&pow2_d, exp - num_bits_extract); + modf(ldexp(frac, num_bits_extract), &sp30); + __ull2dec(&int_d, sp30); + __timesdec(d, &int_d, &pow2_d); + d->sign = sign; + } +} + +static inline int __must_round(const decimal* d, int digits){ + unsigned char const* i = d->sig.text + digits; + + if (*i > 5) { + return 1; + } + + if (*i < 5) { + return -1; + } + + { + unsigned char const* e = d->sig.text + d->sig.length; + + for(i++; i < e; i++){ + if (*i != 0) { + return 1; + } + } + } + + if (d->sig.text[digits - 1] & 1) { + return 1; + } + + return -1; +} + +static inline void __rounddec(decimal* d, int digits){ + if (digits > 0 && digits < d->sig.length) { + int unkBool = __must_round(d,digits); + d->sig.length = digits; + + if (unkBool >= 0) { + __dorounddecup(d, digits); + } + } +} + +void __num2dec(const decform* form, double x, decimal* d) { + short digits = form->digits; + int i; + __num2dec_internal(d, x); + + if (d->sig.text[0] > 9) { + return; + } + + if (digits > SIGDIGLEN) { + digits = SIGDIGLEN; + } + + __rounddec(d, digits); + + while(d->sig.length < digits){ + d->sig.text[d->sig.length++] = 0; + } + + d->exp -= d->sig.length - 1; + + for(i = 0; i < d->sig.length; i++) { + d->sig.text[i] += '0'; + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/arith.c b/src/MSL_C.PPCEABI.bare.H/arith.c new file mode 100755 index 00000000..974c95c2 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/arith.c @@ -0,0 +1,13 @@ +int abs(int n) { + if (n < 0) + return (-n); + else + return (n); +} + +long labs(long n) { + if (n < 0) + return (-n); + else + return (n); +} diff --git a/src/MSL_C.PPCEABI.bare.H/buffer_io.c b/src/MSL_C.PPCEABI.bare.H/buffer_io.c new file mode 100644 index 00000000..5657680d --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/buffer_io.c @@ -0,0 +1,41 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +void __prep_buffer(FILE* file) +{ + file->buffer_ptr = file->buffer; + file->buffer_length = file->buffer_size; + file->buffer_length -= file->position & file->buffer_alignment; + file->buffer_position = file->position; +} + +void __convert_from_newlines(unsigned char* p, size_t* n) { } + +int __flush_buffer(FILE* file, size_t* bytes_flushed) +{ + size_t buffer_len; + int ioresult; + + buffer_len = file->buffer_ptr - file->buffer; + + if (buffer_len) { + file->buffer_length = buffer_len; + + if (!file->file_mode.binary_io) + __convert_from_newlines(file->buffer, &file->buffer_length); + + ioresult = (*file->write_fn)(file->handle, file->buffer, + &file->buffer_length, file->idle_fn); + + if (bytes_flushed) + *bytes_flushed = file->buffer_length; + + if (ioresult) + return ioresult; + + file->position += file->buffer_length; + } + + __prep_buffer(file); + + return __no_io_error; +} diff --git a/src/MSL_C.PPCEABI.bare.H/ctype.c b/src/MSL_C.PPCEABI.bare.H/ctype.c new file mode 100644 index 00000000..0a0ce04b --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ctype.c @@ -0,0 +1,78 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" + +#define ctrl __control_char +#define motn __motion_char +#define spac __space_char +#define punc __punctuation +#define digi __digit +#define hexd __hex_digit +#define lowc __lower_case +#define uppc __upper_case +#define dhex (hexd | digi) +#define uhex (hexd | uppc) +#define lhex (hexd | lowc) + +unsigned char __ctype_map[256] = { + // clang-format off + ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, motn, motn, motn, motn, motn, ctrl, ctrl, + ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, + spac, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, + dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, punc, punc, punc, punc, punc, punc, + punc, uhex, uhex, uhex, uhex, uhex, uhex, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, + uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, punc, punc, punc, punc, punc, + punc, lhex, lhex, lhex, lhex, lhex, lhex, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, + lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, punc, punc, punc, punc, ctrl, + // clang-format on +}; + +unsigned char __lower_map[256] = { + // clang-format off + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + // clang-format on +}; + +unsigned char __upper_map[256] = { + // clang-format off + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + // clang-format on +}; + +int isalpha(int __c) +{ + return __ctype_map[(unsigned char)__c] & __letter; +} + +int tolower(int __c) +{ + return __c == -1 ? -1 : __lower_map[(unsigned char)__c]; +} diff --git a/src/MSL_C.PPCEABI.bare.H/direct_io.c b/src/MSL_C.PPCEABI.bare.H/direct_io.c new file mode 100644 index 00000000..4cfa5184 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/direct_io.c @@ -0,0 +1,114 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +size_t fwrite(const void* ptr, size_t memb_size, size_t num_memb, FILE* file) { + size_t retval; + retval = __fwrite(ptr, memb_size, num_memb, file); + return (retval); +} + +size_t __fwrite(const void* ptr, size_t memb_size, size_t num_memb, FILE* file) { + unsigned char* write_ptr; + size_t num_bytes, bytes_to_go, bytes_written; + int ioresult, always_buffer; + +#ifndef __NO_WIDE_CHAR + if (fwide(file, 0) == 0) + fwide(file, -1); +#endif + + bytes_to_go = memb_size * num_memb; + + if (!bytes_to_go || file->file_state.error || file->file_mode.file_kind == __closed_file) + return 0; + + if (file->file_mode.file_kind == __console_file) + __stdio_atexit(); + + always_buffer = + !file->file_mode.binary_io || file->file_mode.buffer_mode == _IOFBF || file->file_mode.buffer_mode == _IOLBF; + + if (file->file_state.io_state == __neutral) { + if (file->file_mode.io_mode & __write) { + if (file->file_mode.io_mode & __append) { + if (fseek(file, 0, SEEK_END)) + return 0; + } + file->file_state.io_state = __writing; + + __prep_buffer(file); + } + } + + if (file->file_state.io_state != __writing) { + set_error(file); + return 0; + } + + write_ptr = (unsigned char*)ptr; + bytes_written = 0; + + if (bytes_to_go && (file->buffer_ptr != file->buffer || always_buffer)) { + file->buffer_length = file->buffer_size - (file->buffer_ptr - file->buffer); + + do { + unsigned char* newline = NULL; + + num_bytes = file->buffer_length; + + if (num_bytes > bytes_to_go) + num_bytes = bytes_to_go; + if (file->file_mode.buffer_mode == _IOLBF && num_bytes) + if ((newline = (unsigned char*)__memrchr(write_ptr, '\n', num_bytes)) != NULL) + num_bytes = newline + 1 - write_ptr; + + if (num_bytes) { + memcpy(file->buffer_ptr, write_ptr, num_bytes); + + write_ptr += num_bytes; + bytes_written += num_bytes; + bytes_to_go -= num_bytes; + + file->buffer_ptr += num_bytes; + file->buffer_length -= num_bytes; + } + if (!file->buffer_length || newline != NULL || + (file->file_mode.buffer_mode == _IONBF)) + { + ioresult = __flush_buffer(file, NULL); + + if (ioresult) { + set_error(file); + bytes_to_go = 0; + break; + } + } + } while (bytes_to_go && always_buffer); + } + + if (bytes_to_go && !always_buffer) { + unsigned char* save_buffer = file->buffer; + size_t save_size = file->buffer_size; + + file->buffer = write_ptr; + file->buffer_size = bytes_to_go; + file->buffer_ptr = write_ptr + bytes_to_go; + + if (__flush_buffer(file, &num_bytes) != __no_io_error) + set_error(file); + + bytes_written += num_bytes; + + file->buffer = save_buffer; + file->buffer_size = save_size; + + __prep_buffer(file); + + file->buffer_length = 0; + } + + if (file->file_mode.buffer_mode != _IOFBF) + file->buffer_length = 0; + + return ((bytes_written + memb_size - 1) / memb_size); +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_acos.c b/src/MSL_C.PPCEABI.bare.H/e_acos.c new file mode 100644 index 00000000..01bba5e0 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_acos.c @@ -0,0 +1,69 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_acos(double x) +#else + double __ieee754_acos(x) + double x; +#endif +{ + double z,p,q,r,w,s,c,df; + int hx,ix; + hx = __HI(x); + ix = hx&0x7fffffff; + if(ix>=0x3ff00000) { /* |x| >= 1 */ + if(((ix-0x3ff00000)|__LO(x))==0) { /* |x|==1 */ + if(hx>0) return 0.0; /* acos(1) = 0 */ + else return pi+2.0*pio2_lo; /* acos(-1)= pi */ + } + return NAN; /* acos(|x|>1) is NaN */ + } + if(ix<0x3fe00000) { /* |x| < 0.5 */ + if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/ + z = x*x; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + return pio2_hi - (x - (pio2_lo-x*r)); + } else if (hx<0) { /* x < -0.5 */ + z = (one+x)*0.5; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + s = sqrt(z); + r = p/q; + w = r*s-pio2_lo; + return pi - 2.0*(s+w); + } else { /* x > 0.5 */ + z = (one-x)*0.5; + s = sqrt(z); + df = s; + __LO(df) = 0; + c = (z-df*df)/(s+df); + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + w = r*s+c; + return 2.0*(df+w); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_asin.c b/src/MSL_C.PPCEABI.bare.H/e_asin.c new file mode 100644 index 00000000..743d78d5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_asin.c @@ -0,0 +1,71 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +huge = 1.000e+300, +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ + /* coefficient for R(x^2) */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_asin(double x) +#else + double __ieee754_asin(x) + double x; +#endif +{ + double t,w,p,q,c,r,s; + int hx,ix; + hx = __HI(x); + ix = hx&0x7fffffff; + if(ix>= 0x3ff00000) { /* |x|>= 1 */ + if(((ix-0x3ff00000)|__LO(x))==0) + /* asin(1)=+-pi/2 with inexact */ + return x*pio2_hi+x*pio2_lo; + return NAN; /* asin(|x|>1) is NaN */ + } else if (ix<0x3fe00000) { /* |x|<0.5 */ + if(ix<0x3e400000) { /* if |x| < 2**-27 */ + if(huge+x>one) return x;/* return x with inexact if x!=0*/ + } else + t = x*x; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; + } + /* 1> |x|>= 0.5 */ + w = one-fabs(x); + t = w*0.5; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + s = sqrt(t); + if(ix>=0x3FEF3333) { /* if |x| > 0.975 */ + w = p/q; + t = pio2_hi-(2.0*(s+s*w)-pio2_lo); + } else { + w = s; + __LO(w) = 0; + c = (t-w*w)/(s+w); + r = p/q; + p = 2.0*s*r-(pio2_lo-2.0*c); + q = pio4_hi-2.0*w; + t = pio4_hi-(p-q); + } + if(hx>0) return t; else return -t; +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_atan2.c b/src/MSL_C.PPCEABI.bare.H/e_atan2.c new file mode 100644 index 00000000..43b99afd --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_atan2.c @@ -0,0 +1,145 @@ + +/* @(#)e_atan2.c 1.3 95/01/18 */ +/** + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_atan2(y,x) + * Method : + * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif + tiny + = 1.0e-300, + zero = 0.0, pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ + pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ + pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */ + pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ + +#ifdef __STDC__ +double __ieee754_atan2(double y, double x) +#else +double __ieee754_atan2(y, x) +double y, x; +#endif +{ + double z; + int k, m, hx, hy, ix, iy; + unsigned lx, ly; + + hx = __HI(x); + ix = hx & 0x7fffffff; + lx = __LO(x); + hy = __HI(y); + iy = hy & 0x7fffffff; + ly = __LO(y); + if (((ix | ((lx | -lx) >> 31)) > 0x7ff00000) + || ((iy | ((ly | -ly) >> 31)) > 0x7ff00000)) /* x or y is NaN */ + return x + y; + if ((hx - 0x3ff00000 | lx) == 0) + return atan(y); /* x=1.0 */ + m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ + + /* when y = 0 */ + if ((iy | ly) == 0) { + switch (m) { + case 0: + case 1: + return y; /* atan(+-0,+anything)=+-0 */ + case 2: + return pi + tiny; /* atan(+0,-anything) = pi */ + case 3: + return -pi - tiny; /* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if ((ix | lx) == 0) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; + + /* when x is INF */ + if (ix == 0x7ff00000) { + if (iy == 0x7ff00000) { + switch (m) { + case 0: + return pi_o_4 + tiny; /* atan(+INF,+INF) */ + case 1: + return -pi_o_4 - tiny; /* atan(-INF,+INF) */ + case 2: + return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ + case 3: + return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ + } + } else { + switch (m) { + case 0: + return zero; /* atan(+...,+INF) */ + case 1: + return -zero; /* atan(-...,+INF) */ + case 2: + return pi + tiny; /* atan(+...,-INF) */ + case 3: + return -pi - tiny; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if (iy == 0x7ff00000) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; + + /* compute y/x */ + k = (iy - ix) >> 20; + if (k > 60) + z = pi_o_2 + 0.5 * pi_lo; /* |y/x| > 2**60 */ + else if (hx < 0 && k < -60) + z = 0.0; /* |y|/x < -2**60 */ + else + z = atan(fabs__Fd(y / x)); /* safe to do y/x */ + switch (m) { + case 0: + return z; /* atan(+,+) */ + case 1: + __HI(z) ^= 0x80000000; + return z; /* atan(-,+) */ + case 2: + return pi - (z - pi_lo); /* atan(+,-) */ + default: /* case 3 */ + return (z - pi_lo) - pi; /* atan(-,-) */ + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_fmod.c b/src/MSL_C.PPCEABI.bare.H/e_fmod.c new file mode 100644 index 00000000..311d2f08 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_fmod.c @@ -0,0 +1,140 @@ + +/* @(#)e_fmod.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_fmod(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static double one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + double __ieee754_fmod(double x, double y) +#else + double __ieee754_fmod(x,y) + double x,y ; +#endif +{ + int n,hx,hy,hz,ix,iy,sx,i; + unsigned lx,ly,lz; + + hx = __HI(x); /* high word of x */ + lx = __LO(x); /* low word of x */ + hy = __HI(y); /* high word of y */ + ly = __LO(y); /* low word of y */ + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */ + ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<=hy) { + if((hx>31]; /* |x|=|y| return x*0*/ + } + + /* determine ix = ilogb(x) */ + if(hx<0x00100000) { /* subnormal x */ + if(hx==0) { + for (ix = -1043, i=lx; i>0; i<<=1) ix -=1; + } else { + for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1; + } + } else ix = (hx>>20)-1023; + + /* determine iy = ilogb(y) */ + if(hy<0x00100000) { /* subnormal y */ + if(hy==0) { + for (iy = -1043, i=ly; i>0; i<<=1) iy -=1; + } else { + for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1; + } + } else iy = (hy>>20)-1023; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -1022) + hx = 0x00100000|(0x000fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -1022-ix; + if(n<=31) { + hx = (hx<>(32-n)); + lx <<= n; + } else { + hx = lx<<(n-32); + lx = 0; + } + } + if(iy >= -1022) + hy = 0x00100000|(0x000fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -1022-iy; + if(n<=31) { + hy = (hy<>(32-n)); + ly <<= n; + } else { + hy = ly<<(n-32); + ly = 0; + } + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy;lz=lx-ly; if(lx>31); lx = lx+lx;} + else { + if((hz|lz)==0) /* return sign(x)*0 */ + return Zero[(unsigned)sx>>31]; + hx = hz+hz+(lz>>31); lx = lz+lz; + } + } + hz=hx-hy;lz=lx-ly; if(lx=0) {hx=hz;lx=lz;} + + /* convert back to floating value and restore the sign */ + if((hx|lx)==0) /* return sign(x)*0 */ + return Zero[(unsigned)sx>>31]; + while(hx<0x00100000) { /* normalize x */ + hx = hx+hx+(lx>>31); lx = lx+lx; + iy -= 1; + } + if(iy>= -1022) { /* normalize output */ + hx = ((hx-0x00100000)|((iy+1023)<<20)); + __HI(x) = hx|sx; + __LO(x) = lx; + } else { /* subnormal output */ + n = -1022 - iy; + if(n<=20) { + lx = (lx>>n)|((unsigned)hx<<(32-n)); + hx >>= n; + } else if (n<=31) { + lx = (hx<<(32-n))|(lx>>n); hx = sx; + } else { + lx = hx>>(n-32); hx = sx; + } + __HI(x) = hx|sx; + __LO(x) = lx; + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_pow.c b/src/MSL_C.PPCEABI.bare.H/e_pow.c new file mode 100644 index 00000000..55b9b1c1 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_pow.c @@ -0,0 +1,308 @@ +/* @(#)e_pow.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_pow(x,y) return x**y + * + * n + * Method: Let x = 2 * (1+f) + * 1. Compute and return log2(x) in two pieces: + * log2(x) = w1 + w2, + * where w1 has 53-24 = 29 bit trailing zeros. + * 2. Perform y*log2(x) = n+y' by simulating muti-precision + * arithmetic, where |y'|<=0.5. + * 3. Return x**y = 2**n*exp(y'*log2) + * + * Special cases: + * 1. (anything) ** 0 is 1 + * 2. (anything) ** 1 is itself + * 3. (anything) ** NAN is NAN + * 4. NAN ** (anything except 0) is NAN + * 5. +-(|x| > 1) ** +INF is +INF + * 6. +-(|x| > 1) ** -INF is +0 + * 7. +-(|x| < 1) ** +INF is +0 + * 8. +-(|x| < 1) ** -INF is +INF + * 9. +-1 ** +-INF is NAN + * 10. +0 ** (+anything except 0, NAN) is +0 + * 11. -0 ** (+anything except 0, NAN, odd integer) is +0 + * 12. +0 ** (-anything except 0, NAN) is +INF + * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF + * 14. -0 ** (odd integer) = -( +0 ** (odd integer) ) + * 15. +INF ** (+anything except 0,NAN) is +INF + * 16. +INF ** (-anything except 0,NAN) is +0 + * 17. -INF ** (anything) = -0 ** (-anything) + * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer) + * 19. (-anything except 0 and inf) ** (non-integer) is NAN + * + * Accuracy: + * pow(x,y) returns x**y nearly rounded. In particular + * pow(integer,integer) + * always returns the correct integer provided it is + * representable. + * + * Constants : + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +bp[] = {1.0, 1.5,}, +dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */ +dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */ +zero = 0.0, +one = 1.0, +two = 2.0, +two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */ +huge = 1.0e300, +tiny = 1.0e-300, + /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ +L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ +L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ +L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ +L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ +L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ +L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ +lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ +lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */ +ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */ +cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ +cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ +cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/ +ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ +ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ +ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ + +#ifdef __STDC__ + double __ieee754_pow(double x, double y) +#else + double __ieee754_pow(x,y) + double x, y; +#endif +{ + double z,ax,z_h,z_l,p_h,p_l; + double y1,t1,t2,r,s,t,u,v,w; + int i,j,k,yisint,n; + int hx,hy,ix,iy; + unsigned lx,ly; + + hx = __HI(x); lx = __LO(x); + hy = __HI(y); ly = __LO(y); + ix = hx&0x7fffffff; iy = hy&0x7fffffff; + + /* y==zero: x**0 = 1 */ + if((iy|ly)==0) return one; + + /* +-NaN return x+y */ + if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) || + iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) + return x+y; + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if(hx<0) { + if(iy>=0x43400000) yisint = 2; /* even integer y */ + else if(iy>=0x3ff00000) { + k = (iy>>20)-0x3ff; /* exponent */ + if(k>20) { + j = ly>>(52-k); + if((j<<(52-k))==ly) yisint = 2-(j&1); + } else if(ly==0) { + j = iy>>(20-k); + if((j<<(20-k))==iy) yisint = 2-(j&1); + } + } + } + + /* special value of y */ + if(ly==0) { + if (iy==0x7ff00000) { /* y is +-inf */ + if(((ix-0x3ff00000)|lx)==0) + return y - y; /* inf**+-1 is NaN */ + else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */ + return (hy>=0)? y: zero; + else /* (|x|<1)**-,+inf = inf,0 */ + return (hy<0)?-y: zero; + } + if(iy==0x3ff00000) { /* y is +-1 */ + if(hy<0) return one/x; else return x; + } + if(hy==0x40000000) return x*x; /* y is 2 */ + if(hy==0x3fe00000) { /* y is 0.5 */ + if(hx>=0) /* x >= +0 */ + return sqrt(x); + } + } + + ax = fabs(x); + /* special value of x */ + if(lx==0) { + if(ix==0x7ff00000||ix==0||ix==0x3ff00000){ + z = ax; /*x is +-0,+-inf,+-1*/ + if(hy<0) z = one/z; /* z = (1/|x|) */ + if(hx<0) { + if(((ix-0x3ff00000)|yisint)==0) { + z = (z-z)/(z-z); /* (-1)**non-int is NaN */ + } else if(yisint==1) + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + return z; + } + } + + /* (x<0)**(non-int) is NaN */ + if((((hx>>31)+1)|yisint)==0) { + errno = 0x21; + return NAN; + } + + /* |y| is huge */ + if(iy>0x41e00000) { /* if |y| > 2**31 */ + if(iy>0x43f00000){ /* if |y| > 2**64, must o/uflow */ + if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + } + /* over/underflow if x is not close to one */ + if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + /* now |1-x| is tiny <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = x-1; /* t has 20 trailing zeros */ + w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25)); + u = ivln2_h*t; /* ivln2_h has 21 sig. bits */ + v = t*ivln2_l-w*ivln2; + t1 = u+v; + __LO(t1) = 0; + t2 = v-(t1-u); + } else { + double s2,s_h,s_l,t_h,t_l; + n = 0; + /* take care subnormal number */ + if(ix<0x00100000) + {ax *= two53; n -= 53; ix = __HI(ax); } + n += ((ix)>>20)-0x3ff; + j = ix&0x000fffff; + /* determine interval */ + ix = j|0x3ff00000; /* normalize ix */ + if(j<=0x3988E) k=0; /* |x|>1)|0x20000000)+0x00080000+(k<<18); + t_l = ax - (t_h-bp[k]); + s_l = v*((u-s_h*t_h)-s_h*t_l); + /* compute log(ax) */ + s2 = s*s; + r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6))))); + r += s_l*(s_h+s); + s2 = s_h*s_h; + t_h = 3.0+s2+r; + __LO(t_h) = 0; + t_l = r-((t_h-3.0)-s2); + /* u+v = s*(1+...) */ + u = s_h*t_h; + v = s_l*t_h+t_l*s; + /* 2/(3log2)*(s+...) */ + p_h = u+v; + __LO(p_h) = 0; + p_l = v-(p_h-u); + z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = cp_l*p_h+p_l*cp+dp_l[k]; + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = (double)n; + t1 = (((z_h+z_l)+dp_h[k])+t); + __LO(t1) = 0; + t2 = z_l-(((t1-t)-dp_h[k])-z_h); + } + + s = one; /* s (sign of result -ve**odd) = -1 else = 1 */ + if((((hx>>31)+1)|(yisint-1))==0) s = -one;/* (-ve)**(odd int) */ + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + y1 = y; + __LO(y1) = 0; + p_l = (y-y1)*t1+y*t2; + p_h = y1*t1; + z = p_l+p_h; + j = __HI(z); + i = __LO(z); + if (j>=0x40900000) { /* z >= 1024 */ + if(((j-0x40900000)|i)!=0) /* if z > 1024 */ + return s*huge*huge; /* overflow */ + else { + if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */ + } + } else if((j&0x7fffffff)>=0x4090cc00 ) { /* z <= -1075 */ + if(((j-0xc090cc00)|i)!=0) /* z < -1075 */ + return s*tiny*tiny; /* underflow */ + else { + if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */ + } + } + /* + * compute 2**(p_h+p_l) + */ + i = j&0x7fffffff; + k = (i>>20)-0x3ff; + n = 0; + if(i>0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */ + n = j+(0x00100000>>(k+1)); + k = ((n&0x7fffffff)>>20)-0x3ff; /* new k for n */ + t = zero; + __HI(t) = (n&~(0x000fffff>>k)); + n = ((n&0x000fffff)|0x00100000)>>(20-k); + if(j<0) n = -n; + p_h -= t; + } + t = p_l+p_h; + __LO(t) = 0; + u = t*lg2_h; + v = (p_l-(t-p_h))*lg2+t*lg2_l; + z = u+v; + w = v-(z-u); + t = z*z; + t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + r = (z*t1)/(t1-two)-(w+z*w); + z = one-(r-z); + j = __HI(z); + j += (n<<20); + if((j>>20)<=0) z = ldexp(z,n); /* subnormal output */ + else __HI(z) += (n<<20); + return s*z; +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c b/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c new file mode 100755 index 00000000..ee1a50fa --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c @@ -0,0 +1,175 @@ +/* @(#)e_rem_pio2.c 1.4 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_rem_pio2(x,y) + * + * return the remainder of x rem pi/2 in y[0]+y[1] + * use __kernel_rem_pio2() + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +/* + * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi + */ +#ifdef __STDC__ +static const int two_over_pi[] = { +#else +static int two_over_pi[] = { +#endif +0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, +0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, +0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, +0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, +0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, +0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, +0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, +0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, +0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, +0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, +0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, +}; + +#ifdef __STDC__ +static const int npio2_hw[] = { +#else +static int npio2_hw[] = { +#endif +0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, +0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, +0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, +0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, +0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, +0x404858EB, 0x404921FB, +}; + +/* + * invpio2: 53 bits of 2/pi + * pio2_1: first 33 bit of pi/2 + * pio2_1t: pi/2 - pio2_1 + * pio2_2: second 33 bit of pi/2 + * pio2_2t: pi/2 - (pio2_1+pio2_2) + * pio2_3: third 33 bit of pi/2 + * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) + */ + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ +pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ +pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ +pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ +pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ +pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ +pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ + +#ifdef __STDC__ + int __ieee754_rem_pio2(double x, double *y) +#else + int __ieee754_rem_pio2(x,y) + double x,y[]; +#endif +{ + double z,w,t,r,fn; + double tx[3]; + int e0,i,j,nx,n,ix,hx; + + hx = __HI(x); /* high word of x */ + ix = hx&0x7fffffff; + if(ix<=0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */ + {y[0] = x; y[1] = 0; return 0;} + if(ix<0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */ + if(hx>0) { + z = x - pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z - pio2_1t; + y[1] = (z-y[0])-pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z -= pio2_2; + y[0] = z - pio2_2t; + y[1] = (z-y[0])-pio2_2t; + } + return 1; + } else { /* negative x */ + z = x + pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z + pio2_1t; + y[1] = (z-y[0])+pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z += pio2_2; + y[0] = z + pio2_2t; + y[1] = (z-y[0])+pio2_2t; + } + return -1; + } + } + if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */ + t = fabs(x); + n = (int) (t*invpio2+half); + fn = (double)n; + r = t-fn*pio2_1; + w = fn*pio2_1t; /* 1st round good to 85 bit */ + if(n<32&&ix!=npio2_hw[n-1]) { + y[0] = r-w; /* quick check no cancellation */ + } else { + j = ix>>20; + y[0] = r-w; + i = j-(((__HI(y[0]))>>20)&0x7ff); + if(i>16) { /* 2nd iteration needed, good to 118 */ + t = r; + w = fn*pio2_2; + r = t-w; + w = fn*pio2_2t-((t-r)-w); + y[0] = r-w; + i = j-(((__HI(y[0]))>>20)&0x7ff); + if(i>49) { /* 3rd iteration need, 151 bits acc */ + t = r; /* will cover all possible cases */ + w = fn*pio2_3; + r = t-w; + w = fn*pio2_3t-((t-r)-w); + y[0] = r-w; + } + } + } + y[1] = (r-y[0])-w; + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + else return n; + } + /* + * all other (large) arguments + */ + if(ix>=0x7ff00000) { /* x is inf or NaN */ + y[0]=y[1]=x-x; return 0; + } + /* set z = scalbn(|x|,ilogb(x)-23) */ + __LO(z) = __LO(x); + e0 = (ix>>20)-1046; /* e0 = ilogb(z)-23; */ + __HI(z) = ix - (e0<<20); + for(i=0;i<2;i++) { + tx[i] = (double)((int)(z)); + z = (z-tx[i])*two24; + } + tx[2] = z; + nx = 3; + while(tx[nx-1]==zero) nx--; /* skip zero term */ + n = __kernel_rem_pio2(tx,y,e0,nx,2,two_over_pi); + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + return n; +} diff --git a/src/MSL_C.PPCEABI.bare.H/errno.c b/src/MSL_C.PPCEABI.bare.H/errno.c new file mode 100644 index 00000000..fb0a2b41 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/errno.c @@ -0,0 +1,3 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" + +int errno; diff --git a/src/MSL_C.PPCEABI.bare.H/file_io.c b/src/MSL_C.PPCEABI.bare.H/file_io.c new file mode 100755 index 00000000..6ca5b36a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/file_io.c @@ -0,0 +1,58 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" + +int fclose(FILE* file) { + int flush_result, close_result; + + if (file == NULL) { + return -1; + } + if (file->file_mode.file_kind == __closed_file) { + return 0; + } + flush_result = fflush(file); + close_result = file->close_fn(file->handle); + file->file_mode.file_kind = __closed_file; + file->handle = NULL; + if (file->file_state.free_buffer) { + free(file->buffer); + } + return (flush_result || close_result) ? -1 : 0; +} + +int fflush(FILE* file) { + unsigned long pos; + + if (file == NULL) { + return __flush_all(); + } + if (file->file_state.error != 0 || file->file_mode.file_kind == __closed_file) { + return -1; + } + if (file->file_mode.io_mode == __read) { + return 0; + } + if (file->file_state.io_state >= __rereading) { + file->file_state.io_state = __reading; + } + if (file->file_state.io_state == __reading) { + file->buffer_length = 0; + } + if (file->file_state.io_state != __writing) { + file->file_state.io_state = __neutral; + return 0; + } + if (file->file_mode.file_kind != __disk_file) { + pos = 0; + } else { + pos = ftell(file); + } + if (__flush_buffer(file, 0) != __no_io_error) { + file->file_state.error = 1; + file->buffer_length = 0; + return -1; + } + file->file_state.io_state = __neutral; + file->position = pos; + file->buffer_length = 0; + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/float.c b/src/MSL_C.PPCEABI.bare.H/float.c new file mode 100644 index 00000000..f07b2812 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/float.c @@ -0,0 +1,5 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +unsigned long __float_nan[] = { 0x7FFFFFFF }; + +unsigned long __float_huge[] = { 0x7F800000 }; diff --git a/src/MSL_C.PPCEABI.bare.H/k_cos.c b/src/MSL_C.PPCEABI.bare.H/k_cos.c new file mode 100755 index 00000000..2f69d256 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_cos.c @@ -0,0 +1,91 @@ +/* @(#)k_cos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_cos( x, y ) + * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * + * Algorithm + * 1. Since cos(-x) = cos(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0. + * 3. cos(x) is approximated by a polynomial of degree 14 on + * [0,pi/4] + * 4 14 + * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x + * where the remez error is + * + * | 2 4 6 8 10 12 14 | -58 + * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 + * | | + * + * 4 6 8 10 12 14 + * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then + * cos(x) = 1 - x*x/2 + r + * since cos(x+y) ~ cos(x) - sin(x)*y + * ~ cos(x) - x*y, + * a correction term is necessary in cos(x) and hence + * cos(x+y) = 1 - (x*x/2 - (r - x*y)) + * For better accuracy when x > 0.3, let qx = |x|/4 with + * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. + * Then + * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). + * Note that 1-qx and (x*x/2-qx) is EXACT here, and the + * magnitude of the latter is at least a quarter of x*x/2, + * thus, reducing the rounding error in the subtraction. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ +C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ +C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ +C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ +C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ +C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ + +#ifdef __STDC__ + double __kernel_cos(double x, double y) +#else + double __kernel_cos(x, y) + double x,y; +#endif +{ + double a,hz,z,r,qx; + int ix; + ix = __HI(x)&0x7fffffff; /* ix = |x|'s high word*/ + if(ix<0x3e400000) { /* if x < 2**27 */ + if(((int)x)==0) return one; /* generate inexact */ + } + z = x*x; + r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6))))); + if(ix < 0x3FD33333) /* if |x| < 0.3 */ + return one - (0.5*z - (z*r - x*y)); + else { + if(ix > 0x3fe90000) { /* x > 0.78125 */ + qx = 0.28125; + } else { + __HI(qx) = ix-0x00200000; /* x/4 */ + __LO(qx) = 0; + } + hz = 0.5*z-qx; + a = one-qx; + return a - (hz - (z*r-x*y)); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c b/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c new file mode 100755 index 00000000..b14d7d2a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c @@ -0,0 +1,316 @@ + +/* @(#)k_rem_pio2.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + * double x[],y[]; int e0,nx,prec; int ipio2[]; + * + * __kernel_rem_pio2 return the last three digits of N with + * y = x - N*pi/2 + * so that |y| < pi/2. + * + * The method is to compute the integer (mod 8) and fraction parts of + * (2/pi)*x without doing the full multiplication. In general we + * skip the part of the product that are known to be a huge integer ( + * more accurately, = 0 mod 8 ). Thus the number of operations are + * independent of the exponent of the input. + * + * (2/pi) is represented by an array of 24-bit integers in ipio2[]. + * + * Input parameters: + * x[] The input value (must be positive) is broken into nx + * pieces of 24-bit integers in double precision format. + * x[i] will be the i-th 24 bit of x. The scaled exponent + * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 + * match x's up to 24 bits. + * + * Example of breaking a double positive z into x[0]+x[1]+x[2]: + * e0 = ilogb(z)-23 + * z = ldexp(z,-e0) + * for i = 0,1,2 + * x[i] = floor(z) + * z = (z-x[i])*2**24 + * + * + * y[] ouput result in an array of double precision numbers. + * The dimension of y[] is: + * 24-bit precision 1 + * 53-bit precision 2 + * 64-bit precision 2 + * 113-bit precision 3 + * The actual value is the sum of them. Thus for 113-bit + * precison, one may have to do something like: + * + * long double t,w,r_head, r_tail; + * t = (long double)y[2] + (long double)y[1]; + * w = (long double)y[0]; + * r_head = t+w; + * r_tail = w - (r_head - t); + * + * e0 The exponent of x[0] + * + * nx dimension of x[] + * + * prec an integer indicating the precision: + * 0 24 bits (single) + * 1 53 bits (double) + * 2 64 bits (extended) + * 3 113 bits (quad) + * + * ipio2[] + * integer array, contains the (24*i)-th to (24*i+23)-th + * bit of 2/pi after binary point. The corresponding + * floating value is + * + * ipio2[i] * 2^(-24(i+1)). + * + * External function: + * double ldexp(), floor(); + * + * + * Here is the description of some local variables: + * + * jk jk+1 is the initial number of terms of ipio2[] needed + * in the computation. The recommended value is 2,3,4, + * 6 for single, double, extended,and quad. + * + * jz local integer variable indicating the number of + * terms of ipio2[] used. + * + * jx nx - 1 + * + * jv index for pointing to the suitable ipio2[] for the + * computation. In general, we want + * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 + * is an integer. Thus + * e0-3-24*jv >= 0 or (e0-3)/24 >= jv + * Hence jv = max(0,(e0-3)/24). + * + * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. + * + * q[] double array with integral value, representing the + * 24-bits chunk of the product of x and 2/pi. + * + * q0 the corresponding exponent of q[0]. Note that the + * exponent for q[i] would be q0-24*i. + * + * PIo2[] double precision array, obtained by cutting pi/2 + * into 24 bits chunks. + * + * f[] ipio2[] in floating point + * + * iq[] integer array by breaking up q[] in 24-bits chunk. + * + * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] + * + * ih integer. If >0 it indicates q[] is >= 0.5, hence + * it also indicates the *sign* of the result. + * + */ + + +/* + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const int init_jk[] = {2,3,4,6}; /* initial value for jk */ +#else +static int init_jk[] = {2,3,4,6}; +#endif + +#ifdef __STDC__ +static const double PIo2[] = { +#else +static double PIo2[] = { +#endif + 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ + 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ + 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ + 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ + 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ + 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ + 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ + 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ +}; + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.0, +one = 1.0, +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ + +#ifdef __STDC__ + int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) +#else + int __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + double x[], y[]; int e0,nx,prec; int ipio2[]; +#endif +{ + int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih; + double z,fw,f[20],fq[20],q[20]; + + /* initialize jk*/ + jk = init_jk[prec]; + jp = jk; + + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx-1; + jv = (e0-3)/24; if(jv<0) jv=0; + q0 = e0-24*(jv+1); + + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv-jx; m = jx+jk; + for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j]; + + /* compute q[0],q[1],...q[jk] */ + for (i=0;i<=jk;i++) { + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + } + + jz = jk; +recompute: + /* distill q[] into iq[] reversingly */ + for(i=0,j=jz,z=q[jz];j>0;i++,j--) { + fw = (double)((int)(twon24* z)); + iq[i] = (int)(z-two24*fw); + z = q[j-1]+fw; + } + + /* compute n */ + z = ldexp(z,q0); /* actual value of z */ + z -= 8.0*floor(z*0.125); /* trim off integer >= 8 */ + n = (int) z; + z -= (double)n; + ih = 0; + if(q0>0) { /* need iq[jz-1] to determine n */ + i = (iq[jz-1]>>(24-q0)); n += i; + iq[jz-1] -= i<<(24-q0); + ih = iq[jz-1]>>(23-q0); + } + else if(q0==0) ih = iq[jz-1]>>23; + else if(z>=0.5) ih=2; + + if(ih>0) { /* q > 0.5 */ + n += 1; carry = 0; + for(i=0;i0) { /* rare case: chance is 1 in 12 */ + switch(q0) { + case 1: + iq[jz-1] &= 0x7fffff; break; + case 2: + iq[jz-1] &= 0x3fffff; break; + } + } + if(ih==2) { + z = one - z; + if(carry!=0) z -= ldexp(one,q0); + } + } + + /* check if recomputation is needed */ + if(z==zero) { + j = 0; + for (i=jz-1;i>=jk;i--) j |= iq[i]; + if(j==0) { /* need recomputation */ + for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */ + + for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */ + f[jx+i] = (double) ipio2[jv+i]; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; + } + jz += k; + goto recompute; + } + } + + /* chop off zero terms */ + if(z==0.0) { + jz -= 1; q0 -= 24; + while(iq[jz]==0) { jz--; q0-=24;} + } else { /* break z into 24-bit if necessary */ + z = ldexp(z,-q0); + if(z>=two24) { + fw = (double)((int)(twon24*z)); + iq[jz] = (int)(z-two24*fw); + jz += 1; q0 += 24; + iq[jz] = (int) fw; + } else iq[jz] = (int) z ; + } + + /* convert integer "bit" chunk to floating-point value */ + fw = ldexp(one,q0); + for(i=jz;i>=0;i--) { + q[i] = fw*(double)iq[i]; fw*=twon24; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for(i=jz;i>=0;i--) { + for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k]; + fq[jz-i] = fw; + } + + /* compress fq[] into y[] */ + switch(prec) { + case 0: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + break; + case 1: + case 2: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + fw = fq[0]-fw; + for (i=1;i<=jz;i++) fw += fq[i]; + y[1] = (ih==0)? fw: -fw; + break; + case 3: /* painful */ + for (i=jz;i>0;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (i=jz;i>1;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; + if(ih==0) { + y[0] = fq[0]; y[1] = fq[1]; y[2] = fw; + } else { + y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw; + } + } + return n&7; +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_sin.c b/src/MSL_C.PPCEABI.bare.H/k_sin.c new file mode 100755 index 00000000..b136909a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_sin.c @@ -0,0 +1,73 @@ +/* @(#)k_sin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __kernel_sin( x, y, iy) + * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). + * + * Algorithm + * 1. Since sin(-x) = -sin(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0. + * 3. sin(x) is approximated by a polynomial of degree 13 on + * [0,pi/4] + * 3 13 + * sin(x) ~ x + S1*x + ... + S6*x + * where + * + * |sin(x) 2 4 6 8 10 12 | -58 + * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 + * | x | + * + * 4. sin(x+y) = sin(x) + sin'(x')*y + * ~ sin(x) + (1-x*x/2)*y + * For better accuracy, let + * 3 2 2 2 2 + * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) + * then 3 2 + * sin(x) = x + (S1*x + (x *(r-y/2)+y)) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ +S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ +S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ +S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ +S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ +S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + +#ifdef __STDC__ + double __kernel_sin(double x, double y, int iy) +#else + double __kernel_sin(x, y, iy) + double x,y; int iy; /* iy=0 if y is zero */ +#endif +{ + double z,r,v; + int ix; + ix = __HI(x)&0x7fffffff; /* high word of x */ + if(ix<0x3e400000) /* |x| < 2**-27 */ + {if((int)x==0) return x;} /* generate inexact */ + z = x*x; + v = z*x; + r = S2+z*(S3+z*(S4+z*(S5+z*S6))); + if(iy==0) return x+v*(S1+z*r); + else return x-((z*(half*y-v*r)-y)-v*S1); +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_tan.c b/src/MSL_C.PPCEABI.bare.H/k_tan.c new file mode 100755 index 00000000..d7dec7f5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_tan.c @@ -0,0 +1,134 @@ +/* + * ==================================================== + * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* INDENT OFF */ +/* __kernel_tan( x, y, k ) + * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input k indicates whether tan (if k = 1) or -1/tan (if k = -1) is returned. + * + * Algorithm + * 1. Since tan(-x) = -tan(x), we need only to consider positive x. + * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0. + * 3. tan(x) is approximated by a odd polynomial of degree 27 on + * [0,0.67434] + * 3 27 + * tan(x) ~ x + T1*x + ... + T13*x + * where + * + * |tan(x) 2 4 26 | -59.2 + * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 + * | x | + * + * Note: tan(x+y) = tan(x) + tan'(x)*y + * ~ tan(x) + (1+x*x)*y + * Therefore, for better accuracy in computing tan(x+y), let + * 3 2 2 2 2 + * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) + * then + * 3 2 + * tan(x+y) = x + (T1*x + (x *(r+y)+y)) + * + * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then + * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) + * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +static const double xxx[] = { + 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ + 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ + 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ + 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ + 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ + 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ + 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ + 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ + 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ + 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ + 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ + -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ + 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ +}; +#define pio4 7.85398163397448278999e-01 +#define pio4lo 3.06161699786838301793e-17 +#define T xxx +/* INDENT ON */ + +double +__kernel_tan(double x, double y, int iy) { + double z, r, v, w, s; + int ix, hx; + + hx = __HI(x); /* high word of x */ + ix = hx & 0x7fffffff; /* high word of |x| */ + if (ix < 0x3e300000) { /* x < 2**-28 */ + if ((int) x == 0) { /* generate inexact */ + if (((ix | __LO(x)) | (iy + 1)) == 0) + return 1 / fabs(x); + else { + if (iy == 1) + return x; + else + return -1 / x; + } + } + } + if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ + if (hx < 0) { + x = -x; + y = -y; + } + z = pio4 - x; + w = pio4lo - y; + x = z + w; + y = 0.0; + } + z = x * x; + w = z * z; + /* + * Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + + w * T[11])))); + v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + + w * T[12]))))); + s = z * x; + r = y + z * (s * (r + v) + y); + r += T[0] * s; + w = x + r; + if (ix >= 0x3FE59428) { + v = (double) iy; + return (double) (1 - ((hx >> 30) & 2)) * + (v - 2.0 * (x - (w * w / (w + v) - r))); + } + if (iy == 1) + return w; + else { + /* + * if allow error up to 2 ulp, simply return + * -1.0 / (x+r) here + */ + /* compute -1.0 / (x+r) accurately */ + double a, t; + z = w; + __LO(z) = 0; + v = r - (z - x); /* z+v = r+x */ + t = a = -1.0 / w; /* a = -1.0/w */ + __LO(t) = 0; + s = 1.0 + t * z; + return t + a * (s + t * v); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/math_ppc.c b/src/MSL_C.PPCEABI.bare.H/math_ppc.c new file mode 100644 index 00000000..ab157318 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/math_ppc.c @@ -0,0 +1,20 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h" +float acosf(float arg0) { + return (float) acos(arg0); +} + +float atan2f(float arg0) { + return (float) atan2(arg0); +} + +float cosf(float arg0) { + return (float) cos(arg0); +} + +float sinf(float arg0) { + return (float) sin(arg0); +} + +float tanf(float arg0) { + return (float) tan(arg0); +} diff --git a/src/MSL_C.PPCEABI.bare.H/mbstring.c b/src/MSL_C.PPCEABI.bare.H/mbstring.c new file mode 100644 index 00000000..0364afa3 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mbstring.c @@ -0,0 +1,64 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +static int unicode_to_UTF8(char* s, wchar_t wchar) { + int number_of_bytes; + char* target_ptr; + char first_byte_mark[4] = {0x00, 0x00, 0xc0, 0xe0}; + + if (!s) { + return 0; + } + + if (wchar < 0x0080) + number_of_bytes = 1; + else if (wchar < 0x0800) + number_of_bytes = 2; + else + number_of_bytes = 3; + + target_ptr = s + number_of_bytes; + + switch (number_of_bytes) { + case 3: + *--target_ptr = (wchar & 0x003f) | 0x80; + wchar >>= 6; + case 2: + *--target_ptr = (wchar & 0x003f) | 0x80; + wchar >>= 6; + case 1: + *--target_ptr = wchar | first_byte_mark[number_of_bytes]; + } + + return (number_of_bytes); +} + +static inline int wctomb(char* s, wchar_t wchar) { + return (unicode_to_UTF8(s, wchar)); +} + +size_t wcstombs(char* s, const wchar_t* pwcs, size_t n) { + int chars_written = 0; + int result; + char temp[3]; + wchar_t* source; + + if (!s || !pwcs) + return (0); + + source = (wchar_t*)pwcs; + while (chars_written <= n) { + if (!*source) { + *(s + chars_written) = '\0'; + break; + } else { + result = wctomb(temp, *source++); + if ((chars_written + result) <= n) { + strcat(s + chars_written, temp, result); + chars_written += result; + } else + break; + } + } + + return (chars_written); +} diff --git a/src/MSL_C.PPCEABI.bare.H/mem.c b/src/MSL_C.PPCEABI.bare.H/mem.c new file mode 100644 index 00000000..fc160cd5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mem.c @@ -0,0 +1,92 @@ +#include "string.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h" + +void* memmove(void* dst, const void* src, size_t n) +{ + unsigned char* csrc; + unsigned char* cdst; + + int reverse = (unsigned int)src < (unsigned int)dst; + + if (n >= 32) { + if (((unsigned int)dst ^ (unsigned int)src) & 3) { + if (!reverse) { + __copy_longs_unaligned(dst, src, n); + } else { + __copy_longs_rev_unaligned(dst, src, n); + } + } else { + if (!reverse) { + __copy_longs_aligned(dst, src, n); + } else { + __copy_longs_rev_aligned(dst, src, n); + } + } + + return dst; + } else { + if (!reverse) { + csrc = ((unsigned char*)src) - 1; + cdst = ((unsigned char*)dst) - 1; + n++; + + while (--n > 0) { + *++cdst = *++csrc; + } + } else { + csrc = (unsigned char*)src + n; + cdst = (unsigned char*)dst + n; + n++; + + while (--n > 0) { + *--cdst = *--csrc; + } + } + } + + return dst; +} + +void* memchr(const void* ptr, int ch, size_t count) +{ + const unsigned char* p; + + unsigned long v = (ch & 0xff); + + for (p = (unsigned char*)ptr - 1, count++; --count;) + if ((*++p & 0xff) == v) + return (void*)p; + + return NULL; +} + +unsigned char* __memrchr(unsigned char* s, int c, size_t n){ // credit to CelestialAmber + int n_count; + size_t char_check; + + char_check = (unsigned char)c; + s = &s[n]; + n_count = n + 1; + + while(--n_count){ + if(*--s == char_check){ + return s; + } + } + + return 0; +} + +int memcmp(const void* lhs, const void* rhs, size_t count) +{ + const unsigned char* p1; + const unsigned char* p2; + + for (p1 = (const unsigned char*)lhs - 1, p2 = (const unsigned char*)rhs - 1, + count++; + --count;) + if (*++p1 != *++p2) + return ((*p1 < *p2) ? -1 : +1); + + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/mem_funcs.c b/src/MSL_C.PPCEABI.bare.H/mem_funcs.c new file mode 100644 index 00000000..a22984c4 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mem_funcs.c @@ -0,0 +1,221 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h" + +#define cps ((unsigned char*)src) +#define cpd ((unsigned char*)dst) +#define lps ((unsigned long*)src) +#define lpd ((unsigned long*)dst) +#define deref_auto_inc(p) *++(p) + +void __copy_longs_aligned(void* dst, const void* src, size_t n) +{ + unsigned long i; + + i = (-(unsigned long)dst) & 3; + + cps = ((unsigned char*)src) - 1; + cpd = ((unsigned char*)dst) - 1; + + if (i) { + n -= i; + + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--i); + } + + lps = ((unsigned long*)(cps + 1)) - 1; + lpd = ((unsigned long*)(cpd + 1)) - 1; + + i = n >> 5; + + if (i) + do { + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + } while (--i); + + i = (n & 31) >> 2; + + if (i) + do + deref_auto_inc(lpd) = deref_auto_inc(lps); + while (--i); + + cps = ((unsigned char*)(lps + 1)) - 1; + cpd = ((unsigned char*)(lpd + 1)) - 1; + + n &= 3; + + if (n) + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--n); + + return; +} + +void __copy_longs_rev_aligned(void* dst, const void* src, size_t n) +{ + unsigned long i; + + cps = ((unsigned char*)src) + n; + cpd = ((unsigned char*)dst) + n; + + i = ((unsigned long)cpd) & 3; + + if (i) { + n -= i; + + do + *--cpd = *--cps; + while (--i); + } + + i = n >> 5; + + if (i) + do { + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + } while (--i); + + i = (n & 31) >> 2; + + if (i) + do + *--lpd = *--lps; + while (--i); + + n &= 3; + + if (n) + do + *--cpd = *--cps; + while (--n); + + return; +} + +void __copy_longs_unaligned(void* dst, const void* src, size_t n) +{ + unsigned long i, v1, v2; + unsigned int src_offset, left_shift, right_shift; + + i = (-(unsigned long)dst) & 3; + + cps = ((unsigned char*)src) - 1; + cpd = ((unsigned char*)dst) - 1; + + if (i) { + n -= i; + + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--i); + } + + src_offset = ((unsigned int)(cps + 1)) & 3; + + left_shift = src_offset << 3; + right_shift = 32 - left_shift; + + cps -= src_offset; + + lps = ((unsigned long*)(cps + 1)) - 1; + lpd = ((unsigned long*)(cpd + 1)) - 1; + + i = n >> 3; + + v1 = deref_auto_inc(lps); + + do { + v2 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v1 << left_shift) | (v2 >> right_shift); + v1 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v2 << left_shift) | (v1 >> right_shift); + } while (--i); + + if (n & 4) { + v2 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v1 << left_shift) | (v2 >> right_shift); + } + + cps = ((unsigned char*)(lps + 1)) - 1; + cpd = ((unsigned char*)(lpd + 1)) - 1; + + n &= 3; + + if (n) { + cps -= 4 - src_offset; + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--n); + } + + return; +} + +void __copy_longs_rev_unaligned(void* dst, const void* src, size_t n) +{ + unsigned long i, v1, v2; + unsigned int src_offset, left_shift, right_shift; + + cps = ((unsigned char*)src) + n; + cpd = ((unsigned char*)dst) + n; + + i = ((unsigned long)cpd) & 3; + + if (i) { + n -= i; + + do + *--cpd = *--cps; + while (--i); + } + + src_offset = ((unsigned int)cps) & 3; + + left_shift = src_offset << 3; + right_shift = 32 - left_shift; + + cps += 4 - src_offset; + + i = n >> 3; + + v1 = *--lps; + + do { + v2 = *--lps; + *--lpd = (v2 << left_shift) | (v1 >> right_shift); + v1 = *--lps; + *--lpd = (v1 << left_shift) | (v2 >> right_shift); + } while (--i); + + if (n & 4) { + v2 = *--lps; + *--lpd = (v2 << left_shift) | (v1 >> right_shift); + } + + n &= 3; + + if (n) { + cps += src_offset; + do + *--cpd = *--cps; + while (--n); + } + + return; +} diff --git a/src/MSL_C.PPCEABI.bare.H/misc_io.c b/src/MSL_C.PPCEABI.bare.H/misc_io.c new file mode 100644 index 00000000..06827814 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/misc_io.c @@ -0,0 +1,6 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" + +void __stdio_atexit(void) { + __stdio_exit = __close_all; +} diff --git a/src/MSL_C.PPCEABI.bare.H/printf.c b/src/MSL_C.PPCEABI.bare.H/printf.c new file mode 100644 index 00000000..5879d452 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/printf.c @@ -0,0 +1,1257 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h" +#include "string.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" +#include "stdarg.h" + +extern void __num2dec(const decform*, double, decimal*); + +#define TARGET_FLOAT_BITS 64 +#define TARGET_FLOAT_BYTES (TARGET_FLOAT_BITS / 8) +#define TARGET_FLOAT_MAX_EXP LDBL_MAX_EXP +#define TARGET_FLOAT_MANT_DIG LDBL_MANT_DIG +#define TARGET_FLOAT_IMPLICIT_J_BIT 1 +#define TARGET_FLOAT_MANT_BITS \ + (TARGET_FLOAT_MANT_DIG - TARGET_FLOAT_IMPLICIT_J_BIT) +#define TARGET_FLOAT_EXP_BITS (TARGET_FLOAT_BITS - TARGET_FLOAT_MANT_BITS - 1) + +enum justification_options { + left_justification, + right_justification, + zero_fill +}; + +enum sign_options { only_minus, sign_always, space_holder }; + +enum argument_options { + normal_argument, + char_argument, + short_argument, + long_argument, + long_long_argument, + long_double_argument, + wchar_argument +}; + +typedef struct { + unsigned char justification_options; + unsigned char sign_options; + unsigned char precision_specified; + unsigned char alternate_form; + unsigned char argument_options; + unsigned char conversion_char; + int field_width; + int precision; +} print_format; + +static const char* parse_format(const char *format_string, va_list *arg, print_format *format) { + print_format f; + const char* s = format_string; + int c; + int flag_found; + f.justification_options = right_justification; + f.sign_options = only_minus; + f.precision_specified = 0; + f.alternate_form = 0; + f.argument_options = normal_argument; + f.field_width = 0; + f.precision = 0; + + if ((c = *++s) == '%') { + f.conversion_char = c; + *format = f; + return ((const char*)s + 1); + } + + for (;;) { + flag_found = 1; + + switch (c) { + case '-': + f.justification_options = left_justification; + break; + case '+': + f.sign_options = sign_always; + break; + case ' ': + if (f.sign_options != sign_always) { + f.sign_options = space_holder; + } + break; + case '#': + f.alternate_form = 1; + break; + case '0': + if (f.justification_options != left_justification) { + f.justification_options = zero_fill; + } + break; + default: + flag_found = 0; + break; + } + + if (flag_found) { + c = *++s; + } + else { + break; + } + } + + if (c == '*') { + if ((f.field_width = va_arg(*arg, int)) < 0) { + f.justification_options = left_justification; + f.field_width = -f.field_width; + } + + c = *++s; + } + else { + while (isdigit(c)) { + f.field_width = (f.field_width * 10) + (c - '0'); + c = *++s; + } + } + + if (f.field_width > 509) { + f.conversion_char = 0xFF; + *format = f; + return ((const char*)s + 1); + } + + if (c == '.') { + f.precision_specified = 1; + + if ((c = *++s) == '*') { + if ((f.precision = va_arg(*arg, int)) < 0) { + f.precision_specified = 0; + } + + c = *++s; + } + else { + while (isdigit(c)) { + f.precision = (f.precision * 10) + (c - '0'); + c = *++s; + } + } + } + + flag_found = 1; + + switch (c) { + case 'h': + f.argument_options = short_argument; + + if (s[1] == 'h') { + f.argument_options = char_argument; + c = *++s; + } + + break; + + case 'l': + f.argument_options = long_argument; + + if (s[1] == 'l') { + f.argument_options = long_long_argument; + c = *++s; + } + + break; + + case 'L': + f.argument_options = long_double_argument; + break; + default: + flag_found = 0; + break; + } + + if (flag_found) { + c = *++s; + } + + f.conversion_char = c; + + switch (c) { + case 'd': + case 'i': + case 'u': + case 'o': + case 'x': + case 'X': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 1; + } + else if (f.justification_options == zero_fill) { + f.justification_options = right_justification; + } + break; + + case 'f': + case 'F': + if (f.argument_options == short_argument || f.argument_options == long_long_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 6; + } + break; + + case 'a': + case 'A': + if (!f.precision_specified) { + f.precision = 0xD; + } + + if (f.argument_options == short_argument || f.argument_options == long_long_argument || f.argument_options == char_argument) { + f.conversion_char = 0xFF; + } + + break; + + case 'g': + case 'G': + if (!f.precision) { + f.precision = 1; + } + + case 'e': + case 'E': + if (f.argument_options == short_argument || f.argument_options == long_long_argument || f.argument_options == char_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 6; + } + break; + + case 'p': + f.conversion_char = 'x'; + f.alternate_form = 1; + f.argument_options = long_argument; + f.precision = 8; + break; + + case 'c': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } + else { + if (f.precision_specified || f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } + + break; + + case 's': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } + else { + if (f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } + + break; + + case 'n': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + } + + break; + + default: + f.conversion_char = 0xFF; + break; + } + + *format = f; + return ((const char*)s + 1); +} + +static char* long2str(long num, char* buff, print_format format) +{ + unsigned long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; + + p = buff; + *--p = 0; + digits = 0; + + if (!num && !format.precision + && !(format.alternate_form && format.conversion_char == 'o')) { + return p; + } + + switch (format.conversion_char) { + case 'd': + case 'i': + base = 10; + + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; + + case 'o': + base = 8; + format.sign_options = only_minus; + break; + + case 'u': + base = 10; + format.sign_options = only_minus; + break; + + case 'x': + case 'X': + base = 16; + format.sign_options = only_minus; + break; + } + + do { + n = unsigned_num % base; + unsigned_num /= base; + + if (n < 10) { + n += '0'; + } else { + n -= 10; + + if (format.conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } + + *--p = n; + ++digits; + } while (unsigned_num != 0); + + if (base == 8 && format.alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } + + if (format.justification_options == zero_fill) { + format.precision = format.field_width; + + if (minus || format.sign_options != only_minus) + --format.precision; + + if (base == 16 && format.alternate_form) + format.precision -= 2; + } + + if (buff - p + format.precision > 509) + return (0); + + while (digits < format.precision) { + *--p = '0'; + ++digits; + } + + if (base == 16 && format.alternate_form) { + *--p = format.conversion_char; + *--p = '0'; + } + + if (minus) { + *--p = '-'; + } else if (format.sign_options == sign_always) { + *--p = '+'; + } else if (format.sign_options == space_holder) { + *--p = ' '; + } + + return p; +} + +static char* longlong2str(long long num, char* pBuf, print_format fmt) +{ + unsigned long long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; + p = pBuf; + *--p = 0; + digits = 0; + + if (!num && !fmt.precision + && !(fmt.alternate_form && fmt.conversion_char == 'o')) { + return p; + } + + switch (fmt.conversion_char) { + case 'd': + case 'i': + base = 10; + + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; + case 'o': + base = 8; + fmt.sign_options = only_minus; + break; + case 'u': + base = 10; + fmt.sign_options = only_minus; + break; + case 'x': + case 'X': + base = 16; + fmt.sign_options = only_minus; + break; + } + + do { + n = unsigned_num % base; + unsigned_num /= base; + + if (n < 10) { + n += '0'; + } else { + n -= 10; + if (fmt.conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } + + *--p = n; + ++digits; + } while (unsigned_num != 0); + + if (base == 8 && fmt.alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } + + if (fmt.justification_options == zero_fill) { + fmt.precision = fmt.field_width; + + if (minus || fmt.sign_options != only_minus) { + --fmt.precision; + } + + if (base == 16 && fmt.alternate_form) { + fmt.precision -= 2; + } + } + + if (pBuf - p + fmt.precision > 509) { + return 0; + } + + while (digits < fmt.precision) { + *--p = '0'; + ++digits; + } + + if (base == 16 && fmt.alternate_form) { + *--p = fmt.conversion_char; + *--p = '0'; + } + + if (minus) { + *--p = '-'; + } else if (fmt.sign_options == sign_always) { + *--p = '+'; + } else if (fmt.sign_options == space_holder) { + *--p = ' '; + } + + return p; +} + +static char * double2hex(long double num, char * buff, print_format format) { + char *p; + unsigned char *q; + unsigned char temp_r7; + char working_byte; + long double ld; + long exp; + print_format exp_format; + int hex_precision; + decform form; + decimal dec; + + p = buff; + ld = num; + + if (format.precision > 509) { + return 0; + } + + form.style = (char) 0; + form.digits = 0x20; + __num2dec(&form, num, &dec); + + if (*dec.sig.text == 'I') { + if (*(short*) &ld & 0x8000) { + p = buff - 5; + if (format.conversion_char == 'A') strcpy(p, "-INF"); + else strcpy(p, "-inf"); + } + else { + p = buff - 4; + if (format.conversion_char == 'A') strcpy(p, "INF"); + else strcpy(p, "inf"); + } + + return p; + } + if (*dec.sig.text == 'N') { + if (*(unsigned char*) &num & 0x80) { + p = buff - 5; + if (format.conversion_char == 'A') strcpy(p, "-NAN"); + else strcpy(p, "-nan"); + } + else { + p = buff - 4; + if (format.conversion_char == 'A') strcpy(p, "NAN"); + else strcpy(p, "nan"); + } + + return p; + } + + exp_format.justification_options = right_justification; + exp_format.sign_options = sign_always; + exp_format.precision_specified = 0; + exp_format.alternate_form = 0; + exp_format.argument_options = normal_argument; + exp_format.field_width = 0; + exp_format.precision = 1; + exp_format.conversion_char = 'd'; + + exp = (short) ((*(short*) &ld & 0x7FFF) >> 4) - 0x3FF; + p = long2str(exp, buff, exp_format); + if (format.conversion_char == 'a') + *--p = 'p'; + else + *--p = 'P'; + q = (unsigned char*) # + + for (hex_precision = format.precision; hex_precision >= 1; hex_precision--) { + temp_r7 = *(q + (hex_precision / 2 + 1)); + if (hex_precision % 2) { + working_byte = temp_r7 & 0xF; + } else { + working_byte = (temp_r7 >> 4); + } + + if (working_byte < 10) { + working_byte += '0'; + } + else + if (format.conversion_char == 'a') { + working_byte += 'a' - 10; + } + else { + working_byte += 'A' - 10; + } + + *--p = working_byte; + } + + if (TARGET_FLOAT_IMPLICIT_J_BIT){ + if (format.precision || format.alternate_form) { + *--p = '.'; + } + *--p = '1'; + } + + if (format.conversion_char == 'a') { + *--p = 'x'; + } + else { + *--p = 'X'; + } + + *--p = '0'; + + if (*((short*) &ld) & 0x8000) { + *--p = '-'; + } + else if (format.sign_options == sign_always) { + *--p = '+'; + } + else if (format.sign_options == space_holder) { + *--p = ' '; + } + + return p; +} + +static void round_decimal(decimal* dec, int new_length) +{ + char c; + char* p; + int carry; + + if (new_length < 0) { + return_zero: + dec->exp = 0; + dec->sig.length = 1; + *dec->sig.text = '0'; + return; + } + + if (new_length >= dec->sig.length) { + return; + } + + p = (char*)dec->sig.text + new_length + 1; + c = *--p - '0'; + + if (c == 5) { + char* q = &((char*)dec->sig.text)[dec->sig.length]; + + while (--q > p && *q == '0') + ; + carry = (q == p) ? p[-1] & 1 : 1; + } else { + carry = (c > 5); + } + + while (new_length != 0) { + c = *--p - '0' + carry; + + if ((carry = (c > 9)) != 0 || c == 0) { + --new_length; + } else { + *p = c + '0'; + break; + } + } + + if (carry != 0) { + dec->exp += 1; + dec->sig.length = 1; + *dec->sig.text = '1'; + return; + } else if (new_length == 0) { + goto return_zero; + } + + dec->sig.length = new_length; +} + +static char* float2str(long double num, char *buff, print_format format) { + decimal dec; + decform form; + char* p; + char* q; + int n, digits, sign; + int int_digits, frac_digits; + + if (format.precision > 509) { + return 0; + } + + form.style = 0; + form.digits = 0x20; + __num2dec(&form, num, &dec); + p = (char*)dec.sig.text + dec.sig.length; + + while (dec.sig.length > 1 && *--p == '0') { + --dec.sig.length; + ++dec.exp; + } + + switch (*dec.sig.text) { + case '0': + dec.exp = 0; + break; + case 'I': + if (num < 0) { + p = buff - 5; + + if (isupper(format.conversion_char)) { + strcpy(p, "-INF"); + } + else { + strcpy(p, "-inf"); + } + } + else { + p = buff - 4; + if (isupper(format.conversion_char)) { + strcpy(p, "INF"); + } + else { + strcpy(p, "inf"); + } + } + + return p; + + case 'N': + if (dec.sign) { + p = buff - 5; + + if (isupper(format.conversion_char)) { + strcpy(p, "-NAN"); + } + else { + strcpy(p, "-nan"); + } + } + else { + p = buff - 4; + if (isupper(format.conversion_char)) { + strcpy(p, "NAN"); + } + else { + strcpy(p, "nan"); + } + } + + return p; + } + + dec.exp += dec.sig.length - 1; + p = buff; + *--p = 0; + + switch (format.conversion_char) + { + case 'g': + case 'G': + + if (dec.sig.length > format.precision) { + round_decimal(&dec, format.precision); + } + + if (dec.exp < -4 || dec.exp >= format.precision) + { + if (format.alternate_form) { + --format.precision; + } + else { + format.precision = dec.sig.length - 1; + } + + if (format.conversion_char == 'g') { + format.conversion_char = 'e'; + } + else { + format.conversion_char = 'E'; + } + + goto e_format; + } + + if (format.alternate_form) { + format.precision -= dec.exp + 1; + } + else { + if ((format.precision = dec.sig.length - (dec.exp + 1)) < 0) { + format.precision = 0; + } + } + + goto f_format; + + case 'e': + case 'E': + e_format: + + if (dec.sig.length > format.precision + 1) { + round_decimal(&dec, format.precision + 1); + } + + n = dec.exp; + sign = '+'; + + if (n < 0) { + n = -n; + sign = '-'; + } + + for (digits = 0; n || digits < 2; ++digits) { + *--p = n % 10 + '0'; + n /= 10; + } + + *--p = sign; + *--p = format.conversion_char; + + if (buff - p + format.precision > 509) { + return 0; + } + + if (dec.sig.length < format.precision + 1) { + for (n = format.precision + 1 - dec.sig.length + 1; --n;) { + *--p = '0'; + } + } + + for (n = dec.sig.length, q = (char*)dec.sig.text + dec.sig.length; --n;) { + *--p = *--q; + } + + if (format.precision || format.alternate_form) { + *--p = '.'; + } + + *--p = *dec.sig.text; + + if (dec.sign) + *--p = '-'; + else if (format.sign_options == sign_always) + *--p = '+'; + else if (format.sign_options == space_holder) + *--p = ' '; + + break; + + case 'f': + case 'F': + f_format: + + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; + + if (frac_digits > format.precision) { + round_decimal(&dec, dec.sig.length - (frac_digits - format.precision)); + + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; + } + + if ((int_digits = dec.exp + 1) < 0) + int_digits = 0; + + if (int_digits + frac_digits > 509) + return 0; + + q = (char *) dec.sig.text + dec.sig.length; + + for (digits = 0; digits < (format.precision - frac_digits); ++digits) + *--p = '0'; + + for (digits = 0; digits < frac_digits && digits < dec.sig.length; ++digits) + *--p = *--q; + + for (; digits < frac_digits; ++digits) + *--p = '0'; + + if (format.precision || format.alternate_form) + *--p = '.'; + + if (int_digits) { + for (digits = 0; digits < int_digits - dec.sig.length; ++digits) { + *--p = '0'; + } + + for (; digits < int_digits; ++digits) { + *--p = *--q; + } + } + else { + *--p = '0'; + } + + if (dec.sign) { + *--p = '-'; + } + else if (format.sign_options == sign_always) { + *--p = '+'; + } + else if (format.sign_options == space_holder) { + *--p = ' '; + } + + break; + } + + return p; +} + +static int __pformatter(void *(*WriteProc)(void *, const char *, size_t), void *WriteProcArg, const char * format_str, va_list arg) { + int num_chars, chars_written, field_width; + const char* format_ptr; + const char* curr_format; + print_format format; + long long_num; + long long long_long_num; + long double long_double_num; + char buff[512]; + char* buff_ptr; + char* string_end; + char fill_char = ' '; + + format_ptr = format_str; + chars_written = 0; + + while (*format_ptr) { + if (!(curr_format = strchr(format_ptr, '%'))) { + num_chars = strlen(format_ptr); + chars_written += num_chars; + + if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } + + break; + } + + num_chars = curr_format - format_ptr; + chars_written += num_chars; + + if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } + + format_ptr = curr_format; + format_ptr = parse_format(format_ptr, (va_list*)arg, &format); + + switch (format.conversion_char) { + case 'd': + case 'i': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, long); + } + else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, long long); + } + else { + long_num = va_arg(arg, int); + } + + if (format.argument_options == short_argument) { + long_num = (short)long_num; + } + + if (format.argument_options == char_argument) { + long_num = (signed char)long_num; + } + + if (format.argument_options == long_long_argument) { + if (!(buff_ptr = longlong2str(long_long_num, buff + 512, format))) { + goto conversion_error; + } + } + else { + if (!(buff_ptr = long2str(long_num, buff + 512, format))) { + goto conversion_error; + } + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 'o': + case 'u': + case 'x': + case 'X': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, unsigned long); + } + else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, long long); + } + else { + long_num = va_arg(arg, unsigned int); + } + + if (format.argument_options == short_argument) { + long_num = (unsigned short)long_num; + } + + if (format.argument_options == char_argument) { + long_num = (unsigned char)long_num; + } + + if (format.argument_options == long_long_argument) { + if (!(buff_ptr = longlong2str(long_long_num, buff + 512, format))) { + goto conversion_error; + } + } + else { + if (!(buff_ptr = long2str(long_num, buff + 512, format))) { + goto conversion_error; + } + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 'f': + case 'F': + case 'e': + case 'E': + case 'g': + case 'G': + if (format.argument_options == long_double_argument) { + long_double_num = va_arg(arg, long double); + } + else { + long_double_num = va_arg(arg, double); + } + + if (!(buff_ptr = float2str(long_double_num, buff + 512, format))) { + goto conversion_error; + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 'a': + case 'A': + if (format.argument_options == long_double_argument) { + long_double_num = va_arg(arg, long double); + } + else { + long_double_num = va_arg(arg, double); + } + + if (!(buff_ptr = double2hex(long_double_num, buff + 512, format))) { + goto conversion_error; + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 's': + if (format.argument_options == wchar_argument) { + wchar_t* wcs_ptr = va_arg(arg, wchar_t*); + + if(wcs_ptr == NULL){ + wcs_ptr = L""; + } + + if ((num_chars = wcstombs(buff, wcs_ptr, sizeof(buff))) < 0) { + goto conversion_error; + } + + buff_ptr = &buff[0]; + } + else { + buff_ptr = va_arg(arg, char *); + } + + if (buff_ptr == NULL) { + buff_ptr = ""; + } + + if (format.alternate_form) { + num_chars = (unsigned char)*buff_ptr++; + + if (format.precision_specified && num_chars > format.precision) { + num_chars = format.precision; + } + } + else if (format.precision_specified) { + num_chars = format.precision; + + if ((string_end = (char*)memchr((unsigned char*)buff_ptr, 0, num_chars)) != 0) { + num_chars = string_end - buff_ptr; + } + } + else { + num_chars = strlen(buff_ptr); + } + + break; + + case 'n': + buff_ptr = va_arg(arg, char *); + + switch (format.argument_options) { + case normal_argument: + *(int*)buff_ptr = chars_written; + break; + case short_argument: + *(short*)buff_ptr = chars_written; + break; + case long_argument: + *(long*)buff_ptr = chars_written; + break; + case long_long_argument: + *(long long*)buff_ptr = chars_written; + break; + } + + continue; + + case 'c': + buff_ptr = buff; + *buff_ptr = va_arg(arg, int); + num_chars = 1; + break; + + case '%': + buff_ptr = buff; + *buff_ptr = '%'; + num_chars = 1; + break; + + case 0xFF: + default: + conversion_error: + num_chars = strlen(curr_format); + chars_written += num_chars; + + if (num_chars && !(*WriteProc)(WriteProcArg, curr_format, num_chars)) { + return -1; + } + + return chars_written; + break; + } + + field_width = num_chars; + + if (format.justification_options != left_justification) { + fill_char = (format.justification_options == zero_fill) ? '0' : ' '; + + if (((*buff_ptr == '+') || (*buff_ptr == '-') || (*buff_ptr == ' ')) && (fill_char == '0')) { + if ((*WriteProc)(WriteProcArg, buff_ptr, 1) == 0) { + return -1; + } + + ++buff_ptr; + num_chars--; + } + + while (field_width < format.field_width) { + if ((*WriteProc)(WriteProcArg, &fill_char, 1) == 0) { + return -1; + } + + ++field_width; + } + } + + if (num_chars && !(*WriteProc)(WriteProcArg, buff_ptr, num_chars)) { + return -1; + } + + if (format.justification_options == left_justification) { + while (field_width < format.field_width) { + char blank = ' '; + + if ((*WriteProc)(WriteProcArg, &blank, 1) == 0) { + return -1; + } + + ++field_width; + } + } + + chars_written += field_width; + } + + return chars_written; +} + +void* __FileWrite(void* pFile, const char* pBuffer, size_t char_num) +{ + return (fwrite(pBuffer, 1, char_num, (FILE*)pFile) == char_num ? pFile : 0); +} + +void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num) +{ + size_t chars; + __OutStrCtrl* ctrl = (__OutStrCtrl*)pCtrl; + + chars = ((ctrl->CharsWritten + char_num) <= ctrl->MaxCharCount) + ? char_num + : ctrl->MaxCharCount - ctrl->CharsWritten; + memcpy(ctrl->CharStr + ctrl->CharsWritten, pBuffer, chars); + ctrl->CharsWritten += chars; + return (void*) 1; +} + +int printf(const char* format, ...) +{ + int res; + + if (fwide(stdout, -1) >= 0) { + return -1; + } + + { + va_list args; + va_start(args, format); + res = __pformatter(&__FileWrite, (void*)stdout, format, args); + } + + return res; +} + +int vprintf(const char* format, va_list arg) +{ + int ret; + + if (fwide(stdout, -1) >= 0) { + return -1; + } + + ret = __pformatter(&__FileWrite, (void*)stdout, format, arg); + return ret; +} + +int vsnprintf(char* s, size_t n, const char* format, va_list arg) +{ + int end; + __OutStrCtrl osc; + osc.CharStr = s; + osc.MaxCharCount = n; + osc.CharsWritten = 0; + + end = __pformatter(&__StringWrite, &osc, format, arg); + + if (s) { + s[(end < n) ? end : n - 1] = '\0'; + } + + return end; +} + +int vsprintf(char *s, const char *format, va_list arg) { + return vsnprintf(s, 0xFFFFFFFF, format, arg); +} + +int sprintf(char* s, const char* format, ...) +{ + va_list args; + va_start(args, format); + return vsnprintf(s, 0xFFFFFFFF, format, args); +} diff --git a/src/MSL_C.PPCEABI.bare.H/rand.c b/src/MSL_C.PPCEABI.bare.H/rand.c new file mode 100644 index 00000000..4d57c3e5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/rand.c @@ -0,0 +1,13 @@ +#include "dolphin.h" + +// rand.c from Runtime library + +u32 next = 1; + +u32 rand(void) +{ + next = 0x41C64E6D * next + 12345; + return (next >> 16) & 0x7FFF; +} + +void srand(u32 seed) { next = seed; } diff --git a/src/MSL_C.PPCEABI.bare.H/s_atan.c b/src/MSL_C.PPCEABI.bare.H/s_atan.c new file mode 100644 index 00000000..6d72b440 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_atan.c @@ -0,0 +1,148 @@ + +/* @(#)s_atan.c 1.3 95/01/18 */ +/** + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* atan(x) + * Method + * 1. Reduce x to positive by atan(x) = -atan(-x). + * 2. According to the integer k=4t+0.25 chopped, t=x, the argument + * is further reduced to one of the following intervals and the + * arctangent of t is evaluated by the corresponding formula: + * + * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) + * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) + * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) + * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) + * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double atanhi[] = { +#else +static double atanhi[] = { +#endif + 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ + 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ + 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ + 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ +}; + +#ifdef __STDC__ +static const double atanlo[] = { +#else +static double atanlo[] = { +#endif + 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ + 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ + 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ + 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ +}; + +#ifdef __STDC__ +static const double aT[] = { +#else +static double aT[] = { +#endif + 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ + -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ + 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ + -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ + 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ + -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ + 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ + -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ + 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ + -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ + 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ +}; + +#ifdef __STDC__ +static const double +#else +static double +#endif + one + = 1.0, + huge = 1.0e300; + +#ifdef __STDC__ +double atan(double x) +#else +double atan(x) +double x; +#endif +{ + double w, s1, s2, z; + int ix, hx, id; + + hx = __HI(x); + ix = hx & 0x7fffffff; + if (ix >= 0x44100000) { /* if |x| >= 2^66 */ + if (ix > 0x7ff00000 || (ix == 0x7ff00000 && (__LO(x) != 0))) + return x + x; /* NaN */ + if (hx > 0) + return atanhi[3] + atanlo[3]; + else + return -atanhi[3] - atanlo[3]; + } + if (ix < 0x3fdc0000) { /* |x| < 0.4375 */ + if (ix < 0x3e200000) { /* |x| < 2^-29 */ + if (huge + x > one) + return x; /* raise inexact */ + } + id = -1; + } else { + x = fabs__Fd(x); + if (ix < 0x3ff30000) { /* |x| < 1.1875 */ + if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */ + id = 0; + x = (2.0 * x - one) / (2.0 + x); + } else { /* 11/16<=|x|< 19/16 */ + id = 1; + x = (x - one) / (x + one); + } + } else { + if (ix < 0x40038000) { /* |x| < 2.4375 */ + id = 2; + x = (x - 1.5) / (one + 1.5 * x); + } else { /* 2.4375 <= |x| < 2^66 */ + id = 3; + x = -1.0 / x; + } + } + } + /* end of argument reduction */ + z = x * x; + w = z * z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z + * (aT[0] + + w + * (aT[2] + + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); + s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); + if (id < 0) + return x - x * (s1 + s2); + else { + z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); + return (hx < 0) ? -z : z; + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_copysign.c b/src/MSL_C.PPCEABI.bare.H/s_copysign.c new file mode 100644 index 00000000..d3313078 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_copysign.c @@ -0,0 +1,30 @@ +/* @(#)s_copysign.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * copysign(double x, double y) + * copysign(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double copysign(double x, double y) +#else + double copysign(x,y) + double x,y; +#endif +{ + __HI(x) = (__HI(x)&0x7fffffff)|(__HI(y)&0x80000000); + return x; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_cos.c b/src/MSL_C.PPCEABI.bare.H/s_cos.c new file mode 100644 index 00000000..0ceb1875 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_cos.c @@ -0,0 +1,78 @@ + +/* @(#)s_cos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* cos(x) + * Return cosine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cosine function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double cos(double x) +#else + double cos(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_cos(x,z); + + /* cos(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_cos(y[0],y[1]); + case 1: return -__kernel_sin(y[0],y[1],1); + case 2: return -__kernel_cos(y[0],y[1]); + default: + return __kernel_sin(y[0],y[1],1); + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_floor.c b/src/MSL_C.PPCEABI.bare.H/s_floor.c new file mode 100755 index 00000000..70001539 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_floor.c @@ -0,0 +1,78 @@ +/* @(#)s_floor.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * floor(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to floor(x). + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double huge = 1.0e300; +#else +static double huge = 1.0e300; +#endif + +#ifdef __STDC__ + double floor(double x) +#else + double floor(x) + double x; +#endif +{ + int i0,i1,j0; + unsigned i,j; + i0 = __HI(x); + i1 = __LO(x); + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0>=0) {i0=i1=0;} + else if(((i0&0x7fffffff)|i1)!=0) + { i0=0xbff00000;i1=0;} + } + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) i0 += (0x00100000)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((unsigned)(0xffffffff))>>(j0-20); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) { + if(j0==20) i0+=1; + else { + j = i1+(1<<(52-j0)); + if(j= 0x7ff00000 || ((ix | lx) == 0)) + return x; /* 0,inf,nan */ + if (ix < 0x00100000) { /* subnormal */ + x *= two54; + hx = __HI(x); + ix = hx & 0x7fffffff; + *eptr = -54; + } + *eptr += (ix >> 20) - 1022; + hx = (hx & 0x800fffff) | 0x3fe00000; + __HI(x) = hx; + return x; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_ldexp.c b/src/MSL_C.PPCEABI.bare.H/s_ldexp.c new file mode 100644 index 00000000..ec9ec717 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_ldexp.c @@ -0,0 +1,64 @@ +/* @(#)s_scalbn.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * scalbn (double x, int n) + * scalbn(x,n) returns x* 2**n computed by exponent + * manipulation rather than by actually performing an + * exponentiation or a multiplication. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ +twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */ +huge = 1.0e+300, +tiny = 1.0e-300; + +#ifdef __STDC__ + double ldexp (double x, int n) +#else + double ldexp (x,n) + double x; int n; +#endif +{ + int k,hx,lx; + if(!isfinite(x)||x==0.0) return x; + hx = __HI(x); + lx = __LO(x); + k = (hx&0x7ff00000)>>20; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */ + x *= two54; + hx = __HI(x); + k = ((hx&0x7ff00000)>>20) - 54; + if (n< -50000) return tiny*x; /*underflow*/ + } + if (k==0x7ff) return x+x; /* NaN or Inf */ + k = k+n; + if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */ + if (k > 0) /* normal result */ + {__HI(x) = (hx&0x800fffff)|(k<<20); return x;} + if (k <= -54) + if (n > 50000) /* in case integer overflow in n+k */ + return huge*copysign(huge,x); /*overflow*/ + else return tiny*copysign(tiny,x); /*underflow*/ + k += 54; /* subnormal result */ + __HI(x) = (hx&0x800fffff)|(k<<20); + return x*twom54; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_modf.c b/src/MSL_C.PPCEABI.bare.H/s_modf.c new file mode 100644 index 00000000..8c957d21 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_modf.c @@ -0,0 +1,80 @@ + +/* @(#)s_modf.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * modf(double x, double *iptr) + * return fraction part of x, and return x's integral part in *iptr. + * Method: + * Bit twiddling. + * + * Exception: + * No exception. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double one = 1.0; +#else +static double one = 1.0; +#endif + +#ifdef __STDC__ + double modf(double x, double *iptr) +#else + double modf(x, iptr) + double x,*iptr; +#endif +{ + int i0,i1,j0; + unsigned i; + i0 = __HI(x); /* high x */ + i1 = __LO(x); /* low x */ + j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */ + if(j0<20) { /* integer part in high x */ + if(j0<0) { /* |x|<1 */ + __HIp(iptr) = i0&0x80000000; + __LOp(iptr) = 0; /* *iptr = +-0 */ + return x; + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) { /* x is integral */ + *iptr = x; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { + __HIp(iptr) = i0&(~i); + __LOp(iptr) = 0; + return x - *iptr; + } + } + } else if (j0>51) { /* no fraction part */ + *iptr = x*one; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { /* fraction part in low x */ + i = ((unsigned)(0xffffffff))>>(j0-20); + if((i1&i)==0) { /* x is integral */ + *iptr = x; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { + __HIp(iptr) = i0; + __LOp(iptr) = i1&(~i); + return x - *iptr; + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_sin.c b/src/MSL_C.PPCEABI.bare.H/s_sin.c new file mode 100644 index 00000000..5f09b616 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_sin.c @@ -0,0 +1,78 @@ + +/* @(#)s_sin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* sin(x) + * Return sine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cose function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double sin(double x) +#else + double sin(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0); + + /* sin(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_sin(y[0],y[1],1); + case 1: return __kernel_cos(y[0],y[1]); + case 2: return -__kernel_sin(y[0],y[1],1); + default: + return -__kernel_cos(y[0],y[1]); + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_tan.c b/src/MSL_C.PPCEABI.bare.H/s_tan.c new file mode 100644 index 00000000..8a0b9292 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_tan.c @@ -0,0 +1,72 @@ + +/* @(#)s_tan.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* tan(x) + * Return tangent function of x. + * + * kernel function: + * __kernel_tan ... tangent function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double tan(double x) +#else + double tan(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1); + + /* tan(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; /* NaN */ + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even + -1 -- n odd */ + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/scanf.c b/src/MSL_C.PPCEABI.bare.H/scanf.c new file mode 100644 index 00000000..a8f273ec --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/scanf.c @@ -0,0 +1,34 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" + +int __StringRead(void* pPtr, int ch, int act) +{ + char ret; + __InStrCtrl* Iscp = (__InStrCtrl*)pPtr; + + switch (act) { + case __GetAChar: + ret = *(Iscp->NextChar); + + if (ret == '\0') { + Iscp->NullCharDetected = 1; + return -1; + } else { + Iscp->NextChar++; + return ret; + } + + case __UngetAChar: + if (Iscp->NullCharDetected == 0) { + Iscp->NextChar--; + } else { + Iscp->NullCharDetected = 0; + } + + return ch; + + case __TestForError: + return Iscp->NullCharDetected; + } + + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/signal.c b/src/MSL_C.PPCEABI.bare.H/signal.c new file mode 100755 index 00000000..3967650d --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/signal.c @@ -0,0 +1,24 @@ +#include +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h" + +__signal_func_ptr signal_funcs[6]; + +int raise(int sig) { + __signal_func_ptr temp_r31; + + if (sig < 1 || sig > 6) { + return -1; + } + temp_r31 = signal_funcs[sig - 1]; + if ((unsigned long) temp_r31 != 1) { + signal_funcs[sig - 1] = NULL; + } + if ((unsigned long) temp_r31 == 1 || (temp_r31 == NULL && sig == 1)) { + return 0; + } + if (temp_r31 == NULL) { + exit(0); + } + temp_r31(sig); + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/string.c b/src/MSL_C.PPCEABI.bare.H/string.c new file mode 100644 index 00000000..895f6662 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/string.c @@ -0,0 +1,274 @@ +#include "string.h" +#include "stddef.h" + +#define K1 0x80808080 +#define K2 0xFEFEFEFF + +size_t strlen(const char* str) +{ + size_t len = -1; + unsigned char* p = (unsigned char*)str - 1; + + do { + len++; + } while (*++p); + + return len; +} + +char* strcpy(char* dst, const char* src) +{ + register unsigned char *destb, *fromb; + register unsigned long w, t, align; + + fromb = (unsigned char*)src; + destb = (unsigned char*)dst; + + if ((align = ((int)fromb & 3)) != ((int)destb & 3)) { + goto bytecopy; + } + + if (align) { + if ((*destb = *fromb) == 0) { + return dst; + } + + for (align = 3 - align; align; align--) { + if ((*(++destb) = *(++fromb)) == 0) { + return dst; + } + } + ++destb; + ++fromb; + } + + w = *((int*)(fromb)); + + t = w + K2; + + t &= K1; + if (t) { + goto bytecopy; + } + --((int*)(destb)); + + do { + *(++((int*)(destb))) = w; + w = *(++((int*)(fromb))); + + t = w + K2; + t &= K1; + if (t) { + goto adjust; + } + } while (1); + +adjust: + ++((int*)(destb)); + +bytecopy: + if ((*destb = *fromb) == 0) { + return dst; + } + + do { + if ((*(++destb) = *(++fromb)) == 0) { + return dst; + } + } while (1); + + return dst; +} + +char* strncpy(char* dst, const char* src, size_t n) +{ + const unsigned char* p = (const unsigned char*)src - 1; + unsigned char* q = (unsigned char*)dst - 1; + + n++; + while (--n) { + if (!(*++q = *++p)) { + while (--n) { + *++q = 0; + } + break; + } + } + + return dst; +} + +// TODO: same implementation as strncpy? +char* strcat(char* dst, const char* src, size_t n) +{ + const unsigned char* p = (const unsigned char*)src - 1; + unsigned char* q = (unsigned char*)dst - 1; + + n++; + while (--n) { + if (!(*++q = *++p)) { + while (--n) { + *++q = 0; + } + break; + } + } + + return dst; +} + +int strcmp(const char* str1, const char* str2) +{ + register unsigned char* left = (unsigned char*)str1; + register unsigned char* right = (unsigned char*)str2; + unsigned long align, l1, r1, x; + + l1 = *left; + r1 = *right; + if (l1 - r1) { + return l1 - r1; + } + + if ((align = ((int)left & 3)) != ((int)right & 3)) { + goto bytecopy; + } + + if (align) { + if (l1 == 0) { + return 0; + } + for (align = 3 - align; align; align--) { + l1 = *(++left); + r1 = *(++right); + if (l1 - r1) { + return l1 - r1; + } + if (l1 == 0) { + return 0; + } + } + left++; + right++; + } + + l1 = *(int*)left; + r1 = *(int*)right; + x = l1 + K2; + if (x & K1) { + goto adjust; + } + + while (l1 == r1) { + l1 = *(++((int*)(left))); + r1 = *(++((int*)(right))); + x = l1 + K2; + if (x & K1) { + goto adjust; + } + } + + if (l1 > r1) { + return 1; + } + return -1; + +adjust: + l1 = *left; + r1 = *right; + if (l1 - r1) { + return l1 - r1; + } + +bytecopy: + if (l1 == 0) { + return 0; + } + + do { + l1 = *(++left); + r1 = *(++right); + if (l1 - r1) { + return l1 - r1; + } + if (l1 == 0) { + return 0; + } + } while (1); +} + +int strncmp(const char* str1, const char* str2, size_t n) +{ + const unsigned char* p1 = (unsigned char*)str1 - 1; + const unsigned char* p2 = (unsigned char*)str2 - 1; + unsigned long c1, c2; + + n++; + + while (--n) + if ((c1 = *++p1) != (c2 = *++p2)) + return (c1 - c2); + else if (!c1) + break; + return 0; +} + +char* strchr(const char* str, int c) +{ + const unsigned char* p = (unsigned char*)str - 1; + unsigned long chr = (c & 0xFF); + + unsigned long ch; + while (ch = *++p) { + if (ch == chr) { + return (char*)p; + } + } + + return chr ? NULL : (char*)p; +} + +char* strrchr(const char* str, int c) +{ + const unsigned char* p = (unsigned char*)str - 1; + const unsigned char* q = NULL; + unsigned long chr = (c & 0xFF); + + unsigned long ch; + while (ch = *++p) { + if (ch == chr) { + q = p; + } + } + + if (q != NULL) { + return (char*)q; + } + + return chr ? NULL : (char*)p; +} + +char* strstr(const char* str, const char* pat) +{ + const unsigned char* s1 = (const unsigned char*)str - 1; + const unsigned char* p1 = (const unsigned char*)pat - 1; + unsigned long firstc, c1, c2; + + if ((pat == 0) || (!(firstc = *++p1))) { + return (char*)str; + } + + while (c1 = *++s1) { + if (c1 == firstc) { + const unsigned char* s2 = s1 - 1; + const unsigned char* p2 = p1 - 1; + + while ((c1 = *++s2) == (c2 = *++p2) && c1) + ; + + if (!c2) + return (char*)s1; + } + } + + return NULL; +} diff --git a/src/MSL_C.PPCEABI.bare.H/uart_console_io.c b/src/MSL_C.PPCEABI.bare.H/uart_console_io.c new file mode 100755 index 00000000..e26388da --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/uart_console_io.c @@ -0,0 +1,32 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +static inline int __init_uart_console(void) { + int err = 0; + static int initialized = 0; + + if (initialized == 0) { + err = InitializeUART(57600); + if (err == 0) + initialized = 1; + } + + return (err); +} + +int __write_console(__file_handle handle, unsigned char* buffer, size_t* count, __idle_proc idle_proc) { + if (__init_uart_console() != 0) { + return 1; + } + + if (WriteUARTN(buffer, *count) != 0) { + *count = 0; + return 1; + } + + __TRK_write_console(handle, buffer, count, idle_proc); + return 0; +} + +int __close_console() { + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_acos.c b/src/MSL_C.PPCEABI.bare.H/w_acos.c new file mode 100644 index 00000000..dfc4c031 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_acos.c @@ -0,0 +1,38 @@ + +/* @(#)w_acos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrap_acos(x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double acos(double x) /* wrapper acos */ +#else + double acos(x) /* wrapper acos */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acos(x); +#else + double z; + z = __ieee754_acos(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + return __kernel_standard(x,x,1); /* acos(|x|>1) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_asin.c b/src/MSL_C.PPCEABI.bare.H/w_asin.c new file mode 100644 index 00000000..d21c6ce6 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_asin.c @@ -0,0 +1,38 @@ +/* @(#)w_asin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper asin(x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double asin(double x) /* wrapper asin */ +#else + double asin(x) /* wrapper asin */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_asin(x); +#else + double z; + z = __ieee754_asin(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + return __kernel_standard(x,x,2); /* asin(|x|>1) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_atan2.c b/src/MSL_C.PPCEABI.bare.H/w_atan2.c new file mode 100644 index 00000000..42f1b297 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_atan2.c @@ -0,0 +1,39 @@ +/* @(#)w_atan2.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper atan2(y,x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +double atan2(double y, double x) /* wrapper atan2 */ +#else +double atan2(y, x) /* wrapper atan2 */ +double y, x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atan2(y, x); +#else + double z; + z = __ieee754_atan2(y, x); + if (_LIB_VERSION == _IEEE_ || isnan(x) || isnan(y)) + return z; + if (x == 0.0 && y == 0.0) { + return __kernel_standard(y, x, 3); /* atan2(+-0,+-0) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_fmod.c b/src/MSL_C.PPCEABI.bare.H/w_fmod.c new file mode 100644 index 00000000..57c5cc16 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_fmod.c @@ -0,0 +1,37 @@ +/* @(#)w_fmod.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper fmod(x,y) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double fmod(double x, double y) /* wrapper fmod */ +#else + double fmod(x,y) /* wrapper fmod */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_fmod(x,y); +#else + double z; + z = __ieee754_fmod(x,y); + if(_LIB_VERSION == _IEEE_ ||isnan(y)||isnan(x)) return z; + if(y==0.0) { + return __kernel_standard(x,y,27); /* fmod(x,0) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_pow.c b/src/MSL_C.PPCEABI.bare.H/w_pow.c new file mode 100644 index 00000000..99c8e3b9 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_pow.c @@ -0,0 +1,60 @@ + + +/* @(#)w_pow.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper pow(x,y) return x**y + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + + +#ifdef __STDC__ + double pow(double x, double y) /* wrapper pow */ +#else + double pow(x,y) /* wrapper pow */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_pow(x,y); +#else + double z; + z=__ieee754_pow(x,y); + if(_LIB_VERSION == _IEEE_|| isnan(y)) return z; + if(isnan(x)) { + if(y==0.0) + return __kernel_standard(x,y,42); /* pow(NaN,0.0) */ + else + return z; + } + if(x==0.0){ + if(y==0.0) + return __kernel_standard(x,y,20); /* pow(0.0,0.0) */ + if(finite(y)&&y<0.0) + return __kernel_standard(x,y,23); /* pow(0.0,negative) */ + return z; + } + if(!finite(z)) { + if(finite(x)&&finite(y)) { + if(isnan(z)) + return __kernel_standard(x,y,24); /* pow neg**non-int */ + else + return __kernel_standard(x,y,21); /* pow overflow */ + } + } + if(z==0.0&&finite(x)&&finite(y)) + return __kernel_standard(x,y,22); /* pow underflow */ + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/wchar_io.c b/src/MSL_C.PPCEABI.bare.H/wchar_io.c new file mode 100644 index 00000000..77f4b5fa --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/wchar_io.c @@ -0,0 +1,22 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" + +int fwide(FILE* file, int mode) +{ + if (!file || file->file_mode.file_kind == __closed_file) { + return 0; + } + + switch (file->file_mode.file_orientation) { + case UNORIENTED: + if (mode > 0) { + file->file_mode.file_orientation = WIDE_ORIENTED; + } else if (mode < 0) { + file->file_mode.file_orientation = CHAR_ORIENTED; + } + return mode; + case WIDE_ORIENTED: + return 1; + case CHAR_ORIENTED: + return -1; + } +} diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index e01a42e4..b791b28b 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -22,15 +22,311 @@ static u8 SendCount = 0x80; #define IS_FALSE(x) !IS_TRUE(x) #define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) -// TODO +#if VERSION == VERSION_NO_ENG0 -void DBGEXIInit() +static void DBGEXIInit(); +static u32 DBGEXISelect(u32 v); +static void CheckMailBox(void); +static void MWCallback(u32 a, OSContext *b); +static void DBGHandler(s16 a, OSContext *b); + +void DBClose(void) { } + +void DBOpen(void) { } + +BOOL DBWrite(void *src, u32 size) { - __OSMaskInterrupts(0x18000); - __EXIRegs[10] = 0; + u32 v; + u32 busyFlag; + BOOL interrupts = OSDisableInterrupts(); + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + SendCount++; + v = ((SendCount & 1) ? 0x1000 : 0); + + while (!DBGWrite(v | 0x1c000, src, ROUND_UP(size, 4))) + ; + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + v = SendCount; + while (!DBGWriteMailbox((0x1f000000) | v << 0x10 | size)) + ; + + do { + while (!_DBGReadStatus(&busyFlag)) + ; + } while (busyFlag & 2); + + OSRestoreInterrupts(interrupts); + + return 0; } -static u32 DBGEXISelect(u32 v) +BOOL DBRead(u32 *buffer, s32 count) +{ + u32 interrupts = OSDisableInterrupts(); + u32 v = SendMailData & 0x10000 ? 0x1000 : 0; + + DBGRead(v + 0x1e000, buffer, ROUND_UP(count, 4)); + + RecvDataLeng = 0; + EXIInputFlag = 0; + + OSRestoreInterrupts(interrupts); + + return 0; +} + +u32 DBQueryData(void) +{ + BOOL interrupts; + EXIInputFlag = 0; + if (!RecvDataLeng) { + interrupts = OSDisableInterrupts(); + CheckMailBox(); +#if VERSION > 0 + OSRestoreInterrupts(interrupts); + } +#else + } + OSRestoreInterrupts(interrupts); +#endif + return RecvDataLeng; +} + +inline static void CheckMailBox(void) +{ + u32 v; + DBGReadStatus(&v); + if (v & 1) { + DBGReadMailbox(&v); + v &= 0x1fffffff; + + if ((v & 0x1f000000) == 0x1f000000) { + SendMailData = v; + RecvDataLeng = v & 0x7fff; + EXIInputFlag = 1; + } + } +} + +void DBInitInterrupts(void) +{ + __OSMaskInterrupts(0x18000); + __OSMaskInterrupts(0x40); + DBGCallback = &MWCallback; + __OSSetInterruptHandler(0x19, DBGHandler); + __OSUnmaskInterrupts(0x40); +} + +void DBInitComm(u8 **a, MTRCallbackType b) +{ + BOOL interrupts = OSDisableInterrupts(); + { + pEXIInputFlag = (u8 *)EXIInputFlag; + pEXIInputFlag = &EXIInputFlag; + + *a = pEXIInputFlag; + + MTRCallback = b; + + DBGEXIInit(); + } + OSRestoreInterrupts(interrupts); +} + +inline static BOOL _DBGReadStatus(u32 *p1) +{ + BOOL total = FALSE; + u32 v; + + DBGEXISelect(4); + + v = 1 << 30; + total |= IS_FALSE(DBGEXIImm(&v, 2, 1)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIImm(p1, 4, 0)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +static void DBGHandler(s16 a, OSContext *b) +{ + *__PIRegs = 0x1000; + if (DBGCallback) { + DBGCallback(a, b); + } +} + +static void MWCallback(u32 a, OSContext *b) +{ + EXIInputFlag = TRUE; + if (MTRCallback) { + MTRCallback(0); + } +} + +#pragma push +#pragma dont_inline on +static BOOL DBGReadStatus(u32 *p1) +{ + return _DBGReadStatus(p1); +} +#pragma pop + +static BOOL DBGWrite(u32 count, void *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0xa0000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3 != 0) { + v = *buf_p++; + + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0x20000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3) { + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 0)); + total |= IS_FALSE(DBGEXISync()); + + *buf_p++ = v; + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +#define TO_BOOL(x) (((u32)__cntlzw((x)) >> 5)) +#pragma push +#pragma dont_inline on +static BOOL DBGReadMailbox(u32* p1) +{ + u32 v; + u32 total = 0; + u32 stack0, stack1, stack2; + + DBGEXISelect(4); + + v = 0x60000000; + total |= !(DBGEXIImm(&v, 2, 1) != 0); + DBGEXISync(); + + total |= !(DBGEXIImm(p1, 4, 0) != 0); + DBGEXISync(); + + DBGEXIDeselect(); + total = TO_BOOL(total); + return total; +} +#pragma pop + +inline static BOOL DBGWriteMailbox(u32 p1) +{ + u32 cmd = 0xc0000000; + u32 v; + u32 base = p1; + BOOL total = FALSE; + + DBGEXISelect(4); + v = (base & 0x1fffffff) | (cmd); + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) +{ + u8 *tempPointer; + u32 writeOutValue; + int i; + + if (write) { + tempPointer = buffer; + writeOutValue = 0; + for (i = 0; i < bytecounter; i++) { + u8 *temp = ((u8 *)buffer) + i; + writeOutValue |= *temp << ((3 - i) << 3); + } + __EXIRegs[14] = writeOutValue; + } + + __EXIRegs[13] = 1 | write << 2 | (bytecounter - 1) << 4; + DBGEXISync(); + + if (!write) { + writeOutValue = __EXIRegs[14]; + tempPointer = buffer; + for (i = 0; i < bytecounter; i++) { + *tempPointer++ = writeOutValue >> ((3 - i) << 3); + } + } + + return TRUE; +} + +inline static BOOL DBGEXISync() +{ + while (__EXIRegs[13] & 1) + ; + + return TRUE; +} + +inline BOOL DBGEXIDeselect(void) +{ + __EXIRegs[10] &= 0x405; + return TRUE; +} + +inline static u32 DBGEXISelect(u32 v) { u32 regs = __EXIRegs[10]; regs &= 0x405; @@ -39,13 +335,36 @@ static u32 DBGEXISelect(u32 v) return TRUE; } -BOOL DBGEXIDeselect(void) +inline static void DBGEXIInit() +{ + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; +} + +#else + +inline void DBGEXIInit() +{ + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; +} + +inline static u32 DBGEXISelect(u32 v) +{ + u32 regs = __EXIRegs[10]; + regs &= 0x405; + regs |= 0x80 | (v << 4); + __EXIRegs[10] = regs; + return TRUE; +} + +inline BOOL DBGEXIDeselect(void) { __EXIRegs[10] &= 0x405; return TRUE; } -static BOOL DBGEXISync() +inline static BOOL DBGEXISync() { while (__EXIRegs[13] & 1) ; @@ -83,7 +402,7 @@ static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) return TRUE; } -static BOOL DBGWriteMailbox(u32 p1) +inline static BOOL DBGWriteMailbox(u32 p1) { u32 cmd = 0xc0000000; u32 v; @@ -100,7 +419,6 @@ static BOOL DBGWriteMailbox(u32 p1) } #pragma dont_inline on - static BOOL DBGReadMailbox(u32 *p1) { BOOL total = FALSE; @@ -119,7 +437,7 @@ static BOOL DBGReadMailbox(u32 *p1) return IS_FALSE(total); } -#pragma dont_inline off +#pragma dont_inline reset static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) { @@ -179,7 +497,7 @@ static BOOL DBGWrite(u32 count, void *buffer, s32 param3) return IS_FALSE(total); } -static BOOL _DBGReadStatus(u32 *p1) +inline static BOOL _DBGReadStatus(u32 *p1) { BOOL total = FALSE; u32 v; @@ -198,10 +516,12 @@ static BOOL _DBGReadStatus(u32 *p1) return IS_FALSE(total); } +#pragma dont_inline on static BOOL DBGReadStatus(u32 *p1) { return _DBGReadStatus(p1); } +#pragma dont_inline reset static void MWCallback(u32 a, OSContext *b) { @@ -244,7 +564,7 @@ void DBInitInterrupts(void) __OSUnmaskInterrupts(0x40); } -static void CheckMailBox(void) +inline static void CheckMailBox(void) { u32 v; DBGReadStatus(&v); @@ -329,3 +649,5 @@ BOOL DBWrite(void *src, u32 size) void DBOpen(void) { } void DBClose(void) { } + +#endif diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index d87c662f..3c8bb026 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -413,8 +413,8 @@ static void UpdateMGPic(omObjData *object) if (object->work[1] != object->work[0]) { temp_r29 = temp_r30->unk_40; - HuSprAttrSet(temp_r29, object->work[1], 4); - HuSprAttrReset(temp_r29, object->work[0], 4); + HuSprAttrSet(temp_r29, object->work[1], HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r29, object->work[0], HUSPR_ATTR_DISPOFF); object->work[1] = object->work[0]; } } @@ -453,7 +453,7 @@ static void CreateMGPic(omObjData *object) HuSprTPLvlSet(temp_r3, index2, 0.7f); index2++; object->work[1] = object->work[0]; - HuSprAttrReset(temp_r3, object->work[1], 4); + HuSprAttrReset(temp_r3, object->work[1], HUSPR_ATTR_DISPOFF); object->func = UpdateMGPic; } diff --git a/src/REL/bootDll/language.c b/src/REL/bootDll/language.c new file mode 100644 index 00000000..fdc674f1 --- /dev/null +++ b/src/REL/bootDll/language.c @@ -0,0 +1,280 @@ +#include "version.h" +#if VERSION_PAL +#include "dolphin.h" +#include "game/card.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/hsfman.h" +#include "game/hsfanim.h" +#include "game/window.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/minigame_seq.h" + +#include "math.h" +#include "ext_math.h" + +#include "data_num/title.h" + +s32 flagFileTbl[] = { + TITLE_FLAG_EN_ANM, + TITLE_FLAG_ES_ANM, + TITLE_FLAG_IT_ANM, + TITLE_FLAG_FR_ANM, + TITLE_FLAG_GE_ANM +}; + +extern int SystemInitF; + +extern Process *objman; +extern Vec debugCamRot[2]; +extern Vec debugCamPos[2]; +extern float debugCamZoom[2]; + +void DebugCamOutView(omObjData *obj); +void DebugCamUpdate(omObjData *obj); + +BOOL LanguageMenuExec(void) +{ + s16 language = GWLanguageGet()-1; + s16 i; + s16 gid; + s16 time; + s16 choiceChange; + AnimData *anim; + s16 sprid; + s16 choice; + omObjData *outView; + omObjData *updateCamera; + s16 modelId[5]; + s16 winId[5]; + + float winSize[2]; + float dist; + float posX; + float posZ; + + for(i=0; i<4; i++) { + GWPlayerCfg[i].character = i; + } + gid = HuSprGrpCreate(1); + anim = HuSprAnimReadFile(TITLE_LANGUAGEBG_ANM); + sprid = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprDrawNoSet(gid, 0, 127); + HuSprPosSet(gid, 0, 288, 240); + HuSprTPLvlSet(gid, 0, 0.6f); + Hu3DFogSet(350, 2000, 128, 128, 128); + debugCamRot[0].x = -20; + debugCamRot[0].y = 0; + debugCamRot[0].z = 0; + debugCamPos[0].x = 0; + debugCamPos[0].y = 20; + debugCamPos[0].z = -7; + debugCamZoom[0] = 600; + + Hu3DCameraPerspectiveSet(HU3D_CAM0, 60, 20, 5000, 1.2f); + outView = omAddObjEx(objman, 32730, 0, 0, -1, DebugCamOutView); + updateCamera = omAddObjEx(objman, 0, 32, 32, -1, DebugCamUpdate); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if(!SystemInitF) { + void *group_samp; + HuWindowInit(); + group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); + msmSysLoadGroup(0, group_samp, 0); + HuMemDirectFree(group_samp); + } + for(i=0; i<5; i++) { + modelId[i] = Hu3DModelCreateFile(TITLE_FLAG_HSF); + anim = HuSprAnimReadFile(flagFileTbl[i]); + Hu3DAnimCreate(anim, modelId[i], "flag"); + Hu3DModelPosSet(modelId[i], sind(i*72)*200, 70, cosd(i*72)*200); + Hu3DModelRotSet(modelId[i], -20, 0, 0); + } + for(time=1; time<=30; time++) { + dist = 1.0-(time/30.0); + for(i=0; i<5; i++) { + Hu3DModelPosSet(modelId[i], sind((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)), 70, cosd((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist))); + } + HuPrcVSleep(); + } + HuWinInit(1); + HuWinMesMaxSizeGet(5, winSize, 0x380000, 0x380005, 0x38000A, 0x38000F, 0x380014); + winId[0] = HuWinExCreateStyled(-10000, 50, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[0], 0x800); + HuWinMesSet(winId[0], 0x380000+(language*5)); + HuWinBGTPLvlSet(winId[0], 0); + HuWinMesSpeedSet(winId[0], 0); + HuWinDispOn(winId[0]); + HuWinMesMaxSizeGet(5, winSize, 0x380001, 0x380006, 0x38000B, 0x380010, 0x380015); + winId[1] = HuWinExCreateStyled(-10000, 100, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[1], 0x800); + HuWinMesSet(winId[1], 0x380001+(language*5)); + HuWinBGTPLvlSet(winId[1], 0); + HuWinMesSpeedSet(winId[1], 0); + HuWinDispOn(winId[1]); + HuWinMesMaxSizeGet(5, winSize, 0x380002, 0x380007, 0x38000C, 0x380011, 0x380016); + winId[2] = HuWinExCreateStyled(-10000, 340, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[2], 0x800); + HuWinMesSet(winId[2], 0x380002+(language*5)); + HuWinBGTPLvlSet(winId[2], 0); + HuWinMesSpeedSet(winId[2], 0); + HuWinDispOn(winId[2]); + HuWinMesMaxSizeGet(5, winSize, 0x380004, 0x380009, 0x38000E, 0x380013, 0x380018); + winId[4] = HuWinExCreateStyled(-10000, (448-winSize[1])-10, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[4], 0x800); + choiceChange = FALSE; + while(1) { + if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(0); + for(time=0; time<=10; time++) { + for(i=0; i<5; i++) { + posX = sind((72.0*language)+(i*72)-(72.0*(time/10.0)))*200; + posZ = cosd((72.0*language)+(i*72)-(72.0*(time/10.0)))*200; + Hu3DModelPosSet(modelId[i], posX, 70, posZ); + } + HuPrcVSleep(); + } + language--; + if(language < 0) { + language = 4; + } + choiceChange = TRUE; + } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(0); + for(time=0; time<=10; time++) { + for(i=0; i<5; i++) { + posX = sind((72.0*language)+(i*72)+(72.0*(time/10.0)))*200; + posZ = cosd((72.0*language)+(i*72)+(72.0*(time/10.0)))*200; + Hu3DModelPosSet(modelId[i], posX, 70, posZ); + } + HuPrcVSleep(); + } + language++; + if(language >= 5) { + language = 0; + } + choiceChange = TRUE; + } + if(choiceChange) { + HuWinMesSet(winId[0], 0x380000+(language*5)); + HuWinMesSet(winId[1], 0x380001+(language*5)); + HuWinMesSet(winId[2], 0x380002+(language*5)); + choiceChange = FALSE; + } + if(HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(1); + HuWinHomeClear(winId[4]); + HuWinExAnimIn(winId[4]); + HuWinMesSet(winId[4], 0x380004+(language*5)); + HuWinMesWait(winId[4]); + choice = HuWinChoiceGet(winId[4], 0); + if(choice == 0) { + GwLanguage = GwLanguageSave = language+1; + GWLanguageSet(GwLanguage); + break; + } + HuWinExAnimOut(winId[4]); + } + if(GwLanguage != -1 && (HuPadBtnDown[0] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprGrpKill(gid); + for(i=0; i<5; i++) { + Hu3DModelKill(modelId[i]); + } + omDelObjEx(objman, outView); + omDelObjEx(objman, updateCamera); + if(SystemInitF == 0) { + CharManInit(); + MGSeqInit(); + } + HuWinAllKill(); + Hu3DFogClear(); + return TRUE; +} + +s32 LanguageBootGet(void) +{ + s16 result = -1; + s16 i; + s16 j; + for(i=0; i<2; i++) { + if(HuCardSlotCheck(i) < 0) { + continue; + } + if(HuCardMount(i) < 0) { + continue; + } + for(j=0; j<3; j++) { + CARDFileInfo fileInfo; + if(HuCardOpen(i, SaveFileNameTbl[j], &fileInfo) < 0) { + continue; + } + if(HuCardRead(&fileInfo, &saveBuf, SAVE_BUF_SIZE, 0) < 0) { + continue; + } + if(!SLCheckSumCheck()) { + continue; + } + memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat)); + if(GWGameStat.language < 1) { + continue; + } + if(GWGameStat.language > 5) { + continue; + } + result = GWGameStat.language; + OSReport("Language %d\n", GWGameStat.language); + HuCardClose(&fileInfo); + HuCardUnMount(i); + return result; + } + HuCardUnMount(i); + } + if(result == -1) { + OSReport("OS Language %d\n", OSGetLanguage()); + switch(OSGetLanguage()) { + case OS_LANG_ENGLISH: + result = 1; + break; + + case OS_LANG_GERMAN: + result = 2; + break; + + case OS_LANG_FRENCH: + result = 3; + break; + + case OS_LANG_SPANISH: + result = 5; + break; + + case OS_LANG_ITALIAN: + result = 4; + break; + + default: + result = -1; + break; + } + } + return result; +} + +#endif \ No newline at end of file diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index b525067a..ee8b1b04 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -4,6 +4,7 @@ #include "game/data.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/minigame_seq.h" #include "game/memory.h" #include "game/msm.h" #include "game/object.h" @@ -24,51 +25,69 @@ extern int SystemInitF; -static Process *objman[2]; -Vec lbl_1_bss_3C[2]; -Vec lbl_1_bss_24[2]; -float lbl_1_bss_1C[2]; +static omObjData *debugOutView; +Process *objman; +Vec debugCamRot[2]; +Vec debugCamPos[2]; +float debugCamZoom[2]; Vec lbl_1_bss_10; -static s16 demoWin; +static s16 demoWinId; -static s16 titleModel[3]; -static s16 titleGroup; +static s16 titleMdlId[3]; +static s16 bootGrpId; s16 lbl_1_bss_4; -s32 lbl_1_bss_0; +#if VERSION_PAL +static BOOL initLanguageF; +#endif +s32 debugCamOnF; -static void BootProc(void); +void BootExec(void); static void UpdateDemoMess(void); -static void ProgressiveProc(void); -static void TitleInit(void); -static BOOL TitleProc(void); +#if VERSION_NTSC +void BootProgExec(void); +#endif +void BootTitleCreate(void); +BOOL BootTitleExec(void); -void *logoReadNintendo(void); +void *NintendoDataDecode(void); void ObjectSetup(void) { omOvlHisData *history; OSReport("******* Boot ObjectSetup *********\n"); - objman[0] = omInitObjMan(50, 8192); - lbl_1_bss_3C[0].x = -67; - lbl_1_bss_3C[0].y = 40; - lbl_1_bss_3C[0].z = 0; - lbl_1_bss_24[0].x = 260; - lbl_1_bss_24[0].y = -103; - lbl_1_bss_24[0].z = -18; - lbl_1_bss_1C[0] = 2885; + objman = omInitObjMan(50, 8192); + debugCamRot[0].x = -67; + debugCamRot[0].y = 40; + debugCamRot[0].z = 0; + debugCamPos[0].x = 260; + debugCamPos[0].y = -103; + debugCamPos[0].z = -18; + debugCamZoom[0] = 2885; Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - HuPrcCreate(BootProc, 100, 12288, 0); + HuPrcCreate(BootExec, 100, 12288, 0); Hu3DBGColorSet(0, 0, 0); history = omOvlHisGet(0); omOvlHisChg(0, history->overlay, 1, history->stat); + #if VERSION_PAL + if(SystemInitF == FALSE) { + initLanguageF = FALSE; + } else { + initLanguageF = TRUE; + } + #endif } -static void BootProc(void) +#if VERSION_PAL +s32 LanguageBootGet(void); +BOOL LanguageMenuExec(void); +#endif + +void BootExec(void) { AnimData *data; s16 group; @@ -77,11 +96,24 @@ static void BootProc(void) s16 i; OSTick tick_prev; Process *curr = HuPrcCurrentGet(); + #if VERSION_NTSC if (omovlevtno == 0) { - ProgressiveProc(); + BootProgExec(); } + #else + if(SystemInitF == FALSE) { + GwLanguage = LanguageBootGet(); + if(GwLanguage == -1) { + if(LanguageMenuExec()) { + SystemInitF = TRUE; + } + } else { + GWLanguageSet(GwLanguage); + } + } + #endif group = HuSprGrpCreate(2); - data = HuSprAnimRead(logoReadNintendo()); + data = HuSprAnimRead(NintendoDataDecode()); sprite_nintendo = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 0, sprite_nintendo); HuSprPosSet(group, 0, 288, 240); @@ -94,7 +126,7 @@ static void BootProc(void) HuSprPosSet(group, 1, 288, 240); HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); HuWinInit(1); - TitleInit(); + BootTitleCreate(); SystemInitF = 1; } else { @@ -105,6 +137,18 @@ static void BootProc(void) for (i = 0; i < 4; i++) { GWPlayerCfg[i].pad_idx = i; } + #if VERSION_PAL + if(SystemInitF) { + data = HuSprAnimReadFile(TITLE_HUDSON_ANM); + sprite_hudson = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite_hudson); + HuSprPosSet(group, 1, 288, 240); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + HuAudSndGrpSetSet(0); + BootTitleCreate(); + HuWinInit(1); + } + #endif repeat: HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); @@ -118,7 +162,7 @@ static void BootProc(void) HuWindowInit(); MGSeqInit(); HuWinInit(1); - TitleInit(); + BootTitleCreate(); data = HuSprAnimReadFile(TITLE_HUDSON_ANM); sprite_hudson = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 1, sprite_hudson); @@ -130,9 +174,15 @@ static void BootProc(void) } else { for (i = 0; i < 180; i++) { + #if VERSION_NTSC if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { break; } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif HuPrcVSleep(); } } @@ -159,12 +209,21 @@ static void BootProc(void) } else { for (i = 0; i < 180; i++) { + #if VERSION_NTSC if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { break; } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif HuPrcVSleep(); } } + #if VERSION_PAL + initLanguageF = TRUE; + #endif WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { HuPrcVSleep(); @@ -184,11 +243,11 @@ static void BootProc(void) HuSprGrpMemberSet(group_thp, 0, sprite_thp); HuSprPosSet(group_thp, 0, 288, 240); HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); - demoWin = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); - HuWinMesSpeedSet(demoWin, 0); - HuWinBGTPLvlSet(demoWin, 0); - HuWinPriSet(demoWin, 10); - HuWinAttrSet(demoWin, 0x800); + demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); + HuWinMesSpeedSet(demoWinId, 0); + HuWinBGTPLvlSet(demoWinId, 0); + HuWinPriSet(demoWinId, 10); + HuWinAttrSet(demoWinId, 0x800); HuPrcSleep(5); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { @@ -207,7 +266,7 @@ static void BootProc(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuWinKill(demoWin); + HuWinKill(demoWinId); HuTHPClose(); HuPrcVSleep(); HuSprGrpKill(group_thp); @@ -216,7 +275,7 @@ static void BootProc(void) } skip_wait = FALSE; } - if (!TitleProc()) { + if (!BootTitleExec()) { HuPrcSleep(60); goto repeat; } @@ -242,7 +301,7 @@ static void BootProc(void) } while (1); } -static s16 demoTimingTbl[] = { +static s16 demoMessTimeTbl[] = { 1686, 1785, 1850, @@ -261,19 +320,21 @@ static void UpdateDemoMess(void) { int frame = HuTHPFrameGet(); int i; - for (i = 0; demoTimingTbl[i * 2] != -1; i++) { - if (frame == demoTimingTbl[i * 2]) { - HuWinMesSet(demoWin, MAKE_MESSID(54, i)); + for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) { + if (frame == demoMessTimeTbl[i * 2]) { + HuWinMesSet(demoWinId, MAKE_MESSID(54, i)); } - if (frame == demoTimingTbl[(i * 2) + 1]) { - HuWinHomeClear(demoWin); + if (frame == demoMessTimeTbl[(i * 2) + 1]) { + HuWinHomeClear(demoWinId); } } } -static u16 progressivePosTbl[] = { 236, 313, 353, 313 }; +#if VERSION_NTSC -static void ProgressiveProc(void) +static u16 progPosTbl[] = { 236, 313, 353, 313 }; + +void BootProgExec(void) { s16 i; s16 option; @@ -303,11 +364,11 @@ static void ProgressiveProc(void) data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); sprite = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); sprite = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 2, sprite); - HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { @@ -316,12 +377,12 @@ static void ProgressiveProc(void) for (i = 0; i < 600; i++) { if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { option ^= 1; - HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); i = 0; } if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); break; } @@ -370,33 +431,35 @@ static void ProgressiveProc(void) HuPrcSleep(30); } -u16 lbl_1_data_58[] = { 1, 2 }; +#endif -void fn_1_1178(void) +static u16 debugCamTbl[] = { 1, 2 }; + +void DebugCamOutView(omObjData *obj) { s16 i; for (i = 0; i < 1; i++) { Vec pos, target, up; float x, y, z; - x = lbl_1_bss_3C[i].x; - y = lbl_1_bss_3C[i].y; - z = lbl_1_bss_3C[i].z; + x = debugCamRot[i].x; + y = debugCamRot[i].y; + z = debugCamRot[i].z; - pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].x); - pos.y = (-sind(x) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].y; - pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].z; - target.x = lbl_1_bss_24[i].x; - target.y = lbl_1_bss_24[i].y; - target.z = lbl_1_bss_24[i].z; + pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x); + pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y; + pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z; + target.x = debugCamPos[i].x; + target.y = debugCamPos[i].y; + target.z = debugCamPos[i].z; up.x = sind(y) * sind(x); up.y = cosd(x); up.z = cosd(y) * sind(x); - Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } -void fn_1_152C(void) +void DebugCamUpdate(omObjData *obj) { Vec pos; Vec offset; @@ -405,28 +468,30 @@ void fn_1_152C(void) f32 z_rot; s8 stick_pos; - + + #if VERSION_NTSC if ((HuPadBtnDown[0] & 0x800)) { - lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1; + debugCamOnF = (debugCamOnF) ? 0 : 1; } - if (lbl_1_bss_0 != 0) { - lbl_1_bss_3C[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_3C[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_1C[0] += HuPadTrigL[0] / 2; - lbl_1_bss_1C[0] -= HuPadTrigR[0] / 2; - if (lbl_1_bss_1C[0] < 100.0f) { - lbl_1_bss_1C[0] = 100.0f; + #endif + if (debugCamOnF != 0) { + debugCamRot[0].y += 0.1f * HuPadStkX[0]; + debugCamRot[0].x += 0.1f * HuPadStkY[0]; + debugCamZoom[0] += HuPadTrigL[0] / 2; + debugCamZoom[0] -= HuPadTrigR[0] / 2; + if (debugCamZoom[0] < 100.0f) { + debugCamZoom[0] = 100.0f; } - pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sind(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x))); - pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sind(lbl_1_bss_3C[0].x))); - pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cosd(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x)))); - offset.x = lbl_1_bss_24[0].x - pos.x; - offset.y = lbl_1_bss_24[0].y - pos.y; - offset.z = lbl_1_bss_24[0].z - pos.z; - dir.x = (sind(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x)); - dir.y = cosd(lbl_1_bss_3C[0].x); - dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x)); - z_rot = lbl_1_bss_3C[0].z; + pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x))); + pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x))); + pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x)))); + offset.x = debugCamPos[0].x - pos.x; + offset.y = debugCamPos[0].y - pos.y; + offset.z = debugCamPos[0].z - pos.z; + dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x)); + dir.y = cosd(debugCamRot[0].x); + dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x)); + z_rot = debugCamRot[0].z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); @@ -443,70 +508,102 @@ void fn_1_152C(void) VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { - lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos); + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); } VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { - lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos); + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); } } } -static void TitleInit(void) +void BootTitleCreate(void) { s16 model; s16 sprite; AnimData *sprite_data; - titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); + s16 i; + titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); + titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); + titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); Hu3DModelCameraInfoSet(model, 1); Hu3DModelLightInfoSet(model, 1); - titleGroup = HuSprGrpCreate(4); + #if VERSION_NTSC + bootGrpId = HuSprGrpCreate(4); + #else + bootGrpId = HuSprGrpCreate(13); + #endif sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 0, sprite); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprDrawNoSet(titleGroup, 0, 127); - HuSprPosSet(titleGroup, 0, 288, 240); + HuSprGrpMemberSet(bootGrpId, 0, sprite); + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprDrawNoSet(bootGrpId, 0, 127); + HuSprPosSet(bootGrpId, 0, 288, 240); sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); sprite = HuSprCreate(sprite_data, 1, 0); - HuSprGrpMemberSet(titleGroup, 1, sprite); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(titleGroup, 1, 288, 420); + HuSprGrpMemberSet(bootGrpId, 1, sprite); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(bootGrpId, 1, 288, 420); + #if VERSION_NTSC sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); sprite = HuSprCreate(sprite_data, 2, 0); - HuSprGrpMemberSet(titleGroup, 2, sprite); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 2, 288, 380); + HuSprGrpMemberSet(bootGrpId, 2, sprite); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 2, 288, 380); sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 3, sprite); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 3, 288, 200); + HuSprGrpMemberSet(bootGrpId, 3, sprite); + HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 3, 288, 200); + #else + sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(bootGrpId, 2, sprite); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 2, 288, 200); + for(i=0; i<5; i++) { + sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i); + sprite = HuSprCreate(sprite_data, 3+i, 0); + HuSprGrpMemberSet(bootGrpId, 3+i, sprite); + HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 3+i, 288, 340); + } + for(i=0; i<5; i++) { + sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i); + sprite = HuSprCreate(sprite_data, 8+i, 0); + HuSprGrpMemberSet(bootGrpId, 8+i, sprite); + HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 8+i, 288, 380); + } + #endif } -static BOOL TitleProc(void) +BOOL BootTitleExec(void) { float scale; float scale_time; int seNo[32]; + s16 pressStartMemberNo; + s16 languageMemberNo; s16 i; - Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF); - HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF); + s16 choice; + float temp; + repeat: + Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF); OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo)); OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); HuAudSStreamPlay(20); @@ -514,24 +611,128 @@ static BOOL TitleProc(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF); + #if VERSION_NTSC + HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF); for (i = 1; i <= 50; i++) { scale = (cosd(i * 1.8) * 10.0) + 1.0; - HuSprScaleSet(titleGroup, 3, scale, scale); - HuSprTPLvlSet(titleGroup, 3, i / 50.0); + HuSprScaleSet(bootGrpId, 3, scale, scale); + HuSprTPLvlSet(bootGrpId, 3, i / 50.0); HuPrcVSleep(); } - HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + #else + HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for (i = 1; i <= 50; i++) { + scale = (cosd(i * 1.8) * 10.0) + 1.0; + HuSprScaleSet(bootGrpId, 2, scale, scale); + HuSprTPLvlSet(bootGrpId, 2, i / 50.0); + HuPrcVSleep(); + } + if(GwLanguage == -1) { + pressStartMemberNo = 3; + languageMemberNo = 8; + } else { + pressStartMemberNo = GwLanguage+3-1; + languageMemberNo = GwLanguage+8-1; + } + HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF); + for(i=1; i<=20; i++) { + scale = sind(i*4.5); + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7); + HuPrcVSleep(); + } + choice = 0; + scale_time = 0; + #endif + + #if VERSION_NTSC for (i = scale_time = 0; i < 1800; i++) { + #else + for (i = temp = 0; i < 1800; i++) { + #endif + #if VERSION_PAL + if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) { + HuAudFXPlay(0); + for(i=1; i<=10; i++) { + scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7; + if(choice == 0) { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } + scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0; + if(choice == 0) { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } + HuPrcVSleep(); + } + choice ^= 1; + scale_time = 0; + } + if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) { + if(choice == 0) { + s32 ret = HuAudFXPlay(2092); + if (ret < 0) { + OSReport(">>>>>Error %d\n", ret); + } + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + return 1; + } else { + HuAudFXPlay(1); + HuAudSStreamAllFadeOut(500); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF); + } + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF); + } + LanguageMenuExec(); + Hu3DModelCameraInfoSet(titleMdlId[2], 1); + Hu3DModelLightInfoSet(titleMdlId[2], 1); + HuWinInit(1); + goto repeat; + } + } + scale = (cosd(scale_time) * 0.1) + 0.9; + if(choice == 0) { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } + scale = (cosd(scale_time/3.0) * 0.05) + 0.65; + if(choice == 0) { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } + scale_time += 5; + HuPrcVSleep(); + #else if (i <= 10) { - HuSprTPLvlSet(titleGroup, 2, i / 10.0); + HuSprTPLvlSet(bootGrpId, 2, i / 10.0); } if (HuPadBtnDown[0] & PAD_BUTTON_START) { s32 ret = HuAudFXPlay(2092); if (ret < 0) { OSReport(">>>>>Error %d\n", ret); } - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); return 1; } scale = (sind(i * scale_time) * 0.1) + 0.9; @@ -539,20 +740,48 @@ static BOOL TitleProc(void) if (scale_time > 5) { scale_time = 5; } - HuSprScaleSet(titleGroup, 2, scale, scale); + HuSprScaleSet(bootGrpId, 2, scale, scale); HuPrcVSleep(); + #endif + } WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { HuPrcVSleep(); } - Hu3DModelAttrSet(titleModel[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(titleModel[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(titleModel[2], HU3D_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF); + #if VERSION_NTSC + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF); + #else + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF); + } + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF); + } + #endif return 0; } + +#include "nintendoData.inc" + +void *NintendoDataDecode(void) +{ + u32 *src = (u32 *)nintendoData; + u32 size = *src++; + void *dst = HuMemDirectMalloc(HEAP_DATA, size); + int decode_type = *src++; + if(dst) { + HuDecodeData(src, dst, size, decode_type); + } + return dst; +} diff --git a/src/REL/bootDll/nintendo_data.c b/src/REL/bootDll/nintendo_data.c deleted file mode 100644 index 5cb14723..00000000 --- a/src/REL/bootDll/nintendo_data.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "game/data.h" - -#include "logoNintendoData.inc" - -void *logoReadNintendo(void) -{ - u32 *src = (u32 *)logoNintendoData; - u32 size = *src++; - void *dst = HuMemDirectMalloc(HEAP_DATA, size); - int decode_type = *src++; - if(dst) { - HuDecodeData(src, dst, size, decode_type); - } - return dst; -} \ No newline at end of file diff --git a/src/REL/instDll/font.c b/src/REL/instDll/font.c index af50f5d5..f4712b09 100644 --- a/src/REL/instDll/font.c +++ b/src/REL/instDll/font.c @@ -2,7 +2,9 @@ #include "REL/instDll.h" -s32 lbl_1_data_150[0xC6] = { +#define FONT_CHAR_MAX 100 + +static s32 FontCharFile[0xC6] = { 0, 0, 0, @@ -203,115 +205,115 @@ s32 lbl_1_data_150[0xC6] = { DATA_MAKE_NUM(DATADIR_INST, 0x25), }; -s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag) +s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag) { - char *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s16 var_r25; - s32 var_r24; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char *str; + s16 len; + s16 *posY; + s16 charNum; + s32 *fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; - var_r27 = lbl_1_data_150; - for (var_r25 = 0; var_r25 < 0x10; var_r25++) { - if (work->spr_grp[var_r25] == -1) { + fileTbl = FontCharFile; + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (work->spr_grp[grpNo] == -1) { break; } } - if (var_r25 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); - for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += 0xE; } - else if (var_r31[0] < 0x30) { + else if (str[0] < 0x30) { } - else if (var_r31[0] == 0x80) { + else if (str[0] == 0x80) { } - else if (var_r31[0] == 0x81) { + else if (str[0] == 0x81) { } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r24 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r24); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C || var_r31[0] == 0x85) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C || str[0] == 0x85) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } } - var_r20 = HuSprGrpCreate(var_r28); - work->spr_grp[var_r25] = var_r20; - work->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + work->spr_grp[grpNo] = gid; + work->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - work->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r25; + work->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return grpNo; } diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 3dbcc0a4..5d7b064c 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -23,55 +23,55 @@ #include "REL/instDll.h" -static s16 lbl_1_data_0 = 1; +static s16 instMode = 1; static omObjData *lbl_1_bss_60; -static omObjData *lbl_1_bss_5C; -static Process *lbl_1_bss_58; -static Vec lbl_1_bss_40[2]; -static Vec lbl_1_bss_28[2]; -static float lbl_1_bss_20[2]; -static s32 lbl_1_bss_1C; -static AnimData *lbl_1_bss_18; -static u16 lbl_1_bss_14; -static u16 lbl_1_bss_12; -static u16 lbl_1_bss_10; -static float lbl_1_bss_C; -static u8 lbl_1_bss_8; -static u16 lbl_1_bss_6; -static u16 lbl_1_bss_4; -static s32 lbl_1_bss_0; +static omObjData *outViewObj; +Process *objman; +Vec cameraRot[2]; +Vec cameraPos[2]; +float cameraZoom[2]; +static s32 instBoxMdlId; +static AnimData *instPicAnim; +static u16 instMgNo; +static u16 instHostNo; +static u16 instMesOfs; +static float instFov; +static u8 LanguageNo; +static u16 instPage; +static u16 instBusyF; +static s32 debugCamOnF; -static void fn_1_994(void); -static void fn_1_17E4(void); -static void fn_1_220C(void); -static void fn_1_2804(void); -static void fn_1_2FA0(void); -static void fn_1_4174(omObjData *object); -static void fn_1_4528(omObjData *object); +static void InstMain(void); +static void InstPlayerMain(void); +static void InstHostMain(void); +static void InstWinMain(void); +static void InstNameMain(void); +static void CameraOutView(omObjData *object); +static void CameraDebug(omObjData *object); void ObjectSetup(void) { s32 i; omOvlHisData *his; - s32 light; + s32 lightId; OSReport("******* INST ObjectSetup *********\n"); - lbl_1_bss_58 = omInitObjMan(50, 8192); - omGameSysInit(lbl_1_bss_58); - lbl_1_bss_8 = GWLanguageGet(); - lbl_1_bss_14 = GWSystem.mg_next; - lbl_1_bss_10 = 0; - lbl_1_bss_4 = 0; + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + LanguageNo = GWLanguageGet(); + instMgNo = GWSystem.mg_next; + instMesOfs = 0; + instBusyF = 0; _ClearFlag(0x1000C); for (i = 0; sndGrpTable[i].ovl != OVL_INVALID; i++) { - if (sndGrpTable[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { + if (sndGrpTable[i].ovl == mgInfoTbl[instMgNo].ovl) { break; } } if (sndGrpTable[i].ovl != OVL_INVALID) { HuAudSndGrpSetSet(sndGrpTable[i].grpSet); } - if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) { + if (mgInfoTbl[instMgNo].ovl == OVL_M411) { if (GWMGTypeGet() == -1) { GWMGTypeSet(frandmod(3)); } @@ -79,10 +79,10 @@ void ObjectSetup(void) else { GWMGTypeSet(-1); } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); his = omOvlHisGet(0); omOvlHisChg(0, OVL_RESULT, his->event, his->stat); - if (omovlevtno == 0 && mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { + if (omovlevtno == 0 && mgInfoTbl[instMgNo].ovl == OVL_M430) { s32 team_cnt[2]; s32 team_players[2][2]; team_cnt[0] = team_cnt[1] = 0; @@ -106,53 +106,53 @@ void ObjectSetup(void) GWPlayerCfg[team_players[1][1]].group = 2; } } - if (mgInfoTbl[lbl_1_bss_14].type == 3 || mgInfoTbl[lbl_1_bss_14].type == 5 || mgInfoTbl[lbl_1_bss_14].type == 6 - || mgInfoTbl[lbl_1_bss_14].type == 8 || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { + if (mgInfoTbl[instMgNo].type == 3 || mgInfoTbl[instMgNo].type == 5 || mgInfoTbl[instMgNo].type == 6 + || mgInfoTbl[instMgNo].type == 8 || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { HuDataDirClose(DATADIR_INST); omSysPauseEnable(1); - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + omOvlCallEx(mgInfoTbl[instMgNo].ovl, 1, 0, 0); return; } - lbl_1_bss_40[0].x = -67.0f; - lbl_1_bss_40[0].y = 40.0f; - lbl_1_bss_40[0].z = 0.0f; - lbl_1_bss_28[0].x = 260.0f; - lbl_1_bss_28[0].y = -103.0f; - lbl_1_bss_28[0].z = -18.0f; - lbl_1_bss_20[0] = 2885.0f; - lbl_1_bss_C = 20.0f; - lbl_1_bss_12 = GWSystem.board; + cameraRot[0].x = -67.0f; + cameraRot[0].y = 40.0f; + cameraRot[0].z = 0.0f; + cameraPos[0].x = 260.0f; + cameraPos[0].y = -103.0f; + cameraPos[0].z = -18.0f; + cameraZoom[0] = 2885.0f; + instFov = 20.0f; + instHostNo = GWSystem.board; if (mgBoardHostEnableF) { - lbl_1_bss_12 = 1; + instHostNo = 1; } - lbl_1_bss_40[1].x = lbl_1_bss_40[1].y = lbl_1_bss_40[1].z = 0.0f; - lbl_1_bss_28[1].x = lbl_1_bss_28[1].y = lbl_1_bss_28[1].z = 0.0f; - lbl_1_bss_20[1] = 1000.0f; + cameraRot[1].x = cameraRot[1].y = cameraRot[1].z = 0.0f; + cameraPos[1].x = cameraPos[1].y = cameraPos[1].z = 0.0f; + cameraZoom[1] = 1000.0f; omSysPauseEnable(0); Hu3DCameraCreate(3); Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); Hu3DCameraPerspectiveSet(2, 30.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - HuPrcChildCreate(fn_1_994, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_17E4, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_220C, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2804, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2FA0, 100, 12288, 0, lbl_1_bss_58); - lbl_1_bss_5C = omAddObjEx(lbl_1_bss_58, 32730, 0, 0, -1, fn_1_4174); - omAddObjEx(lbl_1_bss_58, 0, 32, 32, -1, fn_1_4528); + lightId = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(lightId); + HuPrcChildCreate(InstMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstPlayerMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstHostMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstWinMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstNameMain, 100, 12288, 0, objman); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, CameraOutView); + omAddObjEx(objman, 0, 32, 32, -1, CameraDebug); HuAudSeqPlay(59); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); } -static s8 lbl_1_data_26[] = { 3, 2, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, 3, 2, 1, 0 }; +static s8 instGrpTbl[] = { 3, 2, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, 3, 2, 1, 0 }; -static s8 lbl_1_data_46[] = { 4, 4, 4, 4, 4, 1, 1, 4 }; +static s8 instPlayerNumTbl[] = { 4, 4, 4, 4, 4, 1, 1, 4 }; -static s32 lbl_1_data_50[] = { +static s32 instBoxFile[] = { DATA_MAKE_NUM(DATADIR_INST, 0), DATA_MAKE_NUM(DATADIR_INST, 1), DATA_MAKE_NUM(DATADIR_INST, 2), @@ -163,7 +163,7 @@ static s32 lbl_1_data_50[] = { DATA_MAKE_NUM(DATADIR_INST, 0), }; -static s32 lbl_1_data_70[] = { +static s32 instBackFile[] = { DATA_MAKE_NUM(DATADIR_INST, 9), DATA_MAKE_NUM(DATADIR_INST, 10), DATA_MAKE_NUM(DATADIR_INST, 11), @@ -174,51 +174,50 @@ static s32 lbl_1_data_70[] = { DATA_MAKE_NUM(DATADIR_INST, 9), }; -static void fn_1_50B0(ModelData *model, Mtx mtx); -static void fn_1_5B64(ModelData *model, Mtx mtx); +static void InstPicDraw(ModelData *model, Mtx mtx); +static void ShadowDraw(ModelData *model, Mtx mtx); -static void fn_1_994(void) +static void InstMain(void) { - Vec pos; Vec target; Vec up; - Vec spC; - Process *process; + Vec rot; + Process *proc; s16 i; s16 model; - s16 num_coms; + s16 comNum; s16 j; - s16 btns; - s32 status; - s32 done; - s16 group; - s32 pic; + s16 btnDown; + s32 statId; + s32 endF; + s16 grpId; + s32 picFile; omOvlHisData *his; - s16 sprite; + s16 sprId; AnimData *anim; - float pos_z; + float z; float time; - float fov_vel; - float rot_x; + float fovSpeed; + float rotX; - process = HuPrcCurrentGet(); - status = -1; - group = HuSprGrpCreate(1); - anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_70[mgInfoTbl[lbl_1_bss_14].type], MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprGrpDrawNoSet(group, 127); - HuSprPosSet(group, 0, 288, 240); + proc = HuPrcCurrentGet(); + statId = -1; + grpId = HuSprGrpCreate(1); + anim = HuSprAnimRead(HuDataReadNum(instBackFile[mgInfoTbl[instMgNo].type], MEMORY_DEFAULT_NUM)); + sprId = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprGrpDrawNoSet(grpId, 127); + HuSprPosSet(grpId, 0, 288, 240); if (GWMGTypeGet() == -1) { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[0]; + picFile = mgInfoTbl[instMgNo].inst_pic[0]; } else { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[GWMGTypeGet()]; + picFile = mgInfoTbl[instMgNo].inst_pic[GWMGTypeGet()]; } - lbl_1_bss_18 = HuSprAnimRead(HuDataReadNumHeapShortForce(pic, MEMORY_DEFAULT_NUM, HEAP_DATA)); + instPicAnim = HuSprAnimRead(HuDataReadNumHeapShortForce(picFile, MEMORY_DEFAULT_NUM, HEAP_DATA)); Hu3DShadowCreate(20, 500, 8000); Hu3DShadowTPLvlSet(0); Hu3DShadowSizeSet(192); @@ -228,34 +227,34 @@ static void fn_1_994(void) up.x = up.y = 0.0f; up.z = 1.0f; Hu3DShadowPosSet(&pos, &up, &target); - model = Hu3DModelCreateFile(lbl_1_data_50[mgInfoTbl[lbl_1_bss_14].type]); - lbl_1_bss_1C = model; + model = Hu3DModelCreateFile(instBoxFile[mgInfoTbl[instMgNo].type]); + instBoxMdlId = model; Hu3DModelPosSet(model, 0, 2000, 0); Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); Hu3DModelCameraSet(model, 1); Hu3DModelShadowSet(model); - i = Hu3DHookFuncCreate(fn_1_5B64); + i = Hu3DHookFuncCreate(ShadowDraw); Hu3DModelPosSet(i, 0, -200, 0); Hu3DModelCameraSet(i, 1); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - pos_z = -500.0f; + z = -500.0f; for (i = 0; i <= 50; i++) { - Hu3DModelPosSet(model, 0.0f, 2500.0 * cosd(i * 1.8f) - 200.0, pos_z); + Hu3DModelPosSet(model, 0.0f, 2500.0 * cosd(i * 1.8f) - 200.0, z); Hu3DModelRotSet(model, 0, 0, 45.0f * (1.0f - (i / 50.0f))); - pos_z += 50.0 / 7.0; + z += 50.0 / 7.0; Hu3DShadowTPLvlSet(0.5 * (i / 50.0f)); HuPrcVSleep(); } HuAudFXPlay(1211); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); for (i = 1; i <= 20; i++) { - Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, pos_z); - rot_x = (20 - i) * cosd(i * 13.5f); - Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f); - pos_z += 50.0 / 7.0; + Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, z); + rotX = (20 - i) * cosd(i * 13.5f); + Hu3DModelRotSet(model, rotX, 0.0f, 0.0f); + z += 50.0 / 7.0; HuPrcVSleep(); } Hu3DModelPosSet(model, 0.0f, 0.0f, 0.0f); @@ -263,52 +262,52 @@ static void fn_1_994(void) HuPrcSleep(10); HuAudFXPlay(1212); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); - i = Hu3DHookFuncCreate(fn_1_50B0); + i = Hu3DHookFuncCreate(InstPicDraw); Hu3DModelCameraSet(i, 1); Hu3DModelPosSet(i, 0, 415, 0); - lbl_1_data_0 = 0; + instMode = 0; while (Hu3DMotionTimeGet(model) < 80.0f) { if (Hu3DMotionTimeGet(model) > 30.0f) { - lbl_1_data_0 = 2; + instMode = 2; } HuPrcVSleep(); } Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); HuDataDirClose(DATADIR_INST); - status = HuDataDirReadAsync(mgInfoTbl[lbl_1_bss_14].data_dir); - while (lbl_1_data_0 != 1) { + statId = HuDataDirReadAsync(mgInfoTbl[instMgNo].data_dir); + while (instMode != 1) { HuPrcVSleep(); } - done = 0; - for (i = num_coms = 0; i < 4; i++) { + endF = 0; + for (i = comNum = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { - num_coms++; + comNum++; } } i = 0; while (1) { - if (!done) { - for (btns = j = 0; j < 4; j++) { + if (!endF) { + for (btnDown = j = 0; j < 4; j++) { if (!GWPlayerCfg[j].iscom) { - btns |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; + btnDown |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; } } - if ((btns == PAD_BUTTON_START) || omSysExitReq || (num_coms == 4 && i > 60)) { + if ((btnDown == PAD_BUTTON_START) || omSysExitReq || (comNum == 4 && i > 60)) { HuAudFXPlay(2); - done = 1; + endF = 1; } - if (btns == PAD_TRIGGER_Z) { + if (btnDown == PAD_TRIGGER_Z) { HuAudFXPlay(1); - done = 1; + endF = 1; his = omOvlHisGet(0); omOvlHisChg(0, OVL_INST, 1, his->stat); _SetFlag(0x1000C); } - if (mgInstExitEnableF && (btns & PAD_BUTTON_B)) { + if (mgInstExitEnableF && (btnDown & PAD_BUTTON_B)) { HuAudFXPlay(3); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } @@ -317,10 +316,10 @@ static void fn_1_994(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); - if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { - for (num_coms = 0; num_coms < 4; num_coms++) { - GWPlayerCfg[num_coms].group = GWPlayerCfg[num_coms].group / 2; + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); + if (mgInfoTbl[instMgNo].ovl == OVL_M430) { + for (comNum = 0; comNum < 4; comNum++) { + GWPlayerCfg[comNum].group = GWPlayerCfg[comNum].group / 2; } } omOvlReturnEx(1, 1); @@ -330,7 +329,7 @@ static void fn_1_994(void) } } } - if (!lbl_1_bss_4 || !done) { + if (!instBusyF || !endF) { HuPrcVSleep(); i++; continue; @@ -339,32 +338,32 @@ static void fn_1_994(void) break; } } - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - spC = lbl_1_bss_40[0]; - pos = lbl_1_bss_28[0]; - pos_z = lbl_1_bss_20[0]; + rot = cameraRot[0]; + pos = cameraPos[0]; + z = cameraZoom[0]; WipeColorSet(255, 255, 255); - lbl_1_data_0 = 3; + instMode = 3; HuPrcSleep(20); - lbl_1_data_0 = 4; + instMode = 4; HuPrcSleep(10); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); - fov_vel = 0; + fovSpeed = 0; for (i = 0; i <= 60; i++) { time = i / 60.0f; - lbl_1_bss_40[0].x = spC.x + ((-65.0f - spC.x) * time); - lbl_1_bss_40[0].y = spC.y + ((8.0f - spC.y) * time); - lbl_1_bss_40[0].z = spC.z + (-spC.z) * time; - lbl_1_bss_28[0].x = pos.x + ((17.0f - pos.x) * time); - lbl_1_bss_28[0].y = pos.y + ((5.0f - pos.y) * time); - lbl_1_bss_28[0].z = pos.z + ((-188.0f - pos.z) * time); - lbl_1_bss_20[0] = pos_z + ((1173.0f - pos_z) * time); + cameraRot[0].x = rot.x + ((-65.0f - rot.x) * time); + cameraRot[0].y = rot.y + ((8.0f - rot.y) * time); + cameraRot[0].z = rot.z + (-rot.z) * time; + cameraPos[0].x = pos.x + ((17.0f - pos.x) * time); + cameraPos[0].y = pos.y + ((5.0f - pos.y) * time); + cameraPos[0].z = pos.z + ((-188.0f - pos.z) * time); + cameraZoom[0] = z + ((1173.0f - z) * time); if (i == 30) { HuAudFXPlay(1210); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); @@ -374,25 +373,25 @@ static void fn_1_994(void) Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); } if (i > 20) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; + instFov += fovSpeed; + fovSpeed += 0.04; } HuPrcVSleep(); } while (WipeStatGet()) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; + instFov += fovSpeed; + fovSpeed += 0.04; HuPrcVSleep(); } - lbl_1_data_0 = 6; + instMode = 6; HuPrcVSleep(); omSysPauseEnable(1); if (omSysExitReq) { - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); omOvlReturnEx(1, 1); } else { - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + omOvlCallEx(mgInfoTbl[instMgNo].ovl, 1, 0, 0); } HuPrcEnd(); while (1) { @@ -400,133 +399,133 @@ static void fn_1_994(void) } } -static char *lbl_1_data_B0[] = { "p_pos_a", "p_pos_b", "p_pos_c", "p_pos_d" }; +static char *playerPosNameTbl[] = { "p_pos_a", "p_pos_b", "p_pos_c", "p_pos_d" }; -static u8 lbl_1_data_C0[] = { 8, 0, 12, 4 }; +static u8 playerDelayTbl[] = { 8, 0, 12, 4 }; -static void fn_1_17E4(void) +static void InstPlayerMain(void) { - float tplvl; + float tpLvl; s16 i; s16 j; s16 time; - s16 player_cnt; + s16 playerNum; s16 order; s16 type; - s16 group_type; + s16 grpType; s16 group; - ModelData *model; - s16 player_mdl[4]; - s16 char_tbl[4]; - s16 platform_mdl[4]; - s16 player_order[4]; - s16 mot_tbl[4][3]; - Vec player_pos[4]; + ModelData *modelP; + s16 playerMdlId[4]; + s16 charNo[4]; + s16 shadowMdl[4]; + s16 playerOrder[4]; + s16 motId[4][3]; + Vec playerPos[4]; - type = mgInfoTbl[lbl_1_bss_14].type; - player_cnt = lbl_1_data_46[type]; - for (i = 0; i < player_cnt; i++) { - player_order[i] = -1; + type = mgInfoTbl[instMgNo].type; + playerNum = instPlayerNumTbl[type]; + for (i = 0; i < playerNum; i++) { + playerOrder[i] = -1; } - if (mgInfoTbl[lbl_1_bss_14].ovl != OVL_M430) { - group_type = type; + if (mgInfoTbl[instMgNo].ovl != OVL_M430) { + grpType = type; } else { - group_type = 0; + grpType = 0; } - for (i = 0; i < player_cnt; i++) { - group = lbl_1_data_26[(group_type * 4) + i]; + for (i = 0; i < playerNum; i++) { + group = instGrpTbl[(grpType * 4) + i]; for (j = 0; j < 4; j++) { if (group == GWPlayerCfg[j].group) { for (order = 0; order < i; order++) { - if (j == player_order[order]) { + if (j == playerOrder[order]) { break; } } if (order == i) { - player_order[i] = j; + playerOrder[i] = j; break; } } } } - for (i = 0; i < player_cnt; i++) { - if (player_order[i] == -1) { - for (j = 0; j < player_cnt; j++) { - player_order[j] = j; + for (i = 0; i < playerNum; i++) { + if (playerOrder[i] == -1) { + for (j = 0; j < playerNum; j++) { + playerOrder[j] = j; } break; } } - for (i = 0; i < player_cnt; i++) { - char_tbl[i] = GWPlayerCfg[player_order[i]].character; - player_mdl[i] = CharModelCreate(char_tbl[i], 2); - Hu3DModelPosSet(player_mdl[i], 5000.0f, 0.0f, 0.0f); - Hu3DModelRotSet(player_mdl[i], 0.0f, 180.0f, 0.0f); - Hu3DModelCameraSet(player_mdl[i], 1); - mot_tbl[i][0] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); - mot_tbl[i][1] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); - mot_tbl[i][2] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 6)); - CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 0); - CharModelMotionSet(char_tbl[i], mot_tbl[i][1]); + for (i = 0; i < playerNum; i++) { + charNo[i] = GWPlayerCfg[playerOrder[i]].character; + playerMdlId[i] = CharModelCreate(charNo[i], 2); + Hu3DModelPosSet(playerMdlId[i], 5000.0f, 0.0f, 0.0f); + Hu3DModelRotSet(playerMdlId[i], 0.0f, 180.0f, 0.0f); + Hu3DModelCameraSet(playerMdlId[i], 1); + motId[i][0] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + motId[i][1] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); + motId[i][2] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 6)); + CharModelVoiceEnableSet(charNo[i], motId[i][1], 0); + CharModelMotionSet(charNo[i], motId[i][1]); CharModelDataClose(-1); - platform_mdl[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_INST, 7)); - Hu3DModelTPLvlSet(platform_mdl[i], 0.0f); - Hu3DModelScaleSet(platform_mdl[i], 0.0f, 0.0f, 0.0f); + shadowMdl[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_INST, 7)); + Hu3DModelTPLvlSet(shadowMdl[i], 0.0f); + Hu3DModelScaleSet(shadowMdl[i], 0.0f, 0.0f, 0.0f); } - while (lbl_1_data_0 != 2) { + while (instMode != 2) { HuPrcVSleep(); } - for (i = 0; i < player_cnt; i++) { - Hu3DModelObjPosGet(lbl_1_bss_1C, lbl_1_data_B0[i], &player_pos[i]); - Hu3DModelPosSet(platform_mdl[i], player_pos[i].x, 10 + player_pos[i].y, player_pos[i].z); + for (i = 0; i < playerNum; i++) { + Hu3DModelObjPosGet(instBoxMdlId, playerPosNameTbl[i], &playerPos[i]); + Hu3DModelPosSet(shadowMdl[i], playerPos[i].x, 10 + playerPos[i].y, playerPos[i].z); } HuPrcSleep(10); for (i = 0; i <= 50; i++) { - for (j = 0; j < player_cnt; j++) { - time = i - lbl_1_data_C0[j]; + for (j = 0; j < playerNum; j++) { + time = i - playerDelayTbl[j]; if (time < 0) { continue; } if (time == 15) { - CharModelMotionSet(char_tbl[j], mot_tbl[j][2]); + CharModelMotionSet(charNo[j], motId[j][2]); } if (time == 30) { - CharModelMotionShiftSet(char_tbl[j], mot_tbl[j][0], 0, 10, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet(charNo[j], motId[j][0], 0, 10, HU3D_MOTATTR_LOOP); } if (time <= 20) { - Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + (1000.0 * cos(M_PI * (time * 4.5f) / 180.0)), player_pos[j].z); + Hu3DModelPosSet(playerMdlId[j], playerPos[j].x, playerPos[j].y + 1000.0 * cosd(time * 4.5f), playerPos[j].z); time -= 10; if (time >= 0) { - tplvl = 0.1 * time; - Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); - Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + tpLvl = 0.1 * time; + Hu3DModelTPLvlSet(shadowMdl[j], 0.5 * tpLvl); + Hu3DModelScaleSet(shadowMdl[j], tpLvl, tpLvl, tpLvl); } } } HuPrcVSleep(); } - model = &Hu3DData[player_mdl[0]]; - while (lbl_1_data_0 != 4) { + modelP = &Hu3DData[playerMdlId[0]]; + while (instMode != 4) { HuPrcVSleep(); } for (i = 0; i <= 45; i++) { - for (j = 0; j < player_cnt; j++) { - time = i - lbl_1_data_C0[j]; + for (j = 0; j < playerNum; j++) { + time = i - playerDelayTbl[j]; if (time < 0) { continue; } if (time == 0) { - Hu3DModelAttrReset(player_mdl[j], HU3D_MOTATTR_LOOP); - CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 1); - CharModelMotionSet(char_tbl[j], mot_tbl[j][1]); + Hu3DModelAttrReset(playerMdlId[j], HU3D_MOTATTR_LOOP); + CharModelVoiceEnableSet(charNo[i], motId[i][1], 1); + CharModelMotionSet(charNo[j], motId[j][1]); } if (time <= 30) { - Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + (300.0 * sind(time * 9.0f)), player_pos[j].z - (time * 20)); + Hu3DModelPosSet(playerMdlId[j], playerPos[j].x, playerPos[j].y + (300.0 * sind(time * 9.0f)), playerPos[j].z - (time * 20)); if (time <= 10) { - tplvl = 1 - (0.1 * time); - Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); - Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + tpLvl = 1 - (0.1 * time); + Hu3DModelTPLvlSet(shadowMdl[j], 0.5 * tpLvl); + Hu3DModelScaleSet(shadowMdl[j], tpLvl, tpLvl, tpLvl); } } } @@ -538,7 +537,7 @@ static void fn_1_17E4(void) } } -static s32 lbl_1_data_C4[] = { +static s32 hostFileTbl[] = { DATA_MAKE_NUM(DATADIR_INST, 19), DATA_MAKE_NUM(DATADIR_INST, 20), DATA_MAKE_NUM(DATADIR_INST, 21), @@ -559,57 +558,57 @@ static s32 lbl_1_data_C4[] = { DATA_MAKE_NUM(DATADIR_INST, 36), }; -static u16 lbl_1_data_10C[] = { 55, 57, 68, 67, 64, 65, 75, 76, 70, 71, 62, 62 }; +static u16 hostSeTbl[] = { 55, 57, 68, 67, 64, 65, 75, 76, 70, 71, 62, 62 }; -static void fn_1_220C(void) +static void InstHostMain(void) { - float ofs_x; + float ofsX; s16 i; - s16 model; - s16 motion[2]; - ModelData *model_ptr; - model = Hu3DModelCreateFile(lbl_1_data_C4[lbl_1_bss_12 * 3]); - motion[0] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 1]); - motion[1] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 2]); - Hu3DMotionSet(model, motion[1]); - if (lbl_1_bss_12 == 3) { - ofs_x = 50; + s16 modelId; + s16 motId[2]; + ModelData *modelP; + modelId = Hu3DModelCreateFile(hostFileTbl[instHostNo * 3]); + motId[0] = Hu3DJointMotionFile(modelId, hostFileTbl[(instHostNo * 3) + 1]); + motId[1] = Hu3DJointMotionFile(modelId, hostFileTbl[(instHostNo * 3) + 2]); + Hu3DMotionSet(modelId, motId[1]); + if (instHostNo == 3) { + ofsX = 50; } else { - ofs_x = 0; + ofsX = 0; } - Hu3DModelPosSet(model, -353.0f + ofs_x, -150, 356); - Hu3DModelRotSet(model, 0, 90, 0); - Hu3DModelCameraSet(model, 2); - while (lbl_1_data_0 != 2) { + Hu3DModelPosSet(modelId, -353.0f + ofsX, -150, 356); + Hu3DModelRotSet(modelId, 0, 90, 0); + Hu3DModelCameraSet(modelId, 2); + while (instMode != 2) { HuPrcVSleep(); } HuPrcSleep(30); - Hu3DMotionTimeSet(model, 40); - HuAudFXPlay(lbl_1_data_10C[lbl_1_bss_12 * 2]); + Hu3DMotionTimeSet(modelId, 40); + HuAudFXPlay(hostSeTbl[instHostNo * 2]); for (i = 0; i <= 20; i++) { - Hu3DModelPosSet(model, -153.0f - (100.0f - (100.0f * (i / 20.0f))), (100.0 * sind(i * 9.0f)) + -150.0 + ofs_x, 356.0f); + Hu3DModelPosSet(modelId, -153.0f - (100.0f - (100.0f * (i / 20.0f))), (100.0 * sind(i * 9.0f)) + -150.0 + ofsX, 356.0f); HuPrcVSleep(); } for (i = 0; i <= 10; i++) { - Hu3DModelPosSet(model, -153.0f, (15.0 * sind(i * 18.0f)) + -150.f + ofs_x, 356.0f); - Hu3DModelRotSet(model, 0.0f, 90 - ((i / 10.0f) * 70), 0); + Hu3DModelPosSet(modelId, -153.0f, (15.0 * sind(i * 18.0f)) + -150.f + ofsX, 356.0f); + Hu3DModelRotSet(modelId, 0.0f, 90 - ((i / 10.0f) * 70), 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(model, motion[0], 0, 10, HU3D_MOTATTR_LOOP); - model_ptr = &Hu3DData[model]; + Hu3DMotionShiftSet(modelId, motId[0], 0, 10, HU3D_MOTATTR_LOOP); + modelP = &Hu3DData[modelId]; while (1) { fontcolor = FONT_COLOR_RED; - if (lbl_1_data_0 == 3) { + if (instMode == 3) { break; } HuPrcVSleep(); } - Hu3DMotionSet(model, motion[1]); + Hu3DMotionSet(modelId, motId[1]); HuPrcSleep(20); - HuAudFXPlay(lbl_1_data_10C[(lbl_1_bss_12 * 2) + 1]); + HuAudFXPlay(hostSeTbl[(instHostNo * 2) + 1]); for (i = 0; i <= 30; i++) { - Hu3DModelPosSet(model, (i * 5) - 153, (50.0 * sind(i * 9.0f)) + -150.0 + ofs_x, (i * 20) + 356); + Hu3DModelPosSet(modelId, (i * 5) - 153, (50.0 * sind(i * 9.0f)) + -150.0 + ofsX, (i * 20) + 356); HuPrcVSleep(); } HuPrcEnd(); @@ -618,31 +617,31 @@ static void fn_1_220C(void) } } -static void fn_1_2804(void) +static void InstWinMain(void) { - float pos_x; + float posX; s16 i; - s16 window; - s16 window_other; + s16 winId; + s16 win2Id; s16 j; s16 insert_idx; - s16 rtrig; + s16 trigR; s16 groupCnt[4]; s16 charTbl[4][4]; - window = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - while (lbl_1_data_0 != 0) { + winId = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + while (instMode != 0) { HuPrcVSleep(); } - HuWinDispOn(window); - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[0]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinMesSpeedSet(window, 0); - window_other = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - HuWinDispOn(window_other); - HuWinMesSpeedSet(window_other, 0); - HuWinPosSet(window_other, 142.0f, 640.0f); - lbl_1_bss_6 = 0; + HuWinDispOn(winId); + HuWinMesSet(winId, mgInfoTbl[instMgNo].inst_mess[0]); + HuWinMesPalSet(winId, 7, 0, 0, 192); + HuWinMesSpeedSet(winId, 0); + win2Id = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + HuWinDispOn(win2Id); + HuWinMesSpeedSet(win2Id, 0); + HuWinPosSet(win2Id, 142.0f, 640.0f); + instPage = 0; for (i = 0; i < 4; i++) { groupCnt[i] = 0; } @@ -653,53 +652,57 @@ static void fn_1_2804(void) } for (i = insert_idx = 0; i < 4; i++) { for (j = 0; j < groupCnt[i]; j++) { - HuWinInsertMesSet(window, charTbl[i][j], (s16)insert_idx); + HuWinInsertMesSet(winId, charTbl[i][j], (s16)insert_idx); insert_idx++; } } - while (lbl_1_data_0 != 2) { + while (instMode != 2) { HuPrcVSleep(); } HuPrcSleep(40); for (i = 0; i <= 20; i++) { - pos_x = 500.0 * cosd(i * 4.5f) + 142.0; - HuWinPosSet(window, pos_x, 320); + posX = 500.0 * cosd(i * 4.5f) + 142.0; + HuWinPosSet(winId, posX, 320); HuPrcVSleep(); } - lbl_1_data_0 = 1; - while (lbl_1_data_0 != 3) { - for (i = rtrig = 0; i < 4; i++) { + instMode = 1; + while (instMode != 3) { + for (i = trigR = 0; i < 4; i++) { if (!GWPlayerCfg[i].iscom) { - rtrig |= HuPadTrigR[GWPlayerCfg[i].pad_idx] & 0xC0; + trigR |= HuPadTrigR[GWPlayerCfg[i].pad_idx] & 0xC0; } } - if (rtrig) { + if (trigR) { HuAudFXPlay(1213); - lbl_1_bss_4 = 0; - HuWinMesSet(window_other, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); - HuWinMesPalSet(window_other, 7, 0, 0, 192); - lbl_1_bss_6++; - if (mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6] == 0) { - lbl_1_bss_6++; + instBusyF = 0; + HuWinMesSet(win2Id, mgInfoTbl[instMgNo].inst_mess[instPage]); + HuWinMesPalSet(win2Id, 7, 0, 0, 192); + instPage++; + if (mgInfoTbl[instMgNo].inst_mess[instPage] == 0) { + instPage++; } - if (lbl_1_bss_6 >= 4) { - lbl_1_bss_6 = 0; + if (instPage >= 4) { + instPage = 0; } - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinPosSet(window_other, 142.0f, 320.0f); + HuWinMesSet(winId, mgInfoTbl[instMgNo].inst_mess[instPage]); + HuWinMesPalSet(winId, 7, 0, 0, 192); + HuWinPosSet(win2Id, 142.0f, 320.0f); for (i = 0; i <= 10; i++) { - HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + #if VERSION_NTSC + HuWinPosSet(win2Id, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + #else + HuWinPosSet(win2Id, 30.0 * sind(i * 9.0f) + 142.0, 180.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + #endif HuPrcVSleep(); } HuPrcSleep(5); } - lbl_1_bss_4 = 1; + instBusyF = 1; HuPrcVSleep(); } for (i = 0; i <= 20; i++) { - pos_x = 500.0 * (1.0 - cosd(i * 4.5f)) + 142.0; - HuWinPosSet(window, pos_x, 320); + posX = 500.0 * (1.0 - cosd(i * 4.5f)) + 142.0; + HuWinPosSet(winId, posX, 320); HuPrcVSleep(); } HuWinAllKill(); @@ -709,196 +712,246 @@ static void fn_1_2804(void) } } -static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; +static float instNamePosTbl[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; -static void fn_1_2FA0(void) +#if VERSION_NTSC +#define WIN_ANIM_OFS 201 +#else +#define WIN_ANIM_OFS 219 +#endif + +static void InstNameMain(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - s16 temp_r31; - s16 temp_r30; - char *temp_r29; - AnimData *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - u16 temp_r21; - char *temp_r20; - s16 temp_r17; - s16 spA; - s16 sp8; + float posX; + float t; + float nameX; + float nameY; + float nameScaleY; + s16 i; + s16 j; + char *mes; + AnimData *nameAnim; + s16 rulesWinId; + s16 mesSpaceNum; + s16 nameGrpId; + s16 startGrpId; + s16 practiceGrpId; + s16 nameW; + u16 prevPage; + char *mesWord; + s16 nameSprId; + s16 startSprId; + s16 practiceSprId; s16 spC[2]; s16 sp10[4]; SeqWork work; - temp_r21 = 0; - for (temp_r31 = 0; temp_r31 < 16; temp_r31++) { - work.sprite[temp_r31] = work.spr_grp[temp_r31] = -1; + prevPage = 0; + for (i = 0; i < 16; i++) { + work.sprite[i] = work.spr_grp[i] = -1; } - temp_r20 = MessData_MesPtrGet(messDataPtr, mgInfoTbl[lbl_1_bss_14].name_mess); - temp_r29 = temp_r20; - temp_r31 = 0; - temp_r26 = 0; + mesWord = MessData_MesPtrGet(messDataPtr, mgInfoTbl[instMgNo].name_mess); + mes = mesWord; + i = 0; + mesSpaceNum = 0; while (1) { - if (*temp_r29 == 0 || *temp_r29 == 10) { - if (*temp_r29 == 0) { - temp_r31 = 1; + if (*mes == 0 || *mes == 10) { + if (*mes == 0) { + i = 1; } - *temp_r29 = 0; - fn_1_5EA4(&work, temp_r20, (lbl_1_bss_8 == 0) ? 1 : 0); - HuSprGrpPosSet(work.spr_grp[temp_r26], 288.0f, 240.0f); - spC[temp_r26] = work.alt_word_len; - temp_r26++; - if (temp_r31) { + *mes = 0; + FontCreate(&work, mesWord, (LanguageNo == 0) ? 1 : 0); + HuSprGrpPosSet(work.spr_grp[mesSpaceNum], 288.0f, 240.0f); + spC[mesSpaceNum] = work.alt_word_len; + mesSpaceNum++; + if (i) { break; } - temp_r20 = temp_r29 + 1; + mesWord = mes + 1; } - temp_r29++; + mes++; } - if (temp_r26 == 1) { - temp_r22 = spC[0]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227.0f; - temp_f28 = 78; - temp_f27 = 0.5f; + #if VERSION_NTSC + if (mesSpaceNum == 1) { + nameW = spC[0]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 227; + nameY = 78; + nameScaleY = 0.5f; } else { - temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 172.0f; - temp_f28 = 84; - temp_f27 = 1.0f; + nameW = (spC[0] > spC[1]) ? spC[0] : spC[1]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 172.0f; + nameY = 84; + nameScaleY = 1.0f; } - temp_r25 = HuSprGrpCreate(1); - temp_r17 = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r25, 0, temp_r17); - HuSprPriSet(temp_r25, 0, 100); - HuSprGrpPosSet(temp_r25, 10000, 70); - HuSprScaleSet(temp_r25, 0, 1.0f, temp_f27); - for (temp_r31 = 0; temp_r31 < temp_r26; temp_r31++) { - HuSprGrpPosSet(work.spr_grp[temp_r31], 1000, 70); + #else + if (mesSpaceNum == 1) { + nameW = spC[0]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 235; + nameY = 78; + nameScaleY = 0.5f; } - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 16)); - temp_r24 = HuSprGrpCreate(1); - spA = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r24, 0, spA); - HuSprGrpPosSet(temp_r24, 1000, 186); - HuSprPriSet(temp_r24, 0, 1000); + else { + nameW = (spC[0] > spC[1]) ? spC[0] : spC[1]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 235; + nameY = 84; + nameScaleY = 1.0f; + } + #endif + nameGrpId = HuSprGrpCreate(1); + nameSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(nameGrpId, 0, nameSprId); + HuSprPriSet(nameGrpId, 0, 100); + HuSprGrpPosSet(nameGrpId, 10000, 70); + HuSprScaleSet(nameGrpId, 0, 1.0f, nameScaleY); + for (i = 0; i < mesSpaceNum; i++) { + HuSprGrpPosSet(work.spr_grp[i], 1000, 70); + } + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 16)); + startGrpId = HuSprGrpCreate(1); + startSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(startGrpId, 0, startSprId); + HuSprGrpPosSet(startGrpId, 1000, 186); + HuSprPriSet(startGrpId, 0, 1000); sp10[0] = HuWinCreate(1000, 186, 456, 42, 0); - HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10)); + HuWinMesSet(sp10[0], MAKE_MESSID(0x24, instMesOfs)); HuWinBGTPLvlSet(sp10[0], 0.0f); - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); - temp_r23 = HuSprGrpCreate(1); - sp8 = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r23, 0, sp8); - HuSprGrpPosSet(temp_r23, 1000, 242); - HuSprPriSet(temp_r23, 0, 1000); + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); + practiceGrpId = HuSprGrpCreate(1); + practiceSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(practiceGrpId, 0, practiceSprId); + HuSprGrpPosSet(practiceGrpId, 1000, 242); + HuSprPriSet(practiceGrpId, 0, 1000); sp10[1] = HuWinCreate(1000, 242, 456, 42, 0); - HuWinMesSet(sp10[1], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x01)); + HuWinMesSet(sp10[1], instMesOfs + MAKE_MESSID(0x24, 0x01)); HuWinBGTPLvlSet(sp10[1], 0.0f); - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); sp10[2] = HuWinCreate(1000, 292, 456, 42, 0); - HuWinMesSet(sp10[2], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); + HuWinMesSet(sp10[2], instMesOfs + MAKE_MESSID(0x24, 0x02)); HuWinBGTPLvlSet(sp10[2], 0.0f); HuWinMesSpeedSet(sp10[2], 0); - temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18); - HuWinSprPriSet(sp10[2], temp_r31, 1000); - temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); - HuWinBGTPLvlSet(temp_r27, 0.0f); - HuWinMesSpeedSet(temp_r27, 0); - HuWinMesSet(temp_r27, lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); - temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18); - HuWinPriSet(temp_r27, 10); - HuWinSprPriSet(temp_r27, temp_r31, 11); - while (lbl_1_data_0 != 0) { + i = HuWinAnimSet(sp10[2], nameAnim, 0, WIN_ANIM_OFS, 18); + HuWinSprPriSet(sp10[2], i, 1000); + rulesWinId = HuWinCreate(1000, 292, 456, 42, 0); + HuWinBGTPLvlSet(rulesWinId, 0.0f); + HuWinMesSpeedSet(rulesWinId, 0); + HuWinMesSet(rulesWinId, instMesOfs + MAKE_MESSID(0x24, 0x02)); + i = HuWinAnimSet(rulesWinId, nameAnim, 0, WIN_ANIM_OFS, 18); + HuWinPriSet(rulesWinId, 10); + HuWinSprPriSet(rulesWinId, i, 11); + while (instMode != 0) { HuPrcVSleep(); } - for (temp_r31 = 0; temp_r31 < 36; temp_r31++) { - temp_f30 = temp_r31; - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + temp_f29; - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); - for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { - HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + for (i = 0; i < 36; i++) { + t = i; + if (t <= 20.0f) { + #if VERSION_NTSC + posX = 300.0 * cosd(4.5f * t) + nameX; + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = 300.0 * cosd(4.5f * t) + (576.0f - (nameW / 2) - 24.0f); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); + } + #else + posX = 500.0 * cosd(4.5f * t) + nameX; + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = 500.0 * cosd(4.5f * t) + (576.0f - (nameW / 2) - 24.0f); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); + } + #endif + } + t = i - 3; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + instNamePosTbl[2]; + HuSprGrpPosSet(startGrpId, posX, 186.0f); + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[2] - 88.0f); + #if VERSION_NTSC + HuWinPosSet(sp10[0], 16.0f + posX, 168.0f); + #else + HuWinPosSet(sp10[0], 8.0f + posX, 168.0f); + #endif } } - temp_f30 = temp_r31 - 3; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[2]; - HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[2] - 88.0f); - HuWinPosSet(sp10[0], 16.0f + temp_f31, 168.0f); + t = i - 6; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + instNamePosTbl[4]; + HuSprGrpPosSet(practiceGrpId, posX, 242.0f); + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[4] - 100.0f); + #if VERSION_NTSC + HuWinPosSet(sp10[1], 16.0f + posX, 224.0f); + #else + HuWinPosSet(sp10[1], 8.0f + posX, 224.0f); + #endif } } - temp_f30 = temp_r31 - 6; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[4]; - HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[4] - 100.0f); - HuWinPosSet(sp10[1], 16.0f + temp_f31, 224.0f); - } - } - temp_f30 = temp_r31 - 9; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - 217.0f); - HuWinPosSet(sp10[2], 16.0f + temp_f31, 274.0f); + t = i - 9; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[6] - (WIN_ANIM_OFS+16)); + HuWinPosSet(sp10[2], 16.0f + posX, 274.0f); } } HuPrcVSleep(); } - while (lbl_1_data_0 != 3) { - if (temp_r21 != lbl_1_bss_6) { - temp_f31 = 16.0f + (lbl_1_data_124[6] - 217.0f); - HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + temp_r21); - temp_r21 = lbl_1_bss_6; - if (lbl_1_bss_6 == 1) { - if (mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + while (instMode != 3) { + if (prevPage != instPage) { + posX = 16.0f + (instNamePosTbl[6] - (WIN_ANIM_OFS+16)); + HuWinMesSet(rulesWinId, MAKE_MESSID(0x24, 0x02) + instMesOfs + prevPage); + prevPage = instPage; + if (instPage == 1) { + if (mgInfoTbl[instMgNo].inst_mess[2]) { + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + instMesOfs + instPage); } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06) + lbl_1_bss_10); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06) + instMesOfs); } } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + instMesOfs + instPage); } - for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { - HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 200.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + for (i = 0; i <= 10; i++) { + #if VERSION_NTSC + HuWinPosSet(rulesWinId, 30.0 * sind(i * 9.0f) + posX, 200.0 * (1.0 - cosd(i * 9.0f)) + 274.0); + #else + HuWinPosSet(rulesWinId, 30.0 * sind(i * 9.0f) + posX, 220.0 * (1.0 - cosd(i * 9.0f)) + 274.0); + #endif HuPrcVSleep(); } } HuPrcVSleep(); } - for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { - temp_f30 = 1.0 - cosd(temp_r31 * 4.5f); - temp_f31 = temp_f29 + (500.0f * temp_f30); - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = ((576.0f - (work.alt_word_len / 2)) - 24.0f) + (500.0f * temp_f30); - for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { - HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + for (i = 0; i < 20; i++) { + t = 1.0 - cosd(i * 4.5f); + posX = nameX + (500.0f * t); + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = ((576.0f - (work.alt_word_len / 2)) - 24.0f) + (500.0f * t); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); } - temp_f31 = lbl_1_data_124[2] + (300.0f * temp_f30); - HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); - temp_f31 = (lbl_1_data_124[2] - 88.0f) + (300.0f * temp_f30); - HuWinPosSet(sp10[0], 16.0f + temp_f31, 168); - temp_f31 = lbl_1_data_124[4] + (300.0f * temp_f30); - HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); - temp_f31 = (lbl_1_data_124[4] - 100.0f) + (300.0f * temp_f30); - HuWinPosSet(sp10[1], 16.0f + temp_f31, 224); - temp_f31 = (lbl_1_data_124[6] - 184.0f) + (400.0f * temp_f30); - HuWinPosSet(sp10[2], 16.0f + temp_f31, 274); + posX = instNamePosTbl[2] + (300.0f * t); + HuSprGrpPosSet(startGrpId, posX, 186.0f); + posX = (instNamePosTbl[2] - 88.0f) + (300.0f * t); + HuWinPosSet(sp10[0], 16.0f + posX, 168); + posX = instNamePosTbl[4] + (300.0f * t); + HuSprGrpPosSet(practiceGrpId, posX, 242.0f); + posX = (instNamePosTbl[4] - 100.0f) + (300.0f * t); + HuWinPosSet(sp10[1], 16.0f + posX, 224); + #if VERSION_NTSC + posX = (instNamePosTbl[6] - 184.0f) + (400.0f * t); + #else + posX = (instNamePosTbl[6] - 235.0f) + (400.0f * t); + #endif + HuWinPosSet(sp10[2], 16.0f + posX, 274); HuPrcVSleep(); } MGSeqSprKill(&work); @@ -908,98 +961,98 @@ static void fn_1_2FA0(void) } } -static u16 lbl_1_data_144[2] = { 1, 2 }; -static void fn_1_4174(omObjData *object) +static void CameraOutView(omObjData *object) { s16 i; + static u16 cameraMask[] = { HU3D_CAM0, HU3D_CAM1 }; for (i = 0; i < 2; i++) { Vec pos, target, up; float x, y, z; - x = lbl_1_bss_40[i].x; - y = lbl_1_bss_40[i].y; - z = lbl_1_bss_40[i].z; + x = cameraRot[i].x; + y = cameraRot[i].y; + z = cameraRot[i].z; - pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].x); - pos.y = (-sind(x) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].y; - pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].z; - target.x = lbl_1_bss_28[i].x; - target.y = lbl_1_bss_28[i].y; - target.z = lbl_1_bss_28[i].z; + pos.x = (((sind(y) * cosd(x)) * cameraZoom[i]) + cameraPos[i].x); + pos.y = (-sind(x) * cameraZoom[i]) + cameraPos[i].y; + pos.z = ((cosd(y) * cosd(x)) * cameraZoom[i]) + cameraPos[i].z; + target.x = cameraPos[i].x; + target.y = cameraPos[i].y; + target.z = cameraPos[i].z; up.x = sind(y) * sind(x); up.y = cosd(x); up.z = cosd(y) * sind(x); - Hu3DCameraPosSet(lbl_1_data_144[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + Hu3DCameraPosSet(cameraMask[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } -static void fn_1_4528(omObjData *object) +static void CameraDebug(omObjData *object) { Vec pos; Vec offset; Vec dir; - Vec y_offset; + Vec yOffset; - f32 z_rot; - s8 stick_pos; + float rotZ; + s8 stickPos; - if (lbl_1_bss_0 != 0) { - lbl_1_bss_40[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_40[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_20[0] += HuPadTrigL[0] / 2; - lbl_1_bss_20[0] -= HuPadTrigR[0] / 2; - if (lbl_1_bss_20[0] < 100.0f) { - lbl_1_bss_20[0] = 100.0f; + if (debugCamOnF != 0) { + cameraRot[0].y += 0.1f * HuPadStkX[0]; + cameraRot[0].x += 0.1f * HuPadStkY[0]; + cameraZoom[0] += HuPadTrigL[0] / 2; + cameraZoom[0] -= HuPadTrigR[0] / 2; + if (cameraZoom[0] < 100.0f) { + cameraZoom[0] = 100.0f; } - pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x))); - pos.y = (lbl_1_bss_28[0].y + (lbl_1_bss_20[0] * -sind(lbl_1_bss_40[0].x))); - pos.z = (lbl_1_bss_28[0].z + (lbl_1_bss_20[0] * (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x)))); - offset.x = lbl_1_bss_28[0].x - pos.x; - offset.y = lbl_1_bss_28[0].y - pos.y; - offset.z = lbl_1_bss_28[0].z - pos.z; - dir.x = (sind(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x)); - dir.y = cosd(lbl_1_bss_40[0].x); - dir.z = (cosd(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x)); - z_rot = lbl_1_bss_40[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + pos.x = cameraPos[0].x + (cameraZoom[0] * (sind(cameraRot[0].y) * cosd(cameraRot[0].x))); + pos.y = (cameraPos[0].y + (cameraZoom[0] * -sind(cameraRot[0].x))); + pos.z = (cameraPos[0].z + (cameraZoom[0] * (cosd(cameraRot[0].y) * cosd(cameraRot[0].x)))); + offset.x = cameraPos[0].x - pos.x; + offset.y = cameraPos[0].y - pos.y; + offset.z = cameraPos[0].z - pos.z; + dir.x = (sind(cameraRot[0].y) * sind(cameraRot[0].x)); + dir.y = cosd(cameraRot[0].x); + dir.z = (cosd(cameraRot[0].y) * sind(cameraRot[0].x)); + rotZ = cameraRot[0].z; + yOffset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(rotZ)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(rotZ)) - offset.z * sind(rotZ)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(rotZ)) + offset.y * sind(rotZ)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); + yOffset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(rotZ)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(rotZ)) + offset.z * sind(rotZ)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(rotZ)) - offset.x * sind(rotZ)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + yOffset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(rotZ)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(rotZ)) - offset.y * sind(rotZ)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(rotZ)) + offset.x * sind(rotZ))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_28[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_28[0].z += 0.05f * (offset.z * stick_pos); + stickPos = (HuPadSubStkX[0] & 0xF8); + if (stickPos != 0) { + cameraPos[0].x += 0.05f * (offset.x * stickPos); + cameraPos[0].y += 0.05f * (offset.y * stickPos); + cameraPos[0].z += 0.05f * (offset.z * stickPos); } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_28[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_28[0].z += 0.05f * (offset.z * stick_pos); + VECNormalize(&yOffset, &offset); + stickPos = -(HuPadSubStkY[0] & 0xF8); + if (stickPos != 0) { + cameraPos[0].x += 0.05f * (offset.x * stickPos); + cameraPos[0].y += 0.05f * (offset.y * stickPos); + cameraPos[0].z += 0.05f * (offset.z * stickPos); } } } static float lbl_1_data_148 = 842; -static float lbl_1_data_14C = 34; +static float instPicRadius = 34; -static void fn_1_50B0(ModelData *model, Mtx mtx) +static void InstPicDraw(ModelData *model, Mtx mtx) { Mtx final; - Mtx inv_camera; - Mtx lookatlight; + Mtx invCamera; + Mtx lookAtLight; Mtx light; Mtx lookat; Vec pos; @@ -1013,7 +1066,7 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) u8 b; s16 row; - s32 sp8 = 0; + s32 practiceSprId = 0; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); @@ -1022,22 +1075,22 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); target.x = target.z = 0.0f; - target.x = lbl_1_data_14C * sind(lbl_1_bss_40[0].y); - target.z = lbl_1_data_14C * cosd(lbl_1_bss_40[0].y); + target.x = instPicRadius * sind(cameraRot[0].y); + target.z = instPicRadius * cosd(cameraRot[0].y); target.y = 415.0f; - pos.x = (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].x; - pos.y = (-sind(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].y; - pos.z = (cos(M_PI * lbl_1_bss_40[0].y / 180.0) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].z; - up.x = -sind(lbl_1_bss_40[0].y); - up.z = -cosd(lbl_1_bss_40[0].y); + pos.x = (sind(cameraRot[0].y) * cosd(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].x; + pos.y = (-sind(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].y; + pos.z = (cosd(cameraRot[0].y) * cosd(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].z; + up.x = -sind(cameraRot[0].y); + up.z = -cosd(cameraRot[0].y); up.y = 0; MTXLookAt(lookat, &pos, &up, &target); - MTXLightPerspective(light, lbl_1_bss_C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - HuSprTexLoad(lbl_1_bss_18, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); - MTXConcat(light, lookat, lookatlight); - MTXConcat(lookatlight, final, final); + MTXLightPerspective(light, instFov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + HuSprTexLoad(instPicAnim, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, mtx, final); + MTXConcat(light, lookat, lookAtLight); + MTXConcat(lookAtLight, final, final); GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -1090,12 +1143,12 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) GXEnd(); } -static void fn_1_5B64(ModelData *model, Mtx mtx) +static void ShadowDraw(ModelData *model, Mtx mtx) { - s32 sp8 = 0; + s32 temp = 0; GXTexObj tex; Mtx final; - Mtx inv_camera; + Mtx invCamera; Mtx shadow; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -1103,8 +1156,8 @@ static void fn_1_5B64(ModelData *model, Mtx mtx) GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, mtx, final); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); MTXConcat(shadow, final, final); GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index cb02264e..3308961a 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -2769,7 +2769,11 @@ void fn_2_C130(omObjData *object) case 0: if (!MGSeqStatGet(lbl_2_bss_C0)) { object->work[0] = 1; + #if VERSION_NTSC HuAudFXStop(lbl_2_bss_11C); + #else + HuAudFXFadeOut(lbl_2_bss_11C, 500); + #endif WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); WipeColorSet(255, 255, 255); } diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 59f189c3..e4044763 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -22,6 +22,7 @@ #include "dolphin.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -425,20 +426,20 @@ static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -578,7 +579,7 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -605,9 +606,9 @@ static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -777,7 +778,7 @@ static void fn_1_2970(UnkFn27A8Struct *arg0, omObjData *arg1, u8 arg2) static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) { arg0->unk50 = 0; - arg0->unk20 = (770.0f - arg0->unk1C) / 18.0f; + arg0->unk20 = (770.0f - arg0->unk1C) / (REFRESH_RATE * 0.3f); arg0->unk0C = Hu3DMotionTimeGet(arg2->model[0]); Hu3DMotionTimeSet(lbl_1_bss_54[arg0->unk54]->model[0], 0.0f); Hu3DMotionSpeedSet(arg1->model[0], 1.0f); @@ -794,13 +795,13 @@ static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) float var_f29; arg0->unk50++; - var_f30 = 90.0f * (arg0->unk50 / 18.0f); + var_f30 = 90.0f * (arg0->unk50 / (VERSION_NTSC ? 18.0f : 15.000001f)); var_f29 = arg0->unk0C * (1.0 - sind(var_f30)); Hu3DMotionTimeSet(arg1->model[0], var_f29); fn_1_1D18(arg1->model[0], "motionC-stretch", &sp20); arg0->unk28 = sp20.y - arg0->unk14 + 388.0f; arg0->unk1C += arg0->unk20; - if (18.0f < arg0->unk50) { + if ((REFRESH_RATE * 0.3f) < arg0->unk50) { arg0->unk20 = (670.0f - arg0->unk1C) / 20.0f; Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(arg1->model[0], arg1->motion[2]); @@ -926,7 +927,7 @@ static void fn_1_3204(omObjData *arg0) } } } - if (60.0f <= temp_r31->unk30) { + if (1.0f * REFRESH_RATE <= temp_r31->unk30) { temp_r31->unk4C = 2017; fn_1_2B30(temp_r31, arg0, temp_r29); } @@ -949,7 +950,7 @@ static void fn_1_3204(omObjData *arg0) case 2017: if (fn_1_2DBC(temp_r31, temp_r29) != 0) { temp_r31->unk4C = 2018; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2018: @@ -1124,7 +1125,7 @@ static void fn_1_43D8(omObjData *arg0) case 2008: if (fn_1_2DBC(temp_r31, temp_r30) != 0) { temp_r31->unk4C++; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2009: @@ -1194,7 +1195,7 @@ static void fn_1_43D8(omObjData *arg0) case 2014: if (fn_1_2DBC(temp_r31, temp_r30) != 0) { temp_r31->unk4C++; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2015: @@ -1424,9 +1425,9 @@ static void fn_1_70E4(omObjData *arg0) spC.y = 0.0f; spC.z = var_f27; temp_r31->unk24.z *= 0.92f; - PSMTXIdentity(sp18); + MTXIdentity(sp18); mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f); - PSMTXMultVec(sp18, &spC, &spC); + MTXMultVec(sp18, &spC, &spC); VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00); omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z); Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30); @@ -1664,17 +1665,17 @@ static void fn_1_8218(omObjData *arg0) } if (MGSeqStatGet(lbl_1_bss_1AA) == 0) { arg0->work[0]++; - lbl_1_bss_1B0 = 1800; - lbl_1_bss_1A8 = MGSeqCreate(1, lbl_1_bss_1B0 / 60, -1, -1); + lbl_1_bss_1B0 = 30 * REFRESH_RATE; + lbl_1_bss_1A8 = MGSeqCreate(1, lbl_1_bss_1B0 / REFRESH_RATE, -1, -1); lbl_1_bss_1AA = -1; } } break; case 1006: - MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + 59) / 60); + MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_1B0--; if (lbl_1_bss_1B0 < 0 || lbl_1_bss_26 >= 0) { - lbl_1_bss_1B0 = 1800; + lbl_1_bss_1B0 = 30 * REFRESH_RATE; lbl_1_bss_2C = 0.0f; arg0->work[0] = 1007; } @@ -1697,8 +1698,8 @@ static void fn_1_8218(omObjData *arg0) } else { lbl_1_bss_2C += 1.0f; - if (90.0f >= lbl_1_bss_2C) { - fn_1_13DC(lbl_1_bss_2C / 90.0f, &lbl_1_data_1C); + if (1.5f * REFRESH_RATE >= lbl_1_bss_2C) { + fn_1_13DC(lbl_1_bss_2C / (1.5f * REFRESH_RATE), &lbl_1_data_1C); } if (MGSeqStatGet(lbl_1_bss_1AA) == 0) { arg0->work[0]++; diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index a1e3fc91..1a6faa0c 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -18,6 +18,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct { /* 0x000 */ u8 unk00; /* 0x001 */ char unk01[3]; @@ -1384,18 +1388,18 @@ static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) Mtx sp8; if (arg3 != 0.0f) { - PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); + MTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg1 != 0.0f) { - PSMTXRotRad(sp38, 'X', MTXDegToRad(arg1)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 'X', MTXDegToRad(arg1)); + MTXConcat(sp38, arg0, arg0); } if (arg2 != 0.0f) { - PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m403Dll/scene.c b/src/REL/m403Dll/scene.c index e87fd648..b71d445f 100755 --- a/src/REL/m403Dll/scene.c +++ b/src/REL/m403Dll/scene.c @@ -307,12 +307,12 @@ static void fn_1_6ED8(omObjData *arg0) Mtx sp8; s32 i; - PSMTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); + MTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); mtxRot(sp8, arg0->rot.x, arg0->rot.y, arg0->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (i = 0; i < 6; i++) { - PSMTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(arg0->model[i + 1], arg0->rot.x, arg0->rot.y, arg0->rot.z); } @@ -598,16 +598,16 @@ static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) temp_r28 -= 6; fn_1_7BD4(temp_r21, &sp10); sp10 = lbl_1_data_A88[temp_r21]; - PSMTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + MTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); mtxRot(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[temp_r28]; temp_r23 = lbl_1_data_B14[temp_r28]; for (i = 0; i < temp_r23; i++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg2->x = sp1C[0][3]; arg2->y = sp1C[1][3]; arg2->z = sp1C[2][3]; @@ -703,17 +703,17 @@ s32 fn_1_8470(Vec *arg0) temp_r30 = lbl_1_bss_9C[lbl_1_bss_94]; temp_r27 = temp_r30->data; var_r25 = fn_1_8274(temp_r27, sp8); - PSMTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); + MTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); mtxRot(sp20, temp_r30->rot.x, temp_r30->rot.y, temp_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (i = 0; i < var_r25; i++) { fn_1_7BD4(sp8[i], arg0); temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6; arg0->x += lbl_1_data_B2C[temp_r26].x; arg0->y += lbl_1_data_B2C[temp_r26].y; arg0->z += lbl_1_data_B2C[temp_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 6b790aee..ba9e9ca0 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -12,6 +12,12 @@ #include "game/wipe.h" #include "string.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/esprite.h" +#endif typedef struct UnkM404Struct { s16 unk_00; @@ -281,7 +287,7 @@ s32 fn_1_38C(void) void fn_1_39C(omObjData *object) { fn_1_37C(0); - lbl_1_bss_24 = 60; + lbl_1_bss_24 = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); object->func = fn_1_400; } @@ -294,7 +300,7 @@ void fn_1_400(omObjData *object) break; } fn_1_37C(1); - lbl_1_bss_24 = 180; + lbl_1_bss_24 = 3 * REFRESH_RATE; break; case 1: if (--lbl_1_bss_24) { @@ -327,22 +333,22 @@ void fn_1_400(omObjData *object) if (!MGSeqStatGet(lbl_1_bss_C)) { fn_1_37C(5); WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_24 = 60; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, REFRESH_RATE / 2); + lbl_1_bss_24 = REFRESH_RATE; } case 5: if (--lbl_1_bss_24) { break; } fn_1_37C(6); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, REFRESH_RATE); break; case 6: if (WipeStatGet()) { break; } fn_1_37C(7); - lbl_1_bss_24 = 180; + lbl_1_bss_24 = 3 * REFRESH_RATE; break; case 7: if (--lbl_1_bss_24) { @@ -356,7 +362,7 @@ void fn_1_400(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_24 = 210; + lbl_1_bss_24 = 3.5 * REFRESH_RATE; break; case 8: break; @@ -740,7 +746,7 @@ void fn_1_1344(omObjData *object) DCFlushRangeNoSync(var_r31->unk_50->bmp->data, (var_r31->unk_50->bmp->pixSize * (var_r31->unk_50->bmp->sizeX * var_r31->unk_50->bmp->sizeY)) / 8); Hu3DMotionOverlaySet(object->model[0], object->motion[2]); object->trans.y = 1500.0f; - var_r31->unk_38 = var_r31->unk_02 * 60 / 2; + var_r31->unk_38 = var_r31->unk_02 * REFRESH_RATE / 2; CharModelDataClose(var_r31->unk_0C); if (GWPlayerCfg[var_r31->unk_02].iscom == 1) { var_r28 = lbl_1_data_8E8[lbl_1_bss_1C]; @@ -782,7 +788,7 @@ void fn_1_1AFC(omObjData *object) } } if (object->trans.y > 0.0f) { - var_r31->unk_24 = var_r31->unk_24 - 1.0000001f; + var_r31->unk_24 = var_r31->unk_24 - (VERSION_NTSC ? 1.0000001f : 1.2f); object->trans.y += var_r31->unk_24; if (object->trans.y < 0.0f) { object->trans.y = 0.0f; @@ -799,7 +805,7 @@ void fn_1_1AFC(omObjData *object) } if (var_r31->unk_38 == 0) { var_r31->unk_00_field2 = 1; - var_r31->unk_38 = 30; + var_r31->unk_38 = REFRESH_RATE / 2; return; } var_r31->unk_38--; @@ -950,13 +956,13 @@ void fn_1_3F30(omObjData *object) var_r31 = object->data; if (var_r31->unk_5E < (var_r31->unk_6C - 1)) { - if ((3.0f + var_r31->unk_64) >= var_r31->unk_68) { - var_r31->unk_64 = 3.0f - (var_r31->unk_68 - var_r31->unk_64); + if ((180.0f / REFRESH_RATE + var_r31->unk_64) >= var_r31->unk_68) { + var_r31->unk_64 = 180.0f / REFRESH_RATE - (var_r31->unk_68 - var_r31->unk_64); var_r31->unk_5E += 3; var_r31->unk_68 = fn_1_2EBC(var_r31->unk_70[var_r31->unk_5E], 1.0f); } else { - var_r31->unk_64 += 3.0f; + var_r31->unk_64 += 180.0f / REFRESH_RATE; } var_r31->unk_60 = fn_1_3A38(var_r31->unk_70[var_r31->unk_5E], var_r31->unk_60, var_r31->unk_64); var_r30 = var_r31->unk_70[var_r31->unk_5E]; @@ -1012,8 +1018,8 @@ void fn_1_44A0(omObjData *object) } if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); - var_r31->unk_20 = 3.0f * sind(var_f31); - var_r31->unk_28 = 3.0f * cosd(var_f31); + var_r31->unk_20 = (VERSION_NTSC ? 3.0 : 3.5999999046325684) * sind(var_f31); + var_r31->unk_28 = (VERSION_NTSC ? 3.0 : 3.5999999046325684) * cosd(var_f31); var_r28 = 1; if (var_r31->unk_20 > 0.0f) { CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); @@ -1090,7 +1096,7 @@ void fn_1_44A0(omObjData *object) break; case 1: var_r28 = 1; - object->trans.x += 4.0000005f; + object->trans.x += VERSION_NTSC ? 4.0000005f : 4.8f; if (object->trans.x >= 3200.0f) { var_r31->unk_12++; var_r31->unk_38 = 0x3C; @@ -1468,14 +1474,14 @@ void fn_1_66DC(omObjData *object) case 1: fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); if (lbl_1_bss_4 < 1.0f) { - lbl_1_bss_4 += 0.007999999f; + lbl_1_bss_4 += VERSION_NTSC ? 0.007999999f : 0.0095999995f; if (lbl_1_bss_4 > 1.0f) { lbl_1_bss_4 = 1.0f; } } break; case 3: - Center.x += 2.0000002f; + Center.x += VERSION_NTSC ? 2.0000002f : 2.4f; Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; break; @@ -1484,7 +1490,7 @@ void fn_1_66DC(omObjData *object) break; case 7: if (Center.x < 3000.0f) { - Center.x += 25.0f; + Center.x += VERSION_NTSC ? 25.0f : 30.0f; } default: break; diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 0c999c19..0eade3f2 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -418,20 +418,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -571,7 +571,7 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -598,9 +598,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -928,7 +928,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) UnkBss10Struct *temp_r31; GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, spEC); + MTXInvXpose(arg1, spEC); GXLoadNrmMtxImm(spEC, GX_PNMTX0); temp_r31 = &lbl_1_data_10[2]; GXInitTexObj(&spC, temp_r31->unk00, temp_r31->unk08, temp_r31->unk0A, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); @@ -941,31 +941,31 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXLoadTexObj(&spC, GX_TEXMAP3); GXSetNumTexGens(4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.5f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.5f); + MTXConcat(spBC, sp5C, sp5C); sp5C[0][1] = -0.01f; GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, var_f31, var_f31, var_f31); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.0f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, var_f31, var_f31, var_f31); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.0f); + MTXConcat(spBC, sp5C, sp5C); GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); @@ -974,12 +974,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXSetNumIndStages(2); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, -0.2f, -0.2f, 0.2f); + MTXScale(spBC, -0.2f, -0.2f, 0.2f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, 0.5f, 0.5f, 0.5f); + MTXScale(spBC, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetNumTevStages(2); @@ -1031,10 +1031,10 @@ void fn_1_4024(ModelData *arg0, Mtx arg1) fn_1_2714(1, GX_FALSE); GXLoadPosMtxImm(arg1, GX_PNMTX0); C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, arg1, sp68); - PSMTXConcat(sp98, Hu3DCameraMtx, sp38); - PSMTXConcat(sp38, sp68, sp68); + MTXInverse(Hu3DCameraMtx, sp68); + MTXConcat(sp68, arg1, sp68); + MTXConcat(sp98, Hu3DCameraMtx, sp38); + MTXConcat(sp38, sp68, sp68); GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetNumChans(1); @@ -1096,7 +1096,7 @@ void fn_1_4700(ModelData *arg0, Mtx arg1) C_MTXOrtho(sp20, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp20, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp60); + MTXIdentity(sp60); GXLoadPosMtxImm(sp60, GX_PNMTX0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 7abe5b76..e995e73a 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -1083,7 +1083,7 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1) } if (!var_r31->unk_28) { GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp10); + MTXInvXpose(arg1, sp10); GXLoadNrmMtxImm(sp10, 0); var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f); GXSetNumTevStages(1); @@ -2149,7 +2149,7 @@ void fn_1_82C8(Mtx arg0, s32 arg1, float arg8) sp80.z = arg0[2][3]; sp74.x = sp74.z = 0.0f; sp74.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, sp8C); + MTXCopy(arg0, sp8C); sp8C[0][3] = sp8C[1][3] = sp8C[2][3] = sp8C[3][3] = 0.0f; sp68.x = -25.0f; sp68.z = -50.0f; @@ -2227,7 +2227,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59)); } @@ -2246,7 +2246,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60)); } @@ -2278,8 +2278,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2299,8 +2299,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2340,7 +2340,7 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) sp64.z = arg0[2][3]; sp58.x = sp58.z = 0.0f; sp58.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, spA0); + MTXCopy(arg0, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = spA0[3][3] = 0.0f; if (!arg2) { sp4C.x = 25.0f; @@ -2419,12 +2419,12 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) var_r31->unk_10 = 1.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = var_f31; - PSMTXCopy(arg0, var_r31->unk_1C); + MTXCopy(arg0, var_r31->unk_1C); Hu3DMotionTimeSet(var_r31->unk_04, 0.0f); Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f); var_r27 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp70, var_f31, var_f31, var_f31); - PSMTXConcat(arg0, sp70, var_r27->unk_F0); + MTXScale(sp70, var_f31, var_f31, var_f31); + MTXConcat(arg0, sp70, var_r27->unk_F0); var_r27->unk_F0[0][3] = arg0[0][3]; var_r27->unk_F0[1][3] = arg0[1][3]; var_r27->unk_F0[2][3] = arg0[2][3]; @@ -2630,7 +2630,7 @@ void fn_1_ADB4(ModelData *arg0, float (*arg1)[4]) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); @@ -2954,7 +2954,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -2993,9 +2993,9 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) VECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3167,7 +3167,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); if (HmfInverseMtxF3X3(arg1, sp9C) == 0) { - PSMTXIdentity(sp9C); + MTXIdentity(sp9C); } PSMTXReorder(sp9C, spC); if (var_r31->unk_4C) { @@ -3362,8 +3362,8 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8) break; } if (arg0->unk_00 & 0x8000) { - PSMTXMultVec(arg2, &arg0->unk_28, &sp24); - PSMTXMultVec(arg3, &arg0->unk_1C, &sp18); + MTXMultVec(arg2, &arg0->unk_28, &sp24); + MTXMultVec(arg3, &arg0->unk_1C, &sp18); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); } else { diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index b484169b..9685aac0 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -666,11 +666,11 @@ void fn_1_E214(omObjData *object) } Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30); var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f; - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); var_r27 = 6; var_f31 = 2.0f; var_r25 = 0; @@ -690,14 +690,14 @@ void fn_1_E214(omObjData *object) var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 0.0f; } var_r31->unk_50 = fn_1_13AF4(var_r31->unk_50, 0.0f, 0.5f); - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); if (var_r31->unk_5E != 0) { - PSMTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); - PSMTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); + MTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); + MTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); if (--var_r31->unk_5E == 0) { if (++var_r31->unk_5C >= 4) { var_r31->unk_00_field3 = 0; @@ -708,7 +708,7 @@ void fn_1_E214(omObjData *object) Hu3DModelPosSet(object->model[6], object->trans.x + var_r31->unk_68, object->trans.y + var_r31->unk_6C, object->trans.z + var_r31->unk_70); Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); fn_1_117BC(var_r31->unk_14.x, 25.0f, &var_r31->unk_44, &var_r31->unk_2C); } } @@ -733,7 +733,7 @@ void fn_1_E214(omObjData *object) if (fn_1_6A44(sp28) == 1) { var_r31->unk_00_field0 = 1; var_r26 = &Hu3DData[object->model[0]]; - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); omVibrate(var_r31->unk_02, 0xC, 4, 2); HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans); for (var_r24 = 0; var_r24 < 2; var_r24++) { @@ -804,13 +804,13 @@ void fn_1_F194(omObjData *object) mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp44, &sp8, &sp44); if (sp44.y >= 0.0f) { - PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, -10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 0); } else { - PSMTXTrans(sp50, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, 10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 1); } } @@ -868,13 +868,13 @@ void fn_1_F694(omObjData *object) mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp20, &sp14, &sp8); if (sp8.y >= 0.0f) { - PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, -10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 0); } else { - PSMTXTrans(sp38, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, 10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 1); } } @@ -1228,8 +1228,8 @@ void fn_1_10744(omObjData *object) if ((var_r31->unk_64 < 0x50) && (var_r31->unk_64 > 0x1E)) { mtxRot(sp48, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); mtxTransCat(sp48, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXTrans(sp18, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp18, sp48, sp48); + MTXTrans(sp18, 10.0f, 0.0f, 0.0f); + MTXConcat(sp18, sp48, sp48); fn_1_94C0(sp48, 10, 0); } var_r31->unk_2C.x = var_r31->unk_54 * (100.0 * (0.10000000149011612 * sind(180.0f + var_r31->unk_14.x))); @@ -1345,15 +1345,15 @@ void fn_1_114A0(omObjData *object) } mtxRot(sp9C, object->rot.x, object->rot.y, object->trans.z); mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z); - PSMTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); - PSMTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp9C, sp6C, sp9C); - PSMTXCopy(sp9C, spC); + MTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); + MTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp9C, sp6C, sp9C); + MTXCopy(sp9C, spC); mtxScaleCat(spC, 2.0f, 2.0f, 2.0f); - PSMTXCopy(spC, Hu3DData[object->model[5]].unk_F0); - PSMTXTrans(sp3C, 0.0f, 110.0f, 0.0f); - PSMTXConcat(sp9C, sp3C, spC); - PSMTXCopy(spC, Hu3DData[object->model[7]].unk_F0); + MTXCopy(spC, Hu3DData[object->model[5]].unk_F0); + MTXTrans(sp3C, 0.0f, 110.0f, 0.0f); + MTXConcat(sp9C, sp3C, spC); + MTXCopy(spC, Hu3DData[object->model[7]].unk_F0); } void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1) @@ -1753,7 +1753,7 @@ void fn_1_12BC4(omObjData *object) var_r30->target.z = Center.z; C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target); for (var_r31 = 0; var_r31 < lbl_1_bss_1C4; var_r31++) { - PSMTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); + MTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); spD8[var_r31].x = sp198[var_r31].x / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); spD8[var_r31].y = sp198[var_r31].y / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); } @@ -1811,13 +1811,13 @@ s32 fn_1_136AC(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) HsfTransform *var_r31 = &arg0->data.curr; mtxRot(sp144, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp144, sp174, sp174); + MTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp144, sp174, sp174); mtxTransCat(sp174, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp174, sp174); + MTXConcat(arg1, sp174, sp174); strcpy(sp4A4, MakeObjectName(arg2)); if (strcmp(sp4A4, arg0->name) == 0) { - PSMTXCopy(sp174, arg3); + MTXCopy(sp174, arg3); return 1; } for (var_r23 = 0; var_r23 < arg0->data.childrenCount; var_r23++) { @@ -1838,7 +1838,7 @@ void fn_1_13A88(s16 arg0, char *arg1, Mtx arg2) var_r31 = &Hu3DData[arg0]; var_r30 = var_r31->hsfData; - PSMTXIdentity(sp14); + MTXIdentity(sp14); fn_1_136AC(var_r30->root, sp14, arg1, arg2); } diff --git a/src/REL/m407dll/camera.c b/src/REL/m407dll/camera.c index 20d3d4db..4db0b078 100644 --- a/src/REL/m407dll/camera.c +++ b/src/REL/m407dll/camera.c @@ -1,35 +1,37 @@ -#include "game/process.h" -#include "game/object.h" +#include "ext_math.h" #include "game/hsfdraw.h" -#include "math.h" +#include "game/object.h" +#include "game/process.h" + typedef struct unkDominationData2 { -/* 0x00 */ s32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Point3d unk_08; -/* 0x14 */ Point3d unk_14; -/* 0x20 */ f32 unk_20; -/* 0x24 */ Point3d unk_24; -/* 0x30 */ Point3d unk_30; -/* 0x3C */ f32 unk_3C; -/* 0x40 */ s32 unk_40; -/* 0x44 */ f32 unk_44; -/* 0x48 */ f32 unk_48; -} unkDominationData2; //sizeof 0x4C + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; + /* 0x20 */ f32 unk_20; + /* 0x24 */ Vec unk_24; + /* 0x30 */ Vec unk_30; + /* 0x3C */ f32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ f32 unk_44; + /* 0x48 */ f32 unk_48; +} unkDominationData2; // sizeof 0x4C -//function signatures +// function signatures void fn_1_1CAC(f32, f32, f32); void fn_1_1D08(f32, f32, f32); void fn_1_1D64(f32); -void fn_1_2024(omObjData*); +void fn_1_2024(omObjData *); -//bss -Process* lbl_1_bss_34; -omObjData* lbl_1_bss_30; +// bss +Process *lbl_1_bss_34; +omObjData *lbl_1_bss_30; + +void fn_1_1B1C(Process *arg0) +{ + unkDominationData2 *unkData; -void fn_1_1B1C(Process* arg0) { - unkDominationData2* unkData; - lbl_1_bss_34 = arg0; Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 45.0f, 10.0f, 40000.0f, 1.2f); @@ -42,49 +44,55 @@ void fn_1_1B1C(Process* arg0) { fn_1_1D64(0.0f); } -void fn_1_1CA8(void) { +void fn_1_1CA8(void) { } -} - -void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) { +void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) +{ Center.x = arg8; Center.y = arg9; Center.z = argA; } -void fn_1_1CD4(f32* arg0, f32* arg1, f32* arg2) { +void fn_1_1CD4(f32 *arg0, f32 *arg1, f32 *arg2) +{ *arg0 = Center.x; *arg1 = Center.y; *arg2 = Center.z; } -void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) { +void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) +{ CRot.x = arg8; CRot.y = arg9; CRot.z = argA; } -void fn_1_1D30(f32* arg0, f32* arg1, f32* arg2) { +void fn_1_1D30(f32 *arg0, f32 *arg1, f32 *arg2) +{ *arg0 = CRot.x; *arg1 = CRot.y; *arg2 = CRot.z; } -void fn_1_1D64(f32 arg8) { +void fn_1_1D64(f32 arg8) +{ CZoom = arg8; } -void fn_1_1D74(f32* arg0) { +void fn_1_1D74(f32 *arg0) +{ *arg0 = CZoom; } -s32 fn_1_1D88(void) { - unkDominationData2* unkData = lbl_1_bss_30->data; +s32 fn_1_1D88(void) +{ + unkDominationData2 *unkData = lbl_1_bss_30->data; return unkData->unk_04; } -void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) { - unkDominationData2* temp_r31; +void fn_1_1DB0(Vec *arg0, Vec *arg1, f32 *arg2, s32 arg3, s32 arg4) +{ + unkDominationData2 *temp_r31; temp_r31 = lbl_1_bss_30->data; temp_r31->unk_00 = arg4; @@ -100,46 +108,48 @@ void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) { temp_r31->unk_04 = 1; } -f32 fn_1_1F1C(f32 arg8, f32 arg9) { +f32 fn_1_1F1C(f32 arg8, f32 arg9) +{ if (((arg8 > 0.0f) && (arg9 > 0.0f)) || ((arg8 < 0.0f) && (arg9 < 0.0f))) { return abs(arg8 - arg9); } - + return abs(arg8) + abs(arg9); } -void fn_1_2024(omObjData* arg0) { +void fn_1_2024(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 var_f31; f32 cZoomTemp; - unkDominationData2* temp_r31; + unkDominationData2 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_04 != 0) { switch (temp_r31->unk_00) { - case 0: - var_f31 = temp_r31->unk_44; - break; - case 1: - var_f31 = temp_r31->unk_44; - if (temp_r31->unk_48 > 0.5) { - temp_r31->unk_00 = 2; - } - break; - case 2: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); - break; - case 3: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); - if (temp_r31->unk_48 > 0.5) { - temp_r31->unk_00 = 4; - } - break; - case 4: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); - var_f31 *= var_f31; - break; + case 0: + var_f31 = temp_r31->unk_44; + break; + case 1: + var_f31 = temp_r31->unk_44; + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 2; + } + break; + case 2: + var_f31 = sind(90.0f * temp_r31->unk_44); + break; + case 3: + var_f31 = sind(90.0f * temp_r31->unk_44); + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 4; + } + break; + case 4: + var_f31 = sind(90.0f * temp_r31->unk_44); + var_f31 *= var_f31; + break; } sp14.x = temp_r31->unk_24.x + (var_f31 * (temp_r31->unk_08.x - temp_r31->unk_24.x)); sp14.y = temp_r31->unk_24.y + (var_f31 * (temp_r31->unk_08.y - temp_r31->unk_24.y)); diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index 52df4f5a..4e5287ba 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -2,6 +2,7 @@ #include "game/hsfmotion.h" #include "game/object.h" #include "game/process.h" +#include "math.h" #include "REL/m407dll.h" diff --git a/src/REL/m407dll/main.c b/src/REL/m407dll/main.c index a3b4c1d7..83406eca 100644 --- a/src/REL/m407dll/main.c +++ b/src/REL/m407dll/main.c @@ -1,13 +1,12 @@ #include "game/object.h" #include "game/gamework_data.h" +#include "game/gamework.h" #include "game/minigame_seq.h" #include "game/wipe.h" #include "game/audio.h" #include "game/hsfman.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - -typedef void (*ObjFuncs)(void); +#include "REL/m407dll.h" typedef struct unkDominationData5 { /* 0x00 */ u32 unk_00; @@ -27,12 +26,6 @@ typedef struct unkDominationData5 { } unkDominationData5; //sizeof 0x48 //function signatures -void fn_1_388(u8, s32); -void fn_1_3C4(u8); -s32 fn_1_4C0(s32); -s32 fn_1_508(u8); -s32 fn_1_53C(u8); -void fn_1_568(s16, s16, s16); void fn_1_4B7C(void); void fn_1_4C3C(s32); void fn_1_4C6C(omObjData*); @@ -56,7 +49,7 @@ omObjData* lbl_1_bss_397C; s16 lbl_1_bss_3978; //data -ObjFuncs lbl_1_data_2A8[] = { +VoidFuncs lbl_1_data_2A8[] = { fn_1_4D0C, fn_1_4D54, fn_1_4E8C, diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index 3586f39a..4675aa80 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -3,7 +3,7 @@ #include "game/object.h" #include "game/process.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +#include "REL/m407dll.h" // function signatures void fn_1_162C(omObjData *); @@ -34,10 +34,10 @@ s32 lbl_1_data_198[] = { Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } }; -Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; -Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; +Vec lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; +Vec lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; GXColor lbl_1_data_214 = { 255, 255, 255, 255 }; -Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; void fn_1_14F0(Process *arg0, s32 arg1) { @@ -117,7 +117,7 @@ void fn_1_162C(omObjData *arg0) void fn_1_1A8C(omObjData *arg0) { - Point3d sp8; + Vec sp8; sp8.x = lbl_1_data_1FC.x; sp8.y = lbl_1_data_1FC.y; diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 395fb157..0557ca80 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -1,15 +1,16 @@ +#include "game/audio.h" #include "game/chrman.h" #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" #include "math.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef void (*ObjFuncs)(omObjData *); +#include "REL/m407dll.h" typedef struct unkDominationData { u8 unk_00; @@ -467,8 +468,8 @@ void fn_1_DB4(omObjData *arg0) temp_r31->unk_20++; } - temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24); - temp_f30 = 22.0f * cos(1.0471975511965976); + temp_f31 = 32.0f * sin(M_PI / 3) - 9.8f * temp_r31->unk_24; + temp_f30 = 22.0f * cos(M_PI / 3); temp_r31->unk_18 = temp_r31->unk_18 + temp_f30; temp_r31->unk_14 = temp_r31->unk_14 + temp_f31; temp_r31->unk_24 += 0.3f; @@ -514,7 +515,7 @@ void fn_1_1074(omObjData *arg0) temp_r31->unk_20 = 1; } - temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24))); + temp_r31->unk_14 += 80.0 * sin(M_PI / 2) - 9.8 * temp_r31->unk_24; temp_r31->unk_24 += 0.3f; if (!(temp_r31->unk_14 < 1000.0f)) { diff --git a/src/REL/m407dll/score.c b/src/REL/m407dll/score.c index e5cd5fed..4895ebd8 100644 --- a/src/REL/m407dll/score.c +++ b/src/REL/m407dll/score.c @@ -3,9 +3,7 @@ #include "game/process.h" #include "game/sprite.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - -typedef void (*ObjFuncs)(void); +#include "REL/m407dll.h" typedef struct unkDominationData6 { /* 0x00 */ s32 unk_00; @@ -30,7 +28,7 @@ Process *lbl_1_bss_398C; omObjData *lbl_1_bss_3988; // data -ObjFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; +VoidFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; void fn_1_5C5C(Process *arg0, s16 arg1) { diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index 08605efb..43275f60 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -5,14 +5,12 @@ #include "game/object.h" #include "game/process.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +#include "REL/m407dll.h" #define MAX_WHOMPS_PLAYER 160 #define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER *ARRAY_COUNT(GWPlayer) #define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) -typedef void (*ObjFuncs)(omObjData *); - typedef struct unkDominationData7 { /* 0x00 */ u32 unk_00; /* 0x04 */ s32 unk_04; diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index d0f693ea..370848c4 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -449,15 +449,15 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) else { temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16) { + if (temp_r31->unk00) { temp_r31->unk34.x += temp_r31->unk08.x; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z; temp_r31->unk2C += temp_r31->unk14.x; temp_r31->unk14.y -= temp_r31->unk14.z; temp_r31->unk40.a = temp_r31->unk14.y; - if (--temp_r31->unk00_s16 == 0) { - temp_r31->unk00_s16 = 0; + if (--temp_r31->unk00 == 0) { + temp_r31->unk00 = 0; temp_r31->unk2C = 0; temp_r31->unk40.a = 0; } @@ -477,10 +477,10 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) if (temp_r30->unk_00) { temp_r31 = temp_r30->unk_48; for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 != 0) { + if (temp_r31->unk00 != 0) { continue; } - temp_r31->unk00_s16 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); + temp_r31->unk00 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); temp_r31->unk34.x = arg1->x; temp_r31->unk34.y = 12000; temp_r31->unk34.z = arg1->z; @@ -491,7 +491,7 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) temp_r31->unk2C = 10; temp_r31->unk40.a = frandmod(127) + 64; temp_r31->unk14.y = temp_r31->unk40.a; - temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00_s16); + temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00); temp_f31 = frandmod(1000) * (1.0f / 1000.0f); temp_r31->unk40.r = (temp_f31 * 55) + 200; temp_r31->unk40.g = (temp_f31 * 50) + 205; @@ -549,7 +549,7 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) else { temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 == 0) { continue; } sp8.x = sind(CRot.y) * cosd(CRot.x); @@ -649,7 +649,7 @@ void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) temp_r30 = particle->unk_48; temp_f30 = 0; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { - if (temp_r30->unk00_s16 == 0) { + if (temp_r30->unk00 == 0) { continue; } temp_f30 += 1.0f / particle->unk_30; @@ -751,15 +751,15 @@ void fn_1_BDE0(void) Vec sp14; Vec sp8; temp_r31 = lbl_1_bss_A4[0]; - temp_r31->unk00_s16++; - if (temp_r31->unk00_s16 < 339.0f) { + temp_r31->unk00++; + if (temp_r31->unk00 < 339.0f) { return; } - if (temp_r31->unk00_s16 >= 600.0f) { - temp_r31->unk00_s16 = 601; + if (temp_r31->unk00 >= 600.0f) { + temp_r31->unk00 = 601; for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { temp_r31 = lbl_1_bss_A4[temp_r30]; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; temp_r31->unk2C = 0; temp_r31->unk40.a = 0; } diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 38ab51b1..fa04e61a 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -19,6 +19,10 @@ #include "ext_math.h" #include "math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), @@ -1127,7 +1131,7 @@ void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { + if (temp_r31->unk00 == 0 || temp_r31->unk00 != 1) { continue; } temp_r31->unk02++; @@ -1163,7 +1167,7 @@ void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2) if (temp_r29->unk_00 != 0) { temp_r31 = temp_r29->unk_48; for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16) { + if (temp_r31->unk00) { continue; } temp_r31->unk00 = 1; diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index 817ec9e3..a7db6c04 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -1332,8 +1332,8 @@ void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31->unk40.a = temp_r29; } - temp_r31->unk00_s16--; - if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk00--; + if (temp_r31->unk00 <= 0) { temp_r31->unk2C = 0; } } @@ -1501,8 +1501,8 @@ void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31->unk40.a = temp_r28; } - temp_r31->unk00_s16--; - if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk00--; + if (temp_r31->unk00 <= 0) { temp_r31->unk2C = 0; } } diff --git a/src/REL/m408Dll/stage.c b/src/REL/m408Dll/stage.c index 06fc40fb..71b8bafd 100644 --- a/src/REL/m408Dll/stage.c +++ b/src/REL/m408Dll/stage.c @@ -413,7 +413,7 @@ s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2) } temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); temp_r29->unk_1C = temp_r30; - temp_r30->unk00_s16 = temp_r28; + temp_r30->unk00 = temp_r28; temp_r30->unk02 = 0; for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { // Ugly expression to match store without new type @@ -449,7 +449,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) for (temp_r28 = 0; temp_r28 < 100; temp_r28++) { temp_r31 = particle->unk_48; for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) { - if (!temp_r31->unk00_s16) { + if (!temp_r31->unk00) { break; } } @@ -472,13 +472,13 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0; temp_r31->unk2C *= 0.1f; temp_r31->unk40.a = 255; - temp_r31->unk00_s16 = 30; + temp_r31->unk00 = 30; } break; } temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 == 0) { continue; } temp_f30 = temp_r31->unk14.x; @@ -493,7 +493,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.y += 0.1f; if (temp_r31->unk40.a < 2) { temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; particle->unk_00++; } } @@ -566,7 +566,7 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) temp_f30 = 360.0f / particle->unk_30; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk00 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768))); temp_r31->unk20 = temp_r26; @@ -598,15 +598,15 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 4; - if (temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; + temp_r31->unk00 += 4; + if (temp_r31->unk00 >= 360) { + temp_r31->unk00 -= 360; } temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.z = temp_r31->unk14.z; temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180; - temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0); } break; } @@ -627,7 +627,7 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) case 0: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = fn_1_11670() % 360; + temp_r31->unk00 = fn_1_11670() % 360; temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r27 = fn_1_11670() % 360; temp_r31->unk20 = temp_r27; @@ -653,14 +653,14 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 2; - if (temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; + temp_r31->unk00 += 2; + if (temp_r31->unk00 >= 360) { + temp_r31->unk00 -= 360; } temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0); } break; } @@ -718,7 +718,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) case 0: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = temp_r31->unk02 = 0; + temp_r31->unk00 = temp_r31->unk02 = 0; } temp_r29->unk_02++; break; @@ -726,8 +726,8 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16) { - temp_r31->unk00_s16--; + if (temp_r31->unk00) { + temp_r31->unk00--; continue; } if (temp_r31->unk02 == 0) { @@ -739,7 +739,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; temp_r31->unk40.b = 160; temp_r31->unk2C = 0; - temp_r31->unk00_s16 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk00 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk02 = 60; } temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3); diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index 021bc823..76fbe60a 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -4,11 +4,12 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_BF88(s16 arg0, s16 arg1) { +void fn_1_BF88(s16 arg0, s16 arg1) +{ s32 var_r31; s32 var_r31_2; - unkStruct8* var_r29; - unkStruct9Sub* var_r30; + unkStruct8 *var_r29; + unkStruct9Sub *var_r30; lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98); Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6); @@ -18,26 +19,27 @@ void fn_1_BF88(s16 arg0, s16 arg1) { lbl_1_bss_F0.unk2 = arg1; var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; } - + lbl_1_bss_F0.unk6 = lbl_1_bss_F0.unk8 = lbl_1_bss_F0.unkA = 0; } -void fn_1_C0C0(void) { +void fn_1_C0C0(void) +{ s32 var_r31; for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk0; var_r31++) { fn_1_DDB8(var_r31); } - + for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk2; var_r31++) { fn_1_E228(var_r31); } @@ -48,7 +50,8 @@ void fn_1_C0C0(void) { extern u8 texMtxTbl[]; -void fn_1_C164(unkStruct8* arg0) { +void fn_1_C164(unkStruct8 *arg0) +{ ModelData spEC; Mtx spBC; Mtx sp8C; @@ -59,27 +62,27 @@ void fn_1_C164(unkStruct8* arg0) { GXColorSrc var_r25; s32 var_r26; s16 temp_r23; - unkStruct9Sub* temp_r28; + unkStruct9Sub *temp_r28; s16 var_r27; s16 var_r30; s32 var_r24; s32 var_r22; s32 var_r21; s32 var_r20; - unkStruct8Sub* var_r31; + unkStruct8Sub *var_r31; mtxRot(sp2C, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); - PSMTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, sp8C); + MTXConcat(Hu3DCameraMtx, sp5C, sp8C); var_r30 = 0; var_r27 = 0; sp8 = 0; - + for (var_r26 = GX_TEXMAP0; var_r26 < arg0->unk4; var_r26++) { temp_r28 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; - PSMTXRotRad(temp_r28->unk18, 0x5A, 0.0f); + MTXRotRad(temp_r28->unk18, 0x5A, 0.0f); mtxTransCat(temp_r28->unk18, temp_r28->unkC.x, temp_r28->unkC.y, temp_r28->unkC.z); switch (temp_r28->unk4) { case 0: @@ -91,11 +94,13 @@ void fn_1_C164(unkStruct8* arg0) { if ((temp_r28->unk0->bmp->dataFmt == 7) || (temp_r28->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r28->unk48); GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp28.a = temp_r28->unk48.a; GXSetTevColor(GX_TEVREG2, sp28); GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -150,39 +155,40 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumTevStages((s32)var_r30); GXSetNumTexGens((s32)var_r27); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { case 0: mtxRot(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXIdentity(sp5C); + MTXIdentity(sp5C); HmfInverseMtxF3X3(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, sp2C, sp2C); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXConcat(sp5C, sp2C, sp2C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, spBC); + MTXConcat(Hu3DCameraMtx, sp5C, spBC); break; case 1: - PSMTXCopy(sp8C, sp2C); + MTXCopy(sp8C, sp2C); mtxRotCat(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXCopy(sp5C, spBC); + MTXCopy(sp5C, spBC); break; } GXLoadPosMtxImm(spBC, 0); - PSMTXInverse(spBC, sp5C); - PSMTXTranspose(sp5C, sp2C); + MTXInverse(spBC, sp5C); + MTXTranspose(sp5C, sp2C); GXLoadNrmMtxImm(sp2C, 0); GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk4C); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk50); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); } spEC.attr = 0; @@ -190,7 +196,8 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk31) { @@ -206,36 +213,37 @@ void fn_1_C164(unkStruct8* arg0) { } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, var_r31->unk40, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); for (var_r26 = 0; var_r26 < var_r31->unk32; var_r26++) { GXSetVtxDesc(var_r26 + GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, var_r31->unk48, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } } -void fn_1_CB98(ModelData* model, Mtx matrix) { +void fn_1_CB98(ModelData *model, Mtx matrix) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = lbl_1_bss_F0.unk10; GXLoadPosMtxImm(matrix, 0); - PSMTXInverse(matrix, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(matrix, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_F0.unk0; var_r30++, var_r31++) { if ((var_r31->unk8 == 0) || ((var_r31->unk8 & 2) == 0) || ((var_r31->unk8 & 4) != 0)) { continue; @@ -244,28 +252,33 @@ void fn_1_CB98(ModelData* model, Mtx matrix) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_D430(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_C164(var_r31); } } -unkStruct8* fn_1_CCB0(s16 idx) { +unkStruct8 *fn_1_CCB0(s16 idx) +{ return &lbl_1_bss_F0.unk10[idx]; } -unkStruct8Sub* fn_1_CCCC(s16 arg0, s16 arg1) { +unkStruct8Sub *fn_1_CCCC(s16 arg0, s16 arg1) +{ return &lbl_1_bss_F0.unk10[arg0].unk3C[arg1]; } -void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_CCF8(unkStruct11 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct11* var_r31; - + unkStruct11 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -282,13 +295,14 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CE7C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -298,13 +312,14 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_CF1C(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -315,12 +330,13 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CFC4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -328,10 +344,11 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_D050(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -343,31 +360,22 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_D0E8(unkStruct8Sub* arg0) { - Vec sp18[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor sp8[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; +void fn_1_D0E8(unkStruct8Sub *arg0) +{ + Vec sp18[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor sp8[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; s32 var_r26; s32 var_r25; - void* temp_r3_3; - + void *temp_r3_3; + if (arg0->unk40 != NULL) { HuMemDirectFree(arg0->unk40); } - fn_1_CE7C((Vec**)&arg0->unk40, 1, &sp18[0]); + fn_1_CE7C((Vec **)&arg0->unk40, 1, &sp18[0]); if (arg0->unk44 != NULL) { HuMemDirectFree(arg0->unk44); } - fn_1_CF1C((GXColor**)&arg0->unk44, 1, &sp8[0]); + fn_1_CF1C((GXColor **)&arg0->unk44, 1, &sp8[0]); if (arg0->unk48 != NULL) { HuMemDirectFree(arg0->unk48); } @@ -383,12 +391,12 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { DCFlushRange(arg0->unk3C, 0x1000); GXBeginDisplayList(temp_r3_3, 0x1000); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r26 = 0; var_r26 < 4; var_r26++) { GXPosition1x16(var_r26); GXColor1x16(0); GXNormal1x16(var_r26); - + for (var_r25 = 0; var_r25 < arg0->unk32; var_r25++) { GXTexCoord1x16(var_r26); } @@ -396,23 +404,25 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_D430(unkStruct8* arg0) { +void fn_1_D430(unkStruct8 *arg0) +{ s32 var_r25; s32 var_r26; s32 var_r27; - unkStruct8Sub* var_r28; - unkStruct12* var_r31; - unkStruct9Sub* temp_r30; + unkStruct8Sub *var_r28; + unkStruct12 *var_r31; + unkStruct9Sub *temp_r30; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk32; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; var_r31->unk8 &= ~4; @@ -436,30 +446,37 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0--; - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = (var_r31->unk8 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = ((var_r31->unk8 & 0xF0) | 1); var_r31->unk0 = 1U; - } else { + } + else { var_r31->unk0 = (temp_r30->unk4C - 1); } - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else { + } + else { var_r31->unk8 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -483,11 +500,13 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0U; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_DDB8(arg0->unk0); } var_r27++; @@ -506,21 +525,23 @@ void fn_1_D430(unkStruct8* arg0) { } } -s16 fn_1_DA48(u8 arg0, u8 arg1) { +s16 fn_1_DA48(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkStruct8* var_r30; - unkStruct8Sub* var_r31; + unkStruct8 *var_r30; + unkStruct8Sub *var_r31; var_r30 = &lbl_1_bss_F0.unk10[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk0; var_r29++, var_r30++) { - if (var_r30->unk8 == 0) break; - + if (var_r30->unk8 == 0) + break; } - - if (var_r29 == lbl_1_bss_F0.unk0) return 0; - + + if (var_r29 == lbl_1_bss_F0.unk0) + return 0; + var_r30->unk0 = var_r29; var_r30->unk8 = 1; var_r30->unk30 = NULL; @@ -534,14 +555,14 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f; var_r30->unk54.x = var_r30->unk54.y = var_r30->unk54.z = 0.0f; var_r30->unk48.x = var_r30->unk48.y = var_r30->unk48.z = 0.0f; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r30->unk60[var_r29] = 0; } for (var_r29 = 0; var_r29 < arg1; var_r29++) { var_r30->unk34[var_r29] = 0; } - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r31++) { var_r31->unk34 = 1; var_r31->unk32 = arg1; @@ -552,7 +573,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF; var_r31->unk50.a = 0xFF; var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM); - + for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0; var_r31->unk54[var_r28].unk4 = NULL; @@ -564,7 +585,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk18.x = var_r31->unk18.y = var_r31->unk18.z = 1.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk58.x = var_r31->unk58.y = var_r31->unk58.z = 0.0f; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r31->unk70[var_r28] = 0; } @@ -575,17 +596,18 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { return var_r30->unk0; } -void fn_1_DDB8(s16 arg0) { - unkStruct12* var_r28; +void fn_1_DDB8(s16 arg0) +{ + unkStruct12 *var_r28; s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; if (temp_r30->unk8 != 0) { var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { if (var_r31->unk40 != NULL) { HuMemDirectFree(var_r31->unk40); @@ -603,7 +625,7 @@ void fn_1_DDB8(s16 arg0) { HuMemDirectFree(var_r28->unk4); HuMemDirectFree(var_r31->unk54); } - + for (var_r29 = 0; var_r29 < temp_r30->unk4; var_r29++) { fn_1_E228(temp_r30->unk34[var_r29]); } @@ -615,32 +637,36 @@ void fn_1_DDB8(s16 arg0) { } } -void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_F0.unk6 = arg0; lbl_1_bss_F0.unk8 = arg1; lbl_1_bss_F0.unkA = arg2; } -s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { - AnimData* temp_r30; +s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *temp_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkStruct9Sub* var_r31; + unkStruct9Sub *var_r31; var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) break; + if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) + break; } if (var_r29 < lbl_1_bss_F0.unk2) { var_r31->unk6++; return var_r29; } var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if (var_r31->unk6 == 0) break; + if (var_r31->unk6 == 0) + break; } var_r31->unk8 = arg0; var_r31->unk6 = 1; @@ -649,7 +675,8 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { arg1 = temp_r30->bmp->sizeX; arg2 = temp_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { + } + else { var_f31 = arg1 / (f32)temp_r30->bmp->sizeX; var_f30 = arg2 / (f32)temp_r30->bmp->sizeY; } @@ -664,14 +691,15 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { var_r31->unk4C = (temp_r30->bmp->sizeY / arg2); var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_E228(s16 arg0) { - unkStruct9Sub* temp_r31; - +void fn_1_E228(s16 arg0) +{ + unkStruct9Sub *temp_r31; + temp_r31 = &lbl_1_bss_F0.unkC[arg0]; if (temp_r31->unk8 != 0) { if (temp_r31->unk6 != 0) { @@ -684,17 +712,18 @@ void fn_1_E228(s16 arg0) { } } -s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { +s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) +{ f32 temp_f31; f32 temp_f30; s32 var_r26; s32 var_r25; s32 var_r24; - unkStruct12* temp_r31; - unkStruct8* temp_r27; - unkStruct8Sub* var_r28; - unkStruct9Sub* temp_r30; - unkStruct11* var_r29; + unkStruct12 *temp_r31; + unkStruct8 *temp_r27; + unkStruct8Sub *var_r28; + unkStruct9Sub *temp_r30; + unkStruct11 *var_r29; if (arg0 == 0) { return 0; @@ -708,7 +737,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_r27->unk34[arg1] = var_r24; temp_r30 = &lbl_1_bss_F0.unkC[var_r24]; var_r28 = temp_r27->unk3C; - + for (var_r26 = 0; var_r26 < temp_r27->unk2; var_r26++, var_r28++) { if (arg1 == 0) { if (var_r28->unk40) { @@ -717,7 +746,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); - + for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); var_r29->unk0.y = (0.5f * temp_f30); @@ -757,15 +786,17 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { return 1; } -s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) { +s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) +{ s32 var_r31; - + var_r31 = fn_1_E2A8(arg0, arg1, arg2, 0, 0); return var_r31; } -void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -775,9 +806,10 @@ void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -790,15 +822,16 @@ void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x = arg8; var_r31->unk0.y = arg9; @@ -807,8 +840,9 @@ void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -818,9 +852,10 @@ void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -833,15 +868,16 @@ void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -850,8 +886,9 @@ void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -861,9 +898,10 @@ void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -876,15 +914,16 @@ void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unkC.x = arg8; var_r31->unkC.y = arg9; @@ -893,8 +932,9 @@ void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -904,9 +944,10 @@ void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -919,15 +960,16 @@ void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk18.x = arg8; var_r31->unk18.y = arg9; @@ -936,8 +978,9 @@ void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_ED00(s16 arg0, s32 arg1) { - unkStruct8* temp_r31; +void fn_1_ED00(s16 arg0, s32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -945,9 +988,10 @@ void fn_1_ED00(s16 arg0, s32 arg1) { } } -void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -958,23 +1002,25 @@ void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_EDB4(s16 arg0, s32 arg1) { +void fn_1_EDB4(s16 arg0, s32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_EE24(s16 arg0, u32 arg1) { - unkStruct8* temp_r31; +void fn_1_EE24(s16 arg0, u32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -982,9 +1028,10 @@ void fn_1_EE24(s16 arg0, u32 arg1) { } } -void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -995,23 +1042,25 @@ void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_EED8(s16 arg0, u32 arg1) { +void fn_1_EED8(s16 arg0, u32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 &= ~arg1; } } } -s32 fn_1_EF48(s16 arg0, s32 arg1) { - unkStruct8* var_r31; +s32 fn_1_EF48(s16 arg0, s32 arg1) +{ + unkStruct8 *var_r31; if (arg0 == 0) { return 0; @@ -1024,26 +1073,31 @@ s32 fn_1_EF48(s16 arg0, s32 arg1) { return 0; } -s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8Sub* var_r30; - unkStruct8* temp_r31; +s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8Sub *var_r30; + unkStruct8 *temp_r31; + + if (arg0 == 0) + return; - if (arg0 == 0) return; - temp_r31 = &lbl_1_bss_F0.unk10[arg0]; - if (temp_r31->unk2 <= arg1) return; - + if (temp_r31->unk2 <= arg1) + return; + var_r30 = &temp_r31->unk3C[arg1]; if ((var_r30->unk34 & arg2) != 0) { return 1; - } else { + } + else { return 0; } } -void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -1057,15 +1111,16 @@ void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1075,9 +1130,10 @@ void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1088,9 +1144,10 @@ void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1101,17 +1158,18 @@ void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F1F4(s16 arg0, u8 arg1) { +void fn_1_F1F4(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkStruct8* temp_r29; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r29; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r29 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk32; var_r30++) { var_r31->unk54[var_r30].unk8 = arg1; @@ -1120,9 +1178,10 @@ void fn_1_F1F4(s16 arg0, u8 arg1) { } } -void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1133,9 +1192,10 @@ void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1146,16 +1206,17 @@ void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_F370(s16 arg0, f32 arg8) { - unkStruct8* temp_r31; +void fn_1_F370(s16 arg0, f32 arg8) +{ + unkStruct8 *temp_r31; s32 var_r29; s32 var_r30; - unkStruct8Sub* volatile sp8; + unkStruct8Sub *volatile sp8; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; sp8 = &temp_r31->unk3C[0]; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk32; var_r30++) { sp8->unk54[var_r30].unkC = arg8; @@ -1164,9 +1225,10 @@ void fn_1_F370(s16 arg0, f32 arg8) { } } -void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1177,9 +1239,10 @@ void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1190,10 +1253,11 @@ void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F4F0(s16 arg0, u8 arg1) { - unkStruct8Sub* volatile sp8; +void fn_1_F4F0(s16 arg0, u8 arg1) +{ + unkStruct8Sub *volatile sp8; s32 var_r29; - unkStruct8* temp_r31; + unkStruct8 *temp_r31; s32 var_r30; if (arg0 != 0) { diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 5071127d..70955a13 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -132,7 +132,7 @@ s8 fn_1_524(void) var_r30 = 1; } var_f30 = lbl_1_bss_2 / 300.0f; - temp_f31 = (sin((M_PI * (90.0f * var_f30)) / 180.0) * sin((M_PI * (90.0f * var_f30)) / 180.0)); + temp_f31 = sind(90.0f * var_f30) * sind(90.0f * var_f30); CZoom = fn_1_4120(var_r31[0].zoom, var_r31[1].zoom, var_r31[2].zoom, temp_f31); Center.x = fn_1_4120(var_r31[0].center.x, var_r31[1].center.x, var_r31[2].center.x, temp_f31); Center.y = fn_1_4120(var_r31[0].center.y, var_r31[1].center.y, var_r31[2].center.y, temp_f31); @@ -157,8 +157,8 @@ s8 fn_1_524(void) Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkC, -0.0001f - (0.005f * temp_f31), 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkE, -0.0002f - (0.005f * temp_f31), 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unk10, -0.0003f - (0.005f * temp_f31), 0.0f, 0.0f); - sp8.x = -(sin((M_PI * CRot.y) / 180.0) * cosd(CRot.x)); - sp8.y = sin((M_PI * CRot.x) / 180.0); + sp8.x = -(sind(CRot.y) * cosd(CRot.x)); + sp8.y = sind(CRot.x); sp8.z = -(cosd(CRot.y) * cosd(CRot.x)); HuAudFXListnerUpdate(&Hu3DCamera->pos, &sp8); return var_r30; @@ -178,7 +178,7 @@ s8 fn_1_B80(void) var_r30 = 1; } temp_f30 = lbl_1_bss_4 / 60.0f; - temp_f31 = (sin((M_PI * (90.0f * temp_f30)) / 180.0) * sin((M_PI * (90.0f * temp_f30)) / 180.0)); + temp_f31 = sind(90.0f * temp_f30) * sind(90.0f * temp_f30); CZoom = var_r31[0].zoom + (temp_f31 * (var_r31[1].zoom - var_r31[0].zoom)); Center.x = var_r31[0].center.x + (temp_f31 * (var_r31[1].center.x - var_r31[0].center.x)); Center.y = var_r31[0].center.y + (temp_f31 * (var_r31[1].center.y - var_r31[0].center.y)); @@ -300,20 +300,20 @@ s8 fn_1_10E8(omObjData *object) else if (lbl_1_bss_C > 0.2f) { lbl_1_bss_A = 1; } - var_f31 = sin((M_PI * (90.0f * lbl_1_bss_C)) / 180.0); + var_f31 = sind(90.0f * lbl_1_bss_C); var_f27 = 1520.0f; var_f26 = -1030.0f; temp_f30 = var_f27 + (var_f31 * (var_f26 - var_f27)); Hu3DModelPosSet(lbl_1_bss_DC->model[4], temp_f30, 0.0f, -1200.0f); Hu3DModelPosSet(lbl_1_bss_DC->model[1], temp_f30, 0.0f, -1200.0f); - if ((lbl_1_data_BC + 0x10000) != 0xFFFF) { + if (lbl_1_data_BC != ~0) { sp8.x = temp_f30; sp8.y = 0.0f; sp8.z = -1200.0f; HuAudFXEmiterUpDate(lbl_1_data_BC, &sp8); } var_f31 = 1.2f * lbl_1_bss_C; - if ((var_f31 >= 1.0f) && ((lbl_1_data_BC + 0x10000) != 0xFFFF)) { + if ((var_f31 >= 1.0f) && lbl_1_data_BC != ~0) { HuAudFXEmiterPlay(0x555, &sp8); sp8.x += 200.0f; HuAudFXEmiterPlay(0x55E, &sp8); @@ -324,7 +324,7 @@ s8 fn_1_10E8(omObjData *object) var_f31 = 0.0f; } else { - var_f31 = sin((M_PI * (90.0f + (90.0f * var_f31))) / 180.0); + var_f31 = sind(90.0f + 90.0f * var_f31); } Hu3DMotionSpeedSet(lbl_1_bss_DC->model[4], 2.0f * var_f31); if (lbl_1_bss_C > 0.5f) { @@ -455,7 +455,7 @@ void fn_1_2098(omObjData *object) Hu3DModelAttrSet(lbl_1_bss_DC->model[4], HU3D_ATTR_DISPOFF); lbl_1_bss_18 = 1.0f; } - var_f31 = sin((M_PI * (90.0f * lbl_1_bss_18)) / 180.0); + var_f31 = sind(90.0f * lbl_1_bss_18); var_f29 = -1030.0f; var_f28 = -1880.0f; var_f30 = var_f29 + (var_f31 * (var_f28 - var_f29)); @@ -684,7 +684,7 @@ void fn_1_2DCC(omObjData *object) Hu3DModelAttrReset(var_r31->unk6, HU3D_ATTR_DISPOFF); } var_r31->unk10 += var_f30; - var_f31 = sin((M_PI * (90.0f * var_r31->unk10)) / 180.0); + var_f31 = sind(90.0f * var_r31->unk10); if (var_r31->unk10 >= 1.0f) { var_f31 = 1.0f; var_r31->unk10 = var_f31; @@ -728,7 +728,7 @@ void fn_1_2DCC(omObjData *object) } Hu3DModelPosSet(var_r31->unk6, 70.0f + temp_r30->pos.x, 290.0f, -1200.0f); Hu3DData[var_r31->unk4].pos.x = temp_r30->pos.x; - var_f31 = (0.800000011920929 * sin((M_PI * (180.0f * var_r31->unk10)) / 180.0)); + var_f31 = 0.8f * sind(180.0f * var_r31->unk10); Hu3DMotionSpeedSet(var_r31->unk2, var_f31); } } @@ -948,7 +948,7 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) return; temp_f31 = (((rand8() << 8) | rand8()) % 361); - var_r31->unk0.x = (2.0 + (3.0 * sin((M_PI * temp_f31) / 180.0))); + var_r31->unk0.x = 2.0 + (3.0 * sind(temp_f31)); var_r31->unk0.y = (0.1f * ((((rand8() << 8) | rand8()) % 31) + 40)); var_r31->unk0.z = (3.5 * cosd(temp_f31)); var_r31->unk28 = 0; @@ -1012,7 +1012,7 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) temp_f31 = ((((rand8() << 8) | rand8()) % 81) - 40); temp_r31->unk0.x = (13.0 * cosd(temp_f31)); temp_r31->unk0.y = 0.1f * ((((rand8() << 8) | rand8()) % 21) + 20); - temp_r31->unk0.z = (9.0 * sin((M_PI * temp_f31) / 180.0)); + temp_r31->unk0.z = (9.0 * sind(temp_f31)); temp_r31->unkC.x = (0.05f * temp_r31->unk0.x); temp_r31->unkC.z = (0.05f * temp_r31->unk0.z); temp_r31->unk18 = 500.0f; @@ -1376,13 +1376,13 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r30->unk1C, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk1C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8); fn_1_40A4(arg1, sp128); PSMTXReorder(sp128, spF8); @@ -1416,9 +1416,9 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) } else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk40, var_r31++); VECAdd(&sp14, &var_r29->unk40, var_r31++); VECAdd(&sp20, &var_r29->unk40, var_r31++); diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index fcf6a8c1..9157deeb 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -7,7 +7,11 @@ #include "game/hsfmotion.h" #include "game/pad.h" #include "game/sprite.h" -#include "math.h" +#include "ext_math.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif // bss omObjData *lbl_1_bss_3A0[4]; @@ -254,8 +258,8 @@ void fn_1_7344(omObjData *arg0) lbl_1_bss_104 = temp_r31->unk0 + 1; } if (temp_r31->unk60 == 0) { - temp_f29 = (180.0 * (atan2((temp_r30->unk0.x - temp_r31->unk24.x), (temp_r30->unk0.z - temp_r31->unk24.z)) / M_PI)); - temp_f30 = (180.0 * (atan2((temp_r31->unk24.y - temp_r30->unk0.y), (temp_r31->unk24.z - temp_r30->unk0.z)) / M_PI)); + temp_f29 = atan2d(temp_r30->unk0.x - temp_r31->unk24.x, temp_r30->unk0.z - temp_r31->unk24.z); + temp_f30 = atan2d(temp_r31->unk24.y - temp_r30->unk0.y, temp_r31->unk24.z - temp_r30->unk0.z); temp_f30 *= (1.0f - (0.015f * ABS(temp_f30))); temp_r31->unk3C.x = fn_1_AD40(temp_r31->unk3C.x, temp_f30, 0.5f); temp_r31->unk3C.y = fn_1_AD40(temp_r31->unk3C.y, temp_f29, 0.5f); @@ -524,7 +528,7 @@ void fn_1_8838(unkStruct8 *arg0) if (temp_r31->unk74 > 90.0f) { temp_r31->unk74 = 90.0f; } - temp_f31 = sin((M_PI * temp_r31->unk74) / 180.0); + temp_f31 = sind(temp_r31->unk74); temp_f30 = cosd(temp_r31->unk74); sp18.x = temp_r30->unk0.x - temp_r31->unk58.x; sp18.y = temp_r30->unk0.y - temp_r31->unk58.y; @@ -558,7 +562,7 @@ void fn_1_8838(unkStruct8 *arg0) if (temp_r31->unk74 > 90.0f) { temp_r31->unk74 = 90.0f; } - temp_f31 = sin((M_PI * temp_r31->unk74) / 180.0); + temp_f31 = sind(temp_r31->unk74); sp18.x = temp_r29->unkC.x - temp_r31->unk58.x; sp18.y = temp_r29->unkC.y - temp_r31->unk58.y; sp18.z = temp_r29->unkC.z - temp_r31->unk58.z; @@ -925,10 +929,10 @@ void fn_1_962C(omObjData *arg0) fn_1_A584(var_r31); Hu3DModelPosSet(var_r31->unk0, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - var_f31 = sin((var_r31->unk4C * M_PI) / 180.0); + var_f31 = sind(var_r31->unk4C); var_r31->unk4C += 3.0f; Hu3DModelRotSet( - var_r31->unk0, 8.0 * sin((var_r31->unk4C * 0.3 * M_PI) / 180.0), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); + var_r31->unk0, 8.0 * sind(var_r31->unk4C * 0.3), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); } if (lbl_1_bss_108 == 2 && var_r27 >= arg0->work[0]) { @@ -977,7 +981,7 @@ s32 fn_1_A584(unkStruct10 *arg0) arg0->unkC.x += sp14.x; arg0->unkC.y += sp14.y; arg0->unkC.z += sp14.z; - var_f31 = (180.0 * (atan2(sp14.x, sp14.y) / M_PI)); + var_f31 = atan2d(sp14.x, sp14.y); if (var_f31 > 180.0f) { var_f31 -= 360.0f; } @@ -1000,7 +1004,7 @@ s32 fn_1_A584(unkStruct10 *arg0) var_r31->unkC.x += sp8.x * (temp_f29 - temp_f30); var_r31->unkC.y += sp8.y * (temp_f29 - temp_f30); var_r31->unkC.z += sp8.z * (temp_f29 - temp_f30); - var_f31 = (180.0 * (atan2(sp8.x, sp8.y) / M_PI)); + var_f31 = atan2d(sp8.x, sp8.y); if (var_f31 > 180.0f) { var_f31 -= 360.0f; } diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 303236d5..5d9671c5 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -956,9 +956,9 @@ void fn_1_6968(omObjData *object) sp8.z = -var_r31->unk_1C.x; var_f30 = VECMag(&sp8) / 30.000002f; if (var_f30 >= 0.001f) { - PSMTXRotAxisRad(sp14, &sp8, var_f30); + MTXRotAxisRad(sp14, &sp8, var_f30); var_r28 = &Hu3DData[object->model[var_r30]]; - PSMTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); + MTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); } } } @@ -1238,8 +1238,8 @@ s32 fn_1_79F8(s16 arg0, char *arg1, Mtx arg2) var_r30 = var_r31->hsfData; lbl_1_bss_30 = 0; mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp14, sp44, sp44); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); fn_1_7AC4(var_r30->root, sp44, arg1, arg2); return lbl_1_bss_30; @@ -1274,12 +1274,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) var_r31 = &arg0->data.curr; mtxRot(sp12C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp12C, sp15C, sp15C); + MTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp12C, sp15C, sp15C); mtxTransCat(sp15C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp15C, sp15C); + MTXConcat(arg1, sp15C, sp15C); if (!strcmp(arg2, arg0->name)) { - PSMTXCopy(sp15C, arg3); + MTXCopy(sp15C, arg3); lbl_1_bss_30 = 1; } @@ -1288,12 +1288,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r30 = &var_r27->data.curr; mtxRot(spFC, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - PSMTXConcat(spFC, spCC, spCC); + MTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(spFC, spCC, spCC); mtxTransCat(spCC, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSMTXConcat(sp15C, spCC, spCC); + MTXConcat(sp15C, spCC, spCC); if (!strcmp(arg2, var_r27->name)) { - PSMTXCopy(spCC, arg3); + MTXCopy(spCC, arg3); lbl_1_bss_30 = 1; } for (var_r22 = 0; var_r22 < var_r27->data.childrenCount; var_r22++) { @@ -1301,12 +1301,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r29 = &var_r26->data.curr; mtxRot(sp9C, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); - PSMTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); - PSMTXConcat(sp9C, sp6C, sp6C); + MTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp9C, sp6C, sp6C); mtxTransCat(sp6C, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXConcat(spCC, sp6C, sp6C); + MTXConcat(spCC, sp6C, sp6C); if (!strcmp(arg2, var_r26->name)) { - PSMTXCopy(sp6C, arg3); + MTXCopy(sp6C, arg3); lbl_1_bss_30 = 1; } @@ -1315,12 +1315,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r28 = &var_r25->data.curr; mtxRot(sp3C, var_r28->rot.x, var_r28->rot.y, var_r28->rot.z); - PSMTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); - PSMTXConcat(sp3C, spC, spC); + MTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); + MTXConcat(sp3C, spC, spC); mtxTransCat(spC, var_r28->pos.x, var_r28->pos.y, var_r28->pos.z); - PSMTXConcat(sp6C, spC, spC); + MTXConcat(sp6C, spC, spC); if (!strcmp(arg2, var_r25->name)) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); lbl_1_bss_30 = 1; } diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 42506076..e6855848 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -93,7 +93,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp20, &sp8, &sp8); + MTXMultVec(sp20, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 133a5762..3286d2c0 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -11,6 +11,10 @@ #include "REL/m410Dll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + omObjData *lbl_1_bss_74; AnimData *lbl_1_bss_70; s32 lbl_1_bss_60[4]; @@ -141,8 +145,6 @@ void fn_1_7E30(Process *objman) void fn_1_806C(void) { - s32 var_lr; - HuSprAnimKill(lbl_1_bss_70); CharModelKill(-1); } @@ -1075,8 +1077,8 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) DCStoreRange(&sp10, 4); DCStoreRange(&lbl_1_data_294, 32); - PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1086,10 +1088,10 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_70, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); - PSMTXConcat(sp94, Hu3DCameraMtx, sp94); - PSMTXInverse(Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 33, GX_FALSE, 125); @@ -1097,7 +1099,7 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG1, sp10); @@ -1124,17 +1126,17 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) if (var_r31->unk_00) { lbl_1_data_294[var_r31->unk_02].a = 255.0f * var_r31->unk_0C; GXSetTevColor(GX_TEVREG0, lbl_1_data_294[var_r31->unk_02]); - PSMTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); - PSMTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); - PSMTXConcat(spF4, sp124, spF4); - PSMTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); - PSMTXConcat(spF4, spC4, spF4); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + MTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); - PSMTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); + MTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); GXLoadTexMtxImm(sp124, 33, GX_MTX2x4); GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); } diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index d4a6acef..c99ccbca 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -2255,7 +2255,7 @@ void fn_1_7738(void) temp_r28->unk00 = 20.0f + temp_r30->unk00; temp_r28->unk04 = -20.0f + temp_r30->unk04; m411InlineFunc(temp_r31, temp_r30); - HuSprAttrReset(temp_r31->unk0C, 0, 4); + HuSprAttrReset(temp_r31->unk0C, 0, HUSPR_ATTR_DISPOFF); } temp_r30->unk08 = 50.0f; temp_r28->unk08 = temp_r30->unk08 - 5.0f; diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 1cad6746..8f153855 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -81,8 +81,8 @@ void ObjectSetup(void) temp_f29 = lbl_1_bss_268.y; temp_f31 = lbl_1_bss_268.z; lbl_1_bss_774 = sqrtf((temp_f31 * temp_f31) + ((temp_f30 * temp_f30) + (temp_f29 * temp_f29))); - lbl_1_bss_778 = fn_1_1D08((180.0 * (atan2(temp_f30, temp_f31) / M_PI))); - lbl_1_bss_77C = fn_1_1D08((180.0 * (atan2(temp_f29, temp_f31) / M_PI))); + lbl_1_bss_778 = fn_1_1D08(atan2d(temp_f30, temp_f31)); + lbl_1_bss_77C = fn_1_1D08(atan2d(temp_f29, temp_f31)); lbl_1_bss_77C = 50.0f; Hu3DLighInit(); lbl_1_bss_7A0 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFFU, 0xFFU, 0xFFU); @@ -661,7 +661,7 @@ void fn_1_2064(void) for (var_r30 = 0; var_r30 < 0x17; var_r30++) { temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); - var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18); + var_r27 = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct4)); temp_r26->user_data = var_r27; var_r27->unk0 = temp_r31->unk4; var_r27->unk4 = var_r30; @@ -692,7 +692,7 @@ s32 fn_1_2708(void) if (var_r31 >= 0x20) { var_r31 = -1; } - lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, 0x34); + lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct)); lbl_1_bss_278[var_r31]->unk6 = -1; lbl_1_bss_278[var_r31]->unkA = 0; return var_r31; @@ -1425,7 +1425,6 @@ static inline void PadInline(void) (void)var_f27; } -// fn_1_6814: https://decomp.me/scratch/WQPjD void fn_1_6814(unkStruct3 *arg0) { Vec sp104; diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index ee218503..718bf09c 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -14,6 +14,13 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "string.h" +#include "game/hsfex.h" +#endif + +s32 rand8(void); + typedef struct struct_bss_2A6C StructBss2A6C; typedef struct struct_sp_14C8 StructSp14C8; @@ -781,7 +788,7 @@ void fn_1_19C8(omObjData *object) temp_r26 = (temp_r26 >= 4) ? (temp_r26 - 4) : ((temp_r26 < 0) ? (temp_r26 + 4) : temp_r26); temp_r31->unk74++; if (temp_r31->unk1C == -1) { - s32 sp20C[4] = { 120, 50, 25, 2 }; + s32 sp20C[4] = { 120, 60, 25, 2 }; s32 sp200[3] = { 60, 45, 25 }; temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90 + 1) : 0; temp_r31->unk8C = temp_r31->unk48[0]->unk18; @@ -1466,7 +1473,6 @@ void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1) } } -// decomp.me link is https://decomp.me/scratch/PbkiW void fn_1_8C10(omObjData *object) { s32 temp_r31; @@ -1672,7 +1678,7 @@ void fn_1_8C10(omObjData *object) temp_f26 = lbl_1_bss_B8.unkC.x; temp_f27 *= lbl_1_bss_B8.unk4 * 2; temp_f26 *= lbl_1_bss_B8.unk4 * 2; - lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; + lbl_1_bss_B8.unk0 = !lbl_1_bss_B8.unk0; lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4 - 1 > 0) ? lbl_1_bss_B8.unk4 - 1 : 0); Hu3DCameraPosSet(1, temp_f27, 37.139069 + temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f + temp_f26, 0); } diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 3341eb5b..8ca555e6 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1005,12 +1005,12 @@ void fn_1_3D48(s32 arg0, s32 arg1) var_r29->user_data = var_r31; var_r31->unk_5C = var_r30; } - HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, 4); - HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, 4); + HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, 4); - HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, 4); + HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, HUSPR_ATTR_DISPOFF); } } } @@ -1156,9 +1156,9 @@ void fn_1_42AC(void) var_f23 = -200.0 * (cos(0.0) * cosd(lbl_1_bss_920[var_r27])); } else { - var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.3490658503988659)); - var_f26 = 150.0 + (-200.0 * sin(-0.3490658503988659)); - var_f23 = -200.0 * (cos(-0.3490658503988659) * cosd(lbl_1_bss_920[var_r27])); + var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cosd(20)); + var_f26 = 150.0 + -200.0 * sind(-20); + var_f23 = -200.0 * (cosd(-20) * cosd(lbl_1_bss_920[var_r27])); } if (!lbl_1_bss_938[var_r30->unk_04]) { var_f26 += 70.0f; @@ -2047,7 +2047,7 @@ void fn_1_79A8(void) var_r28 = &lbl_1_bss_F0[var_r30]; var_r27 = HuPrcChildCreate(fn_1_76F4, 8192, 8192, 0, HuPrcCurrentGet()); var_r27->user_data = var_r28; - HuSprAttrReset(var_r28->unk_2C, 0, 4); + HuSprAttrReset(var_r28->unk_2C, 0, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0, var_f27 = 0.0f; var_r29 < 15; var_r29++) { var_f27 += 0.06666667f; diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 971724b5..2053aed7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -513,8 +513,8 @@ void fn_1_1A60(unkStruct3 *arg0) for (var_r31 = -1; var_r31 < 2; var_r31 += 2) { for (var_r29 = -1; var_r29 < 2; var_r29 += 2) { MTXRotDeg(sp118, 0x59, temp_f30); - PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); - PSMTXConcat(sp118, spE8, spE8); + MTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); + MTXConcat(sp118, spE8, spE8); if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) { spB8[0].x = spE8[0][3]; spB8[0].y = spE8[2][3]; @@ -1604,15 +1604,15 @@ void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) MTXRotDeg(arg0, 0x5A, argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { MTXRotDeg(sp38, 0x58, arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { MTXRotDeg(sp8, 0x59, arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index 45a83c57..6533a2dc 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -4,10 +4,11 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_8780(s16 arg0, s16 arg1) { +void fn_1_8780(s16 arg0, s16 arg1) +{ s32 var_r31; - unkSubStruct2* var_r29; - unkSubStruct3* var_r30; + unkSubStruct2 *var_r29; + unkSubStruct3 *var_r30; lbl_1_bss_36C.unk34 = Hu3DHookFuncCreate(fn_1_95C0); Hu3DModelLayerSet(lbl_1_bss_36C.unk34, 6); @@ -15,11 +16,11 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_36C.unk32 = arg1; lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), MEMORY_DEFAULT_NUM); - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; @@ -27,7 +28,8 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk36 = lbl_1_bss_36C.unk38 = lbl_1_bss_36C.unk3A = 0; } -void fn_1_88B8(unkSubStruct2* arg0) { +void fn_1_88B8(unkSubStruct2 *arg0) +{ ModelData sp120; Mtx spF0; Mtx spC0; @@ -46,8 +48,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { s32 var_r21; s32 var_r20; s32 var_r19; - unkSubStruct3* temp_r26; - unkSubStruct* var_r31; + unkSubStruct3 *temp_r26; + unkSubStruct *var_r31; mtxRot(sp60, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); MTXScale(sp90, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); @@ -57,7 +59,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r29 = 0; var_r28 = 0; sp8 = 0; - + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk4; var_r27++) { if (arg0->unk34[var_r27] != 0) { temp_r26 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r27]]; @@ -73,11 +75,13 @@ void fn_1_88B8(unkSubStruct2* arg0) { if ((temp_r26->unk0->bmp->dataFmt == 7) || (temp_r26->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r26->unk48); GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp2C.a = temp_r26->unk48.a; GXSetTevColor(GX_TEVREG2, sp2C); GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -141,7 +145,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { if (var_r27 == GX_TEXMAP0) { GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); } @@ -153,7 +158,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r28++; if (temp_r26->unk4D != 0) { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 1, 1, 1); - } else { + } + else { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 0, 0, 1); } } @@ -161,7 +167,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumTevStages((s16)var_r29); GXSetNumTexGens((s16)var_r28); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { @@ -169,7 +175,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { mtxRot(sp60, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); if (var_r31->unk31 == 2) { MTXConcat(lbl_1_bss_36C.unk0, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -185,7 +192,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { MTXIdentity(sp90); } MTXConcat(sp90, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -206,7 +214,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(0, GX_LEQUAL, 1); - } else { + } + else { GXSetZMode(1, GX_LEQUAL, 0); } sp120.attr = 0; @@ -214,7 +223,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk32) { @@ -230,71 +240,78 @@ void fn_1_88B8(unkSubStruct2* arg0) { } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, var_r31->unk40, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); - + for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, var_r31->unk48, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } } -void fn_1_95C0(ModelData* arg0, Mtx arg1) { +void fn_1_95C0(ModelData *arg0, Mtx arg1) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkSubStruct2* var_r31; + unkSubStruct2 *var_r31; var_r31 = lbl_1_bss_36C.unk40; GXLoadPosMtxImm(arg1, 0); - PSMTXInverse(arg1, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(arg1, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_36C.unk0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_36C.unk30; var_r30++, var_r31++) { if ((var_r31->unk8 != 0) && ((var_r31->unk8 & 2) != 0) && ((var_r31->unk8 & 4) == 0)) { if ((u8)omPauseChk() == 0) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_9DC8(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_88B8(var_r31); } } } -unkSubStruct2* fn_1_96EC(s16 arg0) { +unkSubStruct2 *fn_1_96EC(s16 arg0) +{ return &lbl_1_bss_36C.unk40[arg0]; } -unkSubStruct* fn_1_9708(s16 arg0, s16 arg1) { +unkSubStruct *fn_1_9708(s16 arg0, s16 arg1) +{ return &lbl_1_bss_36C.unk40[arg0].unk3C[arg1]; } -AnimData** fn_1_9734(s16 arg0) { +AnimData **fn_1_9734(s16 arg0) +{ return &lbl_1_bss_36C.unk3C[arg0].unk0; } -void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_9750(unkStruct6 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct6* var_r31; - + unkStruct6 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -311,13 +328,14 @@ void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_98D4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -327,13 +345,14 @@ void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_9974(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -344,12 +363,13 @@ void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_9A1C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -357,10 +377,11 @@ void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_9AA8(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -372,29 +393,20 @@ void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_9B40(unkSubStruct* arg0) { - void* sp8; +void fn_1_9B40(unkSubStruct *arg0) +{ + void *sp8; s32 var_r29; s32 var_r31; - void* temp_r28; + void *temp_r28; + + Vec sp1C[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor spC[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; - Vec sp1C[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor spC[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; - for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk40[var_r31] = sp1C[var_r31]; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk44[var_r31] = spC[var_r31]; } @@ -405,7 +417,7 @@ void fn_1_9B40(unkSubStruct* arg0) { sp8 = temp_r28; GXBeginDisplayList(temp_r28, 0x100U); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GXPosition1x16(var_r31); GXNormal1x16(0); @@ -417,24 +429,26 @@ void fn_1_9B40(unkSubStruct* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_9DC8(unkSubStruct2* arg0) { +void fn_1_9DC8(unkSubStruct2 *arg0) +{ s32 temp_r0; s32 var_r25; s32 var_r26; s32 var_r27; - unkSubStruct* var_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* var_r31; + unkSubStruct *var_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *var_r31; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk33; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r26]]; var_r31->unk24 &= ~4; @@ -458,30 +472,37 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0--; - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 1; var_r31->unk0 = 1; - } else { + } + else { var_r31->unk0 = temp_r30->unk4C - 1; } - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else { + } + else { var_r31->unk24 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -501,11 +522,13 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_A800(arg0->unk0); } var_r27++; @@ -524,15 +547,16 @@ void fn_1_9DC8(unkSubStruct2* arg0) { } } -s16 fn_1_A2D0(u8 arg0, u8 arg1) { +s16 fn_1_A2D0(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkSubStruct* var_r30; - unkSubStruct2* var_r31; - void* temp_r25; + unkSubStruct *var_r30; + unkSubStruct2 *var_r31; + void *temp_r25; var_r31 = lbl_1_bss_36C.unk40 + 1; - + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk30; var_r29++, var_r31++) { if (var_r31->unk8 == 0) { break; @@ -562,7 +586,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r31->unk70.x = var_r31->unk70.y = var_r31->unk70.z = 0.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk60 = 0; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r31->unk7C[var_r29] = 0; } @@ -575,8 +599,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk30 = 0; var_r30->unk31 = 2; var_r30->unk32 = 0; - - + var_r30->unk4C.r = var_r30->unk4C.g = var_r30->unk4C.b = 0; var_r30->unk4C.a = 0xFF; var_r30->unk50.r = var_r30->unk50.g = var_r30->unk50.b = 0xFF; @@ -587,14 +610,14 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk54[var_r28].unk28 = 1.0f; var_r30->unk54[var_r28].unk2C = 0.0f; } - + var_r30->unk0.x = var_r30->unk0.y = var_r30->unk0.z = 0.0f; var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 1.0f; var_r30->unk68.x = var_r30->unk68.y = var_r30->unk68.z = 0.0f; var_r30->unk5C.x = var_r30->unk5C.y = var_r30->unk5C.z = 0.0f; var_r30->unk58 = 0; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r30->unk74[var_r28] = 0; } @@ -615,7 +638,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { DCFlushRangeNoSync(var_r31->unk4C, var_r31->unk48); var_r30 = var_r31->unk3C; var_r31->unk48 = 0; - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { var_r30->unk3C = var_r31->unk4C + var_r31->unk48; var_r31->unk48 += var_r30->unk38; @@ -626,9 +649,10 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { return var_r31->unk0; } -void fn_1_A800(s16 arg0) { +void fn_1_A800(s16 arg0) +{ s32 var_r30; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -648,7 +672,7 @@ void fn_1_A800(s16 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r30 = 0; var_r30 < temp_r31->unk4; var_r30++) { fn_1_AF48(temp_r31->unk34[var_r30]); } @@ -659,23 +683,25 @@ void fn_1_A800(s16 arg0) { } } -void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_36C.unk36 = arg0; lbl_1_bss_36C.unk38 = arg1; lbl_1_bss_36C.unk3A = arg2; } -s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { - AnimData* var_r30; +s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *var_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkSubStruct3* var_r31; + unkSubStruct3 *var_r31; var_r31 = lbl_1_bss_36C.unk3C + 1; for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk32; var_r29++, var_r31++) { if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) { - break; + break; } } if (var_r29 < lbl_1_bss_36C.unk32) { @@ -694,16 +720,18 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { var_r30 = HuSprAnimMake(arg1, arg2, 2); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); arg1 = arg2 = 0; - } else { + } + else { var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); } if ((arg1 == 0) || (arg2 == 0)) { arg1 = var_r30->bmp->sizeX; arg2 = var_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { - var_f31 = arg1 / (f32) var_r30->bmp->sizeX; - var_f30 = arg2 / (f32) var_r30->bmp->sizeY; + } + else { + var_f31 = arg1 / (f32)var_r30->bmp->sizeX; + var_f30 = arg2 / (f32)var_r30->bmp->sizeY; } var_r31->unk0 = var_r30; var_r31->unk4E = arg1; @@ -723,24 +751,25 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { } var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { +void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) +{ f32 var_f31; f32 var_f30; - AnimData* var_r30; - unkSubStruct3* var_r31; + AnimData *var_r30; + unkSubStruct3 *var_r31; var_r31 = &lbl_1_bss_36C.unk3C[arg0]; HuSprAnimKill(var_r31->unk0); var_r31->unk8 |= 0xFFFF0000; var_r30 = HuSprAnimMake(arg2, arg3, arg1); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); - var_f31 = arg4 / (f32) var_r30->bmp->sizeX; - var_f30 = arg5 / (f32) var_r30->bmp->sizeY; + var_f31 = arg4 / (f32)var_r30->bmp->sizeX; + var_f30 = arg5 / (f32)var_r30->bmp->sizeY; var_r31->unk0 = var_r30; var_r31->unk4E = arg2; var_r31->unk50 = arg3; @@ -755,8 +784,9 @@ void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { var_r31->unk48.a = 0xFF; } -void fn_1_AF48(s16 arg0) { - unkSubStruct3* temp_r31; +void fn_1_AF48(s16 arg0) +{ + unkSubStruct3 *temp_r31; temp_r31 = &lbl_1_bss_36C.unk3C[arg0]; if (temp_r31->unk8 != 0) { @@ -770,7 +800,8 @@ void fn_1_AF48(s16 arg0) { } } -u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { +u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) +{ s32 temp_r3; temp_r3 = fn_1_A94C(arg2, arg3, arg4); @@ -781,14 +812,16 @@ u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { return temp_r3; } -u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { +u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) +{ u8 var_r31; s32 var_r30; u8 var_r29; if ((var_r30 = fn_1_A94C(arg2, 0, 0)) == 0) { var_r31 = 0; - } else { + } + else { fn_1_B0B8(arg0, arg1, var_r30); var_r31 = var_r30; } @@ -796,12 +829,13 @@ u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { return var_r29; } -s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { +s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) +{ s32 var_r27; - unkSubStruct* var_r29; - unkSubStruct2* temp_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* temp_r31; + unkSubStruct *var_r29; + unkSubStruct2 *temp_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *temp_r31; if (arg2 == 0) { return 0; @@ -814,7 +848,7 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { temp_r28->unk34[arg1] = arg2; temp_r30 = &lbl_1_bss_36C.unk3C[arg2]; var_r29 = temp_r28->unk3C; - + for (var_r27 = 0; var_r27 < temp_r28->unk2; var_r27++, var_r29++) { if (arg1 == 0) { var_r29->unk40[0].x = -0.5f * temp_r30->unk4E; @@ -851,13 +885,14 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { return 1; } -void fn_1_B634(s32 arg0) { +void fn_1_B634(s32 arg0) +{ s32 var_r28; s32 var_r27; s16 var_r26; - unkSubStruct2* temp_r31; - unkSubStruct3* temp_r30; - unkSubStruct3* temp_r29; + unkSubStruct2 *temp_r31; + unkSubStruct3 *temp_r30; + unkSubStruct3 *temp_r29; for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk30; var_r28++) { if ((s16)var_r28 != 0) { @@ -878,7 +913,7 @@ void fn_1_B634(s32 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r27 = 0; var_r27 < temp_r31->unk4; var_r27++) { var_r26 = temp_r31->unk34[var_r27]; temp_r29 = &lbl_1_bss_36C.unk3C[var_r26]; @@ -898,7 +933,7 @@ void fn_1_B634(s32 arg0) { } } } - + for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk32; var_r28++) { temp_r30 = &lbl_1_bss_36C.unk3C[(s16)var_r28]; if (temp_r30->unk8 != 0) { @@ -916,8 +951,9 @@ void fn_1_B634(s32 arg0) { Hu3DModelKill(lbl_1_bss_36C.unk34); } -void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -930,9 +966,10 @@ void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -945,10 +982,11 @@ void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -961,8 +999,9 @@ void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -975,9 +1014,10 @@ void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -990,15 +1030,16 @@ void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -1007,8 +1048,9 @@ void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1021,9 +1063,10 @@ void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1036,10 +1079,11 @@ void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1052,8 +1096,9 @@ void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1066,9 +1111,10 @@ void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1081,10 +1127,11 @@ void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1097,8 +1144,9 @@ void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BDEC(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BDEC(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1106,9 +1154,10 @@ void fn_1_BDEC(s16 arg0, s32 arg1) { } } -void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1119,23 +1168,25 @@ void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_BEA0(s16 arg0, s32 arg1) { +void fn_1_BEA0(s16 arg0, s32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_BF10(s16 arg0, u32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BF10(s16 arg0, u32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1143,9 +1194,10 @@ void fn_1_BF10(s16 arg0, u32 arg1) { } } -void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1156,10 +1208,11 @@ void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_BFC4(s16 arg0, u32 arg1) { +void fn_1_BFC4(s16 arg0, u32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1171,9 +1224,10 @@ void fn_1_BFC4(s16 arg0, u32 arg1) { } } -s32 fn_1_C034(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; - +s32 fn_1_C034(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; + if (arg0 == 0) { return 0; } @@ -1185,9 +1239,10 @@ s32 fn_1_C034(s16 arg0, s32 arg1) { return 0; } -s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1195,7 +1250,8 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { temp_r30 = &temp_r31->unk3C[arg1]; if ((temp_r30->unk34 & arg2) != 0) { arg0 = 1; - } else { + } + else { arg0 = 0; } } @@ -1203,9 +1259,10 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { return arg0; } -void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1219,15 +1276,16 @@ void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1237,9 +1295,10 @@ void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1250,24 +1309,26 @@ void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C264(s16 arg0, u8 arg1) { +void fn_1_C264(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; var_r30 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++, var_r30++) { var_r30->unk30 = arg1; } } } -void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1278,10 +1339,11 @@ void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C338(s16 arg0, u8 arg1) { +void fn_1_C338(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1293,9 +1355,10 @@ void fn_1_C338(s16 arg0, u8 arg1) { } } -void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1306,9 +1369,10 @@ void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1319,17 +1383,18 @@ void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_C488(s16 arg0, u8 arg1) { +void fn_1_C488(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkSubStruct* var_r31; - unkSubStruct2* temp_r29; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r29; if (arg0 != 0) { temp_r29 = &lbl_1_bss_36C.unk40[arg0]; - var_r31 = (unkSubStruct*)&temp_r29->unk3C; //! BAD WHY + var_r31 = (unkSubStruct *)&temp_r29->unk3C; //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk33; var_r30++) { var_r31->unk54[var_r30].unk24 = arg1; @@ -1338,9 +1403,10 @@ void fn_1_C488(s16 arg0, u8 arg1) { } } -void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1351,9 +1417,10 @@ void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1364,16 +1431,17 @@ void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_C604(s16 arg0, f32 arg8) { - unkSubStruct* volatile sp8; +void fn_1_C604(s16 arg0, f32 arg8) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; sp8 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk33; var_r30++) { sp8->unk54[var_r30].unk28 = arg8; @@ -1382,9 +1450,10 @@ void fn_1_C604(s16 arg0, f32 arg8) { } } -void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1395,9 +1464,10 @@ void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1410,10 +1480,11 @@ void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { // ... -void fn_1_C784(s16 arg0, u8 arg1) { - unkSubStruct* volatile sp8; +void fn_1_C784(s16 arg0, u8 arg1) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { @@ -1427,10 +1498,11 @@ void fn_1_C784(s16 arg0, u8 arg1) { } } -void fn_1_C81C(s16 arg0, u8 arg1) { - unkSubStruct3* var_r31; +void fn_1_C81C(s16 arg0, u8 arg1) +{ + unkSubStruct3 *var_r31; if (arg0 != 0) { var_r31 = &lbl_1_bss_36C.unk3C[arg0]; var_r31->unk4 = arg1; } -} \ No newline at end of file +} diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 33fe0518..0364445e 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -1609,7 +1609,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8())); temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8()); - temp_r31->unk00_s16 = frand8(); + temp_r31->unk00 = frand8(); temp_r31->unk02 = (frand() & 0x3) + 4; } temp_f29 = temp_f28 = 0; @@ -1620,7 +1620,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { - temp_f30 = temp_r31->unk00_s16 / 255.0f; + temp_f30 = temp_r31->unk00 / 255.0f; temp_f31 = temp_f30 * temp_f30; temp_r31->unk34.x += temp_f29 * temp_f31; temp_r31->unk34.y = 60.0f * temp_f30; @@ -1628,12 +1628,12 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk40.a = 255.0f * (1.0f - temp_f30); temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30)); temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31); - temp_r31->unk00_s16 += temp_r31->unk02; - if (temp_r31->unk00_s16 > 255) { + temp_r31->unk00 += temp_r31->unk02; + if (temp_r31->unk00 > 255) { temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk34.y = 0; temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; } } DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); @@ -1664,7 +1664,7 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.z = temp_f30 * cosd(temp_f31); temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); + temp_r31->unk00 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); } } else { @@ -1674,25 +1674,25 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) temp_r27 = 0; temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { - if (temp_r31->unk00_s16 >= 0) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 >= 0) { + if (temp_r31->unk00 == 0) { temp_r31->unk34.x += temp_r31->unk08.x + temp_f29; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z + temp_f28; temp_r31->unk08.y += -1.0000001f; if (temp_r31->unk40.a) { if (--temp_r31->unk40.a == 0) { - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; } } if (temp_r31->unk34.y < 0.0f) { temp_r31->unk34.y = 0; - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; temp_r31->unk40.a = 0; } } else { - if (--temp_r31->unk00_s16 == 0) { + if (--temp_r31->unk00 == 0) { temp_r31->unk40.a = 255; } } @@ -1728,12 +1728,12 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk40.a = 128; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; } } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 < 0) { + if (temp_r31->unk00 < 0) { temp_r27++; continue; } @@ -1746,7 +1746,7 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) temp_r28 = temp_r31->unk40.a; temp_r28 -= 4; if (temp_r28 < 0) { - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; temp_r28 = 0; } temp_r31->unk40.a = temp_r28; diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index 02a55063..db0d47a6 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -79,7 +79,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp38, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp38, &sp8, &sp8); + MTXMultVec(sp38, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_8[0], &sp8, &sp14); lbl_1_data_28.x = 200.0f; lbl_1_data_28.y = 3000.0f; @@ -481,18 +481,18 @@ void fn_1_310C(float arg8, float arg9, float argA, float *arg0, float *arg1, flo Mtx sp8; if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 88, 0.017453292f * arg8); + MTXRotRad(sp38, 88, 0.017453292f * arg8); } else { - PSMTXIdentity(sp38); + MTXIdentity(sp38); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 89, 0.017453292f * arg9); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 89, 0.017453292f * arg9); + MTXConcat(sp38, sp8, sp38); } if (argA != 0.0f) { - PSMTXRotRad(sp8, 90, 0.017453292f * argA); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 90, 0.017453292f * argA); + MTXConcat(sp38, sp8, sp38); } fn_1_30D8(NULL, arg0, arg1, arg2); } diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index cc740d0e..81f282b0 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -270,22 +270,22 @@ void fn_1_7C8C(omObjData *object) var_r31->unk_70 = 0.02f; if (var_r31->unk_0C) { Vec sp18 = { 0.0f, 1.0f, 0.0f }; - PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); + MTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); } else { Vec spC = { 0.0f, 1.0f, 0.0f }; - PSMTXIdentity(var_r31->unk_1C4); + MTXIdentity(var_r31->unk_1C4); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f); var_r31->unk_194 = var_r31->unk_184; - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); var_r31->unk_1B4 = var_r31->unk_1A4; var_r31->unk_164 = var_r31->unk_194; var_r31->unk_174 = var_r31->unk_194; var_r31->unk_144 = 1.0f; var_r31->unk_D4.z += 50.0f; } - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_134 = var_r31->unk_138 = 0.0f; var_r31->unk_12C = 1.0f; var_r31->unk_08 = -1; @@ -634,7 +634,7 @@ void fn_1_9298(omObjData *object) else if (var_r31->unk_B4.x < 0.0f) { var_r31->unk_B4.x += 360.0f; } - PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); + MTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); } object->rot.y = var_r31->unk_68 = var_r31->unk_B4.x - 180.0f; object->trans.x = var_r31->unk_D4.x = var_r31->unk_F8.x = var_r31->unk_C8.x = var_r31->unk_B4.z * sind(var_r31->unk_B4.x); @@ -836,7 +836,7 @@ void fn_1_9C14(omObjData *object) if (fn_1_26F8() == 2) { sp1C.y += -5.8333335f * var_r31->unk_148; } - PSMTXMultVec(var_r31->unk_224, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_224, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_E0, &sp1C); sp10 = sp1C; sp10.y = 0.0f; @@ -849,14 +849,14 @@ void fn_1_9C14(omObjData *object) sp1C.y = 80.0f; var_r31->unk_EC = sp1C; spC = atan2d(sp1C.x, sp1C.z); - PSMTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4); if (var_r31->unk_13C >= 0.95f) { var_r31->unk_3C = 1; return; } - PSQUATNormalize(&var_r31->unk_194, &sp28); - if (sp28.w < cos(0.4363323129985824)) { + QUATNormalize(&var_r31->unk_194, &sp28); + if (sp28.w < cosd(25)) { var_r31->unk_3C = 1; } } @@ -893,7 +893,7 @@ void fn_1_9FF0(omObjData *object) } } var_r31->unk_1B4 = var_r31->unk_1A4; - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_104 = var_r31->unk_F8; var_f31 = fn_1_75BC(); for (var_r30 = 0; var_r30 < 8; var_r30++) { @@ -1054,12 +1054,12 @@ void fn_1_9FF0(omObjData *object) C_QUATRotAxisRad(&sp3C, &sp8, M_PI); C_QUATSlerp(&var_r31->unk_184, &sp3C, &var_r31->unk_184, 0.027777778f); } - PSQUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); - PSQUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); - PSQUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); - PSMTXQuat(var_r31->unk_1C4, &var_r31->unk_194); - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); + QUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); + QUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); + MTXQuat(var_r31->unk_1C4, &var_r31->unk_194); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); } } @@ -1071,7 +1071,7 @@ void fn_1_AD24(omObjData *object) Hu3DModelPosSetV(object->model[0], &var_r30->unk_D4); Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f); Hu3DModelPosSetV(object->model[1], &var_r30->unk_F8); - PSMTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); + MTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); } void fn_1_ADC4(omObjData *object) diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 7f7bd933..85cdcaea 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -326,7 +326,7 @@ void fn_1_3D58(omObjData *object) var_r28->y = 0.0f; var_r28->z = var_f29; } - var_f29 += (var_f28 * sin(1.0471975511965976)); + var_f29 += var_f28 * sind(60); } var_r28 = lbl_1_bss_178.unk_2C; var_r30 = 0; @@ -567,13 +567,13 @@ void fn_1_4E64(omObjData *object) var_r31->unk_24 = 1.0f; } } - PSMTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); - PSMTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); - PSMTXConcat(spC8, sp98, sp68); + MTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); + MTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); + MTXConcat(spC8, sp98, sp68); var_f31 = var_r31->unk_18 * var_r31->unk_1C; - PSMTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); - PSMTXConcat(sp68, spC8, sp98); - PSMTXInverse(sp98, spC8); + MTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); + MTXConcat(sp68, spC8, sp98); + MTXInverse(sp98, spC8); PSMTXReorder(spC8, sp38); PSMTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18); sp2C.x = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * sind(var_r31->unk_10)); @@ -761,7 +761,7 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) DCStoreRangeNoSync(&sp10, 4); PPCSync(); GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp98); + MTXInvXpose(arg1, sp98); GXLoadNrmMtxImm(sp98, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -773,29 +773,29 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_60, 0, 3, GX_MIRROR, GX_MIRROR, GX_LINEAR); GXSetNumTexGens(5); C_MTXLightPerspective(sp38, 35.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); sp68[1][3] -= 44.0f; GXLoadTexMtxImm(sp68, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); C_MTXLightPerspective(sp38, 70.0f, 1.0f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 36, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 36, GX_FALSE, 125); - PSMTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); + MTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); GXLoadTexMtxImm(sp68, 39, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 39, GX_FALSE, 125); - PSMTXScale(sp98, 1.2f, -1.2f, 1.2f); - PSMTXConcat(sp68, sp98, sp68); + MTXScale(sp98, 1.2f, -1.2f, 1.2f); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 42, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 42, GX_FALSE, 125); - PSMTXScale(sp98, 0.49f, -0.49f, 0.49f); - PSMTXConcat(sp98, Hu3DCameraMtx, sp68); + MTXScale(sp98, 0.49f, -0.49f, 0.49f); + MTXConcat(sp98, Hu3DCameraMtx, sp68); sp68[0][3] = 0.5f; sp68[1][3] = 0.5f; GXLoadTexMtxImm(sp68, 33, GX_MTX2x4); @@ -804,18 +804,18 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(sp68, -0.5f, -0.5f, 0.5f); + MTXScale(sp68, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp68, -2); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); - PSMTXScale(sp68, 0.5f, 0.5f, 0.5f); + MTXScale(sp68, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp68, 0); GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE2, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); GXSetTevIndWarp(GX_TEVSTAGE3, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); - PSMTXScale(sp68, -0.65f, -0.65f, 0.65f); + MTXScale(sp68, -0.65f, -0.65f, 0.65f); GXSetIndTexMtx(GX_ITM_2, (float(*)[3])sp68, -3); GXSetNumTevStages(5); GXSetTevColor(GX_TEVREG0, sp14); @@ -892,7 +892,7 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4]) particle->unk_00++; var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - var_r31->unk00_s16 = 0; + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -900,16 +900,16 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4]) } var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16) { + if (var_r31->unk00) { var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.y += var_r31->unk08.y; var_r31->unk34.z += var_r31->unk08.z; var_r31->unk08.y += -0.27222225f; - if (var_r31->unk00_s16 < 12.0f) { + if (var_r31->unk00 < 12.0f) { var_r31->unk40.a = 0.88f * var_r31->unk40.a; } - if (!(--var_r31->unk00_s16)) { - var_r31->unk00_s16 = 0; + if (!(--var_r31->unk00)) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -951,7 +951,7 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) var_f27 = 0.0f; } for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16) { + if (var_r31->unk00) { continue; } var_r31->unk00 = 60.0f * (1.0f + (0.0005f * frandmod(1000))); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c new file mode 100644 index 00000000..38b547ca --- /dev/null +++ b/src/REL/m418Dll/main.c @@ -0,0 +1,2878 @@ +#include "ext_math.h" +#include "game/chrman.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" +#include "math.h" + +#include "REL/m418Dll.h" + +// types +typedef struct M418DllUnkStruct2 { + omObjData *unk0; + s32 unk4[4]; +} M418DllUnkStruct2; // sizeof 0x14 + +typedef struct M418DllUnkStruct3 { + omObjData *unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + f32 unk20; + s32 unk24; + f32 unk28; + f32 unk2C; + f32 unk30; + f32 unk34; + f32 unk38; + f32 unk3C; + char unk40[0xC]; + s32 unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; +} M418DllUnkStruct3; // sizeof 0x60 + +typedef struct M418DllUnkStruct4 { + omObjData *unk0; + f32 unk4; + f32 unk8; + s32 unkC; + s32 unk10; + union { + f32 unk14; + s32 unk14s; + }; + union { + f32 unk18; + s32 unk18s; + }; +} M418DllUnkStruct4; // sizeof 0x1C + +typedef struct M418DllUnkStruct6 { + s32 unk0; + s32 unk4[3]; + s32 unk10[3]; + s32 unk1C[3]; + s32 unk28[3]; + s32 unk34; + s32 unk38; + s32 unk3C; + s32 unk40; +} M418DllUnkStruct6; // sizeof 0x44 + +typedef struct M418DllWorkStruct { + omObjData *unk0; + Vec unk4; + Vec unk10[10]; + s32 unk88; + s32 unk8C[10]; +} M418DllWorkStruct; + +// bss +M418DllUnkStruct6 lbl_1_bss_3EC; +M418DllUnkStruct3 lbl_1_bss_26C[4]; +s32 lbl_1_bss_240[11]; +M418DllUnkStruct lbl_1_bss_1F4; +M418DllUnkStruct2 lbl_1_bss_1E0; +M418DllUnkStruct4 lbl_1_bss_170[4]; +M418DllUnkStruct4 lbl_1_bss_11C[3]; +M418DllWorkStruct lbl_1_bss_68; +M418DllUnkStruct7 lbl_1_bss_50; +M418DllUnkStruct7 lbl_1_bss_38; +M418DllUnkStruct7 lbl_1_bss_20; +s32 lbl_1_bss_1C; +u32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process *lbl_1_bss_0; + +// data +s32 lbl_1_data_0[2] = { -1, -1 }; +s32 lbl_1_data_8 = -1; + +void fn_1_0(void) +{ + Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); +} + +void fn_1_74(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_158(s32 arg0, f32 arg8) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + + var_r31->unk3C[arg0] = arg8; +} + +f32 fn_1_180(s32 arg0) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + + if (var_r31->unk3C[arg0] != 0.0f) { + var_r31->unk3C[arg0] *= -0.9f; + if (var_r31->unk3C[arg0] >= -0.5f) { + if (var_r31->unk3C[arg0] <= 0.5f) { + var_r31->unk3C[arg0] = 0.0f; + } + } + } + return var_r31->unk3C[arg0]; +} + +void fn_1_248(M418DllFunc arg0) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + + var_r31->unk0 = arg0; +} + +void fn_1_268(omObjData *object) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + + if (var_r31->unk0 != NULL) { + var_r31->unk0(); + } + + Center.x = var_r31->center.x + fn_1_180(0); + Center.y = var_r31->center.y + fn_1_180(1); + Center.z = var_r31->center.z + fn_1_180(2); + CRot.x = var_r31->rot.x; + CRot.y = var_r31->rot.y; + CRot.z = var_r31->rot.z; + CZoom = var_r31->zoom; +} + +void fn_1_500(void) +{ + M418DllUnkStruct *var_r31; + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 40.0f, 0.1f, 17500.0f, 1.2f); + var_r31 = &lbl_1_bss_1F4; + var_r31->unk0 = fn_1_74; + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_268); +} + +void fn_1_618(void) +{ + Vec sp20 = { -1500.0f, 2500.0f, 1000.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(40.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.675f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_6DC(s32 arg0) +{ + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = arg0 * 0x3C; + } +} + +s32 fn_1_714(void) +{ + s32 var_r31 = 0; + + if (lbl_1_bss_8 == 3) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_748(void) +{ + if (lbl_1_bss_8 == 2) { + lbl_1_bss_8 = 3; + lbl_1_bss_4 = 30; + } +} + +void fn_1_780(omObjData *object) +{ + switch (lbl_1_bss_8) { + case 1: + if (lbl_1_data_8 == -1) { + lbl_1_data_8 = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1); + } + lbl_1_bss_8 = 2; + break; + case 2: + lbl_1_bss_4--; + if (lbl_1_data_8 != -1) { + MGSeqParamSet(lbl_1_data_8, 1, ((lbl_1_bss_4 + 0x3B) / 60)); + } + if (lbl_1_bss_4 <= 0) { + lbl_1_bss_4 = 30; + lbl_1_bss_8 = 3; + } + break; + case 3: + if (lbl_1_data_8 != -1) { + MGSeqParamSet(lbl_1_data_8, 2, -1); + lbl_1_data_8 = -1; + } + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 0; + break; + } +} + +s32 fn_1_950(s32 arg0) +{ + + if ((rand8() % arg0) == 0) { + return 1; + } + else { + return 0; + } +} + +void fn_1_998(omObjData *object) +{ + s32 var_r31; + M418DllUnkStruct2 *var_r30 = &lbl_1_bss_1E0; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + switch (var_r30->unk4[var_r31]) { + case 1: + fn_1_ABC4(object, var_r31 + 1, var_r31 + 1, 0, 2); + var_r30->unk4[var_r31] = 99; + break; + case 2: + fn_1_ABC4(object, var_r31 + 1, var_r31 + 1, 0, 0); + var_r30->unk4[var_r31] = 99; + break; + case 3: + HuAudFXPlay(0x5DD); + Hu3DModelAttrSet(object->model[var_r31 + 1], 0x40000004); + var_r30->unk4[var_r31] = 99; + break; + } + } +} + +void fn_1_AA8(omObjData *object) +{ + Mtx sp10; + char *sp8[2] = { "scene02-dai1_null", "scene02-dai2_null1" }; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + Hu3DModelObjMtxGet(object->model[5], sp8[var_r31], sp10); + Hu3DModelPosSet(object->model[var_r31 + 6], sp10[0][3], sp10[1][3], sp10[2][3]); + } + object->func = fn_1_998; +} + +void fn_1_B4C(omObjData *object) +{ + s32 sp8[3] = { 0x310021, 0x310022, 0x310023 }; + s32 var_r30; + + object->model[0] = Hu3DModelCreateFile(0x310011); + Hu3DModelShadowMapSet(object->model[0]); + + for (var_r30 = 1; var_r30 < 4; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(sp8[var_r30 - 1]); + object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); + Hu3DModelShadowMapSet(object->model[var_r30]); + Hu3DModelPosSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); + fn_1_ABC4(object, var_r30, var_r30, 0, 2); + } + object->model[4] = Hu3DModelCreateFile(0x310016); + object->model[5] = Hu3DModelCreateFile(0x310018); + + for (var_r30 = 6; var_r30 < 8; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x310026); + object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); + Hu3DModelScaleSet(object->model[var_r30], 2.0f, 2.0f, 2.0f); + Hu3DModelLayerSet(object->model[var_r30], 1); + fn_1_ABC4(object, var_r30, var_r30, 0, 1); + } + + for (var_r30 = 8; var_r30 < 11; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x31002A); + object->motion[var_r30] = Hu3DJointMotion(object->model[var_r30], HuDataSelHeapReadNum(0x31002E, MEMORY_DEFAULT_NUM, HEAP_DATA)); + Hu3DModelPosSet(object->model[var_r30], -350.0f + 360.0f * (var_r30 - 8), -200.0f, -660.0f); + fn_1_ABC4(object, var_r30, var_r30, 0, 1); + } + object->func = fn_1_AA8; +} + +void fn_1_E74(omObjData *object) +{ + Mtx sp18; + f32 var_f31; + + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct6 *temp_r26; + HsfObject *temp_r25; + ModelData *temp_r24; + + temp_r26 = &lbl_1_bss_3EC; + temp_r28 = &lbl_1_bss_26C[temp_r26->unk0]; + temp_r30 = &lbl_1_bss_170[object->work[0]]; + if (object->work[1] == 0) { + fn_1_ABC4(object, 2, 2, 0, 2); + } + else if (object->work[1] == 1) { + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelAttrReset(object->model[6], 1); + fn_1_ABC4(object, 2, 2, 0, 0); + fn_1_ABC4(object, 3, 3, 0, 0); + fn_1_ABC4(object, 4, 4, 0, 1); + object->work[1] = 2; + lbl_1_bss_240[5] = HuAudFXPlay(0x5D6); + } + else if (object->work[1] == 2) { + if (Hu3DMotionEndCheck(object->model[3]) != 0) { + object->work[1] = 3; + object->work[2] = 0; + temp_r30->unkC = 1; + HuAudFXFadeOut(lbl_1_bss_240[5], 0x3E8); + } + } + else if (object->work[1] == 3) { + temp_r29 = &lbl_1_bss_170[object->work[0]]; + temp_r29->unkC = 2; + temp_r29->unk4 += 1.0f; + if (temp_r29->unk4 >= 20.0f) { + temp_r29->unk4 = 20.0f; + } + if (object->work[2]++ >= 0x5A) { + if (temp_r29->unk10 == 1) { + object->work[1] = 5; + temp_r29->unk8 = 0.0f; + } + else { + HuAudFXPlay(0x5D2); + object->work[1] = 4; + Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); + Hu3DModelPosSet(object->model[5], sp18[0][3], sp18[1][3], sp18[2][3]); + fn_1_ABC4(object, 5, 5, 0, 0); + fn_1_158(2, 256.0f); + } + temp_r29->unkC = 3; + } + } + else if (object->work[1] == 4) { + if ((Hu3DMotionEndCheck(object->model[5]) != 0) || (temp_r30->unk10 == 1)) { + object->work[1] = 99; + Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + } + } + else if (object->work[1] == 5 || object->work[1] == 6) { + if (temp_r30->unk8 > 1.7f) { + temp_r30->unk8 = 1.7f; + } + if (object->work[1] == 5) { + var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -3.5f : 3.5f); + temp_r30->unk4 += var_f31; + } + else { + var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -1.25f : 1.25f); + temp_r30->unk4 += var_f31; + } + if (temp_r30->unk4 <= 0.0f && object->work[1] == 5) { + temp_r30->unk4 = 0.0f; + temp_r30->unk8 = -1.47f; + object->work[1] = 6; + fn_1_158(1, 4.0f); + omVibrate(temp_r28->unk4, 0xC, 6, 6); + HuAudFXPlay(0x5DA); + } + else { + if ((temp_r30->unk4 <= 0.0f) && (object->work[1] == 6)) { + Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); + Hu3DModelPosSet(object->model[6], sp18[0][3], sp18[1][3], sp18[2][3]); + fn_1_158(1, 4.0f); + omVibrate(temp_r28->unk4, 0xC, 6, 6); + temp_r30->unk4 = 0.0f; + temp_r30->unk8 = 0.0f; + object->work[1] = 4; + fn_1_ABC4(object, 6, 6, 0, 0); + HuAudFXPlay(0x5DA); + HuAudFXPlay(0x5DB); + } + } + temp_r30->unk8 += 0.11f; + } + if (object->work[1] != 0) { + const char *sp8[4] = { "doukasen-null_B", "doukasen-null_A", "doukasen-null_X", "doukasen-null_Y" }; + Hu3DModelObjMtxGet(object->model[3], sp8[object->work[0]], sp18); + Hu3DModelPosSet(object->model[4], sp18[0][3], sp18[1][3], sp18[2][3]); + } + temp_r27 = &lbl_1_bss_170[object->work[0]]; + temp_r25 = Hu3DModelObjPtrGet(object->model[0], "taihou-taihou"); + temp_r25->data.base.rot.x = temp_r27->unk4; + temp_r24 = &Hu3DData[object->model[1]]; + temp_r24->rot.x = temp_r27->unk4; +} + +void fn_1_14F0(omObjData *arg0) +{ + s32 var_r30 = arg0->work[0]; + s32 sp28[4] = { 0x310012, 0x310013, 0x310015, 0x310014 }; + s32 sp18[4] = { 0x310019, 0x31001A, 0x31001B, 0x31001C }; + s32 sp8[4] = { 0x31001D, 0x31001E, 0x31001F, 0x310020 }; + + arg0->model[0] = Hu3DModelCreateFile(0x310010); + omSetTra(arg0, -540.0f + (360.0f * var_r30), 115.0f, -900.0f); + arg0->model[1] = Hu3DModelCreateFile(sp28[var_r30]); + Hu3DModelPosSet(arg0->model[1], -540.0f + (360.0f * var_r30), 115.0f, -900.0f); + arg0->model[2] = Hu3DModelCreateFile(sp18[var_r30]); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + fn_1_ABC4(arg0, 2, 2, 0, 2); + arg0->model[3] = Hu3DModelCreateFile(sp8[var_r30]); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + Hu3DModelAttrSet(arg0->model[3], 1); + fn_1_ABC4(arg0, 3, 3, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(0x310025); + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + Hu3DModelAttrSet(arg0->model[4], 1); + fn_1_ABC4(arg0, 4, 4, 0, 2); + arg0->model[5] = Hu3DModelCreateFile(0x310024); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelAttrSet(arg0->model[5], 1); + fn_1_ABC4(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(0x310028); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], 1); + fn_1_ABC4(arg0, 6, 6, 0, 2); + Hu3DModelScaleSet(arg0->model[6], 3.0f, 3.0f, 3.0f); + arg0->func = fn_1_E74; +} + +void fn_1_18AC(omObjData *object) +{ + M418DllUnkStruct4 *var_r31; + + var_r31 = &lbl_1_bss_11C[object->work[0]]; + if (var_r31->unk14 == 0.0f) { + var_r31->unk14 = 1.0f; + } +} + +s32 fn_1_18FC(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ + M418DllUnkStruct4 *temp_r30; + s32 var_r28; + f32 var_f31; + f32 var_f30; + f32 var_f27; + f32 var_f26; + f32 var_f24; + f32 var_f20; + + var_r28 = 0; + temp_r30 = &lbl_1_bss_11C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 <= 15.0f) { + var_f31 = var_f30 = 0.0f; + } + else { + var_f31 = 55.0f * (var_f31 / var_f27); + var_f30 = 55.0f * (var_f30 / var_f27); + } + if (temp_r30->unk14 == 1.0f) { + temp_r30->unk18 = -1.47f; + } + var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f27 >= arg9) { + var_f27 = arg9; + } + else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + var_r28 = 1; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg8; + } + if (var_f26 >= 180.0f) { + if (object->rot.y - var_f26 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 < -180.0f) { + object->rot.y += 360.0f; + } + } + else { + if (object->rot.y - var_f26 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((9.0f * object->rot.y) + var_f26) / 10.0f); + } + object->trans.x += var_f27 * sind(object->rot.y); + object->trans.z += var_f27 * cosd(object->rot.y); + if (temp_r30->unk14) { + temp_r30->unk14 = 2.0f; + if (temp_r30->unk18 > 1.7f) { + temp_r30->unk18 = 1.7f; + } + var_f20 = (temp_r30->unk18 * temp_r30->unk18) * (temp_r30->unk18 >= 0.0f ? -3.5f : 3.5f); + object->trans.y += var_f20; + if (object->trans.y <= arg1.y) { + object->trans.y = arg1.y; + temp_r30->unk14 = temp_r30->unk18 = 0.0f; + var_r28 = 2; + } + temp_r30->unk18 += 0.11f; + } + if (var_f27 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + } + else { + fn_1_AD14(object, 0, 0, 10, 1); + } + return var_r28; +} + +s32 fn_1_20B0(omObjData *object, Vec arg1, f32 arg8, f32 arg9, s32 arg2) +{ + if (arg2 == 1) + fn_1_18AC(object); + return fn_1_18FC(object, arg1, arg9, arg8); +} + +Vec lbl_1_data_8C[9] = { { 140.0f, 0.0f, -90.0f }, { -200.0f, 0.0f, 50.0f }, { -300.0f, 0.0f, -150.0f }, { -250.0f, 0.0f, -500.0f }, + { 0.0f, 0.0f, 150.0f }, { 700.0f, 0.0f, 50.0f }, { 1000.0f, -50.0f, 500.0f }, { 1000.0f, -100.0f, 500.0f }, { 1000.0f, -150.0f, 500.0f } }; + +s32 fn_1_2178(omObjData *object) +{ + s32 var_r30; + + switch (object->work[1]) { + case 1: + object->work[2] = 0; + object->work[1] = 10; + case 10: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 25.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 11; + object->work[2] = 0; + } + break; + case 11: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[1], 6.0f, -1.0f, 0); + if (var_r30 != 0) { + object->work[1] = 12; + object->work[2] = 0; + } + break; + case 12: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 0.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 13; + object->work[2] = 0; + } + break; + + case 2: + object->work[2] = 0; + object->work[1] = 0x14; + case 20: + fn_1_20B0(object, lbl_1_data_8C[0], 0.0f, 25.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 21; + object->work[2] = 0; + } + break; + case 21: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[4], 6.0f, -1.0f, 0); + if (var_r30 != 0) { + object->work[1] = 22; + object->work[2] = 0; + } + break; + case 22: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[0], 6.0f, 0.0f, 0); + if (var_r30 != 0) { + object->work[1] = 24; + object->work[2] = 0; + } + break; + case 23: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 0.0f, 0); + if (object->work[2]++ >= 30) { + object->work[1] = 24; + object->work[2] = 0; + } + break; + case 3: + object->work[2] = 0; + object->work[1] = 30; + case 30: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[5], 6.0f, -1.0f, 0); + if (var_r30 == 1) { + object->work[1] = 31; + object->work[2] = 0; + } + break; + case 31: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[6], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 32; + object->work[2] = 0; + } + break; + case 32: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[7], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 33; + object->work[2] = 0; + } + break; + case 33: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[8], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 34; + object->work[2] = 0; + } + break; + } +} + +void fn_1_2894(omObjData *object) +{ + Mtx sp3C; + Mtx spC; + M418DllUnkStruct6 *sp8; + f32 temp_f31; + + sp8 = &lbl_1_bss_3EC; + temp_f31 = 0.5f + (0.5f * (CRot.x / 90.0f)); + Hu3DModelObjMtxGet(object->model[0], "g031m1-itemhook_R", spC); + Hu3DModelObjMtxGet(object->model[5], "g031i00-itemhook_eff", sp3C); + Hu3DModelRotSet(object->model[6], 0.0f, -object->rot.y, 0.0f); + Hu3DModelScaleSet(object->model[6], 0.35f, temp_f31, 0.35f); + fn_1_2178(object); +} + +void fn_1_29A0(omObjData *object) +{ + u32 temp_r30; + + temp_r30 = object->work[0]; + object->model[0] = Hu3DModelCreateFile(0x31002A); + object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x31002B); + object->motion[1] = Hu3DJointMotionFile(object->model[0], 0x31002C); + object->motion[2] = Hu3DJointMotionFile(object->model[0], 0x31002D); + object->motion[3] = Hu3DJointMotionFile(object->model[0], 0x31002E); + omSetTra(object, lbl_1_data_8C[temp_r30].x, lbl_1_data_8C[temp_r30].y, lbl_1_data_8C[temp_r30].z); + fn_1_ABC4(object, 0, 0, 0, 1); + object->model[5] = Hu3DModelCreateFile(0x31002F); + Hu3DModelHookSet(object->model[0], "g031m1-itemhook_R", object->model[5]); + object->model[6] = Hu3DModelCreateFile(0x310027); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "g031i00-itemhook_eff", object->model[6]); + fn_1_ABC4(object, 6, 6, 0, 1); + object->work[1] = -1; + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_2894; +} + +void fn_1_2BC4(Vec arg0) +{ + M418DllWorkStruct *var_r31 = &lbl_1_bss_68; + var_r31->unk4.x = arg0.x; + var_r31->unk4.y = arg0.y; + var_r31->unk4.z = arg0.z; + var_r31->unk88 = 0; + var_r31->unk0->work[0] = 1; +} + +void fn_1_2C0C(omObjData *object) +{ + ModelData *temp_r28; + M418DllWorkStruct *var_r31 = &lbl_1_bss_68; + s32 var_r30; + + switch (object->work[0]) { + case 1: + for (var_r30 = 0; var_r30 < 10; var_r30++) { + var_r31->unk10[var_r30].x = (var_r31->unk4.x + 50.0 * cosd(36.0f * var_r30)) + (rand8() % 25); + var_r31->unk10[var_r30].y = (var_r31->unk4.y + 50.0 * sind(36.0f * var_r30)) + (rand8() % 25); + var_r31->unk10[var_r30].z = var_r31->unk4.z; + var_r31->unk8C[var_r30] = (rand8() % 5) + 10; + Hu3DModelPosSet(object->model[var_r30 + 1], var_r31->unk4.x, var_r31->unk4.y, var_r31->unk4.z); + Hu3DModelTPLvlSet(object->model[var_r30 + 1], 1.0f); + } + object->work[0] = 2; + break; + case 2: + for (var_r30 = 0; var_r30 < 10; var_r30++) { + temp_r28 = &Hu3DData[object->model[var_r30 + 1]]; + temp_r28->pos.x = fn_1_A920(temp_r28->pos.x, var_r31->unk10[var_r30].x, var_r31->unk8C[var_r30]); + temp_r28->pos.y = fn_1_A920(temp_r28->pos.y, var_r31->unk10[var_r30].y, var_r31->unk8C[var_r30]); + temp_r28->pos.z = fn_1_A920(temp_r28->pos.z, var_r31->unk10[var_r30].z, var_r31->unk8C[var_r30]); + if (var_r31->unk88 >= 20) { + Hu3DModelTPLvlSet(object->model[var_r30 + 1], 1.0f - (0.1f * (var_r31->unk88 - 0x14))); + } + } + if (var_r31->unk88 >= 30) { + object->work[0] = 0; + } + var_r31->unk88++; + } +} + +void fn_1_3054(omObjData *object) +{ + s32 var_r30; + + for (var_r30 = 1; var_r30 < 11; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x310029); + Hu3DModelPosSet(object->model[var_r30], 0.0f, -500.0f, 0.0f); + Hu3DModelScaleSet(object->model[var_r30], 10.0f, 10.0f, 10.0f); + } + object->work[0] = 0; + object->func = fn_1_2C0C; +} + +void fn_1_3138(void) +{ + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r30]; + temp_r31->unk4 = var_r30; + temp_r31->unk8 = GWPlayerCfg[temp_r31->unk4].group; + if (temp_r31->unk8 == 0) { + temp_r31->unk8 = 0; + } + else { + temp_r31->unk8 = 1; + } + temp_r31->unkC = GWPlayerCfg[temp_r31->unk4].iscom; + if (temp_r31->unkC != 0) { + temp_r31->unk10 = GWPlayerCfg[temp_r31->unk4].diff; + } + else { + temp_r31->unk10 = 0; + } + temp_r31->unk14 = GWPlayerCfg[temp_r31->unk4].character; + temp_r31->unk18 = GWPlayerCfg[temp_r31->unk4].pad_idx; + } +} + +char *lbl_1_data_1C0[8] = { "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r" }; + +void fn_1_3240(omObjData *object) +{ + Mtx sp14; + Vec sp8; + M418DllUnkStruct3 *temp_r28; + ModelData *temp_r30; + M418DllWorkStruct *var_r29; + + temp_r30 = &Hu3DData[object->model[11]]; + temp_r28 = &lbl_1_bss_26C[object->work[0]]; + switch (object->work[1]) { + case 1: + Hu3DModelHookReset(object->model[0]); + Hu3DModelObjMtxGet(object->model[0], lbl_1_data_1C0[temp_r28->unk14], sp14); + Hu3DModelPosSet(object->model[11], sp14[0][3], sp14[1][3], sp14[2][3]); + temp_r30->rot.y = object->rot.y; + object->work[1] = 2; + object->work[2] = 0; + break; + case 2: + fn_1_AD14(object, 0, 0, 0x1E, 1); + temp_r30->pos.y = fn_1_A920(temp_r30->pos.y, 350.0f, 30.0f); + temp_r30->rot.x += 30.0f; + if (object->work[2]++ >= 0x1EU) { + HuAudFXPlay(0x5DE); + fn_1_2BC4(temp_r30->pos); + Hu3DModelAttrSet(object->model[11], 1); + object->work[1] = object->work[2] = 0; + } + break; + } +} + +void fn_1_3408(omObjData *object) +{ + M418DllUnkStruct3 *temp_r31; + + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + if (temp_r31->unk1C == 0) { + temp_r31->unk1C = 1; + } +} + +void fn_1_3444(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ + s32 sp24; + f32 sp20; + f32 sp1C; + f32 sp18; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct3 *temp_r30; + + f32 var_f31; + f32 var_f30; + f32 temp_f29; + f32 temp_f28; + f32 var_f24; + f32 var_f23; + f32 var_f22; + + s32 var_r27; + s32 var_r29; + + sp24 = 0; + var_r27 = 0; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f23 = 90.0 + atan2d(var_f30, var_f31); + var_f24 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f24 <= 30.0f) { + var_f31 = var_f30 = 0.0f; + } + else { + var_f31 = 55.0f * (var_f31 / var_f24); + var_f30 = 55.0f * (var_f30 / var_f24); + } + if (temp_r30->unk1C == 1) { + temp_r30->unk20 = -1.47f; + } + var_f24 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f24 >= arg9) { + var_f24 = arg9; + } + else if (var_f24 <= 1.0f) { + var_f31 = var_f30 = var_f24 = 0.0f; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f23 = arg8; + } + if (var_f23 >= 180.0f) { + if (object->rot.y - var_f23 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f23 < -180.0f) { + object->rot.y += 360.0f; + } + } + else { + if (object->rot.y - var_f23 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f23 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((4.0f * object->rot.y) + var_f23) / 5.0f); + } + var_r27 = 0; + sp1C = object->trans.x + (50.0 * cosd(object->rot.y - 90.0f)); + sp18 = object->trans.z - (50.0 * sind(object->rot.y - 90.0f)); + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 == object->work[0]) + continue; + temp_r28 = &lbl_1_bss_26C[var_r29]; + temp_f29 = temp_r28->unk0->trans.x; + temp_f28 = temp_r28->unk0->trans.z; + temp_f29 -= sp1C; + temp_f28 -= sp18; + if (sqrtf((temp_f29 * temp_f29) + (temp_f28 * temp_f28)) < 100.0f) { + var_r27 = 1; + break; + } + } + if (var_r27 == 0) { + object->trans.x = object->trans.x + (var_f24 * sind(object->rot.y)); + object->trans.z = object->trans.z + (var_f24 * cosd(object->rot.y)); + } + if (temp_r30->unk1C != 0) { + temp_r30->unk1C = 2; + if (temp_r30->unk20 > 1.7f) { + temp_r30->unk20 = 1.7f; + } + sp20 = temp_r30->unk20 * temp_r30->unk20 * (temp_r30->unk20 >= 0.0f ? -17.5f : 17.5f); + object->trans.y += sp20; + if (object->trans.y <= 0.0f) { + object->trans.y = 0.0f; + temp_r30->unk1C = temp_r30->unk20 = 0.0f; + omVibrate(temp_r30->unk4, 0xC, 6, 6); + } + temp_r30->unk20 += 0.11f; + } + if (temp_r30->unk1C != 0) { + fn_1_AD14(object, 0, 3, 10, 0); + return; + } + if (var_f24 >= 6.75f) { + fn_1_AD14(object, 0, 2, 10, 1); + return; + } + if (var_f24 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + return; + } + fn_1_AD14(object, 0, 0, 10, 1); +} + +void fn_1_3EB0(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ + M418DllUnkStruct3 *temp_r30; + s32 sp10; + f32 var_f31; + f32 var_f30; + f32 var_f27; + f32 var_f26; + f32 var_f24; + f32 var_f20; + + sp10 = 0; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 <= 30.0f) { + var_f31 = var_f30 = 0.0f; + } + else { + var_f31 = 55.0f * (var_f31 / var_f27); + var_f30 = 55.0f * (var_f30 / var_f27); + } + if (temp_r30->unk1C == 1) { + temp_r30->unk20 = -1.47f; + } + var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f27 >= arg9) { + var_f27 = arg9; + } + else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg8; + } + if (var_f26 >= 180.0f) { + if (object->rot.y - var_f26 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 < -180.0f) { + object->rot.y += 360.0f; + } + } + else { + if (object->rot.y - var_f26 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((4.0f * object->rot.y) + var_f26) / 5.0f); + } + object->trans.x += var_f27 * sind(object->rot.y); + object->trans.z += var_f27 * cosd(object->rot.y); + if (temp_r30->unk1C) { + temp_r30->unk1C = 2.0f; + if (temp_r30->unk20 > 1.7f) { + temp_r30->unk20 = 1.7f; + } + var_f20 = (temp_r30->unk20 * temp_r30->unk20) * (temp_r30->unk20 >= 0.0f ? -17.5f : 17.5f); + object->trans.y += var_f20; + if (object->trans.y <= 0.0f) { + object->trans.y = 0.0f; + temp_r30->unk1C = temp_r30->unk20 = 0.0f; + omVibrate(temp_r30->unk4, 0xC, 6, 6); + } + temp_r30->unk20 += 0.11f; + } + if (temp_r30->unk1C != 0) { + fn_1_AD14(object, 0, 3, 10, 0); + } + else if (var_f27 >= 6.75f) { + fn_1_AD14(object, 0, 2, 10, 1); + } + else if (var_f27 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + } + else { + fn_1_AD14(object, 0, 0, 10, 1); + } +} + +s32 lbl_1_data_1E0[4][2] = { { -1, 127 }, { -1, 127 }, { -1, 127 }, { -1, 127 } }; + +void fn_1_46C4(omObjData *object) +{ + s32 sp8; + M418DllUnkStruct3 *temp_r31; + + sp8 = 0; + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + + switch (temp_r31->unk24) { + case 0: + temp_r31->unk2C = object->scale.x; + temp_r31->unk34 = temp_r31->unk38 = 0.0f; + temp_r31->unk24 = 1; + break; + case 1: + temp_r31->unk28 -= 1.0f; + if (temp_r31->unk28 <= 0.0f) { + temp_r31->unk28 = 15.0f; + temp_r31->unk24 = 2; + omVibrate(temp_r31->unk4, 0xC, 0xC, 0); + lbl_1_data_1E0[object->work[0]][0] = HuAudCharVoicePlay(temp_r31->unk14, 0x123); + lbl_1_data_1E0[object->work[0]][1] = 0x7F; + HuAudFXPlay(0x5D4); + } + break; + case 2: + object->trans.x += 4.0f * temp_r31->unk30; + object->trans.y += 125.0 * sind(temp_r31->unk28); + object->trans.z -= 125.0 * cos(M_PI / 12.0); + if (temp_r31->unk28 <= 14.0f) { + Hu3DModelAttrReset(object->model[0], 1); + } + temp_r31->unk28 -= 0.25f; + if (temp_r31->unk28 <= 0.0f) { + temp_r31->unk24 = 3; + } + break; + case 3: + object->trans.y += 110.0 * sind(temp_r31->unk28); + temp_r31->unk28 -= 0.0275f; + temp_r31->unk2C -= 0.0025f; + if (temp_r31->unk2C <= 0.3f) { + temp_r31->unk2C = 0.0f; + temp_r31->unk24 = 4; + temp_r31->unk28 = 0.0f; + HuAudFXPlay(0x5D5); + } + omSetSca(object, temp_r31->unk2C, temp_r31->unk2C, temp_r31->unk2C); + break; + case 4: + temp_r31->unk38 = fn_1_A920(temp_r31->unk38, 360.0f, 15.0f); + temp_r31->unk34 = fn_1_A920(temp_r31->unk34, 4.0f, 15.0f); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, temp_r31->unk38); + Hu3DModelScaleSet(object->model[1], temp_r31->unk34, temp_r31->unk34, temp_r31->unk34); + if (temp_r31->unk28++ >= 30.0f) { + temp_r31->unk24 = 5; + temp_r31->unk28 = 0.0f; + } + break; + case 5: + temp_r31->unk38 = fn_1_A920(temp_r31->unk38, 720.0f, 15.0f); + temp_r31->unk34 = fn_1_A920(temp_r31->unk34, 0.0f, 15.0f); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, temp_r31->unk38); + Hu3DModelScaleSet(object->model[1], temp_r31->unk34, temp_r31->unk34, temp_r31->unk34); + if (temp_r31->unk28++ >= 60.0f) { + temp_r31->unk24 = 6; + temp_r31->unk28 = 0.0f; + } + break; + } + if ((temp_r31->unk24 >= 1) && (temp_r31->unk24 <= 5) && (lbl_1_data_1E0[object->work[0]][0] != -1)) { + HuAudFXVolSet(lbl_1_data_1E0[object->work[0]][0], --lbl_1_data_1E0[object->work[0]][1]); + if (lbl_1_data_1E0[object->work[0]][1] < 0) { + lbl_1_data_1E0[object->work[0]][1] = 0; + } + } +} + +void fn_1_4C84(omObjData *object) +{ + Mtx sp14; + Vec sp8; + f32 var_f31; + M418DllUnkStruct3 *temp_r26; + M418DllWorkStruct *var_r27; + M418DllUnkStruct3 *temp_r30; + ModelData *temp_r28; + ModelData *temp_r29; + s32 temp_r0; + u32 temp_r3; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + if (temp_r30->unk8 == 0) { + var_f31 = (0.5f * temp_r30->unk3C) + ((CRot.x / 90.0f) * (0.5f * temp_r30->unk3C)); + temp_r29 = &Hu3DData[object->model[12]]; + if ((temp_r30->unk14 == 7) || (temp_r30->unk14 == 5)) { + temp_r29->rot.y = -object->rot.y - 360.0f; + } + else { + temp_r29->rot.y = -object->rot.y - 90.0f; + } + temp_r29->scale.x = 0.35f * temp_r30->unk3C; + temp_r29->scale.y = var_f31; + temp_r29->scale.z = 0.35f * temp_r30->unk3C; + fn_1_3240(object); + } + fn_1_46C4(object); +} + +void fn_1_4F60(omObjData *object) +{ + M418DllUnkStruct3 *temp_r30; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + object->model[0] = CharModelCreate(temp_r30->unk14, 2); + object->motion[0] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[1] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[2] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x73)); + object->motion[4] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x74)); + object->motion[5] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + object->motion[6] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + object->motion[7] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B)); + object->motion[8] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A)); + object->motion[9] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310000, 0x10000000, HEAP_DATA)); + object->motion[10] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310008, 0x10000000, HEAP_DATA)); + object->model[1] = Hu3DModelCreateFile(0x310017); + Hu3DModelPosSet(object->model[1], 0.0f, -5000.0f, 0.0f); + Hu3DModelShadowSet(object->model[0]); + if (temp_r30->unk8 == 0) { + Hu3DMotionOverlaySet(object->model[0], object->motion[9]); + Hu3DMotionOverlaySpeedSet(object->model[0], 0.0f); + object->model[11] = Hu3DModelCreateFile(0x31002F); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(temp_r30->unk14, 2, 0), object->model[11]); + if ((temp_r30->unk14 == 4) || (temp_r30->unk14 == 5)) { + Hu3DModelScaleSet(object->model[11], 1.0f, 1.2f, 1.0f); + } + object->model[12] = Hu3DModelCreateFile(0x310027); + object->motion[12] = Hu3DMotionIDGet(object->model[12]); + Hu3DModelHookSet(object->model[11], "g031i00-itemhook_eff", object->model[12]); + Hu3DModelScaleSet(object->model[12], 0.0f, 0.5f, 0.0f); + fn_1_ABC4(object, 0xC, 0xC, 0, 1); + object->model[13] = Hu3DModelCreateFile(0x310028); + object->motion[13] = Hu3DMotionIDGet(object->model[13]); + fn_1_ABC4(object, 0xD, 0xD, 0, 2); + } + lbl_1_data_1E0[object->work[0]][0] = -1; + CharModelMotionDataClose(temp_r30->unk14); + CharModelLayerSetAll2(7); + object->func = fn_1_4C84; +} + +void fn_1_5358(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_543C(void) +{ + M418DllUnkStruct sp38; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { -180.0f, 500.0f, 440.0f }; + Vec sp20 = { -180.0f, 330.0f, -760.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.center.x = 0.0f; + sp38.center.y -= 75.0f; + sp38.rot.x = -10.0f; + sp38.rot.y = 10.0f; + fn_1_DC10(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +void fn_1_558C(void) +{ + M418DllUnkStruct sp38; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.rot.x++; + fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +void fn_1_56AC(s32 arg0) +{ + M418DllUnkStruct *var_r28 = &lbl_1_bss_1F4; + fn_1_B458(var_r28); + switch (arg0) { + case 0: + fn_1_248(fn_1_5358); + break; + case 1: + fn_1_248(fn_1_543C); + break; + case 2: + fn_1_248(fn_1_558C); + break; + } +} + +void fn_1_5768(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct4 *var_r30; + M418DllUnkStruct *var_r26; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = &lbl_1_bss_170[var_r31]; + var_r30->unkC = 0; + } + + fn_1_56AC(0); +} + +s32 fn_1_57E4(s32 arg0) +{ + M418DllUnkStruct4 *temp_r31; + M418DllUnkStruct *var_r25; + s32 var_r29; + s32 var_r30; + + if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_170[var_r30]; + if (temp_r31->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if (var_r29 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { + HuAudFXPlay(0x5D3); + temp_r31->unkC = 1; + } + } + else { + temp_r31->unk4 += 5.0f; + if (temp_r31->unk4 >= 90.0f) { + temp_r31->unk4 = 90.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) == 0x1E) { + fn_1_56AC(1); + } + if (fn_1_B0C8(&lbl_1_bss_50, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_50); + } + else { + return 0; + } +} + +s32 lbl_1_data_200[16] = { 0x310000, 0x310001, 0x310002, 0x310003, 0x310004, 0x310005, 0x310006, 0x310007, 0x310008, 0x310009, 0x31000A, 0x31000B, + 0x31000C, 0x31000D, 0x31000E, 0x31000F }; + +Vec lbl_1_data_240[3] = { + { -540.0f, 225.0f, -900.0f }, + { -180.0f, 225.0f, -900.0f }, + { 180.0f, 225.0f, -900.0f }, +}; + +void fn_1_5970(s32 arg0) +{ + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; + s32 var_r31; + + temp_r29 = &lbl_1_bss_3EC; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_26C[temp_r29->unk4[var_r31]]; + omSetTra(temp_r30->unk0, lbl_1_data_240[var_r31].x, lbl_1_data_240[var_r31].y, lbl_1_data_240[var_r31].z - 50.0f); + temp_r30->unk4C = 0; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r28 = &lbl_1_bss_170[var_r31]; + temp_r28->unkC = 0; + } +} + +Vec lbl_1_data_264[4] = { + { -355.0f, 0.0f, -680.0f }, + { 5.0f, 0.0f, -680.0f }, + { 365.0f, 0.0f, -680.0f }, +}; + +s32 fn_1_5A6C(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct6 *temp_r27; + s32 var_r26; + omObjData *temp_r25; + s32 var_r24; + M418DllUnkStruct *temp_r20; + + temp_r27 = &lbl_1_bss_3EC; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_26C[temp_r27->unk4[var_r31]]; + if (temp_r30->unk4C == 0) { + if ((rand8() % 5) == 0) { + var_r26 = 1; + } + else { + var_r26 = 0; + } + if (var_r26 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 5)) { + temp_r30->unk4C = 1; + temp_r25 = temp_r30->unk0; + temp_r28 = &lbl_1_bss_26C[temp_r25->work[0]]; + if (temp_r28->unk1C == 0) { + temp_r28->unk1C = 1; + } + HuAudCharVoicePlay(temp_r30->unk14, 0x122); + } + } + else { + fn_1_3EB0(temp_r30->unk0, lbl_1_data_264[var_r31], 0.0f, 9.0f); + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r29 = &lbl_1_bss_170[var_r31]; + if (temp_r29->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r24 = 1; + } + else { + var_r24 = 0; + } + if ((var_r24 != 0) || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { + HuAudFXPlay(0x5D3); + temp_r29->unkC = 1; + } + } + else { + temp_r29->unk4 -= 2.5f; + if (temp_r29->unk4 <= 0.0f) { + temp_r29->unk4 = 0.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) == 0x3C) { + fn_1_56AC(2); + } + if (fn_1_B0C8(&lbl_1_bss_50, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_50); + } + return 0; +} + +M418DllUnkStruct8 lbl_1_data_294[3] = { { fn_1_5768, fn_1_57E4, 0x5A }, { fn_1_5970, fn_1_5A6C, 0xB4 }, { NULL, NULL, -1 } }; + +void fn_1_5D28(void) +{ + fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294[0]); +} + +s32 fn_1_5D58(void) +{ + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_50.unk10 != NULL) { + lbl_1_bss_50.unk10(); + lbl_1_bss_50.unk10 = NULL; + } + if (lbl_1_bss_50.unk14 != NULL) { + var_r31 = lbl_1_bss_50.unk14(); + } + return var_r31; +} + +s32 fn_1_5DF0(omObjData *object, s32 arg1) +{ + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + var_r30 = temp_r31->unk4C; + if (temp_r31->unkC != 0) { + switch (temp_r31->unk10) { + case 0: + if ((arg1 % 100) == 0) { + var_r30 = rand8() % 4; + } + break; + case 1: + if ((arg1 % 50) == 0) { + var_r30 = rand8() % 4; + } + break; + case 2: + if ((arg1 % 25) == 0) { + var_r30 = rand8() % 4; + } + break; + case 3: + if ((arg1 % 25) == 0) { + var_r30 = rand8() % 4; + } + break; + } + } + else { + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_A) != 0) { + var_r30 = 1; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_B) != 0) { + var_r30 = 0; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_X) != 0) { + var_r30 = 3; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_Y) != 0) { + var_r30 = 2; + } + } + return var_r30; +} + +s32 fn_1_6038(omObjData *object, s32 arg1) +{ + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct4 *temp_r26; + s32 var_r29; + s32 var_r31; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_r31 = temp_r30->unk4C; + if (temp_r30->unkC != 0) { + switch (temp_r30->unk10) { + case 0: + if ((arg1 % 200) == 1) { + var_r31 = rand8() % 4; + } + break; + case 1: + if ((arg1 % 150) == 1) { + var_r31 = rand8() % 4; + } + break; + case 2: + if ((arg1 % 100) == 1) { + var_r31 = rand8() % 4; + } + break; + case 3: + if ((arg1 % 100) == 1) { + var_r31 = rand8() % 4; + } + break; + } + if (var_r31 != -1) { + temp_r28 = &lbl_1_bss_170[var_r31]; + if (temp_r28->unk18s == 1) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + temp_r27 = &lbl_1_bss_170[var_r29]; + if (temp_r27->unk18s != 1) { + var_r31 = var_r29; + temp_r27->unk18s = 1; + break; + } + } + } + else { + temp_r28->unk18s = 1; + } + } + } + else { + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_A) != 0) { + var_r31 = 1; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_B) != 0) { + var_r31 = 0; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_X) != 0) { + var_r31 = 3; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_Y) != 0) { + var_r31 = 2; + } + if (var_r31 != -1) { + temp_r26 = &lbl_1_bss_170[var_r31]; + if (temp_r26->unk18s == 1) { + var_r31 = -1; + } + else { + temp_r26->unk18s = 1; + } + } + } + return var_r31; +} + +void fn_1_6314(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_63F8(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct sp38; + Vec sp2C = { 0.0f, 1800.0f, 480.0f }; + Vec sp20 = { 0.0f, 600.0f, 250.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.zoom = 750.0f; + fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 120.0f, 10.0f); +} + +void fn_1_6510(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct sp38; + Vec sp2C = { 0.0f, 980.0f, 1330.0f }; + Vec sp20 = { 0.0f, 480.0f, 130.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +Vec lbl_1_data_2B8[8] = { { -540.0f, 225.0f, -900.0f }, { -180.0f, 225.0f, -900.0f }, { 180.0f, 225.0f, -900.0f }, { 540.0f, 225.0f, -900.0f }, + { -360.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 360.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, 0.0f } }; + +void fn_1_6618(void) +{ + M418DllUnkStruct sp8; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct *var_r30; + M418DllUnkStruct6 *var_r29; + + var_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[var_r29->unk0]; + var_r30 = &lbl_1_bss_1F4; + sp8.center.x = lbl_1_data_2B8[temp_r31->unk4C].x; + sp8.center.y = lbl_1_data_2B8[temp_r31->unk4C].y; + sp8.center.z = lbl_1_data_2B8[temp_r31->unk4C].z; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 725.0f; + fn_1_CBF8(var_r30, &sp8, var_r30->unk48++, 30.0f, 5.0f); +} + +void fn_1_6740(s32 arg0) +{ + M418DllUnkStruct *var_r27 = &lbl_1_bss_1F4; + + fn_1_B458(var_r27); + switch (arg0) { + case 0: + fn_1_248(fn_1_6314); + break; + case 1: + fn_1_248(fn_1_63F8); + break; + case 2: + fn_1_248(fn_1_6510); + break; + case 3: + fn_1_248(fn_1_6618); + break; + } +} + +void fn_1_6808(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct6 *var_r30 = &lbl_1_bss_3EC; + M418DllUnkStruct3 *var_r29; + M418DllUnkStruct4 *var_r28; + M418DllUnkStruct *var_r23; + + HuAudAUXVolSet(0x40, 0x40); + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r29 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + var_r29->unk4C = -1; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r28 = &lbl_1_bss_11C[var_r31]; + fn_1_ABC4(var_r28->unk0, 0, 3, 30, 1); + } + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = 0x12C; + } + + fn_1_6740(0); +} + +Vec lbl_1_data_318[4] = { { -540.0f, 115.0f, -700.0f }, { -180.0f, 115.0f, -700.0f }, { 180.0f, 115.0f, -700.0f }, { 540.0f, 115.0f, -700.0f } }; + +s32 fn_1_6914(s32 arg0) +{ + Vec sp14; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct3 *temp_r30; + s32 var_r29; + s32 temp_r27; + M418DllUnkStruct6 *var_r26; + M418DllUnkStruct4 *var_r25; + M418DllUnkStruct *var_r18; + + var_r26 = &lbl_1_bss_3EC; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + temp_r31 = &lbl_1_bss_26C[var_r26->unk4[var_r29]]; + temp_r27 = fn_1_B0C8(&lbl_1_bss_38, 0); + temp_r31->unk4C = fn_1_5DF0(temp_r31->unk0, temp_r27); + if (temp_r31->unk4C != -1) { + sp14.x = lbl_1_data_318[temp_r31->unk4C].x; + sp14.y = lbl_1_data_318[temp_r31->unk4C].y; + sp14.z = (75.0f * var_r29) + lbl_1_data_318[temp_r31->unk4C].z; + fn_1_3444(temp_r31->unk0, sp14, -1.0f, 9.0f); + if (temp_r31->unk0->trans.z <= -720.0f) { + temp_r31->unk0->trans.z = -720.0f; + } + if (temp_r31->unk0->trans.z >= -480.0f) { + temp_r31->unk0->trans.z = -480.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0xF0) { + temp_r31->unk0->trans.x = temp_r31->unk0->trans.y = -5000.0f; + fn_1_ABC4(temp_r31->unk0, 0, 0, 0xA, 1); + } + } + } + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + var_r25 = &lbl_1_bss_11C[var_r29]; + var_r25->unk0->rot.y += 1.2f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + fn_1_6740(1); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_6DCC(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct4 *temp_r30; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_11C[var_r31]; + temp_r30->unk0->rot.y = 0.0f; + fn_1_ABC4(temp_r30->unk0, 0, 0, 0x1E, 1); + } + fn_1_6740(2); +} + +s32 fn_1_6E6C(s32 arg0) +{ + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_6EB4(s32 arg0) +{ + M418DllUnkStruct6 *var_r31 = &lbl_1_bss_3EC; + s32 var_r30; + M418DllUnkStruct3 *temp_r29; + + var_r31->unk34 = 0; + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r29 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (temp_r29->unk4C == -1) { + var_r31->unk34++; + temp_r29->unk50 = 0; + } + } +} + +s32 fn_1_6F38(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct2 *temp_r29; + M418DllUnkStruct6 *temp_r28; + M418DllUnkStruct2 *temp_r27; + + s32 var_r26; + s32 var_r30; + f32 var_f31; + + temp_r29 = &lbl_1_bss_1E0; + temp_r28 = &lbl_1_bss_3EC; + + if (temp_r28->unk34 == 0) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[temp_r28->unk4[var_r30]]; + if (temp_r31->unk4C == -1) { + if (temp_r29->unk4[var_r30] == 0) { + if ((rand8() % 10) == 0) { + var_r26 = 1; + } + else { + var_r26 = 0; + } + if ((var_r26 != 0) || (fn_1_B0C8(&lbl_1_bss_38, 0) >= 10)) { + HuAudFXPlay(0x5DC); + HuAudCharVoicePlay(temp_r31->unk14, 0x128); + temp_r29->unk4[var_r30] = 2; + Hu3DModelShadowDispOff(temp_r31->unk0->model[0]); + fn_1_ABC4(temp_r31->unk0, 0, 7, 0x1E, 0); + temp_r31->unk50 = fn_1_B0C8(&lbl_1_bss_38, 0); + omVibrate(temp_r31->unk4, 0xC, 6, 6); + } + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x1E)) { + temp_r31->unk0->trans.y -= 15.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x3C)) { + var_f31 = fn_1_AA30(-200.0f, -110.0f, fn_1_B0C8(&lbl_1_bss_38, 0) - (temp_r31->unk50 + 0x3C), 90.0f); + Hu3DModelPosSet(temp_r29->unk0->model[var_r30 + 8], -350.0f + (360.0f * var_r30), var_f31, -660.0f); + Hu3DModelRotSet(temp_r29->unk0->model[var_r30 + 8], 0.0f, 0.0f, 20.0f); + } + } + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + temp_r27 = &lbl_1_bss_1E0; + temp_r27->unk4[0] = temp_r27->unk4[1] = temp_r27->unk4[2] = 3; + if (temp_r28->unk34 >= 3) { + return 1; + } + return fn_1_B034(&lbl_1_bss_38, 9); + } + else { + return 0; + } +} + +void fn_1_7294(s32 arg0) { } + +s32 fn_1_7298(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct6 *temp_r29; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30 = &lbl_1_bss_11C[temp_r29->unk38]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) < 0x3C) { + if (((temp_r30->unk0->work[0] == 0) || (temp_r30->unk0->work[1] == 0x18)) && (temp_r30->unk0->rot.y > -50.0f)) { + temp_r30->unk0->rot.y -= 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + if (temp_r31->unk0->rot.y < 180.0f) { + temp_r31->unk0->rot.y += 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + HuAudFXPlay(0x40); + fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); + fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { + temp_r31->unk3C += 0.025f; + if (temp_r31->unk3C >= 1.0f) { + temp_r31->unk3C = 1.0f; + } + } + } + else { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + else { + return 0; + } +} + +void fn_1_7570(s32 arg0) +{ + M418DllUnkStruct6 *var_r31 = &lbl_1_bss_3EC; + M418DllUnkStruct3 *var_r30 = &lbl_1_bss_26C[var_r31->unk0]; + var_r30->unk4C = -1; + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = 0x12C; + } +} + +s32 fn_1_75E4(s32 arg0) +{ + Mtx sp38; + Mtx sp8; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *var_r30; + s32 var_r29; + + var_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[var_r30->unk0]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 10) { + temp_r31->unk4C = fn_1_6038(temp_r31->unk0, fn_1_B0C8(&lbl_1_bss_38, 0)); + if (temp_r31->unk4C != -1) { + if (lbl_1_bss_8 == 2) { + lbl_1_bss_8 = 3; + lbl_1_bss_4 = 0x1E; + } + return fn_1_AF38(&lbl_1_bss_38); + } + } + fn_1_B0C8(&lbl_1_bss_38, 1); + var_r29 = 0; + if (lbl_1_bss_8 == 3) { + var_r29 = 1; + } + if (var_r29 != 0) { + Hu3DModelObjMtxGet(temp_r31->unk0->model[0], lbl_1_data_1C0[temp_r31->unk14], sp8); + Hu3DModelObjMtxGet(temp_r31->unk0->model[12], "g031i00-itemhook_eff", sp38); + Hu3DModelPosSet(temp_r31->unk0->model[13], sp38[0][3] + sp8[0][3], 80.0f + (sp38[1][3] + sp8[1][3]), sp38[2][3] + sp8[2][3]); + Hu3DModelScaleSet(temp_r31->unk0->model[13], 0.5f, 0.5f, 0.5f); + Hu3DMotionSpeedSet(temp_r31->unk0->model[13], 2.0f); + fn_1_ABC4(temp_r31->unk0, 0xD, 0xD, 0, 0); + return fn_1_AF38(&lbl_1_bss_38); + } + else { + return 0; + } +} + +void fn_1_77F8(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + M418DllUnkStruct3 *var_r30; + + var_r31 = &lbl_1_bss_3EC; + var_r30 = &lbl_1_bss_26C[var_r31->unk0]; + if (var_r30->unk4C == -1) { + HuAudFXFadeOut(lbl_1_bss_240[8], 0x3E8); + } +} + +s32 fn_1_7860(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + if (temp_r31->unk4C == -1) { + temp_r31->unk3C -= 0.025f; + if (temp_r31->unk3C <= 0.0f) { + temp_r31->unk3C = 0.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + } + else { + temp_r31->unk0->rot.y = fn_1_A940(180.0f, 200.0f - (10.0f * temp_r31->unk4C), fn_1_B0C8(&lbl_1_bss_38, 0), 10.0f); + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0xA) { + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[10]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + temp_r31->unk5C = 1; + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + temp_r31->unk5C = 2; + return fn_1_AF38(&lbl_1_bss_38); + } + } + return 0; +} + +void fn_1_7A68(s32 arg0) +{ + M418DllUnkStruct6 *temp_r31; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r29; + s32 var_r28; + M418DllUnkStruct3 *temp_r27; + s32 var_r26; + + var_r26 = 0; + temp_r31 = &lbl_1_bss_3EC; + temp_r30 = &lbl_1_bss_26C[temp_r31->unk0]; + if (temp_r30->unk4C != -1) { + temp_r31->unk10[0] = temp_r31->unk10[1] = temp_r31->unk10[2] = -1; + + for (var_r28 = 0; var_r28 < 3; var_r28++) { + temp_r27 = &lbl_1_bss_26C[temp_r31->unk4[var_r28]]; + if (temp_r30->unk4C == temp_r27->unk4C) { + temp_r31->unk10[var_r26++] = temp_r27->unk0->work[0]; + } + } + temp_r29 = &lbl_1_bss_170[temp_r30->unk4C]; + temp_r29->unkC = 0; + if (temp_r31->unk10[0] == -1) { + temp_r29->unk10 = 1; + } + temp_r29->unk0->work[1] = 1; + } +} + +s32 fn_1_7B68(s32 arg0) +{ + Mtx sp8; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + M418DllUnkStruct3 *temp_r29; + M418DllUnkStruct4 *temp_r28; + s32 var_r27; + s32 var_r26; + M418DllUnkStruct *temp_r21; + + var_r26 = -1; + temp_r30 = &lbl_1_bss_3EC; + temp_r29 = &lbl_1_bss_26C[temp_r30->unk0]; + temp_r28 = &lbl_1_bss_170[temp_r29->unk4C]; + if (temp_r29->unk4C == -1) { + return fn_1_AF38(&lbl_1_bss_38); + } + if (temp_r28->unkC == 1) { + fn_1_6740(3); + } + if (temp_r28->unkC == 3) { + + for (var_r27 = 0; var_r27 < 3; var_r27++) { + if (temp_r30->unk10[var_r27] != -1) { + temp_r31 = &lbl_1_bss_26C[temp_r30->unk10[var_r27]]; + Hu3DModelObjMtxGet(*temp_r28->unk0->model, "taihou-null4", (f32(*)[4]) & sp8[0]); + omSetTra(temp_r31->unk0, sp8[0][3], sp8[1][3] - 25.0f, 50.0f + sp8[2][3]); + omSetRot(temp_r31->unk0, 0.0f, 180.0f, 0.0f); + fn_1_AD14(temp_r31->unk0, 0, 8, 0, 2); + temp_r31->unk4C = -1; + temp_r31->unk24 = 0; + if (var_r26 >= 2) { + var_r26 = 1; + } + temp_r31->unk30 = var_r26++; + temp_r31->unk28 = 0.0f; + omVibrate((s16)temp_r29->unk4, 0xC, 4, 2); + } + } + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_7D80(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; + + temp_r29 = &lbl_1_bss_3EC; + temp_r30 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30->unk0->rot.y = 180.0f; + temp_r30->unk3C = 0.0f; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r28 = &lbl_1_bss_11C[var_r31]; + temp_r28->unk0->rot.y = 0.0f; + } +} + +s32 fn_1_7E24(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + s32 var_r30; + s32 var_r29; + M418DllUnkStruct4 *var_r28; + M418DllUnkStruct4 *var_r27; + M418DllUnkStruct4 *var_r26; + M418DllUnkStruct3 *var_r25; + + var_r29 = 0; + var_r31 = &lbl_1_bss_3EC; + var_r28 = &lbl_1_bss_11C[0]; + var_r27 = &lbl_1_bss_11C[1]; + var_r26 = &lbl_1_bss_11C[2]; + if (var_r31->unk38 == 2) { + var_r28->unk0->work[1] = 0; + var_r27->unk0->work[1] = 0; + var_r26->unk0->work[1] = 3; + return 1; + } + var_r31->unk38++; + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r25 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (var_r25->unk4C != -1) { + var_r29++; + } + } + if (var_r29 == 0) { + return 1; + } + else { + return fn_1_AF38(&lbl_1_bss_38); + } +} + +void fn_1_7F1C(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + M418DllUnkStruct4 *var_r30; + M418DllUnkStruct4 *var_r29; + M418DllUnkStruct4 *var_r28; + + var_r31 = &lbl_1_bss_3EC; + var_r30 = &lbl_1_bss_11C[0]; + var_r29 = &lbl_1_bss_11C[1]; + var_r28 = &lbl_1_bss_11C[2]; + if (var_r31->unk38 == 1) { + var_r30->unk0->work[1] = 3; + var_r29->unk0->work[1] = 2; + var_r28->unk0->work[1] = 1; + } + else if (var_r31->unk38 == 2) { + var_r30->unk0->work[1] = 0; + var_r29->unk0->work[1] = 3; + var_r28->unk0->work[1] = 2; + } +} + +s32 fn_1_7FD4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + M418DllUnkStruct4 *temp_r29; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + if (temp_r31->unk4C == -1) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 30) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 120) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + } + else { + temp_r29 = &lbl_1_bss_170[temp_r31->unk4C]; + if (temp_r29->unk10 != 0) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 210) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 300) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + } + else { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 30) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 120) { + return fn_1_B034(&lbl_1_bss_38, 3); + } + } + } + fn_1_B0C8(&lbl_1_bss_38, 1); + return 0; +} + +void fn_1_81A0(s32 arg0) { } + +s32 fn_1_81A4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct6 *temp_r29; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30 = &lbl_1_bss_11C[temp_r29->unk38]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) < 0x3C) { + if (((temp_r30->unk0->work[0] == 0) || (temp_r30->unk0->work[1] == 0x18)) && (temp_r30->unk0->rot.y > -50.0f)) { + temp_r30->unk0->rot.y -= 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + if (temp_r31->unk0->rot.y < 180.0f) { + temp_r31->unk0->rot.y += 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + HuAudFXPlay(0x40); + fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); + fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { + temp_r31->unk3C += 0.025f; + if (temp_r31->unk3C >= 1.0f) { + temp_r31->unk3C = 1.0f; + } + } + } + else { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_B034(&lbl_1_bss_38, 4); + } + else { + return 0; + } +} + +M418DllUnkStruct8 lbl_1_data_348[11] = { { fn_1_6808, fn_1_6914, 300 }, { fn_1_6DCC, fn_1_6E6C, 60 }, { fn_1_6EB4, fn_1_6F38, 180 }, + { fn_1_7294, fn_1_7298, 300 }, { fn_1_7570, fn_1_75E4, 300 }, { fn_1_77F8, fn_1_7860, 60 }, { fn_1_7A68, fn_1_7B68, 180 }, + { fn_1_7D80, fn_1_7E24, -1 }, { fn_1_7F1C, fn_1_7FD4, 300 }, { fn_1_81A0, fn_1_81A4, 240 }, { NULL, NULL, -1 } }; + +void fn_1_8480(void) +{ + fn_1_AEDC(&lbl_1_bss_38, &lbl_1_data_348[0]); +} + +s32 fn_1_84B0(void) +{ + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_38.unk10 != NULL) { + lbl_1_bss_38.unk10(); + lbl_1_bss_38.unk10 = NULL; + } + if (lbl_1_bss_38.unk14 != NULL) { + var_r31 = lbl_1_bss_38.unk14(); + } + return var_r31; +} + +void fn_1_8548(void) +{ + M418DllUnkStruct sp38; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.rot.x++; + fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 60.0f, 10.0f); +} + +void fn_1_8668(void) +{ + M418DllUnkStruct sp8; + f32 temp_f1; + + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + + sp8.center.x = sp8.center.y = 0.0f; + sp8.center.z = -500.0f; + sp8.rot.x = -20.0f; + sp8.rot.y = sp8.rot.z = 0.0f; + sp8.zoom = 1000.0f; + fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); +} + +void fn_1_8728(void) +{ + M418DllUnkStruct sp8; + M418DllUnkStruct *var_r31; + + var_r31 = &lbl_1_bss_1F4; + + sp8.center.x = var_r31->center.x; + sp8.center.y = var_r31->center.y; + sp8.center.z = var_r31->center.z; + sp8.rot.x = var_r31->rot.x; + sp8.rot.y = var_r31->rot.y; + sp8.rot.z = var_r31->rot.z; + sp8.zoom = 500.0f; + fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); +} + +void fn_1_87D0(s32 arg0) +{ + M418DllUnkStruct *var_r31; + + var_r31 = &lbl_1_bss_1F4; + + fn_1_B458(var_r31); + switch (arg0) { + case 0: + fn_1_248(fn_1_8548); + break; + case 1: + fn_1_248(fn_1_8668); + break; + case 2: + fn_1_248(fn_1_8728); + break; + } +} + +void fn_1_888C(s32 arg0) +{ + HuAudAUXVolSet(-1, -1); +} + +s32 fn_1_88B4(s32 arg0) +{ + s32 var_r31; + M418DllUnkStruct6 *var_r30; + s32 var_r29; + M418DllUnkStruct3 *var_r28; + M418DllUnkStruct3 *var_r27; + M418DllUnkStruct *var_r23; + + var_r29 = 5; + var_r30 = &lbl_1_bss_3EC; + + fn_1_87D0(0); + lbl_1_bss_10 = 0; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r28 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + if (var_r28->unk4C != -1) { + var_r29 = 1; + lbl_1_bss_10 = 1; + } + } + if (var_r29 == 5) { + var_r27 = &lbl_1_bss_26C[var_r30->unk0]; + var_r27->unk0->rot.y = 0.0f; + } + fn_1_B034(&lbl_1_bss_20, var_r29); +} + +void fn_1_89B0(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + s32 var_r30; + s32 var_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct4 *temp_r27; + + var_r29 = 0; + var_r31 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r28 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (temp_r28->unk4C != -1) { + var_r31->unk1C[var_r29] = var_r31->unk28[var_r29] = temp_r28->unk4C; + var_r29++; + } + } + switch (var_r29) { /* irregular */ + case 1: + var_r31->unk1C[0] = 3; + break; + case 2: + var_r31->unk1C[0] = 4; + var_r31->unk1C[1] = 5; + break; + case 3: + var_r31->unk1C[0] = 0; + var_r31->unk1C[1] = 1; + var_r31->unk1C[2] = 2; + break; + } + if (var_r31->unk28[0] == var_r31->unk28[1]) { + var_r31->unk28[1] = -1; + } + if (var_r31->unk28[0] == var_r31->unk28[1]) { + var_r31->unk28[1] = -1; + } + if (var_r31->unk28[1] == var_r31->unk28[2]) { + var_r31->unk28[2] = -1; + } + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r27 = &lbl_1_bss_170[var_r30]; + temp_r27->unkC = 0; + } +} + +s32 fn_1_8B14(s32 arg0) +{ + M418DllUnkStruct4 *temp_r31; + s32 var_r30; + M418DllUnkStruct6 *var_r29; + s32 var_r28; + + var_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (var_r29->unk28[var_r30] != -1) { + temp_r31 = &lbl_1_bss_170[var_r29->unk28[var_r30]]; + if (temp_r31->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r28 = 1; + } + else { + var_r28 = 0; + } + if ((var_r28 != 0) || (fn_1_B0C8(&lbl_1_bss_20, 0) >= 5)) { + temp_r31->unkC = 1; + HuAudFXPlay(0x5D3); + } + } + else { + temp_r31->unk4 += 5.0f; + if (temp_r31->unk4 >= 90.0f) { + temp_r31->unk4 = 90.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } + else { + return 0; + } +} + +void fn_1_8C84(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct3 *temp_r28; + s32 var_r27; + s32 temp_r0; + + var_r27 = 0; + temp_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[temp_r29->unk4[var_r30]]; + if (temp_r31->unk4C != -1) { + omSetRot(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + temp_r31->unk50 = var_r27 * -10; + temp_r31->unk54 = 0; + temp_r31->unk58 = var_r27++; + } + } + temp_r28 = &lbl_1_bss_26C[temp_r29->unk0]; + Hu3DMotionOverlayReset(*temp_r28->unk0->model); + temp_r28->unk0->work[1] = 1; +} + +Vec lbl_1_data_3CC[4] = { { -540.0f, 225.0f, -900.0f }, { -180.0f, 225.0f, -900.0f }, { 180.0f, 225.0f, -900.0f }, { 540.0f, 225.0f, -900.0f } }; + +Vec lbl_1_data_3FC[6] = { { -200.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, -400.0f }, { 200.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, -400.0f }, + { -100.0f, 0.0f, -425.0f }, { 100.0f, 0.0f, -425.0f } }; + +s32 fn_1_8D70(s32 arg0) +{ + s32 sp10; + s32 spC; + s32 sp8; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + s32 var_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct3 *temp_r27; + omObjData *var_r26; + s32 temp_r3; + void *temp_r4; + + temp_r30 = &lbl_1_bss_3EC; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + temp_r31 = &lbl_1_bss_26C[temp_r30->unk4[var_r29]]; + if (temp_r31->unk4C != -1) { + if (temp_r31->unk54 == 0) { + if (temp_r31->unk50++ == 0) { + temp_r31->unk54 = 1; + omSetTra(temp_r31->unk0, lbl_1_data_3CC[temp_r31->unk4C].x, lbl_1_data_3CC[temp_r31->unk4C].y, + lbl_1_data_3CC[temp_r31->unk4C].z - 50.0f); + var_r26 = temp_r31->unk0; + temp_r28 = &lbl_1_bss_26C[var_r26->work[0]]; + if (temp_r28->unk1C == 0) { + temp_r28->unk1C = 1; + } + } + } + else if (temp_r31->unk54 == 1) { + fn_1_3EB0(temp_r31->unk0, lbl_1_data_3FC[temp_r30->unk1C[temp_r31->unk58]], 0.0f, 12.0f); + } + } + } + temp_r27 = &lbl_1_bss_26C[temp_r30->unk0]; + if (fn_1_B0C8(&lbl_1_bss_20, 0) == 0x1E) { + fn_1_ABC4(temp_r27->unk0, 0, 0, 0xA, 1); + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } + else { + return 0; + } +} + +void fn_1_8F74(s32 arg0) +{ + s32 sp8[3]; + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + M418DllUnkStruct6 *var_r29; + M418DllUnkStruct3 *temp_r28; + + var_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r29->unk4[var_r30]]; + if (temp_r31->unk4C != -1) { + fn_1_ABC4(temp_r31->unk0, 0, 5, 10, 0); + } + sp8[var_r30] = temp_r31->unk14; + } + temp_r28 = &lbl_1_bss_26C[var_r29->unk0]; + fn_1_ABC4(temp_r28->unk0, 0, 6, 10, 0); + fn_1_87D0(1); + lbl_1_bss_14 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], -1); + HuAudSStreamPlay(1); +} + +s32 fn_1_9094(s32 arg0) +{ + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } + else { + return 0; + } +} + +void fn_1_90DC(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + Hu3DMotionOverlayReset(temp_r31->unk0->model[0]); + temp_r31->unk0->work[1] = 1; +} + +s32 fn_1_9140(s32 arg0) +{ + M418DllUnkStruct6 *temp_r31; + M418DllUnkStruct3 *temp_r30; + + temp_r31 = &lbl_1_bss_3EC; + + temp_r30 = &lbl_1_bss_26C[temp_r31->unk0]; + if (fn_1_B0C8(&lbl_1_bss_20, 0) == 0x1E) { + fn_1_ABC4(temp_r30->unk0, 0, 0, 0xA, 1); + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } + else { + return 0; + } +} + +void fn_1_91E4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + Hu3DMotionOverlayReset(temp_r31->unk0->model[0]); + fn_1_ABC4(temp_r31->unk0, 0, 5, 10, 0); + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r28 = &lbl_1_bss_11C[var_r30]; + fn_1_ABC4(temp_r28->unk0, 0, 3, 10, 1); + } + fn_1_87D0(2); + lbl_1_bss_14 = MGSeqCreate(5, 3, temp_r31->unk14, -1, -1, -1); + HuAudSStreamPlay(1); +} + +s32 fn_1_92EC(s32 arg0) +{ + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } + else { + return 0; + } +} + +M418DllUnkStruct8 lbl_1_data_444[8] = { { fn_1_888C, fn_1_88B4, -1 }, { fn_1_89B0, fn_1_8B14, 90 }, { fn_1_8C84, fn_1_8D70, 180 }, + { fn_1_8F74, fn_1_9094, 210 }, { NULL, NULL, -1 }, { fn_1_90DC, fn_1_9140, 180 }, { fn_1_91E4, fn_1_92EC, 240 }, { NULL, NULL, -1 } }; + +void fn_1_9334(void) +{ + fn_1_AEDC(&lbl_1_bss_20, &lbl_1_data_444[0]); +} + +s32 fn_1_9364(void) +{ + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_20.unk10 != NULL) { + lbl_1_bss_20.unk10(); + lbl_1_bss_20.unk10 = NULL; + } + if (lbl_1_bss_20.unk14 != NULL) { + var_r31 = lbl_1_bss_20.unk14(); + } + return var_r31; +} + +void fn_1_93FC(omObjData *object) +{ + s32 var_r31; + M418DllUnkStruct6 *var_r30; + M418DllUnkStruct3 *var_r29; + M418DllUnkStruct3 *var_r28; + s32 temp_r27; + s32 temp_r26; + + if (WipeStatGet() == 0) { + var_r30 = &lbl_1_bss_3EC; + if (lbl_1_bss_10 != 0) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r29 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + temp_r27 = var_r29->unk4; + if (_CheckFlag(0x1000C) == 0) { + GWPlayer[temp_r27].coin_win = 10; + } + } + } + else { + var_r28 = &lbl_1_bss_26C[var_r30->unk0]; + temp_r26 = var_r28->unk4; + if (_CheckFlag(0x1000CU) == 0) { + GWPlayer[temp_r26].coin_win = 10; + } + } + HuAudFadeOut(0x3E8); + CharModelKill(-1); + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + object->func = NULL; + } +} + +void fn_1_952C(omObjData *object) +{ + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(0xFA); + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + } +} + +void fn_1_958C(void) +{ + M418DllUnkStruct3 *temp_r31; + s32 var_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct2 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct4 *temp_r26; + M418DllUnkStruct3 *temp_r25; + s32 temp_r0; + s32 var_r24; + + var_r24 = 0; + temp_r28 = &lbl_1_bss_1E0; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 2); + } + + for (var_r30 = 8; var_r30 < 11; var_r30++) { + fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 1); + Hu3DModelPosSet(temp_r28->unk0->model[var_r30 + 8], -360.0f + (360.0f * (var_r30 - 8)), -200.0f, -660.0f); + Hu3DModelRotSet(temp_r28->unk0->model[var_r30], 0.0f, 0.0f, 20.0f); + } + + temp_r28->unk4[0] = temp_r28->unk4[1] = temp_r28->unk4[2] = temp_r28->unk4[3] = 0; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r27 = &lbl_1_bss_170[var_r30]; + temp_r27->unk0->work[1] = temp_r27->unk0->work[2] = 0; + temp_r27->unk4 = 0.0f; + temp_r27->unkC = temp_r27->unk10 = temp_r27->unk14s = temp_r27->unk18s = 0; + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r26 = &lbl_1_bss_11C[var_r30]; + omSetTra(temp_r26->unk0, lbl_1_data_8C[var_r30].x, lbl_1_data_8C[var_r30].y, lbl_1_data_8C[var_r30].z); + omSetRot(temp_r26->unk0, 0.0f, 0.0f, 0.0f); + omSetSca(temp_r26->unk0, 1.0f, 1.0f, 1.0f); + fn_1_AD14(temp_r26->unk0, 0, 0, 10, 1); + temp_r26->unk0->work[1] = -1U; + } + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r30]; + if (temp_r31->unk8 != 0) { + omSetTra(temp_r31->unk0, 0.0f, -5000.0f, 0.0f); + } + else { + omSetTra(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + } + omSetRot(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + omSetSca(temp_r31->unk0, 1.0f, 1.0f, 1.0f); + if (temp_r31->unk8 == 0) { + Hu3DModelAttrReset(temp_r31->unk0->model[11], 1); + Hu3DModelHookSet(temp_r31->unk0->model[0], lbl_1_data_1C0[temp_r31->unk14], temp_r31->unk0->model[11]); + Hu3DModelPosSet(temp_r31->unk0->model[11], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(temp_r31->unk0->model[11], 0.0f, 0.0f, 0.0f); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 0.0f); + } + fn_1_ABC4(temp_r31->unk0, 0, 0, 0, 1); + Hu3DModelShadowDispOn(temp_r31->unk0->model[0]); + temp_r31->unk4C = temp_r31->unk50 = temp_r31->unk54 = temp_r31->unk58 = temp_r31->unk5C = 0; + temp_r31->unk24 = -1; + temp_r31->unk28 = temp_r31->unk2C = temp_r31->unk30 = temp_r31->unk34 = temp_r31->unk38 = 0.0f; + } + + temp_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0, var_r24 = 0; var_r30 < 4; var_r30++) { + temp_r25 = &lbl_1_bss_26C[var_r30]; + if (temp_r25->unk8 != 0) { + temp_r29->unk4[var_r24++] = temp_r25->unk4; + } + else { + temp_r29->unk0 = temp_r25->unk4; + } + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r29->unk1C[var_r30] = temp_r29->unk28[var_r30] = -1; + temp_r29->unk10[var_r30] = -1; + } + + temp_r29->unk34 = temp_r29->unk38 = temp_r29->unk3C = temp_r29->unk40 = 0; + fn_1_5D28(); + fn_1_8480(); + fn_1_9334(); + + for (var_r30 = 0; var_r30 < 10; var_r30++) { + lbl_1_bss_240[var_r30] = -1; + } + lbl_1_bss_240[6] = HuAudFXPlay(0x5D7); + lbl_1_bss_240[7] = HuAudFXPlay(0x5D8); +} + +void fn_1_9BA4(omObjData *object) +{ + switch (lbl_1_bss_18) { + case 0: + fn_1_958C(); + lbl_1_bss_18 = 1; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_18 = 2; + } + break; + case 2: + if (fn_1_5D58()) { + lbl_1_bss_18 = 3; + } + break; + case 3: + lbl_1_bss_1C = MGSeqCreate(3, 0); + lbl_1_bss_18 = 4; + lbl_1_data_0[1] = -1; + break; + case 4: + if (((MGSeqStatGet(lbl_1_bss_1C) & 0x10) != 0) && (lbl_1_data_0[1] == -1)) { + lbl_1_data_0[1] = HuAudSeqPlay(0x49); + } + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 5; + } + break; + case 5: + if (fn_1_84B0()) { + lbl_1_bss_18 = 6; + } + break; + case 6: + lbl_1_bss_1C = MGSeqCreate(3, 1); + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(0x64); + lbl_1_bss_18 = 7; + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 8; + } + break; + case 8: + if (fn_1_9364()) { + lbl_1_bss_18 = 9; + } + break; + case 9: + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + break; + default: + lbl_1_bss_18 = 0; + break; + } + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(0xFA); + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + } +} + +void fn_1_9F94(omObjData *object) +{ + s32 var_r31; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct2 *temp_r27; + M418DllWorkStruct *temp_r26; + + temp_r27 = &lbl_1_bss_1E0; + temp_r27->unk0 = omAddObjEx(lbl_1_bss_0, 0x100, 0x14U, 0x14U, -1, fn_1_B4C); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r30 = &lbl_1_bss_170[var_r31]; + temp_r30->unk0 = omAddObjEx(lbl_1_bss_0, 0x200, 0x14U, 0x14U, -1, fn_1_14F0); + temp_r30->unk0->work[0] = var_r31; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r29 = &lbl_1_bss_11C[var_r31]; + temp_r29->unk0 = omAddObjEx(lbl_1_bss_0, 0x300, 0x14U, 0x14U, -1, fn_1_29A0); + temp_r29->unk0->work[0] = var_r31; + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r28 = &lbl_1_bss_26C[var_r31]; + temp_r28->unk0 = omAddObjEx(lbl_1_bss_0, 0x400, 0x14U, 0x14U, -1, fn_1_4F60); + temp_r28->unk0->work[0] = var_r31; + } + + temp_r26 = &lbl_1_bss_68; + temp_r26->unk0 = omAddObjEx(lbl_1_bss_0, 0x500, 0xBU, 0xBU, -1, fn_1_3054); + WipeCreate(1, 0, -1); + object->func = fn_1_9BA4; +} + +#include "src/REL/executor.c" + +void fn_1_A1F0(void) +{ + lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); + omGameSysInit(lbl_1_bss_0); + HuAudAUXVolSet(-1, -1); + fn_1_0(); + fn_1_500(); + fn_1_618(); + fn_1_3138(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0U, 0U, -1, fn_1_9F94); + omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_780); +} + +void ObjectSetup(void) +{ + fn_1_A1F0(); +} diff --git a/src/REL/m418Dll/sequence.c b/src/REL/m418Dll/sequence.c new file mode 100644 index 00000000..9ccd5985 --- /dev/null +++ b/src/REL/m418Dll/sequence.c @@ -0,0 +1,252 @@ +#include "REL/m418Dll.h" + +f32 fn_1_A920(f32 arg0, f32 arg1, f32 arg2) { + return (arg1 + (arg0 * (arg2 - 1.0f))) / arg2; +} + +f32 fn_1_A940(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg2 / arg3) * (arg1 - arg0)); +} + +f32 fn_1_A968(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return arg8 + (arg9 - arg8) * sind(((90.0f / argB) * argA)); +} + +f32 fn_1_AA30(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +f32 fn_1_AAEC(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return (arg8 + (arg9 - arg8) * (1.0 - cosd((90.0f / argB) * argA))); +} + +void fn_1_ABC4(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg4 == 1) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + return; + } + if (arg4 == 2) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + return; + } + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); +} + +void fn_1_AD14(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; + if (arg4 == 1) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + return; + } + if (arg4 == 2) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + return; + } + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + } +} + +void fn_1_AE8C(M418DllUnkStruct7* arg0) { + arg0->unk8 = 0; + arg0->unkC = arg0->unk4[arg0->unk0].unk8; + arg0->unk10 = (M418DllFunc)arg0->unk4[arg0->unk0].unk0; + arg0->unk14 = (M418DllRetFunc)arg0->unk4[arg0->unk0].unk4; +} + +void fn_1_AEDC(M418DllUnkStruct7* arg0, M418DllUnkStruct8* arg1) { + arg0->unk0 = 0; + arg0->unk4 = arg1; + fn_1_AE8C(arg0); +} + +s32 fn_1_AF38(M418DllUnkStruct7* arg0) { + arg0->unk0++; + fn_1_AE8C(arg0); + if ((arg0->unk10 == NULL) && (arg0->unk14 == NULL)) { + return 1; + } + return 0; +} + +s32 fn_1_AFC0(M418DllUnkStruct7* arg0) { + arg0->unk0--; + if (arg0->unk0 < 0) { + return 1; + } + fn_1_AE8C(arg0); + return 0; +} + +s32 fn_1_B034(M418DllUnkStruct7* arg0, s32 arg1) { + arg0->unk0 = arg1; + if (arg0->unk0 < 0) { + return 1; + } + fn_1_AE8C(arg0); + if ((arg0->unk10 == NULL) && (arg0->unk14 == NULL)) { + return 1; + } + return 0; +} + +s32 fn_1_B0C8(M418DllUnkStruct7* arg0, s32 arg1) { + if (arg1 == 0) { + return arg0->unk8; + } + arg0->unk8 += arg1; + if (arg0->unk8 >= arg0->unkC) { + return 1; + } + return 0; +} + +void fn_1_B104(M418DllUnkStruct* arg0, Vec arg1, Vec arg2) { + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f27; + + temp_f31 = arg1.x - arg2.x; + temp_f29 = arg1.y - arg2.y; + temp_f30 = arg1.z - arg2.z; + arg0->unk10.x = arg2.x; + arg0->unk10.y = arg2.y; + arg0->unk10.z = arg2.z; + arg0->unk38 = sqrtf((temp_f30 * temp_f30) + ((temp_f31 * temp_f31) + (temp_f29 * temp_f29))); + temp_f27 = atan2d(temp_f30, temp_f31); + arg0->unk28.x = -atan2d(temp_f29, (temp_f31 * cosd(-temp_f27)) + (temp_f30 * -sind(-temp_f27))); + arg0->unk28.y = -(temp_f27 - 90.0f); + arg0->unk28.z = 0.0f; +} + +void fn_1_B41C(M418DllUnkStruct* arg0) { + arg0->center.x = arg0->unk10.x; + arg0->center.y = arg0->unk10.y; + arg0->center.z = arg0->unk10.z; + arg0->rot.x = arg0->unk28.x; + arg0->rot.y = arg0->unk28.y; + arg0->rot.z = arg0->unk28.z; + arg0->zoom = arg0->unk38; +} + +void fn_1_B458(M418DllUnkStruct* arg0) { + arg0->unk48 = 0.0f; + arg0->unk10.x = arg0->center.x; + arg0->unk10.y = arg0->center.y; + arg0->unk10.z = arg0->center.z; + arg0->unk28.x = arg0->rot.x; + arg0->unk28.y = arg0->rot.y; + arg0->unk28.z = arg0->rot.z; + arg0->unk38 = arg0->zoom; +} + +void fn_1_B4A4(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8) { + arg0->center.x = fn_1_A920(arg0->center.x, arg1->unk10.x, arg8); + arg0->center.y = fn_1_A920(arg0->center.y, arg1->unk10.y, arg8); + arg0->center.z = fn_1_A920(arg0->center.z, arg1->unk10.z, arg8); + arg0->rot.x = fn_1_A920(arg0->rot.x, arg1->unk28.x, arg8); + arg0->rot.y = fn_1_A920(arg0->rot.y, arg1->unk28.y, arg8); + arg0->rot.z = fn_1_A920(arg0->rot.z, arg1->unk28.z, arg8); + arg0->zoom = fn_1_A920(arg0->zoom, arg1->unk38, arg8); +} + +void fn_1_B710(M418DllUnkStruct* arg0, f32 arg1) { + arg0->center.x = fn_1_A920(arg0->center.x, arg0->unk10.x, arg1); + arg0->center.y = fn_1_A920(arg0->center.y, arg0->unk10.y, arg1); + arg0->center.z = fn_1_A920(arg0->center.z, arg0->unk10.z, arg1); + arg0->rot.x = fn_1_A920(arg0->rot.x, arg0->unk28.x, arg1); + arg0->rot.y = fn_1_A920(arg0->rot.y, arg0->unk28.y, arg1); + arg0->rot.z = fn_1_A920(arg0->rot.z, arg0->unk28.z, arg1); + arg0->zoom = fn_1_A920(arg0->zoom, arg0->unk38, arg1); +} + +void fn_1_B97C(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_A940(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_A940(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_A940(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_A940(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_A940(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_A940(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_A940(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_BBF8(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_B97C(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_BEAC(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_B97C(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} + +void fn_1_C318(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_A968(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_A968(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_A968(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_A968(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_A968(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_A968(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_A968(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_C76C(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_C318(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_CBF8(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_C318(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} + +void fn_1_D250(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_AAEC(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_AAEC(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_AAEC(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_AAEC(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_AAEC(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_AAEC(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_AAEC(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_D714(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_D250(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_DC10(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_D250(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c new file mode 100755 index 00000000..dd58a28a --- /dev/null +++ b/src/REL/m419Dll/main.c @@ -0,0 +1,3085 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +typedef struct { + /* 0x00 */ omObjData *unk00; + /* 0x04 */ char unk04[0xB4]; +} StructBssC8; // Size 0xB8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02[5]; +} StructBss1E8; // Size 0xC + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06[8]; + /* 0x16 */ s16 unk16; + /* 0x18 */ s16 unk18; + /* 0x1A */ s16 unk1A; + /* 0x1C */ s16 unk1C[4]; + /* 0x24 */ s16 unk24; + /* 0x26 */ char unk26[2]; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ s32 unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ float unk54; + /* 0x58 */ float unk58; + /* 0x5C */ float unk5C; + /* 0x60 */ float unk60; + /* 0x64 */ float unk64; + /* 0x68 */ float unk68; + /* 0x6C */ float unk6C; + /* 0x70 */ float unk70; + /* 0x74 */ float unk74; + /* 0x78 */ float unk78; + /* 0x7C */ float unk7C; + /* 0x80 */ float unk80; + /* 0x84 */ float unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; + /* 0x94 */ float unk94; + /* 0x98 */ float unk98; + /* 0x9C */ float unk9C; + /* 0xA0 */ s8 unkA0; + /* 0xA1 */ s8 unkA1; + /* 0xA2 */ s8 unkA2; + /* 0xA3 */ s8 unkA3; + /* 0xA4 */ u16 unkA4; + /* 0xA6 */ u16 unkA6; + /* 0xA8 */ s32 unkA8; + /* 0xAC */ s32 unkAC; + /* 0xB0 */ s32 unkB0; + /* 0xB4 */ s32 unkB4; + /* 0xB8 */ s32 unkB8; + /* 0xBC */ s32 unkBC; + /* 0xC0 */ s32 unkC0; + /* 0xC4 */ float unkC4; + /* 0xC8 */ char unkC8[4]; + /* 0xCC */ float unkCC; + /* 0xD0 */ s32 unkD0; + /* 0xD4 */ s32 unkD4; + /* 0xD8 */ float unkD8; + /* 0xDC */ float unkDC; +} StructBss200; // Size 0xE0 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; +} StructBss190; // Size 0x2C + +void fn_1_57C(s16 arg0); +void fn_1_AD0(s16 arg0); +void fn_1_F58(void); +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_47E4(void); +void fn_1_4B20(void); +void fn_1_9AF0(void); +void fn_1_DF98(void); +void fn_1_104A0(void); +void fn_1_10500(void); + +s16 lbl_1_bss_5C2; +s16 lbl_1_bss_5C0; // unused +s16 lbl_1_bss_5BE; +s16 lbl_1_bss_5BC; +s16 lbl_1_bss_5BA; +s16 lbl_1_bss_5B8; +s32 lbl_1_bss_5B4; +s32 lbl_1_bss_5B0; +s32 lbl_1_bss_5AC; +s32 lbl_1_bss_5A8; +s32 lbl_1_bss_5A4; +s32 lbl_1_bss_594[4]; +s32 lbl_1_bss_584[4]; +s32 lbl_1_bss_580; +StructBss200 lbl_1_bss_200[4]; +StructBss1E8 lbl_1_bss_1E8[2]; +StructBss190 lbl_1_bss_190[2]; +Process *lbl_1_bss_180[4]; +StructBssC8 lbl_1_bss_C8; +Vec lbl_1_bss_BC; +Vec lbl_1_bss_B0; +Vec lbl_1_bss_A4; +void *lbl_1_bss_84[8]; +void *lbl_1_bss_64[8]; +u8 lbl_1_bss_60; +Vec lbl_1_bss_0[8]; + +s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_M419, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) }; + +s32 lbl_1_data_4C[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; + +Vec lbl_1_data_5C[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; + +void ObjectSetup(void) +{ + Process *temp_r3; + + temp_r3 = omInitObjMan(50, 0x2000); + omGameSysInit(temp_r3); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_C8.unk00 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_C8.unk00->work[0] = 1; + CRotM->x = -40.0f; + CRotM->y = 0.0f; + CRotM->z = 0.0f; + CenterM->x = 0.0f; + CenterM->y = 0.0f; + CenterM->z = 3000.0f; + CZoomM[0] = 1500.0f; + Hu3DLighInit(); + lbl_1_bss_5C2 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightPosAimSet(lbl_1_bss_5C2, 0.0f, 4330.13f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_5C2); + lbl_1_bss_BC.x = -500.0f; + lbl_1_bss_BC.y = 4000.0f; + lbl_1_bss_BC.z = 0.0f; + lbl_1_bss_B0.x = lbl_1_bss_B0.z = 0.0f; + lbl_1_bss_B0.y = 1.0f; + lbl_1_bss_A4.x = 0.0f; + lbl_1_bss_A4.y = 0.0f; + lbl_1_bss_A4.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_bss_BC, &lbl_1_bss_B0, &lbl_1_bss_A4); + Hu3DBGColorSet(0, 0, 0); + fn_1_F58(); + HuPrcChildCreate(fn_1_10500, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); +} + +void fn_1_4A0(void) +{ + s16 i; + + Hu3DLayerHookSet(1, fn_1_57C); + for (i = 0; i < 8; i++) { + lbl_1_bss_84[i] = HuMemDirectMallocNum(HEAP_DATA, 0x4800, MEMORY_DEFAULT_NUM); + lbl_1_bss_64[i] = HuMemDirectMallocNum(HEAP_DATA, 0x9000, MEMORY_DEFAULT_NUM); + lbl_1_bss_0[i].x = lbl_1_bss_0[i].y = 0.0f; + } +} + +void fn_1_57C(s16 arg0) +{ + Vec sp14; + Vec sp8; + ModelData *temp_r30; + s16 var_r31; + + temp_r30 = &Hu3DData[lbl_1_bss_5BE]; + sp14 = temp_r30->pos; + sp14.y += 50.0f; + Hu3D3Dto2D(&sp14, 1, &sp8.x); + var_r31 = sp8.x - 96.0f; + var_r31 &= 0xFFF8; + sp8.x = var_r31; + if (sp8.x < 0.0f) { + sp8.x = 0.0f; + } + if (sp8.x > 448.0f) { + sp8.x = 448.0f; + } + var_r31 = sp8.y - 96.0f; + var_r31 &= 0xFFF8; + sp8.y = var_r31; + if (sp8.y < 0.0f) { + sp8.y = 0.0f; + } + if (sp8.y > 288.0f) { + sp8.y = 288.0f; + } + lbl_1_bss_0[lbl_1_bss_60] = sp8; + GXSetTexCopySrc(sp8.x, sp8.y, 192, 192); + GXSetTexCopyDst(96, 96, GX_TF_RGB5A3, 1); + GXCopyTex(lbl_1_bss_84[lbl_1_bss_60], 0); + GXSetTexCopySrc(sp8.x, sp8.y, 192, 192); + GXSetTexCopyDst(96, 96, GX_TF_Z24X8, 1); + GXCopyTex(lbl_1_bss_64[lbl_1_bss_60], 0); +} + +void fn_1_848(ModelData *arg0, Mtx arg1) +{ + Mtx44 sp10; + GXColor spC; + s16 i; + + C_MTXOrtho(sp10, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 8000.0f); + GXSetProjection(sp10, GX_ORTHOGRAPHIC); + MTXIdentity(arg1); + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOp(GX_TEVSTAGE1, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR_NULL); + GXSetZTexture(GX_ZT_REPLACE, GX_TF_Z24X8, 0); + GXSetNumTexGens(1); + GXSetNumTevStages(2); + if (lbl_1_bss_5BC != 0) { + for (i = 1; i < 8; i++) { + spC.a = i * 24; + GXSetTevColor(GX_TEVREG0, spC); + fn_1_AD0((lbl_1_bss_60 - 8 + i) & 7); + } + } + lbl_1_bss_60 = (lbl_1_bss_60 + 1) & 7; + GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); +} + +void fn_1_AD0(s16 arg0) +{ + GXTexObj sp58; + GXTexObj sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + GXInitTexObj(&sp58, lbl_1_bss_84[arg0], 96, 96, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp58, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp58, GX_TEXMAP0); + GXInitTexObj(&sp38, lbl_1_bss_64[arg0], 96, 96, GX_TF_Z24X8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp38, GX_TEXMAP1); + sp2C.x = 0.0f; + sp2C.y = 0.0f; + sp2C.z = 0.0f; + sp20.x = 640.0f; + sp20.y = 0.0f; + sp20.z = 0.0f; + sp14.x = 640.0f; + sp14.y = 480.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 480.0f; + sp8.z = 0.0f; + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(lbl_1_bss_0[arg0].x, lbl_1_bss_0[arg0].y, 0.0f); + GXTexCoord2f32(0.0f, 0.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x + 192.0f, lbl_1_bss_0[arg0].y, 0.0f); + GXTexCoord2f32(1.0f, 0.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x + 192.0f, lbl_1_bss_0[arg0].y + 192.0f, 0.0f); + GXTexCoord2f32(1.0f, 1.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x, lbl_1_bss_0[arg0].y + 192.0f, 0.0f); + GXTexCoord2f32(0.0f, 1.0f); + GXEnd(); +} + +void fn_1_F58(void) +{ + void *var_r29; + StructBss1E8 *temp_r26; + StructBss200 *temp_r31; + Process *var_r25; + float temp_f31; + s16 var_r30; + s32 var_r22; + s32 var_r23; + AnimData *var_r21; + s32 i; + s32 j; + + lbl_1_bss_5BC = 0; + lbl_1_bss_5BA = 0; + lbl_1_bss_5B0 = 0; + HuAudSndGrpSet(0x2C); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 8), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 9), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 10), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 11), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_5B8 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + temp_r26 = &lbl_1_bss_1E8[0]; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 13), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r26->unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + for (j = 0; j < 5; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 14 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk02[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DMotionSet(var_r30, temp_r26->unk02[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + HuPrcChildCreate(fn_1_47E4, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + temp_r26 = &lbl_1_bss_1E8[1]; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 19), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r26->unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + for (j = 0; j < 5; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 20 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk02[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DMotionSet(var_r30, temp_r26->unk02[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + HuPrcChildCreate(fn_1_4B20, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 25), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[0].unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 26), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_190[0].unk04 = Hu3DJointMotion(var_r30, var_r29); + Hu3DMotionSet(var_r30, lbl_1_bss_190[0].unk04); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 27), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[0].unk02 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_190[0].unk06 = Hu3DJointMotion(var_r30, var_r29); + Hu3DMotionSet(var_r30, lbl_1_bss_190[0].unk04); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + lbl_1_bss_190[0].unk08 = 0; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[1].unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + lbl_1_bss_190[1].unk08 = 1; + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 30), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[1].unk02 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + for (i = 0, var_r22 = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_200[i]; + temp_r31->unk28 = i; + temp_r31->unk2C = i; + temp_r31->unk30 = GWPlayerCfg[i].pad_idx; + if (GWPlayerCfg[temp_r31->unk28].group == 0) { + lbl_1_bss_5AC = temp_r31->unk28; + lbl_1_bss_5BE = temp_r31->unk00 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 0); + CharModelLayerSetAll(2); + fn_1_4A0(); + temp_r31->unk68 = temp_r31->unk70 = temp_r31->unk6C = 0.0f; + temp_r31->unk9C = temp_r31->unk6C; + temp_r31->unk54 = temp_r31->unk58 = temp_r31->unk5C = 0.0f; + temp_r31->unk8C = 50.0f; + temp_r31->unk90 = 0.0f; + temp_r31->unk94 = 1.0f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + Hu3DModelShadowSet(temp_r31->unk00); + for (j = 0; j < 11; j++) { + var_r23 = lbl_1_data_20[j]; + if ((var_r23 & 0xFFFF0000) == DATADIR_M419) { + var_r23 += GWPlayerCfg[i].character; + } + temp_r31->unk06[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], var_r23); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk06[0]); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_9AF0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + lbl_1_bss_180[i] = var_r25; + } + else { + temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 1); + CharModelLayerSetAll(2); + temp_r31->unk80 = lbl_1_data_5C[GWPlayerCfg[i].character].x; + temp_r31->unk84 = lbl_1_data_5C[GWPlayerCfg[i].character].y; + temp_r31->unk88 = lbl_1_data_5C[GWPlayerCfg[i].character].z; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk80, temp_r31->unk84, temp_r31->unk88); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 31), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk00 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(temp_r31->unk00, 1); + temp_r31->unk68 = temp_r31->unk70 = 0.0f; + temp_r31->unk6C = 120.0f * var_r22; + var_r22++; + if (temp_r31->unk6C > 360.0f) { + temp_r31->unk6C -= 360.0f; + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + temp_f31 = 1000.0f; + temp_r31->unk54 = temp_f31 * sind(temp_r31->unk6C); + temp_r31->unk58 = 0.0f; + temp_r31->unk5C = temp_f31 * cosd(temp_r31->unk6C); + temp_r31->unk6C += 180.0f; + if (temp_r31->unk6C > 360.0f) { + temp_r31->unk6C -= 360.0f; + } + temp_r31->unk9C = temp_r31->unk6C; + temp_r31->unk8C = 200.0f; + temp_r31->unk90 = 2.25f; + temp_r31->unk94 = 1.0f; + temp_r31->unk98 = 0.66f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + Hu3DModelShadowSet(temp_r31->unk00); + Hu3DModelHookSet(temp_r31->unk00, "itemhook_c", temp_r31->unk02); + for (j = 0; j < 4; j++) { + temp_r31->unk1C[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], lbl_1_data_4C[j]); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk1C[0]); + CharModelMotionTimeSet(lbl_1_data_0[GWPlayerCfg[i].character], 60.0f); + CharModelVoiceEnableSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk1C[3], 0); + for (j = 0; j < 8; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 32 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk06[j] = Hu3DJointMotion(temp_r31->unk00, var_r29); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[1]); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 40), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk04 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_DF98, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + lbl_1_bss_180[i] = var_r25; + } + } + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r21, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_2254); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r21, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_2744); + HuDataDirClose(DATADIR_EFFECT); + lbl_1_bss_580 = 0; + lbl_1_bss_584[0] = frandmod(5) * 60 + 600; + lbl_1_bss_584[1] = frandmod(5) * 60 + 1380; + lbl_1_bss_584[2] = 2760; + Hu3DModelLayerSet(Hu3DHookFuncCreate(fn_1_848), 1); + HuPrcChildCreate(fn_1_104A0, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +float fn_1_1F84(float arg0, float arg1) +{ + float var_f31; + float var_f30; + + if (arg0 > 600.0f - arg1) { + var_f31 = 600.0f + 200.0f * ((800.0f - (arg0 + arg1)) / 200.0f); + } + else if (arg0 < -(600.0f - arg1)) { + var_f31 = 600.0f + 200.0f * ((800.0f - ABS_INV(arg0 - arg1)) / 200.0f); + } + else { + var_f31 = 800.0f; + } + return var_f31; +} + +float fn_1_20AC(float arg0, float arg1) +{ + return fn_1_1F84(arg0, arg1); +} + +float fn_1_21D4(float arg0) +{ + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; + float var_f31; + float temp_f29; + float var_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 4; i++) { + temp_r28 = &lbl_1_bss_200[i]; + if (temp_r28->unk38 & 1) { + for (j = 0, var_f30 = 0.0f; j < 16; j++, var_f30 += 22.5f) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + var_f31 = var_f30; + temp_f29 = 125.0f + 70.0f * frandf(); + var_r31->unk34.x = temp_r28->unk74 + temp_f29 * sind(var_f31); + var_r31->unk34.y = temp_r28->unk78 + 50.0f * frandf(); + var_r31->unk34.z = temp_r28->unk7C + temp_f29 * cosd(var_f31); + var_r31->unk08.x = 5.0 * sind(var_f31); + var_r31->unk08.y = 9.0f + 2.0f * frandf(); + var_r31->unk08.z = 5.0 * cosd(var_f31); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 80.0f + 20.0f * frandf(); + var_r31->unk14.y = 15.0f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + } + temp_r28->unk38 &= ~1; + } + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x != 0.0f) { + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + if (var_r31->unk08.y > 0.1f) { + var_r31->unk08.y -= 0.2f; + } + if (var_r31->unk08.y < 0.0f) { + var_r31->unk08.y = 0.0f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 1.5f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 4; i++) { + temp_r28 = &lbl_1_bss_200[i]; + if (temp_r28->unk38 & 2) { + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk74 + temp_f31; + var_r31->unk34.y = temp_r28->unk78 + 50.0f; + var_r31->unk34.z = temp_r28->unk7C + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk38 &= ~2; + } + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x != 0.0f && var_r31->unk24 != 0.0f) { + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +s32 fn_1_2BDC(StructBss190 *arg0) +{ + StructBss200 *temp_r31; + Vec sp24; + Vec sp18; + Vec spC; + float var_f29; + float var_f28; + s32 var_r28; + s32 i; + + for (i = 0, var_f29 = 10000.0f, var_r28 = -1; i < 4; i++) { + temp_r31 = &lbl_1_bss_200[i]; + HuSetVecF(&sp24, arg0->unk14, 0.0, arg0->unk1C); + HuSetVecF(&sp18, temp_r31->unk54, 0.0, temp_r31->unk5C); + HuSubVecF(&spC, &sp24, &sp18); + if ((var_f28 = VECMagXYZ(&spC)) < 50.0f + temp_r31->unk8C && var_f28 < var_f29) { + var_f29 = var_f28; + var_r28 = i; + } + } + return var_r28; +} + +void fn_1_2DFC(StructBss190 *arg0) +{ + float temp_f31; + float var_f26; + float var_f25; + + temp_f31 = 50.0f; + var_f26 = fn_1_1F84(arg0->unk1C, 50.0f); + var_f25 = fn_1_1F84(arg0->unk14, 50.0f); + if (arg0->unk14 > var_f26 - temp_f31) { + arg0->unk14 = var_f26 - temp_f31; + } + if (arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk14 = -(var_f26 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31) { + arg0->unk1C = var_f25 - temp_f31; + } + if (arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk1C = -(var_f25 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31 || arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk14 += arg0->unk10 * sind(arg0->unk0C) * 0.8f; + } + if (arg0->unk14 > var_f26 - temp_f31 || arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk1C += arg0->unk10 * cosd(arg0->unk0C) * 0.8f; + } + if (arg0->unk14 > var_f26 - temp_f31) { + arg0->unk14 = var_f26 - temp_f31; + } + if (arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk14 = -(var_f26 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31) { + arg0->unk1C = var_f25 - temp_f31; + } + if (arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk1C = -(var_f25 - temp_f31); + } +} + +void fn_1_32F8(void) +{ + StructBss200 *temp_r31; + float var_f31; + s32 var_r29; + s32 i; + + var_r29 = (s32)HuPrcCurrentGet()->user_data; + temp_r31 = &lbl_1_bss_200[var_r29]; + for (i = 0, var_f31 = 1.0f; i < 30; i++, var_f31 -= 0.033333335f) { + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); + HuPrcVSleep(); + } + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, 0.0f, 0.0f); + while (temp_r31->unk48 > 30) { + HuPrcVSleep(); + } + for (i = 0, var_f31 = 0.0f; i < 30; i++, var_f31 += 0.033333335f) { + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); + HuPrcVSleep(); + } + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, 1.0f, 1.0f); + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_344C(void) +{ + StructBss190 *temp_r31; + StructBss200 *temp_r30; + Vec spAC; + Vec spA0; + Vec sp94; + float sp6C; + float sp68; + float sp64; + float sp60; + float sp5C; + float sp58; + float sp54; + float sp50; + float sp4C; + float sp48; + float sp44; + float var_f24; + float var_f23; + s32 var_r24; + s32 var_r23; + s16 var_r22; + s32 var_r25; + s32 var_r28; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + HuPrcSleep(25); + var_r23 = 0; + temp_r31->unk0A = 0; + var_r28 = 0; + var_f24 = temp_r31->unk18; + var_f23 = 15.0f; + sp58 = 0.9f; + while (var_f24 > 50.0f) { + var_f23 -= sp58; + var_f24 += var_f23; + var_r28++; + } + if (temp_r31->unk08 == 0) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + Hu3DModelTPLvlSet(temp_r31->unk00, 1.0f); + } + else { + Hu3DModelAttrReset(temp_r31->unk02, 1); + } + Hu3DModelAttrReset(temp_r31->unk00, 1); + temp_r31->unk0C = atan2d(temp_r31->unk24 - temp_r31->unk14, temp_r31->unk28 - temp_r31->unk1C); + HuSetVecF(&spAC, temp_r31->unk24, 0.0, temp_r31->unk28); + HuSetVecF(&spA0, temp_r31->unk14, 0.0, temp_r31->unk1C); + HuSubVecF(&sp94, &spAC, &spA0); + temp_r31->unk10 = VECMagXYZ(&sp94) / var_r28; + var_f24 = temp_r31->unk18; + var_f23 = 15.0f; + sp58 = 0.9f; + while (var_f24 > 50.0f) { + sp68 = temp_r31->unk14; + sp64 = temp_r31->unk18; + sp60 = temp_r31->unk1C; + temp_r31->unk14 += temp_r31->unk10 * sind(temp_r31->unk0C); + temp_r31->unk18 = var_f24; + temp_r31->unk1C += temp_r31->unk10 * cosd(temp_r31->unk0C); + if ((var_r25 = fn_1_2BDC(temp_r31)) != -1) { + temp_r30 = &lbl_1_bss_200[var_r25]; + if (GWPlayerCfg[temp_r30->unk28].group == 0) { + sp5C = 150.0f; + } + else { + sp5C = 400.0f; + } + if (temp_r31->unk18 < sp5C) { + if (temp_r31->unk18 < sp5C && temp_r31->unk18 > sp5C - 50.0f) { + var_f23 = 15.0f; + sp58 = 0.9f; + } + else { + sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); + temp_r31->unk0C = fn_1_21D4(180.0f + temp_r31->unk0C); + temp_r31->unk0C = sp6C - (temp_r31->unk0C - sp6C); + } + temp_r31->unk14 = sp68; + temp_r31->unk18 = sp64; + temp_r31->unk1C = sp60; + } + } + fn_1_2DFC(temp_r31); + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + if (temp_r31->unk08 != 0) { + temp_r31->unk20 += 10.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + } + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, temp_r31->unk20); + if (lbl_1_bss_5B4 >= 4) { + var_r23 = 1; + goto fn_1_344C_label; + } + HuPrcVSleep(); + var_f23 -= sp58; + var_f24 += var_f23; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14, 50.0f, temp_r31->unk1C); + if (temp_r31->unk08 != 0) { + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, 50.0f, temp_r31->unk1C); + } + if (temp_r31->unk08 == 0) { + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, 0.0f, temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, 0.0f); + Hu3DMotionSet(temp_r31->unk02, temp_r31->unk06); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_MOTATTR_LOOP); + Hu3DModelTPLvlSet(temp_r31->unk02, 1.0f); + } + for (var_r28 = 300, var_r24 = 0; var_r28 != 0; var_r28--) { + if (temp_r31->unk08 != 0 && 0.0f != temp_r31->unk20) { + temp_r31->unk20 += 10.0f; + if (temp_r31->unk20 > 360.0f) { + temp_r31->unk20 = 0.0f; + } + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, temp_r31->unk20); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + } + for (i = 0, sp50 = 10000.0f; i < 4; i++) { + temp_r30 = &lbl_1_bss_200[i]; + HuSetVecF(&spAC, temp_r31->unk14, 0.0, temp_r31->unk1C); + HuSetVecF(&spA0, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSubVecF(&sp94, &spAC, &spA0); + if ((sp54 = VECMagXYZ(&sp94)) < 50.0f + temp_r30->unk8C && sp54 < sp50) { + sp50 = sp54; + var_r25 = i; + } + } + if (sp50 < 10000.0f) { + temp_r30 = &lbl_1_bss_200[var_r25]; + temp_r31->unk0A = 1; + if (temp_r31->unk08 != 0) { + temp_r30->unk3C = 1; + temp_r30->unk48 = 300; + if (GWPlayerCfg[temp_r30->unk28].group == 0) { + temp_r30->unk94 = 3.0f; + lbl_1_bss_5BC = 1; + HuAudFXPlay(0x5E6); + } + else { + temp_r30->unk90 = 6.75f; + temp_r30->unk98 = 0.99f; + HuAudFXPlay(0x5E2); + } + } + else if (temp_r30->unk24 == 0) { + temp_r30->unk34 = 4; + HuAudPlayerVoicePlay(temp_r30->unk28, 0x128); + HuAudFXPlay(0x5E9); + } + break; + } + if (var_r28 < 60) { + var_r22 = temp_r31->unk00; + if (temp_r31->unk08 == 0) { + var_r22 = temp_r31->unk02; + } + if (var_r24 & 1) { + Hu3DModelAttrReset(var_r22, 1); + } + else { + Hu3DModelAttrSet(var_r22, 1); + } + var_r24++; + } + HuPrcVSleep(); + if (lbl_1_bss_5B4 >= 4) { + var_r23 = 1; + break; + } + } +fn_1_344C_label: + if (var_r23 != 0) { + for (i = 0, sp4C = 1.0f; i < 30; i++) { + sp4C -= 0.033333335f; + Hu3DModelScaleSet(temp_r31->unk00, sp4C, sp4C, sp4C); + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrSet(temp_r31->unk02, 1); + } + else { + if (temp_r31->unk08 == 0) { + temp_r30 = &lbl_1_bss_200[var_r25]; + sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); + sp44 = 1.0f; + temp_r31->unk20 = 0.0f; + for (i = 0, sp48 = 0.0f; i < 10; i++, sp48 += 9.0f, sp44 -= 0.1f) { + temp_r31->unk14 += 2.0 * sind(sp6C); + temp_r31->unk18 += 10.0f; + temp_r31->unk1C += 2.0 * cosd(sp6C); + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + temp_r31->unk20 += 10.0f; + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + Hu3DModelTPLvlSet(temp_r31->unk02, sp44); + HuPrcVSleep(); + } + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + if (temp_r31->unk08 != 0) { + Hu3DModelAttrSet(temp_r31->unk02, 1); + } + temp_r31->unk20 = 0.0f; + HuPrcCurrentGet()->user_data = NULL; + HuPrcKill(HuPrcCurrentGet()); + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_47E4(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + ModelData *temp_r29; + Process *temp_r3; + s32 var_r27; + + var_r31 = &lbl_1_bss_1E8[0]; + while (lbl_1_bss_5B4 != 3) { + HuPrcVSleep(); + } + while (TRUE) { + while (lbl_1_bss_5BA != 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5B4 >= 4) { + break; + } + var_r30 = &lbl_1_bss_190[0]; + if (lbl_1_bss_5B0 > lbl_1_bss_584[lbl_1_bss_580]) { + lbl_1_bss_580++; + var_r30 = &lbl_1_bss_190[1]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + else { + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + HuPrcVSleep(); + var_r27 = Hu3DMotionMaxTimeGet(var_r31->unk00); + while (var_r27 != 0) { + HuPrcVSleep(); + var_r27--; + } + HuAudFXPlay(0x5E4); + temp_r3 = HuPrcChildCreate(fn_1_344C, 0x2010, 0x3000, 0, HuPrcCurrentGet()); + temp_r3->user_data = var_r30; + temp_r29 = &Hu3DData[lbl_1_bss_1E8[0].unk00]; + var_r30->unk14 = temp_r29->pos.x + 640.0f; + var_r30->unk18 = temp_r29->pos.y + 620.0f; + var_r30->unk1C = temp_r29->pos.y - 200.0f; + var_r30->unk20 = 0.0f; + var_r30->unk24 = 1000.0f * frandf() - 500.0f; + var_r30->unk28 = 1000.0f * frandf() - 500.0f; + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + while (temp_r3->user_data) { + HuPrcVSleep(); + } + lbl_1_bss_5BA = 1; + if (var_r30->unk0A != 0) { + HuAudFXPlay(0x5E8); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(6); + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_4B20(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + Process *temp_r3; + ModelData *temp_r29; + s32 var_r27; + + var_r31 = &lbl_1_bss_1E8[1]; + while (lbl_1_bss_5B4 != 3) { + HuPrcVSleep(); + } + while (TRUE) { + while (lbl_1_bss_5BA == 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5B4 >= 4) { + break; + } + var_r30 = lbl_1_bss_190; + if (lbl_1_bss_5B0 > lbl_1_bss_584[lbl_1_bss_580]) { + lbl_1_bss_580++; + var_r30 = &lbl_1_bss_190[1]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + else { + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + HuPrcVSleep(); + var_r27 = Hu3DMotionMaxTimeGet(var_r31->unk00); + while (var_r27 != 0) { + HuPrcVSleep(); + var_r27--; + } + HuAudFXPlay(0x5E4); + temp_r3 = HuPrcChildCreate(fn_1_344C, 0x2010, 0x3000, 0, HuPrcCurrentGet()); + temp_r3->user_data = var_r30; + temp_r29 = &Hu3DData[lbl_1_bss_1E8->unk00]; + var_r30->unk14 = -(temp_r29->pos.x + 640.0f); + var_r30->unk18 = temp_r29->pos.y + 620.0f; + var_r30->unk1C = temp_r29->pos.y - 200.0f; + var_r30->unk24 = 1000.0f * frandf() - 500.0f; + var_r30->unk28 = 1000.0f * frandf() - 500.0f; + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + while (temp_r3->user_data) { + HuPrcVSleep(); + } + lbl_1_bss_5BA = 0; + if (var_r30->unk0A != 0) { + HuAudFXPlay(0x5E8); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(6); + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + while (TRUE) { + HuPrcVSleep(); + } +} + +s8 fn_1_4E54(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk30]) : (var_r30 = HuPadStkX[temp_r31->unk30]); + } + else { + (arg1 != 0) ? (var_r30 = temp_r31->unkA1) : (var_r30 = temp_r31->unkA0); + } + return var_r30; +} + +u8 fn_1_4F0C(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk30]) : (var_r30 = HuPadTrigL[temp_r31->unk30]); + } + else { + (arg1 != 0) ? (var_r30 = temp_r31->unkA2) : (var_r30 = temp_r31->unkA3); + } + return var_r30; +} + +u16 fn_1_4FCC(s32 arg0) +{ + StructBss200 *temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtnDown[temp_r31->unk30]; + } + else { + var_r30 = temp_r31->unkA6; + } + return var_r30; +} + +u16 fn_1_5038(s32 arg0) +{ + StructBss200 *temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtn[temp_r31->unk30]; + } + else { + var_r30 = temp_r31->unkA4; + } + return var_r30; +} + +s32 fn_1_50A4(StructBss200 *arg0, float arg1, s32 arg2) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + StructBss200 *temp_r30; + s32 var_r28; + float var_f27; + float var_f28; + s32 i; + + var_r28 = -1; + for (i = 0, var_f28 = 10000.0f; i < 4; i++) { + if (i != arg0->unk28 && (arg2 == 0 || i != lbl_1_bss_5AC)) { + temp_r30 = &lbl_1_bss_200[i]; + HuSetVecF(&sp2C, arg0->unk54, arg0->unk58, arg0->unk5C); + HuSetVecF(&sp20, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp14, &sp2C, &sp20); + if ((var_f27 = VECMagXYZ(&sp14)) < arg0->unk8C + temp_r30->unk8C + arg1 && var_f27 < var_f28) { + var_f28 = var_f27; + var_r28 = i; + } + } + } + return var_r28; +} + +s32 fn_1_52E8(StructBss200 *arg0) +{ + float var_f25; + float var_f24; + s32 var_r28; + + var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); + var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); + if (arg0->unk54 > var_f25 - arg0->unk8C) { + arg0->unk54 = var_f25 - arg0->unk8C; + } + if (arg0->unk54 < -(var_f25 - arg0->unk8C)) { + arg0->unk54 = -(var_f25 - arg0->unk8C); + } + if (arg0->unk5C > var_f24 - arg0->unk8C) { + arg0->unk5C = var_f24 - arg0->unk8C; + } + if (arg0->unk5C < -(var_f24 - arg0->unk8C)) { + arg0->unk5C = -(var_f24 - arg0->unk8C); + } + if ((var_r28 = fn_1_50A4(arg0, 0.0f, 0)) != -1) { + arg0->unk54 = arg0->unk60; + arg0->unk5C = arg0->unk64; + } + return var_r28; +} + +float fn_1_5858(float arg0, float arg1, float arg2) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +float fn_1_595C(float arg0, float arg1, StructBss200 *arg2) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + + HuSetVecF(&sp2C, arg0, 0.0, arg1); + HuSetVecF(&sp20, arg2->unk54, 0.0, arg2->unk5C); + HuSubVecF(&sp14, &sp2C, &sp20); + return VECMagXZ(&sp14); +} + +float fn_1_5AD8(float arg0, float arg1) +{ + float var_f31; + + if (arg0 > arg1) { + var_f31 = fn_1_21D4(arg0 - arg1); + if (var_f31 < 180.0f) { + var_f31 = fn_1_21D4(arg1 + var_f31 + 180.0f); + } + else { + var_f31 = fn_1_21D4(arg1 - var_f31); + } + } + else { + var_f31 = fn_1_21D4(arg1 - arg0); + if (var_f31 < 180.0f) { + var_f31 = fn_1_21D4(arg0 + var_f31 + 180.0f); + } + else { + var_f31 = fn_1_21D4(arg0 - var_f31); + } + } + return var_f31; +} + +s32 fn_1_5F34(StructBss200 *arg0, float arg1) +{ + s32 var_r31; + float var_f25; + float var_f24; + + var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); + var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); + var_r31 = 0; + if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) || arg0->unk5C > var_f24 - arg0->unk8C - arg1 + || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_628C(StructBss200 *arg0) +{ + Vec spC; + + HuSetVecF(&spC, fn_1_4E54(arg0->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(arg0->unk28, 1) / 4.0f); + arg0->unk90 = VECMagXYZ(&spC); + if (arg0->unk90 >= 0.5f) { + if (arg0->unk90 >= 10.0f) { + spC.x /= arg0->unk90; + spC.z /= arg0->unk90; + arg0->unk90 = 10.0f; + spC.x = 10.0f * spC.x; + spC.z = 10.0f * spC.z; + } + arg0->unk54 += spC.x * arg0->unk94; + arg0->unk5C += spC.z * arg0->unk94; + } +} + +void fn_1_65C0(Vec *arg0, StructBss200 **arg1) +{ + float temp_f31; + StructBss200 *temp_r31; + StructBss200 *temp_r30; + s32 var_r28; + s32 i; + + for (i = 0; i < 3; i++) { + temp_r31 = arg1[i]; + (i >= 2) ? (var_r28 = 0) : (var_r28 = i + 1); + temp_r30 = arg1[var_r28]; + temp_f31 = ABS_INV(temp_r31->unk54 - temp_r30->unk54) / 2.0f; + if (temp_r31->unk54 > temp_r30->unk54) { + arg0[i].x = temp_r31->unk54 - temp_f31; + } + else { + arg0[i].x = temp_r30->unk54 - temp_f31; + } + temp_r31 = arg1[i]; + (i >= 2) ? (var_r28 = 0) : (var_r28 = i + 1); + temp_r30 = arg1[var_r28]; + temp_f31 = ABS_INV(temp_r31->unk5C - temp_r30->unk5C) / 2.0f; + if (temp_r31->unk5C > temp_r30->unk5C) { + arg0[i].z = temp_r31->unk5C - temp_f31; + } + else { + arg0[i].z = temp_r30->unk5C - temp_f31; + } + } +} + +s32 fn_1_67A0(float arg0, float arg1, StructBss200 *arg2, StructBss200 **arg3) +{ + StructBss200 *var_r31; + StructBss200 sp5C; + float var_f29; + s32 var_r27; + s32 i; + + var_r31 = &sp5C; + var_r31->unk28 = arg2->unk28; + var_r31->unk54 = arg2->unk54; + var_r31->unk58 = arg2->unk58; + var_r31->unk5C = arg2->unk5C; + var_r31->unk8C = arg2->unk8C; + var_r31->unk90 = arg2->unk90; + var_r31->unk94 = arg2->unk94; + var_f29 = fn_1_21D4(atan2d(arg0 - arg2->unk54, arg1 - arg2->unk5C)); + var_r27 = 1; + while (fn_1_595C(arg0, arg1, var_r31) >= 10.0f) { + var_r31->unk54 += 10.0 * sind(var_f29); + var_r31->unk5C += 10.0 * cosd(var_f29); + for (i = 0; i < 3; i++) { + if (fn_1_595C(arg3[i]->unk54, arg3[i]->unk5C, var_r31) < var_r31->unk8C + arg3[i]->unk8C + 10.0f) { + break; + } + } + if (i < 3) { + var_r27 = 0; + break; + } + } + return var_r27; +} + +s32 fn_1_6D04(void) +{ + StructBss200 *sp8[3]; + StructBss200 *var_r29; + s32 var_r30; + s32 var_r28; + s32 i; + + for (i = 0, var_r30 = 0; i < 4; i++) { + if (i == lbl_1_bss_5AC) { + var_r29 = &lbl_1_bss_200[i]; + } + else { + sp8[var_r30++] = &lbl_1_bss_200[i]; + } + } + var_r30 = 0; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk54 > var_r29->unk54) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk54 < var_r29->unk54) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk5C > var_r29->unk5C) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk5C < var_r29->unk5C) { + break; + } + } + if (i < 3) { + var_r30++; + } + } + } + } + var_r28 = 0; + if (var_r30 >= 4) { + var_r28 = 1; + } + return var_r28; +} + +float fn_1_6E9C(StructBss200 *arg0) +{ + s32 sp88[3]; + s32 sp50[2]; + float sp44; + float var_f20; + float sp48[2]; + StructBss200 *sp7C[3]; + s32 var_r29; + s32 var_r28; + s32 i; + + for (i = 0, var_r29 = 0; i < 4; i++) { + if (i != arg0->unk28) { + sp7C[var_r29++] = &lbl_1_bss_200[i]; + } + } + for (i = 0, var_r28 = 0; i < 3; i++) { + sp44 = fn_1_595C(sp7C[i]->unk54, sp7C[i]->unk5C, arg0); + if (sp44 < arg0->unk8C + sp7C[i]->unk8C + 100.0f) { + sp88[i] = 1; + var_r28++; + } + else { + sp88[i] = -1; + } + } + var_f20 = -1.0f; + switch (var_r28) { + case 1: + for (i = 0; i < 3; i++) { + if (sp88[i] != 0) { + break; + } + } + var_f20 = fn_1_21D4(atan2d(arg0->unk54 - sp7C[i]->unk54, arg0->unk5C - sp7C[i]->unk5C)); + break; + case 2: + for (i = 0, var_r29 = 0; i < 3; i++) { + if (sp88[i] == 0) { + sp50[var_r29++] = i; + } + } + for (i = 0; i < 2; i++) { + sp48[i] = fn_1_21D4(atan2d(arg0->unk54 - sp7C[sp50[i]]->unk54, arg0->unk5C - sp7C[sp50[i]]->unk5C)); + } + var_f20 = fn_1_5AD8(sp48[0], sp48[1]); + break; + } + if (var_f20 != -1.0f) + ; + if (var_f20 != -1.0f) { + var_f20 = fn_1_21D4(var_f20); + } + return var_f20; +} + +void fn_1_78B4(StructBss200 *arg0) +{ + StructBss200 *temp_r18; + StructBss200 *var_r17; + StructBss200 *sp224[3]; + Vec sp254[3]; + Vec sp230[3]; + s32 sp218[3]; + s32 sp138[2]; + s32 sp130[2]; + s32 sp12C; + float sp128; + float sp124; + s32 sp120; + float sp11C; + float sp118; + float sp114; + float sp110; + float var_f27; // ! - uninitialized + float var_f29; + float var_f28; + float var_f30; + float var_f31; + float var_f26; + s32 var_r21; + s32 var_r22; + s32 var_r29; + s32 var_r30; + s32 sp10C; + + arg0->unkA0 = arg0->unkA1 = 0; + arg0->unkA3 = arg0->unkA2 = 0; + arg0->unkA4 = arg0->unkA6 = 0; + switch (GWPlayerCfg[arg0->unk28].diff) { + case 0: + sp12C = 60; + break; + case 1: + sp12C = 80; + break; + case 2: + sp12C = 90; + break; + default: + sp12C = 95; + break; + } + for (var_r30 = 0, var_r29 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != arg0->unk28) { + sp224[var_r29++] = &lbl_1_bss_200[var_r30]; + } + } + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk54 < var_f31) { + var_f31 = sp224[var_r30]->unk54; + } + } + for (var_r30 = 0, var_f30 = -10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk54 > var_f30) { + var_f30 = sp224[var_r30]->unk54; + } + } + sp124 = ABS_INV(var_f30 - var_f31) / 2.0f; + var_f29 = var_f30 - sp124; + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk5C < var_f31) { + var_f31 = sp224[var_r30]->unk5C; + } + } + for (var_r30 = 0, var_f30 = -10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk5C > var_f30) { + var_f30 = sp224[var_r30]->unk5C; + } + } + sp124 = ABS_INV(var_f30 - var_f31) / 2.0f; + var_f28 = var_f30 - sp124; + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + var_f26 = fn_1_595C(var_f29, var_f28, sp224[var_r30]); + if (var_f26 < var_f31) { + var_f31 = var_f26; + } + } + if (fn_1_6D04() != 0) { + arg0->unkB0 = 0; + if (var_f31 < 400.0f || (arg0->unkB4 & 2)) { + arg0->unkB4 |= 2; + fn_1_65C0(sp254, sp224); + if (arg0->unkBC == -1) { + for (var_r30 = 0, sp120 = 0, var_f30 = 0.0f; var_r30 < 3; var_r30++) { + temp_r18 = sp224[var_r30]; + (var_r30 >= 2) ? (var_r29 = 0) : (var_r29 = var_r30 + 1); + var_r17 = sp224[var_r29]; + var_f26 = fn_1_595C(temp_r18->unk54, temp_r18->unk5C, var_r17); + if (var_f26 > 700.0f) { + sp218[var_r30] = 1; + sp120++; + } + else { + sp218[var_r30] = 0; + } + if (var_f26 > var_f30) { + var_f30 = var_f26; + var_r21 = var_r30; + var_f27 = fn_1_21D4(atan2d(sp254[var_r30].x - arg0->unk54, sp254[var_r30].z - arg0->unk5C)); + } + } + if (sp120 > 0) { + var_r29 = frandmod(sp120); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (sp218[var_r30] != 0 && var_r29-- == 0) { + break; + } + } + var_r21 = var_r30; + var_f27 = fn_1_21D4(atan2d(sp254[var_r30].x - arg0->unk54, sp254[var_r30].z - arg0->unk5C)); + } + arg0->unkBC = var_r21; + arg0->unkCC = var_f27; + } + else { + var_r21 = arg0->unkBC; + var_f27 = arg0->unkCC; + } + sp11C = var_f29; + sp118 = var_f28; + var_f29 = sp254[var_r21].x; + var_f28 = sp254[var_r21].z; + if (fn_1_595C(var_f29, var_f28, arg0) <= 30.0f && !(arg0->unkB4 & 1)) { + arg0->unkC4 = fn_1_21D4(atan2d(var_f29, var_f28)); + arg0->unkB4 |= 1; + } + if (arg0->unkB4 & 1) { + var_f29 = 800.0 * sind(arg0->unkC4); + var_f28 = 800.0 * cosd(arg0->unkC4); + } + } + } + else { + arg0->unkAC = 0; + arg0->unkB4 = 0; + arg0->unkBC = -1; + if ((var_f31 >= 600.0f && fn_1_67A0(var_f29, var_f28, arg0, &sp224[0]) != 0) || (arg0->unkB0 & 0x10)) { + arg0->unkB0 |= 0x10; + fn_1_65C0(sp230, sp224); + for (var_r30 = 0, var_r21 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + var_f26 = fn_1_595C(sp230[var_r30].x, sp230[var_r30].z, arg0); + if (var_f26 < var_f31) { + var_f31 = var_f26; + var_r21 = var_r30; + } + } + sp114 = var_f29; + sp110 = var_f28; + var_f29 = sp230[var_r21].x; + var_f28 = sp230[var_r21].z; + if (fn_1_595C(var_f29, var_f28, arg0) <= 30.0f && !(arg0->unkB0 & 0x20)) { + arg0->unkC4 = fn_1_21D4(var_f27 - 90.0f); + arg0->unkB0 |= 0x20; + } + if (arg0->unkB0 & 0x20) { + var_f29 = 800.0 * sind(arg0->unkC4); + var_f28 = 800.0 * cosd(arg0->unkC4); + if (fn_1_5F34(arg0, 10.0f)) { + arg0->unkB0 &= ~0x20; + } + else { + arg0->unkB0 |= 0x20; + } + } + } + else { + if (arg0->unk54 >= 0.0f && arg0->unk5C < 0.0f) { + sp138[0] = 0; + sp138[1] = 1; + } + if (arg0->unk54 < 0.0f && arg0->unk5C < 0.0f) { + sp138[0] = 3; + sp138[1] = 0; + } + if (arg0->unk54 >= 0.0f && arg0->unk5C >= 0.0f) { + sp138[0] = 1; + sp138[1] = 2; + } + if (arg0->unk54 < 0.0f && arg0->unk5C >= 0.0f) { + sp138[0] = 2; + sp138[1] = 3; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r22 = 0; + sp10C = sp138[var_r30]; + switch (sp10C) { + case 0: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk5C < -800.0f + sp224[var_r29]->unk8C + 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 1: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk54 > 800.0f - sp224[var_r29]->unk8C - 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 2: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk5C > 800.0f - sp224[var_r29]->unk8C - 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 3: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk54 < -800.0f + sp224[var_r29]->unk8C + 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + } + sp130[var_r30] = var_r22; + } + var_r22 = 0; + if ((arg0->unkB0 & 4) || (arg0->unkB0 & 8)) { + if ((arg0->unkB0 & 4) && sp130[0] != 0) { + var_r22 = 1; + } + if ((arg0->unkB0 & 8) && sp130[1] != 0) { + var_r22 = 1; + } + } + if (arg0->unkC0 > 0) { + var_r22 = 1; + arg0->unkC0--; + } + if (var_r22 == 0) { + arg0->unkB0 &= ~0xC; + if (sp130[0] != 0 && sp130[1] != 0) { + if (frandmod(2) != 0) { + arg0->unkB0 |= 4; + arg0->unkC0 = 30; + } + else { + arg0->unkB0 |= 8; + arg0->unkC0 = 30; + } + } + else if (sp130[0] != 0) { + arg0->unkB0 |= 4; + arg0->unkC0 = 30; + } + else if (sp130[1] != 0) { + arg0->unkB0 |= 8; + arg0->unkC0 = 30; + } + else { + arg0->unkB0 |= 0x10; + } + } + if ((arg0->unkB0 & 4) || (arg0->unkB0 & 8)) { + var_f27 = fn_1_21D4(atan2d(arg0->unk54, arg0->unk5C)); + if (arg0->unkB0 & 4) { + var_f27 += 10.0f; + } + else { + var_f27 -= 10.0f; + } + var_f29 = 800.0 * sind(var_f27); + var_f28 = 800.0 * cosd(var_f27); + } + else { + var_f29 = arg0->unk54; + var_f28 = arg0->unk5C; + } + } + } + var_f26 = fn_1_595C(var_f29, var_f28, arg0); + if (var_f26 > 100.0f || arg0->unkAC == 1) { + if (arg0->unkAC != 1) { + arg0->unkAC = 1; + } + if (var_f26 < 20.0f) { + arg0->unkAC = 0; + return; + } + if (var_f26 < 30.0f) { + sp128 = 10.0f; + } + else { + sp128 = 50.0f; + } + var_f27 = fn_1_21D4(atan2d(var_f29 - arg0->unk54, var_f28 - arg0->unk5C)); + arg0->unkA0 = sp128 * sind(var_f27); + arg0->unkA1 = sp128 * -cosd(var_f27); + } +} + +void fn_1_9AF0(void) +{ + StructBss200 *temp_r31; + StructBss200 *temp_r29; + Vec sp6C; + float sp44; + float sp40; + float var_f23; + float var_f22; + float var_f21; + float var_f28; + float var_f19; + s32 var_r24; + s32 var_r30; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk34 = 0; + temp_r31->unk24 = 0; + temp_r31->unkA8 = 0; + temp_r31->unk38 = 0; + temp_r31->unkBC = -1; + while (lbl_1_bss_5B4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_5B4 = 2; + while (lbl_1_bss_5B4 == 2) { + HuPrcVSleep(); + } + while (TRUE) { + temp_r31->unk60 = temp_r31->unk54; + temp_r31->unk64 = temp_r31->unk5C; + if (GWPlayerCfg[temp_r31->unk28].iscom == 1) { + fn_1_78B4(temp_r31); + } + if (temp_r31->unk3C != 0 && temp_r31->unk48-- == 0) { + temp_r31->unk3C = 0; + temp_r31->unk94 = 1.0f; + lbl_1_bss_5BC = 0; + } + if (temp_r31->unk24 != 0) { + break; + } + switch (temp_r31->unk34) { + case 4: + omVibrate(temp_r31->unk28, 12, 6, 6); + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[6]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk44 = 60; + temp_r31->unk34 = 5; + break; + case 5: + if (temp_r31->unk44 != 0) { + if (temp_r31->unk44 == 20) { + HuAudPlayerVoicePlay(temp_r31->unk28, 0x119); + } + temp_r31->unk44--; + } + else { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[7], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + temp_r31->unk44 = 20; + temp_r31->unk34 = 6; + } + break; + case 6: + if (temp_r31->unk44 != 0) { + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk44--; + } + else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk44 = 10; + temp_r31->unk34 = 7; + } + break; + case 7: + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } + else { + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); + temp_r31->unk34 = 0; + } + break; + default: + HuSetVecF(&sp6C, fn_1_4E54(temp_r31->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(temp_r31->unk28, 1) / 4.0f); + temp_r31->unk90 = VECMagXYZ(&sp6C); + if (temp_r31->unk90 >= 0.5f) { + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + if (temp_r31->unk90 >= 10.0f) { + sp6C.x /= temp_r31->unk90; + sp6C.z /= temp_r31->unk90; + temp_r31->unk90 = 10.0f; + sp6C.x = 10.0f * sp6C.x; + sp6C.z = 10.0f * sp6C.z; + } + temp_r31->unk6C = fn_1_5858(temp_r31->unk6C, atan2d(sp6C.x, sp6C.z), 0.4f); + if (temp_r31->unk90 >= 8.0f) { + if (temp_r31->unk34 != 3) { + temp_r31->unk34 = 3; + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + else if (temp_r31->unk34 != 2) { + temp_r31->unk34 = 2; + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + temp_r31->unk54 += sp6C.x * temp_r31->unk94; + temp_r31->unk5C += sp6C.z * temp_r31->unk94; + } + else if (temp_r31->unk34 != 0) { + temp_r31->unk34 = 0; + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4]); + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + } + break; + } + if ((temp_r31->unk40 = fn_1_50A4(temp_r31, 0.0f, 0)) != -1) { + temp_r31->unk24 = 1; + break; + } + if ((temp_r31->unk40 = fn_1_52E8(temp_r31)) != -1) { + temp_r31->unk24 = 1; + break; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + lbl_1_bss_5BC = 0; + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + var_f23 = 10.0f; + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + var_r30 = (360.0f - fn_1_21D4(temp_r31->unk6C)) / var_f23; + if (temp_r31->unk6C < 180.0f) { + var_r30 = temp_r31->unk6C / var_f23; + var_f23 = -var_f23; + } + for (; var_r30 != 0; var_r30--) { + temp_r31->unk6C += var_f23; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); + } + else { + omVibrate(temp_r31->unk28, 12, 4, 2); + HuAudPlayerVoicePlay(temp_r31->unk28, 0x123); + HuAudFXPlay(0x5EC); + temp_r29 = &lbl_1_bss_200[temp_r31->unk40]; + temp_r31->unk9C = atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C); + var_r30 = 0; + var_f22 = temp_r31->unk54; + var_f21 = temp_r31->unk5C; + while (TRUE) { + var_f22 += 20.0 * sind(temp_r31->unk9C); + var_f21 += 20.0 * cosd(temp_r31->unk9C); + if (ABS_INV(var_f22) > 1200.0f || var_f21 > 1200.0f || var_f21 < -2000.0f) { + break; + } + var_r30++; + } + var_f28 = fn_1_21D4(atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C)); + if (ABS_INV(var_f28 - temp_r31->unk6C) > 90.0f && ABS_INV(var_f28 - temp_r31->unk6C) < 270.0f) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk18, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + else { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1A, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + sp44 = temp_r31->unk58; + var_f19 = 0.0f; + sp40 = 180.0f / var_r30; + var_r24 = 0; + for (; var_r30 != 0; var_r30--) { + temp_r31->unk54 += 20.0 * sind(temp_r31->unk9C); + temp_r31->unk58 = 700.0 * sind(var_f19); + temp_r31->unk5C += 20.0 * cosd(temp_r31->unk9C); + var_f19 += sp40; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + if (Hu3DMotionTimeGet(temp_r31->unk00) == 20.0f && var_r24 == 0) { + var_r24 = 1; + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_PAUSE); + } + HuPrcVSleep(); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, -1000.0f, temp_r31->unk5C); + Hu3DModelAttrSet(temp_r31->unk00, 1); + } + while (TRUE) { + HuPrcVSleep(); + } +} + +float fn_1_ADFC(s32 arg0, float arg1, float arg2) +{ + float temp_f31; + float var_f29; + + temp_f31 = arg1 - fn_1_21D4(arg2); + if (temp_f31 < 0.0f || ABS_INV(temp_f31) > 180.0f) { + if (ABS_INV(temp_f31) > 180.0f) { + var_f29 = (360.0f - ABS_INV(temp_f31)) / arg0; + if (temp_f31 > 0.0f) { + var_f29 = -var_f29; + } + } + else { + var_f29 = temp_f31 / arg0; + } + } + else { + var_f29 = temp_f31 / arg0; + } + return var_f29; +} + +void fn_1_B054(StructBss200 *arg0) +{ + StructBss200 sp23C; + float sp230[3]; + float sp198[2]; + Vec sp224; + Vec sp218; + Vec sp20C; + float sp194; + float sp190; + float sp18C; + float sp188; + float sp184; + float sp180; + s32 sp17C; + float sp178; + float sp174; + float var_f30; + float var_f29; + float var_f31; + s32 var_r21; + s32 var_r20; + StructBss200 *temp_r30; + StructBss200 *var_r29; + StructBss200 *temp_r28; + s32 var_r19; + s32 var_r18; + s32 var_r17; + s32 var_r26; + s32 i; + + arg0->unkA0 = arg0->unkA1 = 0; + arg0->unkA3 = arg0->unkA2 = 0; + arg0->unkA4 = arg0->unkA6 = 0; + switch (GWPlayerCfg[arg0->unk28].diff) { + case 0: + var_r19 = 60; + break; + case 1: + var_r19 = 80; + break; + case 2: + var_r19 = 90; + break; + default: + var_r19 = 95; + break; + } + temp_r30 = &lbl_1_bss_200[lbl_1_bss_5AC]; + var_r29 = &sp23C; + for (i = 0, var_r26 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp230[var_r26] = fn_1_21D4(atan2d(temp_r28->unk54 - temp_r30->unk54, temp_r28->unk5C - temp_r30->unk5C)); + var_r26++; + } + } + if (sp230[0] > sp230[1]) { + sp230[2] = fn_1_21D4(sp230[0] - sp230[1]); + if (sp230[2] < 180.0f) { + sp230[2] = fn_1_21D4(sp230[1] + sp230[2] + 180.0f); + } + else { + sp230[2] = fn_1_21D4(sp230[1] - sp230[2]); + } + } + else { + sp230[2] = fn_1_21D4(sp230[1] - sp230[0]); + if (sp230[2] < 180.0f) { + sp230[2] = fn_1_21D4(sp230[0] + sp230[2] + 180.0f); + } + else { + sp230[2] = fn_1_21D4(sp230[0] - sp230[2]); + } + } + temp_r28 = &lbl_1_bss_200[arg0->unk28]; + HuSetVecF(&sp224, temp_r28->unk54, temp_r28->unk58, temp_r28->unk5C); + HuSetVecF(&sp218, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp184 = VECMagXYZ(&sp20C); + for (i = 0, var_r21 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28 && GWPlayerCfg[i].iscom) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r28->unk54, temp_r28->unk58, temp_r28->unk5C); + HuSetVecF(&sp218, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXYZ(&sp20C); + if (sp194 < sp184) { + var_r21++; + } + } + } + if (arg0->unkAC != 2) { + if (fn_1_6D04() != 0) { + arg0->unkAC = 0; + } + else { + if (ABS_INV(temp_r30->unk54) > 600.0f && ABS_INV(temp_r30->unk5C) > 600.0f) { + if (var_r21 <= 0) { + arg0->unkAC = 0; + } + else { + arg0->unkAC = 2; + } + } + else { + if (var_r21 <= 0) { + arg0->unkAC = 0; + } + else { + arg0->unkAC = 1; + } + } + } + } + if (arg0->unkAC != 3 && arg0->unkD0 > 180) { + arg0->unkAC = 3; + arg0->unkD4 = frandmod(120) + 120; + } + switch (arg0->unkAC) { + case 0: + var_f30 = temp_r30->unk54; + var_f29 = temp_r30->unk5C; + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + break; + case 1: + var_f30 = var_f29 = sp18C = sp188 = 0.0f; + if (temp_r30->unk54 >= 300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = 550.0f; + var_f29 = -100.0f; + sp18C = 100.0f; + sp188 = 550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = -550.0f; + var_f29 = -100.0f; + sp18C = -100.0f; + sp188 = 550.0f; + } + if (temp_r30->unk54 >= 300.0f && temp_r30->unk5C >= 300.0f) { + var_f30 = 550.0f; + var_f29 = -100.0f; + sp18C = 100.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C >= -300.0f) { + var_f30 = -550.0f; + var_f29 = -100.0f; + sp18C = -100.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 > 300.0f && temp_r30->unk5C > -300.0f && temp_r30->unk5C < 300.0f) { + var_f30 = 200.0f; + var_f29 = 550.0f; + sp18C = 200.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C > -300.0f && temp_r30->unk5C < 300.0f) { + var_f30 = -200.0f; + var_f29 = 550.0f; + sp18C = -200.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < 300.0f && temp_r30->unk54 > -300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = 550.0f; + var_f29 = -200.0f; + sp18C = -550.0f; + sp188 = -200.0f; + } + if (temp_r30->unk54 < 300.0f && temp_r30->unk54 > -300.0f && temp_r30->unk5C > 300.0f) { + var_f30 = 550.0f; + var_f29 = 200.0f; + sp18C = -550.0f; + sp188 = 200.0f; + } + for (i = 0, var_r17 = -1, sp190 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXZ(&sp20C); + if (sp194 < sp190) { + sp190 = sp194; + var_r17 = i; + } + } + } + for (i = 0, var_r26 = -1, sp190 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != var_r17) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXZ(&sp20C); + if (sp194 < sp190) { + sp190 = sp194; + var_r26 = i; + } + } + } + if (arg0->unk28 != var_r26) { + var_f30 = sp18C; + var_f29 = sp188; + } + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + break; + case 2: + for (i = 0, var_r26 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp198[var_r26++] = fn_1_21D4(atan2d(temp_r28->unk54 - arg0->unk54, temp_r28->unk5C - arg0->unk5C)); + } + } + sp180 = fn_1_21D4(ABS_INV(sp198[0] - sp198[1]) / 2.0f); + if (sp180 < 90.0f) { + sp180 += 180.0f; + } + if (sp198[0] < sp198[1]) { + sp180 += sp198[0]; + } + else { + sp180 += sp198[1]; + } + sp180 = fn_1_21D4(sp180); + if (sqrtf(arg0->unk54 * arg0->unk54 + arg0->unk5C * arg0->unk5C) < 500.0f) { + sp194 = 600.0f; + var_f30 = arg0->unk54 + sp194 * sind(sp180); + var_f29 = arg0->unk5C + sp194 * cosd(sp180); + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + } + else { + arg0->unkAC = 1; + } + break; + case 3: + for (i = 0, sp174 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp178 = fn_1_595C(temp_r28->unk54, temp_r28->unk5C, arg0); + if (sp178 < sp174) { + sp174 = sp178; + sp17C = i; + } + } + } + temp_r28 = &lbl_1_bss_200[sp17C]; + var_f31 = fn_1_21D4(180.0 + atan2d(temp_r28->unk54 - arg0->unk54, temp_r28->unk5C - arg0->unk5C)); + var_f30 = arg0->unk54 + 100.0 * sind(var_f31); + var_f29 = arg0->unk5C + 100.0 * cosd(var_f31); + if (arg0->unkD4-- == 0) { + arg0->unkD0 = 0; + arg0->unkAC = 1; + } + break; + } + var_r29->unk9C = 0.0f; + if (ABS_INV(arg0->unk6C - var_f31) > 30.0f && ABS_INV(arg0->unk6C - var_f31) < 330.0f) { + if (ABS_INV(fn_1_21D4(arg0->unk6C - var_f31)) > 180.0f) { + arg0->unkA0 = -30; + var_r29->unk9C = arg0->unk98; + } + else { + arg0->unkA0 = 30; + var_r29->unk9C = -arg0->unk98; + } + } + if (arg0->unkB8 == 0) { + HuSetVecF(&sp224, var_f30, 0.0, var_f29); + HuSetVecF(&sp218, arg0->unk54, 0.0, arg0->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + if (VECMagXZ(&sp20C) > 10.0f) { + if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { + arg0->unkA4 |= 0x100; + } + else { + arg0->unkA4 |= 0x200; + var_r29->unk9C = -var_r29->unk9C; + } + } + } + var_r29->unk28 = arg0->unk28; + var_r29->unk54 = arg0->unk54; + var_r29->unk58 = arg0->unk58; + var_r29->unk5C = arg0->unk5C; + var_r29->unk90 = arg0->unk90; + var_r29->unk9C = fn_1_21D4(arg0->unk9C + var_r29->unk9C); + var_r29->unk8C = lbl_1_bss_200[lbl_1_bss_5AC].unk8C + arg0->unk8C + arg0->unk90; + var_r20 = fn_1_50A4(var_r29, arg0->unk90, 0); + if (var_r20 != -1 && var_r20 != lbl_1_bss_5AC) { + if (arg0->unkA4 & 0x100) { + var_r29->unk54 += var_r29->unk90 * sind(var_r29->unk9C); + var_r29->unk5C += var_r29->unk90 * cosd(var_r29->unk9C); + } + if (arg0->unkA4 & 0x200) { + var_r29->unk54 -= var_r29->unk90 * sind(var_r29->unk9C); + var_r29->unk5C -= var_r29->unk90 * cosd(var_r29->unk9C); + } + temp_r28 = &lbl_1_bss_200[var_r20]; + HuSetVecF(&sp224, arg0->unk54, 0.0, arg0->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXYZ(&sp20C); + HuSetVecF(&sp224, var_r29->unk54, 0.0, var_r29->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp190 = VECMagXYZ(&sp20C); + var_r18 = fn_1_50A4(var_r29, 0.0f, 0); + if (sp194 > sp190 || (var_r20 != var_r18 && var_r18 != -1)) { + arg0->unkA0 = 30; + arg0->unkA4 = 0; + arg0->unkAC = 2; + arg0->unkA8 = 300; + if (arg0->unkB8 == 0) { + arg0->unkB8 = 60; + } + } + else if (var_r18 == -1) { + arg0->unkAC = 2; + if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { + arg0->unkA4 |= 0x100; + } + else { + arg0->unkA4 |= 0x200; + var_r29->unk9C = -var_r29->unk9C; + } + } + else { + arg0->unkA0 = 30; + } + } + if (arg0->unkB8 != 0) { + arg0->unkB8--; + } +} + +void fn_1_DECC(void) +{ + StructBss200 *temp_r31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + for (i = 0; i < 20; i++) { + temp_r31->unk88 -= 4.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk80, temp_r31->unk84, temp_r31->unk88); + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_DF3C(StructBss200 *arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = 1; + var_r30 = 1; + if (arg0->unk34 != 4 && arg0->unk34 != 5) { + var_r30 = 0; + } + if (var_r30 == 0 && arg0->unk34 != 6) { + var_r31 = 0; + } + return var_r31; +} + +void fn_1_DF98(void) +{ + float var_f27; + float var_f25; + float var_f26; + StructBss200 *temp_r31; + StructBss200 *temp_r30; + s32 var_r25; + s32 var_r29; + s32 var_r28; + s32 sp90; + Process *sp8C; + s32 sp88; + s32 sp84; + s32 sp80; + s32 sp7C; + Process *sp78; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk34 = 0; + temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; + temp_r31->unkC0 = 0; + temp_r31->unk38 = 0; + temp_r31->unkD0 = 0; + while (lbl_1_bss_5B4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_5B4 = 2; + while (lbl_1_bss_5B4 == 2) { + HuPrcVSleep(); + } + temp_r31->unkD8 = temp_r31->unk54; + temp_r31->unkDC = temp_r31->unk5C; + var_r29 = 0; + while (TRUE) { + temp_r31->unk60 = temp_r31->unk54; + temp_r31->unk64 = temp_r31->unk5C; + if (GWPlayerCfg[temp_r31->unk28].iscom == 1) { + fn_1_B054(temp_r31); + } + if (temp_r31->unk3C != 0) { + if (temp_r31->unk48 == 300) { + sp8C = HuPrcChildCreate(fn_1_32F8, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + sp8C->user_data = (void *)temp_r31->unk28; + } + if (temp_r31->unk48-- == 0) { + temp_r31->unk3C = 0; + temp_r31->unk90 = 2.25f; + temp_r31->unk98 = 0.66f; + } + } + if (temp_r31->unk24 != 0) { + break; + } + switch (temp_r31->unk34) { + case 8: + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk34 = 0; + } + break; + case 4: + omVibrate(temp_r31->unk28, 12, 4, 2); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + temp_r31->unk44 = 90; + temp_r31->unk4C = 30; + temp_r31->unk34 = 5; + break; + case 5: + if (temp_r31->unk4C-- == 0) { + HuAudFXPlay(0x5E7); + temp_r31->unk74 = temp_r31->unk54; + temp_r31->unk78 = temp_r31->unk58; + temp_r31->unk7C = temp_r31->unk5C; + temp_r31->unk38 |= 1; + } + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } + else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk34 = 6; + } + break; + case 6: + if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + temp_r31->unk34 = 0; + } + break; + default: + if (fn_1_4E54(temp_r31->unk28, 0) > 20) { + temp_r31->unk9C -= temp_r31->unk98; + if (temp_r31->unk9C < 0.0f) { + temp_r31->unk9C += 360.0f; + } + temp_r31->unk6C = temp_r31->unk9C; + } + if (fn_1_4E54(temp_r31->unk28, 0) < -20) { + temp_r31->unk9C += temp_r31->unk98; + if (temp_r31->unk9C > 360.0f) { + temp_r31->unk9C -= 360.0f; + } + temp_r31->unk6C = temp_r31->unk9C; + } + if (fn_1_5038(temp_r31->unk28) & 0x100) { + temp_r31->unk54 += temp_r31->unk90 * sind(temp_r31->unk9C); + temp_r31->unk5C += temp_r31->unk90 * cosd(temp_r31->unk9C); + } + if (fn_1_5038(temp_r31->unk28) & 0x200) { + temp_r31->unk54 -= temp_r31->unk90 * sind(temp_r31->unk9C); + temp_r31->unk5C -= temp_r31->unk90 * cosd(temp_r31->unk9C); + } + if (fn_1_5038(temp_r31->unk28) & 0x300) { + if (temp_r31->unk3C != 1) { + if (temp_r31->unk34 != 2) { + temp_r31->unk34 = 2; + if (fn_1_5038(temp_r31->unk28) & 0x100) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } + else { + if (temp_r31->unk34 != 3) { + temp_r31->unk34 = 3; + temp_r31->unk50 = 0; + if (fn_1_5038(temp_r31->unk28) & 0x100) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } + if (temp_r31->unk3C != 1) { + sp88 = 8; + sp84 = 32; + } + else { + sp88 = 7; + sp84 = 22; + } + if (temp_r31->unk50 == sp88) { + HuAudFXPlay(0x5E0); + } + if (temp_r31->unk50 == sp84) { + HuAudFXPlay(0x5E0); + } + temp_r31->unk50++; + if (temp_r31->unk3C != 1) { + if (temp_r31->unk50 >= 50) { + temp_r31->unk50 -= 50; + } + } + else { + if (temp_r31->unk50 >= 30) { + temp_r31->unk50 -= 30; + } + } + } + else { + if (ABS_INV(fn_1_4E54(temp_r31->unk28, 0)) <= 20) { + if (temp_r31->unk34 != 0) { + temp_r31->unk34 = 0; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } + else { + if (temp_r31->unk34 != 1) { + temp_r31->unk34 = 1; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.5f); + var_r25 = HuAudFXPlay(0x5EB); + var_r29 = 1; + } + } + } + if ((sp90 = fn_1_50A4(temp_r31, 0.0f, 0)) != -1) { + temp_r30 = &lbl_1_bss_200[sp90]; + if (GWPlayerCfg[temp_r30->unk28].group != 0) { + HuAudFXPlay(0x5ED); + temp_r31->unk34 = 8; + temp_r31->unk44 = 90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[6], 0.0f, 5.0f, 0U); + if ((temp_r30->unk34 == 4 || temp_r30->unk34 == 5 || temp_r30->unk34 == 6) == FALSE) { + temp_r30->unk34 = 8; + temp_r30->unk44 = 90; + Hu3DMotionShiftSet(temp_r30->unk00, temp_r30->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + temp_r31->unk54 = temp_r31->unk60; + temp_r31->unk5C = temp_r31->unk64; + } + else { + temp_r30->unk24 = 1; + temp_r30->unk40 = temp_r31->unk28; + } + } + if ((sp90 = fn_1_52E8(temp_r31)) != -1) { + temp_r30 = &lbl_1_bss_200[sp90]; + if (GWPlayerCfg[temp_r30->unk28].group != 0) { + HuAudFXPlay(0x5ED); + temp_r31->unk34 = 8; + temp_r31->unk44 = 90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + if ((temp_r30->unk34 == 4 || temp_r30->unk34 == 5 || temp_r30->unk34 == 6) == FALSE) { + temp_r30->unk34 = 8; + temp_r30->unk44 = 90; + Hu3DMotionShiftSet(temp_r30->unk00, temp_r30->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + temp_r31->unk54 = temp_r31->unk60; + temp_r31->unk5C = temp_r31->unk64; + } + else { + temp_r30->unk24 = 1; + temp_r30->unk40 = temp_r31->unk28; + } + } + break; + } + if (temp_r31->unkD8 == temp_r31->unk54 && temp_r31->unkDC == temp_r31->unk5C) { + temp_r31->unkD0++; + } + else { + temp_r31->unkD8 = temp_r31->unk54; + temp_r31->unkDC = temp_r31->unk5C; + temp_r31->unkD0 = 0; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + if (var_r29 != 0) { + HuAudFXStop(var_r25); + } + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(90); + if (lbl_1_bss_5AC == 0) { + if (temp_r31->unk28 != 0) { + HuAudFXPlay(0x5EA); + } + } + else { + if (temp_r31->unk28 == 0) { + HuAudFXPlay(0x5EA); + } + } + Hu3DModelAttrReset(temp_r31->unk04, 1); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(temp_r31->unk04, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + if (lbl_1_bss_5AC == 0) { + if (temp_r31->unk28 != 0) { + HuAudFXPlay(0x5E3); + } + } + else { + if (temp_r31->unk28 == 0) { + HuAudFXPlay(0x5E3); + } + } + HuPrcSleep(15); + HuPrcSleep(30); + temp_r31->unk74 = temp_r31->unk54; + temp_r31->unk78 = temp_r31->unk58; + temp_r31->unk7C = temp_r31->unk5C; + temp_r31->unk38 |= 2; + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + lbl_1_bss_594[temp_r31->unk28] = HuAudPlayerVoicePlay(temp_r31->unk28, 0x11A); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1C[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DModelHookReset(temp_r31->unk00); + Hu3DModelShadowSet(temp_r31->unk02); + var_f27 = 50.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk54, temp_r31->unk58 + var_f27, temp_r31->unk5C); + HuPrcSleep(60); + for (sp80 = 0, sp7C = 0; sp80 < 90; sp80++) { + if (sp7C & 1) { + Hu3DModelAttrReset(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk04, 1); + } + else { + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrSet(temp_r31->unk04, 1); + } + sp7C++; + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk04, 1); + for (var_r28 = 0, var_f25 = 1.0f; var_r28 < 30; var_r28++) { + var_f25 -= 0.033333335f; + Hu3DModelTPLvlSet(temp_r31->unk00, var_f25); + if (var_f27 > 0.0f) { + var_f27 -= 5.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk54, temp_r31->unk58 + var_f27, temp_r31->unk5C); + } + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + } + else { + var_f26 = temp_r31->unk98; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + if (fn_1_21D4(temp_r31->unk6C) != 0.0f) { + var_r28 = (360.0f - fn_1_21D4(temp_r31->unk6C)) / var_f26; + if (temp_r31->unk6C < 180.0f) { + var_r28 = temp_r31->unk6C / var_f26; + var_f26 = -var_f26; + } + while (var_r28 != 0) { + temp_r31->unk6C += var_f26; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + var_r28--; + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); + } + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + while (lbl_1_bss_5A4 < 60) { + HuPrcVSleep(); + } + sp78 = HuPrcChildCreate(fn_1_DECC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + sp78->user_data = temp_r31; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1C[2], 0.0f, 2.0f, HU3D_MOTATTR_NONE); + temp_r31->unk34 = 10; + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F73C(void) +{ + StructBss200 *var_r31; + float var_f31; + s32 var_r30; + s32 var_r29; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelAttrReset(lbl_1_bss_200[var_r30].unk00, 1); + } + for (var_r29 = 0, var_f31 = 1000.0f; var_r29 < 60; var_r29++, var_f31 -= 7.5f) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != lbl_1_bss_5AC) { + var_r31 = &lbl_1_bss_200[var_r30]; + var_r31->unk54 = var_f31 * sind(var_r31->unk6C - 180.0f); + var_r31->unk5C = var_f31 * cosd(var_r31->unk6C - 180.0f); + Hu3DModelPosSet(var_r31->unk00, var_r31->unk54, var_r31->unk58, var_r31->unk5C); + } + } + HuPrcVSleep(); + } + var_r31->unk54 = 550.0 * sind(var_r31->unk6C - 180.0f); + var_r31->unk5C = 550.0 * cosd(var_r31->unk6C - 180.0f); + Hu3DModelPosSet(var_r31->unk00, var_r31->unk54, var_r31->unk58, var_r31->unk5C); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != lbl_1_bss_5AC) { + var_r31 = &lbl_1_bss_200[var_r30]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F9BC(void) +{ + StructBss200 *temp_r31; + float temp_f26; + float temp_f28; + float temp_f27; + float temp_f29; + float temp_f30; + float var_f31; + s32 var_r28; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + HuAudFXPlay(0x5E5); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + var_r27 = 180; + temp_f29 = ((CenterM->z - 687.0f) / var_r27) * 40.0f / 60.0f; + temp_f26 = ((CenterM->z - 687.0f) / var_r27) * 20.0f / 60.0f; + temp_f30 = CenterM->y; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = 30, var_f31 = 0.0f; var_r29 != 0; var_r29--, var_f31 += 3.0f) { + CenterM->y = temp_f30 + 50.0 * sind(var_f31); + CenterM->z -= 2.0f * temp_f29; + HuPrcVSleep(); + } + for (var_r29 = 20, var_f31 = 90.0f; var_r29 != 0; var_r29--, var_f31 += 4.5f) { + CenterM->y = temp_f30 + 50.0 * sind(var_f31); + CenterM->z -= 2.0f * temp_f26 * 1.5f; + HuPrcVSleep(); + } + HuAudFXPlay(0x5DF); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + omVibrate(var_r28, 12, 12, 0); + } + HuPrcSleep(5); + for (var_r29 = 10, var_f31 = 180.0f; var_r29 != 0; var_r29--, var_f31 += 18.0f) { + CenterM->y = temp_f30 + 10.0 * sind(var_f31); + HuPrcVSleep(); + } + HuPrcSleep(10); + } + HuPrcChildCreate(fn_1_F73C, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + temp_f28 = CRotM->x; + temp_f30 = CenterM->y; + temp_f29 = CenterM->z; + temp_f27 = CZoomM[0]; + for (var_r30 = 0; var_r30 < 60; var_r30++) { + CRotM->x += (-45.0f - temp_f28) / 60.0f; + CenterM->y += (100.0f - temp_f30) / 60.0f; + CenterM->z += (70.0f - temp_f29) / 60.0f; + CZoomM[0] += (2130.0f - temp_f27) / 60.0f; + HuPrcVSleep(); + } + HuAudFXPlay(0x5DF); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + omVibrate(var_r28, 12, 12, 0); + } + Hu3DModelAttrSet(lbl_1_bss_5B8, 1); + HuAudPlayerVoicePlay(temp_r31->unk28, 0x128); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[5], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(15); + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(60); + temp_f28 = CRotM->x; + temp_f30 = CenterM->y; + temp_f29 = CenterM->z; + temp_f27 = CZoomM[0]; + for (var_r30 = 0; var_r30 < 60; var_r30++) { + CRotM->x += (-35.0f - temp_f28) / 60.0f; + CenterM->y += -temp_f30 / 60.0f; + CenterM->z += (-250.0f - temp_f29) / 60.0f; + CZoomM[0] += (4820.0f - temp_f27) / 60.0f; + HuPrcVSleep(); + } + HuPrcSleep(30); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(15); + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); +} + +void fn_1_10258(s32 arg0) +{ + StructBss200 *var_r30; + float temp_f31; + float temp_f30; + float temp_f29; + s32 i; + + if (arg0 == lbl_1_bss_5AC) { + HuPrcSleep(120); + temp_f31 = CenterM->x; + temp_f30 = CenterM->z; + temp_f29 = CZoomM[0]; + for (i = 0; i < 60; i++) { + var_r30 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CenterM->x += (var_r30->unk54 - temp_f31) / 60.0f; + CenterM->z += (var_r30->unk5C - 100.0f - temp_f30) / 60.0f; + CZoomM[0] += (1000.0f - temp_f29) / 60.0f; + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_5AC) { + continue; + } + HuAudFXStop(lbl_1_bss_594[i]); + } + HuAudSStreamPlay(1); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk16, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + else { + for (lbl_1_bss_5A4 = 0; lbl_1_bss_5A4 < 60; lbl_1_bss_5A4++) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + } +} + +void fn_1_104A0(void) +{ + while (TRUE) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_10500(void) +{ + s16 temp_r28; + s16 temp_r30; + s16 var_r29; + s32 var_r26; + s32 var_r27; + s32 sp8[3]; + s32 i; + + lbl_1_bss_5B4 = 0; + lbl_1_bss_5A8 = -1; + fn_1_F9BC(); + HuPrcSleep(30); + lbl_1_bss_5B4 = 1; + while (lbl_1_bss_5B4 == 1) { + HuPrcVSleep(); + } + var_r26 = HuAudSeqPlay(0x49); + temp_r30 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + var_r29 = 0xAC7; + temp_r28 = MGSeqTimerCreate(var_r29 / 60); + lbl_1_bss_5B4 = 3; + while (TRUE) { + if (lbl_1_bss_200[lbl_1_bss_5AC].unk24 == 1) { + break; + } + if (var_r29 < 59) { + lbl_1_bss_5A8 = lbl_1_bss_5AC; + break; + } + MGSeqParamSet(temp_r28, 1, var_r29-- / 60); + lbl_1_bss_5B0++; + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_200[i].unk24 = 1; + } + lbl_1_bss_5B4 = 4; + HuAudSeqFadeOut(var_r26, 100); + MGSeqParamSet(temp_r28, 2, -1); + temp_r30 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + fn_1_10258(lbl_1_bss_5A8); + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + GWPlayerCoinWinSet(lbl_1_bss_5A8, 10); + temp_r30 = MGSeqWinCreate(GWPlayerCfg[lbl_1_bss_5A8].character, -1, -1, -1); + } + else { + for (i = 0, var_r27 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC) { + sp8[var_r27++] = i; + GWPlayerCoinWinSet(i, 10); + } + } + temp_r30 = MGSeqWinCreate(GWPlayerCfg[sp8[0]].character, GWPlayerCfg[sp8[1]].character, GWPlayerCfg[sp8[2]].character, -1); + } + HuPrcSleep(210); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } +} diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index 18f5b3ea..d6574513 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -1,5 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" #include "game/flag.h" #include "game/hsfman.h" #include "game/minigame_seq.h" @@ -9,6 +8,11 @@ #include "game/wipe.h" #include "REL/m420dll.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#endif s32 fn_1_198(void); void fn_1_3D4(void); @@ -142,8 +146,8 @@ void fn_1_43C(void) HuPrcVSleep(); } MGSeqKill(lbl_1_bss_10); - lbl_1_bss_12 = 0xE10; - lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1); + lbl_1_bss_12 = 60 * REFRESH_RATE; + lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / REFRESH_RATE, -1, -1); var_r30 = 1; while (TRUE) { if (lbl_1_bss_18[0]->unk_48 == 0) { @@ -163,8 +167,8 @@ void fn_1_43C(void) } } if (lbl_1_bss_12 >= 0) { - if (((--lbl_1_bss_12) % 60) == 0) { - MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60); + if (((--lbl_1_bss_12) % REFRESH_RATE) == 0) { + MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / REFRESH_RATE); } } if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) { diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 6b424066..5bdb79f2 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -59,16 +59,111 @@ M420DllUnkStruct2 lbl_1_data_50[4] = { { 0x19, 0x01, 0x14, 0x04, 0x0A, 0x08, 0x01, 0x01 }, }; -// TODO MAKE_NUM static const s32 lbl_1_rodata_F8[8][0xB] = { - { 0x5F0000, 0x5F0017, 0x5F0018, 0x5F0068, 0x5F0069, 0x5F006A, 0x5F0035, 0x5F006B, 0x5F006E, 0x5F0049, 0x33001B }, - { 0x1A0000, 0x1A0017, 0x1A0018, 0x1A0068, 0x1A0069, 0x1A006A, 0x1A0035, 0x1A006B, 0x1A006E, 0x1A0049, 0x33001C }, - { 0x6D0000, 0x6D0017, 0x6D0018, 0x6D0068, 0x6D0069, 0x6D006A, 0x6D0035, 0x6D006B, 0x6D006E, 0x6D0049, 0x33001D }, - { 0x8A0000, 0x8A0017, 0x8A0018, 0x8A0068, 0x8A0069, 0x8A006A, 0x8A0035, 0x8A006B, 0x8A006E, 0x8A0049, 0x33001E }, - { 0x850000, 0x850017, 0x850018, 0x850068, 0x850069, 0x85006A, 0x850035, 0x85006B, 0x85006E, 0x850049, 0x33001F }, - { 0x110000, 0x110017, 0x110018, 0x110068, 0x110069, 0x11006A, 0x110035, 0x11006B, 0x11006E, 0x110049, 0x330020 }, - { 0x0D0000, 0x0D0017, 0x0D0018, 0x0D0068, 0x0D0069, 0x0D006A, 0x0D0035, 0x0D006B, 0x0D006E, 0x0D0049, 0x330021 }, - { 0x810000, 0x810017, 0x810018, 0x810068, 0x810069, 0x81006A, 0x810035, 0x81006B, 0x81006E, 0x810049, 0x330022 }, + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x68), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x69), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), + 0x33001B, + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x49), + 0x33001C, + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x68), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x69), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x35), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x49), + 0x33001D, + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x49), + 0x33001E, + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x68), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x69), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x49), + 0x33001F, + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x68), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x69), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x49), + 0x330020, + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x68), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x69), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x49), + 0x330021, + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x49), + 0x330022, + }, }; static const Vec lbl_1_rodata_258[4][2] = { { { -372.0f, 300.0f, -220.0f }, { 0.0f, 50.0f, 0.0f } }, diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c new file mode 100644 index 00000000..8ab50b74 --- /dev/null +++ b/src/REL/m421Dll/main.c @@ -0,0 +1,904 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m421Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M421DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 unk_20; + u32 unk24; + u32 unk_28; + u32 unk_2C; + s32 unk_30[4]; + s32 unk_40[4]; + s32 unk_50[4]; + u32 unk_60; + u32 unk_64; + u32 unk_68; + u32 unk_6C; + s32 unk_70; +} M421DllWork; /* size = 0x74 */ + +void fn_1_10EC(omObjData *object); +void fn_1_142C(omObjData *object); +void fn_1_1850(omObjData *object); +void fn_1_1C90(omObjData *object); +omObjFunc fn_1_213C(Process *process, omObjData *object); +void fn_1_21AC(omObjData *object); +omObjFunc fn_1_2A28(Process *process, omObjData *object); +void fn_1_2BB8(omObjData *object); +void fn_1_3020(Process *process); +void fn_1_30D0(omObjData *object); +void fn_1_3334(omObjData *object); +void fn_1_335C(omObjData *object); +void fn_1_38FC(ModelData *model, Mtx mtx); +void fn_1_3B50(u32 arg0); +M421DllCameraStruct *fn_1_3B78(s32 arg0); +M421DllCameraStruct *fn_1_3CB0(u32 arg0); +float fn_1_4478(float arg8, float arg9, float argA); +void fn_1_4A0(omObjData *object); +void fn_1_784(omObjData *object); +void fn_1_8B8(omObjData *object); +void fn_1_CBC(omObjData *object); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C[3] = { + { 0.0f, 200.0f, -50.0f }, + { 0.0f, 200.0f, -50.0f }, + { 0.0f, 200.0f, -50.0f }, +}; +Vec lbl_1_data_70[3] = { + { -37.5f, 0.0f, 1500.0f }, + { -37.5f, 0.0f, 1500.0f }, + { -37.5f, 0.0f, 2300.0f }, +}; +s32 lbl_1_data_94[3] = { 0xF0, 0x1E, 0 }; +GXColor lbl_1_data_A0 = { 0, 0, 0, 0 }; + +Process *lbl_1_bss_28; +omObjData *lbl_1_bss_24; +omObjData *lbl_1_bss_20; +// M421DllCameraStruct +omObjData *lbl_1_bss_1C; +s16 lbl_1_bss_18; +s16 lbl_1_bss_12[3]; +s16 lbl_1_bss_10; +s16 lbl_1_bss_E; +s16 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Mtx sp2C; + Vec sp20 = { 0.0f, 0.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, -1.0f }; + Vec sp8; + Process *process; + LightData *lightData; + + lbl_1_bss_8 = 0; + HuAudSndGrpSet(0x2E); + HuAudFXListnerSetEX(&sp20, &sp14, 11200.0f, 4166.6665f, 0.0f, 300.0f, 0.0f); + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_bss_18 = -1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(22.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_12[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_12[0]); + lightData = &Hu3DGlobalLight[lbl_1_bss_12[0]]; + lightData->unk_00 |= 0x8000; + lbl_1_data_18.x = 1.0f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 4200.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); + Hu3DGLightPosAimSetV(lbl_1_bss_12[0], &lbl_1_data_28, &lbl_1_data_40); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_10 = lbl_1_bss_E = lbl_1_bss_C = -1; + process = omInitObjMan(0x32, 0x2000); + lbl_1_bss_28 = process; + omGameSysInit(process); + fn_1_3020(process); + lbl_1_bss_24 = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_4A0); + fn_1_B15C(process); + fn_1_4648(process); +} + +void fn_1_4A0(omObjData *object) +{ + M421DllWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_28 = 0; + work->unk_2C = 0; + work->unk_08 = 0; + work->unk_64 = 2; + work->unk_50[0] = work->unk_50[1] = work->unk_50[2] = work->unk_50[3] = -1; + work->unk_68 = 0; + work->unk_70 = 0; + object->func = fn_1_8B8; +} + +void fn_1_578(omObjData *object) +{ + Vec sp14; + Vec sp8; + M421DllCameraStruct *var_r31; + + M421DllWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_2C++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_784(object); + } + var_r31 = fn_1_3B78(1); + sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp8.y = -(-sind(var_r31->unk_28.x)); + sp8.z = -(cosd(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp14.x = var_r31->unk_1C.x - (sp8.x * var_r31->unk_34); + sp14.y = var_r31->unk_1C.y - (sp8.y * var_r31->unk_34); + sp14.z = var_r31->unk_1C.z - (sp8.z * var_r31->unk_34); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_784(omObjData *object) +{ + M421DllWork *work = object->data; + + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_213C(lbl_1_bss_28, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_142C; + break; + case 2: + work->unk_00 = 3; + work->unk_2C = 0; + object->func = fn_1_2A28(lbl_1_bss_28, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_CBC; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_10EC; + } + work->unk_04 = 0; + } +} + +void fn_1_8B8(omObjData *object) +{ + fn_1_578(object); + fn_1_784(object); +} + +void fn_1_CBC(omObjData *object) +{ + M421DllWork *work = object->data; + fn_1_578(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + work->unk_08 = 0; + fn_1_784(object); + } +} + +void fn_1_10EC(omObjData *object) +{ + fn_1_578(object); + if (WipeStatGet() == 0) { + fn_1_48B0(); + fn_1_B1BC(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_142C(omObjData *object) +{ + M421DllWork *work = object->data; + fn_1_578(object); + switch (work->unk_14) { + case 0: + work->unk_1C = 0x2D; + work->unk_20 = 0x3C; + lbl_1_bss_10 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_10, 320.0f, 240.0f); + lbl_1_bss_18 = -1; + work->unk_14 = 1; + work->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_10) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x48); + } + if (MGSeqStatGet(lbl_1_bss_10) == 0 && (work->unk_08 == 0)) { + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_1850; + } + break; + } +} + +void fn_1_1850(omObjData *object) +{ + M421DllWork *work = object->data; + s32 var_r26 = 0; + fn_1_578(object); + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if ((work->unk_1C == 0) && (work->unk_64 == 2)) { + work->unk_64 = 1; + var_r26 = 1; + } + } + if (lbl_1_bss_18 < 0) { + lbl_1_bss_18 = MGSeqCreate(1, work->unk_1C, -1, -1); + } + MGSeqParamSet(lbl_1_bss_18, 1, work->unk_1C); + if (work->unk_64 != 2) { + var_r26 = 1; + } + if (var_r26 != 0) { + lbl_1_bss_E = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_E, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_1C90; + } + } +} + +void fn_1_1C90(omObjData *object) +{ + M421DllWork *work = object->data; + s32 var_r25 = 0; + if (lbl_1_bss_18 >= 0) { + MGSeqParamSet(lbl_1_bss_18, 2, -1); + lbl_1_bss_18 = -1; + } + fn_1_578(object); + if (work->unk_14 == 3) { + var_r25 = 1; + if ((MGSeqStatGet(lbl_1_bss_E) == 0) && (work->unk_68 == 0x1111) && (var_r25 != 0)) { + work->unk_14 = 4; + work->unk_18 = 0; + } + } + else { + work->unk_14 = 5; + work->unk_18 = 0; + fn_1_784(object); + } +} + +omObjFunc fn_1_213C(Process *process, omObjData *object) +{ + M421DllCameraStruct *var_r31; + + object->work[0] = object->work[1] = 0; + fn_1_3B50(1); + var_r31 = fn_1_3CB0(0); + var_r31->unk_84 = 1.0f; + var_r31->unk_94 = 0; + return fn_1_21AC; +} + +void fn_1_21AC(omObjData *object) +{ + Vec sp20; + float var_f31; + M421DllCameraStruct *var_r30; + M421DllWork *work; + + work = object->data; + fn_1_578(object); + work->unk_0C = 1; + object->work[0]++; + var_f31 = (float)object->work[0] / lbl_1_data_94[object->work[1]]; + VECSubtract(&lbl_1_data_4C[object->work[1] + 1], &lbl_1_data_4C[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + Center.x = sp20.x; + Center.y = sp20.y; + Center.z = sp20.z; + VECSubtract(&lbl_1_data_70[object->work[1] + 1], &lbl_1_data_70[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + CRot.x = sp20.x; + CRot.y = sp20.y; + CRot.z = 0.0f; + CZoom = sp20.z; + var_r30 = fn_1_3CB0(0); + var_r30->unk_1C = Center; + var_r30->unk_28 = CRot; + var_r30->unk_34 = CZoom; + var_r30->unk_94++; + if (var_r30->unk_94 > 180.0f) { + var_r30->unk_84 -= 0.025000002f; + if (var_r30->unk_84 < 0.0f) { + var_r30->unk_84 = 0.0f; + } + var_r30->unk_1C.x += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + var_r30->unk_1C.y += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + var_r30->unk_1C.z += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + } + if (var_f31 >= 1.0f) { + object->work[0] = 0; + object->work[1]++; + if (lbl_1_data_94[object->work[1]] == 0) { + work->unk_0C = 2; + fn_1_784(object); + } + } +} + +omObjFunc fn_1_2A28(Process *process, omObjData *object) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllWork *var_r29; + s32 var_r28; + + var_r29 = object->data; + var_r28 = 1; + var_r31 = fn_1_3CB0(0); + if (var_r29->unk_64 == 1) { + var_r28 = 0; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r29->unk_50[var_r30] = -1; + if ((var_r29->unk_40[var_r30] == 0) == var_r28) { + var_r29->unk_50[var_r30] = var_r29->unk_30[var_r30]; + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r29->unk_50[var_r30] >= 0) { + GWPlayerCoinWinAdd(var_r30, 10); + } + } + var_r31->unk_54 = 0.0f; + var_r31->unk_58 = 150.0f; + var_r31->unk_5C = 0.0f; + var_r31->unk_60 = -30.0f; + var_r31->unk_64 = 0.0f; + var_r31->unk_68 = 1000.0f; + var_r31->unk_84 = 0.0f; + return fn_1_2BB8; +} + +void fn_1_2BB8(omObjData *var_r29) +{ + M421DllCameraStruct *var_r31; + M421DllWork *var_r28; + + var_r28 = var_r29->data; + var_r31 = fn_1_3CB0(0); + fn_1_578(var_r29); + var_r31->unk_84 += 0.0016666668f; + if (var_r31->unk_84 > 0.1f) { + var_r31->unk_84 = 0.1f; + } + var_r31->unk_1C.y += var_r31->unk_84 * (var_r31->unk_58 - var_r31->unk_1C.y); + var_r31->unk_1C.z += var_r31->unk_84 * (var_r31->unk_5C - var_r31->unk_1C.z); + var_r31->unk_28.x = fn_1_4478(var_r31->unk_28.x, var_r31->unk_60, var_r31->unk_84); + var_r31->unk_34 += var_r31->unk_84 * (var_r31->unk_68 - var_r31->unk_34); + if (var_r28->unk_6C == 0x1111) { + var_r28->unk_28 = 1; + if (lbl_1_bss_0 < 0) { + lbl_1_bss_0 = HuAudSStreamPlay(1); + } + if (lbl_1_bss_C < 0) { + lbl_1_bss_C = MGSeqCreate(5, 3, var_r28->unk_50[0], var_r28->unk_50[1], var_r28->unk_50[2], var_r28->unk_50[3]); + return; + } + if ((MGSeqStatGet(lbl_1_bss_C) == 0) && (var_r28->unk_2C >= 210.0f)) { + var_r28->unk_28 = 2; + fn_1_784(var_r29); + } + } +} + +void fn_1_3020(Process *process) +{ + Hu3DCameraCreate(0x1F); + lbl_1_bss_20 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_20->work[0] = 5; + lbl_1_bss_1C = omAddObjEx(process, 0xC, 1, 0, -1, fn_1_30D0); + lbl_1_bss_1C->work[0] = 0; +} + +void fn_1_30D0(omObjData *object) +{ + UnkM421DllStruct sp1C[5] = { + { 320.0f, 240.0f, 640.0f, 480.0f }, + { 160.0f, 120.0f, 320.0f, 240.0f }, + { 160.0f, 360.0f, 320.0f, 240.0f }, + { 480.0f, 120.0f, 320.0f, 240.0f }, + { 480.0f, 360.0f, 320.0f, 240.0f }, + }; + s32 sp8[5] = { 1, 2, 4, 8, 16 }; + M421DllCameraStruct *var_r31; + s32 var_r29; + M421DllCameraStruct *var_r28; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M421DllCameraStruct), MEMORY_DEFAULT_NUM); + var_r28 = object->data; + memset(var_r28, 0, 10 * sizeof(M421DllCameraStruct)); + object->model[0] = Hu3DHookFuncCreate(fn_1_38FC); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelCameraSet(object->model[0], 0x1E); + for (var_r31 = var_r28, var_r29 = 0; var_r29 < 5; var_r29++, var_r31++) { + var_r31->unk_00 = 1; + var_r31->unk_04 = var_r29 * 0x64; + var_r31->unk_10 = 41.5f; + var_r31->unk_14 = 100.0f; + var_r31->unk_18 = 5500.0f; + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 0.0f; + var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.x = -15.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_34 = 1000.0f; + var_r31->unk_40 = 1.0f; + var_r31->unk_44.unk_00 = sp1C[var_r29].unk_00; + var_r31->unk_44.unk_04 = sp1C[var_r29].unk_04; + var_r31->unk_44.unk_08 = sp1C[var_r29].unk_08; + var_r31->unk_44.unk_0C = sp1C[var_r29].unk_0C; + var_r31->unk_3C = var_r31->unk_0C = sp8[var_r29]; + var_r31->unk_08 = var_r29; + var_r31->unk_38 = var_r29; + } + object->work[1] = 0; + object->work[0]++; + fn_1_335C(object); + object->func = fn_1_3334; +} + +void fn_1_3334(omObjData *object) +{ + fn_1_335C(object); +} + +void fn_1_335C(omObjData *object) +{ + float var_f31; + M421DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M421DllCameraStruct *var_r27; + u32 var_r26; + u32 var_r25; + s32 var_r24; + u32 var_r23; + u32 var_r22; + u32 var_r21; + + var_r27 = object->data; + { + s32 sp40[4] = { 2, 4, 8, 16 }; + u32 sp30[4]; + s32 sp20[4]; + float sp10[4]; + float sp8[2]; + var_r24 = 0; + var_r26 = 0; + memcpy(&var_r27[5], var_r27, 5 * sizeof(M421DllCameraStruct)); + switch (object->work[1]) { + case 0: + break; + case 1: + var_r26 |= 1; + break; + case 2: + var_r26 |= 1; + case 3: + var_r24 = 1; + case 4: + var_r26 |= 0x1E; + break; + } + if (var_r24 != 0) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp30[var_r30] = var_r27[var_r30 + 6].unk_04; + sp20[var_r30] = var_r30; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + if ((var_r30 != var_r29) && (sp30[var_r30] > sp30[var_r29])) { + var_r25 = sp30[var_r30]; + sp30[var_r30] = sp30[var_r29]; + sp30[var_r29] = var_r25; + var_r25 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_r25; + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27[sp20[var_r30] + 6].unk_3C = sp40[var_r30]; + var_r27[sp20[var_r30] + 6].unk_38 = var_r30 + 1; + } + + for (var_r31 = &var_r27[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_00 == 0) || ((var_r26 & var_r31->unk_0C) == 0)) { + Hu3DCamera[var_r31->unk_38].fov = -1.0f; + } + else { + var_f31 = 1.2f * ((var_r31->unk_44.unk_08 / 640.0f) / (var_r31->unk_44.unk_0C / 480.0f)); + sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; + sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; + Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); + Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], + sp10[3], 0.0f, 1.0f); + sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); + sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); + sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); + sp8[1] = var_r31->unk_44.unk_04 + (0.5f * sp10[3]); + if (sp10[0] < 0.0f) { + sp10[0] = 0.0f; + } + if (sp10[1] < 0.0f) { + sp10[1] = 0.0f; + } + if (sp8[0] > 640.0f) { + sp8[0] = 640.0f; + } + if (sp8[1] > 480.0f) { + sp8[1] = 480.0f; + } + sp8[0] -= sp10[0]; + sp8[1] -= sp10[1]; + var_r21 = sp8[1]; + var_r22 = sp8[0]; + var_r23 = sp10[1]; + Hu3DCameraScissorSet(var_r31->unk_3C, sp10[0], var_r23, var_r22, var_r21); + var_r29 = var_r31->unk_38; + CenterM[var_r29].x = var_r31->unk_1C.x; + CenterM[var_r29].y = var_r31->unk_1C.y; + CenterM[var_r29].z = var_r31->unk_1C.z; + CRotM[var_r29].x = var_r31->unk_28.x; + CRotM[var_r29].y = var_r31->unk_28.y; + CRotM[var_r29].z = var_r31->unk_28.z; + CZoomM[var_r29] = var_r31->unk_34; + } + } + } +} + +void fn_1_38FC(ModelData *model, Mtx mtx) +{ + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + + MTXIdentity(spC); + GXLoadPosMtxImm(spC, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_A0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 5494.5f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_3B50(u32 arg0) +{ + lbl_1_bss_1C->work[1] = arg0; +} + +u32 fn_1_3B64(void) +{ + return lbl_1_bss_1C->work[1]; +} + +M421DllCameraStruct *fn_1_3B78(s32 arg0) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_1C->data; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M421:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M421DllCameraStruct *fn_1_3C14(s32 arg0) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_1C->data; + for (var_r31 = &var_r29[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M421:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M421DllCameraStruct *fn_1_3CB0(u32 arg0) +{ + M421DllCameraStruct *var_r31 = lbl_1_bss_1C->data; + if (arg0 >= 5) { + OSReport("M421:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0]; +} + +M421DllCameraStruct *fn_1_3D18(u32 arg0) +{ + M421DllCameraStruct *var_r31 = lbl_1_bss_1C->data; + if (arg0 >= 5) { + OSReport("M421:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0 + 5]; +} + +void fn_1_3D84(s32 arg0, s32 arg1) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M421DllCameraStruct *var_r28; + M421DllCameraStruct *var_r27; + + var_r29 = 0; + if (arg0 >= 0) { + var_r27 = lbl_1_bss_1C->data; + var_r28 = &var_r27[5]; + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg1) != 0) { + var_r29 |= var_r31->unk_3C; + } + } + Hu3DModelCameraSet(arg0, var_r29); + } +} + +s32 fn_1_3E1C(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_00; +} + +u32 fn_1_3E34(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_0C; +} + +u32 fn_1_3E4C(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_14; +} + +u32 fn_1_3E64(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_28; +} + +s32 fn_1_3E7C(s32 arg0) +{ + M421DllWork *work = lbl_1_bss_24->data; + + if (work->unk_64 != 2) { + return 0; + } + work->unk_60 |= (1 << ((arg0 & 3) * 4)); + if (((work->unk_60 & 0x1110) == 0x1110) && (work->unk_64 == 2)) { + work->unk_64 = 0; + } + return 1; +} + +s32 fn_1_3EF8(s32 arg0) +{ + M421DllWork *work = lbl_1_bss_24->data; + return work->unk_50[arg0]; +} + +void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2) +{ + M421DllWork *work = lbl_1_bss_24->data; + arg0 &= 3; + work->unk_40[arg0] = arg1; + work->unk_30[arg0] = arg2; +} + +void fn_1_3F68(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_68 |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_3F98(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_6C |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_3FC8(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_70 |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_3FF8(void) +{ + return MGSeqStatGet(lbl_1_bss_E) == 0; +} + +void fn_1_4030(Vec *sp8, Vec *var_r31) +{ + Vec sp10; + float var_f30; + float var_f29; + + VECSubtract(var_r31, sp8, &sp10); + Center = *var_r31; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = VECMag(&sp10); +} + +void fn_1_4238(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + VECSubtract(&sp30, &sp3C, &sp24); + Center = sp30; + CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); + CRot.y = atan2d(-sp24.x, -sp24.z); + CRot.z = 0.0f; + CZoom = VECMag(&sp24); +} + +float fn_1_4478(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_4594(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m421Dll/map.c b/src/REL/m421Dll/map.c new file mode 100644 index 00000000..5bd4e611 --- /dev/null +++ b/src/REL/m421Dll/map.c @@ -0,0 +1,54 @@ +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "REL/m421Dll.h" + +void fn_1_B1C0(omObjData *object); +void fn_1_B398(omObjData *object); + +omObjData *lbl_1_bss_58; + +void fn_1_B15C(Process *work) +{ + omObjData *object = omAddObjEx(work, 0x1E, 6, 0, -1, fn_1_B1C0); + lbl_1_bss_58 = object; + object->work[0] = 0; +} + +void fn_1_B1BC(void) { } + +void fn_1_B1C0(omObjData *var_r31) +{ + omSetTra(var_r31, 0.0f, 0.0f, 0.0f); + var_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x02)); + Hu3DModelLayerSet(var_r31->model[0], 1); + Hu3DModelShadowMapSet(var_r31->model[0]); + + var_r31->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x00)); + Hu3DModelLayerSet(var_r31->model[1], 1); + + var_r31->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x01)); + Hu3DModelLayerSet(var_r31->model[2], 5); + + var_r31->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x05)); + Hu3DModelLayerSet(var_r31->model[3], 1); + Hu3DModelAttrSet(var_r31->model[3], HU3D_MOTATTR_LOOP); + + var_r31->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x03)); + Hu3DModelLayerSet(var_r31->model[4], 5); + Hu3DModelAttrSet(var_r31->model[4], HU3D_MOTATTR_LOOP); + + var_r31->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x04)); + Hu3DModelLayerSet(var_r31->model[5], 5); + Hu3DMotionTimeSet(var_r31->model[5], 0.0f); + var_r31->work[0] = 0; + var_r31->work[1] = 0; + var_r31->func = fn_1_B398; +} + +void fn_1_B398(omObjData *object) { } + +void fn_1_B39C(void) +{ + Hu3DMotionTimeSet(lbl_1_bss_58->model[5], 0.0f); +} diff --git a/src/REL/m421Dll/player.c b/src/REL/m421Dll/player.c new file mode 100644 index 00000000..ce14a94c --- /dev/null +++ b/src/REL/m421Dll/player.c @@ -0,0 +1,1828 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +#include "REL/m421Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M421DllPlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + u32 unk_10; + s32 unk_14; + float unk_18; + float unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + s32 unk_2C; + char unk30[0x4]; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + char unk40[4]; + u16 unk_44; + u32 unk_48; + char unk4C[0x4]; + s16 unk_50; + char unk52[6]; + float unk_58; + float unk_5C; + float unk_60; + float unk_64; + float unk_68; + s32 unk_6C; + u32 unk_70; + u32 unk_74; + s32 unk_78; + char unk7C[4]; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + float unk_94; + float unk_98; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + float unk_AC; + float unk_B0; + float unk_B4; + u32 unk_B8; + u32 unk_BC; + u32 unk_C0; + u32 unk_C4; + s32 unk_C8; + Vec unk_CC; + Vec unk_D8; + Vec unk_E4; + Vec unk_F0; + Vec unk_FC; + float unk_108[4]; + Mtx unk_118; + float *unk_148; +} M421DllPlayerWork; /* size = 0x14C */ + +typedef struct M421DllPlayerDLWork { + Vec unk_00[4]; + u32 unk_30[4]; + GXColor unk_40[4]; + Vec unk_50[4][0xE]; + u32 unk_2F0; + void *unk_2F4; +} M421DllPlayerDLWork; /* size = 0x2F8 */ + +typedef struct UnkData1BCStruct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} UnkData1BCStruct; /* size = 0x14 */ + +void fn_1_48D4(omObjData *object); +void fn_1_4F00(omObjData *object); +void fn_1_5060(omObjData *object); +void fn_1_53C8(omObjData *object); +void fn_1_578C(omObjData *object); +void fn_1_5B9C(omObjData *object); +void fn_1_6184(omObjData *object); +void fn_1_6400(omObjData *object); +void fn_1_66B4(omObjData *object); +void fn_1_676C(omObjData *object); +void fn_1_6D48(omObjData *object); +void fn_1_7478(omObjData *object); +void fn_1_7670(omObjData *object); +void fn_1_7AA0(omObjData *object); +void fn_1_80C0(omObjData *object); +void fn_1_893C(omObjData *object); +void fn_1_9474(omObjData *object, Vec *arg1, Vec *arg2); +void fn_1_956C(omObjData *object); +void fn_1_982C(omObjData *object, u32 arg1); +s32 fn_1_99B8(omObjData *object); +void fn_1_9BFC(float arg8, float arg9, float *arg0); +void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_9DD0(omObjData *object, Vec *arg1); +void fn_1_A528(omObjData *object); +void fn_1_AB68(omObjData *object); +void fn_1_AB6C(ModelData *model, Mtx matrix); +void fn_1_ABDC(ModelData *model, Mtx matrix); + +char *lbl_1_data_E4[8] = { + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", +}; + +s32 lbl_1_data_104[8][3] = { + { DATA_MAKE_NUM(DATADIR_M421, 0x06), DATA_MAKE_NUM(DATADIR_M421, 0x0E), DATA_MAKE_NUM(DATADIR_M421, 0x16) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x07), DATA_MAKE_NUM(DATADIR_M421, 0x0F), DATA_MAKE_NUM(DATADIR_M421, 0x17) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x08), DATA_MAKE_NUM(DATADIR_M421, 0x10), DATA_MAKE_NUM(DATADIR_M421, 0x18) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x09), DATA_MAKE_NUM(DATADIR_M421, 0x11), DATA_MAKE_NUM(DATADIR_M421, 0x19) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0A), DATA_MAKE_NUM(DATADIR_M421, 0x12), DATA_MAKE_NUM(DATADIR_M421, 0x1A) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0B), DATA_MAKE_NUM(DATADIR_M421, 0x13), DATA_MAKE_NUM(DATADIR_M421, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0C), DATA_MAKE_NUM(DATADIR_M421, 0x14), DATA_MAKE_NUM(DATADIR_M421, 0x1C) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0D), DATA_MAKE_NUM(DATADIR_M421, 0x15), DATA_MAKE_NUM(DATADIR_M421, 0x1D) }, +}; +s32 lbl_1_data_164[8] = { + DATA_MAKE_NUM(DATADIR_M421, 0x1E), + DATA_MAKE_NUM(DATADIR_M421, 0x1F), + DATA_MAKE_NUM(DATADIR_M421, 0x20), + DATA_MAKE_NUM(DATADIR_M421, 0x21), + DATA_MAKE_NUM(DATADIR_M421, 0x22), + DATA_MAKE_NUM(DATADIR_M421, 0x23), + DATA_MAKE_NUM(DATADIR_M421, 0x24), + DATA_MAKE_NUM(DATADIR_M421, 0x25), +}; +float lbl_1_data_184[8] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.8f }; +s32 lbl_1_data_1A4[6] = { 0, 2, 3, 0x14, 0x17, 0x18 }; +UnkData1BCStruct lbl_1_data_1BC[6] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.2f, 0.0f, -1.0f, 0 }, + { 4, 0.2f, 0.0f, -1.0f, 0 }, + { 5, 0.2f, 0.0f, -1.0f, 0 }, +}; +Vec lbl_1_data_234[4] = { + { 0.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 0.0f }, +}; +Vec lbl_1_data_264[4] = { + { -80.0f, 0.0f, -300.0f }, + { -200.0f, 0.0f, -50.0f }, + { 0.0f, 0.0f, -150.0f }, + { 200.0f, 0.0f, -50.0f }, +}; +Vec2f lbl_1_data_294[3] = { { 300.0f, 0.4f }, { 450.0f, 0.7f }, { 600.0f, 1.0f } }; +u32 lbl_1_data_2AC[3] = { 6, 0xC, 0xC }; +float lbl_1_data_2B8[3] = { 8.000001f, 8.5f, 9.166667f }; +float lbl_1_data_2C4[3] = { 0.9f, 0.8f, 0.5f }; +float lbl_1_data_2D0[3] = { 19.800001f, 20.400002f, 20.400002f }; +float lbl_1_data_2DC[3] = { -70.0f, -60.000004f, -70.0f }; +float lbl_1_data_2E8[3] = { 192.00003f, 357.0f, 550.0f }; + +// M421DllPlayerWork +omObjData *lbl_1_bss_48[4]; +// M421DllPlayerDLWork +omObjData *lbl_1_bss_44; +u32 lbl_1_bss_34[4]; +u32 lbl_1_bss_30; + +void fn_1_4648(Process *process) +{ + u32 sp18[4]; + u32 sp8[4]; + s16 var_r31; + s16 var_r30; + u32 var_r29; + omObjData *var_r27; + + lbl_1_bss_30 = -1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp18[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { + if (sp18[var_r31] > sp18[var_r30]) { + var_r29 = sp18[var_r31]; + sp18[var_r31] = sp18[var_r30]; + sp18[var_r30] = var_r29; + var_r29 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r29; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_34[sp8[var_r31]] = var_r31; + } + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r27 = lbl_1_bss_48[var_r31] = omAddObjEx(process, 0x28, 5, 6, 0, fn_1_48D4); + var_r27->work[0] = var_r31; + } + lbl_1_bss_44 = omAddObjEx(process, 0x1E, 2, 0, -1, fn_1_A528); + lbl_1_bss_44->work[0] = 0; +} + +void fn_1_48B0(void) +{ + CharModelKill(-1); +} + +void fn_1_48D4(omObjData *object) +{ + s32 sp8; + + M421DllPlayerWork *work; + s32 var_r29; + HsfanimStruct01 *var_r28; + u32 var_r27; + s32 var_r26; + s32 var_r25; + u32 var_r24; + + float sp1C[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + float spC[2][2] = { { 100.0f, 143.0f }, { 100.0f, 100.0f } }; + Vec sp2C[4] = { 0.0f, 1500.0f, 300.0f, -450.0f, 0.0f, -50.0f, 0.0f, 0.0f, -350.0f, 450.0f, 0.0f, -50.0f }; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllPlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllPlayerWork)); + object->stat |= 0x100; + var_r24 = object->work[0]; + var_r26 = GWPlayerCfg[var_r24].character; + work->unk_00 = var_r26; + sp8 = work->unk_04 = 0; + work->unk_0C = lbl_1_bss_34[object->work[0]]; + var_r27 = 0; + if (work->unk_0C != 0) { + var_r27++; + } + fn_1_3F28(object->work[0], work->unk_0C, work->unk_00); + work->unk_68 = sp1C[GWPlayerCfg[var_r24].diff & 3]; + work->unk_2C = GWPlayerCfg[object->work[0]].iscom; + object->model[0] = CharModelCreate(var_r26, 4); + Hu3DModelLayerSet(object->model[0], 1); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(var_r26, lbl_1_data_1A4[var_r29]); + } + CharModelMotionDataClose(var_r26); + if (var_r27 == 1) { + object->model[1] = Hu3DModelCreateFile(lbl_1_data_164[var_r26]); + Hu3DModelLayerSet(object->model[1], 1); + fn_1_982C(object, 0); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + object->model[2] = Hu3DModelCreateFile(lbl_1_data_104[var_r26][var_r27]); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelShadowSet(object->model[2]); + if (var_r27 != 0) { + object->model[3] = Hu3DModelCreateFile(lbl_1_data_104[var_r26][2]); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DModelShadowSet(object->model[3]); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + work->unk_C8 = espEntry(0x120006, 1, 0); + espDispOff(work->unk_C8); + espAttrSet(work->unk_C8, HUSPR_ATTR_LINEAR); + } + var_r25 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M421, 0x27)), 0x80); + object->model[4] = var_r25; + Hu3DModelLayerSet(var_r25, 1); + Hu3DParticleHookSet(var_r25, fn_1_9C38); + for (var_r28 = ((ParticleData *)Hu3DData[var_r25].unk_120)->unk_48, var_r29 = 0; var_r29 < 0x80; var_r29++, var_r28++) { + var_r28->unk2C = 0.0f; + var_r28->unk40.a = 0; + var_r28->unk00 = 0; + } + if (work->unk_0C == 0) { + work->unk_148 = HuMemDirectMallocNum(HEAP_SYSTEM, 441 * sizeof(float), MEMORY_DEFAULT_NUM); + memset(work->unk_148, 0, 441 * sizeof(float)); + } + object->trans.x = work->unk_CC.x = sp2C[work->unk_0C].x; + object->trans.y = work->unk_CC.y = sp2C[work->unk_0C].y; + object->trans.z = work->unk_CC.z = sp2C[work->unk_0C].z; + work->unk_20 = 1; + work->unk_94 = 1.0f; + work->unk_84 = spC[var_r27][0]; + work->unk_88 = spC[var_r27][1]; + work->unk_8C = 110.0f; + work->unk_90 = 1.0f; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_9C = work->unk_CC.y; + work->unk_A0 = 0.0f; + work->unk_A4 = 0.0f; + work->unk_78 = -1; + work->unk_58 = work->unk_5C = 0.0f; + work->unk_60 = 0.0f; + work->unk_64 = 0.02f; + work->unk_80 = 50.0f; + work->unk_A8 = 0.0f; + MTXIdentity(work->unk_118); + work->unk_08 = -1; + work->unk_6C = 0; + work->unk_3C = 1; + work->unk_44 = 0; + if (var_r27 == 0) { + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_4F00; + Hu3DModelReflectTypeSet(object->model[2], 4); + work->unk_90 = lbl_1_data_184[work->unk_00]; + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + return; + } + object->func = fn_1_5060; +} + +void fn_1_4F00(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if (work->unk_48 > 108.0f) { + HuAudFXPlay(0x601); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + work->unk_10 = 0x100; + work->unk_44++; + } + break; + case 1: + if (work->unk_24 == 0) { + work->unk_10 = 0x100; + work->unk_44++; + } + break; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_676C(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E34() == 2) { + work->unk_44 = 0; + object->func = fn_1_53C8; + } +} + +void fn_1_5060(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + { + Vec sp8[4] = { + { 0.0f, 0.0f, 0.0f }, + { 80.0f, 190.0f, 0.0f }, + { 290.0f, 120.0f, 0.0f }, + { 500.0f, 190.0f, 0.0f }, + }; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if ((work->unk_48 > 30.0f) && ((work->unk_48 & 0xF) == 0) && (frandmod(0x3E8) < 0x12C)) { + work->unk_10 = 0x100; + work->unk_44++; + } + else if (work->unk_48 > 120.0f) { + work->unk_44++; + } + break; + case 1: + if (work->unk_48 > 120.0f) { + work->unk_18 = atan2d(-work->unk_CC.x, 300.0f - work->unk_CC.z); + work->unk_1C = 0.01f; + if (work->unk_48 < 156.0f) { + espPosSet(work->unk_C8, sp8[work->unk_0C].x, sp8[work->unk_0C].y); + espScaleSet(work->unk_C8, 0.6000000238418579, 0.6000000238418579); + espDispOn(work->unk_C8); + } + else { + espDispOff(work->unk_C8); + } + } + if (work->unk_48 >= 180.0f) { + work->unk_10 = 0x100; + work->unk_C0 = 1; + work->unk_44++; + } + break; + } + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_6D48(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E34() == 2) { + work->unk_44 = 0; + object->func = fn_1_578C; + } +} + +void fn_1_53C8(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + s32 var_r29 = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + if (fn_1_3E4C() == 2) { + if (work->unk_2C != 0) { + fn_1_80C0(object); + } + else { + work->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_18 = atan2d(var_f31, var_f30); + work->unk_1C = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_1C > 1.0f) { + work->unk_1C = 1.0f; + } + } + } + if ((s32)work->unk_44 != 0) { + (void)var_r29; + } + else { + var_r29 = 1; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_893C(object); + fn_1_66B4(object); + fn_1_676C(object); + fn_1_7670(object); + if ((fn_1_3E4C() == 3) && (var_r29 != 0) && (fn_1_3FF8() != 0)) { + work->unk_44 = 0; + object->func = fn_1_6184; + } +} + +void fn_1_578C(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + s32 var_r29 = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + if (fn_1_3E4C() == 2) { + if (work->unk_2C != 0) { + fn_1_80C0(object); + } + else { + work->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_18 = atan2d(var_f31, var_f30); + work->unk_1C = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_1C > 1.0f) { + work->unk_1C = 1.0f; + } + } + } + if ((s32)work->unk_44 != 0) { + (void)var_r29; + } + else if (work->unk_24 == 0) { + var_r29 = 1; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_893C(object); + fn_1_6D48(object); + fn_1_66B4(object); + fn_1_7670(object); + if (work->unk_38 != 0) { + if (fn_1_3E7C(work->unk_0C) != 0) { + object->func = fn_1_5B9C; + } + else { + work->unk_38 = 0; + } + } + if ((work->unk_38 == 0) && (fn_1_3E4C() == 3) && (var_r29 != 0) && (fn_1_3FF8() != 0)) { + work->unk_44 = 0; + object->func = fn_1_6184; + } +} + +void fn_1_5B9C(omObjData *object) +{ + Mtx sp34; + Vec sp28; + Vec sp1C; + s32 spC; + float sp8; + float var_f29; + + M421DllPlayerWork *work; + M421DllCameraStruct *var_r29; + + work = object->data; + spC = 0; + { + Vec sp10 = { 0.0f, 0.0f, 0.0f }; + switch (work->unk_44) { + case 7: + break; + case 0: + fn_1_B39C(); + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSetV(object->model[3], &work->unk_F0); + Hu3DMotionTimeSet(object->model[3], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 3.0f); + HuAudFXEmiterPlay(0x5FC, &work->unk_F0); + work->unk_78 = HuAudCharVoicePlayPos(work->unk_00, 0x123, &work->unk_CC); + omVibrate(object->work[0], 0xC, 4, 2); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + fn_1_9DD0(object, &work->unk_F0); + var_r29 = fn_1_3C14(1); + mtxRot(sp34, var_r29->unk_28.x, var_r29->unk_28.y, 0.0f); + sp10.z = var_r29->unk_34 - 350.0f; + MTXMultVec(sp34, &sp10, &sp1C); + VECAdd(&var_r29->unk_1C, &sp1C, &sp28); + fn_1_9BFC(sp28.y - work->unk_CC.y, 0.9f, work->unk_108); + VECSubtract(&sp28, &work->unk_CC, &sp1C); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + work->unk_D8.x = 0.01851852f * sp1C.x; + work->unk_D8.z = 0.01851852f * sp1C.z; + work->unk_44 = 1; + work->unk_48 = 0; + break; + case 1: + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + var_f29 = sqrtf((work->unk_D8.x * work->unk_D8.x) + (work->unk_D8.z * work->unk_D8.z)); + var_f29 = atan2d(var_f29, work->unk_D8.y); + var_f29 = var_f29; + sp1C.x = work->unk_D8.z; + sp1C.y = 0.0f; + sp1C.z = -work->unk_D8.x; + VECNormalize(&sp1C, &sp1C); + MTXRotAxisRad(work->unk_118, &sp1C, 0.017453292f * var_f29); + sp1C.x = sp1C.z = 0.0f; + sp1C.y = 1.0f; + MTXRotAxisRad(sp34, &sp1C, 0.017453292f * (22.5f * work->unk_48)); + MTXConcat(work->unk_118, sp34, work->unk_118); + HuAudFXEmiterUpDate(work->unk_78, &work->unk_CC); + if (work->unk_48 >= 72.0f) { + MTXIdentity(work->unk_118); + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_44 = 2; + work->unk_48 = 0; + fn_1_3F68(object->work[0]); + fn_1_3F98(object->work[0]); + fn_1_3FC8(object->work[0]); + } + break; + case 2: + work->unk_D8.y += -0.27222225f; + if (work->unk_48 > 120.0f) { + work->unk_44 = 7; + work->unk_48 = 0; + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + } + break; + } + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_66B4(object); + fn_1_7670(object); +} + +void fn_1_6184(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if (work->unk_0C == 0) { + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + work->unk_CC = work->unk_E4; + } + else { + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + work->unk_CC = work->unk_E4; + } + fn_1_9DD0(object, &work->unk_F0); + HuAudFXEmiterPlay(0x600, &work->unk_F0); + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_44 = 3; + break; + case 3: + Hu3DModelShadowSet(object->model[0]); + work->unk_D8.y += -0.27222225f; + if (work->unk_CC.y <= 0.0f) { + work->unk_CC.y = 0.0f; + work->unk_D8.y = 0.0f; + work->unk_44 = 4; + } + break; + case 4: + work->unk_48 = 0; + fn_1_3F68(object->work[0]); + break; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + work->unk_E4 = work->unk_CC; + fn_1_956C(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E4C() == 5) { + object->func = fn_1_6400; + } +} + +void fn_1_6400(omObjData *object) +{ + Vec sp8; + float var_f31; + M421DllPlayerWork *work = object->data; + + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + work->unk_E4 = work->unk_CC; + fn_1_956C(object); + fn_1_66B4(object); + fn_1_7670(object); + switch (work->unk_44) { + case 4: + if (fn_1_3EF8(object->work[0]) >= 0) { + VECSubtract(&lbl_1_data_234[work->unk_0C], &work->unk_CC, &sp8); + } + else { + VECSubtract(&lbl_1_data_264[work->unk_0C], &work->unk_CC, &sp8); + } + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 < 10.0f) { + var_f31 = 0.0f; + } + else { + if (VECMag(&sp8) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_18 = atan2d(sp8.x, sp8.z); + work->unk_1C = var_f31; + fn_1_7478(object); + if ((work->unk_1C == 0.0f) || (work->unk_48 > 0x12C)) { + work->unk_5C = 0.0f; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + fn_1_3F98(object->work[0]); + } + if (fn_1_3E64() == 1) { + work->unk_44 = 5; + } + break; + case 5: + if (fn_1_3E64() == 1) { + if (fn_1_3EF8(object->work[0]) >= 0) { + fn_1_982C(object, 4); + } + else { + fn_1_982C(object, 5); + } + work->unk_44 = 6; + return; + } + break; + case 6: + if (fn_1_99B8(object) != 0) { + fn_1_3FC8(object->work[0]); + } + break; + } +} + +void fn_1_66B4(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_50++; + work->unk_48++; + object->trans.x = work->unk_CC.x; + object->trans.y = work->unk_CC.y; + object->trans.z = work->unk_CC.z; + work->unk_60 += work->unk_64; + if (work->unk_60 > 0.45f) { + work->unk_60 = 0.45f; + } + work->unk_58 = fn_1_4478(work->unk_58, work->unk_5C, work->unk_60); + object->rot.y = work->unk_58; +} + +void fn_1_676C(omObjData *object) +{ + Mtx sp44; + Mtx sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + M421DllPlayerWork *work = object->data; + if (work->unk_20 != 0) { + if (work->unk_1C > 0.0f) { + work->unk_5C = work->unk_18; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + } + if (work->unk_1C < 0.05f) { + fn_1_982C(object, 0); + CharModelMotionSpeedSet(work->unk_00, 1.0f); + } + else { + var_f30 = 0.5f; + if (work->unk_08 == 2) { + var_f30 = 0.45f; + } + if (work->unk_1C > var_f30) { + fn_1_982C(object, 2); + var_f29 = work->unk_1C; + } + else { + fn_1_982C(object, 1); + var_f29 = work->unk_1C / var_f30; + } + CharModelMotionSpeedSet(work->unk_00, var_f29); + } + sp8.x = 0.01666666753590107 * (1.6666667461395264 * (2.0 * (work->unk_1C * sind(work->unk_18)))); + sp8.y = 0.0f; + sp8.z = 0.01666666753590107 * (1.6666667461395264 * (2.0 * (work->unk_1C * cosd(work->unk_18)))); + VECAdd(&sp8, &work->unk_D8, &work->unk_D8); + if (work->unk_24 == 0) { + if ((work->unk_10 & 0x100) != 0) { + work->unk_24 = 1; + fn_1_9BFC(400.0f - (2.0f * work->unk_88), 0.25f, work->unk_108); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + if (fn_1_3E34() == 2) { + HuAudFXEmiterPlay(0x5FE, &work->unk_F0); + } + } + } + else { + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + if ((work->unk_D8.y < 0.0f) && (work->unk_CC.y <= 0.0f)) { + work->unk_D8.y = 0.0f; + work->unk_24 = 0; + if (fn_1_3E34() != 2) { + HuAudFXEmiterPlay(0x5FD, &work->unk_F0); + omVibrate(object->work[0], 0xC, 4, 2); + } + else { + HuAudFXEmiterPlay(0x5FF, &work->unk_F0); + } + } + } + MTXIdentity(sp44); + MTXIdentity(sp14); + work->unk_A8 = 1.0f - work->unk_1C; + sp8 = work->unk_D8; + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 > 0.0f) { + VECNormalize(&sp8, &sp8); + var_f28 = sp8.z; + sp8.z = -sp8.x; + sp8.x = var_f28; + var_f31 *= 360.0f / (3.14159f * (2.0f * work->unk_88)); + MTXRotAxisRad(sp44, &sp8, 0.017453292f * var_f31); + } + sp8.x = sind((90.0f + work->unk_18)); + sp8.y = 0.0f; + sp8.z = cosd((90.0f + work->unk_18)); + if (work->unk_1C > 0.0f) { + var_f31 = 1.6666667f * work->unk_1C * (360.0f / (3.14159f * (2.0f * work->unk_88))); + if (work->unk_24 != 0) { + var_f31 *= 2.0f; + } + MTXRotAxisRad(sp14, &sp8, 0.017453292f * var_f31); + } + MTXConcat(sp44, sp14, sp44); + MTXConcat(sp44, work->unk_118, work->unk_118); + fn_1_7AA0(object); + } +} + +void fn_1_6D48(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + if (work->unk_20 != 0) { + if (work->unk_D8.y > 0.0f) { + work->unk_9C = work->unk_CC.y - (1.7999998f * work->unk_D8.y); + if (work->unk_9C < 0.0f) { + work->unk_9C = 0.0f; + } + work->unk_98 = (2.0f * (work->unk_CC.y + work->unk_88)) - work->unk_9C; + work->unk_A0 = 0.5f * work->unk_D8.y; + work->unk_A4 = -0.2f * work->unk_A0; + } + else if (work->unk_D8.y < 0.0f) { + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_9C = work->unk_CC.y; + work->unk_A0 = 0.8f * work->unk_D8.y; + work->unk_A4 = work->unk_A0 * (-2.0f / work->unk_B8); + } + else if (work->unk_24 == 0) { + work->unk_9C = work->unk_CC.y; + if ((work->unk_B8 != 0) || (work->unk_BC != 0)) { + work->unk_98 += work->unk_A0; + work->unk_A0 += work->unk_A4; + } + else { + work->unk_A0 = work->unk_A4 = 0.0f; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + } + if (work->unk_BC != 0) { + work->unk_AC = work->unk_AC + work->unk_B0; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_98 = work->unk_98 + ((work->unk_BC / 18.0f) * (work->unk_B4 * sind(work->unk_AC))); + } + } + work->unk_F0 = work->unk_CC; + work->unk_F0.y = 0.5f * (work->unk_98 + work->unk_9C); + work->unk_94 = (work->unk_F0.y - work->unk_9C) / work->unk_88; + if ((work->unk_1C > 0.0f) && (work->unk_24 == 0)) { + work->unk_5C = work->unk_18; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + } + if ((work->unk_10 & 0x100) != 0) { + work->unk_C4 = 0xC; + } + if (work->unk_C4 != 0) { + work->unk_C4--; + } + if (work->unk_24 == 0) { + if ((work->unk_28 == 0) && (work->unk_C0 < 3) && ((work->unk_C0 != 0) || (work->unk_BC == 0)) && (work->unk_C4 != 0)) { + work->unk_28 = 1; + } + if (work->unk_B8 != 0) { + work->unk_B8--; + if (work->unk_B8 == 0) { + work->unk_A0 *= lbl_1_data_2C4[work->unk_C0 - 1]; + work->unk_A4 = work->unk_A0 * (-2.0f / (work->unk_BC + 1)); + } + } + else { + if (work->unk_BC != 0) { + work->unk_BC--; + } + if ((work->unk_C0 >= 3) || (work->unk_28 == 0)) { + work->unk_C0 = 0; + } + if (work->unk_28 != 0) { + work->unk_28 = 0; + work->unk_24 = 1; + work->unk_D8.x = lbl_1_data_2B8[work->unk_C0] * (work->unk_1C * sind(work->unk_18)); + work->unk_D8.z = lbl_1_data_2B8[work->unk_C0] * (work->unk_1C * cosd(work->unk_18)); + if (work->unk_C0 < 2) { + HuAudFXEmiterPlay(0x5F9, &work->unk_F0); + } + else { + HuAudFXEmiterPlay(0x5FA, &work->unk_F0); + } + fn_1_9BFC(lbl_1_data_294[work->unk_C0].x - (2.0f * work->unk_88), 0.5f * lbl_1_data_294[work->unk_C0].y, work->unk_108); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + work->unk_B8 = 9; + work->unk_BC = lbl_1_data_2AC[work->unk_C0]; + work->unk_C0++; + } + } + } + else { + work->unk_AC = 0.0f; + work->unk_B0 = lbl_1_data_2D0[work->unk_C0 - 1]; + work->unk_B4 = lbl_1_data_2DC[work->unk_C0 - 1]; + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + if ((work->unk_D8.y < 0.0f) && (work->unk_CC.y <= 0.0f)) { + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_24 = 0; + HuAudFXEmiterPlay(0x5FB, &work->unk_F0); + } + } + } +} + +void fn_1_7478(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + if (work->unk_1C > 0.0f) { + work->unk_5C = work->unk_18; + } + if ((work->unk_1C > 0.05f) && (work->unk_34 == 0)) { + work->unk_D8.x = 0.01666666753590107 * (550.0 * (work->unk_1C * sind(work->unk_18))); + work->unk_D8.z = 0.01666666753590107 * (550.0 * (work->unk_1C * cosd(work->unk_18))); + work->unk_60 = 0.2f; + work->unk_64 = 0.0f; + var_f31 = 0.5f; + if (work->unk_08 == 2) { + var_f31 = 0.45f; + } + if (work->unk_1C > var_f31) { + fn_1_982C(object, 2); + var_f30 = work->unk_1C; + } + else { + fn_1_982C(object, 1); + var_f30 = work->unk_1C / var_f31; + } + CharModelMotionSpeedSet(work->unk_00, var_f30); + return; + } + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + fn_1_982C(object, 0); +} + +void fn_1_7670(omObjData *object) +{ + float var_f29; + + M421DllPlayerWork *work = object->data; + work->unk_E4 = work->unk_CC; + if (work->unk_20 != 0) { + if (work->unk_0C == 0) { + work->unk_F0 = work->unk_CC; + work->unk_F0.y += work->unk_88 * work->unk_94; + work->unk_E4.y += work->unk_94 * (work->unk_88 - work->unk_84); + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelScaleSet(object->model[0], work->unk_90, work->unk_90, work->unk_90); + Hu3DModelPosSetV(object->model[2], &work->unk_F0); + MTXCopy(work->unk_118, Hu3DData[object->model[2]].unk_F0); + Hu3DModelScaleSet(object->model[2], 1.0f, work->unk_94, 1.0f); + return; + } + work->unk_E4.y += (2.0f * work->unk_88 * work->unk_94) - work->unk_8C; + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelPosSetV(object->model[2], &work->unk_F0); + Hu3DModelRotSet(object->model[2], 0.0f, work->unk_58, 0.0f); + var_f29 = sqrtf(1.0f / work->unk_94); + Hu3DModelScaleSet(object->model[2], var_f29, work->unk_94, var_f29); + Hu3DModelPosSet(object->model[1], work->unk_F0.x, 15.000001f + (work->unk_F0.y + (work->unk_88 * work->unk_94)), work->unk_F0.z); + Hu3DModelRotSet(object->model[1], 0.0f, work->unk_58, 0.0f); + return; + } + work->unk_90 += 0.1f * (1.0f - work->unk_90); + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelScaleSet(object->model[0], work->unk_90, work->unk_90, work->unk_90); + MTXCopy(work->unk_118, Hu3DData[object->model[0]].unk_F0); +} + +void fn_1_7AA0(omObjData *object) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + s32 var_r30; + s32 var_r29; + s32 var_r28; + + M421DllPlayerWork *work = object->data; + sp38 = work->unk_CC; + sp38.y = 0.0f; + VECScale(&work->unk_D8, &sp14, 7.5f); + sp2C = sp38; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + VECAdd(&sp2C, &sp14, &sp2C); + fn_1_9474(object, &sp2C, &sp2C); + } + sp2C.y = 0.0f; + VECSubtract(&sp38, &sp2C, &sp8); + sp8.y = 0.0f; + var_f28 = VECMag((Vec *)&sp8.y); + var_f29 = 0.0025f * var_f28; + if (var_f29 > 1.0f) { + var_f29 = 1.0f; + } + if (var_f28 > 0.0f) { + VECNormalize(&sp8, &sp8); + } + sp20.y = 0.0f; + sp20.z = -750.0f; + var_r29 = 0; + for (var_r30 = 0; var_r30 < 0x15; var_r30++) { + sp20.x = -750.0f; + for (var_r28 = 0; var_r28 < 0x15; var_r28++, var_r29++) { + if (VECMag(&sp20) >= 700.0f) { + work->unk_148[var_r29] = 10.0f; + } + else { + VECSubtract(&sp2C, &sp20, &sp14); + var_f31 = 1.0f - (0.001f * VECMag(&sp14)); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_148[var_r29] = 3.0f * var_f31; + VECSubtract(&sp38, &sp20, &sp14); + var_f31 = 1.0f - (0.001f * VECMag(&sp14)); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_148[var_r29] += 3.0f * var_f31; + VECSubtract(&sp20, &sp38, &sp14); + var_f31 = VECMag(&sp14); + var_f30 = 1.0f - (0.001f * var_f31); + if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + if (var_f31 > 0.0f) { + VECNormalize(&sp14, &sp14); + } + var_f31 = VECDotProduct(&sp14, &sp8); + if (var_f31 > 0.0f) { + var_f31 = 4.0f * (var_f29 * (var_f30 * (var_f31 * var_f31))); + work->unk_148[var_r29] += var_f31; + } + } + sp20.x += 75.0f; + } + sp20.z += 75.0f; + } +} + +void fn_1_7EB8(Vec *var_r26, float sp8, Vec *var_r27) +{ + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + + s32 var_r31; + M421DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + work = lbl_1_bss_48[var_r31]->data; + if ((work->unk_0C == 0) && work->unk_148) { + break; + } + } + sp24 = *var_r26; + sp24.y = 0.0f; + *var_r27 = sp24; + var_f30 = 100.0f; + sp18.y = 0.0f; + sp18.z = -750.0f; + var_r28 = 0; + for (var_r31 = 0; var_r31 < 0x15; var_r31++) { + sp18.x = -750.0f; + for (var_r29 = 0; var_r29 < 0x15; var_r29++, var_r28++) { + VECSubtract(&sp18, &sp24, &spC); + var_f31 = VECMag(&spC); + if (var_f31 <= sp8) { + var_f31 = 1.0f + (0.5f - (0.0005f * var_f31)); + var_f31 *= work->unk_148[var_r28]; + if (var_f31 < var_f30) { + var_f30 = var_f31; + *var_r27 = sp18; + } + } + sp18.x += 75.0f; + } + sp18.z += 75.0f; + } +} + +void fn_1_80C0(omObjData *var_r28) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + M421DllPlayerWork *var_r30; + s32 var_r29; + + M421DllPlayerWork *var_r31 = var_r28->data; + if (var_r31->unk_0C != 0) { + if (var_r31->unk_24 == 0) { + switch (var_r31->unk_6C) { + case 0: + if (var_r31->unk_C0 == 3) { + var_r31->unk_6C = 3; + return; + } + var_r31->unk_6C = 2; + var_r31->unk_70 = 60.0f * (0.3f + (0.00040000002f * frandmod(0x3E8))); + if ((frandmod(0x410) < (1000.0f * (0.5f + (0.5f * var_r31->unk_68)))) || (var_r31->unk_3C != 0)) { + var_r31->unk_3C = 0; + var_r31->unk_6C = 1; + return; + } + break; + case 1: + var_f29 = lbl_1_data_2E8[var_r31->unk_C0]; + fn_1_7EB8(&var_r31->unk_CC, 1000.0f, &sp38); + VECSubtract(&sp38, &var_r31->unk_CC, &sp2C); + sp2C.y = 0.0f; + var_f31 = VECMag(&sp2C); + if (var_f31 < var_f29) { + var_r31->unk_1C = VECMag(&sp2C) / var_f29; + } + else { + var_r31->unk_1C = 1.0f; + } + var_r31->unk_18 = atan2d(sp2C.x, sp2C.z); + var_r31->unk_10 = 0x100; + return; + case 2: + if (var_r31->unk_70 != 0) { + var_r31->unk_70--; + return; + } + var_r31->unk_6C = 0; + return; + case 3: + if (var_r31->unk_C0 != 3) { + var_r31->unk_6C = 2; + var_r31->unk_70 = 60.0f * (0.0003f * frandmod(0x3E8)); + return; + } + break; + } + } + else { + var_r31->unk_6C = 0; + } + } + else { + var_f30 = 10000.0f; + if (var_r31->unk_74 == 0) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r28->work[0] != lbl_1_bss_48[var_r29]->work[0]) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if (var_r30->unk_38 == 0) { + if (var_r30->unk_24 != 0) { + VECScale(&var_r30->unk_D8, &sp20, 60.0f); + VECAdd(&var_r30->unk_CC, &sp20, &sp20); + } + else { + sp20 = var_r30->unk_CC; + } + sp20.y = 0.0f; + sp20.x += 100.0f * (0.5f * ((((2.0f * var_r31->unk_68) / 1000.0f) * frandmod(0x3E8)) - var_r31->unk_68)); + sp20.z += 100.0f * (0.5f * ((((2.0f * var_r31->unk_68) / 1000.0f) * frandmod(0x3E8)) - var_r31->unk_68)); + var_f31 = VECMag(&sp20); + if (var_f31 > (700.0f - (100.0f * (2.3f * var_r31->unk_68)))) { + var_f31 = (700.0f - (100.0f * (2.3f * var_r31->unk_68))) / var_f31; + VECScale(&sp20, &sp20, var_f31); + } + VECSubtract(&sp20, &var_r31->unk_CC, &sp14); + sp14.y = 0.0f; + var_f31 = VECMag(&sp14); + if (var_f30 > var_f31) { + var_r31->unk_FC = sp20; + var_f30 = var_f31; + } + } + } + } + var_r31->unk_74 = 60.0f * ((1.5f - var_r31->unk_68) + (0.0015f * frandmod(0x3E8))); + } + VECSubtract(&var_r31->unk_FC, &var_r31->unk_CC, &sp14); + sp8 = var_r31->unk_D8; + if (VECMag(&sp14)) { + VECNormalize(&sp14, &sp14); + } + if (VECMag(&sp8)) { + VECNormalize(&sp8, &sp8); + } + var_f31 = (0.5f + (0.5f * var_r31->unk_68)) * (1.0f - VECDotProduct(&sp14, &sp8)); + VECScale(&var_r31->unk_D8, &sp14, 60.0f * (2.0f * var_f31)); + VECAdd(&var_r31->unk_CC, &sp14, &sp14); + VECSubtract(&var_r31->unk_FC, &sp14, &sp20); + var_f30 = VECMag(&sp20); + var_r31->unk_18 = fn_1_4478(var_r31->unk_58, atan2d(sp20.x, sp20.z), 0.5f); + var_r31->unk_1C = 0.95f + (0.05f * var_r31->unk_68); + if ((var_f30 < 300.0f) && ((var_r31->unk_50 & 7) == 0) && (frandmod(0x514) < (1000.0f * var_r31->unk_68))) { + var_r31->unk_10 = 0x100; + } + var_r31->unk_74--; + if (var_f30 < 130.0f) { + var_r31->unk_74 = 0; + } + } +} + +void fn_1_893C(omObjData *object) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *var_r31; + M421DllPlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + M421DllPlayerWork *var_r27; + M421DllPlayerWork *var_r26; + s32 var_r24; + s32 var_r23; + + if (lbl_1_bss_30 >= object->work[0]) { + for (var_r24 = 0; var_r24 < 4; var_r24++) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_F0 = var_r31->unk_CC; + var_r31->unk_F0.y += var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r28 != var_r29) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if ((var_r30->unk_38 == 0) && (var_r30->unk_20 != 0)) { + VECSubtract(&var_r31->unk_F0, &var_r30->unk_F0, &sp38); + var_f31 = VECMag(&sp38); + if (var_f31 < (var_r31->unk_88 + var_r30->unk_88)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_88 + var_r30->unk_88) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_88 + var_r30->unk_88); + sp38.x = frandmod(0x3E8) - 0.0005f; + sp38.y = 0.0f; + sp38.z = frandmod(0x3E8) - 0.0005f; + } + VECNormalize(&sp38, &sp38); + VECScale(&sp38, &sp38, var_f31); + VECAdd(&var_r31->unk_F0, &sp38, &var_r31->unk_F0); + VECSubtract(&var_r30->unk_F0, &sp38, &var_r30->unk_F0); + if ((var_r31->unk_0C == 0) && (var_r30->unk_0C != 0)) { + var_r30->unk_38 = 1; + } + else if ((var_r31->unk_0C != 0) && (var_r30->unk_0C == 0)) { + var_r31->unk_38 = 1; + } + } + } + } + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_CC = var_r31->unk_F0; + var_r31->unk_CC.y -= var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if (var_r31->unk_24 != 0) { + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + } + else { + var_r31->unk_CC.y = 0.0f; + } + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 > (750.0f - var_r31->unk_88)) { + var_f30 = (750.0f - var_r31->unk_88) / var_f31; + VECScale(&sp38, &sp38, var_f30); + var_r31->unk_CC.x = sp38.x; + var_r31->unk_CC.z = sp38.z; + } + } + } + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0) && (var_r31->unk_0C == 0)) { + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 >= (750.0f - var_r31->unk_88)) { + var_f31 = VECDotProduct(&var_r31->unk_D8, &sp38); + if (var_f31 > 0.0f) { + VECNormalize(&sp38, &sp38); + var_f31 = VECDotProduct(&var_r31->unk_D8, &sp38); + var_r31->unk_D8.x = 0.92f * (var_r31->unk_D8.x - (1.1f * (var_f31 * sp38.x))); + var_r31->unk_D8.z = 0.92f * (var_r31->unk_D8.z - (1.1f * (var_f31 * sp38.z))); + } + } + } + } + for (var_r28 = 0; var_r28 < 3; var_r28++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_F0 = var_r31->unk_CC; + var_r31->unk_F0.y += var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0) && (var_r31->unk_0C != 0)) { + for (var_r29 = var_r28; var_r29 < 4; var_r29++) { + if (var_r28 != var_r29) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if ((var_r30->unk_38 == 0) && (var_r30->unk_20 != 0) && (var_r30->unk_0C != 0)) { + var_r23 = 0; + var_f31 = VECMag(&var_r31->unk_D8); + var_f30 = VECMag(&var_r30->unk_D8); + if ((!(var_f31 <= 0.0f) && (var_r31->unk_24 != 0)) || (!(var_f30 <= 0.0f) && (var_r30->unk_24 != 0))) { + if (var_r31->unk_24 == 0) { + var_r27 = var_r30; + var_r26 = var_r31; + } + else if (var_r30->unk_24 == 0) { + var_r27 = var_r31; + var_r26 = var_r30; + } + else { + var_r23 = 1; + var_r27 = var_r31; + var_r26 = var_r30; + } + VECAdd(&var_r27->unk_F0, &var_r27->unk_D8, &sp14); + VECAdd(&var_r26->unk_F0, &var_r26->unk_D8, &sp8); + VECSubtract(&sp14, &sp8, &sp38); + var_f31 = VECMag(&sp38); + if ((var_f31 < (var_r27->unk_88 + var_r26->unk_88)) && (var_f31 > 0.0f)) { + VECNormalize(&sp38, &sp38); + if (var_r23 != 0) { + VECNormalize(&var_r27->unk_D8, &sp2C); + VECNormalize(&var_r26->unk_D8, &sp20); + var_f31 = -VECDotProduct(&sp2C, &sp38); + var_f30 = VECDotProduct(&sp20, &sp38); + } + else { + VECNormalize(&var_r27->unk_D8, &sp2C); + sp20.x = sp20.y = sp20.z = 0.0f; + var_f31 = -VECDotProduct(&sp2C, &sp38); + var_f30 = 0.0f; + } + if ((var_f31 > 0.01f) || (var_f31 > 0.01f)) { + var_f31 = VECDotProduct(&var_r27->unk_D8, &sp38); + var_f30 = VECDotProduct(&var_r26->unk_D8, &sp38); + sp14.x = var_r27->unk_D8.x - (var_f31 * sp38.x); + sp14.y = var_r27->unk_D8.y - (var_f31 * sp38.y); + sp14.z = var_r27->unk_D8.z - (var_f31 * sp38.z); + sp8.x = var_r26->unk_D8.x - (var_f30 * sp38.x); + sp8.y = var_r26->unk_D8.y - (var_f30 * sp38.y); + sp8.z = var_r26->unk_D8.z - (var_f30 * sp38.z); + if (var_r23 != 0) { + sp14.x += 0.5f * (var_f30 * sp38.x); + sp14.y += var_f30 * sp38.y; + sp14.z += 0.5f * (var_f30 * sp38.z); + sp8.x += 0.5f * (var_f31 * sp38.x); + sp8.y += var_f31 * sp38.y; + sp8.z += 0.5f * (var_f31 * sp38.z); + } + else { + sp14.x -= 0.5f * (var_f31 * sp38.x); + sp14.y -= var_f31 * sp38.y; + sp14.z -= 0.5f * (var_f31 * sp38.z); + } + var_r27->unk_D8 = sp14; + var_r26->unk_D8 = sp8; + } + } + } + } + } + } + } + } + } + else { + var_r31 = object->data; + if (var_r31->unk_38 == 0) { + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 > (750.0f - var_r31->unk_88)) { + var_f30 = (750.0f - var_r31->unk_88) / var_f31; + VECScale(&sp38, &sp38, var_f30); + var_r31->unk_CC.x = sp38.x; + var_r31->unk_CC.z = sp38.z; + } + } + } + lbl_1_bss_30 = object->work[0]; +} + +void fn_1_9474(omObjData *object, Vec *arg1, Vec *arg2) +{ + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + + sp8 = *arg1; + if (work->unk_38 == 0) { + var_f31 = VECMag(&sp8); + if (var_f31 > (750.0f - work->unk_88)) { + var_f30 = (750.0f - work->unk_88) / var_f31; + VECScale(&sp8, &sp8, var_f30); + } + } + *arg2 = sp8; +} + +void fn_1_956C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *var_r31; + M421DllPlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 2; var_r27++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if (var_r31->unk_38 == 0) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (var_r29 != var_r28) { + var_r30 = lbl_1_bss_48[var_r28]->data; + if (var_r30->unk_38 == 0) { + VECSubtract(&var_r31->unk_CC, &var_r30->unk_CC, &sp8); + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 < (var_r31->unk_80 + var_r30->unk_80)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_80 + var_r30->unk_80) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_80 + var_r30->unk_80); + sp8.x = frandmod(0x3E8) - 0x1F4; + sp8.z = frandmod(0x3E8) - 0x1F4; + } + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&var_r31->unk_CC, &sp8, &var_r31->unk_CC); + VECSubtract(&var_r30->unk_CC, &sp8, &var_r30->unk_CC); + } + } + } + } + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + sp8 = var_r31->unk_CC; + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 > (750.0f - var_r31->unk_80)) { + var_f30 = (750.0f - var_r31->unk_80) / var_f31; + VECScale(&sp8, &sp8, var_f30); + var_r31->unk_CC.x = sp8.x; + var_r31->unk_CC.z = sp8.z; + } + } + } + } +} + +void fn_1_982C(omObjData *object, u32 arg1) +{ + + M421DllPlayerWork *work = object->data; + if ((work->unk_08 != arg1) && (arg1 < 6)) { + float var_f31 = 60.0f * lbl_1_data_1BC[arg1].unk_04; + if (work->unk_08 < 0) { + var_f31 = 0.0f; + } + work->unk_08 = arg1; + CharModelMotionShiftSet( + work->unk_00, object->motion[lbl_1_data_1BC[arg1].unk_00], 60.0f * lbl_1_data_1BC[arg1].unk_08, var_f31, lbl_1_data_1BC[arg1].unk_10); + if (lbl_1_data_1BC[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_1BC[arg1].unk_08, 60.0f * lbl_1_data_1BC[arg1].unk_0C); + } + } +} + +s32 fn_1_99B8(omObjData *object) +{ + + M421DllPlayerWork *work = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(work->unk_00) != 0) && (CharModelMotionShiftIDGet(work->unk_00) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_9A2C(omObjData *object, u32 arg1) +{ + s32 var_r27; + + var_r27 = 0; + if (fn_1_99B8(object)) { + fn_1_982C(object, arg1); + var_r27 = 1; + } + return var_r27; +} + +void fn_1_9BFC(float arg8, float arg9, float *arg0) +{ + arg0[0] = arg9; + arg0[1] = arg8; + arg0[3] = (2.0f * -arg8) / (arg9 * arg9); + arg0[2] = -arg0[3] * arg9; +} + +void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk2C += 2.0f; + var_r31->unk40.a *= 0.98f; + if (var_r31->unk00 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_9DD0(omObjData *object, Vec *arg1) +{ + Vec sp18; + GXColor sp14; + u8 sp10[4]; + u8 spC[4]; + float var_f31; + float var_f30; + + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M421DllPlayerWork *work; + u32 var_r26; + + work = object->data; + var_r30 = Hu3DData[object->model[4]].unk_120; + GWCharColorGet(work->unk_00, &sp14); + sp10[0] = 100.0f + (0.47058824f * sp14.r); + sp10[1] = 100.0f + (0.47058824f * sp14.g); + sp10[2] = 100.0f + (0.47058824f * sp14.b); + spC[0] = (220.0f + (0.13725491f * sp14.r)) - sp10[0]; + spC[1] = (220.0f + (0.13725491f * sp14.g)) - sp10[1]; + spC[2] = (220.0f + (0.13725491f * sp14.b)) - sp10[2]; + var_r26 = 0x64; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + continue; + } + var_r31->unk00 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8))); + var_f31 = frandmod(0x168); + var_f30 = frandmod(0x168); + sp18.y = sind(var_f31); + var_f31 = cosd(var_f31); + sp18.x = var_f31 * sind(var_f30); + sp18.z = var_f31 * cosd(var_f30); + var_f31 = 120.00001f; + VECScale(&sp18, &sp18, var_f31); + VECAdd(&sp18, arg1, &var_r31->unk34); + var_r31->unk08.x = 0.016666668f * (0.5f * sp18.x); + var_r31->unk08.y = 5.0f + (0.016666668f * (0.5f * sp18.y)); + var_r31->unk08.z = 0.016666668f * (0.5f * sp18.z); + var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 80.0f + (220.0f * var_f31); + var_r31->unk40.a = 100.0f + (100.0f * (1.0f - var_f31)); + var_r31->unk40.r = sp10[0] + (spC[0] * var_f31); + var_r31->unk40.g = sp10[1] + (spC[1] * var_f31); + var_r31->unk40.b = sp10[2] + (spC[2] * var_f31); + if (--var_r26 < 1) { + break; + } + } +} + +void fn_1_A528(omObjData *object) +{ + M421DllPlayerDLWork *work; + s32 i; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllPlayerDLWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllPlayerDLWork)); + work->unk_2F0 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + work->unk_2F4 = HuMemDirectMallocNum(HEAP_SYSTEM, work->unk_2F0, MEMORY_DEFAULT_NUM); + DCFlushRange(work->unk_2F4, work->unk_2F0); + for (i = 0; i < 4; i++) { + work->unk_40[i].r = work->unk_40[i].g = work->unk_40[i].b = 0xFF; + } + work->unk_40[0].a = 0x40; + work->unk_40[1].a = 0; + work->unk_40[2].a = 0xFF; + work->unk_40[3].a = 0; + for (i = 0; i < 4; i++) { + work->unk_50[i][0].x = work->unk_50[i][0].y = work->unk_50[i][0].z = 0.0f; + } + for (i = 1; i < 0xE; i++) { + work->unk_50[0][i].x = 100.0 * (1.7999999523162842 * sind((30.0f * i))); + work->unk_50[0][i].y = 100.0 * (1.7999999523162842 * cosd((30.0f * i))); + work->unk_50[0][i].z = 0.0f; + work->unk_50[1][i].x = 100.0 * (2.0 * cosd((30.0f * i))); + work->unk_50[1][i].y = 0.0f; + work->unk_50[1][i].z = 100.0 * (2.0 * sind((30.0f * i))); + work->unk_50[2][i].x = 100.0 * sind((30.0f * i)); + work->unk_50[2][i].y = 100.0 * (1.2000000476837158 * cosd((30.0f * i))); + work->unk_50[2][i].z = 0.0f; + work->unk_50[3][i].x = 100.0 * sind((30.0f * i)); + work->unk_50[3][i].y = 0.0f; + work->unk_50[3][i].z = 100.0 * cosd((30.0f * i)); + } + DCStoreRangeNoSync(work->unk_40, sizeof(work->unk_40)); + DCStoreRangeNoSync(work->unk_50, sizeof(work->unk_50)); + PPCSync(); + object->model[0] = Hu3DHookFuncCreate(fn_1_AB6C); + Hu3DModelLayerSet(object->model[0], 4); + object->model[1] = Hu3DHookFuncCreate(fn_1_ABDC); + Hu3DModelLayerSet(object->model[1], 6); + object->func = fn_1_AB68; +} + +void fn_1_AB68(omObjData *object) { } + +void fn_1_AB6C(ModelData *model, Mtx matrix) +{ + M421DllPlayerDLWork *work = lbl_1_bss_44->data; + GXPixModeSync(); + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, GX_FALSE); + GXCopyTex(work->unk_2F4, GX_FALSE); + GXPixModeSync(); +} + +void fn_1_ABDC(ModelData *model, Mtx matrix) +{ + Mtx sp118; + Mtx spE8; + Mtx spB8; + Mtx sp88; + Mtx sp58; + Mtx sp28; + GXTexObj sp8; + + M421DllPlayerDLWork *work; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + work = lbl_1_bss_44->data; + MTXTrans(spE8, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&sp8, work->unk_2F4, 0x280, 0x1E0, 5, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp8, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp8, GX_TEXMAP0); + GXSetNumTexGens(1); + C_MTXLightPerspective(spB8, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXConcat(spB8, Hu3DCameraMtx, spB8); + MTXInverse(Hu3DCameraMtx, sp58); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, 0, 0x7D); + MTXInverse(Hu3DCameraMtx, sp28); + sp28[0][3] = sp28[1][3] = sp28[2][3] = 0.0f; + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + work->unk_00[var_r30] = ((M421DllPlayerWork *)lbl_1_bss_48[var_r30]->data)->unk_F0; + if (work->unk_30[var_r30] == 2) { + var_r27 = 2; + } + else { + var_r27 = 0; + } + var_r28 = var_r27; + MTXTrans(spE8, work->unk_00[var_r30].x, work->unk_00[var_r30].y, work->unk_00[var_r30].z); + MTXConcat(spE8, sp28, spE8); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetArray(GX_VA_POS, work->unk_50[var_r28], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); + GXPosition1x8(0); + GXPosition1x8(0); + for (var_r29 = 1; var_r29 < 0xE; var_r29++) { + GXColor1x8(var_r29); + GXColor1x8(1); + } + MTXTrans(spE8, work->unk_00[var_r30].x, 0.0f, work->unk_00[var_r30].z); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetArray(GX_VA_POS, work->unk_50[var_r28 + 1], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); + GXPosition1x8(0); + GXPosition1x8(0); + for (var_r29 = 1; var_r29 < 0xE; var_r29++) { + GXColor1x8(var_r29); + GXColor1x8(1); + } + } +} diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c new file mode 100755 index 00000000..79b64b3c --- /dev/null +++ b/src/REL/m422Dll/main.c @@ -0,0 +1,1762 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ u32 unk04; +} StructBss104; // Size 4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss54; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss3CData; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ u32 unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ char unk28[4]; + /* 0x2C */ s32 unk2C; +} StructDataF0; // Size 0x30 + +void fn_1_B480(omObjData *arg0); + +StructBss104 lbl_1_bss_104[3][8]; +StructBss54 lbl_1_bss_54[11]; +omObjData *lbl_1_bss_50; +omObjData *lbl_1_bss_4C; +omObjData *lbl_1_bss_3C[4]; +omObjData *lbl_1_bss_38; +s32 lbl_1_bss_34; +Process *lbl_1_bss_30; +s16 lbl_1_bss_2E; +s16 lbl_1_bss_2C; +s32 lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; // unused +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; // unused +s32 lbl_1_bss_C; +float lbl_1_bss_8; +float lbl_1_bss_4; +float lbl_1_bss_0; + +const float lbl_1_rodata_10[12] = { 25.0f, 95.0f, 25.0f, 75.0f, 75.0f, 75.0f, 35.0f, 35.0f, 35.0f, 25.0f, 50.0f, 50.0f }; + +const float lbl_1_rodata_40[12] = { 75.0f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 20.0f, 20.0f, 20.0f, 50.0f, 0.0f, 0.0f }; + +const float lbl_1_rodata_70[12] = { 75.0f, 0.0f, 37.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 70.0f, 0.0f, 0.0f }; + +const float lbl_1_rodata_A0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 75.0f, 50.0f, 0.0f }; + +const float lbl_1_rodata_D0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + +const float lbl_1_rodata_100[12] = { 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 40.0f, 40.0f, 40.0f, 0.0f, 0.0f, 0.0f }; + +const float lbl_1_rodata_130[12] = { 290.0f, 290.0f, 290.0f, 370.0f, 370.0f, 370.0f, 450.0f, 450.0f, 450.0f, 0.0f, 0.0f, 0.0f }; + +s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 41), DATA_MAKE_NUM(DATADIR_MGCONST, 40), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 37), DATA_MAKE_NUM(DATADIR_MGCONST, 36), DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 12) }; + +s32 lbl_1_data_40[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, 0x00840000, 0x00100000, + 0x000C0000, 0x00800000 }; + +s32 lbl_1_data_A0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M422, 0), DATA_MAKE_NUM(DATADIR_M422, 8), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; + +u32 lbl_1_data_C0[] = { 0, 0, 0, 1, 1, 0, 0, 0 }; +u8 lbl_1_data_E0[] = { 0, 0, 0, 1, 0, 1, 1 }; +u8 lbl_1_data_E7[] = { 8, 8, 8, 0, 12, 0, 8, 8, 0 }; +StructDataF0 lbl_1_data_F0[12][10] = { 0 }; + +char *lbl_1_data_1828[] + = { "m422al01-cube8", "m422al02-cyl143", "m422al03-cube11", "m422am01-cyl76", "m422am02-cube13", "m422am03-cube12", "m422as01-cube9", + "m422test11-cube9", "m422test12-cube9", "m422m09m-m422m09m", "coin", "m422a04-sphere2", "m422m09m-m422m09m", "m422m09m-m422m09m", + "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m" }; + +s32 lbl_1_data_1878[11] = { 0 }; +s32 lbl_1_data_18A4[2] = { 0 }; +s32 lbl_1_data_18AC = -1; +s32 lbl_1_data_18B0 = -1; + +float lbl_1_data_18B4[][4] + = { { 0.0f, 300.0f, 450.0f, 180.0f }, { -200.0f, 0.0f, 1050.0f, 180.0f }, { 0.0f, 0.0f, 1050.0f, 180.0f }, { 200.0f, 0.0f, 1050.0f, 180.0f } }; + +s32 lbl_1_data_18F4[] = { 0, 0 }; + +float lbl_1_data_18FC = 1.0f; // unused +s32 lbl_1_data_1900 = -1; + +void fn_1_A0(void) +{ + Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); + Center.y += ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0; + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; +} + +void fn_1_2FC(omObjData *arg0) +{ + Mtx sp254; + s32 sp1CC; + s32 sp1C8; + s32 sp1A4; + float sp1A0; + float sp158; + float sp154; + float sp150; + float sp14C; + float sp148; + s32 sp144; + float sp140; + float sp13C; + float sp138; + float sp134; + float sp130; + float sp12C; + float sp128; + s32 sp124; + float sp120; + float sp11C; + float sp118; + s32 var_r17; + s32 sp114; + float temp_f23; + float temp_f22; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float phi_f29; + float phi_f28; + StructDataF0 *temp_r28; + StructDataF0 *temp_r29; + StructBss3CData *temp_r31; + s32 var_r19; + s32 phi_r23; + s32 phi_r26; + s32 phi_r22; + s32 phi_r21; + s16 phi_r25; + s32 phi_r24; + s32 phi_r20; + s32 var_r18; + s32 i; + + temp_r31 = arg0->data; + sp158 = 0.0f; + sp154 = 0.0f; + sp150 = 0.0f; + phi_r25 = -1; + if (temp_r31->unk20 == 0 || temp_r31->unk20 == 1) { + arg0->trans.z += lbl_1_bss_0; + } + temp_r31->unk2C = temp_r31->unk34 = 0.0f; + if (lbl_1_bss_34 != 1004 || !(lbl_1_bss_8 < 45.0f)) { + if (lbl_1_bss_34 >= 1004 && temp_r31->unk20 != 0) { + temp_f25 = lbl_1_data_18B4[temp_r31->unk00][0] - arg0->trans.x; + temp_f24 = lbl_1_data_18B4[temp_r31->unk00][2] - arg0->trans.z; + sp14C = 270.0 + atan2d(temp_f25, temp_f24) - CRot.y; + sp148 = sqrtf(temp_f25 * temp_f25 + temp_f24 * temp_f24); + sp148 = (sp148 > 100.0f) ? 72.0f : (sp148 < 12.0f) ? 0.0f : (72.0f * (sp148 / 100.0f)); + sp154 = sp148 * cosd(sp14C); + sp150 = sp148 * sind(sp14C); + if (sp148 == 0.0f) { + temp_r31->unk20 = 0; + } + } + else if (temp_r31->unk20 == 1) { + if (temp_r31->unk0C != -1) { + sp154 = HuPadStkX[temp_r31->unk0C]; + sp150 = HuPadStkY[temp_r31->unk0C]; + } + else { + float sp238[7] = { 0 }; + float sp21C[7] = { 0 }; + float sp1EC[] = { -400.0f, -550.0f, -700.0f, -800.0f }; + float sp1DC[] = { -800.0f, -900.0f, -1100.0f, -2100.0f }; + Vec sp1D0; + + sp154 = sp150 = 0.0f; + for (i = 0; i < 7; i++) { + sp238[i] = (temp_r31->unk00 == 0 ? 600.0f : 1400.0f) + sp1EC[temp_r31->unk10]; + sp21C[i] = (temp_r31->unk00 == 0 ? 600.0f : 1400.0f) + sp1EC[temp_r31->unk10]; + } + for (i = 0; i < 12; i++) { + for (phi_r23 = 0; phi_r23 < (i < 10 ? 4 : 10); phi_r23++) { + temp_r28 = &lbl_1_data_F0[i][phi_r23]; + sp144 = (i < 10) ? (i * 4 + 43 + phi_r23) : ((i - 10) * 10 + 83 + phi_r23); + if (temp_r28->unk04 != 0 && !(temp_r28->unk14 < 0.0f)) { + Hu3DModelObjPosGet(lbl_1_bss_38->model[sp144], lbl_1_data_1828[temp_r28->unk00], &sp1D0); + phi_r26 = (s32)(300.0f + sp1D0.x + 2000.0f) / 100 - 20; + phi_r26--; + for (phi_r22 = 0; phi_r22 < 3; phi_r26++, phi_r22++) { + if (phi_r26 >= 0 && phi_r26 < 7 + && arg0->trans.z + 50.0f >= sp1D0.z - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] + && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 + && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) { + if (temp_r28->unk00 < 10) { + if (sp238[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { + sp238[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]; + } + } + else { + if (sp21C[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { + sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + + (temp_r28->unk00 < 11); + } + } + } + } + } + } + } + phi_r26 = (s32)(300.0f + arg0->trans.x + 2000.0f) / 100 - 20; + phi_r26 = (phi_r26 < 0) ? 0 : (phi_r26 >= 7) ? 6 : phi_r26; + for (i = 0, phi_r22 = phi_r26; i < 7; i++) { + var_r19 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); + if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) + && sp238[var_r19] < sp21C[var_r19]) { + phi_r22 = var_r19; + } + } + sp238[phi_r22] -= 1.0f; + for (i = 0, phi_r23 = phi_r26; i < 7; i++) { + var_r17 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); + if (sp238[phi_r23] > sp238[var_r17]) { + phi_r23 = var_r17; + } + } + sp140 = arg0->trans.z - (temp_r31->unk00 == 0 ? -100.0f : 700.0f); + sp13C = (((sp238[phi_r22] > sp140 - 400.0f || sp140 > 550.0f) ? phi_r23 + : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 + : phi_r22) + - 3.0f) + * 100.0f + - arg0->trans.x; + { + float sp1C4[] = { -21.0f, 0.0f, 15.0f }; + float sp1B8[] = { 60.0f, 65.0f, 53.0f }; + float sp1AC[] = { 54.0f, 72.0f, 59.0f }; + float sp1A0[] = { -15.0f, 7.0f, 22.0f }; + + var_r18 = (temp_r31->unk14 / 5) % 3; + var_r18 = (temp_r31->unk00 == 0) ? (arg0->trans.z < 200.0f ? 0 : 1) : 2; + sp13C /= 20.0f; + sp13C = (sp13C < -1.0f) ? sp13C : (sp13C > 1.0f) ? 1.0f : sp13C; + sp138 = (sp13C < 0.0f) ? -sp13C : sp13C; + sp134 = 1.0f - sp138; + sp154 = (sp13C < 0.0f) ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) : (36.0f * sp134 + sp138 * sp1B8[var_r18]); + sp150 = (sp13C < 0.0f) ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) : (42.0f * sp134 + sp138 * sp1A0[var_r18]); + } + temp_f23 = temp_r31->unk38 - sp154; + temp_f22 = temp_r31->unk3C - sp150; + if (sqrtf(temp_f23 * temp_f23 + temp_f22 * temp_f22) > 50.0f) { + temp_r31->unk40++; + } + else { + temp_r31->unk40 = 0; + } + if (temp_r31->unk40 >= 2) { + sp154 = temp_r31->unk38; + sp150 = temp_r31->unk3C; + temp_r31->unk40 = 0; + } + temp_r31->unk38 = sp154; + temp_r31->unk3C = sp150; + } + } + } + if (temp_r31->unk20 == 2) { + sp130 = arg0->trans.y; + sp12C = arg0->trans.z; + phi_r25 = 4; + arg0->trans.z += 9.375; + if (temp_r31->unk00 == 0 && lbl_1_data_1900 != -1 && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f + && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) { + HuAudFXStop(lbl_1_data_1900); + lbl_1_data_1900 = -1; + } + temp_r31->unk30 -= 1.0f; + arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) ? temp_r31->unk30 : 0.0f; + if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f + && sp130 > 0.0f) { + lbl_1_data_1900 = HuAudFXPlay(0x612); + } + if (arg0->trans.z < 1400.0f && arg0->trans.y <= 0.0f) { + arg0->trans.y = 0.0f; + temp_r31->unk30 = 0.0f; + } + arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 : (arg0->rot.y > 360.0f) ? -360 : 0; + arg0->rot.y = (arg0->rot.y > 140.0f && arg0->rot.y < 220.0f) ? 180.0f + : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) + : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) + : arg0->trans.y; + ; + if (lbl_1_bss_C % 4 < 3) { + Hu3DModelAttrReset(arg0->model[0], 1); + } + else { + Hu3DModelAttrSet(arg0->model[0], 1); + } + if (arg0->trans.y < -500.0f) { + temp_r31->unk20 = 3; + Hu3DModelAttrSet(arg0->model[0], 1); + } + } + else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { + if (temp_r31->unk20 == 5) { + if (temp_r31->unk24 == 0) { + phi_r25 = 3; + Hu3DMotionSpeedSet(arg0->model[0], 1.0f); + Hu3DModelAttrReset(arg0->model[0], 1); + } + temp_r31->unk24++; + if (temp_r31->unk24 == 30) { + temp_r31->unk1C = -1; + temp_r31->unk18 = phi_r25 = 0; + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (temp_r31->unk24 >= 31 && temp_r31->unk24 <= 38) { + arg0->trans.x -= 150.0 * -sind(arg0->rot.y) / 7.0; + arg0->trans.z -= 150.0 * -cosd(arg0->rot.y) / 7.0; + } + else { + arg0->trans.x = lbl_1_data_F0[9][temp_r31->unk00].unk0C; + arg0->trans.y = (temp_r31->unk00 == 0) ? 300 : 0; + arg0->trans.z = lbl_1_data_F0[9][temp_r31->unk00].unk14; + } + if (temp_r31->unk24 == 34 && temp_r31->unk00 == 0) { + Hu3DMotionTimeSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], 15.0f + Hu3DMotionTimeGet(lbl_1_bss_38->model[temp_r31->unk00 + 79])); + } + if (temp_r31->unk24 == 38) { + temp_r31->unk20 = 1; + } + } + else { + float temp_f31 = 0.25 * sp154; + float temp_f30 = 0.25 * -sp150; + Vec sp194 = { 0.0f, 0.0f, 0.0f }; + + sp194.x = temp_f31; + sp194.z = temp_f30; + MTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp254, &sp194, &sp194); + temp_f31 = sp194.x; + temp_f30 = sp194.z; + sp158 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (sp158 >= 0.5f) { + if (sp158 < 10.0f) { + temp_r31->unk2C = temp_f31; + temp_r31->unk34 += temp_f30; + } + else { + temp_f31 /= sp158; + temp_f30 /= sp158; + sp158 = 10.0f; + temp_r31->unk2C = temp_f31 * sp158; + temp_r31->unk34 = temp_f30 * sp158; + } + temp_r31->unk28 = sp158; + arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); + if (temp_r31->unk20 == 1) { + if (temp_r31->unk28 >= 8.0f) { + phi_r25 = 2; + } + else { + phi_r25 = 1; + } + } + } + else if (temp_r31->unk20 == 1) { + phi_r25 = 0; + } + if (lbl_1_bss_34 == 1005 && (temp_r31->unk20 == 1 || temp_r31->unk20 == 0)) { + temp_r31->unk1C = (lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) ? 6 : 7; + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unk20 = 0; + if (lbl_1_bss_8 == 1.0f && lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) { + s32 sp1FC[] = { 0x122, 0x162, 0x1A2, 0x1E2, 0x222, 0x262, 0x2A2, 0x2E2 }; + + HuAudFXPlay(sp1FC[temp_r31->unk08]); + } + } + if (lbl_1_bss_34 >= 1004 && temp_r31->unk20 == 0) { + arg0->rot.y = 2.4f + 0.8f * arg0->rot.y; + if (temp_r31->unk18 != 6 && temp_r31->unk18 != 7) { + phi_r25 = 0; + } + } + arg0->trans.x += temp_r31->unk2C; + arg0->trans.z += temp_r31->unk34; + if (temp_r31->unk00 != 0) { + for (phi_r21 = 1; phi_r21 < 4; phi_r21++) { + temp_f27 = lbl_1_bss_3C[phi_r21]->trans.x - arg0->trans.x; + phi_f29 = lbl_1_bss_3C[phi_r21]->trans.z - arg0->trans.z; + if (phi_r21 != temp_r31->unk00) { + if (temp_f27 == 0.0f && phi_f29 == 0.0f) { + phi_f29 = -1.0f; + } + sp128 = sqrtf(temp_f27 * temp_f27 + phi_f29 * phi_f29); + if (sp128 < 100.0f) { + temp_f27 *= (100.0f / sp128); + phi_f29 *= (100.0f / sp128); + arg0->trans.x = lbl_1_bss_3C[phi_r21]->trans.x - temp_f27; + arg0->trans.z = lbl_1_bss_3C[phi_r21]->trans.z - phi_f29; + } + } + } + } + if (lbl_1_bss_34 > 1001) { + for (phi_r24 = 0; phi_r24 < 12; phi_r24++) { + if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { } + for (phi_r20 = 0; phi_r20 < (phi_r24 < 10 ? 4 : 10); phi_r20++) { + temp_r29 = &lbl_1_data_F0[phi_r24][phi_r20]; + sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) : ((phi_r24 - 10) * 10 + 83 + phi_r20); + if (temp_r29->unk04 != 0 && temp_r29->unk2C <= 0) { + Vec sp188; + + Hu3DModelObjPosGet(lbl_1_bss_38->model[sp124], lbl_1_data_1828[temp_r29->unk00], &sp188); + if (((temp_r29->unk04 == 3 || (temp_r29->unk04 == 4 && sp188.y >= 250.0f)) && temp_r31->unk00 == 0) + || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) + && temp_r31->unk00 != 0)) { + sp11C = sp188.x; + sp118 = sp188.z; + if (lbl_1_rodata_40[temp_r29->unk00] > 0.0f || lbl_1_rodata_70[temp_r29->unk00] > 0.0f) { + sp11C = (arg0->trans.x < sp11C - lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C - lbl_1_rodata_40[temp_r29->unk00]) + : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) + : arg0->trans.x; + sp118 = (arg0->trans.z < sp118 - lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 - lbl_1_rodata_70[temp_r29->unk00]) + : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) + : arg0->trans.z; + } + temp_f26 = sp11C - arg0->trans.x; + phi_f28 = sp118 - arg0->trans.z; + if (phi_r24 < 10 && temp_f26 == 0.0f && phi_f28 == 0.0f) { + phi_f28 = -1.0f; + } + sp120 = sqrtf(temp_f26 * temp_f26 + phi_f28 * phi_f28); + if (sp120 < 50.0f + lbl_1_rodata_10[temp_r29->unk00]) { + if (phi_r24 < 10) { + temp_f26 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; + phi_f28 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; + arg0->trans.x = sp11C - temp_f26; + arg0->trans.z = sp118 - phi_f28; + } + else { + temp_r29->unk04 = 0; + lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] += (phi_r24 == 10 ? 1 : 5); + CharModelCoinEffectCreate(-1, &sp188); + if (lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00 < 3) { + lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk04[lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00] = 0.0f; + lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00++; + } + } + } + } + } + } + } + } + if (arg0->trans.z > (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f) { + temp_r31->unk20 = 2; + temp_r31->unk30 = 0.0f; + HuAudCharVoicePlay(temp_r31->unk08, 0x123); + } + if (temp_r31->unk20 != 2) { + if (arg0->trans.x > (temp_r31->unk00 == 0 ? 400 : 400) - 50.0f) { + arg0->trans.x = (temp_r31->unk00 == 0 ? 400 : 400) - 50.0f; + } + if (arg0->trans.x < -(temp_r31->unk00 == 0 ? 400 : 400) + 50.0f) { + arg0->trans.x = -(temp_r31->unk00 == 0 ? 400 : 400) + 50.0f; + } + if (arg0->trans.z < (temp_r31->unk00 == 0 ? 0.0f : 600.0f) + 50.0f) { + arg0->trans.z = (temp_r31->unk00 == 0 ? 0.0f : 600.0f) + 50.0f; + } + if (arg0->trans.z > (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f) { + arg0->trans.z = (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f; + } + } + } + } + if (lbl_1_bss_34 == 1001) { + sp114 = temp_r31->unk00; + if (lbl_1_bss_8 == 23.0f) { + Hu3DMotionSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], lbl_1_bss_38->motion[temp_r31->unk00 + 22]); + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + if (lbl_1_bss_54[4].unk00 < 3) { + lbl_1_bss_54[4].unk04[lbl_1_bss_54[4].unk00] = 0.0f; + lbl_1_bss_54[4].unk00++; + } + } + if (lbl_1_bss_8 == 43.0f) { + Hu3DModelAttrSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 80.0f) { + Hu3DMotionTimeSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], 20.0f); + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 100.0f && lbl_1_bss_54[0].unk00 < 3) { + lbl_1_bss_54[0].unk04[lbl_1_bss_54[0].unk00] = 0.0f; + lbl_1_bss_54[0].unk00++; + } + if (lbl_1_bss_8 == 106.0f) { + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 39], 1); + Hu3DParticleCntSet(lbl_1_bss_38->model[temp_r31->unk00 + 39], 0); + lbl_1_bss_18 = 1; + } + if (lbl_1_bss_8 == 60.0f) { + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DMotionSet(arg0->model[0], arg0->motion[3]); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 61.0f) { + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 120.0f) { + phi_r25 = 3; + Hu3DModelAttrReset(arg0->model[0], 1); + } + if (lbl_1_bss_8 == 155.0f) { + phi_r25 = 0; + } + arg0->trans.x = lbl_1_data_F0[9][sp114].unk0C; + arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) : lbl_1_data_F0[9][sp114].unk14; + } + if (temp_r31->unk1C >= 0) { + phi_r25 = temp_r31->unk1C; + } + if (phi_r25 >= 0 && phi_r25 != temp_r31->unk18) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], + (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + temp_r31->unk18 = phi_r25; + } +} + +s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ + Vec sp1C; + float var_f27; + float var_f28; + float var_f25; + float var_f26; + float temp_f30; + float var_f31; + float sp18; + StructDataF0 *temp_r31; + s32 var_r24; + s32 i; + s32 j; + + for (i = 0; i < 12; i++) { + for (j = 0; j < (i < 10 ? 4 : 10); j++) { + temp_r31 = &lbl_1_data_F0[i][j]; + var_r24 = (i < 10) ? (i * 4 + 43 + j) : ((i - 10) * 10 + 83 + j); + if (temp_r31->unk04 != 0 && temp_r31->unk2C <= 0) { + Hu3DModelObjPosGet(lbl_1_bss_38->model[var_r24], lbl_1_data_1828[temp_r31->unk00], &sp1C); + if (temp_r31->unk04 == 3 || temp_r31->unk04 == 5) { + var_f27 = (temp_r31->unk08 == 0) ? temp_r31->unk0C : sp1C.x; + var_f28 = (temp_r31->unk08 == 0) ? temp_r31->unk14 : sp1C.z; + var_f25 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; + var_f26 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; + if (temp_r31->unk04 == 3) { + float sp28[][12] = { { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, + 76.875f, 45.0f }, + { -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, + 76.875f, 45.0f } }; + + var_f28 += sp28[temp_r31->unk08 == 0 ? 0 : 1][temp_r31->unk00]; + var_f25 += 50.0f; + var_f26 += 50.0f; + } + else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { + var_f28 += lbl_1_rodata_130[temp_r31->unk00]; + } + else if (temp_r31->unk04 == 1) { + var_f27 = (temp_r31->unk0C < 0.0f ? -1 : 1) * 321; + var_f28 = 880.0f - lbl_1_bss_0 * (100 - temp_r31->unk08); + } + if (temp_r31->unk00 == 9) { + var_f26 += 300.0f; + } + if (lbl_1_rodata_40[temp_r31->unk00] > 0.0f || var_f25 > 0.0f || var_f26 > 0.0f) { + var_f27 = (arg0 < var_f27 - lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 - lbl_1_rodata_40[temp_r31->unk00]) + : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) + : arg0; + var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) : arg1; + } + temp_f30 = var_f27 - arg0; + var_f31 = var_f28 - arg1; + if (i < 10 && temp_f30 == 0.0f && var_f31 == 0.0f) { + var_f31 = -1.0f; + } + sp18 = sqrtf(temp_f30 * temp_f30 + var_f31 * var_f31); + if (sp18 < arg2 + lbl_1_rodata_10[temp_r31->unk00]) { + return 1; + } + } + } + } + } + return 0; +} + +void fn_1_3B74(omObjData *arg0) +{ + StructBss3CData *sp354[4]; + Vec sp348; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + s32 sp230; + s32 sp22C; + s32 sp228; + s32 sp224; + s32 sp220; + s32 sp21C; + s32 sp218; + float sp214; + float sp210; + float sp20C; + s32 sp208; + float var_f25; + float var_f24; + float temp_f21; + float temp_f20; + float temp_f23; + float temp_f22; + float temp_f26; + float temp_f28; + float temp_f27; + float temp_f29; + float temp_f30; + float temp_f31; + StructDataF0 *temp_r31; + s32 var_r21; + s32 var_r28; + s32 var_r27; + s32 var_r25; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp354[i] = lbl_1_bss_3C[i]->data; + } + lbl_1_bss_C++; + lbl_1_bss_0 = (lbl_1_bss_34 <= 1002) ? 1.5 + : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) + : 0.0; + lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) + ? 7.5 + : lbl_1_bss_0; + Hu3DMotionSpeedSet(arg0->model[1], 1.5 * lbl_1_bss_4 / 7.5); + Hu3DMotionSpeedSet(arg0->model[3], 1.5 * lbl_1_bss_0 / 7.5); + if (lbl_1_data_18B0 != -1) { + temp_f21 = 1.5 * lbl_1_bss_4 / 7.5; + HuAudFXPitchSet(lbl_1_data_18B0, 8190.0f * temp_f21 - 8190.0f); + HuAudFXVolSet(lbl_1_data_18B0, temp_f21 <= 0.001 ? 0 : 127); + } + if (lbl_1_bss_34 <= 1001) { + temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 : 1.0; + temp_f31 = 1.0f - temp_f31; + temp_f31 *= temp_f31; + temp_f31 = 1.0f - temp_f31; + temp_f28 = 1.0f - temp_f31; + Center.x = 690.0f * temp_f31; + Center.y = 400.0f * temp_f28 + 1340.0f * temp_f31; + Center.z = 500.0f * temp_f28 + 1380.0f * temp_f31; + CRot.x = -10.0f * temp_f28 + -50.8125f * temp_f31; + CRot.y = 40.0f * temp_f31; + CZoom = 2126.6f * temp_f28 + 2126.6f * temp_f31; + Center.x = 700.0f * temp_f31; + Center.y = 400.0f * temp_f28 + 870.0f * temp_f31; + Center.z = 500.0f * temp_f28 + 1320.0f * temp_f31; + CRot.x = -10.0f * temp_f28 + -37.25f * temp_f31; + CRot.y = 40.0f * temp_f31; + } + if (lbl_1_bss_34 == 1005 && lbl_1_bss_8 < 100.0f) { + temp_f30 = (lbl_1_bss_8 < 90.0f) ? (lbl_1_bss_8 / 90.0) : 1.0; + temp_f30 = 1.0f - temp_f30; + temp_f30 *= temp_f30; + temp_f30 = 1.0f - temp_f30; + temp_f26 = 1.0f - temp_f30; + Center.x = 120.0f * temp_f30 + 700.0f * temp_f26; + Center.y = 292.5f * temp_f30 + 870.0f * temp_f26; + Center.z = 1200.0f * temp_f30 + 1320.0f * temp_f26; + CRot.x = -19.5f * temp_f30 + -37.25f * temp_f26; + CRot.y = 13.5f * temp_f30 + 40.0 * temp_f26; + CZoom = 2126.6f * temp_f30 + 2126.6f * temp_f26; + } + var_r20 = (sp354[0]->unk20 == 3 && (lbl_1_data_F0[9][0].unk04 == 0 || lbl_1_bss_34 != 1003)); + sp22C = (sp354[1]->unk20 == 3 && (lbl_1_data_F0[9][1].unk04 == 0 || lbl_1_bss_34 != 1003)) + + (sp354[2]->unk20 == 3 && (lbl_1_data_F0[9][2].unk04 == 0 || lbl_1_bss_34 != 1003)) + + (sp354[3]->unk20 == 3 && (lbl_1_data_F0[9][3].unk04 == 0 || lbl_1_bss_34 != 1003)); + var_r19 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 1 + var_r20) : var_r20; + var_r18 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 120 == 0) ? (rand8() % 2 + 1) : 0; + var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0 && lbl_1_bss_28 > 120); + sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; + sp224 = 0; + var_r19 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? ((rand8() % 4 < 3) + 1 + var_r20) : var_r20; + var_r18 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 120 == 1) ? (rand8() % 2 + 1) : 0; + var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 38 && lbl_1_bss_28 > 120); + sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; + while (var_r19 > 0 || var_r18 > 0 || var_r17 > 0 || sp228 > 0) { + var_r27 = (rand8() % 2 == 0) ? ((var_r17 != 0) ? 3 + : (sp228 != 0) ? 4 + : (var_r19 != 0) ? 1 + : (var_r18 != 0) ? 2 + : 0) + : ((var_r17 != 0) ? 3 + : (var_r19 != 0) ? 1 + : (sp228 != 0) ? 4 + : (var_r18 != 0) ? 2 + : 0); + sp224++; + if (sp224 > 8) { + var_r19 -= (var_r27 == 1); + var_r18 -= (var_r27 == 2); + var_r17 -= (var_r27 == 3); + sp228 -= (var_r27 == 4); + sp224 = 0; + } + else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { + var_r28 = (var_r27 != 4) ? (rand8() % 9) : 10; + if (var_r27 == 1 && var_r20 != 0) { + var_r28 = 9; + i = 0; + } + else if (var_r27 == 3 && sp22C != 0) { + var_r28 = 9; + i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? (lbl_1_bss_C % 3 + 1) + : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 1) % 3 + 1) + : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 2) % 3 + 1) + : 0; + } + else { + if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 + && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { + var_r28 = 11; + } + for (i = 0; i < (var_r27 != 4 ? 4 : 10); i++) { + if (lbl_1_data_F0[var_r28][i].unk04 == 0) { + break; + } + } + if (i >= (var_r27 != 4 ? 4 : 10)) { + continue; + } + } + lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) ? (rand8() % 7 - 3) * 100 : ((rand8() % 2) * 2 - 1) * 1595; + if (i == 0 && lbl_1_bss_34 >= 1004 && var_r28 == 9) { + lbl_1_data_F0[var_r28][i].unk0C = 0.0f; + } + lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 : (var_r27 == 2) ? 0 : (var_r27 == 3) ? 500 : (var_r27 == 4) ? 300 : 0; + lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 : (var_r27 == 2) ? -450 : (var_r27 == 3) ? 105 : (var_r27 == 4) ? -150 : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? -(var_r28 <= 8 ? 0 : 0) + : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) + : (var_r27 == 4) ? -50 + : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? ((var_r28 <= 2) ? 315.0 + : (var_r28 <= 5) ? 296.6875 + : (var_r28 <= 8) ? 227.234375 + : (var_r28 == 9) ? 200 + : 0) + : 0.0; + if (var_r27 == 1 || var_r27 == 4) { + float sp3C4[] = { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, 76.875f, 45.0f, + -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, 76.875f, + 45.0f }; + + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = sp3C4[var_r28] + lbl_1_data_F0[var_r28][i].unk14; + } + else if (var_r27 == 2) { + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = lbl_1_rodata_130[var_r28] + lbl_1_data_F0[var_r28][i].unk14; + } + else if (var_r27 == 3) { + var_f25 = (lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? -335 : 335; + var_f24 = 830.0f - 94.0f * lbl_1_bss_0; + } + else { + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = lbl_1_data_F0[var_r28][i].unk14; + } + if (fn_1_34BC( + var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) + != 0) { + continue; + } + if (var_r27 == 3 && lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] > 0) { + continue; + } + if (var_r27 == 4) { + for (var_r21 = 0; var_r21 < 10; var_r21++) { + if (lbl_1_data_F0[10][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) { + break; + } + if (lbl_1_data_F0[11][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) { + break; + } + } + if (var_r21 < 10 || (lbl_1_data_F0[var_r28][i].unk0C >= -100.0f && lbl_1_data_F0[var_r28][i].unk0C <= 100.0f)) { + continue; + } + } + if (var_r28 == 11) { + lbl_1_bss_14++; + } + if ((lbl_1_bss_28 / 60) / 15 == 0 && lbl_1_bss_14 == 0) { + lbl_1_bss_14++; + } + lbl_1_data_F0[var_r28][i].unk00 = var_r28; + lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 : (var_r27 == 2) ? 5 : (var_r27 == 3) ? 1 : (var_r27 == 4) ? 3 : 0; + lbl_1_data_F0[var_r28][i].unk08 = 0; + lbl_1_data_F0[var_r28][i].unk2C = 0; + lbl_1_data_F0[var_r28][i].unk18 = lbl_1_data_F0[var_r28][i].unk1C = lbl_1_data_F0[var_r28][i].unk20 = 0.0f; + if (var_r27 != 4) { + sp220 = var_r28 * 4 + 43 + i; + Hu3DMotionTimeSet(arg0->model[sp220], (var_r27 == 1 || var_r27 == 3) ? 1.0f : Hu3DMotionMaxTimeGet(arg0->model[sp220])); + Hu3DModelAttrSet(arg0->model[sp220], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[sp220], 1); + Hu3DModelRotSet(arg0->model[sp220], 0.0f, 0.0f, 0.0f); + } + else { + Hu3DModelAttrReset(arg0->model[i + (var_r28 == 10 ? 83 : 93)], 1); + } + if (var_r27 == 1 && var_r20 != 0) { + var_r20--; + sp354[0]->unk20 = 4; + } + else if (var_r27 == 3 && sp22C != 0) { + sp22C--; + sp354[i]->unk20 = 4; + } + if (var_r27 == 3) { + lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] = 85; + Hu3DMotionTimeSet(arg0->model[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 6 : 5], 9.0f); + if (var_r28 == 9 && lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00 < 3) { + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6] + .unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] + = 0.0f; + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00++; + } + } + if (var_r28 == 9) { + sp21C = var_r28 * 4 + 43 + i; + Hu3DMotionSet(arg0->model[sp21C], arg0->motion[i + 22]); + Hu3DMotionTimeSet(arg0->model[sp21C], 0.0f); + Hu3DMotionSpeedSet(arg0->model[sp21C], 2.0f); + } + var_r19 -= (var_r27 == 1); + var_r18 -= (var_r27 == 2); + var_r17 -= (var_r27 == 3); + sp228 -= (var_r27 == 4); + sp224 = 0; + } + } + for (i = 0; i < 12; i++) { + for (j = 0; j < (i < 10 ? 4 : 10); j++) { + temp_r31 = &lbl_1_data_F0[i][j]; + var_r25 = (i < 10) ? (i * 4 + 43 + j) : ((i - 10) * 10 + 83 + j); + sp348.x = sp348.y = sp348.z = 0.0f; + if (temp_r31->unk04 == 0) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + } + else { + temp_r31->unk08++; + temp_r31->unk24 += (temp_r31->unk00 == 10) ? 0 : 0; + temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 : (temp_r31->unk24 > 360.0f) ? -360 : 0; + Hu3DModelObjPosGet(arg0->model[var_r25], lbl_1_data_1828[temp_r31->unk00], &sp348); + switch (temp_r31->unk04) { + case 3: + case 5: + case 6: + if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 && temp_r31->unk14 < -120.0f + && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) { + sp218 = (500.0f + temp_r31->unk0C) / 100.0f; + sp218 = (sp218 < 0) ? 0 : (sp218 >= 11) ? 10 : sp218; + lbl_1_data_1878[sp218] = 15; + Hu3DMotionShiftSet(arg0->model[sp218 + 8], arg0->motion[11], 20.0f, 15.0f, HU3D_MOTATTR_NONE); + if (temp_r31->unk00 == 9 && lbl_1_bss_54[5].unk00 < 3) { + lbl_1_bss_54[5].unk04[lbl_1_bss_54[5].unk00] = 0.0f; + lbl_1_bss_54[5].unk00++; + } + } + temp_r31->unk14 += (temp_r31->unk04 == 3 ? lbl_1_bss_4 : lbl_1_bss_0); + if (lbl_1_bss_34 >= 1003 && lbl_1_bss_34 < 1005) { + if ((temp_r31->unk04 == 3 && temp_r31->unk00 == 9 && temp_r31->unk14 >= 150.0f && temp_r31->unk14 - lbl_1_bss_4 < 150.0f) + || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) { + sp354[j]->unk20 = 5; + sp354[j]->unk24 = 0; + lbl_1_bss_3C[j]->trans.x = temp_r31->unk0C; + lbl_1_bss_3C[j]->trans.y = (j == 0 ? 300 : 0); + lbl_1_bss_3C[j]->trans.z = temp_r31->unk14; + lbl_1_bss_3C[j]->rot.y + = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) ? (temp_r31->unk0C < 0.0f ? -45 : 45) : 0); + Hu3DMotionSpeedSet(arg0->model[j + 79], 1.0f); + Hu3DMotionShiftSet(arg0->model[j + 79], arg0->motion[j + 22], 44.0f, 2.0f, HU3D_MOTATTR_NONE); + Hu3DParticleCntSet(arg0->model[j + 39], j == 0 ? 15 : 0); + if (lbl_1_bss_54->unk00 < 3) { + lbl_1_bss_54->unk04[lbl_1_bss_54->unk00] = 0.0f; + lbl_1_bss_54->unk00++; + } + } + } + if (temp_r31->unk04 == 3 && temp_r31->unk14 > 510.0f) { + temp_r31->unk04 = 4; + temp_r31->unk08 = 0; + if (temp_r31->unk00 != 10) { + if (temp_r31->unk00 != 9) { + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + } + else { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 26]); + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); + } + Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } + } + if ((temp_r31->unk04 == 5 || temp_r31->unk04 == 6) && sp348.z > 1400.0f && temp_r31->unk14 > 700.0f) { + temp_r31->unk08 = 0; + temp_r31->unk10 = sp348.y; + temp_r31->unk14 = sp348.z; + temp_r31->unk1C = 0.0f; + if (temp_r31->unk00 == 10) { + Hu3DModelAttrSet(arg0->model[var_r25], HU3D_MOTATTR_LOOP); + } + else if (temp_r31->unk00 != 9) { + Hu3DMotionTimeSet(arg0->model[var_r25], 2.0f); + Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } + else { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[(temp_r31->unk04 == 6) ? (j + 26) : (j + 30)]); + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); + } + temp_r31->unk04 = 7; + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) + ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) + : temp_r31->unk10) + + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + } + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + case 4: + if (temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) { + float sp394[] = { 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f }; + s32 sp364[] = { 42, 42, 42, 41, 41, 41, 48, 48, 48, 27, 27, 27 }; + + if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8) { + temp_f29 = temp_r31->unk08; + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + : (temp_f29 >= 30.0f && temp_f29 < 40.0f) ? -1.0 * (1.0 - (temp_f29 - 30.0f) / 9.0) + : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 + : 1.0; + temp_f27 = (temp_f29 >= 40.0f) ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) : temp_f27; + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + : (temp_f29 < 23.0f) ? 1.0 + : (temp_f29 < 32.0f) ? 0.5 + : (temp_f29 < 40.0f) ? -0.8 + : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); + temp_r31->unk14 -= (lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0) * temp_f27; + } + else { + temp_r31->unk14 -= lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0; + } + if (temp_r31->unk08 >= sp364[temp_r31->unk00]) { + temp_r31->unk10 = 0.0f; + temp_r31->unk04 = 5; + temp_r31->unk08 = 0; + } + } + else { + temp_r31->unk1C -= 1.0f; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += 1.25 * lbl_1_bss_4; + if (temp_r31->unk10 <= 0.0f) { + if (temp_r31->unk1C < -10.0f && temp_r31->unk00 == 10) { + temp_r31->unk1C = 9.0f; + } + else { + temp_r31->unk1C = 0.0f; + temp_r31->unk10 = 0.0f; + temp_r31->unk04 = 5; + temp_r31->unk08 = 0; + } + } + } + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + lbl_1_rodata_A0[temp_r31->unk00] + + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + case 1: + temp_f20 = temp_r31->unk08 / 90.0; + temp_f23 = 1.0f - temp_f20; + sp214 = temp_r31->unk0C; + sp210 = temp_r31->unk10; + sp20C = temp_r31->unk14; + temp_r31->unk0C = (460.0f + 1135.0f * temp_f23) * (temp_r31->unk0C < 0.0f ? -1 : 1); + temp_r31->unk10 = 100.0f * temp_f20 + 500.0f * temp_f23; + temp_r31->unk14 = 800.0f - 695.0f * temp_f23; + temp_r31->unk18 = temp_r31->unk0C - sp214; + temp_r31->unk1C = temp_r31->unk10 - sp210; + temp_r31->unk20 = temp_r31->unk14 - sp20C; + if (temp_r31->unk08 >= 90) { + temp_r31->unk04 = 2; + temp_r31->unk08 = 0; + } + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelRotSet(arg0->model[var_r25], 9.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, (temp_r31->unk0C < 0.0f) ? -18 : 18); + break; + case 2: + temp_r31->unk1C -= (temp_r31->unk00 != 9) ? 0.625 : 0.9; + temp_r31->unk0C += temp_r31->unk18; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += temp_r31->unk20; + if (temp_r31->unk10 <= lbl_1_rodata_100[temp_r31->unk00]) { + temp_r31->unk10 = -lbl_1_rodata_100[temp_r31->unk00]; + temp_r31->unk1C = 0.0f; + temp_r31->unk04 = 6; + temp_r31->unk08 = 0; + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + + lbl_1_rodata_100[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, 0.0f); + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + } + break; + case 7: + temp_r31->unk1C -= 1.0f; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += (temp_r31->unk00 >= 10) ? lbl_1_bss_0 : 0.0f; + if (temp_r31->unk10 <= -800.0f) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + if (temp_r31->unk00 == 9) { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 22]); + Hu3DMotionTimeSet(arg0->model[var_r25], 0.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 2.0f); + } + temp_r31->unk04 = 0; + } + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + (temp_r31->unk00 >= 0 && temp_r31->unk00 < 9) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10, + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + } + if (temp_r31->unk00 >= 0 && temp_r31->unk00 <= 8 && (temp_r31->unk04 == 4 || temp_r31->unk04 == 5)) { + sp208 = Hu3DMotionTimeGet(arg0->model[var_r25]); + if (temp_r31->unk00 >= 0 && temp_r31->unk00 <= 2 && (sp208 == 26 || sp208 == -41) && lbl_1_bss_54[3].unk00 < 3) { + lbl_1_bss_54[3].unk04[lbl_1_bss_54[3].unk00] = 0.0f; + lbl_1_bss_54[3].unk00++; + } + if (temp_r31->unk00 >= 3 && temp_r31->unk00 <= 5 && (sp208 == 23 || sp208 == -39) && lbl_1_bss_54[2].unk00 < 3) { + lbl_1_bss_54[2].unk04[lbl_1_bss_54[2].unk00] = 0.0f; + lbl_1_bss_54[2].unk00++; + } + if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8 && (sp208 == 20 || sp208 == -29) && lbl_1_bss_54[1].unk00 < 3) { + lbl_1_bss_54[1].unk04[lbl_1_bss_54[1].unk00] = 0.0f; + lbl_1_bss_54[1].unk00++; + } + } + if (i == 9 && lbl_1_bss_18 != 0) { + ModelData *sp204 = &Hu3DData[arg0->model[j + 39]]; + ParticleData *sp200 = sp204->unk_120; + + if (sp200->unk_34 == 63) { + ModelData *temp_r23 = &Hu3DData[arg0->model[var_r25]]; + ModelData *temp_r22 = &Hu3DData[arg0->model[j + 39]]; + + temp_r22->pos.x = temp_r23->pos.x; + temp_r22->pos.y = temp_r23->pos.y; + temp_r22->pos.z = temp_r23->pos.z; + temp_r22->rot.x = temp_r23->rot.x; + temp_r22->rot.y = temp_r23->rot.y; + temp_r22->rot.z = temp_r23->rot.z; + } + } + if (temp_r31->unk2C == 0 && (lbl_1_bss_34 == 1004 || lbl_1_bss_34 == 1005)) { + if (temp_r31->unk00 != 9 + || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 + && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) { + temp_r31->unk2C = 1; + } + } + temp_r31->unk2C += (temp_r31->unk2C > 0); + if (temp_r31->unk2C != 0 && (temp_r31->unk2C % 2 == 0 || temp_r31->unk2C > 25)) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + } + else { + Hu3DModelAttrReset(arg0->model[var_r25], 1); + } + } + } + } + for (i = 0; i < 11; i++) { + if (lbl_1_data_1878[i] == 1) { + Hu3DMotionShiftSet(arg0->model[i + 8], arg0->motion[0], 0.0f, 60.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_data_1878[i] -= (lbl_1_data_1878[i] > 0); + } + lbl_1_data_18A4[0] -= (lbl_1_data_18A4[0] > 0); + lbl_1_data_18A4[1] -= (lbl_1_data_18A4[1] > 0); + for (i = 0; i < 3; i++) { + for (j = 0; j < 8; j++) { + s32 sp1FC = lbl_1_bss_104[i][j].unk00 + 21; + + lbl_1_bss_104[i][j].unk04++; + if (lbl_1_bss_104[i][j].unk04 >= 520) { + if (lbl_1_bss_104[i][j].unk00 != -1) { + Hu3DModelAttrReset(arg0->model[lbl_1_bss_104[i][j].unk00 + 21], 1); + } + lbl_1_bss_104[i][j].unk04 = 0; + lbl_1_bss_104[i][j].unk00 = -1; + for (sp230 = 0; sp230 < 14; sp230++) { + s32 sp1F8; + s32 sp1F4 = rand8() % 18; + + for (sp1F8 = 0; sp1F8 < 24; sp1F8++) { + if (sp1F4 == lbl_1_bss_104[sp1F8 / 8][sp1F8 % 8].unk00) { + break; + } + } + if (sp1F8 == 24) { + lbl_1_bss_104[i][j].unk00 = sp1F4; + break; + } + } + if (lbl_1_bss_104[i][j].unk00 != -1) { + Hu3DModelAttrReset(arg0->model[lbl_1_bss_104[i][j].unk00 + 21], 1); + } + } + sp1FC = lbl_1_bss_104[i][j].unk00 + 21; + temp_f22 = lbl_1_bss_104[i][j].unk04 / 520.0f; + if (lbl_1_bss_104[i][j].unk00 != -1) { + switch (i) { + case 0: + Hu3DModelPosSet(arg0->model[sp1FC], 2000.0f - 4000.0f * temp_f22, -490.0f, 1000.0f); + break; + case 1: + Hu3DModelPosSet(arg0->model[sp1FC], -1200.0f, -290.0f, 2000.0f - 4000.0f * temp_f22); + break; + case 2: + Hu3DModelPosSet(arg0->model[sp1FC], 1200.0f, -290.0f, 2000.0f - 4000.0f * temp_f22); + break; + } + } + } + } + for (i = 0; i < 2; i++) { + espBankSet(lbl_1_data_40[i * 7 + 2], lbl_1_data_18F4[i] % 10); + espBankSet(lbl_1_data_40[i * 7 + 3], (lbl_1_data_18F4[i] / 10) % 10); + } + for (i = 0; i < 4; i++) { + ModelData *temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; + float temp_f19 = 0.0f; + float sp1F0 = (temp_r24->unk_08 == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; + float sp1EC = (temp_r24->unk_0C == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; + float sp1E8 = (sp1F0 == -1.0f) ? 0.0f + : (temp_r24->unk_64 < 4.0f) ? 0.0f + : (temp_r24->unk_64 > 28.0f) ? 1.0f + : (temp_r24->unk_64 - 4.0f) / 24.0f; + float sp1E4 = (sp1EC == -1.0f) ? 0.0f + : (temp_r24->unk_84 < 4.0f) ? 0.0f + : (temp_r24->unk_84 > 28.0f) ? 1.0f + : (temp_r24->unk_84 - 4.0f) / 24.0f; + float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f : (temp_r24->unk_80 == 0.0f) ? 1.0f : (temp_r24->unk_7C / temp_r24->unk_80); + + temp_f19 = sp1E8 * (1.0f - temp_f18) + sp1E4 * temp_f18; + if (!(temp_r24->attr & 1) && sp354[i]->unk20 != 3 && sp354[i]->unk20 != 4 && lbl_1_bss_3C[i]->trans.z < 1400.0f) { + Hu3DModelAttrReset(lbl_1_bss_3C[i]->model[1], 1); + Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], lbl_1_bss_3C[i]->trans.x, (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, + lbl_1_bss_3C[i]->trans.z - 165.0f * temp_f19); + Hu3DModelScaleSet( + lbl_1_bss_3C[i]->model[1], 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), 1.0f, 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); + } + else { + Hu3DModelAttrSet(lbl_1_bss_3C[i]->model[1], 1); + } + } +} + +void fn_1_89E0(omObjData *arg0) +{ + StructBss3CData *spC[4]; + s32 sp8; + s32 var_r29; + s32 var_r30; + s32 i; + + for (i = 0; i < 4; i++) { + spC[i] = lbl_1_bss_3C[i]->data; + } + for (i = 0; i < 11; i++) { + s32 sp1C[] = { 0x60A, 0x60B, 0x60C, 0x60D, 0x60E, 0x60F, 0x611, 0x610, 0x007, 0x013, 0x612 }; + + if (lbl_1_bss_54[i].unk00 > 3) { + lbl_1_bss_54[i].unk00 = 3; + } + if (lbl_1_bss_54[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp1C[i]); + lbl_1_bss_54[i].unk00--; + } + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_B480; + } + switch (lbl_1_bss_34) { + case 1000: + lbl_1_bss_8 += 1.0f; + if (lbl_1_bss_8 == 5.0f) { + lbl_1_data_18B0 = HuAudFXPlay(0x609); + } + if (WipeStatGet() == 0) { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + } + break; + case 1001: + lbl_1_bss_8 += 1.0f; + if (180.0f < lbl_1_bss_8) { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + } + break; + case 1002: + lbl_1_bss_8 += 1.0f; + if (lbl_1_bss_8 == 5.0f && lbl_1_bss_2E < 0) { + lbl_1_bss_2E = MGSeqStartCreate(); + } + if (lbl_1_bss_8 >= 5.0f && lbl_1_data_18AC == -1 && (MGSeqStatGet(lbl_1_bss_2E) & 0x10)) { + lbl_1_data_18AC = HuAudSeqPlay(0x47); + } + if (lbl_1_bss_8 >= 5.0f && MGSeqStatGet(lbl_1_bss_2E) == 0 && lbl_1_bss_2E >= 0) { + lbl_1_bss_34++; + lbl_1_bss_28 = 1800; + lbl_1_bss_2C = MGSeqTimerCreate(lbl_1_bss_28 / 60); + lbl_1_bss_2E = -1; + lbl_1_bss_8 = 0.0f; + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_data_40[i]); + } + for (i = 0; i < 4; i++) { + spC[i]->unk20 = 1; + } + } + break; + case 1003: + lbl_1_bss_8 += 1.0f; + MGSeqParamSet(lbl_1_bss_2C, 1, (lbl_1_bss_28 + 58) / 60); + lbl_1_bss_28--; + if (lbl_1_bss_28 <= 0) { + lbl_1_bss_34 = 1004; + lbl_1_bss_8 = 0.0f; + lbl_1_bss_20 = 4; + } + break; + case 1004: + if (lbl_1_bss_2E < 0 && lbl_1_bss_8 == 0.0f) { + MGSeqParamSet(lbl_1_bss_2C, 2, -1); + lbl_1_bss_2E = MGSeqFinishCreate(); + if (lbl_1_data_18AC != -1) { + HuAudSeqFadeOut(lbl_1_data_18AC, 100); + } + } + else { + var_r29 = 0; + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (spC[i]->unk20 == 1 || (spC[i]->unk20 >= 2 && spC[i]->unk20 <= 5)) { + var_r29++; + } + if (i == 0 && ((spC[0]->unk20 >= 2 && spC[0]->unk20 <= 4) || (spC[0]->unk20 == 4 && lbl_1_data_F0[9][0].unk14 < 70.0f))) { + var_r30++; + } + else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { + var_r30++; + } + } + if (MGSeqStatGet(lbl_1_bss_2E) == 0 + && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) + || lbl_1_bss_8 >= 360.0f)) { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + GWPlayerCoinCollectSet(spC[0]->unk04, lbl_1_data_18F4[0]); + GWPlayerCoinCollectSet(spC[1]->unk04, lbl_1_data_18F4[1]); + GWPlayerCoinCollectSet(spC[2]->unk04, lbl_1_data_18F4[1]); + GWPlayerCoinCollectSet(spC[3]->unk04, lbl_1_data_18F4[1]); + if (lbl_1_data_18F4[0] == 0 && lbl_1_data_18F4[1] == 0) { + HuAudSStreamPlay(4); + } + else { + HuAudSStreamPlay(1); + } + } + } + lbl_1_bss_8 += 1.0f; + break; + case 1005: + lbl_1_bss_8 += 1.0f; + if (210.0f < lbl_1_bss_8) { + HuAudFXStop(lbl_1_data_18B0); + lbl_1_bss_2E = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_B480; + } + break; + default: + OSReport("*** main mode error(%d)!!\n", lbl_1_bss_34); + break; + } +} + +void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + float temp_f31; + float temp_f30; + s16 i; + + if (particle->unk_34 < 50) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00 = particle->unk_34 + 41; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_34 >= 255) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00 = 255; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk00 == 104) { + var_r31->unk34.x = var_r31->unk34.z = 0.0f; + var_r31->unk34.y = 72.0f; + temp_f31 = frandu8() * 360 / 256; + temp_f30 = 0.5 + (rand8() / 256.0) * 1.5; + var_r31->unk34.x = 75.0 * sind(temp_f31); + var_r31->unk34.z = 75.0 * cosd(temp_f31); + var_r31->unk08.x = temp_f30 * sind(temp_f31) * 2.0; + var_r31->unk08.y = 3.0 + (rand8() / 256.0) * 1.5; + var_r31->unk08.z = temp_f30 * cosd(temp_f31) * 2.0; + var_r31->unk40.r = 0xFF; + var_r31->unk40.g = 0xFF; + var_r31->unk40.b = 0xFF; + var_r31->unk40.a = 0x60; + var_r31->unk2C = 50.0f; + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + } + if (var_r31->unk00 < 240) { + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.9f; + var_r31->unk08.z *= 0.9f; + var_r31->unk08.y *= 0.9f; + var_r31->unk40.a = var_r31->unk40.a * 16 / 17; + var_r31->unk08.z *= 0.99f; + var_r31->unk2C += 2.0f; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + if (var_r31->unk40.a <= 3) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31->unk00 += (var_r31->unk00 < 0x8000); + } +} + +void fn_1_9900(omObjData *arg0) +{ + s32 temp_r28; + s32 i; + s32 j; + s32 k; + + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 18)); + omSetTra(arg0, 0.0f, 0.0f, 0.0f); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 17)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 300.0f, -100.0f); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(arg0->model[1], 0); + Hu3DMotionSpeedSet(arg0->model[1], 1.5f); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 16)); + Hu3DModelPosSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(arg0->model[3], 0); + Hu3DMotionSpeedSet(arg0->model[3], 1.5f); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 19)); + Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_LOOP); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 20)); + Hu3DModelPosSet(arg0->model[5], 460.0f, 0.0f, 800.0f); + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[5], Hu3DMotionMaxTimeGet(arg0->model[5])); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 21)); + Hu3DModelPosSet(arg0->model[6], -460.0f, 0.0f, 800.0f); + Hu3DModelAttrReset(arg0->model[6], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[6], Hu3DMotionMaxTimeGet(arg0->model[6])); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 22)); + Hu3DModelAttrSet(arg0->model[7], HU3D_MOTATTR_LOOP); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 23)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[8], DATA_MAKE_NUM(DATADIR_M422, 24)); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[8], DATA_MAKE_NUM(DATADIR_M422, 25)); + for (i = 0; i < 11; i++) { + if (i != 0) { + arg0->model[i + 8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 23)); + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[i + 8], DATA_MAKE_NUM(DATADIR_M422, 24)); + arg0->motion[i + 11] = Hu3DJointMotionFile(arg0->model[i + 8], DATA_MAKE_NUM(DATADIR_M422, 25)); + } + Hu3DModelPosSet(arg0->model[i + 8], i * 100 - 500, 550.0f, 0.0f); + Hu3DMotionSet(arg0->model[i + 8], arg0->motion[0]); + Hu3DModelAttrSet(arg0->model[i + 8], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[i + 8], HU3D_MOTATTR_PAUSE); + Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32)Hu3DMotionMaxTimeGet(arg0->model[i + 8])); + } + arg0->model[19] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 26)); + Hu3DModelPosSet(arg0->model[19], 1800.0f, 0.0f, -22.0f); + Hu3DModelAttrSet(arg0->model[19], HU3D_MOTATTR_LOOP); + arg0->model[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 27)); + Hu3DModelPosSet(arg0->model[20], -1800.0f, 0.0f, -22.0f); + Hu3DModelAttrSet(arg0->model[20], HU3D_MOTATTR_LOOP); + for (i = 0; i < 10; i++) { + for (j = 0; j < 4; j++) { + s32 spD0[] = { DATA_MAKE_NUM(DATADIR_M422, 41), DATA_MAKE_NUM(DATADIR_M422, 42), DATA_MAKE_NUM(DATADIR_M422, 43), + DATA_MAKE_NUM(DATADIR_M422, 44), DATA_MAKE_NUM(DATADIR_M422, 45), DATA_MAKE_NUM(DATADIR_M422, 46), DATA_MAKE_NUM(DATADIR_M422, 47), + DATA_MAKE_NUM(DATADIR_M422, 48), DATA_MAKE_NUM(DATADIR_M422, 49), DATA_MAKE_NUM(DATADIR_M422, 30) }; + s32 sp30[] = { DATA_MAKE_NUM(DATADIR_M422, 30), DATA_MAKE_NUM(DATADIR_M422, 31), DATA_MAKE_NUM(DATADIR_M422, 32), + DATA_MAKE_NUM(DATADIR_M422, 33), DATA_MAKE_NUM(DATADIR_M422, 34), DATA_MAKE_NUM(DATADIR_M422, 35), DATA_MAKE_NUM(DATADIR_M422, 37), + DATA_MAKE_NUM(DATADIR_M422, 36) }; + + temp_r28 = i * 4 + 43 + j; + if (i == 9) { + StructBss3CData *var_r23 = lbl_1_bss_3C[j]->data; + + arg0->model[temp_r28] = Hu3DModelCreateFile(sp30[var_r23->unk08]); + } + else if (j == 0) { + arg0->model[temp_r28] = Hu3DModelCreateFile(spD0[i]); + } + else { + arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); + } + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[temp_r28], 0.0f); + Hu3DMotionSpeedSet(arg0->model[temp_r28], (i != 9) ? 0.9375 : 1.0); + if (i == 9) { + arg0->motion[j + 22] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 38)); + arg0->motion[j + 26] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 39)); + arg0->motion[j + 30] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 40)); + Hu3DMotionSet(arg0->model[temp_r28], arg0->motion[j + 22]); + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_PAUSE); + } + } + if (i <= 8) { + for (k = 0; k < 2; k++) { + arg0->model[i * 2 + 21 + k] = Hu3DModelLink(arg0->model[i * 4 + 43]); + Hu3DModelAttrSet(arg0->model[i * 2 + 21 + k], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } + } + } + for (i = 0; i < 2; i++) { + for (j = 0; j < 10; j++) { + s32 sp28[] = { DATA_MAKE_NUM(DATADIR_M422, 28), DATA_MAKE_NUM(DATADIR_M422, 29) }; + + temp_r28 = i * 10 + 83 + j; + if (j == 0) { + arg0->model[temp_r28] = Hu3DModelCreateFile(sp28[i]); + } + else { + arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); + } + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->model[temp_r28], 1); + } + } + for (i = 0; i < 3; i++) { + for (j = 0; j < 8; j++) { + lbl_1_bss_104[i][j].unk04 = j * 520 / 8; + lbl_1_bss_104[i][j].unk00 = -1; + } + } + for (i = 0; i < 16; i++) { + s32 sp20[] = { 88, 473 }; + s32 sp18[] = { 78, 70 }; + s32 sp90[] = { 0, 0, 42, 22, -20, 2, -54, 0, 0, 55, 35, -7, 15, -51, -65, -37 }; + s32 sp50[] = { 0, 0, 1, 1, 1, 1, -2, 0, 0, 9, 9, 9, 9, -14, 10, 10 }; + + if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 12) || lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { + StructBss3CData *var_r22 = lbl_1_bss_3C[(i == 6) ? 0 : (i == 13) ? 1 : (i == 14) ? 2 : 3]->data; + + lbl_1_data_40[i] = espEntry(lbl_1_data_0[i] + var_r22->unk08, 0, 0); + } + else { + lbl_1_data_40[i] = espEntry(lbl_1_data_0[i], 0, 0); + } + espDrawNoSet(lbl_1_data_40[i], 0); + espDispOff(lbl_1_data_40[i]); + espAttrSet(lbl_1_data_40[i], 1); + espBankSet(lbl_1_data_40[i], 0); + espPriSet(lbl_1_data_40[i], 128 - i); + espPosSet(lbl_1_data_40[i], sp90[i] + sp20[i < 7 ? 0 : 1], sp50[i] + sp18[i < 7 ? 0 : 1]); + switch (i >= 7 ? i - 7 : i) { + case 0: + espTPLvlSet(lbl_1_data_40[i], 0.5f); + espColorSet(lbl_1_data_40[i], 0, 0, 0); + break; + case 5: + espBankSet(lbl_1_data_40[i], 10); + break; + } + } + for (i = 0; i < 4; i++) { + s32 temp_r26 = i + 39; + + arg0->model[temp_r26] = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 3), MEMORY_DEFAULT_NUM)), 40); + Hu3DModelPosSet(arg0->model[temp_r26], 2000.0f, -2000.0f, -2000.0f); + Hu3DModelScaleSet(arg0->model[temp_r26], 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(arg0->model[temp_r26], 3); + Hu3DModelAttrReset(arg0->model[temp_r26], 1); + Hu3DParticleColSet(arg0->model[temp_r26], 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(arg0->model[temp_r26], 5.0f); + Hu3DParticleHookSet(arg0->model[temp_r26], fn_1_9410); + Hu3DParticleCntSet(arg0->model[temp_r26], 45); + } + for (i = 0; i < 4; i++) { + s32 var_r27 = 9; + s32 temp_r24 = 43 + var_r27 * 4 + i; + + lbl_1_data_F0[var_r27][i].unk0C = lbl_1_data_18B4[i][0]; + lbl_1_data_F0[var_r27][i].unk10 = (i == 0 ? 300 : 0); + lbl_1_data_F0[var_r27][i].unk14 = (i == 0 ? 50 : 800); + lbl_1_data_F0[var_r27][i].unk00 = 9; + lbl_1_data_F0[var_r27][i].unk04 = (i == 0 ? 3 : 6); + lbl_1_data_F0[var_r27][i].unk08 = 0; + lbl_1_data_F0[var_r27][i].unk18 = lbl_1_data_F0[var_r27][i].unk1C = lbl_1_data_F0[var_r27][i].unk20 = 0.0f; + Hu3DMotionTimeSet(arg0->model[temp_r24], 0.0f); + Hu3DModelAttrSet(arg0->model[temp_r24], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[temp_r24], 1); + Hu3DModelRotSet(arg0->model[temp_r24], 0.0f, 0.0f, 0.0f); + } + arg0->func = fn_1_3B74; +} + +void fn_1_AC4C(omObjData *arg0) +{ + s32 sp8[] = { 0, 1, 2, 3 }; + StructBss3CData *temp_r31; + s32 var_r27; + s32 j; + s32 i; + + var_r27 = 0; + temp_r31 = arg0->data; + memset(temp_r31, 0, sizeof(*temp_r31)); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == GWPlayerCfg[j].group) { + sp8[var_r27] = j; + var_r27++; + } + } + } + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk04 = sp8[temp_r31->unk00]; + if (temp_r31->unk04 == 4) { + OSReport("m422:wrong player group\n"); + temp_r31->unk04 = temp_r31->unk00; + } + temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (GWPlayerCfg[temp_r31->unk04].iscom ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx); + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + temp_r31->unk14 = rand8(); + temp_r31->unk20 = 0; + arg0->model[0] = CharModelCreate(temp_r31->unk08, temp_r31->unk00 == 0 ? 2 : 2); + Hu3DModelLayerSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(arg0->model[0], 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 50)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[1], 0); + temp_r31->unk18 = 0; + temp_r31->unk1C = -1; + for (i = 0; i < 8; i++) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_A0[i] + (lbl_1_data_C0[i] != 0 ? temp_r31->unk08 : 0)); + } + CharModelVoiceEnableSet(temp_r31->unk08, arg0->motion[6], 0); + Hu3DMotionSet(arg0->model[0], arg0->motion[3]); + arg0->trans.x = lbl_1_data_18B4[temp_r31->unk00][0]; + arg0->trans.y = lbl_1_data_18B4[temp_r31->unk00][1]; + arg0->trans.z = lbl_1_data_18B4[temp_r31->unk00][2]; + arg0->rot.y = lbl_1_data_18B4[temp_r31->unk00][3]; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->rot.x = arg0->rot.z = 0.0f; + arg0->func = fn_1_2FC; +} + +void fn_1_B004(omObjData *arg0) +{ + lbl_1_bss_34 = 1000; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_89E0; +} + +void ObjectSetup(void) +{ + omObjData *var_r30; + s32 i; + + OSReport("******* M422 ObjectSetup *********\n"); + HuAudSndGrpSet(47); + lbl_1_bss_30 = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_30); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 1676.6f; + Center.x = 690.0f; + Center.y = 1340.0f; + Center.z = 1380.0f; + CRot.x = -50.8125f; + CRot.y = 40.0f; + CRot.z = 0.0f; + CZoom = 2126.6f; + Center.x = 700.0f; + Center.y = 870.0f; + Center.z = 1320.0f; + CRot.x = -37.25f; + CRot.y = 40.0f; + CRot.z = 0.0f; + { + Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; + Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_24 = Hu3DGLightCreateV(&sp18, &spC, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_24, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_24); + lbl_1_bss_2E = -1; + lbl_1_bss_20 = -1; + lbl_1_bss_38 = omAddObjEx(lbl_1_bss_30, 101, 103, 34, 1, fn_1_9900); + for (i = 0; i < 4; i++) { + var_r30 = lbl_1_bss_3C[i] = omAddObjEx(lbl_1_bss_30, 100, 2, 8, 0, fn_1_AC4C); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss3CData), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_4C = omAddObjEx(lbl_1_bss_30, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_30, 102, 0, 0, -1, fn_1_B004); +} + +void fn_1_B480(omObjData *arg0) +{ + StructBss3CData *var_r30; + s32 i; + + if (WipeStatGet() == 0) { + for (i = 0; i < 4; i++) { + var_r30 = lbl_1_bss_3C[i]->data; + CharModelKill(var_r30->unk08); + } + if (lbl_1_bss_2E >= 0) { + MGSeqKill(lbl_1_bss_2E); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c new file mode 100755 index 00000000..4590b4a0 --- /dev/null +++ b/src/REL/m423Dll/main.c @@ -0,0 +1,5676 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +#define frand7() (frand() & 0x7F) + +extern u32 GlobalCounter; + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ void *unk10; +} StructBssD0Data; // Size 0x14 + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ Vec unk0C; + /* 0x18 */ float unk18; +} StructData0; // Size 0x1C + +typedef struct { + /* 0x00 */ StructBssD0Data *unk00; + /* 0x04 */ AnimData *unk04; +} StructM423_00; // Size 8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ Vec unk08; +} StructM423_01; // Size 0x14 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ char unk06[2]; + /* 0x08 */ Vec unk08; + /* 0x14 */ Vec *unk14; + /* 0x18 */ Vec *unk18; + /* 0x1C */ GXColor *unk1C; + /* 0x20 */ StructM423_01 *unk20; + /* 0x24 */ float unk24[4]; + /* 0x34 */ u32 unk34; + /* 0x38 */ void *unk38; +} StructM423_02; // Size 0x3C + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ StructM423_02 *unk04; +} StructM423_03; // Size 8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ Vec unk04; + /* 0x10 */ char unk10[8]; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[0xC]; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ Vec unk38; + /* 0x44 */ GXColor unk44; + /* 0x48 */ s32 unk48; +} StructM423_04; // Size 0x4C + +typedef struct struct_m423_05 { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x00 */ char unk04[0x1C]; + /* 0x20 */ u8 unk20; + /* 0x21 */ u8 unk21; + /* 0x22 */ u8 unk22; + /* 0x23 */ s8 unk23; + /* 0x24 */ char unk24[2]; + /* 0x26 */ s16 unk26; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ u32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ AnimData *unk38; + /* 0x3C */ StructM423_04 *unk3C; + /* 0x40 */ Vec *unk40; + /* 0x44 */ float (*unk44)[2]; + /* 0x48 */ void *unk48; + /* 0x4C */ void *unk4C; + /* 0x50 */ ModelData *unk50; +} StructM423_05; // Size 0x54 + +typedef struct { + /* 0x00 */ float unk00; + /* 0x04 */ float unk04; + /* 0x08 */ char unk08[4]; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ char unk14[4]; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ char unk20[4]; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ char unk2C[4]; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ char unk38[4]; +} StructM423_08; // Size 0x3C + +typedef struct { + /* 0x00 */ float unk00; + /* 0x04 */ float unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; +} StructM423_09; // Size 0x28 + +typedef struct { + /* 0x000 */ u16 unk00; + /* 0x002 */ u16 unk02; + /* 0x004 */ float unk04; + /* 0x008 */ float unk08; + /* 0x00C */ float unk0C; + /* 0x010 */ float unk10; + /* 0x014 */ Vec unk14; +} StructM423_0A; // Size 0x20 + +typedef struct { + /* 0x000 */ StructM423_0A unk00[16]; + /* 0x200 */ AnimData *unk200; + /* 0x204 */ s32 unk204; + /* 0x208 */ void *unk208; + /* 0x20C */ StructM423_08 *unk20C; + /* 0x210 */ StructM423_09 *unk210; + /* 0x214 */ GXColor *unk214; + /* 0x218 */ s32 unk218; + /* 0x21C */ s32 unk21C; + /* 0x220 */ void *unk220; +} StructM423_0B; // Size 0x224 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10[24]; + /* 0x070 */ s32 unk70[24][3]; + /* 0x190 */ s16 unk190[10][2]; +} StructM423_0C; // Size 0x1B8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s16 unk10; + /* 0x12 */ s16 unk12; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ Vec unk2C; + /* 0x38 */ Vec unk38; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ Vec unk50; + /* 0x5C */ Vec unk5C; + /* 0x68 */ Vec unk68; + /* 0x74 */ Vec unk74; + /* 0x80 */ Vec unk80; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; +} StructBssA8Data; // Size 0x94 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; +} StructBssCCData; // Size 0xC + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s16 unk10; + /* 0x12 */ s16 unk12; + /* 0x14 */ s16 unk14; + /* 0x16 */ s16 unk16; + /* 0x18 */ s16 unk18; + /* 0x1A */ char unk1A[2]; + /* 0x1C */ float unk1C[15]; + /* 0x58 */ s32 unk58; + /* 0x5C */ s32 unk5C; + /* 0x60 */ float unk60; + /* 0x64 */ s32 unk64; + /* 0x68 */ s32 unk68; + /* 0x6C */ s32 unk6C; + /* 0x70 */ s32 unk70; + /* 0x74 */ s32 unk74; + /* 0x78 */ float unk78; + /* 0x7C */ float unk7C; + /* 0x80 */ s32 unk80; + /* 0x84 */ s32 unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ s32 unk90; + /* 0x94 */ s32 unk94; + /* 0x98 */ s32 unk98; + /* 0x9C */ s32 unk9C; + /* 0xA0 */ s32 unkA0; + /* 0xA4 */ s32 unkA4; + /* 0xA8 */ float unkA8; + /* 0xAC */ s32 unkAC; + /* 0xB0 */ float unkB0; + /* 0xB4 */ float unkB4; + /* 0xB8 */ float unkB8; + /* 0xBC */ float unkBC; + /* 0xC0 */ float unkC0; + /* 0xC4 */ float unkC4; + /* 0xC8 */ Vec unkC8; + /* 0xD4 */ Vec unkD4; + /* 0xE0 */ float unkE0; + /* 0xE4 */ float unkE4; + /* 0xE8 */ float unkE8; + /* 0xEC */ float unkEC; + /* 0xF0 */ float unkF0; + /* 0xF4 */ float unkF4; +} StructBssBCData; // Size 0xF8 + +typedef struct { + /* 0x000 */ s16 unk00; + /* 0x002 */ s16 unk02; + /* 0x004 */ Vec unk04; + /* 0x010 */ Vec unk10; + /* 0x004 */ char unk1C[0xC]; + /* 0x028 */ float unk28; + /* 0x02C */ float unk2C; + /* 0x030 */ float unk30; + /* 0x034 */ float unk34; + /* 0x038 */ char unk38[4]; + /* 0x03C */ float unk3C; + /* 0x040 */ s32 unk40; + /* 0x044 */ float unk44[12][4]; + /* 0x104 */ Vec unk104[12][3]; +} StructBss94Data; // Size 0x2B4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ AnimData *unk08; +} StructBssA4Data; // Size 0xC + +void fn_1_318(omObjData *arg0); +void fn_1_3B0(omObjData *arg0); +void fn_1_DFC(omObjData *arg0); +void fn_1_E60(omObjData *arg0); +void fn_1_F10(void); +void fn_1_F60(omObjData *arg0); +void fn_1_11A4(omObjData *arg0); +void fn_1_1238(void); +void fn_1_12A0(ModelData *arg0, Mtx arg1); +s32 fn_1_13A0(StructBssD0Data *arg0); +void fn_1_1444(s32 arg0); +void fn_1_14A0(ModelData *arg0, Mtx arg1); +s32 fn_1_18FC(void); +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1); +void fn_1_29B8(s32 arg0); +void fn_1_29BC(ModelData *arg0, Mtx arg1); +void fn_1_2C08(s32 arg0); +void fn_1_34D8(void); +void fn_1_3528(omObjData *arg0); +void fn_1_3898(omObjData *arg0); +void fn_1_3A64(void); +void fn_1_3A8C(void); +void fn_1_3BFC(void); +void fn_1_3FE0(omObjData *arg0); +void fn_1_4778(omObjData *arg0); +void fn_1_5D18(omObjData *arg0); +void fn_1_77D0(void); +s32 fn_1_781C(void); +s32 fn_1_791C(void); +void fn_1_7AA8(s32 arg0); +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2); +void fn_1_8338(omObjData *arg0); +void fn_1_8CB4(omObjData *arg0); +void fn_1_95C4(void); +void fn_1_9614(omObjData *arg0); +void fn_1_98A0(omObjData *arg0); +void fn_1_A9AC(void); +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2); +void fn_1_AC0C(s32 arg0, Vec arg1); +void fn_1_AC80(s32 arg0, Vec arg1); +s32 fn_1_AE64(s32 arg0); +void fn_1_AEE8(s32 arg0); +StructBssA8Data *fn_1_B13C(s32 arg0); +void fn_1_B1A4(void); +s32 fn_1_B304(StructBssA8Data **arg0); +void fn_1_B430(void); +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5); +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); +void fn_1_D930(void); +void fn_1_DA38(omObjData *arg0); +void fn_1_DBC8(void); +s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5); +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6); +void fn_1_E1BC(void); +void fn_1_E290(omObjData *arg0); +void fn_1_E330(void); +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2); +void fn_1_E460(void); +void fn_1_E4EC(omObjData *arg0); +void fn_1_E60C(void); +s32 fn_1_E678(void); +void fn_1_EF44(ModelData *arg0, Mtx arg1); +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2); +void fn_1_F690(void); +void fn_1_F6E0(omObjData *arg0); +void fn_1_FA40(omObjData *arg0); +void fn_1_FF98(void); +void fn_1_10028(s32 arg0); +void fn_1_100DC(void); +void fn_1_10480(omObjData *arg0); +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, float arg3); +void fn_1_106D8(s32 arg0); +void fn_1_10BC8(void); +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); +s16 fn_1_11114(AnimData *arg0, s16 arg1); +void fn_1_11900(ModelData *arg0, Mtx arg1); +float fn_1_121DC(float arg0, float arg1); +float fn_1_122F4(float arg0, float arg1, float arg2); +float fn_1_12544(float arg0, float arg1, float arg2); +void fn_1_1293C(Mtx arg0, Vec *arg1); +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2); +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2); +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3); +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4); +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float *arg4); +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); + +Process *lbl_1_bss_120; +s32 lbl_1_bss_11C; +s32 lbl_1_bss_118; +s32 lbl_1_bss_114; +s32 lbl_1_bss_110; +s32 lbl_1_bss_10C; // unused +s32 lbl_1_bss_108; +s32 lbl_1_bss_104; +s32 lbl_1_bss_100; +s32 lbl_1_bss_FC; +s32 lbl_1_bss_EC[4]; +s32 lbl_1_bss_DC[4]; +s32 lbl_1_bss_D8; +omObjData *lbl_1_bss_D4; +omObjData *lbl_1_bss_D0; +omObjData *lbl_1_bss_CC; +omObjData *lbl_1_bss_BC[4]; +omObjData *lbl_1_bss_B8; +omObjData *lbl_1_bss_AC[3]; +omObjData *lbl_1_bss_A8; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_9C; +omObjData *lbl_1_bss_98; +StructBss94Data *lbl_1_bss_94; +s32 lbl_1_bss_90; +omObjData *lbl_1_bss_8C; +s32 lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +StructBssA8Data *lbl_1_bss_40[15]; +StructBssA8Data *lbl_1_bss_4[15]; +s32 lbl_1_bss_0; + +StructData0 lbl_1_data_0[] + = { { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } }; + +StructData0 lbl_1_data_38[] + = { { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, + { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } }; + +Vec lbl_1_data_150[] = { 0.0f, 0.0f, -850.0f, -250.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 250.0f, 0.0f, 0.0f }; + +Vec lbl_1_data_180[] = { 0.0f, 0.0f, -850.0f, 850.0f, 0.0f, 0.0f, 1200.0f, 0.0f, 0.0f, 1650.0f, 0.0f, 0.0f }; + +Vec lbl_1_data_1B0[] = { { -250.0f, 45.0f, 500.0f }, { 0.0f, 45.0f, 500.0f }, { 250.0f, 45.0f, 500.0f } }; + +Vec lbl_1_data_1D4 = { 1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_1E0 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_1EC = { 0.0f, 0.0f, -450.0f }; + +void ObjectSetup(void) +{ + Process *var_r30; + CameraData *var_r29; + s32 i; + + OSReport("******* M426ObjectSetup *********\n"); + var_r30 = omInitObjMan(50, 0x2000); + lbl_1_bss_120 = var_r30; + omGameSysInit(var_r30); + fn_1_100DC(); + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x30); + lbl_1_bss_D4 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_318); + lbl_1_bss_11C = lbl_1_bss_118 = -1; + lbl_1_bss_D0 = NULL; + lbl_1_bss_CC = NULL; + lbl_1_bss_A8 = NULL; + lbl_1_bss_B8 = NULL; + lbl_1_bss_AC[0] = lbl_1_bss_AC[1] = lbl_1_bss_AC[2] = NULL; + lbl_1_bss_114 = 0; + lbl_1_bss_110 = 0; + lbl_1_bss_108 = 0; + lbl_1_bss_104 = 10; + lbl_1_bss_100 = -1; + lbl_1_bss_FC = 0; + lbl_1_bss_90 = -1; + lbl_1_bss_D8 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_DC[i] = 0; + lbl_1_bss_EC[i] = -1; + } + Hu3DShadowCreate(30.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_1D4, &lbl_1_data_1E0, &lbl_1_data_1EC); + for (i = 0; i < 3; i++) { + var_r29 = &Hu3DCamera[i]; + var_r29->fov = -1.0f; + } +} + +Vec lbl_1_data_21C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_228 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_234 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_318(omObjData *arg0) +{ + s32 var_r31; + + var_r31 = Hu3DGLightCreateV(&lbl_1_data_21C, &lbl_1_data_228, &lbl_1_data_234); + Hu3DGLightStaticSet(var_r31, 1); + Hu3DGLightInfinitytSet(var_r31); + fn_1_F10(); + fn_1_34D8(); + fn_1_3BFC(); + fn_1_95C4(); + fn_1_D930(); + fn_1_E1BC(); + fn_1_E460(); + fn_1_F690(); + HuAudFXPlay(0x618); + arg0->func = fn_1_3B0; +} + +s32 lbl_1_data_238[] = { 0, 4, 2, 3, 1, 5 }; +s32 lbl_1_data_250[] = { 186, 186, 186, 240, 240, 240 }; + +void fn_1_3B0(omObjData *arg0) +{ + CameraData *var_r28; + float var_f31; + s32 temp_r27; + s32 var_r30; + s32 var_r29; + s32 i; + + switch (lbl_1_bss_114) { + case 0: + fn_1_10540(2, 1, 1, 0.0f); + if (++lbl_1_bss_110 > 3) { + for (i = 0; i < 3; i++) { + var_r28 = &Hu3DCamera[i]; + var_r28->fov = 45.0f; + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_114 = 1; + lbl_1_bss_110 = 0; + } + break; + case 1: + fn_1_10540(2, 1, 1, 0.0f); + if (WipeStatGet() == 0) { + lbl_1_bss_114 = 2; + lbl_1_bss_110 = 0; + } + break; + case 2: + if (++lbl_1_bss_110 >= 30.0f) { + lbl_1_bss_114 = 3; + lbl_1_bss_110 = 0; + } + break; + case 3: + var_f31 = lbl_1_bss_110 / 90.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind(90.0f * var_f31); + var_f31 *= var_f31; + fn_1_10540(2, 1, 0, var_f31); + if (++lbl_1_bss_110 >= 90.0f) { + lbl_1_bss_114 = 4; + lbl_1_bss_110 = 0; + } + break; + case 4: + if (fn_1_781C() != 0) { + lbl_1_bss_11C = MGSeqStartCreate(); + lbl_1_bss_114 = 5; + lbl_1_bss_110 = 0; + } + break; + case 5: + if (lbl_1_bss_11C != -1) { + var_r30 = MGSeqStatGet(lbl_1_bss_11C); + if ((var_r30 & 0x10) && lbl_1_bss_D8 == -1) { + lbl_1_bss_D8 = HuAudSeqPlay(0x46); + } + } + else { + var_r30 = 0; + } + if (lbl_1_bss_11C == -1 || var_r30 == 0) { + lbl_1_bss_11C = -1; + lbl_1_bss_114 = 6; + lbl_1_bss_110 = 0; + lbl_1_bss_108 = 1800; + fn_1_10028(1); + lbl_1_bss_118 = MGSeqTimerCreate(lbl_1_bss_108 / 60); + } + break; + case 6: + temp_r27 = lbl_1_data_238[lbl_1_bss_0]; + fn_1_106D8(temp_r27); + if (lbl_1_bss_80 >= lbl_1_data_250[temp_r27] && ++lbl_1_bss_0 > 5) { + lbl_1_bss_0 = 0; + } + var_r29 = (lbl_1_bss_108 + 59) / 60; + if (var_r29 < 0) { + var_r29 = 0; + } + MGSeqParamSet(lbl_1_bss_118, 1, var_r29); + if (--lbl_1_bss_108 < -1 || lbl_1_bss_104 <= 0) { + MGSeqParamSet(lbl_1_bss_118, 2, -1); + lbl_1_bss_118 = -1; + fn_1_B1A4(); + if (lbl_1_bss_D8 != -1) { + HuAudSeqFadeOut(lbl_1_bss_D8, 100); + } + lbl_1_bss_11C = MGSeqFinishCreate(); + lbl_1_bss_114 = 7; + lbl_1_bss_110 = 0; + } + break; + case 7: + if (fn_1_791C() != 0 && (lbl_1_bss_11C == -1 || MGSeqStatGet(lbl_1_bss_11C) == 0)) { + lbl_1_bss_114 = 9; + lbl_1_bss_110 = 0; + } + break; + case 9: + if (lbl_1_bss_104 <= 0) { + lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[0], lbl_1_bss_EC[1], lbl_1_bss_EC[2], -1); + fn_1_7AA8(1); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_EC[3] != GWPlayerCfg[i].character) { + GWPlayerCoinWinAdd(i, 10); + } + } + if (lbl_1_bss_DC[0] > lbl_1_bss_DC[1] && lbl_1_bss_DC[0] > lbl_1_bss_DC[2]) { + i = 0; + } + else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { + i = 1; + } + else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { + i = 2; + } + else { + i = frand() & 3; + if (i > 2) { + i = 2; + } + else if (i < 0) { + i = 0; + } + } + fn_1_106D8(i + 6); + lbl_1_bss_114 = 10; + lbl_1_bss_108 = 0; + } + else { + lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[3], -1, -1, -1); + fn_1_7AA8(0); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_EC[3] == GWPlayerCfg[i].character) { + GWPlayerCoinWinAdd(i, 10); + } + } + fn_1_106D8(9); + lbl_1_bss_114 = 10; + lbl_1_bss_108 = 0; + } + HuAudSStreamPlay(1); + HuAudFXPlay(0x618); + break; + case 10: + fn_1_3A8C(); + if (++lbl_1_bss_108 >= 210.0f) { + lbl_1_bss_11C = -1; + lbl_1_bss_114 = 11; + lbl_1_bss_108 = 0; + } + break; + case 11: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_DFC; + break; + } + fn_1_E60(arg0); +} + +void fn_1_DFC(omObjData *arg0) +{ + if (WipeStatGet() == 0) { + fn_1_1238(); + fn_1_3A64(); + fn_1_77D0(); + fn_1_A9AC(); + fn_1_DBC8(); + fn_1_E330(); + fn_1_E60C(); + fn_1_FF98(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_E60(omObjData *arg0) +{ + s32 var_r30; + + var_r30 = 0; + if (WipeStatGet() != 0 || arg0->func == fn_1_DFC) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudStreamFadeOut(30); + arg0->func = fn_1_DFC; + } +} + +s32 fn_1_F00(void) +{ + return lbl_1_bss_114; +} + +void fn_1_F10(void) +{ + lbl_1_bss_D0 = omAddObjEx(lbl_1_bss_120, 0x7F, 8, 0, -1, fn_1_F60); +} + +void fn_1_F60(omObjData *arg0) +{ + StructBssD0Data *temp_r30; + ModelData *temp_r29; + + temp_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r30), MEMORY_DEFAULT_NUM); + memset(temp_r30, 0, sizeof(*temp_r30)); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 0)); + Hu3DModelCameraSet(arg0->model[0], 5); + Hu3DModelShadowMapSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 1)); + Hu3DModelCameraSet(arg0->model[1], 5); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 2)); + Hu3DModelScaleSet(arg0->model[2], 1.125f, 1.0f, 1.0f); + Hu3DModelCameraSet(arg0->model[2], 5); + Hu3DModelShadowSet(arg0->model[2]); + arg0->model[3] = Hu3DHookFuncCreate(fn_1_12A0); + Hu3DModelCameraSet(arg0->model[3], 2); + temp_r29 = &Hu3DData[arg0->model[3]]; + temp_r29->unk_120 = temp_r30; + temp_r30->unk00 = 160; + temp_r30->unk04 = 160; + temp_r30->unk08 = GXGetTexBufferSize(temp_r30->unk00, temp_r30->unk04, 5, 0, 0); + temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32)temp_r29->unk_48); + temp_r30->unk0C = 0.0f; + arg0->model[4] = fn_1_13A0(temp_r30); + Hu3DModelCameraSet(arg0->model[4], 5); + Hu3DModelPosSet(arg0->model[4], 0.0f, 200.0f, -1700.0f); + arg0->model[5] = fn_1_18FC(); + Hu3DModelCameraSet(arg0->model[5], 4); + arg0->func = fn_1_11A4; +} + +void fn_1_11A4(omObjData *arg0) +{ + fn_1_2C08(arg0->model[5]); +} + +void fn_1_11D8(omObjData *arg0) +{ + fn_1_1444(arg0->model[4]); + arg0->model[4] = -1; + fn_1_29B8(arg0->model[5]); + arg0->model[5] = -1; + arg0->func = NULL; +} + +void fn_1_1238(void) +{ + fn_1_11D8(lbl_1_bss_D0); +} + +GXColor lbl_1_data_298 = { 0x00, 0x00, 0x00, 0xFF }; + +void fn_1_12A0(ModelData *arg0, Mtx arg1) +{ + StructBssD0Data *temp_r31; + CameraData *var_r30; + + temp_r31 = arg0->unk_120; + var_r30 = &Hu3DCamera[1]; + if (var_r30->fov <= 0.0f) { + return; + } + GXSetTexCopySrc(0, 0, 320, 240); + GXSetTexCopyDst(temp_r31->unk00, temp_r31->unk04, GX_TF_RGB5A3, GX_TRUE); + GXSetCopyClear(lbl_1_data_298, 0xFFFFFF); + GXCopyTex(temp_r31->unk10, GX_TRUE); + DCFlushRange(temp_r31->unk10, temp_r31->unk08); + GXPixModeSync(); + temp_r31->unk0C = 1; + fn_1_10BC8(); +} + +s32 fn_1_13A0(StructBssD0Data *arg0) +{ + StructM423_00 *var_r31; + ModelData *temp_r30; + s32 var_r29; + + var_r29 = Hu3DHookFuncCreate(fn_1_14A0); + temp_r30 = &Hu3DData[var_r29]; + var_r31 = temp_r30->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r30->unk_48); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk00 = arg0; + var_r31->unk04 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 21), MEMORY_DEFAULT_NUM)); + return var_r29; +} + +void fn_1_1444(s32 arg0) +{ + StructM423_00 *var_r31; + ModelData *var_r30; + + if (arg0 >= 0) { + var_r30 = &Hu3DData[arg0]; + var_r31 = var_r30->unk_120; + HuSprAnimKill(var_r31->unk04); + } +} + +f32 lbl_1_data_29C[] = { -400.0f, 400.0f, 0.0f, 400.0f, 400.0f, 0.0f, 400.0f, 0.0f, 0.0f, -400.0f, 0.0f, 0.0f }; + +f32 lbl_1_data_2CC[] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.75f, 0.0f, 0.75f }; + +f32 lbl_1_data_2EC[] = { 0.0f, 0.0f, 1.2f, 0.0f, 1.2f, 0.75f, 0.0f, 0.75f }; + +GXColor lbl_1_data_30C[] = { { 0x40, 0x40, 0x40, 0xFF } }; + +GXColor lbl_1_data_310 = { 0x00, 0x00, 0x00, 0x80 }; + +void fn_1_14A0(ModelData *arg0, Mtx arg1) +{ + CameraData *var_r28; + StructM423_00 *temp_r29; + StructBssD0Data *temp_r30; + Mtx spC; + s16 i; + + var_r28 = &Hu3DCamera[2]; + temp_r29 = arg0->unk_120; + temp_r30 = temp_r29->unk00; + if (temp_r30->unk0C != 0) { + if (var_r28->fov <= 0.0f) { + return; + } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + MTXInvXpose(arg1, spC); + GXLoadNrmMtxImm(spC, GX_PNMTX0); + GXSetTevColor(GX_TEVREG2, lbl_1_data_310); + GXSetNumTevStages(2); + GXSetNumTexGens(2); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + if (Hu3DCameraNo != 0) { + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + else { + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_APREV, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + fn_1_11008(temp_r30, temp_r30->unk10, GX_TEXMAP0, GX_CLAMP, 0, 1); + HuSprTexLoad(temp_r29->unk04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_data_29C, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, lbl_1_data_30C, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, lbl_1_data_2CC, 8); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX1, lbl_1_data_2EC, 8); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for (i = 0; i < 4; i++) { + GXPosition1x16(i); + GXColor1x16(0); + GXTexCoord1x16(i); + GXTexCoord1x16(i); + } + GXEnd(); + } +} + +s32 lbl_1_data_314[][2] = { { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } }; + +Vec lbl_1_data_334[] = { { 0.0f, 100.0f, -1100.0f }, { 0.0f, 200.0f, -1000.0f }, { -225.0f, 100.0f, -1000.0f }, { 225.0f, 100.0f, -1000.0f } }; + +s32 fn_1_18FC(void) +{ + ModelData *temp_r30; + StructM423_03 *var_r29; + StructM423_02 *temp_r31; + s32 var_r27; + s32 i; + + var_r27 = Hu3DHookFuncCreate(fn_1_29BC); + temp_r30 = &Hu3DData[var_r27]; + var_r29 = temp_r30->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r29), temp_r30->unk_48); + memset(var_r29, 0, sizeof(*var_r29)); + var_r29->unk00 = var_r27; + var_r29->unk02 = 4; + temp_r31 = var_r29->unk04 = HuMemDirectMallocNum(HEAP_DATA, var_r29->unk02 * sizeof(*temp_r31), temp_r30->unk_48); + memset(temp_r31, 0, var_r29->unk02 * sizeof(*temp_r31)); + for (i = 0; i < var_r29->unk02; i++) { + temp_r31 = &var_r29->unk04[i]; + temp_r31->unk02 = lbl_1_data_314[i][0]; + temp_r31->unk04 = lbl_1_data_314[i][1]; + temp_r31->unk00 = temp_r31->unk02 * temp_r31->unk04; + temp_r31->unk08 = lbl_1_data_334[i]; + temp_r31->unk14 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk14), temp_r30->unk_48); + memset(temp_r31->unk14, 0, temp_r31->unk00 * sizeof(*temp_r31->unk14)); + temp_r31->unk18 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk18), temp_r30->unk_48); + memset(temp_r31->unk18, 0, temp_r31->unk00 * sizeof(*temp_r31->unk18)); + temp_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk1C), temp_r30->unk_48); + memset(temp_r31->unk1C, 0, temp_r31->unk00 * sizeof(*temp_r31->unk1C)); + temp_r31->unk20 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk20), temp_r30->unk_48); + memset(temp_r31->unk20, 0, temp_r31->unk00 * sizeof(*temp_r31->unk20)); + switch (i) { + case 0: + fn_1_1B5C(temp_r30, temp_r31); + break; + case 1: + fn_1_1F5C(temp_r30, temp_r31); + break; + case 2: + fn_1_2290(temp_r30, temp_r31); + break; + default: + fn_1_2624(temp_r30, temp_r31); + break; + } + } + return var_r27; +} + +Vec lbl_1_data_364[] = { { -200.0f, 0.0f, -1100.0f }, { -200.0f, 200.0f, -1050.0f }, { 200.0f, 200.0f, -1050.0f } }; + +GXColor lbl_1_data_388 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + Vec *var_r27; + GXColor *var_r26; + StructM423_01 *var_r28; + void *var_r25; + void *var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + var_r28 = arg1->unk20; + for (i = 0; i < 10; i++) { + var_f30 = 200.0f * (i / 9.0f); + var_f29 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 20; var_r27++, var_r26++, var_r28++, j++) { + var_f31 = -225.0f + 450.0f * (j / 19.0f); + var_r27->x = var_f31; + var_r27->y = var_f30; + var_r27->z = var_f29; + *var_r26 = lbl_1_data_388; + var_r28->unk00 = j; + var_r28->unk02 = i; + if (i == 0 || i == 9 || j == 0 || j == 19) { + var_r28->unk04 = 1; + } + else { + var_r28->unk04 = 0; + } + var_r28->unk06 = 0; + var_r28->unk08.x = var_r28->unk08.y = var_r28->unk08.z = 0.0f; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 19 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 20; j++) { + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16(i * 20 + (j - 1)); + GXColor1x16(i * 20 + (j - 1)); + + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16((i - 1) * 20 + j); + GXColor1x16((i - 1) * 20 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); + fn_1_129F0(&lbl_1_data_364[0], &lbl_1_data_364[1], &lbl_1_data_364[2], arg1->unk24); +} + +GXColor lbl_1_data_3AB = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 7; i++) { + var_f30 = 200.0f; + var_f29 = -900.0f - 150.0f * (i / 6.0f); + for (j = 0; j < 20; var_r27++, var_r26++, j++) { + var_f31 = -225.0f + 450.0f * (j / 19.0f); + var_r27->x = var_f31; + var_r27->y = var_f30; + var_r27->z = var_f29; + *var_r26 = lbl_1_data_3AB; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 6 * 19 * 4); + for (i = 1; i < 7; i++) { + for (j = 1; j < 20; j++) { + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16(i * 20 + (j - 1)); + GXColor1x16(i * 20 + (j - 1)); + + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16((i - 1) * 20 + j); + GXColor1x16((i - 1) * 20 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +GXColor lbl_1_data_3AF = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 10; i++) { + var_f28 = 200.0f * (i / 9.0f); + var_f29 = -225.0f; + var_f30 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 10; var_r27++, var_r26++, j++) { + var_f31 = -900.0f - 200.0f * (j / 9.0f); + if (var_f31 < var_f30) { + var_f31 = var_f30; + } + var_r27->x = var_f29; + var_r27->y = var_f28; + var_r27->z = var_f31; + *var_r26 = lbl_1_data_3AF; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRangeNoSync(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 9 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 10; j++) { + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16(i * 10 + (j - 1)); + GXColor1x16(i * 10 + (j - 1)); + + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16((i - 1) * 10 + j); + GXColor1x16((i - 1) * 10 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +GXColor lbl_1_data_3B3 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 10; i++) { + var_f28 = 200.0f * (i / 9.0f); + var_f29 = 225.0f; + var_f30 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 10; var_r27++, var_r26++, j++) { + var_f31 = -900.0f - 200.0f * (j / 9.0f); + if (var_f31 < var_f30) { + var_f31 = var_f30; + } + var_r27->x = var_f29; + var_r27->y = var_f28; + var_r27->z = var_f31; + *var_r26 = lbl_1_data_3B3; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 9 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 10; j++) { + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16(i * 10 + (j - 1)); + GXColor1x16(i * 10 + (j - 1)); + + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16((i - 1) * 10 + j); + GXColor1x16((i - 1) * 10 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +void fn_1_29B8(s32 arg0) { } + +void fn_1_29BC(ModelData *arg0, Mtx arg1) +{ + StructM423_03 *temp_r30; + StructM423_02 *temp_r31; + Mtx sp8; + s16 i; + + temp_r30 = arg0->unk_120; + GXLoadPosMtxImm(arg1, GX_PNMTX0); + MTXInvXpose(arg1, sp8); + GXLoadNrmMtxImm(sp8, GX_PNMTX0); + GXSetLineWidth(6, GX_TO_ZERO); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (i = 0; i < temp_r30->unk02; i++) { + temp_r31 = &temp_r30->unk04[i]; + if (temp_r31->unk38 && temp_r31->unk34 != 0) { + DCFlushRangeNoSync(temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14)); + DCFlushRangeNoSync(temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C)); + PPCSync(); + GXSetArray(GX_VA_POS, temp_r31->unk14, sizeof(*temp_r31->unk14)); + GXSetArray(GX_VA_CLR0, temp_r31->unk1C, sizeof(*temp_r31->unk1C)); + GXCallDisplayList(temp_r31->unk38, temp_r31->unk34); + } + } +} + +void fn_1_2C08(s32 arg0) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + Vec *var_r25; + Vec *var_r24; + Vec *temp_r27; + Vec *temp_r29; + float temp_f31; + float temp_f28; + float temp_f30; + float var_f29; + float var_f27; + StructM423_02 *temp_r30; + StructM423_01 *var_r28; + StructBssA8Data *var_r31; + StructM423_03 *var_r17; + ModelData *sp20; + ModelData *sp1C; + StructM423_01 *sp18; + s32 var_r20; + s32 temp_r19; + s32 temp_r18; + s32 i; + s32 j; + s32 k; + s32 temp_r21; + s32 sp14; + s32 sp10; + s32 spC; + Mtx sp48; + + sp20 = &Hu3DData[arg0]; + var_r17 = sp20->unk_120; + temp_r30 = var_r17->unk04; + var_r25 = temp_r30->unk14; + var_r24 = temp_r30->unk18; + var_r28 = temp_r30->unk20; + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r31 = lbl_1_bss_A8->data; + for (i = 0; i < temp_r30->unk00; i++, var_r25++, var_r24++, var_r28++) { + if (var_r28->unk04 != 0) { + continue; + } + VECSubtract(var_r24, var_r25, &sp30); + temp_f31 = VECMag(&sp30); + if (temp_f31 >= 0.0f) { + VECScale(&sp30, &sp30, 0.05f); + VECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); + temp_f31 = VECMag(&var_r28->unk08); + if (temp_f31 > 10.0f) { + VECNormalize(&var_r28->unk08, &var_r28->unk08); + VECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); + } + } + VECAdd(var_r25, &var_r28->unk08, var_r25); + VECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); + } + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0 || var_r31->unk0C != 3) { + continue; + } + spC = 0; + VECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); + if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f + && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) { + var_f27 = 0.005f * var_r31->unk38.y; + var_f29 = -900.0f - (150.0f + var_f27 * 50.0f); + if (var_r31->unk38.z - 20.0 < var_f29) { + if (var_r31->unk38.z < 20.0 + (var_f29 - 75.0f)) { + var_r31->unk38.z = 20.0 + (var_f29 - 75.0f); + } + spC = 1; + } + } + if (spC != 0) { + if (var_r31->unk0A == 0 && var_r31->unk08 == 0) { + fn_1_AEE8(i); + } + if (var_r31->unk10 == 0) { + var_r31->unk5C = var_r31->unk50; + var_r31->unk10 = 1; + } + sp1C = &Hu3DData[var_r31->unk00]; + sp24.x = var_r31->unk5C.z; + sp24.z = -var_r31->unk5C.x; + sp24.y = 0.0f; + temp_f31 = 0.05 * VECMag(&sp24); + if (temp_f31 > 0.00001f) { + MTXRotAxisRad(sp48, &sp24, temp_f31); + MTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); + } + temp_f31 = 0.0133333336f * fabs(var_f29 - (var_r31->unk38.z - 20.0)); + var_r31->unk50.z += temp_f31 * 0.4f; + VECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); + var_r31->unk50.y *= 0.0f; + var_r31->unk50.x *= 0.75f; + sp14 = (var_r31->unk38.x - -225.0f) / 22.5f; + sp10 = var_r31->unk38.y / 20.0f; + var_r20 = sp14 + sp10 * temp_r30->unk02; + var_r25 = &temp_r30->unk14[var_r20]; + var_r24 = &temp_r30->unk18[var_r20]; + var_r28 = &temp_r30->unk20[var_r20]; + temp_f28 = var_r24->z - (var_r31->unk38.z - 20.0); + sp3C = var_r31->unk38; + if (temp_f28 < 0.0f) { + continue; + } + for (j = -19; j < 20; j++) { + for (k = -19; k < 20; k++) { + temp_r19 = sp14 + k; + temp_r18 = sp10 + j; + temp_r21 = temp_r19 + temp_r18 * temp_r30->unk02; + if (temp_r19 < 0 || temp_r19 >= temp_r30->unk02 || temp_r18 < 0 || temp_r18 >= temp_r30->unk04 || temp_r21 >= temp_r30->unk00) { + continue; + } + sp18 = &temp_r30->unk20[temp_r21]; + if (sp18->unk04 != 0) { + continue; + } + temp_r29 = &temp_r30->unk14[temp_r21]; + temp_r27 = &temp_r30->unk18[temp_r21]; + VECSubtract(&sp3C, temp_r29, &sp30); + sp30.z = 0.0f; + temp_f31 = VECMag(&sp30); + if (temp_f31 > 400.0f) { + continue; + } + if (temp_f31 > 20.0) { + temp_f30 = 0.0025f * (400.0f - temp_f31); + temp_f30 = temp_f30 * temp_f30; + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); + temp_r29->x += 0.5f * (temp_r27->x + sp30.x - temp_r29->x); + temp_r29->y += 0.5f * (temp_r27->y + sp30.y - temp_r29->y); + temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); + } + else { + temp_f30 = cosd(0.0025f * temp_f31 * 90.0f); + if (temp_f31 != 0.0f) { + VECNormalize(&sp30, &sp30); + } + else { + sp30.x = sp30.y = sp30.z = 0.0f; + } + VECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); + temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); + } + } + } + } + else { + var_r31->unk10 = 0; + } + } + DCFlushRangeNoSync(temp_r30->unk14, temp_r30->unk00 * sizeof(*temp_r30->unk14)); + PPCSync(); +} + +void fn_1_34D8(void) +{ + lbl_1_bss_CC = omAddObjEx(lbl_1_bss_120, 0x81, 20, 6, -1, fn_1_3528); +} + +Vec lbl_1_data_3B8[] = { -1300.0f, 300.0f, -2350.0f, -800.0f, 200.0f, -2250.0f, 800.0f, 200.0f, -2250.0f, 1300.0f, 300.0f, -2350.0f, -1000.0f, 300.0f, + -2350.0f, 1000.0f, 300.0f, -2350.0f, -1200.0f, 400.0f, -2450.0f, -800.0f, 400.0f, -2450.0f, 800.0f, 400.0f, -2450.0f, 1200.0f, 400.0f, -2450.0f, + -1400.0f, 200.0f, -2250.0f, 1400.0f, 200.0f, -2250.0f, -1400.0f, 400.0f, -2450.0f, 1400.0f, 400.0f, -2450.0f, -900.0f, 500.0f, -2550.0f, 900.0f, + 500.0f, -2550.0f, -1200.0f, 500.0f, -2550.0f, 1200.0f, 500.0f, -2550.0f, -1100.0f, 200.0f, -2250.0f, 1100.0f, 200.0f, -2250.0f }; + +s32 lbl_1_data_4A8[] = { 0, 1, 0, 1, 2, 2, 1, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 1, 0 }; + +s32 lbl_1_data_4FC[] = { DATA_MAKE_NUM(DATADIR_M423, 12), DATA_MAKE_NUM(DATADIR_M423, 15), DATA_MAKE_NUM(DATADIR_M423, 18) }; + +s32 lbl_1_data_508[] = { DATA_MAKE_NUM(DATADIR_M423, 13), DATA_MAKE_NUM(DATADIR_M423, 14), DATA_MAKE_NUM(DATADIR_M423, 16), + DATA_MAKE_NUM(DATADIR_M423, 17), DATA_MAKE_NUM(DATADIR_M423, 19), DATA_MAKE_NUM(DATADIR_M423, 20) }; + +s16 lbl_1_data_520[] = { 0, 2, 4 }; + +void fn_1_3528(omObjData *arg0) +{ + float var_f30; + float var_f29; + float temp_f31; + StructBssCCData *var_r30; + s32 temp_r27; + s32 var_r28; + s32 i; + + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(*var_r30), MEMORY_DEFAULT_NUM); + memset(var_r30, 0, 20 * sizeof(*var_r30)); + for (i = 0; i < 6; i++) { + arg0->motion[i] = Hu3DMotionCreateFile(lbl_1_data_508[i]); + } + for (i = 0; i < 20; i++, var_r30++) { + temp_r27 = lbl_1_data_4A8[i]; + var_r30->unk00 = temp_r27; + var_r30->unk02 = 0; + var_r30->unk04 = 0; + var_r30->unk08 = 0; + var_r30->unk0A = 0; + var_r30->unk06 = 210.0f + (1.0f / 127) * frand7() * 60.0f; + var_f30 = -lbl_1_data_3B8[i].x; + var_f29 = -lbl_1_data_3B8[i].z; + temp_f31 = atan2d(var_f30, var_f29); + var_r28 = Hu3DModelCreateFile(lbl_1_data_4FC[temp_r27]); + arg0->model[i] = var_r28; + Hu3DModelCameraSet(var_r28, 4); + Hu3DModelPosSet(var_r28, lbl_1_data_3B8[i].x, lbl_1_data_3B8[i].y, lbl_1_data_3B8[i].z); + if (var_r30->unk00 != 1) { + Hu3DModelRotSet(var_r28, 0.0f, temp_f31, 0.0f); + } + else { + Hu3DModelRotSet(var_r28, 10.0f, temp_f31, 0.0f); + } + Hu3DModelScaleSet(var_r28, 1.8f, 1.8f, 1.8f); + Hu3DMotionSet(arg0->model[i], arg0->motion[lbl_1_data_520[var_r30->unk00]]); + if ((i >= 14 && i <= 17) || i == 11 || i == 10) { + Hu3DModelAttrSet(var_r28, 1); + } + } + arg0->stat |= 0x100; + arg0->func = fn_1_3898; +} + +s16 lbl_1_data_526[] = { 0, 2, 4 }; +s16 lbl_1_data_52C[] = { 1, 3, 5, 0 }; + +void fn_1_3898(omObjData *arg0) +{ + StructBssCCData *var_r31; + s32 var_r28; + s32 i; + + var_r31 = arg0->data; + for (i = 0; i < 20; i++, var_r31++) { + var_r28 = 0; + if (var_r31->unk06 > 0) { + var_r28 = 1; + var_r31->unk06--; + } + else if (var_r31->unk0A > 0) { + if (var_r31->unk08 > 0) { + var_r31->unk08--; + } + else if (var_r31->unk0A > 0) { + var_r28 = 1; + var_r31->unk0A--; + } + else { + var_r31->unk08 = 0; + var_r31->unk0A = 0; + } + } + if (var_r28 != var_r31->unk02 && Hu3DMotionShiftIDGet(arg0->model[i]) == -1) { + var_r31->unk02 = var_r28; + if (var_r31->unk02 == 0) { + Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_526[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + else { + Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_52C[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + } +} + +void fn_1_3A58(omObjData *arg0) +{ + arg0->func = NULL; +} + +void fn_1_3A64(void) +{ + fn_1_3A58(lbl_1_bss_CC); +} + +void fn_1_3A8C(void) +{ + omObjData *var_r29; + StructBssCCData *var_r31; + s32 i; + + if (lbl_1_bss_CC == NULL) { + return; + } + var_r29 = lbl_1_bss_CC; + var_r31 = var_r29->data; + for (i = 0; i < 20; i++, var_r31++) { + if (var_r31->unk06 > 0 || var_r31->unk0A > 0) { + var_r31->unk08 = 0; + } + else { + var_r31->unk08 = (1.0f / 127) * frand7() * 0.25f * 60.0f; + } + var_r31->unk0A = ((1.0f / 127) * frand7() + 2.0f) * 60.0f; + } +} + +void fn_1_3BFC(void) +{ + s32 sp8[4]; + s32 temp_r28; + s32 temp_r27; + s32 var_r25; + s32 var_r26; + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp8[i] = -1; + } + for (i = 0, var_r29 = 0; i < 4; i++) { + if (GWPlayerCfgGroupGet(i) == 0) { + sp8[3] = i; + } + else { + sp8[var_r29] = i; + var_r29++; + } + } + for (i = 0; i < 4; i++) { + if (sp8[i] == -1) { + break; + } + } + if (i < 4) { + sp8[0] = 1; + sp8[1] = 2; + sp8[2] = 3; + sp8[3] = 0; + } + else { + for (i = 0; i < 32; i++) { + temp_r28 = (s16)(frand() & 0xFFF) % 3; + temp_r27 = (s16)(frand() & 0xFFF) % 3; + if (temp_r28 != temp_r27) { + var_r29 = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r28]; + sp8[temp_r28] = var_r29; + } + } + } + var_r25 = 1; + for (i = 0, var_r26 = 0; i < 4; i++) { + lbl_1_bss_BC[i] = omAddObjEx(lbl_1_bss_120, 0x40, 4, 11, -1, fn_1_3FE0); + lbl_1_bss_BC[i]->work[0] = i; + if (i == sp8[3]) { + lbl_1_bss_EC[3] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; + lbl_1_bss_BC[i]->work[1] = 0; + lbl_1_bss_BC[i]->work[2] = 0; + if (GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { + lbl_1_bss_FC = 1; + } + } + else { + lbl_1_bss_EC[var_r26] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; + var_r26++; + lbl_1_bss_BC[i]->work[1] = 1; + for (j = 0; j < 3; j++) { + if (i == sp8[j]) { + break; + } + } + if (j >= 3) { + j = i - 1; + } + lbl_1_bss_BC[i]->work[2] = j; + lbl_1_bss_AC[j] = lbl_1_bss_BC[i]; + if (!GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { + var_r25 = 0; + } + } + } + if (var_r25 != 0) { + lbl_1_bss_FC = 0; + } +} + +u32 lbl_1_data_534[][2] + = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, + { 0, 1 }, { 0, 2 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; + +s32 lbl_1_data_574[] = { DATA_MAKE_NUM(DATADIR_M423, 58), DATA_MAKE_NUM(DATADIR_M423, 26), DATA_MAKE_NUM(DATADIR_M423, 34) }; + +u32 lbl_1_data_580[][2] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; + +s32 lbl_1_data_5D8[] + = { DATA_MAKE_NUM(DATADIR_M423, 42), DATA_MAKE_NUM(DATADIR_M423, 66), DATA_MAKE_NUM(DATADIR_M423, 50), DATA_MAKE_NUM(DATADIR_M423, 74) }; + +void fn_1_3FE0(omObjData *arg0) +{ + float var_f31; + StructBssBCData *temp_r31; + s32 i; + + temp_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); + memset(temp_r31, 0, sizeof(*temp_r31)); + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk02 = GWPlayerCfg[arg0->work[0]].character; + temp_r31->unk04 = GWPlayerCfg[arg0->work[0]].pad_idx; + temp_r31->unk06 = GWPlayerCfg[arg0->work[0]].iscom; + temp_r31->unk08 = GWPlayerCfg[arg0->work[0]].diff; + temp_r31->unk0A = arg0->work[1]; + temp_r31->unk0C = arg0->work[2]; + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk5C = -1; + temp_r31->unk60 = 0.0f; + temp_r31->unk64 = -1; + temp_r31->unk68 = 0; + temp_r31->unk6C = 0; + temp_r31->unk70 = 0; + temp_r31->unk74 = 0; + temp_r31->unk16 = -1; + temp_r31->unk88 = 0.0f; + temp_r31->unk8C = 0.0f; + temp_r31->unk90 = 0; + temp_r31->unk94 = 0; + temp_r31->unk98 = 0; + temp_r31->unk9C = 0; + temp_r31->unkA0 = 0; + temp_r31->unkA4 = 0; + temp_r31->unkA8 = 0.0f; + temp_r31->unkAC = 0; + arg0->model[0] = CharModelCreate(temp_r31->unk02, 4); + Hu3DModelCameraSet(arg0->model[0], 5); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_CURVE_MOTOFF); + CharModelStepTypeSet(temp_r31->unk02, 2); + if (temp_r31->unk0A == 0) { + for (i = 0; i < 11; i++) { + if (lbl_1_data_580[i][1] == -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_580[i][0]); + } + else { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_5D8[lbl_1_data_580[i][1]] + temp_r31->unk02); + } + } + temp_r31->unk16 = 0; + temp_r31->unk18 = 0; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unkB0 = arg0->trans.x = lbl_1_data_150[0].x; + temp_r31->unkB4 = arg0->trans.y = lbl_1_data_150[0].y; + temp_r31->unkB8 = arg0->trans.z = lbl_1_data_150[0].z; + temp_r31->unkBC = lbl_1_data_180[0].x; + temp_r31->unkC0 = lbl_1_data_180[0].y; + temp_r31->unkC4 = lbl_1_data_180[0].z; + temp_r31->unk78 = 0.0f; + temp_r31->unk7C = 0.0f; + temp_r31->unkE0 = temp_r31->unkE4 = temp_r31->unkE8 = 0.0f; + temp_r31->unkEC = temp_r31->unkF0 = temp_r31->unkF4 = 0.0f; + temp_r31->unk7C = 6.5f; + var_f31 = 0.0f; + for (i = 0; i < 1000; i++) { + var_f31 += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + if (var_f31 <= 0.0f) { + break; + } + } + temp_r31->unk80 = i; + temp_r31->unk7C = 10.5f; + var_f31 = 0.0f; + for (i = 0; i < 1000; i++) { + var_f31 += temp_r31->unk7C; + temp_r31->unk7C -= 0.65333337f; + if (var_f31 <= 0.0f) { + break; + } + } + temp_r31->unk84 = i; + arg0->func = fn_1_5D18; + } + else { + for (i = 0; i < 8; i++) { + if (lbl_1_data_534[i][1] == -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_534[i][0]); + } + else { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_574[lbl_1_data_534[i][1]] + temp_r31->unk02); + } + } + temp_r31->unk16 = 0; + temp_r31->unk18 = 0; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unkB0 = lbl_1_data_150[temp_r31->unk0C + 1].x; + temp_r31->unkB4 = lbl_1_data_150[temp_r31->unk0C + 1].y; + temp_r31->unkB8 = lbl_1_data_150[temp_r31->unk0C + 1].z; + temp_r31->unkBC = arg0->trans.x = lbl_1_data_180[temp_r31->unk0C + 1].x; + temp_r31->unkC0 = arg0->trans.y = lbl_1_data_180[temp_r31->unk0C + 1].y; + temp_r31->unkC4 = arg0->trans.z = lbl_1_data_180[temp_r31->unk0C + 1].z; + temp_r31->unk78 = atan2d(lbl_1_data_150[0].x - temp_r31->unkB0, lbl_1_data_150[0].z - temp_r31->unkB8); + temp_r31->unk7C = 0.0f; + temp_r31->unk98 = 0; + temp_r31->unk9C = 300.0f + (1.0f / 127) * frand7() * 60.0f * 15.0f; + if (lbl_1_bss_FC != 0) { + temp_r31->unk08 = 3; + } + arg0->func = fn_1_4778; + } + CharModelMotionDataClose(temp_r31->unk02); +} + +Vec lbl_1_data_5E8 = { 0.0f, 20.0f, 50.0f }; +GXColor lbl_1_data_5F4 = { 0xFF, 0xFF, 0xFF, 0x10 }; +GXColor lbl_1_data_5F8 = { 0xFF, 0xFF, 0xFF, 0x40 }; + +void fn_1_4778(omObjData *arg0) +{ + Mtx sp11C; + Vec sp110; + Vec sp104; + Vec spF8; + float temp_f27; + float temp_f29; + float temp_f30; + float var_f25; + StructBssBCData *temp_r31; + ModelData *temp_r27; + s32 temp_r26; + s16 var_r25; + s16 var_r24; + s16 var_r29; + s16 var_r28; + + temp_r31 = arg0->data; + temp_r27 = &Hu3DData[arg0->model[0]]; + temp_r31->unk0E = HuPadBtn[temp_r31->unk04]; + temp_r31->unk10 = HuPadBtnDown[temp_r31->unk04]; + temp_r31->unk12 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk14 = HuPadStkY[temp_r31->unk04]; + if (fn_1_F00() == 6) { + if (temp_r31->unk06 != 0) { + temp_r31->unk0E &= ~PAD_BUTTON_A; + temp_r31->unk10 &= ~PAD_BUTTON_A; + temp_r31->unk12 = 0; + temp_r31->unk14 = 0; + fn_1_8338(arg0); + } + var_r25 = temp_r31->unk0E; + var_r24 = temp_r31->unk10; + var_r29 = temp_r31->unk12; + var_r28 = temp_r31->unk14; + } + if (fabs(var_r29) < 8.0) { + var_r29 = 0; + } + if (fabs(var_r29) > 80.0) { + var_r29 = 80; + } + if (fabs(var_r28) < 8.0) { + var_r28 = 0; + } + if (fabs(var_r28) > 80.0) { + var_r28 = 80; + } + if (fn_1_F00() != 6) { + var_r29 = var_r28 = 0; + var_r25 = var_r24 = 0; + } + switch (temp_r31->unk18) { + case 0: + if (fn_1_F00() < 3) { + break; + } + spF8.x = temp_r31->unkB0 - arg0->trans.x; + spF8.z = temp_r31->unkB8 - arg0->trans.z; + temp_f29 = VECMagXZ(&spF8); + if (temp_f29 > 25.0f) { + spF8.x = temp_r31->unkB0 - arg0->trans.x; + spF8.z = temp_r31->unkB8 - arg0->trans.z; + temp_f30 = atan2d(spF8.x, spF8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 15.0f); + arg0->trans.x += 25.0 * sind(arg0->rot.y) * 0.5; + arg0->trans.z += 25.0 * cosd(arg0->rot.y) * 0.5; + if (temp_r31->unk16 != 2) { + temp_r31->unk16 = 2; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + } + break; + } + arg0->trans.x = temp_r31->unkB0; + arg0->trans.z = temp_r31->unkB8; + temp_r31->unk18 = 1; + if (temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 1: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 5.0f); + if (fabs(fn_1_121DC(arg0->rot.y, 0.0f)) < 1.0) { + arg0->rot.y = 0.0f; + temp_r31->unk18 = 2; + } + break; + case 2: + temp_r31->unk18 = 3; + break; + case 3: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (fabs(fn_1_121DC(arg0->rot.y, 0.0f)) < 1.0) { + arg0->rot.y = 0.0f; + sp104 = lbl_1_data_5E8; + mtxRot(sp11C, arg0->rot.x, arg0->rot.y, arg0->rot.z); + fn_1_1293C(sp11C, &sp104); + sp104.x += arg0->trans.x; + sp104.y += arg0->trans.y; + sp104.z += arg0->trans.z; + if (fn_1_F00() <= 6 && (temp_r31->unk5C = fn_1_A9D4(temp_r31->unk02, lbl_1_data_1B0[temp_r31->unk0C], sp104)) != -1) { + temp_r31->unk18 = 4; + temp_r31->unk68 = 0; + } + } + break; + case 4: + temp_r26 = fn_1_AE64(temp_r31->unk5C); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (temp_r26 == -1 || temp_r31->unk5C == -1) { + temp_r31->unk18 = 3; + break; + } + if (temp_r26 == 2) { + if (++temp_r31->unk68 >= 6.0f) { + HuAudFXPlay(0x61A); + temp_r31->unk18 = 5; + temp_r31->unk68 = 0; + } + break; + } + if (++temp_r31->unk68 >= 54.0f && temp_r31->unk16 != 3) { + temp_r31->unk16 = 3; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + } + break; + case 5: + temp_f30 = fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)); + if (temp_f30 < 10.0f) { + arg0->rot.y += temp_f30; + } + else { + arg0->rot.y += 10.0f; + } + sp104 = lbl_1_data_5E8; + mtxRot(sp11C, arg0->rot.x, arg0->rot.y, arg0->rot.z); + fn_1_1293C(sp11C, &sp104); + sp104.x += arg0->trans.x; + sp104.y += arg0->trans.y; + sp104.z += arg0->trans.z; + fn_1_AC0C(temp_r31->unk5C, sp104); + spF8.x = 0.0f; + spF8.y = 1.0f; + spF8.z = 1.0f; + sp104.y = 0.0f; + fn_1_DD70(sp104, spF8, 50.0f, -0.5f, 10.0f, 1.0f, lbl_1_data_5F4); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)) < 1.0) { + temp_r31->unkC8 = sp104; + temp_r31->unk18 = 6; + temp_r31->unk68 = 0; + } + break; + case 6: + sp110.x = 0.0125f * var_r29 * 300.0f; + sp110.y = -900.0f; + sp110.z = -900.0f; + temp_f30 = atan2d(sp110.x - temp_r31->unkC8.x, sp110.z - temp_r31->unkC8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 5.0f); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (var_r24 & PAD_BUTTON_A) { + temp_r31->unk16 = 4; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + temp_r27->unk_88 = 0.5f; + temp_r31->unkD4 = sp110; + temp_r31->unk18 = 7; + temp_r31->unk68 = 0; + } + break; + case 7: + temp_r31->unk68++; + if (temp_r31->unk68 > 90.0f) { + temp_r31->unk68 = 90; + } + temp_f29 = 0.011111111f * temp_r31->unk68; + sp110.x = 0.0125f * var_r29 * 300.0f; + sp110.y = -900.0f; + sp110.z = -900.0f; + temp_f30 = atan2d(sp110.x - temp_r31->unkC8.x, sp110.z - temp_r31->unkC8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 5.0f); + temp_r31->unkD4 = sp110; + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (!(var_r25 & PAD_BUTTON_A)) { + var_f25 = 15.000001f + 30.0f * temp_f29; + temp_r31->unk60 = var_f25; + temp_r31->unk16 = 5; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + temp_r27->unk_88 = 0.5f + 1.5f * temp_f29; + temp_r31->unk18 = 8; + temp_r31->unk68 = 0; + } + break; + case 8: + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (CharModelMotionTimeGet(temp_r31->unk02) >= 10.0f && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + temp_r26 = fn_1_AE64(temp_r31->unk5C); + if (temp_r26 == -1 || temp_r31->unk5C == -1) { + temp_r31->unk18 = 3; + } + VECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); + VECNormalize(&spF8, &spF8); + temp_f27 = 15.0f; + spF8.x *= temp_r31->unk60 * cosd(temp_f27); + spF8.z *= temp_r31->unk60 * cosd(temp_f27); + spF8.y = temp_r31->unk60 * sind(temp_f27); + fn_1_AC80(temp_r31->unk5C, spF8); + temp_r31->unk5C = -1; + HuAudFXPlay(0x61F); + sp104 = temp_r31->unkC8; + sp104.y += 75.0f; + spF8.x = 0.0f; + spF8.y = 1.0f; + spF8.z = 1.0f; + sp104.y = 0.0f; + fn_1_DC24(sp104, spF8, 50.0f, -0.5f, 1.0f, lbl_1_data_5F8); + temp_f29 = (temp_r31->unk60 - 15.000001f) / 30.0f; + if (temp_f29 > 0.66f) { + HuAudFXPlay(0x61B); + } + else if (temp_f29 > 0.33f) { + HuAudFXPlay(0x61C); + } + else { + HuAudFXPlay(0x61D); + } + temp_r31->unk18 = 9; + temp_r31->unk68 = 0; + } + break; + case 9: + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (++temp_r31->unk68 >= 12.0f) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 3; + temp_r31->unk68 = 0; + } + break; + case 10: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 11: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 6) { + temp_r31->unk16 = 6; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + case 12: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 7) { + temp_r31->unk16 = 7; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + } +} + +GXColor lbl_1_data_630 = { 0xFF, 0xFF, 0xFF, 0x14 }; + +void fn_1_5D18(omObjData *arg0) +{ + Vec sp60; + Vec sp54; + Vec sp48; + float var_f30; + float var_f31; + float var_f29; + StructBssBCData *temp_r31; + ModelData *temp_r27; + s16 var_r26; + s16 var_r25; + s16 var_r28; + s16 var_r24; + s16 i; + + temp_r31 = arg0->data; + temp_r27 = &Hu3DData[arg0->model[0]]; + temp_r31->unk0E = HuPadBtn[temp_r31->unk04]; + temp_r31->unk10 = HuPadBtnDown[temp_r31->unk04]; + temp_r31->unk12 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk14 = HuPadStkY[temp_r31->unk04]; + if (fn_1_F00() == 6) { + if (temp_r31->unk06 != 0) { + temp_r31->unk0E &= ~PAD_BUTTON_A; + temp_r31->unk10 &= ~PAD_BUTTON_A; + temp_r31->unk12 = 0; + temp_r31->unk14 = 0; + fn_1_8CB4(arg0); + } + var_r28 = temp_r31->unk12; + var_r24 = temp_r31->unk14; + } + if (fabs(var_r28) < 8.0) { + var_r28 = 0; + } + if (fabs(var_r28) > 80.0) { + var_r28 = 80; + } + if (fabs(var_r24) < 8.0) { + var_r24 = 0; + } + if (fabs(var_r24) > 80.0) { + var_r24 = 80; + } + switch (temp_r31->unk18) { + case 0: + if (fn_1_F00() >= 6) { + temp_r31->unk18 = 1; + } + break; + case 1: + if (fabs(var_r28) > 8.0) { + var_f30 = 0.125f * var_r28; + } + else { + var_f30 = 0.0f; + } + temp_r31->unk1C[temp_r31->unk58] = var_f30; + if (++temp_r31->unk58 >= 15) { + temp_r31->unk58 = 0; + } + for (i = 0, var_f30 = 0.0f; i < 15; i++) { + var_f30 += temp_r31->unk1C[i]; + } + var_f30 *= 0.06666667f; + if (var_f30 > 25.0f) { + var_f30 = 25.0f; + } + else if (var_f30 < -25.0f) { + var_f30 = -25.0f; + } + if (0.0f == var_f30) { + var_r25 = 0; + } + else if (fabs(var_f30) < 10.0) { + var_r25 = 1; + } + else { + var_r25 = 2; + } + if (temp_r31->unk16 != var_r25 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + temp_r31->unk16 = var_r25; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (temp_r31->unk16 == 1 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + var_f31 = fabs(0.1f * var_f30); + if (var_f31 < 0.25f) { + var_f31 = 0.25f; + } + CharModelMotionSpeedSet(temp_r31->unk02, var_f31); + } + if (var_r28 == 0.0f) { + var_f29 = 0.0f; + } + else if (var_r28 < 0.0f) { + var_f29 = -90.0f; + } + else { + var_f29 = 90.0f; + } + if (arg0->rot.y < var_f29 && (arg0->rot.y += 20.0f) > var_f29) { + arg0->rot.y = var_f29; + } + if (arg0->rot.y > var_f29 && (arg0->rot.y -= 20.0f) < var_f29) { + arg0->rot.y = var_f29; + } + arg0->trans.x += var_f30; + arg0->trans.y = 0.0f; + arg0->trans.z = temp_r31->unkB8; + if (arg0->trans.x < -225.0f) { + arg0->trans.x = -225.0f; + } + if (arg0->trans.x > 225.0f) { + arg0->trans.x = 225.0f; + } + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 9; + temp_r31->unk68 = 0; + } + else if (temp_r31->unk10 & PAD_BUTTON_A) { + if (var_r28 > 0) { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 3; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 6.5f; + temp_r31->unk68 = 0; + arg0->rot.y = 90.0f; + i = 99; + if ((var_r26 = fn_1_B304(lbl_1_bss_40)) != 0) { + for (i = 0; i < var_r26; i++) { + if (lbl_1_bss_40[0]->unk1C < lbl_1_bss_40[0]->unk14 || lbl_1_bss_40[0]->unk1C - lbl_1_bss_40[0]->unk14 > 6.0f) { + continue; + } + if (lbl_1_bss_40[0]->unk1C < 36.0f) { + var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; + } + else { + var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; + } + if (var_f31 < -100.0f) { + continue; + } + var_f31 = fabs(var_f31); + if (var_f31 >= 300.0f) { + temp_r31->unk8C = 13.5f; + } + else if (var_f31 <= 100.0f) { + temp_r31->unk8C = 6.5f; + } + else { + temp_r31->unk8C = 10.0f; + } + } + } + if (i >= var_r26) { + temp_r31->unk8C = 10.0f; + } + temp_r31->unk18 = 2; + } + else if (var_r28 < 0) { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 5; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 6.5f; + temp_r31->unk68 = 0; + arg0->rot.y = -90.0f; + i = 99; + if ((var_r26 = fn_1_B304(lbl_1_bss_40)) != 0) { + for (i = 0; i < var_r26; i++) { + if (lbl_1_bss_40[0]->unk1C < lbl_1_bss_40[0]->unk14 || lbl_1_bss_40[0]->unk1C - lbl_1_bss_40[0]->unk14 > 6.0f) { + continue; + } + if (lbl_1_bss_40[0]->unk1C < 36.0f) { + var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; + } + else { + var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; + } + if (var_f31 > 100.0f) { + continue; + } + var_f31 = fabs(var_f31); + if (var_f31 >= 300.0f) { + temp_r31->unk8C = 13.5f; + } + else if (var_f31 <= 100.0f) { + temp_r31->unk8C = 6.5f; + } + else { + temp_r31->unk8C = 10.0f; + } + } + } + if (i >= var_r26) { + temp_r31->unk8C = 10.0f; + } + temp_r31->unk18 = 4; + } + else { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 7; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 10.5f; + temp_r31->unk68 = 0; + arg0->rot.y = 0.0f; + temp_r31->unk18 = 7; + } + } + break; + case 2: + arg0->trans.x += temp_r31->unk8C; + if (arg0->trans.x > 225.0f) { + arg0->trans.x = 225.0f; + } + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + temp_r31->unk68++; + if (temp_r31->unk68 == temp_r31->unk80 - 12.0f) { + temp_r31->unk16 = 4; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + if (arg0->trans.y <= 0.0f) { + for (i = 0; i < 6; i++) { + sp48.x = sind(-90.0f + 30.0f * i); + sp48.z = cosd(-90.0f + 30.0f * i); + sp48.y = 0.0f; + sp54.x = 100.0f * sp48.x * 0.01f; + sp54.z = 100.0f * sp48.z * 0.01f; + sp54.y = 1.0f; + sp60.x = arg0->trans.x + 100.0f * sp48.x * 0.2; + sp60.z = arg0->trans.z + 100.0f * sp48.z * 0.2; + sp60.y = 0.0f; + fn_1_DD70(sp60, sp54, 50.0f, -0.25f, 20.0f, 0.5f, lbl_1_data_630); + } + arg0->trans.y = 0.0f; + temp_r31->unk18 = 3; + } + break; + case 3: + if (CharModelMotionEndCheck(temp_r31->unk02) && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 6; + temp_r31->unkAC = 0; + } + break; + case 4: + arg0->trans.x -= temp_r31->unk8C; + if (arg0->trans.x < -225.0f) { + arg0->trans.x = -225.0f; + } + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + temp_r31->unk68++; + if (temp_r31->unk68 == temp_r31->unk80 - 12.0f) { + temp_r31->unk16 = 6; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + if (arg0->trans.y <= 0.0f) { + for (i = 0; i < 6; i++) { + sp48.x = sind(-90.0f + 30.0f * i); + sp48.z = cosd(-90.0f + 30.0f * i); + sp48.y = 0.0f; + sp54.x = 100.0f * sp48.x * 0.01f; + sp54.z = 100.0f * sp48.z * 0.01f; + sp54.y = 1.0f; + sp60.x = arg0->trans.x + 100.0f * sp48.x * 0.2; + sp60.z = arg0->trans.z + 100.0f * sp48.z * 0.2; + sp60.y = 0.0f; + fn_1_DD70(sp60, sp54, 50.0f, -0.25f, 20.0f, 0.5f, lbl_1_data_630); + } + arg0->trans.y = 0.0f; + temp_r31->unk18 = 5; + } + break; + case 5: + if (CharModelMotionEndCheck(temp_r31->unk02) && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 6; + temp_r31->unkAC = 0; + } + break; + case 6: + if (++temp_r31->unkAC > 0.0f) { + temp_r31->unkAC = 0; + temp_r31->unk18 = 1; + } + break; + case 7: + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.65333337f; + temp_r31->unk68++; + if (arg0->trans.y <= 0.0f) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + arg0->trans.y = 0.0f; + temp_r31->unk68 = 0; + temp_r31->unk18 = 8; + } + break; + case 8: + if (++temp_r31->unk68 > 12.0f) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 1; + } + break; + case 9: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 1) { + temp_r31->unk16 = 1; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 == 1) { + arg0->trans.z += 5.0f; + } + if (arg0->trans.z > lbl_1_data_150->z + 100.0f) { + temp_r31->unk18 = 10; + } + break; + case 10: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 11: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 9) { + temp_r31->unk16 = 9; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + case 12: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 10) { + temp_r31->unk16 = 10; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + } + lbl_1_bss_B8 = arg0; + temp_r31->unkEC = arg0->trans.x - temp_r31->unkE0; + temp_r31->unkF0 = arg0->trans.y - temp_r31->unkE4; + temp_r31->unkF4 = arg0->trans.z - temp_r31->unkE8; + temp_r31->unkE0 = arg0->trans.x; + temp_r31->unkE4 = arg0->trans.y; + temp_r31->unkE8 = arg0->trans.z; +} + +void fn_1_77C4(omObjData *arg0) +{ + arg0->func = NULL; +} + +void fn_1_77D0(void) +{ + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_77C4(lbl_1_bss_BC[i]); + } +} + +s32 fn_1_781C(void) +{ + omObjData *temp_r29; + StructBssBCData *temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + temp_r29 = lbl_1_bss_BC[i]; + temp_r31 = temp_r29->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk18 != 0 || fabs(fn_1_121DC(temp_r29->rot.y, 0.0f)) > 1.0) { + break; + } + } + else { + if (temp_r31->unk18 < 5) { + break; + } + } + } + if (i >= 4) { + return 1; + } + return 0; +} + +s32 fn_1_791C(void) +{ + omObjData *temp_r30; + StructBssBCData *temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + temp_r30 = lbl_1_bss_BC[i]; + temp_r31 = temp_r30->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { + break; + } + } + else { + if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { + break; + } + } + } + if (i >= 4) { + return 1; + } + return 0; +} + +void fn_1_7AA8(s32 arg0) +{ + omObjData *var_r29; + StructBssBCData *temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + var_r29 = lbl_1_bss_BC[i]; + temp_r31 = var_r29->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk0A == arg0) { + temp_r31->unk18 = 11; + } + else { + temp_r31->unk18 = 12; + } + } + else { + if (temp_r31->unk0A == arg0) { + temp_r31->unk18 = 11; + } + else { + temp_r31->unk18 = 12; + } + } + } +} + +s32 fn_1_7B48(Vec *arg0, Vec *arg1, Vec *arg2, float arg3) +{ + Vec spA8[4]; + Vec sp78[4]; + Vec sp48[4]; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f28; + float var_f30; + float var_f27; + float var_f26; + omObjData *temp_r31; + StructBssBCData *temp_r28; + ModelData *sp8; + + if (lbl_1_bss_B8 == NULL) { + return 0; + } + temp_r31 = lbl_1_bss_B8; + temp_r28 = temp_r31->data; + sp8 = &Hu3DData[temp_r31->model[0]]; + *arg2 = *arg1; + switch (temp_r28->unk18) { + case 2: + case 4: + var_f31 = 150.0f; + var_f28 = 130.0f; + var_f30 = 60.000004f; + var_f27 = 130.0f; + break; + default: + var_f31 = 100.0f; + var_f28 = 130.0f; + var_f30 = 60.000004f; + var_f27 = 0.0f; + break; + } + sp78[0].x = temp_r31->trans.x - 0.5f * var_f31; + sp78[0].y = temp_r31->trans.y + var_f28; + sp78[0].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[1].x = temp_r31->trans.x + 0.5f * var_f31; + sp78[1].y = temp_r31->trans.y + var_f28; + sp78[1].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[2].x = temp_r31->trans.x + 0.5f * var_f31; + sp78[2].y = temp_r31->trans.y - var_f27; + sp78[2].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[3].x = temp_r31->trans.x - 0.5f * var_f31; + sp78[3].y = temp_r31->trans.y - var_f27; + sp78[3].z = temp_r31->trans.z + 0.5f * var_f30; + spA8[0].x = temp_r31->trans.x + 0.5f * var_f31; + spA8[0].y = temp_r31->trans.y + var_f28; + spA8[0].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[1].x = temp_r31->trans.x - 0.5f * var_f31; + spA8[1].y = temp_r31->trans.y + var_f28; + spA8[1].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[2].x = temp_r31->trans.x - 0.5f * var_f31; + spA8[2].y = temp_r31->trans.y - var_f27; + spA8[2].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[3].x = temp_r31->trans.x + 0.5f * var_f31; + spA8[3].y = temp_r31->trans.y - var_f27; + spA8[3].z = temp_r31->trans.z - 0.5f * var_f30; + VECNormalize(arg1, &spC); + VECScale(&spC, &spC, arg3); + VECAdd(arg0, arg1, &sp30); + VECAdd(arg0, arg1, &sp24); + VECAdd(arg0, &spC, &sp3C); + VECAdd(&sp30, &spC, &sp30); + sp48[0] = sp78[0]; + sp48[1] = sp78[1]; + sp48[2] = sp78[2]; + sp48[3] = sp78[3]; + if (fn_1_137C4(sp48, arg0, arg1, &sp18, arg3, 4) != 0) { + arg2->x *= 0.5f; + arg2->z *= -0.5f; + fn_1_82C8(15, 1, 0); + return 1; + } + if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 + && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) { + if (temp_r28->unkEC > 0.0f && sp24.x > temp_r31->trans.x) { + spC = *arg1; + spC.y = 0.0f; + var_f26 = VECMag(&spC); + arg2->x = 0.5f * var_f26 + temp_r28->unkEC; + arg2->z = 0.0f; + } + else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { + spC = *arg1; + spC.y = 0.0f; + var_f26 = VECMag(&spC); + arg2->x = -(0.5f * var_f26) + temp_r28->unkEC; + arg2->z = 0.0f; + } + else { + if (fabs(arg1->x) > fabs(arg1->z)) { + arg2->x *= -1.0f; + } + else { + arg2->z *= -1.0f; + } + arg2->x *= 0.5f; + arg2->z *= 0.5f; + } + fn_1_82C8(15, 1, 0); + return 1; + } + return 0; +} + +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) +{ + omObjData *var_r31; + StructBssBCData *var_r30; + + if (lbl_1_bss_B8 != NULL) { + var_r31 = lbl_1_bss_B8; + var_r30 = var_r31->data; + omVibrate(var_r30->unk00, 12, 6, 6); + HuAudFXPlay(0x61A); + } +} + +s32 lbl_1_data_668[] = { 3, 4, 5, 6 }; +float lbl_1_data_678[] = { 0.6f, 0.65f, 0.7f, 0.7f }; + +s32 lbl_1_data_688[][2] = { { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } }; + +s32 lbl_1_data_6A8[][2] = { { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } }; + +void fn_1_8338(omObjData *arg0) +{ + float var_f31; + float temp_f30; + StructBssBCData *temp_r31; + ModelData *sp8; + s32 var_r29; + + temp_r31 = arg0->data; + sp8 = &Hu3DData[arg0->model[0]]; + var_r29 = temp_r31->unk18; + if (temp_r31->unkA0 == 0) { + temp_r31->unkA0 = 1; + temp_r31->unk70 = 0; + var_r29 = 5; + } + switch (var_r29) { + case 5: + if (temp_r31->unk70 != 0) { + break; + } + if (temp_r31->unk9C > lbl_1_bss_108 && lbl_1_data_668[temp_r31->unk08] > temp_r31->unk98 && lbl_1_bss_B8 != NULL) { + temp_r31->unkA4 = 1; + temp_r31->unkA8 = (1.0f / 127) * frand7(); + if (lbl_1_bss_B8->trans.x >= 270.0f) { + temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); + } + else if (lbl_1_bss_B8->trans.x <= -270.0f) { + temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; + } + else if (frand() & 1) { + temp_r31->unk88 = -(0.3f + 0.1f * temp_r31->unkA8); + } + else { + temp_r31->unk88 = 0.3f + 0.1f * temp_r31->unkA8; + } + var_f31 = lbl_1_data_6A8[3][0]; + temp_f30 = lbl_1_data_6A8[3][1]; + temp_r31->unk70 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + var_f31 = lbl_1_data_688[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; + temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + temp_r31->unk98++; + } + else { + if (frand() & 1) { + temp_r31->unk88 = (1.0f / 127) * frand7() * lbl_1_data_678[temp_r31->unk08]; + } + else { + temp_r31->unk88 = -((1.0f / 127) * frand7()) * lbl_1_data_678[temp_r31->unk08]; + } + var_f31 = lbl_1_data_6A8[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_6A8[temp_r31->unk08][1]; + temp_r31->unk70 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + var_f31 = lbl_1_data_688[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; + temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + } + temp_r31->unk6C = 0; + break; + case 6: + if (++temp_r31->unk6C >= temp_r31->unk74) { + temp_r31->unk12 = 80.0f * temp_r31->unk88; + temp_r31->unk10 |= PAD_BUTTON_A; + temp_r31->unk0E |= PAD_BUTTON_A; + temp_r31->unk6C = 0; + return; + } + var_f31 = sind(180.0f * ((temp_r31->unk74 - temp_r31->unk6C) / 60.0f)); + if (temp_r31->unk74 & 1) { + var_f31 *= -1.0f; + } + temp_r31->unk12 = 80.0f * (temp_r31->unk88 + var_f31); + return; + case 7: + if (temp_r31->unkA4 != 0) { + if (lbl_1_bss_B8->trans.x >= 148.5f) { + temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); + } + else if (lbl_1_bss_B8->trans.x <= -148.5f) { + temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; + } + else if (lbl_1_bss_B8->trans.x > 0.0f) { + temp_r31->unk88 = -(0.5f + 0.2f * temp_r31->unkA8); + } + else { + temp_r31->unk88 = 0.5f + 0.2f * temp_r31->unkA8; + } + } + temp_r31->unk12 = 80.0f * temp_r31->unk88; + if (++temp_r31->unk6C > temp_r31->unk70) { + temp_r31->unk88 = 0.0f; + temp_r31->unk6C = 0; + temp_r31->unk70 = 0; + temp_r31->unk74 = 0; + temp_r31->unkA4 = 0; + } + else { + temp_r31->unk0E |= PAD_BUTTON_A; + } + break; + default: + temp_r31->unk6C = 0; + break; + } +} + +s32 lbl_1_data_6C8[] = { 60, 45, 30, 15 }; + +float lbl_1_data_6D8[][2] = { { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } }; + +s32 lbl_1_data_6F8[][2] = { { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } }; + +s32 lbl_1_data_718[][2] = { { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } }; + +void fn_1_8CB4(omObjData *arg0) +{ + Vec spC; + float temp_f29; + float temp_f28; + float var_f30; + float var_f31; + float var_f26; // ! - uninitialized + float temp_f27; + StructBssBCData *temp_r31; + ModelData *sp8; + StructBssA8Data *temp_r30; + s32 var_r28; + s32 var_r24; + s32 i, j; + s32 var_r25; + + var_r25 = 0; + temp_r31 = arg0->data; + sp8 = &Hu3DData[arg0->model[0]]; + if (temp_r31->unk64 != -1) { + temp_r30 = fn_1_B13C(temp_r31->unk64); + if (temp_r30 != NULL) { + if (temp_r30->unk0C != 3 || temp_r30->unk08 != 0 || temp_r30->unk38.z <= -900.0f) { + var_r25 = 1; + } + } + else { + var_r25 = 1; + } + } + else { + var_r25 = 1; + } + if (var_r25 != 0) { + temp_r31->unk64 = -1; + temp_r31->unk6C = 0; + temp_f29 = lbl_1_data_6F8[temp_r31->unk08][0]; + temp_f28 = lbl_1_data_6F8[temp_r31->unk08][1]; + temp_r31->unk90 = temp_f29 + (1.0f / 127) * frand7() * (temp_f28 - temp_f29); + temp_f29 = lbl_1_data_718[temp_r31->unk08][0]; + temp_f28 = lbl_1_data_718[temp_r31->unk08][1]; + temp_r31->unk94 = temp_f29 + (1.0f / 127) * frand7() * (temp_f28 - temp_f29); + temp_r31->unkD4.x = lbl_1_data_6D8[temp_r31->unk08][0] * (0.5f - (1.0f / 127) * frand7()); + temp_r31->unkD4.y = lbl_1_data_6D8[temp_r31->unk08][1] * (0.5f - (1.0f / 127) * frand7()); + if (lbl_1_bss_104 >= 5) { + temp_r31->unkD4.x *= 1.5f; + } + var_r24 = fn_1_B304(lbl_1_bss_4); + if (var_r24 != 0) { + for (i = 0; i < var_r24; i++) { + temp_r30 = lbl_1_bss_4[i]; + if (temp_r30 == NULL || temp_r30->unk06 == 0 || 0.0f == temp_r30->unk50.z || fabs(temp_r30->unk38.x) >= 325.0 + || temp_r30->unk14 < temp_r31->unk94) { + continue; + } + var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; + if (var_r28 > 300.0f) { + continue; + } + spC = temp_r30->unk50; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + for (j = 0; j < var_r28; j++) { + var_f30 += spC.x; + var_f31 += spC.y; + spC.x *= temp_r30->unk8C; + spC.z *= temp_r30->unk8C; + spC.y -= 0.32666668f; + if (var_f31 < 20.0) { + var_f31 = 0.32666668f; + spC.y *= temp_r30->unk90; + } + } + var_f30 += temp_r31->unkD4.x; + var_f31 += temp_r31->unkD4.y; + if (temp_r31->unk08 <= 2 || !(fabs(var_f30) >= 225.0 || var_f31 >= 200.0f)) { + temp_r31->unk64 = temp_r30->unk02; + break; + } + } + } + } + if (temp_r31->unk64 != -1 && (temp_r30 = fn_1_B13C(temp_r31->unk64)) != NULL) { + if (temp_r30->unk38.z > 60.000004f + arg0->trans.z) { + var_f26 = 60.000004f + arg0->trans.z; + var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; + if (var_r28 > 300.0f) { + temp_r31->unk64 = -1; + return; + } + spC = temp_r30->unk50; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + for (j = 0; j < var_r28; j++) { + var_f30 += spC.x; + var_f31 += spC.y; + spC.x *= temp_r30->unk8C; + spC.z *= temp_r30->unk8C; + spC.y -= 0.32666668f; + if (var_f31 < 20.0) { + var_f31 = 0.32666668f; + spC.y *= temp_r30->unk90; + } + } + var_r28 += temp_r31->unk90; + var_f30 += temp_r31->unkD4.x; + var_f31 += temp_r31->unkD4.y; + } + else { + var_r28 = 0; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + } + if (arg0->trans.x - 25.0f > var_f30) { + temp_r31->unk12 = -64; + } + if (arg0->trans.x + 25.0f < var_f30) { + temp_r31->unk12 = 64; + } + temp_f27 = fabs(var_f30 - arg0->trans.x); + if (var_r28 < 10 && temp_f27 > 120.00001f) { + temp_r31->unk10 |= 0x100; + } + else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { + temp_r31->unk10 |= 0x100; + } + else if (var_r28 > 20 && temp_f27 < 50.0) { + temp_r31->unk10 /= 2; + } + if (++temp_r31->unk6C > lbl_1_data_6C8[temp_r31->unk08]) { + temp_r31->unk64 = -1; + } + } +} + +void fn_1_95C4(void) +{ + lbl_1_bss_A8 = omAddObjEx(lbl_1_bss_120, 0x50, 0, 0, -1, fn_1_9614); +} + +s32 lbl_1_data_738[] + = { DATA_MAKE_NUM(DATADIR_M423, 4), DATA_MAKE_NUM(DATADIR_M423, 5), DATA_MAKE_NUM(DATADIR_M423, 6), DATA_MAKE_NUM(DATADIR_M423, 7), + DATA_MAKE_NUM(DATADIR_M423, 8), DATA_MAKE_NUM(DATADIR_M423, 9), DATA_MAKE_NUM(DATADIR_M423, 10), DATA_MAKE_NUM(DATADIR_M423, 11) }; + +void fn_1_9614(omObjData *arg0) +{ + StructBssA8Data *var_r28; + StructBssA8Data *var_r31; + ModelData *var_r27; + s32 i; + + if (lbl_1_bss_EC[0] == -1) { + return; + } + var_r31 = var_r28 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 15 * sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 15 * sizeof(*var_r31)); + for (i = 0; i < 15; i++, var_r31++) { + var_r31->unk04 = i % 3; + var_r31->unk02 = i; + var_r31->unk06 = 0; + var_r31->unk0A = 0; + var_r31->unk08 = 0; + var_r31->unk0C = 0; + var_r31->unk0E = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + var_r31->unk1C = 0; + var_r31->unk38.x = var_r31->unk38.y = var_r31->unk38.z = 0.0f; + var_r31->unk44 = var_r31->unk48 = var_r31->unk4C = 0.0f; + var_r31->unk50.x = var_r31->unk50.y = var_r31->unk50.z = 0.0f; + var_r31->unk74 = var_r31->unk38; + var_r31->unk80 = var_r31->unk50; + var_r31->unk8C = 0.995f; + var_r31->unk90 = -0.5f; + var_r31->unk68.x = var_r31->unk68.y = var_r31->unk68.z = 0.0f; + if (i < 3) { + var_r31->unk00 = Hu3DModelCreateFile(lbl_1_data_738[lbl_1_bss_EC[var_r31->unk04]]); + } + else { + var_r31->unk00 = Hu3DModelLink(var_r28[var_r31->unk04].unk00); + } + Hu3DModelScaleSet(var_r31->unk00, 0.8f, 0.8f, 0.8f); + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(var_r31->unk00, 5); + Hu3DModelShadowSet(var_r31->unk00); + var_r27 = &Hu3DData[var_r31->unk00]; + MTXIdentity(var_r27->unk_F0); + } + fn_1_B430(); + arg0->func = fn_1_98A0; +} + +void fn_1_98A0(omObjData *arg0) +{ + Mtx spC4; + Vec spB8; + Vec spAC; + Vec spA0; + Vec sp94; + Vec sp88; + float temp_f30; + float var_f25; + float var_f31; + float var_f22; + StructBssA8Data *var_r31; + StructBssA8Data *var_r30; + ModelData *temp_r27; + s32 i, j; + s32 var_r25; + s32 var_r23; + s32 var_r28; + + var_r31 = arg0->data; + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0) { + continue; + } + temp_r27 = &Hu3DData[var_r31->unk00]; + var_r25 = 0; + switch (var_r31->unk0C) { + case 0: + break; + case 1: + temp_f30 = var_r31->unk14 / 60.0f; + var_r31->unk14++; + if (temp_f30 > 1.0f) { + var_f31 = 1.0f; + } + else { + var_f31 = temp_f30; + } + var_r31->unk38.x = var_r31->unk20.x + var_f31 * (var_r31->unk2C.x - var_r31->unk20.x); + var_r31->unk38.z = var_r31->unk20.z + var_f31 * (var_r31->unk2C.z - var_r31->unk20.z); + if (temp_f30 < 0.6f) { + var_f31 = temp_f30 / 0.6f; + var_f25 = 100.0f; + } + else if (temp_f30 < 1.0f) { + var_f31 = (temp_f30 - 0.6f) / 0.4f; + var_f25 = 50.0f; + } + else { + var_f31 = (temp_f30 - 1.0f) / 0.25f; + var_f25 = 10.0f; + } + var_r31->unk38.y = 20.0 + var_f25 * sind(180.0f * var_f31); + if (var_r31->unk14 >= 75.0f) { + var_r31->unk0C = 2; + var_r31->unk14 = 0; + var_r31->unk38.y = 20.0f; + var_r31->unk50.y = 0.0f; + } + if (var_r31->unk14 < 73.2f) { + spAC.x = var_r31->unk50.z; + spAC.z = -var_r31->unk50.x; + spAC.y = 0.0f; + var_f31 = 0.05 * VECMag(&spAC); + if (var_f31 > 0.00001f) { + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + } + } + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + break; + case 2: + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + break; + case 3: + var_r31->unk74 = var_r31->unk38; + var_r31->unk80 = var_r31->unk50; + var_r23 = 0; + if (var_r28 = fn_1_C498(&var_r31->unk38, &var_r31->unk50, &spB8, &sp88, 20.0f, 3)) { + if (var_r28 & 0x8000) { + var_r25 = 1; + } + if (var_r28 & 0x2000) { } + if ((var_r28 & 0x4000) && var_r31->unk12 == 0 && var_r31->unk08 == 0) { + var_f31 = VECMagXZ(&var_r31->unk50); + sp94.x = 0.0f; + sp94.y = 0.0f; + sp94.z = (1.0f / 127) * frand7() * 360.0f; + fn_1_E334(spB8, sp94, 0.5f); + HuAudFXPlay(0x620); + var_r31->unk12 = 1; + } + var_r31->unk38 = spB8; + var_r31->unk50 = sp88; + var_r31->unk8C = 0.975f; + var_r31->unk90 = -0.5f; + } + else { + if (fabs(var_r31->unk38.x) > 1000.0) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + } + else { + var_r31->unk38.x += var_r31->unk50.x; + var_r31->unk38.y += var_r31->unk50.y; + var_r31->unk38.z += var_r31->unk50.z; + } + } + if (var_r31->unk08 == 0) { + for (j = 0, var_r30 = arg0->data; j < 15; j++, var_r30++) { + if (i == j || var_r30->unk06 == 0 || var_r30->unk08 != 0 || var_r30->unk0C != 3) { + continue; + } + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + var_f31 = VECMag(&spAC); + if (var_f31 < 40.0) { + spA0 = var_r31->unk38; + if (var_f31 != 0.0f) { + temp_f30 = 40.0 - var_f31; + VECNormalize(&spAC, &spAC); + VECScale(&spAC, &spAC, temp_f30); + VECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); + } + else { + var_r31->unk38.x += 40.0; + } + temp_f30 = VECMag(&var_r31->unk50); + var_f22 = VECMag(&var_r30->unk50); + var_f31 = 0.5f * (temp_f30 + var_f22); + if (VECMag(&var_r31->unk50) == 0.0f) { + var_r31->unk50.x = 1.0f; + } + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { + spAC.x = 1.0f; + } + VECNormalize(&spAC, &spAC); + VECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); + if (VECMag(&var_r31->unk50) == 0.0f) { + var_r31->unk50.x = 1.0f; + } + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECScale(&var_r31->unk50, &var_r31->unk50, var_f31); + if (VECMag(&var_r30->unk50) == 0.0f) { + var_r30->unk50.x = -1.0f; + } + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { + spAC.x = 1.0f; + } + VECNormalize(&spAC, &spAC); + VECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); + if (VECMag(&var_r30->unk50) == 0.0f) { + var_r30->unk50.x = -1.0f; + } + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECScale(&var_r30->unk50, &var_r30->unk50, var_f31); + if (var_r28 = fn_1_C498(&spA0, &spAC, &spB8, &sp88, 20.0f, 1)) { + if (var_r28 & 0x8000) { + var_r25 = 1; + } + var_r31->unk38 = spB8; + var_r31->unk50 = sp88; + } + } + } + } + if (var_r31->unk38.y < 20.0) { + var_r31->unk38.y = 20.0f; + var_r31->unk50.y *= var_r31->unk90; + var_r23 = 1; + if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) { + var_r25 = 1; + } + if (fabs(var_r31->unk50.y) < 0.05f) { + var_r31->unk50.y = 0.0f; + } + } + if (var_r31->unk08 == 0) { + VECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); + if (fn_1_7B48(&var_r31->unk38, &var_r31->unk50, &sp88, 20.0f) != 0) { + var_r31->unk50 = sp88; + var_r31->unk08 = 1; + var_r31->unk8C = 0.975f; + var_r31->unk90 = -0.5f; + } + } + if (var_r31->unk50.z > 0.0f) { + var_r31->unk08 = 1; + } + var_r31->unk50.y -= 0.32666668f; + if (var_r23 == 0) { + var_r31->unk50.x *= var_r31->unk8C; + var_r31->unk50.z *= var_r31->unk8C; + } + else { + var_r31->unk50.x *= 0.995f * var_r31->unk8C; + var_r31->unk50.z *= 0.995f * var_r31->unk8C; + } + if (var_r25 != 0 && var_r31->unk0A == 0 && var_r31->unk08 == 0) { + fn_1_AEE8(i); + } + if (var_r31->unk08 != 0) { + var_r31->unk18++; + if (var_r31->unk18 & 1) { + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + if (var_r31->unk18 >= 120.0f) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + } + temp_f30 = VECMagXZ(&var_r31->unk50); + if (fabs(temp_f30) < 0.1f && var_r31->unk38.y <= 20.0 && var_r31->unk08 == 0) { + var_r31->unk0C = 4; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + if (fabs(var_r31->unk38.x) > 2000.0 || fabs(var_r31->unk38.y) > 2000.0 || fabs(var_r31->unk38.z) > 2000.0) { + var_r31->unk0C = 4; + var_r31->unk14 = 0; + var_r31->unk18 = 120; + } + var_r31->unk14++; + spAC.x = var_r31->unk50.z; + spAC.z = -var_r31->unk50.x; + spAC.y = 0.0f; + var_f31 = 0.05 * VECMag(&spAC); + if (var_f31 > 0.00001f) { + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + } + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + break; + case 4: + var_r31->unk18++; + if (var_r31->unk18 & 1) { + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + if (var_r31->unk18 >= 120.0f) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + break; + } + } +} + +void fn_1_A9A0(omObjData *arg0) +{ + arg0->func = NULL; +} + +void fn_1_A9AC(void) +{ + fn_1_A9A0(lbl_1_bss_A8); +} + +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) +{ + StructBssA8Data *var_r31; + ModelData *temp_r26; + s32 var_r27; + s32 i; + + if (lbl_1_bss_A8 == NULL) { + return -1; + } + var_r31 = lbl_1_bss_A8->data; + for (i = 0, var_r27 = -1; i < 3; i++) { + if (arg0 == lbl_1_bss_EC[i]) { + var_r27 = i; + } + } + if (var_r27 == -1) { + return -1; + } + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk04 == var_r27 && var_r31->unk06 == 0) { + break; + } + } + if (i >= 15) { + return -1; + } + temp_r26 = &Hu3DData[var_r31->unk00]; + var_r31->unk06 = 1; + var_r31->unk0A = 0; + var_r31->unk08 = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk0C = 1; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + var_r31->unk20 = arg1; + var_r31->unk2C = arg2; + var_r31->unk38 = arg1; + var_r31->unk44 = var_r31->unk48 = var_r31->unk4C = 0.0f; + var_r31->unk50.x = 0.016666668f * (arg2.x - arg1.x); + var_r31->unk50.z = 0.016666668f * (arg2.z - arg1.z); + var_r31->unk50.y = 5.0f; + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + MTXIdentity(temp_r26->unk_F0); + return i; +} + +void fn_1_AC0C(s32 arg0, Vec arg1) +{ + StructBssA8Data *var_r31; + + if (lbl_1_bss_A8 != NULL) { + var_r31 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + var_r31[arg0].unk38 = arg1; + } +} + +void fn_1_AC80(s32 arg0, Vec arg1) +{ + Vec sp14; + Vec sp8; + float var_f31; + StructBssA8Data *var_r28; + StructBssA8Data *temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r28 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + temp_r31 = &var_r28[arg0]; + temp_r31->unk0C = 3; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0; + temp_r31->unk50 = arg1; + temp_r31->unk74 = temp_r31->unk38; + temp_r31->unk8C = 0.995f; + temp_r31->unk90 = -0.5f; + if (temp_r31->unk50.z < 0.0f) { + sp14 = temp_r31->unk38; + var_f31 = -800.0f - sp14.z; + temp_r31->unk1C = fabs(var_f31 / temp_r31->unk50.z); + VECScale(&arg1, &sp8, temp_r31->unk1C); + VECAdd(&sp14, &sp8, &temp_r31->unk68); + } + else { + temp_r31->unk1C = 1000; + } +} + +s32 fn_1_AE64(s32 arg0) +{ + StructBssA8Data *temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return -1; + } + temp_r31 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return -1; + } + if (temp_r31[arg0].unk06 == 0) { + return -1; + } + return temp_r31[arg0].unk0C; +} + +void fn_1_AEE8(s32 arg0) +{ + StructBssA8Data *var_r26; + StructBssA8Data *temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r26 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + temp_r31 = &var_r26[arg0]; + temp_r31->unk0A = 1; + temp_r31->unk08 = 1; + temp_r31->unk14 = 0; + fn_1_F574(temp_r31->unk38, 0.75f, lbl_1_bss_EC[temp_r31->unk04]); + HuAudFXPlay(9); + fn_1_3A8C(); + lbl_1_bss_DC[temp_r31->unk04]++; + lbl_1_bss_104--; +} + +StructBssA8Data *fn_1_B13C(s32 arg0) +{ + StructBssA8Data *temp_r31; + StructBssA8Data *sp8; + + if (lbl_1_bss_A8 == NULL) { + return NULL; + } + temp_r31 = lbl_1_bss_A8->data; + sp8 = temp_r31; + if (arg0 < 0 || arg0 >= 15) { + return NULL; + } + return &temp_r31[arg0]; +} + +GXColor lbl_1_data_758 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_B1A4(void) +{ + Vec sp2C; + StructBssA8Data *sp10; + StructBssA8Data *var_r31; + s32 spC; + s32 i; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r31 = sp10 = lbl_1_bss_A8->data; + for (i = 0, spC = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0) { + continue; + } + sp2C.x = sp2C.y = sp2C.z = 0.0f; + fn_1_DC24(var_r31->unk38, sp2C, 100.0f, 0.0f, 1.0f, lbl_1_data_758); + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } +} + +s32 fn_1_B304(StructBssA8Data **arg0) +{ + s32 var_r29; + s32 i; + StructBssA8Data *var_r30; + StructBssA8Data *var_r28; + StructBssA8Data *var_r27; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r30 = lbl_1_bss_A8->data; + var_r28 = var_r30; + for (i = 0, var_r29 = 0; i < 15; i++, var_r30++) { + if (var_r30->unk06 == 0 || var_r30->unk0C != 3 || var_r30->unk08 != 0 || var_r30->unk38.z <= -900.0f) { + continue; + } + arg0[var_r29] = var_r30; + var_r29++; + } + var_r28 = var_r30; + for (i = 0; i < var_r29 - 1; i++) { + if (arg0[i]->unk38.z > arg0[i + 1]->unk38.z) { + var_r27 = arg0[i]; + arg0[i] = arg0[i + 1]; + arg0[i + 1] = var_r27; + } + } + return var_r29; +} + +void fn_1_B430(void) +{ + Vec sp2C[8]; + Vec sp20; + Vec sp14; + Vec sp8; + StructBss94Data *var_r31; + s32 i; + + var_r31 = lbl_1_bss_94 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(*lbl_1_bss_94), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 16 * sizeof(*var_r31)); + for (i = 0; i < 16; i++, var_r31++) { + var_r31->unk02 = 0; + } + sp20.x = sp20.y = 0.0f; + sp20.z = -1400.0f; + fn_1_BCD8(&sp20, NULL, NULL, 0.8f, 0, 0x2003); + sp2C[0].x = 1000.0f; + sp2C[0].y = 1000.0f; + sp2C[0].z = -200.0f; + sp2C[1].x = -1000.0f; + sp2C[1].y = 1000.0f; + sp2C[1].z = -200.0f; + sp2C[2].x = -1000.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -200.0f; + sp2C[3].x = 1000.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -200.0f; + fn_1_BCD8(sp2C, NULL, NULL, 1.0f, 0, 6); + sp20.x = -650.0f; + sp20.y = 75.0f; + sp20.z = -1300.0f; + sp14.x = 370.0f; + sp14.y = 1095.0f; + sp14.z = 120.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.8f, 25, 0x2004); + sp20.x = 650.0f; + sp20.y = 75.0f; + sp20.z = -1300.0f; + sp14.x = 370.0f; + sp14.y = 1095.0f; + sp14.z = 120.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.8f, 21, 0x2004); + sp20.x = 0.0f; + sp20.y = 100.0f; + sp20.z = -1070.0f; + sp14.x = 245.0f; + sp14.y = 130.0f; + sp14.z = 170.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 1.0f, 45, 4); + sp20.x = -235.0f; + sp20.y = 0.0f; + sp20.z = -900.0f; + sp14.x = -235.0f; + sp14.y = 200.0f; + sp14.z = -900.0f; + sp8.x = 30.000002f; + sp8.y = sp8.z = 0.0f; + fn_1_BCD8(&sp20, &sp14, &sp8, 0.5f, 0, 0x4007); + sp20.x = 235.0f; + sp20.y = 0.0f; + sp20.z = -900.0f; + sp14.x = 235.0f; + sp14.y = 200.0f; + sp14.z = -900.0f; + sp8.x = 30.000002f; + sp8.y = sp8.z = 0.0f; + fn_1_BCD8(&sp20, &sp14, &sp8, 0.5f, 0, 0x4007); + sp20.x = 0.0f; + sp20.y = 200.0f; + sp20.z = -900.0f; + sp14.x = 245.0f; + sp14.y = 30.0f; + sp14.z = 30.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.5f, 29, 0x4004); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -900.0f; + sp2C[1].x = -225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -1150.0f; + sp2C[2].x = -225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -900.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.5f, 0, 0x8006); + sp2C[0].x = 225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -1150.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -900.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -900.0f; + sp2C[3].x = 225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.5f, 0, 0x8006); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -1150.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -1150.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -900.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -900.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 200.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 200.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); +} + +s16 lbl_1_data_75C[][3] = { { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, { 2, 3, 6 }, + { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } }; + +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5) +{ + Vec sp24[8]; + Vec sp18; + float var_f29; + StructBss94Data *var_r30; + s32 i; + s32 j; + + var_r30 = lbl_1_bss_94; + for (i = 0; i < 16; i++, var_r30++) { + if (var_r30->unk02 == 0) { + break; + } + } + if (i >= 16) { + return; + } + var_r30->unk00 = i; + var_r30->unk02 = arg5; + var_r30->unk3C = arg3; + switch (var_r30->unk02 & 0xFFF) { + case 1: + var_r30->unk34 = arg0[0].x; + break; + case 2: + var_r30->unk34 = arg0[0].y; + break; + case 3: + var_r30->unk34 = arg0[0].z; + break; + case 4: + var_r30->unk04 = arg0[0]; + var_r30->unk10 = *arg1; + sp24[0].x = arg0[0].x - arg1->x; + sp24[0].y = arg0[0].y + arg1->y; + sp24[0].z = arg0[0].z - arg1->z; + sp24[1].x = arg0[0].x + arg1->x; + sp24[1].y = arg0[0].y + arg1->y; + sp24[1].z = arg0[0].z - arg1->z; + sp24[2].x = arg0[0].x - arg1->x; + sp24[2].y = arg0[0].y + arg1->y; + sp24[2].z = arg0[0].z + arg1->z; + sp24[3].x = arg0[0].x + arg1->x; + sp24[3].y = arg0[0].y + arg1->y; + sp24[3].z = arg0[0].z + arg1->z; + sp24[4].x = arg0[0].x - arg1->x; + sp24[4].y = arg0[0].y - arg1->y; + sp24[4].z = arg0[0].z - arg1->z; + sp24[5].x = arg0[0].x + arg1->x; + sp24[5].y = arg0[0].y - arg1->y; + sp24[5].z = arg0[0].z - arg1->z; + sp24[6].x = arg0[0].x - arg1->x; + sp24[6].y = arg0[0].y - arg1->y; + sp24[6].z = arg0[0].z + arg1->z; + sp24[7].x = arg0[0].x + arg1->x; + sp24[7].y = arg0[0].y - arg1->y; + sp24[7].z = arg0[0].z + arg1->z; + for (j = 0; j < 12; j++) { + fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], &sp24[lbl_1_data_75C[j][1]], &sp24[lbl_1_data_75C[j][2]], var_r30->unk44[j]); + var_r30->unk104[j][0] = sp24[lbl_1_data_75C[j][0]]; + var_r30->unk104[j][1] = sp24[lbl_1_data_75C[j][1]]; + var_r30->unk104[j][2] = sp24[lbl_1_data_75C[j][2]]; + } + var_r30->unk40 = arg4; + break; + case 5: + var_r30->unk104[0][0] = arg0[0]; + var_r30->unk104[1][0] = arg0[1]; + var_r30->unk104[2][0] = arg0[2]; + var_r30->unk104[3][0] = arg0[3]; + fn_1_129F0(&arg0[0], &arg0[1], &arg0[3], var_r30->unk44[0]); + fn_1_129F0(&arg0[1], &arg0[2], &arg0[3], var_r30->unk44[1]); + break; + case 6: + var_r30->unk104[0][0] = arg0[0]; + var_r30->unk104[1][0] = arg0[1]; + var_r30->unk104[2][0] = arg0[2]; + var_r30->unk104[3][0] = arg0[3]; + fn_1_129F0(&arg0[0], &arg0[1], &arg0[3], var_r30->unk44[0]); + fn_1_129F0(&arg0[1], &arg0[2], &arg0[3], var_r30->unk44[1]); + if (var_r30->unk44[0][1] < -0.5f) { + var_r30->unk40 = 0; + } + if (var_r30->unk44[0][1] > 0.5f) { + var_r30->unk40 = 1; + } + if (var_r30->unk44[0][0] > 0.5f) { + var_r30->unk40 = 2; + } + if (var_r30->unk44[0][0] < -0.5f) { + var_r30->unk40 = 3; + } + if (var_r30->unk44[0][2] < -0.5f) { + var_r30->unk40 = 4; + } + if (var_r30->unk44[0][2] > 0.5f) { + var_r30->unk40 = 5; + } + break; + case 7: + var_r30->unk04 = arg0[0]; + var_r30->unk10 = *arg1; + var_r30->unk34 = arg2->x; + sp18.x = arg1->x - arg0[0].x; + sp18.y = arg1->y - arg0[0].y; + sp18.z = arg1->z - arg0[0].z; + var_f29 = VECMagXZ(&sp18); + var_r30->unk28 = -atan2d(sp18.y, var_f29); + var_r30->unk2C = atan2d(sp18.x, sp18.z); + var_r30->unk30 = 0.0f; + break; + } +} + +s32 lbl_1_data_7C4[] = { 1, 1, 0, 0, 2, 2 }; + +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ + StructBss94Data *var_r31; + Vec sp140[6]; + Vec sp134; + Vec sp128; + Vec sp11C; + Vec sp110; + Vec sp104; + Vec spF8; + Vec spEC; + Vec spE0; + Vec spD4; + Vec spC8; + float var_f30; + float var_f19; + float sp34; + float sp30; + float sp2C; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 i; + s32 j; + + var_r31 = lbl_1_bss_94; + var_r26 = -1; + sp134.x = arg0->x + arg1->x; + sp134.y = arg0->y + arg1->y; + sp134.z = arg0->z + arg1->z; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk02 == 0) { + continue; + } + switch (var_r31->unk02 & 0xFFF) { + case 1: + if (arg1->x < 0.0f) { + if (arg0->x > var_r31->unk34 + arg4 && sp134.x <= var_r31->unk34 + arg4 + 1.0f) { + sp134.x = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 0; + } + } + else { + if (arg0->x < var_r31->unk34 - arg4 && sp134.x >= var_r31->unk34 - arg4 - 1.0f) { + sp134.x = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 0; + } + } + break; + case 2: + if (arg1->y < 0.0f) { + if (arg0->y > var_r31->unk34 + arg4 && sp134.y <= var_r31->unk34 + arg4 + 1.0f) { + sp134.y = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 1; + } + } + else { + if (arg0->y < var_r31->unk34 - arg4 && sp134.y >= var_r31->unk34 - arg4 - 1.0f) { + sp134.y = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 1; + } + } + break; + case 3: + if (arg1->z < 0.0f) { + if (arg0->z > var_r31->unk34 + arg4 && sp134.z <= var_r31->unk34 + arg4 + 1.0f) { + sp134.z = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 2; + } + } + else { + if (arg0->z < var_r31->unk34 - arg4 && sp134.z >= var_r31->unk34 - arg4 - 1.0f) { + sp134.z = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 2; + } + } + break; + case 4: + arg4 = 0.0f; + VECSubtract(&sp134, &var_r31->unk04, &sp128); + if (fabs(sp128.x) < var_r31->unk10.x + arg4 && fabs(sp128.y) < var_r31->unk10.y + arg4 && fabs(sp128.z) < var_r31->unk10.z + arg4) { + for (j = 0; j < 6; j++) { + if (var_r31->unk40 & (1 << j)) { + var_r24 = fn_1_12C6C(arg0, &sp134, var_r31->unk44[j * 2]); + if (var_r24 != 0) { + break; + } + } + } + switch (j) { + case 0: + sp134.y = var_r31->unk04.y + var_r31->unk10.y + arg4 + 1.0f; + break; + case 1: + sp134.y = var_r31->unk04.y - var_r31->unk10.y - arg4 - 1.0f; + break; + case 2: + sp134.x = var_r31->unk04.x - var_r31->unk10.x - arg4 - 1.0f; + break; + case 3: + sp134.x = var_r31->unk04.x + var_r31->unk10.x + arg4 + 1.0f; + break; + case 4: + sp134.z = var_r31->unk04.z + var_r31->unk10.z + arg4 + 1.0f; + break; + case 5: + sp134.z = var_r31->unk04.z - var_r31->unk10.z - arg4 - 1.0f; + break; + } + if (j < 6) { + *arg2 = sp134; + var_r26 = lbl_1_data_7C4[j]; + } + } + break; + case 5: + if (fn_1_12C6C(arg0, &sp134, var_r31->unk44[0]) != 1) { + break; + } + fn_1_1334C(var_r31->unk44[0], arg0, arg1, var_r31->unk104[0], &sp104); + sp110.x = fabs(var_r31->unk44[0][0]); + sp110.y = fabs(var_r31->unk44[0][1]); + sp110.z = fabs(var_r31->unk44[0][2]); + if (sp110.x > sp110.y && sp110.x > sp110.z) { + var_r24 = 0; + } + else if (sp110.y > sp110.x && sp110.y > sp110.z) { + var_r24 = 1; + } + else { + var_r24 = 2; + } + sp140[0] = var_r31->unk104[0][0]; + sp140[1] = var_r31->unk104[1][0]; + sp140[2] = var_r31->unk104[3][0]; + sp140[3] = var_r31->unk104[1][0]; + sp140[4] = var_r31->unk104[2][0]; + sp140[5] = var_r31->unk104[3][0]; + sp34 = fn_1_12E68(&sp140[0], &sp104, var_r24); + sp30 = fn_1_12E68(&sp140[3], &sp104, var_r24); + if (sp34 != 0.0f || sp30 != 0.0f) { + arg2->x = sp104.x + var_r31->unk44[0][0] * (arg4 + 1.0f); + arg2->y = sp104.y + var_r31->unk44[0][1] * (arg4 + 1.0f); + arg2->z = sp104.z + var_r31->unk44[0][2] * (arg4 + 1.0f); + var_r26 = var_r24; + } + break; + case 6: + sp140[0] = var_r31->unk104[0][0]; + sp140[1] = var_r31->unk104[1][0]; + sp140[2] = var_r31->unk104[2][0]; + sp140[3] = var_r31->unk104[3][0]; + if (fn_1_137C4(&sp140[0], arg0, arg1, &sp104, arg4, var_r31->unk40) != 0) { + *arg2 = sp104; + var_r26 = lbl_1_data_7C4[var_r31->unk40]; + } + break; + case 7: + spEC.x = arg0->x; + spEC.y = arg0->z; + spEC.z = 0.0f; + spE0.x = sp134.x; + spE0.y = sp134.z; + spE0.z = 0.0f; + spD4.x = var_r31->unk04.x; + spD4.y = var_r31->unk04.z; + spD4.z = 0.0f; + var_f30 = fn_1_1367C(&spEC, &spE0, &spD4, &spC8, &sp2C); + if (sp2C >= 0.0f && sp2C <= 1.0f && var_f30 < var_r31->unk34 + arg4) { + var_f19 = arg0->y + arg1->y * sp2C; + if (var_f19 >= var_r31->unk04.y && var_f19 <= var_r31->unk10.y) { + spC8.z = spC8.y; + spC8.y = 0.0f; + VECSubtract(&spC8, &var_r31->unk04, &sp128); + sp128.y = 0.0f; + if (VECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + arg2->x = sp128.x + var_r31->unk04.x; + arg2->z = sp128.z + var_r31->unk04.z; + arg2->y = var_f19; + sp2C = var_f30; + var_r26 = 99; + } + } + else { + sp2C = var_f30; + VECSubtract(&sp134, &var_r31->unk04, &sp128); + var_f30 = VECMagXZ(&sp128); + if (var_f30 < var_r31->unk34 + arg4 && sp134.y >= var_r31->unk04.y && sp134.y <= var_r31->unk10.y) { + VECSubtract(&sp134, &var_r31->unk04, &sp128); + sp128.y = 0.0f; + if (VECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + arg2->x = var_r31->unk04.x + sp128.x; + arg2->z = var_r31->unk04.z + sp128.z; + arg2->y = sp134.y; + var_r26 = 99; + } + } + if (var_r26 == -1) { + break; + } + sp128.x = spC8.x - var_r31->unk04.x; + sp128.z = spC8.y - var_r31->unk04.z; + var_f30 = VECMagXZ(&sp128); + if (var_f30 == 0.0f) { + var_f30 = 1.0f; + sp128.x = 0.0f; + sp128.z = 1.0f; + } + else { + var_f30 = 1.0f / var_f30; + } + spC8.x = sp128.x * var_f30; + spC8.z = sp128.z * var_f30; + var_f30 = VECMagXZ(arg1); + if (var_f30 != 0.0f) { + var_f30 = 1.0f / var_f30; + } + spD4.x = -(arg1->x * var_f30); + spD4.z = -(arg1->z * var_f30); + sp2C = var_f30 / (var_r31->unk34 + arg4); + sp128.x = spD4.x + sp2C * (spC8.x - spD4.x); + sp128.z = spD4.z + sp2C * (spC8.z - spD4.z); + var_f30 = VECMagXZ(&sp128); + if (var_f30 == 0.0f) { + var_f30 = 1.0f; + sp128.x = 0.0f; + sp128.z = 1.0f; + } + else { + var_f30 = 1.0f / var_f30; + } + sp128.x = sp128.x * var_f30 - spD4.x; + sp128.z = sp128.z * var_f30 - spD4.z; + sp128.y = 0.0f; + if (VECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } + else { + VECNormalize(&sp128, &sp128); + } + var_f30 = VECMagXZ(arg1); + arg3->x = sp128.x * var_f30 * var_r31->unk3C; + arg3->z = sp128.z * var_f30 * var_r31->unk3C; + arg3->y = arg1->y; + break; + } + if (var_r26 != -1) { + break; + } + } + if (i < 16) { + switch (var_r26) { + case 0: + arg3->x = -arg1->x * var_r31->unk3C; + arg3->y = arg1->y; + arg3->z = arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + case 1: + arg3->x = arg1->x * var_r31->unk3C; + arg3->y = arg1->y * -0.5f; + arg3->z = arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + case 2: + arg3->x = arg1->x * var_r31->unk3C; + arg3->y = arg1->y; + arg3->z = -arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + default: + var_r23 = var_r31->unk02; + break; + } + arg5--; + if (arg5 > 0) { + sp11C = *arg0; + sp110.x = arg2->x - arg0->x; + sp110.y = arg2->y - arg0->y; + sp110.z = arg2->z - arg0->z; + var_r26 = fn_1_C498(&sp11C, &sp110, &sp104, &spF8, arg4, arg5); + if (var_r26 != 0) { + *arg2 = sp104; + *arg3 = spF8; + if (var_r23 & 0x4000) { + var_r26 |= 0x4000; + } + if (var_r23 & 0x8000) { + var_r26 |= 0x8000; + } + var_r23 = var_r26; + } + } + return var_r23; + } + return 0; +} + +void fn_1_D930(void) +{ + omObjData *var_r30; + StructBssA4Data *var_r31; + AnimData *var_r27; + StructM423_05 *var_r29; + ModelData *var_r28; + s32 sp8; + + var_r30 = lbl_1_bss_A4 = omAddObjEx(lbl_1_bss_120, 0xBF, 0, 0, -1, fn_1_DA38); + var_r31 = var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk08 = var_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 22), MEMORY_DEFAULT_NUM)); + var_r31->unk00 = sp8 = fn_1_11114(var_r27, 0x100); + Hu3DModelCameraSet(var_r31->unk00, 4); + Hu3DModelLayerSet(var_r31->unk00, 1); + var_r31->unk04 = 0; + var_r28 = &Hu3DData[var_r31->unk00]; + var_r29 = var_r28->unk_120; + var_r29->unk20 = 0; +} + +void fn_1_DA38(omObjData *arg0) +{ + StructBssA4Data *temp_r30; + ModelData *var_r27; + StructM423_05 *temp_r29; + StructM423_04 *var_r31; + s32 i; + + temp_r30 = arg0->data; + if (temp_r30->unk04 <= 0) { + Hu3DModelAttrSet(temp_r30->unk00, HU3D_ATTR_DISPOFF); + return; + } + Hu3DModelAttrReset(temp_r30->unk00, HU3D_ATTR_DISPOFF); + var_r27 = &Hu3DData[temp_r30->unk00]; + temp_r29 = var_r27->unk_120; + var_r31 = temp_r29->unk3C; + temp_r29->unk23 = 0; + for (i = 0; i < temp_r29->unk26; i++, var_r31++) { + if (var_r31->unk30 <= 0.0f) { + continue; + } + var_r31->unk38.x += var_r31->unk04.x; + var_r31->unk38.y += var_r31->unk04.y; + var_r31->unk38.z += var_r31->unk04.z; + var_r31->unk34 += var_r31->unk18; + if (var_r31->unk34 >= 360.0f) { + var_r31->unk34 -= 360.0f; + } + var_r31->unk48 = var_r31->unk28; + var_r31->unk28 += var_r31->unk2C; + if (var_r31->unk48 >= 16) { + var_r31->unk48 = 0; + var_r31->unk00 = 0; + var_r31->unk30 = 0.0f; + temp_r30->unk04--; + } + } +} + +void fn_1_DBC8(void) +{ + omObjData *temp_r31; + StructBssA4Data *temp_r30; + + temp_r31 = lbl_1_bss_A4; + temp_r30 = temp_r31->data; + Hu3DModelAttrSet(temp_r30->unk00, HU3D_ATTR_DISPOFF); + HuSprAnimKill(temp_r30->unk08); + temp_r31->func = NULL; +} + +inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) +{ + omObjData *var_r27; + StructBssA4Data *temp_r28; + ModelData *var_r26; + StructM423_05 *temp_r30; + StructM423_04 *var_r31; + s32 i; + + var_r27 = lbl_1_bss_A4; + temp_r28 = var_r27->data; + var_r26 = &Hu3DData[temp_r28->unk00]; + temp_r30 = var_r26->unk_120; + var_r31 = temp_r30->unk3C; + for (i = 0; i < temp_r30->unk26; i++, var_r31++) { + if (var_r31->unk30 <= 0.0f) { + break; + } + } + if (i >= temp_r30->unk26) { + return -1; + } + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk38.x = arg0.x; + var_r31->unk38.y = arg0.y; + var_r31->unk38.z = arg0.z; + var_r31->unk04.x = arg1.x; + var_r31->unk04.y = arg1.y; + var_r31->unk04.z = arg1.z; + var_r31->unk18 = arg3; + var_r31->unk30 = arg2; + var_r31->unk44.r = arg5.r; + var_r31->unk44.g = arg5.g; + var_r31->unk44.b = arg5.b; + var_r31->unk44.a = arg5.a; + var_r31->unk34 = 0.0f; + var_r31->unk48 = 0; + var_r31->unk00 = 0; + var_r31->unk28 = 0.0f; + var_r31->unk2C = arg4; + temp_r28->unk04++; + return i; +} + +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) +{ + Vec sp60; + Vec sp54; + float temp_f31; + s32 sp20; + s32 sp1C; + + sp54.x = arg1.z; + sp54.z = arg1.x; + sp54.y = 0.0f; + VECNormalize(&sp54, &sp54); + temp_f31 = 0.5f * arg4; + sp60.x = arg0.x + sp54.x * temp_f31; + sp60.y = arg0.y + sp54.y * temp_f31; + sp60.z = arg0.z + sp54.z * temp_f31; + sp20 = fn_1_DC24(sp60, arg1, arg2, arg3, arg5, arg6); + sp60.x = arg0.x - sp54.x * temp_f31; + sp60.y = arg0.y - sp54.y * temp_f31; + sp60.z = arg0.z - sp54.z * temp_f31; + sp1C = fn_1_DC24(sp60, arg1, arg2, -arg3, arg5, arg6); + return (sp20 << 16) | sp1C; +} + +void fn_1_E1BC(void) +{ + omObjData *var_r31; + s32 var_r29; + s32 i; + + var_r31 = lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_120, 0xBF, 16, 0, -1, fn_1_E290); + for (i = 0; i < var_r31->mdlcnt; i++) { + var_r29 = var_r31->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 3)); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(var_r29, 4); + } + var_r31->stat |= 0x100; +} + +void fn_1_E290(omObjData *arg0) +{ + ModelData *var_r28; + s32 temp_r30; + s32 i; + + for (i = 0; i < arg0->mdlcnt; i++) { + temp_r30 = arg0->model[i]; + var_r28 = &Hu3DData[temp_r30]; + if (!(var_r28->attr & 1) && Hu3DMotionEndCheck(temp_r30)) { + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_E330(void) { } + +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) +{ + omObjData *var_r31; + ModelData *var_r26; + s32 temp_r29; + s32 i; + + var_r31 = lbl_1_bss_A0; + for (i = 0; i < var_r31->mdlcnt; i++) { + var_r26 = &Hu3DData[var_r31->model[i]]; + if (var_r26->attr & 1) { + break; + } + } + if (i >= var_r31->mdlcnt) { + return -1; + } + temp_r29 = var_r31->model[i]; + Hu3DModelPosSet(temp_r29, arg0.x, arg0.y, arg0.z); + Hu3DModelRotSet(temp_r29, arg1.x, arg1.y, arg1.z); + Hu3DModelScaleSet(temp_r29, arg2, arg2, arg2); + Hu3DMotionTimeSet(temp_r29, 0.0f); + Hu3DMotionSpeedSet(temp_r29, 2.0f); + Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); + return i; +} + +void fn_1_E460(void) +{ + omObjData *temp_r3; + + temp_r3 = lbl_1_bss_9C = omAddObjEx(lbl_1_bss_120, 0xBF, 1, 0, -1, fn_1_E4EC); + temp_r3->model[0] = fn_1_E678(); + Hu3DModelCameraSet(temp_r3->model[0], 4); + Hu3DModelLayerSet(temp_r3->model[0], 2); +} + +void fn_1_E4EC(omObjData *arg0) +{ + ModelData *var_r29; + StructM423_0B *var_r28; + StructM423_0A *var_r31; + s32 i; + + var_r29 = &Hu3DData[arg0->model[0]]; + var_r28 = var_r29->unk_120; + var_r31 = var_r28->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + continue; + } + var_r31->unk00++; + if (var_r31->unk00 < 12.0f) { + var_r31->unk04 += 0.058333337f; + } + else { + var_r31->unk04 += 0.025000002f; + var_r31->unk10 -= 0.050000004f; + } + if (var_r31->unk10 < 0.0f) { + var_r31->unk00 = 0; + } + } +} + +void fn_1_E60C(void) +{ + omObjData *temp_r31; + ModelData *var_r30; + StructM423_0B *var_r29; + + temp_r31 = lbl_1_bss_9C; + var_r30 = &Hu3DData[temp_r31->model[0]]; + var_r29 = var_r30->unk_120; + HuSprAnimKill(var_r29->unk200); + temp_r31->func = NULL; +} + +s32 fn_1_E678(void) +{ + float sp88[32][2]; + float sp8[32]; + float temp_f28; + float temp_f30; + float temp_f29; + float var_f31; + ModelData *temp_r27; + StructM423_0B *var_r30; + StructM423_09 *var_r29; + StructM423_08 *var_r28; + s32 var_r26; + s32 i; + + var_r26 = Hu3DHookFuncCreate(fn_1_EF44); + temp_r27 = &Hu3DData[var_r26]; + var_r30 = temp_r27->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), temp_r27->unk_48); + memset(var_r30, 0, sizeof(*var_r30)); + var_r30->unk20C = HuMemDirectMallocNum(HEAP_DATA, 32 * sizeof(*var_r30->unk20C), temp_r27->unk_48); + memset(var_r30->unk20C, 0, 32 * sizeof(*var_r30->unk20C)); + var_r30->unk210 = HuMemDirectMallocNum(HEAP_DATA, 32 * sizeof(*var_r30->unk210), temp_r27->unk_48); + memset(var_r30->unk210, 0, 32 * sizeof(*var_r30->unk210)); + var_r30->unk214 = HuMemDirectMallocNum(HEAP_DATA, 5 * sizeof(*var_r30->unk214), temp_r27->unk_48); + memset(var_r30->unk214, 0, 5 * sizeof(*var_r30->unk214)); + var_r30->unk204 = GXGetTexBufferSize(640, 480, GX_TF_RGB5A3, GX_FALSE, 0); + var_r30->unk208 = HuMemDirectMallocNum(HEAP_DATA, var_r30->unk204, temp_r27->unk_48); + DCFlushRange(var_r30->unk208, var_r30->unk204); + var_r30->unk200 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 23), MEMORY_DEFAULT_NUM)); + var_f31 = 0.0f; + for (i = 0; i < 32; i++) { + temp_f28 = 1.0f + 0.001f * frandmod(1000); + sp8[i] = temp_f28; + var_f31 += temp_f28; + sp88[i][1] = 80.0f * temp_f28; + sp88[i][0] = 10.0f + 0.02f * frandmod(1000); + } + var_f31 = 360.0f / var_f31; + for (i = 0; i < 32; i++) { + sp8[i] *= var_f31; + } + var_f31 = frandmod(90); + var_r28 = var_r30->unk20C; + var_r29 = var_r30->unk210; + for (i = 0; i < 32; var_r28++, var_r29++, i++) { + temp_f29 = -cosd(var_f31); + temp_f30 = sind(var_f31); + var_r28->unk24 = temp_f29 * sp88[i][0]; + var_r28->unk28 = temp_f30 * sp88[i][0]; + var_r28->unk0C = temp_f29 * (sp88[i][0] + sp88[i][1]); + var_r28->unk10 = temp_f30 * (sp88[i][0] + sp88[i][1]); + var_r28->unk00 = temp_f29 * (sp88[i][0] + 0.85f * sp88[i][1]); + var_r28->unk04 = temp_f30 * (sp88[i][0] + 0.85f * sp88[i][1]); + var_r29->unk00 = -0.3f * -temp_f29; + var_r29->unk04 = -0.3f * temp_f30; + temp_f29 = -cosd(var_f31 - 0.4f * sp8[i]); + temp_f30 = sind(var_f31 - 0.4f * sp8[i]); + var_r28->unk30 = temp_f29 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r28->unk34 = temp_f30 * (sp88[i][0] + 0.7f * sp88[i][1]); + temp_f29 = -cosd(var_f31 + 0.4f * sp8[i]); + temp_f30 = sind(var_f31 + 0.4f * sp8[i]); + var_r28->unk18 = temp_f29 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r28->unk1C = temp_f30 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r29->unk08 = var_r29->unk0C = var_r29->unk10 = var_r29->unk14 = 0.0f; + var_r29->unk18 = var_r29->unk1C = var_r29->unk20 = var_r29->unk24 = 0.0f; + var_f31 += sp8[i]; + } + for (i = 0; i < 5; i++) { + var_r30->unk214[i].r = var_r30->unk214[i].g = var_r30->unk214[i].b = 0xFF; + var_r30->unk214[i].a = 0xFF; + } + var_r30->unk218 = 32 * 54; + var_r30->unk220 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r30->unk218, MEMORY_DEFAULT_NUM); + GXBeginDisplayList(var_r30->unk220, var_r30->unk218); + for (i = 0; i < 32; i++) { + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 6); + + GXPosition1x16(i * 5); + GXColor1x16(0); + GXTexCoord1x16(i * 5); + + GXPosition1x16(i * 5 + 1); + GXColor1x16(1); + GXTexCoord1x16(i * 5 + 1); + + GXPosition1x16(i * 5 + 2); + GXColor1x16(2); + GXTexCoord1x16(i * 5 + 2); + + GXPosition1x16(i * 5 + 3); + GXColor1x16(3); + GXTexCoord1x16(i * 5 + 3); + + GXPosition1x16(i * 5 + 4); + GXColor1x16(4); + GXTexCoord1x16(i * 5 + 4); + + GXPosition1x16(i * 5 + 1); + GXColor1x16(1); + GXTexCoord1x16(i * 5 + 1); + + GXEnd(); + } + var_r30->unk21C = GXEndDisplayList(); + DCFlushRangeNoSync(var_r30->unk20C, 32 * sizeof(*var_r30->unk20C)); + DCFlushRangeNoSync(var_r30->unk210, 32 * sizeof(*var_r30->unk210)); + DCFlushRangeNoSync(var_r30->unk214, 5 * sizeof(*var_r30->unk214)); + DCFlushRangeNoSync(var_r30->unk220, var_r30->unk218); + DCStoreRangeNoSync(var_r30, sizeof(*var_r30)); + PPCSync(); + return var_r26; +} + +GXColor lbl_1_data_7FC[] = { { 0x66, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0x66, 0xFF }, { 0x66, 0x00, 0x5B, 0xFF }, { 0x00, 0x66, 0x00, 0xFF }, + { 0x42, 0x00, 0x4C, 0xFF }, { 0x47, 0x28, 0x00, 0xFF }, { 0x66, 0x66, 0x00, 0xFF }, { 0x00, 0x00, 0x00, 0xFF } }; + +void fn_1_EF44(ModelData *arg0, Mtx arg1) +{ + Mtx sp124; + Mtx spF4; + Mtx spC4; + Mtx sp94; + Mtx sp64; + Mtx sp34; + GXTexObj sp14; + GXColor sp10 = { 0xCC, 0xCC, 0xCC, 0x7F }; + StructM423_0B *temp_r30; + StructM423_0A *var_r31; + s32 i; + + temp_r30 = arg0->unk_120; + GXSetTexCopySrc(0, 0, 640, 480); + GXSetTexCopyDst(640, 480, GX_TF_RGB5A3, GX_FALSE); + GXCopyTex(temp_r30->unk208, GX_FALSE); + GXPixModeSync(); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); + GXLoadPosMtxImm(sp64, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&sp14, temp_r30->unk208, 640, 480, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + HuSprTexLoad(temp_r30->unk200, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); + GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG1, sp10); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C1, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_RASA, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk20C, 12); + GXSetArray(GX_VA_CLR0, temp_r30->unk214, 4); + GXSetArray(GX_VA_TEX0, temp_r30->unk210, 8); + var_r31 = temp_r30->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + continue; + } + lbl_1_data_7FC[var_r31->unk02].a = 255.0f * var_r31->unk10; + GXSetTevColor(GX_TEVREG0, lbl_1_data_7FC[var_r31->unk02]); + MTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); + MTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); + GXLoadPosMtxImm(sp64, GX_PNMTX0); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); + GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); + MTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); + GXLoadTexMtxImm(sp124, GX_TEXMTX1, GX_MTX2x4); + GXCallDisplayList(temp_r30->unk220, temp_r30->unk21C); + } + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) +{ + omObjData *var_r29; + ModelData *var_r28; + StructM423_0B *var_r26; + StructM423_0A *var_r31; + s32 var_r27; + s32 i; + + var_r29 = lbl_1_bss_9C; + var_r28 = &Hu3DData[var_r29->model[0]]; + var_r26 = var_r28->unk_120; + var_r31 = var_r26->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + break; + } + } + if (i < 16) { + if (arg2 < 0) { + arg2 = 0; + } + var_r31->unk00 = 1; + var_r31->unk02 = arg2; + var_r31->unk10 = 1.0f; + var_r31->unk08 = arg1; + var_r31->unk04 = 0.25f; + var_r31->unk0C = frandmod(360); + var_r31->unk14 = arg0; + } +} + +void fn_1_F690(void) +{ + lbl_1_bss_98 = omAddObjEx(lbl_1_bss_120, 0xFE, 0, 0, -1, fn_1_F6E0); +} + +s32 lbl_1_data_81C[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 13), DATA_MAKE_NUM(DATADIR_MGCONST, 14), + DATA_MAKE_NUM(DATADIR_MGCONST, 15), DATA_MAKE_NUM(DATADIR_MGCONST, 16), DATA_MAKE_NUM(DATADIR_MGCONST, 17), DATA_MAKE_NUM(DATADIR_MGCONST, 18), + DATA_MAKE_NUM(DATADIR_MGCONST, 19) }; + +s16 lbl_1_data_83C[] = { 0x7F, 0x7F, 0x7F, 0x100 }; + +s16 lbl_1_data_844[][2] = { { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, { 24, -8 }, { 24, -8 }, + { 42, -8 }, { 42, -8 }, { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, { 42, 10 }, { 42, 10 }, + { 60, 10 }, { 60, 10 } }; + +void fn_1_F6E0(omObjData *arg0) +{ + StructM423_0C *var_r31; + s32 sp8; + s32 var_r29; + s32 i; + + if ((sp8 = lbl_1_bss_EC[3]) != -1) { + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk00 = 480; + var_r31->unk04 = 70; + var_r31->unk08 = 0; + var_r31->unk0C = 0; + for (i = 0; i < 24; i++) { + switch (i) { + case 0: + case 1: + case 2: + var_r29 = espEntry(lbl_1_data_81C[lbl_1_bss_EC[i]], lbl_1_data_83C[i], 0); + var_r31->unk10[i] = var_r29; + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + case 3: + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 38), lbl_1_data_83C[i], 0); + var_r31->unk10[i] = var_r29; + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + default: + if (!(i & 1)) { + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 24), 0x40, 0); + var_r31->unk10[i] = var_r29; + } + else { + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 25), 0x20, 0); + var_r31->unk10[i] = var_r29; + } + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + } + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, 1); + espPosSet(var_r29, var_r31->unk00 + var_r31->unk70[i][0], var_r31->unk04 + var_r31->unk70[i][1]); + espBankSet(var_r29, 0); + } + for (i = 0; i < 10; i++) { + var_r31->unk190[i][0] = 0; + var_r31->unk190[i][1] = 0; + } + fn_1_10028(0); + arg0->func = fn_1_FA40; + } +} + +void fn_1_FA40(omObjData *arg0) +{ + float var_f31; + float var_f28; + float temp_f30; + float temp_f29; + StructM423_0C *temp_r31; + s32 temp_r28; + s32 temp_r29; + s32 i; + + temp_r31 = arg0->data; + if (lbl_1_bss_104 != temp_r31->unk08) { + temp_r31->unk08 = lbl_1_bss_104; + temp_r31->unk0C = 20; + } + if (temp_r31->unk0C != 0) { + var_f31 = 1.0 + 0.8f * sind(180.0f * (temp_r31->unk0C / 20.0f)); + temp_r31->unk0C--; + } + else { + var_f31 = 1.0f; + } + var_f31 = 1.0f; + temp_r28 = 10 - lbl_1_bss_104; + for (i = 0; i < 4; i++) { + temp_f30 = temp_r31->unk00 + temp_r31->unk70[i][0]; + temp_f29 = temp_r31->unk04 + temp_r31->unk70[i][1]; + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); + } + for (i = 4; i < 24; i++) { + temp_f30 = temp_r31->unk00 + temp_r31->unk70[i][0]; + temp_f29 = temp_r31->unk04 + temp_r31->unk70[i][1]; + if (!(i & 1)) { + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); + } + else { + temp_r29 = (i - 4) / 2; + if (temp_r28 > temp_r29) { + temp_r31->unk190[temp_r29][0] = 1; + } + else { + temp_r31->unk190[temp_r29][0] = 0; + } + if (temp_r31->unk190[temp_r29][0] != 0) { + if (temp_r31->unk190[temp_r29][1] < 15) { + temp_r31->unk190[temp_r29][1]++; + var_f31 = 3.0f - 2.0f * (temp_r31->unk190[temp_r29][1] / 15.0f); + var_f28 = temp_r31->unk190[temp_r29][1] / 15.0f; + } + else { + var_f31 = 1.0f; + var_f28 = 1.0f; + } + espDispOn(temp_r31->unk10[i]); + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espTPLvlSet(temp_r31->unk10[i], var_f28); + espScaleSet(temp_r31->unk10[i], var_f31, var_f31); + } + else { + espDispOff(temp_r31->unk10[i]); + } + } + } +} + +void fn_1_FF10(omObjData *arg0) +{ + StructM423_0C *temp_r29; + s32 i; + + if (arg0 && arg0->data) { + temp_r29 = arg0->data; + for (i = 0; i < 24; i++) { + espKill(temp_r29->unk10[i]); + } + arg0->data = NULL; + arg0->func = NULL; + } +} + +void fn_1_FF98(void) +{ + fn_1_FF10(lbl_1_bss_98); +} + +void fn_1_10028(s32 arg0) +{ + StructM423_0C *temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_98->data; + for (i = 0; i < 24; i++) { + if (arg0 != 0) { + espDispOn(temp_r30->unk10[i]); + } + else { + espDispOff(temp_r30->unk10[i]); + } + if (i >= 4 && (i & 1)) { + espDispOff(temp_r30->unk10[i]); + } + } +} + +void fn_1_100DC(void) +{ + omObjData *temp_r3; + s32 i; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 240.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0, 0, 640, 480); + Hu3DCameraCreate(4); + Hu3DCameraPerspectiveSet(4, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(4, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(4, 0, 0, 640, 480); + temp_r3 = lbl_1_bss_8C = omAddObjEx(lbl_1_bss_120, 0x7FDA, 0, 0, -1, omOutViewMulti); + temp_r3->work[0] = 3; + for (i = 0; i < temp_r3->work[0]; i++) { + CRotM[i].x = lbl_1_data_0[0].unk00.x; + CRotM[i].y = lbl_1_data_0[0].unk00.y; + CRotM[i].z = lbl_1_data_0[0].unk00.z; + CenterM[i].x = lbl_1_data_0[0].unk0C.x; + CenterM[i].y = lbl_1_data_0[0].unk0C.y; + CenterM[i].z = lbl_1_data_0[0].unk0C.z; + CZoomM[i] = lbl_1_data_0[0].unk18; + } + lbl_1_bss_84 = 0; + lbl_1_bss_88 = -1; + omAddObjEx(lbl_1_bss_120, 0xFF, 0, 0, -1, fn_1_10480); +} + +void fn_1_10480(omObjData *arg0) +{ + CRotM[1].x = CRotM[0].x; + CRotM[1].y = CRotM[0].y; + CRotM[1].z = CRotM[0].z; + CenterM[1].x = CenterM[0].x; + CenterM[1].y = CenterM[0].y; + CenterM[1].z = CenterM[0].z; + CZoomM[1] = CZoomM[0]; +} + +void fn_1_1052C(void) { } + +s32 fn_1_10530(void) +{ + return lbl_1_bss_84; +} + +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) +{ + StructData0 *temp_r31; + StructData0 *temp_r30; + + temp_r31 = &lbl_1_data_0[arg1]; + temp_r30 = &lbl_1_data_0[arg2]; + CRotM[arg0].x = fn_1_12544(arg3, temp_r31->unk00.x, temp_r30->unk00.x); + CRotM[arg0].y = fn_1_12544(arg3, temp_r31->unk00.y, temp_r30->unk00.y); + CRotM[arg0].z = fn_1_12544(arg3, temp_r31->unk00.z, temp_r30->unk00.z); + CenterM[arg0].x = temp_r31->unk0C.x + arg3 * (temp_r30->unk0C.x - temp_r31->unk0C.x); + CenterM[arg0].y = temp_r31->unk0C.y + arg3 * (temp_r30->unk0C.y - temp_r31->unk0C.y); + CenterM[arg0].z = temp_r31->unk0C.z + arg3 * (temp_r30->unk0C.z - temp_r31->unk0C.z); + CZoomM[arg0] = temp_r31->unk18 + arg3 * (temp_r30->unk18 - temp_r31->unk18); +} + +float lbl_1_data_8A4[] = { 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f }; + +void fn_1_106D8(s32 arg0) +{ + float var_f31; + StructBssBCData *var_r30; + s32 var_r29; + + if (lbl_1_bss_90 != arg0) { + CRotM->x = lbl_1_data_38[arg0].unk00.x; + CRotM->y = lbl_1_data_38[arg0].unk00.y; + CRotM->z = lbl_1_data_38[arg0].unk00.z; + CenterM->x = lbl_1_data_38[arg0].unk0C.x; + CenterM->y = lbl_1_data_38[arg0].unk0C.y; + CenterM->z = lbl_1_data_38[arg0].unk0C.z; + CZoomM[0] = lbl_1_data_38[arg0].unk18; + lbl_1_bss_80 = 0; + if (arg0 != 0) { + lbl_1_bss_7C = frand(); + } + else { + lbl_1_bss_7C = 0; + } + lbl_1_bss_90 = arg0; + } + var_r29 = lbl_1_bss_90; + switch (var_r29) { + case 0: + case 1: + case 2: + lbl_1_bss_80++; + if (lbl_1_bss_7C & 1) { + var_f31 = cosd((float)lbl_1_bss_80); + } + else { + var_f31 = -cosd((float)lbl_1_bss_80); + } + CRotM->y = 23.0f * var_f31 + lbl_1_data_38[arg0].unk00.y; + break; + case 3: + case 4: + case 5: + lbl_1_bss_80++; + if (lbl_1_bss_7C & 1) { + CRotM->y = lbl_1_data_38[arg0].unk00.y - 45.0f + 0.5f * lbl_1_bss_80; + } + else { + CRotM->y = lbl_1_data_38[arg0].unk00.y + 45.0f - 0.5f * lbl_1_bss_80; + } + break; + case 6: + case 7: + case 8: + if (lbl_1_bss_AC[var_r29 - 6] != NULL) { + var_r30 = lbl_1_bss_AC[var_r29 - 6]->data; + CenterM->y = lbl_1_data_8A4[var_r30->unk02]; + } + break; + case 9: + if (lbl_1_bss_B8 != NULL) { + var_r30 = lbl_1_bss_B8->data; + CenterM->x = lbl_1_bss_B8->trans.x; + CenterM->z = lbl_1_bss_B8->trans.z; + CenterM->y = lbl_1_data_8A4[var_r30->unk02]; + } + break; + } +} + +void fn_1_10BC8(void) +{ + Mtx44 sp64; + Mtx sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + GXColor spC; + CameraData *var_r31; + + var_r31 = &Hu3DCamera[0]; + if (var_r31->fov <= 0.0f) { + return; + } + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); + GXSetProjection(sp64, GX_PERSPECTIVE); + GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + GXSetScissor(0, 0, 640, 480); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + spC.r = spC.g = spC.b = 0; + spC.a = 0xFF; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetCullMode(GX_CULL_NONE); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + sp28.x = sp28.y = sp28.z = 0.0f; + sp1C.x = sp1C.y = 0.0f; + sp1C.z = -100.0f; + sp10.x = sp10.z = 0.0f; + sp10.y = 1.0f; + C_MTXLookAt(sp34, &sp28, &sp10, &sp1C); + GXLoadPosMtxImm(sp34, GX_PNMTX0); + sp28.x = 10000.0 * -sin(var_r31->fov / 2.0f) * 1.2f; + sp28.y = 10000.0 * -sin(var_r31->fov / 2.0f) * 0.8333333f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, sp28.y, -10000.0f); + GXPosition3f32(-sp28.x, sp28.y, -10000.0f); + GXEnd(); +} + +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) +{ + GXTexObj sp18; + StructBssD0Data *var_r31; + + var_r31 = arg0; + GXInitTexObj(&sp18, arg1, var_r31->unk00, var_r31->unk04, GX_TF_RGB5A3, arg3, arg3, GX_FALSE); + if (arg5 != 0) { + GXInitTexObjLOD(&sp18, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + else { + GXInitTexObjLOD(&sp18, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&sp18, arg2); +} + +s16 fn_1_11114(AnimData *arg0, s16 arg1) +{ + s16 var_r23; + s16 i; + ModelData *temp_r27; + StructM423_05 *var_r31; + StructM423_04 *var_r29; + Vec *var_r25; + float(*var_r28)[2]; + void *var_r24; + void *var_r22; + + var_r23 = Hu3DHookFuncCreate(fn_1_11900); + temp_r27 = &Hu3DData[var_r23]; + temp_r27->unk_120 = var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r27->unk_48); + var_r31->unk38 = arg0; + var_r31->unk26 = arg1; + var_r31->unk20 = 0; + var_r31->unk22 = 0; + var_r31->unk4C = NULL; + var_r31->unk50 = NULL; + var_r31->unk28 = 0; + var_r31->unk21 = 0; + var_r31->unk23 = 0; + var_r31->unk30 = 0; + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk3C = var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r29), temp_r27->unk_48); + memset(var_r29, 0, arg1 * sizeof(*var_r29)); + for (i = 0; i < arg1; i++, var_r29++) { + var_r29->unk30 = 0.0f; + var_r29->unk34 = 0.0f; + var_r29->unk28 = 0.0f; + var_r29->unk2C = 1.0f; + var_r29->unk38.x = (frand7() - 64) * 20; + var_r29->unk38.y = (frand7() - 64) * 30; + var_r29->unk38.z = (frand7() - 64) * 20; + var_r29->unk44.r = var_r29->unk44.g = var_r29->unk44.b = var_r29->unk44.a = 0xFF; + var_r29->unk48 = 0; + } + var_r31->unk40 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r25) * 4, temp_r27->unk_48); + for (i = 0; i < arg1 * 4; i++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r31->unk44 = var_r28 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r28) * 4, temp_r27->unk_48); + for (i = 0; i < arg1; i++) { + (*var_r28)[0] = 0.0f; + (*var_r28)[1] = 0.0f; + var_r28++; + (*var_r28)[0] = 1.0f; + (*var_r28)[1] = 0.0f; + var_r28++; + (*var_r28)[0] = 1.0f; + (*var_r28)[1] = 1.0f; + var_r28++; + (*var_r28)[0] = 0.0f; + (*var_r28)[1] = 1.0f; + var_r28++; + } + var_r22 = var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, temp_r27->unk_48); + DCFlushRange(var_r24, 0x10000); + GXBeginDisplayList(var_r22, 0x10000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (i = 0; i < arg1; i++) { + GXPosition1x16(i * 4); + GXColor1x16(i); + GXTexCoord1x16(i * 4); + + GXPosition1x16(i * 4 + 1); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 1); + + GXPosition1x16(i * 4 + 2); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 2); + + GXPosition1x16(i * 4 + 3); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 3); + } + GXEnd(); + var_r31->unk34 = GXEndDisplayList(); + var_r31->unk48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk34, temp_r27->unk_48); + memcpy(var_r31->unk48, var_r24, var_r31->unk34); + DCFlushRange(var_r31->unk48, var_r31->unk34); + HuMemDirectFree(var_r24); + return var_r23; +} + +s16 fn_1_115C4(s16 arg0) +{ + s32 temp_r24; + s16 var_r22; + s16 i; + ModelData *temp_r23; + ModelData *temp_r27; + StructM423_05 *temp_r26; + StructM423_05 *var_r31; + StructM423_04 *var_r30; + Vec *var_r25; + float(*var_r29)[2]; + + temp_r23 = &Hu3DData[arg0]; + temp_r26 = temp_r23->unk_120; + var_r22 = Hu3DHookFuncCreate(temp_r23->hook); + temp_r27 = &Hu3DData[var_r22]; + temp_r27->unk_120 = var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r27->unk_48); + var_r31->unk38 = temp_r26->unk38; + var_r31->unk26 = temp_r26->unk26; + temp_r24 = var_r31->unk26; + var_r31->unk20 = 0; + var_r31->unk22 = temp_r26->unk22; + var_r31->unk4C = NULL; + var_r31->unk50 = NULL; + var_r31->unk28 = 0; + var_r31->unk21 = 0; + var_r31->unk30 = 0; + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk3C = var_r30 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r30), temp_r27->unk_48); + for (i = 0; i < temp_r24; i++, var_r30++) { + var_r30->unk30 = 0.0f; + var_r30->unk34 = 0.0f; + var_r30->unk28 = 0.0f; + var_r30->unk2C = 1.0f; + var_r30->unk38.x = (frand7() - 64) * 20; + var_r30->unk38.y = (frand7() - 64) * 30; + var_r30->unk38.z = (frand7() - 64) * 20; + var_r30->unk44.r = var_r30->unk44.g = var_r30->unk44.b = var_r30->unk44.a = 0xFF; + var_r30->unk48 = 0; + } + var_r31->unk40 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r25) * 4, temp_r27->unk_48); + for (i = 0; i < (temp_r24 * 4); i++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r31->unk44 = var_r29 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r29) * 4, temp_r27->unk_48); + for (i = 0; i < temp_r24; i++) { + (*var_r29)[0] = 0.0f; + (*var_r29)[1] = 0.0f; + var_r29++; + (*var_r29)[0] = 1.0f; + (*var_r29)[1] = 0.0f; + var_r29++; + (*var_r29)[0] = 1.0f; + (*var_r29)[1] = 1.0f; + var_r29++; + (*var_r29)[0] = 0.0f; + (*var_r29)[1] = 1.0f; + var_r29++; + } + var_r31->unk34 = temp_r26->unk34; + var_r31->unk48 = temp_r26->unk48; + return var_r22; +} + +Vec lbl_1_data_8C4[] = { { -0.5f, 0.5f, 0.0f }, { 0.5f, 0.5f, 0.0f }, { 0.5f, -0.5f, 0.0f }, { -0.5f, -0.5f, 0.0f } }; + +float lbl_1_data_8F4[][2] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; + +void fn_1_11900(ModelData *arg0, Mtx arg1) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + StructM423_05 *temp_r31; + StructM423_04 *var_r29; + Vec *var_r30; + float(*var_r28)[2]; + Vec *temp_r27; + Vec *temp_r24; + s16 var_r21; + s16 var_r20; + s16 var_r19; + void (*var_r18)(ModelData *, struct struct_m423_05 *, Mtx); + s16 i; + s16 j; + + temp_r31 = arg0->unk_120; + if (temp_r31->unk2C == GlobalCounter && shadowModelDrawF == 0) { + return; + } + if (temp_r31->unk50 && temp_r31->unk50 != arg0) { + fn_1_11900(temp_r31->unk50, arg1); + } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else { + var_r21 = temp_r31->unk38->bmp->dataFmt & 0xF; + if (var_r21 == 7 || var_r21 == 8) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if (temp_r31->unk22 & 1) { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else if (arg0->attr & 2) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(temp_r31->unk38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + switch (temp_r31->unk20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if (HmfInverseMtxF3X3(arg1, sp128) == 0) { + MTXIdentity(sp128); + } + PSMTXReorder(sp128, sp8); + if (temp_r31->unk4C) { + var_r18 = temp_r31->unk4C; + var_r18(arg0, temp_r31, arg1); + } + var_r29 = temp_r31->unk3C; + var_r30 = temp_r31->unk40; + var_r28 = temp_r31->unk44; + PSMTXROMultVecArray(sp8, lbl_1_data_8C4, sp38, 4); + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + if (!var_r29->unk30) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else if (!var_r29->unk34) { + temp_r27 = sp98; + temp_r24 = sp38; + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + } + else { + VECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); + VECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); + VECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); + VECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); + MTXRotRad(spC8, 'Z', var_r29->unk34); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, sp98, sp68, 4); + VECAdd(&sp68[0], &var_r29->unk38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk38, var_r30++); + } + } + var_r29 = temp_r31->unk3C; + var_r28 = temp_r31->unk44; + if (!(temp_r31->unk22 & 2)) { + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + var_r20 = var_r29->unk48 & 3; + var_r19 = (var_r29->unk48 >> 2) & 3; + for (j = 0; j < 4; j++, var_r28++) { + (*var_r28)[0] = 0.25f * var_r20 + lbl_1_data_8F4[j][0]; + (*var_r28)[1] = 0.25f * var_r19 + lbl_1_data_8F4[j][1]; + } + } + } + else { + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + for (j = 0; j < 4; j++, var_r28++) { + (*var_r28)[0] = 4.0f * lbl_1_data_8F4[j][0]; + (*var_r28)[1] = 4.0f * lbl_1_data_8F4[j][1]; + } + } + } + DCFlushRangeNoSync(temp_r31->unk40, temp_r31->unk26 * sizeof(*temp_r31->unk40) * 4); + DCFlushRangeNoSync(temp_r31->unk44, temp_r31->unk26 * sizeof(*temp_r31->unk44) * 4); + DCFlushRangeNoSync(temp_r31->unk3C, temp_r31->unk26 * sizeof(*temp_r31->unk3C)); + PPCSync(); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->unk40, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &temp_r31->unk3C->unk44, 76); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r31->unk44, 8); + GXCallDisplayList(temp_r31->unk48, temp_r31->unk34); + if (shadowModelDrawF == 0) { + if (!(temp_r31->unk21 & 2)) { + temp_r31->unk28++; + } + if (temp_r31->unk30 != 0 && temp_r31->unk30 <= temp_r31->unk28) { + if (temp_r31->unk21 & 1) { + temp_r31->unk28 = 0; + } + temp_r31->unk28 = temp_r31->unk30; + } + temp_r31->unk2C = GlobalCounter; + } +} + +float fn_1_121DC(float arg0, float arg1) +{ + float var_f31; + + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + else if (arg0 < 0.0f) { + arg0 += 360.0f; + } + if (arg1 >= 360.0f) { + arg1 -= 360.0f; + } + else if (arg1 < 0.0f) { + arg1 += 360.0f; + } + var_f31 = arg0 - arg1; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_122F4(float arg0, float arg1, float arg2) +{ + float var_f30; + float var_f31; + + if (arg0 >= 360.0) { + arg0 -= 360.0; + } + else if (arg0 < 0.0) { + arg0 += 360.0; + } + if (arg1 >= 360.0) { + arg1 -= 360.0; + } + else if (arg1 < 0.0) { + arg1 += 360.0; + } + var_f30 = arg0 - arg1 + 360.0; + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= arg2) { + var_f31 = var_f30; + } + else { + var_f31 = arg2; + } + } + else { + if (360.0 - var_f30 <= arg2) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -arg2; + } + } + var_f31 += arg1; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_12544(float arg0, float arg1, float arg2) +{ + float var_f28; + + var_f28 = fn_1_121DC(arg2, arg1); + return fn_1_122F4(arg2, arg1, fabs(var_f28 * arg0)); +} + +void fn_1_1293C(Mtx arg0, Vec *arg1) +{ + Vec sp8; + + sp8.x = arg0[0][0] * arg1->x + arg0[0][1] * arg1->y + arg0[0][2] * arg1->z; + sp8.y = arg0[1][0] * arg1->x + arg0[1][1] * arg1->y + arg0[1][2] * arg1->z; + sp8.z = arg0[2][0] * arg1->x + arg0[2][1] * arg1->y + arg0[2][2] * arg1->z; + *arg1 = sp8; +} + +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3) +{ + Vec sp18; + Vec spC; + float var_f30; + float var_f29; + + sp18.x = arg1->x - arg0->x; + sp18.y = arg1->y - arg0->y; + sp18.z = arg1->z - arg0->z; + spC.x = arg2->x - arg1->x; + spC.y = arg2->y - arg1->y; + spC.z = arg2->z - arg1->z; + arg3[0] = sp18.y * spC.z - sp18.z * spC.y; + arg3[1] = sp18.z * spC.x - sp18.x * spC.z; + arg3[2] = sp18.x * spC.y - sp18.y * spC.x; + var_f29 = arg3[0] * arg3[0] + arg3[1] * arg3[1] + arg3[2] * arg3[2]; + var_f30 = sqrtf(var_f29); + if (var_f30 != 0.0f) { + var_f30 = 1.0f / var_f30; + } + else { + var_f30 = 0.0f; + } + arg3[0] *= var_f30; + arg3[1] *= var_f30; + arg3[2] *= var_f30; + arg3[3] = -(arg3[0] * arg0->x + arg3[1] * arg0->y + arg3[2] * arg0->z); +} + +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2) +{ + float temp_f31; + float temp_f30; + + temp_f31 = arg0->x * arg2[0] + arg0->y * arg2[1] + arg0->z * arg2[2] + arg2[3]; + temp_f30 = arg1->x * arg2[0] + arg1->y * arg2[1] + arg1->z * arg2[2] + arg2[3]; + if (temp_f31 <= 0.0f && temp_f30 > 0.0f) { + return 1; + } + if (temp_f31 >= 0.0f && temp_f30 < 0.0f) { + return -1; + } + return 0; +} + +float fn_1_12D6C(Vec *arg0, Vec *arg1, s32 arg2, float arg3, float arg4) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + + switch (arg2) { + case 0: + var_f31 = arg0->y - arg3; + var_f30 = arg0->z - arg4; + var_f29 = arg1->y - arg3; + var_f28 = arg1->z - arg4; + break; + case 1: + var_f31 = arg0->x - arg3; + var_f30 = arg0->z - arg4; + var_f29 = arg1->x - arg3; + var_f28 = arg1->z - arg4; + break; + case 2: + var_f31 = arg0->x - arg3; + var_f30 = arg0->y - arg4; + var_f29 = arg1->x - arg3; + var_f28 = arg1->y - arg4; + break; + } + var_f27 = -(var_f30 * var_f29 - var_f31 * var_f28); + return var_f27; +} + +u8 lbl_1_data_914[][2] = { { 0, 1 }, { 1, 2 }, { 2, 0 } }; + +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2) +{ + float var_f31; + float var_f30; + float var_f29; + s32 i; + + switch (arg2) { + case 0: + var_f31 = arg1->y; + var_f30 = arg1->z; + break; + case 1: + var_f31 = arg1->x; + var_f30 = arg1->z; + break; + case 2: + var_f31 = arg1->x; + var_f30 = arg1->y; + break; + } + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[0][0]], &arg0[lbl_1_data_914[0][1]], arg2, var_f31, var_f30); + if (var_f29 > 0.0f) { + for (i = 1; i < 3; i++) { + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); + if (var_f29 == 0.0f) { + return 1.0f; + } + if (var_f29 < 0.0f) { + return 0.0f; + } + } + return 1.0f; + } + else { + for (i = 1; i < 3; i++) { + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); + if (var_f29 == 0.0f) { + return -1.0f; + } + if (var_f29 > 0.0f) { + return 0.0f; + } + } + return -1.0f; + } +} + +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f30; + float temp_f29; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + float spC; + float var_f28; + + temp_f26 = arg0[0]; + temp_f25 = arg0[1]; + temp_f24 = arg0[2]; + var_f19 = arg3->x; + var_f18 = arg3->y; + spC = arg3->z; + temp_f31 = arg2->x; + temp_f30 = arg2->y; + temp_f29 = arg2->z; + var_f22 = arg1->x; + var_f21 = arg1->y; + var_f20 = arg1->z; + var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30 + temp_f29 * temp_f29); + if (var_f28 != 0.0f) { + var_f28 = 1.0f / var_f28; + } + temp_f31 *= var_f28; + temp_f30 *= var_f28; + temp_f29 *= var_f28; + var_f28 = temp_f26 * temp_f31 + temp_f25 * temp_f30 + temp_f24 * temp_f29; + if (var_f28 != 0.0f) { + var_f28 = -(temp_f26 * (var_f22 - var_f19) + temp_f25 * (var_f21 - var_f18) + temp_f24 * (var_f20 - spC)) / var_f28; + } + else { + var_f28 = 0.0f; + } + arg4->x = arg1->x + var_f28 * arg2->x; + arg4->y = arg1->y + var_f28 * arg2->y; + arg4->z = arg1->z + var_f28 * arg2->z; +} + +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, f32 *arg4) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + + arg0->z = 0.0f; + arg1->z = 0.0f; + arg2->z = 0.0f; + VECSubtract(arg1, arg0, &sp2C); + VECSubtract(arg2, arg0, &sp20); + temp_f31 = (sp2C.x * sp20.x + sp2C.y * sp20.y) / (sp2C.x * sp2C.x + sp2C.y * sp2C.y); + if (arg4 != NULL) { + *arg4 = temp_f31; + } + VECScale(&sp2C, &sp14, temp_f31); + VECAdd(&sp2C, &sp14, &sp38); + if (arg3 != NULL) { + *arg3 = sp38; + } + VECSubtract(arg2, &sp38, &sp8); + return VECMag(&sp8); +} + +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 var_f31; + + VECAdd(arg1, arg2, &sp28); + *arg3 = sp28; + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp1C, arg4); + VECAdd(arg1, &sp1C, &sp40); + VECAdd(&sp28, &sp1C, &sp34); + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp10, -arg4); + switch (arg5) { + case 0: + if (sp40.y >= arg0[0].y && sp34.y < arg0[0].y) { + if (sp1C.y == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].y - arg1->y) / sp1C.y; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { + arg3->x = temp_f30; + arg3->y = arg0[0].y + arg4 + 1.0f; + arg3->z = temp_f28; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + case 1: + if (sp40.y <= arg0[0].y && sp34.y > arg0[0].y) { + if (sp1C.y == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].y - arg1->y) / sp1C.y; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { + arg3->x = temp_f30; + arg3->y = arg0[0].y - arg4 - 1.0f; + arg3->z = temp_f28; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + case 2: + if (sp40.x <= arg0[0].x && sp34.x > arg0[0].x) { + if (sp1C.x == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].x - arg1->x) / sp1C.x; + } + temp_f29 = arg1->y + var_f31 * sp1C.y; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { + arg3->x = arg0[0].x - arg4 - 1.0f; + arg3->y = temp_f29; + arg3->z = temp_f28; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + case 3: + if (sp40.x >= arg0[0].x && sp34.x < arg0[0].x) { + if (sp1C.x == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].x - arg1->x) / sp1C.x; + } + temp_f29 = arg1->y + var_f31 * sp1C.y; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { + arg3->x = arg0[0].x + arg4 + 1.0f; + arg3->y = temp_f29; + arg3->z = temp_f28; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + case 4: + if (sp40.z >= arg0[0].z && sp34.z < arg0[0].z) { + if (sp1C.z == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].z - arg1->z) / sp1C.z; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f29 = arg1->y + var_f31 * sp1C.y; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { + arg3->x = temp_f30; + arg3->y = temp_f29; + arg3->z = arg0[0].z + arg4 + 1.0f; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + case 5: + if (sp40.z <= arg0[0].z && sp34.z > arg0[0].z) { + if (sp1C.z == 0.0f) { + var_f31 = 0.0f; + } + else { + var_f31 = (arg0[0].z - arg1->z) / sp1C.z; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f29 = arg1->y + var_f31 * sp1C.y; + if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { + arg3->x = temp_f30; + arg3->y = temp_f29; + arg3->z = arg0[0].z - arg4 - 1.0f; + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); + return 1; + } + } + break; + } + return 0; +} diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c new file mode 100644 index 00000000..c8c3177e --- /dev/null +++ b/src/REL/m424Dll/ball.c @@ -0,0 +1,1803 @@ +#include "REL/m424Dll.h" + +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +// STRUCT +typedef struct _M424DllBallStruct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + char unkB[0x1]; + u8 unkC; + u8 unkD; + u8 unkE; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s16 unk18; + s16 unk1A; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + f32 unk2C; + f32 unk30; + Vec unk34; + Vec unk40; + Vec unk4C; + Vec unk58; + void *unk64; // sizeof 0x40 + char unk68[0x3C]; + u8 unkA4; + void *unkA8; // sizeof 0x40 + char unkAC[0x3C]; + s32 unkE8; + s32 unkEC; +} M424DllBallStruct; // sizeof 0xF0 + +typedef struct _M424DllBallStruct3 { + u8 unk0; + M424DllBallStruct2 *unk4; + M424DllBallStruct2 *unk8; +} M424DllBallStruct3; + +typedef struct _M424BallStruct4 { + f32 unk0; + f32 unk4; + f32 unk8; + char unkC[0x8]; + f32 unk14; + f32 unk18; + char unk1C[0x8]; + f32 unk24; + f32 unk28; +} M424BallStruct4; + +// BSS +void *lbl_1_bss_5BC[0x20]; +omObjData *lbl_1_bss_5AC[4]; +omObjData *lbl_1_bss_594[6]; +M424DllBallStruct2 lbl_1_bss_60[9]; +s32 lbl_1_bss_5C; +u8 lbl_1_bss_58; + +// PROTO +f32 fn_1_25C0(void); +void fn_1_28A0(omObjData *object); +void fn_1_2E3C(omObjData *object); +void fn_1_31C0(omObjData *object); +void fn_1_37FC(omObjData *object); +void fn_1_4220(omObjData *object); +void fn_1_469C(omObjData *object); +u8 fn_1_48D0(omObjData *object, u8, u8); +void fn_1_4A90(s16); +void fn_1_6038(void); +void *fn_1_6078(s32); +void fn_1_61AC(void); +s32 fn_1_627C(void); +void fn_1_6230(s16, Mtx); +void fn_1_62D0(s32, u32 *); +f32 fn_1_640C(f32, f32, f32); +f32 fn_1_6D10(Vec, Vec, f32, Vec, Vec, f32); +f32 fn_1_709C(Vec, Vec, f32, f32); +f32 fn_1_7420(Vec, Vec, f32, f32); +void fn_1_77C4(Vec, Vec, Vec, f32, Vec *, Vec *); +void fn_1_79FC(Vec *, Vec *, f32, Vec *, Vec *, f32, f32); +void fn_1_7CA0(Vec, Vec, f32, Vec *); +void fn_1_8924(u8, u8); +void fn_1_8AA8(s32, s32); +s32 fn_1_8C78(s32, s32); +s32 fn_1_907C(Vec *, Vec *); + +void fn_1_2720(Process *arg0) +{ + u32 sp8[10]; + omObjData *var_r30; + s32 temp_r28; + s32 var_r29; + s32 var_r31; + + temp_r28 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < temp_r28; var_r31++) { + fn_1_627C(); + } + fn_1_62D0(8, sp8); + sp8[8] = 8; + + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group != 0) { + var_r30 = omAddObjEx(arg0, 0x3E, 3, 11, 0, fn_1_28A0); + lbl_1_bss_5AC[var_r29] = var_r30; + var_r30->work[0] = var_r31; + var_r30->work[1] = sp8[var_r29]; + var_r29++; + } + } + + for (var_r31 = 0; var_r31 < 6; var_r29++, var_r31++) { + var_r30 = omAddObjEx(arg0, 0x3F, 2, 5, 0, fn_1_4220); + lbl_1_bss_594[var_r31] = var_r30; + var_r30->work[0] = var_r31; + var_r30->work[1] = sp8[var_r29]; + } + Hu3DLayerHookSet(7, fn_1_4A90); + fn_1_6038(); +} + +void fn_1_2880(void) +{ + fn_1_61AC(); +} + +u32 lbl_1_data_150[11] = { 0, 2, 3, 8, 10, 9, 20, 22, 23, 24, 0x370021 }; +Vec lbl_1_data_17C[4] = { { -100.0f, 200.0f, -100.0f }, { 300.0f, 200.0f, -100.0f }, { -300.0f, 200.0f, 300.0f }, { 300.0f, 200.0f, 0.0f } }; + +void fn_1_28A0(omObjData *object) +{ + Vec sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct *var_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + + object->data = var_r31 = fn_1_6078(0xF0); + memset(var_r31, 0, 0xF0); + var_r31->unk0 = object->work[0]; + var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; + var_r31->unk2 = GWPlayerCfg[var_r31->unk0].group; + var_r31->unk3 = 0; + var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; + var_r31->unk5 = GWPlayerCfg[var_r31->unk0].iscom; + var_r31->unk6 = GWPlayerCfg[var_r31->unk0].diff; + var_r31->unk18 = var_r31->unk1A = 0; + var_r31->unk30 = 1.0f; + var_r31->unk7 = 1; + var_r31->unkC = 1; + var_r31->unkD = 0; + var_r31->unkA = 0; + var_r31->unkA4 = 0; + var_r31->unkE = 0; + memset(&var_r31->unk64, 0, 0x40); + var_r31->unkE8 = 0; + var_r31->unkEC = -1; + temp_r28 = object->work[1]; + temp_f31 = 40.0f; + temp_f31 = (temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f)) + 105.0f; + temp_f30 = 125.0f; + temp_f30 = (temp_f30 * (temp_r28 & 1)) + (100.0f + (250.0f + (temp_f30 * (fn_1_627C() / 65536.0f)))); + sp8.x = temp_f30 * sind(temp_f31); + sp8.y = 200.0f; + sp8.z = temp_f30 * cosd(temp_f31); + var_r31->unk34 = sp8; + var_r31->unk4C.x = var_r31->unk4C.y = var_r31->unk4C.z = 0.0f; + var_r31->unk40.x = var_r31->unk40.y = var_r31->unk40.z = 0.0f; + var_r31->unk1C = 0.8f; + var_r31->unk24 = var_r31->unk40.y; + var_r31->unk2C = 1.0f; + var_r31->unk28 = 0.0f; + var_r31->unk20 = 0.0f; + memset(&var_r31->unkA8, 0, 0x40); + object->model[0] = var_r27 = CharModelCreate(var_r31->unk1, 8); + Hu3DModelAttrSet(var_r27, 0x40000001); + CharModelStepTypeSet(var_r31->unk1, 1); + CharModelLayerSetAll(2); + for (var_r29 = 0; var_r29 < 11; var_r29++) { + if (lbl_1_data_150[var_r29] + 0xFFC90000 != 0x21) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_150[var_r29]); + } + else if (var_r31->unk1 == 5) { + object->motion[var_r29] + = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); + } + else { + object->motion[var_r29] = object->motion[0]; + } + if (lbl_1_data_150[var_r29] == 0x16 || lbl_1_data_150[var_r29] == 0x14) { + CharModelVoiceEnableSet(var_r31->unk1, object->motion[var_r29], 0); + } + } + CharModelMotionDataClose(var_r31->unk1); + CharModelMotionSet(var_r31->unk1, object->motion[var_r31->unk18]); + omSetTra(object, var_r31->unk34.x, var_r31->unk34.y, var_r31->unk34.z); + omSetRot(object, var_r31->unk40.x, var_r31->unk40.y, var_r31->unk40.z); + omSetSca(object, var_r31->unk1C, var_r31->unk1C, var_r31->unk1C); + object->model[1] = fn_1_48D0(object, var_r31->unk1, 1); + object->func = fn_1_2E3C; +} + +void fn_1_2E38(void) { } + +void fn_1_2E3C(omObjData *object) +{ + s32 temp_r29; + M424DllBallStruct *temp_r31; + + temp_r29 = object->model[0]; + temp_r31 = object->data; + if (temp_r31->unk7 != 0) { + if ((fn_1_FE0() == 4) && ((temp_r31->unk7 & 2) == 0)) { + if (temp_r31->unk5 != 0) { + fn_1_31C0(object); + } + else { + temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; + temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; + } + } + else { + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + } + switch (temp_r31->unk8) { + case 1: + temp_r31->unkC = 1; + if (fn_1_FE0() == 6) { + fn_1_8924(object->model[1], 5); + } + break; + case 5: + temp_r31->unkC = 0; + temp_r31->unk1C *= 1.1f; + if (temp_r31->unk1C >= 1.0f) { + temp_r31->unk1C = 1.0f; + } + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, 0.0f, 0.9f); + if (temp_r31->unk34.y <= 200.0f) { + temp_r31->unk34.y = 200.0f; + temp_r31->unkC = 1; + } + Hu3DModelShadowSet(temp_r29); + break; + case 4: + temp_r31->unk20 = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk7 |= 2; + break; + case 6: + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + temp_r31->unk1C = 1.0f; + temp_r31->unk40.y = temp_r31->unk24 = 0.0f; + if (temp_r31->unk34.y <= 50.0f) { + temp_r31->unkC = 1; + temp_r31->unk20 = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk18 = 7; + temp_r31->unk34.x += fn_1_25C0(); + temp_r31->unk34.y = 50.0f; + } + else { + temp_r31->unkC = 0; + temp_r31->unk20 += 3.0f; + temp_r31->unk4C.y += -1.46f; + if (temp_r31->unk1 != 5) { + temp_r31->unk18 = 6; + } + else { + temp_r31->unk18 = 0xA; + } + } + break; + } + if ((fn_1_FE0() == 7) && ((temp_r31->unk7 & 2) == 0)) { + temp_r31->unk18 = 8; + } + fn_1_37FC(object); + } +} + +void fn_1_31C0(omObjData *object) +{ + Vec sp10; + s32 spC; + s16 sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct *temp_r31; + s16 temp_r30; + s16 var_r29; + s16 var_r28; + s16 var_r26; + s16 var_r25; + + temp_r31 = object->data; + spC = object->model[0]; + sp8 = temp_r31->unk18; + temp_r30 = temp_r31->unk6; + + var_r29 = var_r28 = var_r26 = var_r25 = 0; + switch (temp_r31->unk8) { + case 2: + break; + case 1: + if ((fn_1_627C() & 0x1F) == 0) { + temp_f31 = atan2d(temp_r31->unk34.x, temp_r31->unk34.z); + temp_f31 += ((30.0f - (5.0f * temp_r30)) * ((fn_1_627C() - 0x8000) / 32768.0f)); + sp10.x = sind(temp_f31); + sp10.z = cosd(temp_f31); + temp_f30 = fn_1_213C(); + if ((temp_f31 > 70.0f) && (temp_f31 < 100.0f)) { + if (temp_f30 < 0.0f) { + var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); + } + else { + var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); + } + } + else if (temp_f30 < 0.0f) { + var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); + } + else { + var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); + } + } + else { + var_r29 = temp_r31->unk10; + var_r28 = temp_r31->unk12; + } + break; + case 3: + if ((fn_1_627C() & 0x1F) == 0) { + temp_f31 = 180.0f * ((fn_1_627C() - 0x8000) / 32768.0f); + sp10.x = sind(temp_f31); + sp10.z = cosd(temp_f31); + var_r29 = (48.0f * sp10.x); + var_r28 = (48.0f * sp10.z); + } + else { + var_r29 = temp_r31->unk10; + var_r28 = temp_r31->unk12; + } + break; + } + temp_r31->unk10 = var_r29; + temp_r31->unk12 = var_r28; + temp_r31->unk14 = var_r26; + temp_r31->unk16 = var_r25; +} + +void fn_1_37FC(omObjData *object) +{ + s16 spA; + s16 sp8; + f32 var_f30; + f32 var_f28; + f32 temp_f27; + M424DllBallStruct *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 var_r28; + s16 var_r27; + s32 temp_r25; + + var_f30 = 1.0f; + temp_r31 = object->data; + temp_r25 = object->model[0]; + var_r28 = temp_r31->unk18; + temp_r31->unk58 = temp_r31->unk34; + temp_r30 = temp_r31->unk10; + temp_r29 = temp_r31->unk12; + spA = temp_r31->unk14; + sp8 = temp_r31->unk16; + switch (temp_r31->unk18) { + case 0: + case 1: + case 2: + temp_r31->unk20 = (0.025f * sqrtf((temp_r30 * temp_r30) + (temp_r29 * temp_r29))); + if (temp_r31->unk20 > 0.01f) { + if (temp_r31->unk20 >= 6.0f) { + var_r28 = 2; + var_r27 = 1; + } + else { + var_r28 = 1; + var_r27 = 1; + } + var_f28 = atan2d(temp_r30, -temp_r29); + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, var_f28, 0.5f); + temp_r31->unk24 = temp_r31->unk40.y; + temp_r31->unk28++; + if (temp_r31->unk28 >= (0.5f * temp_r31->unk2C)) { + temp_r31->unk28 -= 0.5f * temp_r31->unk2C; + } + temp_r31->unk20 *= 1.0 + 0.25 * cosd(90.0f * (temp_r31->unk28 / (0.5f * temp_r31->unk2C))); + } + else { + temp_r31->unk28 = 0.0f; + temp_r31->unk20 = 0.0f; + var_r28 = 0; + var_r27 = 1; + } + if (temp_r31->unkC != 0) { + temp_r31->unk4C.y = -2.4333334f; + } + else { + temp_r31->unk4C.y += -2.4333334f; + } + break; + case 3: + var_r27 = 0; + if ((Hu3DData[temp_r25].unk_0C == -1) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { + temp_r31->unk4C.y += -2.4333334f; + } + else { + temp_r31->unk4C.y = 0.0f; + } + if (temp_r31->unkC != 0) { + if (temp_r31->unkD != 0) { + temp_r31->unk4C.y = 0.0f; + temp_r31->unkD = 0; + var_r28 = 5; + var_r27 = 0; + } + else { + temp_r31->unk4C.y *= -0.1f; + temp_r31->unkC = 0; + var_r28 = 4; + var_r27 = 0; + } + } + break; + case 4: + temp_r31->unk4C.y += -2.4333334f; + if ((temp_r31->unkC != 0) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { + var_r28 = 5; + var_r27 = 0; + } + break; + case 5: + if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { + var_r28 = 0; + var_r27 = 1; + } + break; + case 6: + var_r28 = 6; + var_r27 = 0; + if (temp_r31->unk1 == 7) { + var_f30 = 0.85f; + temp_r31->unk30 = 0.9f; + } + break; + case 7: + var_r28 = 7; + var_r27 = 1; + if (temp_r31->unkE8 == 1) { + temp_r31->unkEC = HuAudCharVoicePlay(temp_r31->unk1, 0x11A); + } + else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { + HuAudFXStop(temp_r31->unkEC); + temp_r31->unkEC = -1; + } + temp_r31->unkE8++; + break; + case 8: + case 9: + var_r27 = 0; + temp_r31->unk4C.y = -2.4333334f; + break; + case 10: + var_r28 = 10; + var_r27 = 4; + var_f30 = 0.8f; + temp_r31->unk30 = 0.85f; + if ((var_r28 == temp_r31->unk18) && (Hu3DMotionShiftIDGet(temp_r25) != -1)) { + temp_f27 = Hu3DMotionMaxTimeGet(temp_r25); + if (Hu3DMotionTimeGet(temp_r25) >= temp_f27) { + var_r28 = 7; + var_r27 = 1; + } + } + break; + } + if ((temp_r31->unk7 & 4) != 0) { + if ((temp_r31->unkA & 2) != 0) { + Hu3DModelAttrSet(temp_r25, 1); + } + else { + Hu3DModelAttrReset(temp_r25, 1); + } + if (--temp_r31->unkA == 0) { + temp_r31->unk7 &= ~4; + } + } + temp_r31->unk4C.x = temp_r31->unk20 * sind(temp_r31->unk24); + temp_r31->unk4C.z = temp_r31->unk20 * cosd(temp_r31->unk24); + temp_r31->unk34.x += temp_r31->unk4C.x; + if (temp_r31->unkC == 0) { + temp_r31->unk34.y += temp_r31->unk4C.y; + } + temp_r31->unk34.z += temp_r31->unk4C.z; + if (var_r28 != temp_r31->unk1A) { + temp_r31->unk1A = var_r28; + temp_r31->unk18 = var_r28; + CharModelMotionShiftSet(temp_r31->unk1, object->motion[temp_r31->unk18], 0.0f, 8.0f, var_r27); + temp_r31->unk2C = CharModelMotionMaxTimeGet(temp_r31->unk1); + } + if (temp_r31->unk30 != var_f30) { + if (var_f30 > temp_r31->unk30) { + if ((temp_r31->unk30 += 0.05f) > var_f30) { + temp_r31->unk30 = var_f30; + } + } + if (var_f30 < temp_r31->unk30) { + if ((temp_r31->unk30 -= 0.05f) < var_f30) { + temp_r31->unk30 = var_f30; + } + } + temp_r31->unk1C = temp_r31->unk30; + } + omSetTra(object, temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + omSetRot(object, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + omSetSca(object, temp_r31->unk1C, temp_r31->unk1C, temp_r31->unk1C); +} + +void fn_1_4220(omObjData *object) +{ + s32 sp14[3] = { 0x370013, 0x370014, 0x370015 }; + Vec sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct *var_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + + object->model[0] = var_r27 = Hu3DModelCreateFile(0x370012); + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + object->motion[var_r29] = Hu3DJointMotion(var_r27, HuDataSelHeapReadNum(sp14[var_r29], 0x10000000, HEAP_DATA)); + } + Hu3DMotionSet(var_r27, object->motion[0]); + Hu3DModelAttrSet(var_r27, 0x40000001); + var_r31 = fn_1_6078(0xF0); + object->data = var_r31; + memset(var_r31, 0, 0xF0); + var_r31->unk0 = object->work[0]; + var_r31->unk1 = 0xFF; + var_r31->unk2 = 0xFF; + var_r31->unk3 = 0; + var_r31->unk4 = 0xFF; + var_r31->unk5 = 0xFF; + var_r31->unk6 = 0xFF; + var_r31->unk18 = var_r31->unk1A = 0; + var_r31->unk7 = 1; + var_r31->unkC = 1; + var_r31->unkD = 0; + var_r31->unkA = 0; + var_r31->unkA4 = 0; + var_r31->unkE = 0; + memset(&var_r31->unk64, 0, 0x40); + temp_r28 = object->work[1]; + if (temp_r28 == 8) { + sp8.x = 350.0f; + sp8.y = 200.0f; + sp8.z = 50.0f; + } + else { + temp_f31 = 40.0f; + temp_f31 = 105.0f + ((temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f))); + temp_f30 = 125.0f; + temp_f30 = (temp_f30 * (temp_r28 & 1)) + (100.0f + (250.0f + (temp_f30 * (fn_1_627C() / 65536.0f)))); + sp8.x = temp_f30 * sind(temp_f31); + sp8.y = 200.0f; + sp8.z = temp_f30 * cosd(temp_f31); + } + var_r31->unk34 = sp8; + var_r31->unk4C.x = var_r31->unk4C.y = var_r31->unk4C.z = 0.0f; + var_r31->unk40.x = var_r31->unk40.y = var_r31->unk40.z = 0.0f; + var_r31->unk24 = var_r31->unk40.y; + var_r31->unk2C = 1.0f; + var_r31->unk28 = 0.0f; + var_r31->unk20 = 0.0f; + memset(&var_r31->unkA8, 0, 0x40); + omSetTra(object, var_r31->unk34.x, var_r31->unk34.y, var_r31->unk34.z); + omSetRot(object, var_r31->unk40.x, var_r31->unk40.y, var_r31->unk40.z); + omSetSca(object, 0.8f, 0.8f, 0.8f); + object->model[1] = fn_1_48D0(object, 8, 0); + object->func = fn_1_469C; +} + +fn_1_4698(void) { } + +void fn_1_469C(omObjData *object) +{ + s32 temp_r27; + s16 var_r28; + s16 var_r30; + M424DllBallStruct *temp_r31; + + temp_r31 = object->data; + temp_r27 = object->model[0]; + var_r30 = temp_r31->unk18; + temp_r31->unk58 = temp_r31->unk34; + + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; + switch (temp_r31->unk8) { /* irregular */ + case 3: + var_r30 = 2; + var_r28 = 1; + temp_r31->unk4C.y = -2.4333334f; + if ((fn_1_627C() & 0xF) == 0) { + temp_r31->unk24 = (180.0f * ((fn_1_627C() - 0x8000) / 32768.0f)); + } + break; + case 1: + var_r30 = 1; + var_r28 = 1; + temp_r31->unk4C.y = -2.4333334f; + if ((fn_1_627C() & 0x3F) == 0) { + temp_r31->unk24 = (180.0f * ((fn_1_627C() - 0x8000) / 32768.0f)); + } + break; + case 2: + var_r30 = 0; + var_r28 = 1; + + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; + temp_r31->unk4C.y += -0.97333336f; + break; + } + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, temp_r31->unk24, 0.95f); + if (var_r30 != temp_r31->unk1A) { + temp_r31->unk1A = var_r30; + temp_r31->unk18 = var_r30; + Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32)var_r28); + temp_r31->unk2C = Hu3DMotionMaxTimeGet(temp_r31->unk1); + } +} + +u8 fn_1_48D0(omObjData *object, u8 arg1, u8 arg2) +{ + M424DllBallStruct2 *temp_r31; + s32 var_r30; + s32 var_r28; + + var_r28 = lbl_1_bss_58; + lbl_1_bss_58++; + temp_r31 = &lbl_1_bss_60[var_r28]; + memset(temp_r31, 0, 0x94); + temp_r31->unk0 = object; + var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum((arg1 * 2) + 0x370000, 0x10000000, HEAP_DATA)); + temp_r31->unk8 = var_r30; + Hu3DModelLayerSet(var_r30, 2); + Hu3DModelShadowMapSet(var_r30); + Hu3DModelAttrSet(var_r30, 0x20000); + Hu3DModelHiliteMapSet(var_r30, HuSprAnimRead(HuDataReadNum(0x370016, 0x10000000))); + var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum((arg1 * 2) + 0x370001, 0x10000000, HEAP_DATA)); + temp_r31->unkA = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + MTXIdentity(temp_r31->unkC); + temp_r31->unk3C.x = object->trans.x; + temp_r31->unk3C.y = 100.0f + object->trans.y; + temp_r31->unk3C.z = object->trans.z; + temp_r31->unk54 = temp_r31->unk3C; + temp_r31->unk6C.x = temp_r31->unk6C.y = temp_r31->unk6C.z = 0.0f; + temp_r31->unk5 = arg2; + temp_r31->unk4 = 2; + temp_r31->unk6 = 0; + if (arg2 != 0) { + temp_r31->unk91 = arg1; + } + else { + temp_r31->unk91 = 0xFFU; + } + return var_r28; +} + +void fn_1_4A90(s16 arg0) +{ + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 var_f30; + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; + s32 var_r29; + + if (omPauseChk() == 0) { + var_r31 = lbl_1_bss_60; + var_f31 = fn_1_213C(); + mtxRot(sp20, 0.0f, var_f31, 0.0f); + + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + temp_r30 = var_r31->unk0->data; + var_r31->unk48 = var_r31->unk54; + var_r31->unk60 = var_r31->unk48; + var_r31->unk78.x = var_r31->unk78.y = var_r31->unk78.z = 0.0f; + switch (var_r31->unk4) { + case 1: + MTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + MTXConcat(sp20, sp50, sp50); + var_r31->unk48.x = sp50[0][3]; + var_r31->unk48.y = sp50[1][3]; + var_r31->unk48.z = sp50[2][3]; + VECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + var_r31->unk84.y = 0.0f; + var_r31->unk4 = 2; + break; + case 3: + VECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); + var_r31->unk84 = var_r31->unk6C; + break; + case 4: + var_r31->unk6C.y += -2.4333334f; + var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; + var_r31->unk84 = var_r31->unk6C; + break; + case 2: + var_r31->unk6C.y = 0.0f; + var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + var_r31->unk6C = var_r31->unk84; + break; + case 5: + if ((var_r31->unk6 & 2) != 0) { + Hu3DModelAttrSet(var_r31->unk8, 1); + Hu3DModelAttrSet(var_r31->unkA, 1); + } + else { + Hu3DModelAttrReset(var_r31->unk8, 1); + Hu3DModelAttrReset(var_r31->unkA, 1); + } + if (++var_r31->unk6 >= 0x3C) { + var_r31->unk4 = 6; + } + break; + default: + var_r31->unk6C.x = var_r31->unk6C.y = var_r31->unk6C.z = 0.0f; + break; + } + } + fn_1_8AA8(0x20, 1); + var_r31 = lbl_1_bss_60; + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + if (var_r31->unk4 != 6) { + if (var_r31->unk4 == 1) { + VECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); + sp8.x = sp14.z; + sp8.y = 0.0f; + sp8.z = -sp14.x; + var_f30 = VECMag(&sp8); + if (var_f30 > 0.01f) { + MTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); + MTXConcat(sp20, sp50, sp50); + } + else { + MTXCopy(sp20, sp50); + } + MTXConcat(sp50, var_r31->unkC, var_r31->unkC); + fn_1_6230(var_r31->unk8, var_r31->unkC); + fn_1_6230(var_r31->unkA, var_r31->unkC); + } + if (var_r31->unk3C.y < 250.0f) { + var_r31->unk3C.y = 250.0f; + var_r31->unk4 = 6; + Hu3DModelAttrSet(var_r31->unk8, 1); + Hu3DModelAttrSet(var_r31->unkA, 1); + } + Hu3DModelPosSet(var_r31->unk8, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + Hu3DModelPosSet(var_r31->unkA, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + var_r31->unk6C = sp14; + var_r31->unk54 = var_r31->unk3C; + temp_r30 = var_r31->unk0->data; + temp_r30->unk8 = var_r31->unk4; + temp_r30->unk40.y += var_f31; + if (var_r31->unk4 != 5) { + temp_r30->unk34 = var_r31->unk3C; + temp_r30->unk34.y -= 80.0f; + omSetTra(var_r31->unk0, temp_r30->unk34.x, temp_r30->unk34.y, temp_r30->unk34.z); + omSetRot(var_r31->unk0, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); + } + } + } + } +} + +void fn_1_5018(void) +{ + M424DllBallStruct3 sp27C[32]; + Vec sp270; + Vec sp264; + Vec sp258; + Vec sp24C; + Vec sp240; + Vec sp234; + Vec sp228; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + M424DllBallStruct2 *var_r31; + M424DllBallStruct2 *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = &lbl_1_bss_60[0]; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk90 = 1; + } + + for (var_r26 = 0, var_f29 = 1.0f; var_r26 < 0x80; var_f29 -= var_f30, var_r26++) { + var_r29 = 0; + var_f30 = var_f29; + var_r31 = &lbl_1_bss_60[0]; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + if ((var_r31->unk90 != 0) && (var_r31->unk4 < 4)) { + var_r31->unk90 = 0; + if (var_r31->unk4 < 3) { + if (var_r31->unk6C.y < 0.0f) { + var_f31 = (200.0f - (var_r31->unk60.y - 100.0f)) / var_r31->unk6C.y; + if (var_f31 <= var_f29) { + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 0; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + } + if (var_r31->unk4 == 1) { + var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk84, 100.0f, 700.0f); + } + else { + var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk6C, 100.0f, 700.0f); + } + if (var_f31 >= 0.0f && var_f31 <= var_f29) { + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 1; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + if (var_r31->unk4 == 1) { + var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk84, 100.0f, 250.0f); + } + else { + var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk6C, 100.0f, 250.0f); + } + if (var_f31 >= 0.0f && var_f31 <= var_f29) { + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 2; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + } + + var_r30 = lbl_1_bss_60; + for (var_r25 = 0; var_r25 < lbl_1_bss_58; var_r25++, var_r30++) { + if ((var_r31 != var_r30) && (var_r30->unk4 < 4)) { + if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk84, 100.0f, var_r30->unk60, var_r30->unk84, 100.0f); + } + else { + var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk6C, 100.0f, var_r30->unk60, var_r30->unk6C, 100.0f); + } + if ((var_f31 < 0.0f) || (var_f31 > var_f29)) + continue; + var_r31->unk90 = 1; + var_r30->unk90 = 1; + if (var_f31 > var_f30) + continue; + if (var_f31 < var_f30) { + var_r29 = 0; + } + else { + for (var_r27 = 0; var_r27 < var_r29; var_r27++) { + if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) + break; + } + if (var_r27 < var_r29) + continue; + } + sp27C[var_r29].unk0 = 3; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = var_r30; + var_r29++; + var_f30 = var_f31; + } + } + } + } + if (var_r29 == 0) + break; + var_r31 = lbl_1_bss_60; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk60.x += var_r31->unk6C.x * var_f30; + var_r31->unk60.y += var_r31->unk6C.y * var_f30; + var_r31->unk60.z += var_r31->unk6C.z * var_f30; + } + for (var_r28 = 0; var_r28 < var_r29; var_r28++) { + switch (sp27C[var_r28].unk0) { + case 0: + var_r31 = sp27C[var_r28].unk4; + var_r31->unk4 = 1; + sp234.y = 300.0f - var_r31->unk60.y; + var_r31->unk60.y = 300.0f; + var_r31->unk6C.y = sp234.y; + var_r31->unk84.y = sp234.y; + break; + case 1: + var_r31 = sp27C[var_r28].unk4; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + VECNormalize(&sp240, &sp228); + sp228.x = -sp228.x; + sp228.y = 0.0f; + sp228.z = -sp228.z; + temp_f28 = VECMag(&sp240); + temp_f28 -= 600.0f; + var_r31->unk60.x += temp_f28 * sp228.x; + var_r31->unk60.z += temp_f28 * sp228.z; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + if (var_r31->unk4 == 1) { + fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); + var_r31->unk84 = sp24C; + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { + fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); + var_r31->unk6C = sp24C; + var_r31->unk84 = var_r31->unk6C; + } + break; + case 2: + var_r31 = sp27C[var_r28].unk4; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + VECNormalize(&sp240, &sp228); + temp_f28 = VECMag(&sp240); + temp_f28 = 350.0f; + var_r31->unk60.x = temp_f28 * sp228.x; + var_r31->unk60.z = temp_f28 * sp228.z; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + if (var_r31->unk4 == 1) { + fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); + var_r31->unk84 = sp24C; + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { + fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); + var_r31->unk6C = sp24C; + var_r31->unk84 = var_r31->unk6C; + } + break; + case 3: + var_r31 = sp27C[var_r28].unk4; + var_r30 = sp27C[var_r28].unk8; + if (var_r31->unk4 == 3) { + fn_1_79FC(&var_r30->unk3C, &var_r30->unk6C, 100.0f, &var_r31->unk3C, &var_r31->unk6C, 100.0f, 0.8f); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } + else if (var_r30->unk4 == 3) { + fn_1_79FC(&var_r31->unk3C, &var_r31->unk6C, 100.0f, &var_r30->unk3C, &var_r30->unk6C, 100.0f, 0.8f); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } + else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + fn_1_77C4(var_r31->unk60, var_r31->unk84, var_r30->unk60, 0.8f, &sp24C, &sp258); + fn_1_77C4(var_r30->unk60, var_r30->unk84, var_r31->unk60, 0.8f, &sp270, &sp264); + VECAdd(&sp24C, &sp264, &var_r31->unk84); + VECAdd(&sp258, &sp270, &var_r30->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + VECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); + } + else { + fn_1_77C4(var_r31->unk60, var_r31->unk6C, var_r30->unk60, 0.8f, &sp24C, &sp258); + fn_1_77C4(var_r30->unk60, var_r30->unk6C, var_r31->unk60, 0.8f, &sp270, &sp264); + VECAdd(&sp24C, &sp264, &var_r31->unk6C); + VECAdd(&sp258, &sp270, &var_r30->unk6C); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } + break; + } + } + } + var_r31 = lbl_1_bss_60; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk3C.x = var_r31->unk60.x + (var_r31->unk6C.x * var_f29); + var_r31->unk3C.y = var_r31->unk60.y + (var_r31->unk6C.y * var_f29); + var_r31->unk3C.z = var_r31->unk60.z + (var_r31->unk6C.z * var_f29); + } +} + +void fn_1_6038(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + lbl_1_bss_5BC[var_r31] = 0; + } +} + +void *fn_1_6078(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31] == 0) + break; + } + if (var_r31 == 0x20) { + return NULL; + } + lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); + return lbl_1_bss_5BC[var_r31]; +} + +void fn_1_6118(void *arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31] == arg0) + break; + } + if (var_r31 != 0x20) { + HuMemDirectFree(lbl_1_bss_5BC[var_r31]); + lbl_1_bss_5BC[var_r31] = NULL; + } +} + +void fn_1_61AC(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31]) { + HuMemDirectFree(lbl_1_bss_5BC[var_r31]); + lbl_1_bss_5BC[var_r31] = NULL; + } + } +} + +void fn_1_6230(s16 arg0, Mtx arg1) +{ + ModelData *var_r31; + + var_r31 = &Hu3DData[arg0]; + MTXCopy(arg1, var_r31->unk_F0); +} + +u32 lbl_1_data_1D8 = 0x41C64E6D; + +s32 fn_1_627C(void) +{ + lbl_1_data_1D8 *= 0x41C64E6D; + lbl_1_data_1D8 += 0x3039; + return lbl_1_data_1D8 >> 0x10; +} + +void fn_1_62D0(s32 arg0, u32 *arg1) +{ + s32 var_r31; + s32 temp_r30; + u32 temp_r29; + + for (var_r31 = 0; var_r31 < arg0; var_r31++) { + arg1[var_r31] = var_r31; + } + + for (var_r31 = 0; var_r31 < arg0 - 1; var_r31++) { + temp_r30 = (arg0 * (fn_1_627C() / 65536.0f)); + temp_r29 = arg1[var_r31]; + arg1[var_r31] = arg1[temp_r30]; + arg1[temp_r30] = temp_r29; + } +} + +f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) +{ + f32 var_f31; + + if (arg0 > 180.0f) { + arg0 -= 360.0f; + } + else { + if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + } + if (arg1 > 180.0f) { + arg1 -= 360.0f; + } + else { + if (arg1 <= -180.0f) { + arg1 += 360.0f; + } + } + var_f31 = arg0 - arg1; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else { + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + } + arg0 = arg1 + (var_f31 * arg2); + if (arg0 > 180.0f) { + return arg0 - 360.0f; + } + if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + return arg0; +} + +void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_6694(M424BallStruct4 *arg0, Vec *arg1) +{ + f32 temp_f29; + f32 var_f28; + + arg1->x = atan2d(arg0->unk18, arg0->unk28); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0->unk4, arg0->unk0); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + temp_f29 = -arg0->unk8; + var_f28 = sqrtf(ABS(1.0 - (temp_f29 * temp_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(temp_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_6A30(M424BallStruct4 *arg0, Vec *arg1) +{ + f32 temp_f29; + f32 var_f27; + + arg1->z = atan2d(arg0->unk4, arg0->unk14); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + arg1->y = atan2d(arg0->unk8, arg0->unk28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } + temp_f29 = -arg0->unk24; + var_f27 = sqrtf(ABS(1.0 - (temp_f29 * temp_f29))); + arg1->x = atan2d(temp_f29, var_f27); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } +} + +f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) +{ + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + VECSubtract(&arg3, &arg0, &arg3); + VECSubtract(&arg4, &arg1, &arg4); + temp_f29 = arg2 + arg5; + if (VECMag(&arg3) > temp_f29 + VECMag(&arg4)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg4.z * arg4.z) + ((arg4.x * arg4.x) + (arg4.y * arg4.y)); + temp_f26 = 2.0f * ((arg4.z * arg3.z) + ((arg4.x * arg3.x) + (arg4.y * arg3.y))); + var_f23 = ((arg3.z * arg3.z) + ((arg3.x * arg3.x) + (arg3.y * arg3.y))) - temp_f29; + if (temp_f27 == 0.0f) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ + Vec sp20; + Vec sp14; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + sp20 = arg0; + sp20.y = 0.0f; + sp14 = arg1; + sp14.y = 0.0f; + temp_f29 = arg3 + arg2; + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg1.x * arg1.x) + (arg1.z * arg1.z); + temp_f26 = 2.0f * ((arg1.x * arg0.x) + (arg1.z * arg0.z)); + var_f23 = (((arg0.x * arg0.x) + (arg0.z * arg0.z)) - temp_f29); + if (0.0f == temp_f27) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ + Vec sp20; + Vec sp14; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + sp20 = arg0; + sp20.y = 0.0f; + sp14 = arg1; + sp14.y = 0.0f; + temp_f29 = arg3 - arg2; + if (VECMag(&sp20) > temp_f29) { + return 0.0f; + } + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg1.x * arg1.x) + (arg1.z * arg1.z); + temp_f26 = 2.0f * ((arg1.x * arg0.x) + (arg1.z * arg0.z)); + var_f23 = (arg0.x * arg0.x) + (arg0.z * arg0.z) - temp_f29; + if (0.0f == temp_f27) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec *arg4, Vec *arg5) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + f32 var_f31; + f32 temp_f30; + f32 temp_f29; + f32 var_f28; + + sp38 = arg1; + var_f31 = VECMag(&sp38); + if (var_f31 < 0.01f) { + arg4->x = arg4->y = arg4->z = 0.0f; + arg5->x = arg5->y = arg5->z = 0.0f; + return; + } + VECNormalize(&sp38, &sp38); + var_f31 = var_f31 * arg3; + VECSubtract(&arg2, &arg0, &sp2C); + VECNormalize(&sp2C, &sp2C); + var_f28 = VECDotProduct(&sp38, &sp2C); + if (var_f28 < 0.0f) { + arg4->x = arg1.x; + arg4->y = arg1.y; + arg4->z = arg1.z; + arg5->x = arg5->y = arg5->z = 0.0f; + return; + } + temp_f29 = var_f31 * var_f28; + temp_f30 = var_f31 - temp_f29; + if (temp_f30 < 0.01f) { + arg4->x = arg4->y = arg4->z = 0.0f; + } + else { + VECCrossProduct(&sp38, &sp2C, &sp14); + VECNormalize(&sp14, &sp14); + VECCrossProduct(&sp2C, &sp14, &sp20); + VECNormalize(&sp20, &sp20); + arg4->x = sp20.x * temp_f30; + arg4->y = sp20.y * temp_f30; + arg4->z = sp20.z * temp_f30; + } + arg5->x = sp2C.x * temp_f29; + arg5->y = sp2C.y * temp_f29; + arg5->z = sp2C.z * temp_f29; +} + +void fn_1_79FC(Vec *arg0, Vec *arg1, f32 arg2, Vec *arg3, Vec *arg4, f32 arg5, f32 arg6) +{ + Vec sp38; + Vec sp2C; + f32 temp_f31; + f32 var_f30; + f32 var_f29; + + arg1->x *= arg6; + arg1->y *= arg6; + arg1->z *= arg6; + VECSubtract(arg0, arg3, &sp38); + VECNormalize(&sp38, &sp2C); + temp_f31 = (arg2 + arg5) - VECMag(&sp38); + if (temp_f31 > 0.01f) { + VECSubtract(arg1, arg4, &sp38); + if (VECMag(&sp38) < 0.01f) { + arg0->x += sp2C.x * temp_f31; + arg0->y += sp2C.y * temp_f31; + arg0->z += sp2C.z * temp_f31; + } + else { + VECNormalize(&sp38, &sp38); + arg0->x -= sp38.x * temp_f31; + arg0->y -= sp38.y * temp_f31; + arg0->z -= sp38.z * temp_f31; + } + } + fn_1_7CA0(*arg1, sp2C, 1.0f, arg1); + VECSubtract(arg4, arg1, &sp38); + var_f30 = VECMag(&sp38); + if (var_f30 < 0.01f) + return; + VECNormalize(&sp38, &sp38); + var_f29 = VECDotProduct(&sp2C, &sp38); + if (var_f29 > 0.0f) { + arg1->x += var_f30 * (sp2C.x * var_f29); + arg1->y += var_f30 * (sp2C.y * var_f29); + arg1->z += var_f30 * (sp2C.z * var_f29); + } +} + +void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Vec *arg3) +{ + f32 var_f31; + + *arg3 = arg0; + arg3->x *= arg2; + arg3->y *= arg2; + arg3->z *= arg2; + var_f31 = VECDotProduct(&arg1, arg3); + if (var_f31 < 0.0f) { + arg3->x -= 2.0f * arg1.x * var_f31; + arg3->y -= 2.0f * arg1.y * var_f31; + arg3->z -= 2.0f * arg1.z * var_f31; + } +} + +f32 fn_1_7DD0(Vec *arg0) +{ + f32 temp_f30; + f32 temp_f29; + + temp_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); + temp_f30 = sqrtf(temp_f30); + if (temp_f30 != 0.0f) { + temp_f29 = 1.0f / temp_f30; + arg0->x *= temp_f29; + arg0->y *= temp_f29; + arg0->z *= temp_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return temp_f30; +} + +f32 fn_1_7F68(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } + else if (arg8 >= 1.0f) { + arg2->x = (arg0.x + arg1.x); + arg2->y = (arg0.y + arg1.y); + arg2->z = (arg0.z + arg1.z); + arg8 = 1.0f; + } + else { + arg2->x = (arg0.x + (arg8 * arg1.x)); + arg2->y = (arg0.y + (arg8 * arg1.y)); + arg2->z = (arg0.z + (arg8 * arg1.z)); + } + return arg8; +} + +f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) +{ + f32 temp_f30; + f32 var_f31; + + var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + temp_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +f32 fn_1_80FC(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + f32 var_f30; + + if (0.0f == (arg2->x * arg2->x) + (arg2->y * arg2->y) + (arg2->z * arg2->z)) { + return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); + } + var_f30 = fn_1_8040(*arg0, *arg1, *arg2); + fn_1_7F68(*arg1, *arg2, &sp44, var_f30); + return ((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y)) + ((arg0->z - sp44.z) * (arg0->z - sp44.z)); +} + +f32 fn_1_8438(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + f32 var_f27; + + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f27 = fn_1_8040(*arg0, *arg1, *arg2); + fn_1_7F68(*arg1, *arg2, arg3, var_f27); + arg4->x = arg0->x - arg3->x; + arg4->y = arg0->y - arg3->y; + arg4->z = arg0->z - arg3->z; + return fn_1_7DD0(arg4); +} + +void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + temp_r31->unk4 = 3; + temp_r31->unk3C.x = arg8; + temp_r31->unk3C.y = arg9; + temp_r31->unk3C.z = argA; +} + +void fn_1_8924(u8 arg0, u8 arg1) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + temp_r31->unk4 = arg1; +} + +u8 fn_1_8950(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk4; +} + +u8 fn_1_897C(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk5; +} + +u8 fn_1_89A8(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk91; +} + +Vec *fn_1_89D4(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return &temp_r31->unk3C; +} + +Vec *fn_1_8A00(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return &temp_r31->unk6C; +} + +s32 fn_1_8A2C(void) +{ + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_60; + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + temp_r30 = var_r31->unk0->data; + if ((temp_r30->unk8 == 3) || (temp_r30->unk8 == 2)) { + return 0; + } + } + return 1; +} + +void fn_1_8AA8(s32 arg0, s32 arg1) +{ + Vec spC; + M424DllBallStruct2 *temp_r31; + s32 var_r27; + s32 var_r29; + s32 var_r30; + + if (arg1 != 0) { + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r31 = &lbl_1_bss_60[var_r30]; + if (temp_r31->unk4 != 6) { + VECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); + if ((temp_r31->unk4 < 3) && (fn_1_907C(&temp_r31->unk3C, &spC) != 0)) { + temp_r31->unk3C = spC; + } + if ((temp_r31->unk6C.y < 0.0f) && (temp_r31->unk4 != 4) && (temp_r31->unk4 != 6) && (temp_r31->unk3C.y < 300.0f)) { + temp_r31->unk3C.y = 300.0f; + if (temp_r31->unk4 == 2) { + temp_r31->unk4 = 1; + } + } + } + } + } + + for (var_r30 = 0, var_r29 = arg0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r31 = &lbl_1_bss_60[var_r30]; + var_r27 = 0; + if (fn_1_8950(var_r30) < 4) { + if (fn_1_8C78(var_r30, arg0) < arg0) { + var_r27 = 1; + } + if ((var_r27 != 0) && (var_r29 > 0)) { + var_r29 -= 1; + var_r30 -= 1; + } + else { + var_r29 = arg0; + } + } + } + fn_1_C2E0(0); +} + +s32 fn_1_8C78(s32 arg0, s32 arg1) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec *sp10; + f32 temp_f31; + f32 var_f30; + s32 var_r31; + M424DllBallStruct2 *temp_r30; + M424DllBallStruct2 *temp_r29; + Vec *var_r28; + Vec *var_r27; + M424DllBallStruct *temp_r26; + M424DllBallStruct *temp_r25; + + temp_r30 = &lbl_1_bss_60[arg0]; + temp_r26 = temp_r30->unk0->data; + var_r28 = fn_1_89D4(arg0); + sp38 = *var_r28; + + for (var_r31 = 0; var_r31 < lbl_1_bss_58; var_r31++) { + if (var_r31 != arg0) { + if (fn_1_8950(var_r31) < 3) { + temp_r29 = &lbl_1_bss_60[var_r31]; + temp_r25 = temp_r29->unk0->data; + var_r27 = fn_1_89D4(var_r31); + sp2C = *var_r27; + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 < 200.0f) { + if (var_f30 > 0.0f) { + temp_f31 = 1.0f / var_f30; + sp20.x *= temp_f31; + sp20.y *= temp_f31; + sp20.z *= temp_f31; + } + else { + sp20.x = 0.0f; + sp20.y = 0.0f; + sp20.z = 1.0f; + } + temp_f31 = 1.0f + (0.5f * (200.0f - var_f30)); + if (temp_f31 > 0.0f) { + VECScale(&sp20, &sp20, temp_f31); + VECAdd(&sp2C, &sp20, &sp2C); + *var_r27 = sp2C; + if ((temp_r29->unk4 < 3) && (fn_1_907C(&sp2C, &sp14) != 0)) { + sp2C = sp14; + *var_r27 = sp14; + } + if ((temp_r29->unk4 == 2) && (temp_r25->unk4C.y < 0.0f)) { + temp_r25->unk4C.y += 0.1f * temp_f31; + } + } + if (temp_f31 > 0.0f) { + VECScale(&sp20, &sp20, -1.0f); + VECAdd(&sp38, &sp20, &sp38); + *var_r28 = sp38; + if ((temp_r30->unk4 < 3) && (fn_1_907C(&sp38, &sp14) != 0)) { + sp38 = sp14; + *var_r28 = sp14; + } + if ((temp_r30->unk4 == 2) && (temp_r26->unk4C.y < 0.0f)) { + temp_r26->unk4C.y += 0.1f * temp_f31; + } + } + if (arg1 > 0) { + arg1--; + fn_1_8C78(var_r31, arg1); + } + } + } + } + } + return arg1; +} + +s32 fn_1_907C(Vec *arg0, Vec *arg1) +{ + Vec sp10; + f32 temp_f29; + f32 temp_f28; + f32 var_f27; + f32 temp_f26; + + sp10 = *arg0; + *arg1 = *arg0; + temp_f29 = (sp10.x * sp10.x) + (sp10.z * sp10.z); + var_f27 = sqrtf(temp_f29); + if (var_f27 < 350.0f) { + if (var_f27 > 0.0f) { + temp_f26 = 1.0f / var_f27; + sp10.x *= temp_f26; + sp10.z *= temp_f26; + } + else { + sp10.x = 1.0f; + sp10.z = 0.0f; + } + arg1->x = 350.0f * sp10.x; + arg1->z = 350.0f * sp10.z; + } + temp_f28 = (sp10.x * sp10.x) + (sp10.z * sp10.z); + var_f27 = sqrtf(temp_f28); + if (var_f27 > 600.0f) { + temp_f26 = 1.0f / var_f27; + sp10.x *= temp_f26; + sp10.z *= temp_f26; + arg1->x = 600.0f * sp10.x; + arg1->z = 600.0f * sp10.z; + } + return (s32)arg0; +} diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c new file mode 100644 index 00000000..42d11821 --- /dev/null +++ b/src/REL/m424Dll/claw.c @@ -0,0 +1,1410 @@ +#include "REL/m424Dll.h" + +#include "math.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" + +// STRUCT +typedef struct _M424DllClawStruct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s16 unk18; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + f32 unk2C; + Vec unk30; + Vec unk3C[12]; + Vec unkCC[12]; + s32 unk15C; + s32 unk160; + s32 unk164; + s32 unk168; + s32 unk16C; + s32 unk170; + Vec unk174; + f32 unk180; + s32 unk184; + s32 unk188; + s32 unk18C; + s32 unk190; + s32 unk194; + s32 unk198; + s32 unk19C; + s32 unk1A0; + s32 unk1A4; + f32 unk1A8; + s32 unk1AC; +} M424DllClawStruct; // sizeof 0x1B0 + +typedef struct _M424DllClawStruct2 { + s32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; +} M424DllClawStruct2; // sizeof 0x10 + +typedef struct _M424DllClawStruct3 { + s32 unk0; + s32 unk4; +} M424DllClawStruct3; // sizeof 0x8 + +// BSS +Process* lbl_1_bss_6DC; +omObjData* lbl_1_bss_6D8; +s32 lbl_1_bss_6D0[2]; +s32 lbl_1_bss_6CC; +s32 lbl_1_bss_6C8; +s32 lbl_1_bss_6C4; +s32 lbl_1_bss_6C0; +M424DllClawStruct3 lbl_1_bss_640[0x10]; + +// DATA +Vec lbl_1_data_1E0[4] = { + { 950.0f, 275.0f, 0.0f }, + { 900.0f, 360.0f, 320.0f }, + { 494.99996f, 220.0f, 494.99996f }, + { 0.0f, 225.0f, 0.0f }, +}; +f32 lbl_1_data_210[3] = { 12.0f, 11.0f, 17.5f }; +char lbl_1_data_21C[12][0x10] = { + "tsume10", + "tsume11", + "tsume12", + "tsume20", + "tsume21", + "tsume22", + "tsume30", + "tsume31", + "tsume32", + "tsume40", + "tsume41", + "tsume42", +}; +u8 lbl_1_data_2DC[12] = { 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }; +s32 lbl_1_data_2E8[9] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x42), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18) }; +Vec lbl_1_data_30C = { 0.0f, 0.0f, 0.0f }; + +// PROTO +void fn_1_88E8(u8, f32, f32, f32); +void fn_1_8924(u8, s32); +u8 fn_1_8950(u8); +u8 fn_1_897C(u8); +u8 fn_1_89A8(u8); +Vec *fn_1_89D4(u8); +void fn_1_94D0(omObjData *); +void fn_1_9A64(omObjData *); +void fn_1_AE58(omObjData *); +void fn_1_AE64(omObjData *); +u16 fn_1_B79C(f32, f32, f32); +s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3); +void fn_1_C604(s32, s32); +s32 fn_1_C878(s16, const char *, Mtx, s32); +void fn_1_C99C(HsfObject *, Mtx, const char *, Mtx); +void fn_1_CE74(s32); +void fn_1_CF00(Process *); +void fn_1_CF80(omObjData *); +s32 fn_1_D010(s32, s32); + +omObjData *fn_1_93F0(Process *arg0) +{ + lbl_1_bss_6DC = arg0; + lbl_1_bss_6D8 = omAddObjEx(arg0, 0x40, 5, 9, -1, fn_1_94D0); + lbl_1_bss_6CC = 0; + lbl_1_bss_6C8 = 0; + lbl_1_bss_6C4 = 0; + lbl_1_bss_6C0 = 0; + fn_1_CF00(arg0); + return lbl_1_bss_6D8; +} + +void fn_1_94A4(void) +{ + fn_1_AE58(lbl_1_bss_6D8); +} + +void fn_1_94D0(omObjData *arg0) +{ + s32 var_r29; + M424DllClawStruct *var_r31; + + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B0, 0x10000000); + memset(var_r31, 0, 0x1B0); + var_r31->unk0 = lbl_1_bss_24[3]; + var_r31->unk2 = GWPlayerCfg[var_r31->unk0].character; + var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; + var_r31->unk6 = GWPlayerCfg[var_r31->unk0].iscom; + var_r31->unk8 = GWPlayerCfg[var_r31->unk0].diff; + var_r31->unkA = var_r31->unkC = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk14 = 0; + var_r31->unk16 = 0; + var_r31->unk18 = 0; + var_r31->unk1C = 0.0f; + var_r31->unk20 = 1.0f; + var_r31->unk24 = 0.0f; + var_r31->unk28 = 0.0f; + var_r31->unk2C = 1.0f; + var_r31->unk15C = 0; + var_r31->unk160 = 0; + var_r31->unk164 = 0; + var_r31->unk168 = -1; + var_r31->unk16C = -1; + var_r31->unk170 = -1; + var_r31->unk174 = lbl_1_data_30C; + // @todo how did this happen + var_r31->unk180 = atan2d(-102.864990234375, 424.559997558593750); + if (var_r31->unk180 < 0.0f) { + var_r31->unk180 += 360.0f; + } + var_r31->unk184 = -1; + var_r31->unk30 = lbl_1_data_30C; + + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + var_r31->unk3C[var_r29] = lbl_1_data_30C; + var_r31->unkCC[var_r29] = lbl_1_data_30C; + } + var_r31->unk188 = 0; + var_r31->unk18C = -1; + var_r31->unk190 = 0; + var_r31->unk194 = 0; + var_r31->unk198 = 0; + var_r31->unk19C = 0; + var_r31->unk1A0 = 0; + var_r31->unk1A4 = 0; + var_r31->unk1A8 = 0.0f; + var_r31->unk1AC = 0; + arg0->model[0] = CharModelCreate(var_r31->unk2, 1); + Hu3DModelShadowSet(arg0->model[0]); + CharModelStepTypeSet(var_r31->unk2, 1); + for (var_r29 = 0; var_r29 < 9; var_r29++) { + arg0->motion[var_r29] = CharModelMotionCreate(var_r31->unk2, lbl_1_data_2E8[var_r29]); + } + var_r31->unkE = 5; + CharModelMotionSet(var_r31->unk2, arg0->motion[var_r31->unkE]); + arg0->model[1] = Hu3DModelCreateFile(0x37001D); + Hu3DModelShadowSet(arg0->model[1]); + arg0->model[2] = Hu3DModelCreateFile(0x37001E); + Hu3DModelShadowSet(arg0->model[2]); + arg0->model[3] = Hu3DModelCreateFile(0x37001F); + Hu3DModelShadowSet(arg0->model[3]); + arg0->model[4] = Hu3DModelCreateFile(0x370020); + Hu3DModelShadowSet(arg0->model[4]); + Hu3DModelScaleSet(arg0->model[4], 0.9f, 0.9f, 0.9f); + Hu3DModelHookSet(arg0->model[1], "hook1", arg0->model[2]); + Hu3DModelHookSet(arg0->model[2], "hook2", arg0->model[3]); + Hu3DModelHookSet(arg0->model[3], "hook3", arg0->model[4]); + Hu3DModelPosSet(arg0->model[1], 950.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[4], 0x40000002); + arg0->trans.x = 950.0f; + arg0->trans.y = 275.0f; + arg0->trans.z = 0.0f; + arg0->rot.y = 270.0f; + var_r31->unk10 = 3; + var_r31->unk24 = 0.45f; + var_r31->unk12 = 0; + arg0->func = fn_1_9A64; +} + +void fn_1_9A64(omObjData *arg0) +{ + Mtx sp74; + Mtx sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 temp_f30; + M424DllClawStruct *temp_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + temp_r31 = arg0->data; + if (fn_1_FE0() == 4) { + temp_r31->unkC = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + if (temp_r31->unk6 != 0) { + fn_1_AE64(arg0); + } + } + else { + temp_r31->unkC = 0; + temp_r31->unkA = 0; + } + if (fn_1_FE0() <= 1) { + var_r25 = -1; + } + else { + var_r25 = temp_r31->unk10; + } + switch (var_r25) { + case 0: + if (fn_1_FE0() >= 4) { + temp_r31->unk10 = 1; + temp_r31->unk12 = 0; + } + break; + case 1: + if (fn_1_FE0() > 4) { + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } + else if ((temp_r31->unkA & 0x100) != 0) { + HuAudFXPlay(0x62A); + temp_r31->unk184 = HuAudFXPlay(0x621); + temp_r31->unk10 = 2; + temp_r31->unk12 = 0; + } + break; + case 2: + temp_r31->unk12++; + temp_r31->unk24 += ((1.0f / 60.0f) * temp_r31->unk20); + if (temp_r31->unk24 >= 1.0f) { + temp_r31->unk24 = 1.0f; + temp_r31->unk20 = -1.0f; + } + else { + if (temp_r31->unk24 <= 0.0f) { + temp_r31->unk24 = 0.0f; + temp_r31->unk20 = 1.0f; + } + } + if (fn_1_FE0() > 4) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x622); + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } + else if (((temp_r31->unkC & 0x100) == 0) || (temp_r31->unk12 >= 360.0f)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x622); + temp_r31->unk184 = HuAudFXPlay(0x62C); + temp_r31->unk168 = -1; + temp_r31->unk16C = -1; + temp_r31->unk10 = 3; + temp_r31->unk12 = 0; + } + break; + case 3: + temp_r31->unk12++; + if (temp_r31->unk15C == 0) { + temp_r31->unk28 += (1.0f / 60.0f); + } + if (temp_r31->unk28 > 1.0f) { + temp_r31->unk28 = 1.0f; + } + if (temp_r31->unk12 >= 0x3C) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x62D); + HuAudFXPlay(0x625); + temp_r31->unk10 = 4; + temp_r31->unk12 = 0; + } + temp_r31->unk15C = 0; + break; + case 4: + temp_r31->unk12++; + if (temp_r31->unk160 == 0) { + temp_r31->unk2C -= (1.0f / 60.0f); + } + if (temp_r31->unk2C < 0.0f) { + temp_r31->unk2C = 0.0f; + } + if (temp_r31->unk12 >= 0x3C) { + temp_r31->unk10 = 5; + temp_r31->unk12 = 0; + } + temp_r31->unk160 = 0; + break; + case 5: + temp_r31->unk12++; + if (temp_r31->unk12 >= 6.0f) { + temp_r31->unk184 = HuAudFXPlay(0x62C); + if ((temp_r31->unk168 != -1)) { + var_r27 = fn_1_897C(temp_r31->unk168); + if (var_r27 != 0) { + var_r26 = fn_1_89A8(temp_r31->unk168); + HuAudCharVoicePlay(var_r26, 0x128); + } + } + temp_r31->unk10 = 6; + temp_r31->unk12 = 0; + } + break; + case 6: + temp_r31->unk12++; + temp_r31->unk28 -= (1.0f / 45.0f); + if (temp_r31->unk28 <= 0.0f) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x62D); + temp_r31->unk28 = 0.0f; + if (temp_r31->unk168 != -1) { + var_r27 = fn_1_897C(temp_r31->unk168); + } + else { + var_r27 = -1; + } + if (temp_r31->unk168 == -1) { + if (fn_1_FE0() > 4) { + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } + else { + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + HuAudFXPlay(0x625); + } + } + else if (var_r27 == 0) { + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + HuAudFXPlay(0x625); + } + else { + if (temp_r31->unk168 != -1) { + fn_1_252C(-0.01f, 0x3C); + fn_1_2670(0x75, 0); + } + HuAudFXPlay(0x62B); + temp_r31->unk184 = HuAudFXPlay(0x623); + temp_r31->unk10 = 7; + temp_r31->unk12 = 0; + } + } + break; + case 7: + if (arg0->rot.y < temp_r31->unk180) { + arg0->rot.y += 1.25f; + } + else if (arg0->rot.y > temp_r31->unk180) { + arg0->rot.y = temp_r31->unk180; + } + var_f31 = 0.35f - temp_r31->unk24; + if (var_f31 > 0.0125f) { + temp_r31->unk24 += 0.0125f; + } + else if (var_f31 < -0.0125f) { + temp_r31->unk24 -= 0.0125f; + } + else { + temp_r31->unk24 = 0.35f; + } + if ((arg0->rot.y == temp_r31->unk180) && (0.35f == temp_r31->unk24)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x624); + HuAudFXPlay(0x625); + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + } + break; + case 8: + if ((temp_r31->unk12 == 0) && (temp_r31->unk168 != -1)) { + if (fn_1_897C(temp_r31->unk168) != 0) { + fn_1_8924(temp_r31->unk168, 4); + var_r26 = fn_1_89A8(temp_r31->unk168); + HuAudCharVoicePlay(var_r26, 0x123); + fn_1_D010(0x628, 30); + } + else { + fn_1_8924(temp_r31->unk168, 2); + } + temp_r31->unk16C = temp_r31->unk168; + temp_r31->unk168 = -1; + } + temp_r31->unk12++; + temp_r31->unk2C += 0.033333335f; + if (temp_r31->unk2C > 1.0f) { + temp_r31->unk2C = 1.0f; + } + if (temp_r31->unk2C >= 1.0f) { + if (arg0->rot.y == temp_r31->unk180) { + temp_r31->unk184 = HuAudFXPlay(0x623); + } + if (temp_r31->unk16C != -1) { + if (fn_1_897C(temp_r31->unk16C) != 0) { + lbl_1_bss_6CC++; + } + } + temp_r31->unk10 = 9; + temp_r31->unk12 = 0; + } + break; + case 9: + temp_r31->unk12++; + if (arg0->rot.y > 270.0f) { + arg0->rot.y -= 1.25f; + } + else if (arg0->rot.y < 270.0f) { + arg0->rot.y = 270.0f; + } + if (temp_r31->unk24 > 0.025f) { + temp_r31->unk24 -= 0.025f; + } + else if (temp_r31->unk24 < 0.05f) { + temp_r31->unk24 = 0.0f; + } + if ((270.0f == arg0->rot.y) && (0.0f == temp_r31->unk24)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + HuAudFXPlay(0x624); + } + temp_r31->unk20 = 1.0f; + temp_r31->unk10 = 1; + temp_r31->unk12 = 0; + } + break; + case 10: + if (fn_1_B888() != 0) { + temp_r31->unkE = 5; + CharModelMotionSet(temp_r31->unk2, arg0->motion[temp_r31->unkE]); + temp_r31->unkE = 3; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0U); + temp_r31->unk16 = 0; + temp_r31->unk14 = 0; + temp_r31->unk1C = lbl_1_data_210[0]; + temp_r31->unk18 = fn_1_B79C(lbl_1_data_1E0[0].y, lbl_1_data_1E0[1].y, temp_r31->unk1C); + temp_r31->unk10 = 11; + temp_r31->unk12 = 0; + } + else { + temp_r31->unk10 = 13; + temp_r31->unk12 = 0; + } + break; + case 11: + var_r29 = temp_r31->unk14; + if (var_r29 > 2) { + var_r29 = 2; + } + if (temp_r31->unk16 == 0) { + temp_r31->unk12++; + sp14 = lbl_1_data_1E0[var_r29]; + sp8 = lbl_1_data_1E0[var_r29 + 1]; + arg0->rot.y = fn_1_1470(atan2d((sp8.x - arg0->trans.x), (sp8.z - arg0->trans.z)), arg0->rot.y, 10.0f); + var_f31 = (f32)temp_r31->unk12 / temp_r31->unk18; + arg0->trans.x = sp14.x + (var_f31 * (sp8.x - sp14.x)); + arg0->trans.z = sp14.z + (var_f31 * (sp8.z - sp14.z)); + arg0->trans.y += temp_r31->unk1C; + temp_r31->unk1C -= 0.65333337f; + if (temp_r31->unk14 == 2) { + if ((temp_r31->unk12 >= (0.4f * temp_r31->unk18)) && (temp_r31->unkE != 6) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 6; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + } + } + if (temp_r31->unk12 >= temp_r31->unk18) { + arg0->trans.x = sp8.x; + arg0->trans.y = sp8.y; + arg0->trans.z = sp8.z; + temp_r31->unkE = 4; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0U); + temp_r31->unk12 = 0; + temp_r31->unk16 ^= 1; + if (++temp_r31->unk14 >= 3) { + temp_r31->unk10 = 0xC; + } + } + } + else { + sp14 = lbl_1_data_1E0[var_r29]; + sp8 = lbl_1_data_1E0[var_r29 + 1]; + var_f31 = atan2d((sp8.x - arg0->trans.x), (sp8.z - arg0->trans.z)); + arg0->rot.y = fn_1_1470(var_f31, arg0->rot.y, 10.0f); + if ((fn_1_1358(var_f31, arg0->rot.y) < 1.0f) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 3; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + temp_r31->unk1C = lbl_1_data_210[var_r29]; + temp_r31->unk18 = fn_1_B79C(sp14.y, sp8.y, temp_r31->unk1C); + temp_r31->unk12 = 0; + temp_r31->unk16 ^= 1; + } + } + break; + case 12: + if ((temp_r31->unkE != 0) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 0; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0x40000008); + } + arg0->rot.y = fn_1_1470(0.0f, arg0->rot.y, 10.0f); + if ((fn_1_1358(0.0f, arg0->rot.y) < 1.0f) && (temp_r31->unkE == 0)) { + temp_r31->unk10 = 0xD; + temp_r31->unk12 = 0; + } + break; + case 13: + if (fn_1_FE0() >= 7) { + if (fn_1_B888() != 0) { + temp_r31->unk10 = 14; + temp_r31->unk12 = 0; + } + else { + temp_r31->unk10 = 15; + temp_r31->unk12 = 0; + } + } + break; + case 14: + if ((temp_r31->unkE != 7) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 7; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + } + break; + case 15: + break; + } + if (temp_r31->unk10 <= 9) { + Hu3DModelRotSet(arg0->model[1], 0.0f, 90.0f + arg0->rot.y, 0.0f); + } + temp_r28 = arg0->model[2]; + Hu3DMotionTimeSet(temp_r28, temp_r31->unk24 * Hu3DMotionMaxTimeGet(temp_r28)); + fn_1_CE74(temp_r28); + temp_f30 = 0.2f + (0.8f * temp_r31->unk28); + Hu3DModelScaleSet(arg0->model[3], 1.0f, temp_f30, 1.0f); + Hu3DModelScaleSet(arg0->model[4], 1.0f, 1.0f / temp_f30, 1.0f); + temp_r28 = arg0->model[4]; + Hu3DMotionTimeSet(temp_r28, temp_r31->unk2C * Hu3DMotionMaxTimeGet(temp_r28)); + fn_1_CE74(temp_r28); + fn_1_C878(arg0->model[1], "hook1", sp74, 0); + fn_1_C878(arg0->model[2], "hook2", sp74, 1); + fn_1_C878(arg0->model[3], "hook3", sp74, 1); + MTXCopy(sp74, sp44); + temp_r31->unk30.x = sp74[0][3]; + temp_r31->unk30.y = sp74[1][3]; + temp_r31->unk30.z = sp74[2][3]; + + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + MTXCopy(sp44, sp74); + fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1); + temp_r31->unkCC[var_r29] = temp_r31->unk3C[var_r29]; + temp_r31->unk3C[var_r29].x = sp74[0][3]; + temp_r31->unk3C[var_r29].y = sp74[1][3]; + temp_r31->unk3C[var_r29].z = sp74[2][3]; + } + if ((temp_r31->unk168 != -1) && (temp_r31->unk10 >= 6)) { + sp2C.x = 0.0f; + sp2C.y = temp_r31->unk174.y; + sp2C.z = 0.0f; + VECSubtract(&temp_r31->unk174, &sp2C, &sp20); + var_f31 = VECMag(&sp20); + if (var_f31 != 0.0f) { + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, 0.9f * var_f31); + VECAdd(&sp2C, &sp20, &temp_r31->unk174); + } + VECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); + fn_1_88E8(temp_r31->unk168, sp38.x, sp38.y, sp38.z); + } + temp_r31->unk164 = 1; +} + +void fn_1_AE58(omObjData *arg0) +{ + arg0->func = NULL; +} + +f32 lbl_1_data_36C[4][2] = { 30.0f, 24.0f, 24.0f, 18.0f, 12.0f, 6.0f, 6.0f, 0.0f }; + +f32 lbl_1_data_38C[4][2] = { 0.2f, 0.15f, 0.15f, 0.1f, 0.1f, 0.05f, 0.05f, 0.0f }; + +void fn_1_AE64(omObjData *arg0) +{ + M424DllClawStruct2 sp20[8]; + M424DllClawStruct2 sp10; + s32 spC; + f32 var_f31; + f32 var_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 var_f25; + f32 var_f24; + s32 temp_r24; + s32 temp_r23; + M424DllClawStruct *temp_r31; + Vec *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + M424DllBallStruct2 *var_r26; + s32 var_r25; + + spC = 0; + temp_r31 = arg0->data; + var_r26 = &lbl_1_bss_60[0]; + if (var_r26) { + temp_r31->unkC = 0; + temp_r31->unkA = 0; + switch (temp_r31->unk10) { + case 1: + if (temp_r31->unk188 == 0) { + temp_r31->unk188 = 1; + temp_r31->unk18C = -1; + temp_r31->unk190 = 0; + temp_r31->unk194 = 0; + temp_r31->unk198 = 0; + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1A4 = 0; + temp_r31->unk1A8 = 0.0f; + } + if (temp_r31->unk18C == -1) { + for (var_r29 = 0, var_r28 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r26++) { + if ((fn_1_897C(var_r29) != 0) && (fn_1_8950(var_r29) <= 2)) { + var_r30 = fn_1_89D4(var_r29); + var_f31 = atan2d(var_r30->x, var_r30->z); + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_r28 < 8) { + if (var_f31 >= -90.0f) { + if (var_f31 <= 45.0f) { + sp20[var_r28].unk0 = var_r29; + sp20[var_r28].unkC = var_f31; + sp20[var_r28].unk4 = var_r30->x; + sp20[var_r28].unk8 = var_r30->z; + var_r28++; + } + } + } + } + } + if (var_r28 != 0) { + for (var_r29 = 0; var_r29 < (var_r28 - 1); var_r29++) { + var_r27 = var_r29 + 1; + for (; var_r27 < var_r28; var_r27++) { + if (sp20[var_r29].unkC < sp20[var_r27].unkC) { + sp10 = sp20[var_r29]; + sp20[var_r29] = sp20[var_r27]; + sp20[var_r27] = sp10; + } + } + } + temp_r31->unk18C = sp20[0].unk0; + temp_r31->unk1A8 = sp20[0].unkC; + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1A4 = 0; + temp_r31->unk1AC = 0; + } + } + if (temp_r31->unk18C != -1) { + var_r30 = fn_1_89D4(temp_r31->unk18C); + var_f31 = atan2d(var_r30->x, var_r30->z); + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 >= 30.0f) { + if (temp_r31->unk19C != 0) { + temp_f27 = lbl_1_data_36C[temp_r31->unk8][0]; + temp_f26 = lbl_1_data_36C[temp_r31->unk8][1]; + temp_r24 = ((temp_f26 - temp_f27) * (temp_f27 * (0.007874016f * (frand() & 0x7F)))); + temp_f27 = lbl_1_data_38C[temp_r31->unk8][0]; + temp_f26 = lbl_1_data_38C[temp_r31->unk8][1]; + temp_r23 = ((temp_f26 - temp_f27) * (temp_f27 * (0.007874016f * (frand() & 0x7F)))); + temp_r31->unk190 = ((3.0f * temp_r31->unk1A4) + temp_r24); + temp_f28 = (var_r30->x * var_r30->x) + (var_r30->z * var_r30->z); + var_f29 = sqrtf(temp_f28); + var_f29 = (var_f29 - 350.0f) / 250.0f + temp_r23; + if (var_f29 < 0.0f) { + var_f29 = 0.0f; + } + else if (var_f29 > 1.0f) { + var_f29 = 1.0f; + } + temp_r31->unk194 = (60.0f * (1.0f - var_f29)); + var_f25 = (1.5f + (-1.5f * var_f29)); + temp_r31->unk190 -= (s32)(60.0f * var_f25); + var_f25 = (1.0f + (-1.1f * var_f29)); + temp_r31->unk198 = (60.0f * var_f25); + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1AC = 0; + temp_r31->unk1AC = (temp_r31->unk1AC + (60.0f * (1.0f - var_f29))); + } + if (++temp_r31->unk1AC >= (temp_r31->unk190 - temp_r31->unk198)) { + temp_r31->unkA |= 0x100; + temp_r31->unkC |= 0x100; + temp_r31->unk1AC = 0; + return; + } + } + else { + if (var_f31 >= (15.0f + temp_r31->unk1A8)) { + temp_r31->unk1A0++; + temp_r31->unk1A8 = var_f31; + temp_r31->unk1A4 = (temp_r31->unk19C / temp_r31->unk1A0); + return; + } + temp_r31->unk19C++; + return; + } + } + break; + case 2: + if (temp_r31->unk18C != -1) { + var_r25 = 1; + if (++temp_r31->unk1AC >= temp_r31->unk194) { + var_r25 = 0; + } + } + else { + var_r25 = 0; + } + if (var_r25 != 0) { + temp_r31->unkC |= 0x100; + } + temp_r31->unk188 = 0; + break; + } + } +} + +u16 fn_1_B79C(f32 arg0, f32 arg1, f32 arg2) +{ + f32 var_f31; + f32 var_f3; + u16 var_r31; + + var_r31 = 0; + for (var_f31 = arg0; arg2 > 0.0f || var_f31 > arg1; var_r31++) { + var_f31 += arg2; + arg2 -= 0.65333337f; + } + return var_r31; +} + +s32 fn_1_B804(void) +{ + M424DllClawStruct *temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + temp_r31 = lbl_1_bss_6D8->data; + if ((temp_r31->unk10 >= 1) && (temp_r31->unk10 < 6)) { + return 1; + } + return 0; +} + +s32 fn_1_B888(void) +{ + if (lbl_1_bss_6CC >= 3) { + return 1; + } + else { + return 0; + } +} + +s32 fn_1_B8AC(void) +{ + M424DllClawStruct *temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + + temp_r31 = lbl_1_bss_6D8->data; + if (temp_r31->unk10 >= 10) { + return 1; + } + return 0; +} + +s32 fn_1_B924(void) +{ + M424DllClawStruct *temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + + temp_r31 = lbl_1_bss_6D8->data; + if (temp_r31->unk10 >= 13) { + return 1; + } + return 0; +} + +void fn_1_B99C(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2) +{ + fn_1_B9E0(arg0, arg1, arg8, arg2, 0x10); +} + +s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) +{ + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + f32 temp_f30; + f32 var_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 var_f25; + f32 var_f24; + f32 var_f23; + M424DllClawStruct *temp_r31; + s32 var_r29; + s32 var_r28; + s32 var_r26; + omObjData *var_r24; + s32 var_r23; + + var_r23 = 1; + var_r28 = 0; + var_r24 = lbl_1_bss_6D8; + temp_r31 = var_r24->data; + VECAdd(arg0, arg1, &sp24); + spC = *arg1; + *arg2 = *arg0; + temp_f30 = 5.0f + arg8; + if (temp_r31->unk164 == 0) { + return 0; + } + switch (temp_r31->unk10) { + case 3: + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + sp24 = *arg2; + VECSubtract(&sp24, arg0, &spC); + } + VECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); + var_f29 = VECMag(&sp18); + if (var_f29 < temp_f30) { + if (0.0f == var_f29) { + var_f29 = temp_f30; + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 1.0f; + } + var_f23 = sqrtf((sp18.x * sp18.x) + (sp18.z * sp18.z)); + if ((temp_r31->unk3C[var_r29].y > sp24.y) && (var_f23 < 17.599999999999998)) { + temp_r31->unk15C = 1; + } + else { + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + } + var_r28 = 1; + } + } + break; + default: + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + sp24 = *arg2; + VECSubtract(&sp24, arg0, &spC); + } + var_r26 = 0; + sp60 = temp_r31->unk3C[var_r29]; + VECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); + VECSubtract(&sp60, &sp54, &sp18); + VECSubtract(&sp24, &sp54, &sp48); + temp_f26 = (sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)); + if (temp_f26 != 0.0f) { + var_f24 = (sp18.x * sp48.x) + (sp18.y * sp48.y) + (sp18.z * sp48.z); + temp_f27 = var_f24 / temp_f26; + if (temp_f27 >= 0.0f) { + if (temp_f27 <= 1.0f) { + VECScale(&sp18, &sp18, temp_f27); + VECAdd(&sp54, &sp18, &sp3C); + VECSubtract(&sp24, &sp3C, &sp30); + var_f29 = VECMag(&sp30); + if (var_f29 == 0.0f) { + if (VECMag(&sp18) <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + VECNormalize(&sp18, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp60, &sp30, arg2); + var_r28 = 1; + var_r26 = 1; + } + else if (var_f29 < temp_f30) { + if (VECMag(&sp30) <= 0.0f) { + + sp30.x = sp30.y = 0.0f; + sp30.z = 1.0f; + } + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp3C, &sp30, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + } + } + if (var_r26 == 0) { + VECSubtract(&sp24, &sp60, &sp18); + var_f29 = VECMag(&sp18); + if (var_f29 < temp_f30) { + if (var_f29 <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + if (var_r26 == 0) { + VECSubtract(&sp24, &sp54, &sp18); + var_f29 = VECMag(&sp18); + if (var_f29 < temp_f30) { + if (var_f29 <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + if ((lbl_1_data_2DC[var_r29] != 0) && (var_r26 == 0)) { + var_r23 = 0; + } + } + if ((temp_r31->unk10 == 4) && (var_r23 != 0)) { + arg2->x = temp_r31->unk30.x; + arg2->y = arg0->y; + arg2->z = temp_r31->unk30.z; + arg3 = 0; + temp_r31->unk160 = 1; + } + break; + case 0: + case 1: + case 2: + case 9: + break; + } + if (var_r28 != 0) { + if (--arg3 > 0) { + sp24 = *arg2; + VECSubtract(&sp24, arg0, &spC); + if (fn_1_B9E0(arg0, &spC, arg8, &sp24, arg3) != 0) { + *arg2 = sp24; + } + } + } + + (void)temp_f30; // @todo fix + (void)temp_f30; + return var_r28; +} + +s32 fn_1_C210(Vec *arg0) +{ + Vec sp1C; + Vec sp10; + f32 spC; + M424DllClawStruct *temp_r31; + omObjData *var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = lbl_1_bss_6D8; + temp_r31 = var_r30->data; + if (temp_r31->unk164 == 0) { + return 0; + } + switch (temp_r31->unk10) { + case 5: + sp1C.x = temp_r31->unk30.x; + sp1C.y = -120.00001f + temp_r31->unk30.y; + sp1C.z = temp_r31->unk30.z; + VECSubtract(arg0, &sp1C, &sp10); + if ((spC = VECMag(&sp10)) < 50.0f) { + var_r29 = 1; + } + } + return var_r29; +} + +void fn_1_C2E0(s32 arg0) +{ + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec *spC; + M424DllBallStruct2 *temp_r27; + Vec *temp_r28; + M424DllClawStruct *temp_r31; + s32 var_r30; + s32 var_r26; + omObjData *var_r25; + + if ((u8)omPauseChk() != 0U) + return; + + var_r25 = lbl_1_bss_6D8; + if (lbl_1_bss_6D8) { + temp_r31 = var_r25->data; + if (temp_r31 && (temp_r31->unk164 != 0)) { + temp_r27 = &lbl_1_bss_60[0]; + if (temp_r27) { + var_r26 = 0x10; + + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r27 = &lbl_1_bss_60[var_r30]; + if ((fn_1_8950(var_r30) == 3) || (fn_1_8950(var_r30) == 4)) + continue; + temp_r28 = fn_1_89D4(var_r30); + spC = fn_1_8A00(var_r30); + sp28 = *temp_r28; + sp4C = temp_r27->unk60; + VECSubtract(temp_r28, &sp4C, &sp40); + if (fn_1_B9E0(&sp4C, &sp40, 100.0f, &sp34, 0x10) != 0) { + *temp_r28 = sp34; + sp4C = sp34; + if ((temp_r27->unk4 < 3) && (fn_1_907C(&sp4C, &sp34) != 0)) { + *temp_r28 = sp34; + sp4C = sp34; + } + fn_1_C604(var_r30, 0x20); + if ((sp28.y != sp4C.y) && (var_r30 != temp_r31->unk168) && (var_r30 != temp_r31->unk16C)) { + temp_r28->y = sp28.y; + sp4C.y = sp28.y; + if (var_r26 > 0) { + var_r30--; + var_r26--; + continue; + } + } + } + if (temp_r31->unk168 == -1) { + if (fn_1_C210(&sp4C) != 0) { + temp_r31->unk168 = var_r30; + temp_r31->unk170 = fn_1_897C(var_r30); + VECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); + fn_1_88E8(temp_r31->unk168, sp4C.x, sp4C.y, sp4C.z); + } + } + var_r26 = 0x10; + } + } + } + } +} + +void fn_1_C604(s32 arg0, s32 arg1) +{ + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + M424DllBallStruct2 *sp8; + Vec *var_r31; + f32 temp_f31; + f32 var_f30; + s32 var_r30; // ! - uninitialized + M424DllBallStruct2 *var_r28; + Vec *var_r27; + + sp8 = &lbl_1_bss_60[var_r30]; + var_r27 = fn_1_89D4(arg0); + sp30 = *var_r27; + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + if ((var_r30 != arg0) && (fn_1_8950(var_r30) < 3)) { + var_r28 = &lbl_1_bss_60[var_r30]; + var_r31 = fn_1_89D4(var_r30); + sp24 = *var_r31; + VECSubtract(&sp24, &sp30, &sp18); + var_f30 = VECMag(&sp18); + if (var_f30 < 200.0f) { + if (var_f30 > 0.0f) { + temp_f31 = 1.0f / var_f30; + sp18.x *= temp_f31; + sp18.y *= temp_f31; + sp18.z *= temp_f31; + } + else { + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 1.0f; + } + temp_f31 = 1.0f + (200.0f - var_f30); + sp24.x += (sp18.x * temp_f31); + sp24.z += (sp18.z * temp_f31); + var_r31->x = sp24.x; + var_r31->z = sp24.z; + if ((var_r28->unk4 < 3) && (fn_1_907C(&sp24, &spC) != 0)) { + var_r31->x = sp24.x = spC.x; + var_r31->z = sp24.z = spC.z; + } + if (arg1 > 0) { + arg1--; + fn_1_C604(var_r30, arg1); + } + } + } + } +} + +void fn_1_C854(void) +{ + fn_1_C2E0(0); +} + +s32 fn_1_C878(s16 arg0, const char *arg1, Mtx arg2, s32 arg3) +{ + Mtx sp44; + Mtx sp14; + HsfData *temp_r30; + ModelData *temp_r31; + + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->hsfData; + lbl_1_bss_6C8 = 0; + if (temp_r31->unk_08 != -1) { + lbl_1_bss_6C4 = 1; + } + else { + lbl_1_bss_6C4 = 0; + } + mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); + MTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + MTXConcat(sp14, sp44, sp44); + mtxTransCat(sp44, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); + if (arg3 != 0) { + MTXConcat(arg2, sp44, sp44); + } + fn_1_C99C(temp_r30->root, sp44, arg1, arg2); + return lbl_1_bss_6C8; +} + +void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) +{ + Mtx spF8; + Mtx spC8; + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + HsfTransform *var_r31; + HsfTransform *var_r30; + HsfTransform *var_r29; + HsfObject *temp_r28; + HsfObject *temp_r27; + u32 var_r25; + u32 var_r24; + u32 var_r23; + + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r31 = &arg0->data.curr; + } + else { + var_r31 = &arg0->data.base; + } + if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { + MTXCopy(arg1, spF8); + OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); + } + else { + mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); + mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(arg1, spF8, spF8); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", arg0->name); + } + if (strcmp(arg2, arg0->name) == 0) { + MTXCopy(spF8, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { + temp_r28 = arg0->data.children[var_r25]; + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r30 = &temp_r28->data.curr; + } + else { + var_r30 = &temp_r28->data.base; + } + if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { + MTXCopy(spF8, sp68); + OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name); + } + else { + mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(sp98, sp68, sp68); + mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); + MTXConcat(spF8, sp68, sp68); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", temp_r28->name); + } + if (strcmp(arg2, temp_r28->name) == 0) { + MTXCopy(sp68, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r24 = 0; var_r24 < temp_r28->data.childrenCount; var_r24++) { + temp_r27 = temp_r28->data.children[var_r24]; + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r29 = &temp_r27->data.curr; + } + else { + var_r29 = &temp_r27->data.base; + } + if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { + MTXCopy(sp68, sp8); + OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name); + } + else { + mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); + mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + MTXConcat(sp68, sp8, sp8); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", temp_r27->name); + } + if (strcmp(arg2, temp_r27->name) == 0) { + MTXCopy(sp8, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r23 = 0; var_r23 < temp_r27->data.childrenCount; var_r23++) { + fn_1_C99C(temp_r27->data.children[var_r23], sp8, arg2, arg3); + } + } + } + } + } + } +} + +void fn_1_CE74(s32 arg0) +{ + ModelData *temp_r31; + + temp_r31 = &Hu3DData[arg0]; + if (temp_r31->unk_08 != -1) { + Hu3DMotionExec(arg0, temp_r31->unk_08, temp_r31->unk_64, 0); + } + if (temp_r31->unk_0C != -1) { + Hu3DSubMotionExec(arg0); + } + if (temp_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(temp_r31->hsfData); + } +} + +void fn_1_CF00(Process *arg0) +{ + M424DllClawStruct3 *var_r31; + s32 var_r30; + + omAddObjEx(arg0, 0x40, 0, 0, -1, fn_1_CF80); + var_r31 = &lbl_1_bss_640[0]; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + var_r31->unk0 = -1; + var_r31->unk4 = -1; + } +} + +void fn_1_CF80(omObjData *arg0) +{ + M424DllClawStruct3 *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_640[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk0 >= 0) && (var_r31->unk4 > 0)) { + if (--var_r31->unk4 <= 0) { + HuAudFXPlay(var_r31->unk0); + var_r31->unk0 = -1; + var_r31->unk4 = -1; + } + } + } +} + +s32 fn_1_D010(s32 arg0, s32 arg1) +{ + M424DllClawStruct3 *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_640[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 == -1) + break; + } + if (var_r30 >= 0x10) { + return -1; + } + var_r31->unk0 = arg0; + var_r31->unk4 = arg1; + return var_r30; +} diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c new file mode 100644 index 00000000..0b9f27ba --- /dev/null +++ b/src/REL/m424Dll/main.c @@ -0,0 +1,421 @@ +#include "REL/m424Dll.h" + +#include "ext_math.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/wipe.h" + +// BSS +Process* lbl_1_bss_4C; +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; +s32 lbl_1_bss_3C; +s32 lbl_1_bss_38; // UNUSED +s32 lbl_1_bss_34; +s32 lbl_1_bss_30; +s32 lbl_1_bss_2C; +s16 lbl_1_bss_24[4]; +s16 lbl_1_bss_1C[4]; +omObjData* lbl_1_bss_18; +omObjData* lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +f32 lbl_1_bss_4[2]; // UNUSED +f32 lbl_1_bss_0; + +// data +M424DllMainStruct lbl_1_data_0[3] = { + { + { 320.0f, 0.0f, 0.0f }, + { 201.0f, 175.0f, 72.0f }, + 2025.0f + }, + { + { 320.0f, 0.0f, 0.0f }, + { 0.0f, 225.0f, -72.0f }, + 550.0f + }, + { + { 320.0f, 0.0f, 0.0f }, + { 401.0f, 175.0f, 72.0f }, + 625.0f + } +}; +Vec lbl_1_data_54 = { 1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; + +// PROTO +void fn_1_264(omObjData* object); +void fn_1_41C(omObjData* object); +void fn_1_EE0(omObjData* object); +void fn_1_F40(omObjData* object); +void fn_1_FF0(void); +void fn_1_11EC(omObjData* object); +void fn_1_1204(s32, s32, f32); +f32 fn_1_16C0(f32, f32, f32); + +/// FUNCTIONS /// + +void ObjectSetup(void) { + s32 var_r31; + Process* var_r30; + CameraData* var_r29; + + OSReport("******* M424ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_4C = var_r30; + omGameSysInit(var_r30); + fn_1_FF0(); + var_r29 = &Hu3DCamera[0]; + var_r29->fov = -1.0f; + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x31); + lbl_1_bss_18 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_264); + lbl_1_bss_48 = lbl_1_bss_44 = -1; + lbl_1_bss_40 = 0; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0; + lbl_1_bss_2C = -1; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_24[var_r31] = -1; + lbl_1_bss_1C[var_r31] = -1; + } + Hu3DShadowCreate(30.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); + Hu3DBGColorSet(0xFFU, 0xFFU, 0xFFU); +} + +Vec lbl_1_data_9C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_A8 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_B4 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_264(omObjData* object) { + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = Hu3DGLightCreateV(&lbl_1_data_9C, &lbl_1_data_A8, &lbl_1_data_B4); + Hu3DGLightStaticSet(var_r29, 1); + Hu3DGLightInfinitytSet(var_r29); + + for (var_r31 = 0, var_r30 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_24[3] = var_r31; + lbl_1_bss_1C[3] = GWPlayerCfg[var_r31].character; + } else { + lbl_1_bss_24[var_r30] = var_r31; + lbl_1_bss_1C[var_r30] = GWPlayerCfg[var_r31].character; + var_r30++; + } + } + if (var_r30 >= 4) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_24[var_r31] = var_r31; + lbl_1_bss_1C[var_r31] = GWPlayerCfg[var_r31].character; + } + } + fn_1_1AB8(lbl_1_bss_4C); + fn_1_2720(lbl_1_bss_4C); + fn_1_93F0(lbl_1_bss_4C); + object->func = fn_1_41C; +} + +void fn_1_41C(omObjData* object) { + s16 sp16; + s16 sp12; + s16 spE; + s16 spA; + f32 var_f31; // ! - uninitalized + s32 var_r31; + s32 var_r30; + CameraData* var_r29; + + switch (lbl_1_bss_40) { + case 0: + lbl_1_bss_0 += fn_1_213C(); + fn_1_1204(2, 2, var_f31); + if (lbl_1_bss_0 >= 360.0f) { + WipeCreate(1, 0, 0x3C); + var_r29 = &Hu3DCamera[0]; + var_r29->fov = 45.0f; + lbl_1_bss_40 = 1; + lbl_1_bss_3C = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_40 = 2; + lbl_1_bss_3C = 0; + } + break; + case 2: + if (++lbl_1_bss_3C >= 120.0f) { + lbl_1_bss_48 = MGSeqCreate(3, 0); + lbl_1_bss_40 = 3; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0; + } + break; + case 3: + lbl_1_bss_34++; + var_f31 = lbl_1_bss_34 / 60.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((90.0f * (var_f31 * var_f31))); + fn_1_1204(2, 0, var_f31); + if (lbl_1_bss_48 != -1) { + var_r31 = MGSeqStatGet(lbl_1_bss_48); + if (((var_r31 & 0x10) != 0) && (lbl_1_bss_2C == -1)) { + lbl_1_bss_2C = HuAudSeqPlay(0x48); + } + } else { + var_r31 = 0; + } + if ((lbl_1_bss_48 == -1) || (var_r31 == 0)) { + if (lbl_1_bss_34 >= 60.0f) { + lbl_1_bss_48 = -1; + lbl_1_bss_40 = 4; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0xE10; + lbl_1_bss_44 = MGSeqCreate(1, lbl_1_bss_34 / 60, -1, -1); + } + } + break; + case 4: + var_r30 = (lbl_1_bss_34 + 0x3B) / 60; + if (var_r30 < 0) { + var_r30 = 0; + } + MGSeqParamSet(lbl_1_bss_44, 1, var_r30); + if ((--lbl_1_bss_34 < -1) || (fn_1_B888() != 0)) { + MGSeqParamSet(lbl_1_bss_44, 2, -1); + lbl_1_bss_44 = -1; + lbl_1_bss_48 = MGSeqCreate(3, 1); + if (lbl_1_bss_2C != -1) { + HuAudSeqFadeOut(lbl_1_bss_2C, 0x64); + } + lbl_1_bss_40 = 5; + lbl_1_bss_3C = 0; + } + break; + case 5: + if ((lbl_1_bss_48 == -1) || ((MGSeqStatGet(lbl_1_bss_48) == 0) && (fn_1_B8AC() != 0) && (fn_1_8A2C() != 0) && (fn_1_213C() <= 0.0f))) { + if (fn_1_B888() != 0) { + lbl_1_bss_30 = 0; + } else { + lbl_1_bss_30 = 1; + } + HuAudAllStop(); + lbl_1_bss_40 = 6; + lbl_1_bss_3C = 0; + } + break; + case 6: + if (lbl_1_bss_30 == 0) { + if (fn_1_B924() != 0) { + lbl_1_bss_40 = 7; + lbl_1_bss_3C = 0; + } + } else { + if (++lbl_1_bss_3C >= 120.0f) { + lbl_1_bss_40 = 7; + lbl_1_bss_3C = 0; + } + } + break; + case 7: + if (lbl_1_bss_30 != 0) { + lbl_1_bss_48 = MGSeqCreate(5, 3, lbl_1_bss_1C[0], lbl_1_bss_1C[1], lbl_1_bss_1C[2], -1); + GWPlayerCoinWinSet(lbl_1_bss_24[0], GWPlayerCoinWinGet(lbl_1_bss_24[0]) + 10); + GWPlayerCoinWinSet(lbl_1_bss_24[1], GWPlayerCoinWinGet(lbl_1_bss_24[1]) + 10); + GWPlayerCoinWinSet(lbl_1_bss_24[2], GWPlayerCoinWinGet(lbl_1_bss_24[2]) + 10); + HuAudSStreamPlay(1); + lbl_1_bss_40 = 8; + lbl_1_bss_34 = 0; + } else { + lbl_1_bss_48 = MGSeqCreate(5, 3, lbl_1_bss_1C[3], -1, -1, -1); + GWPlayerCoinWinSet(lbl_1_bss_24[3], GWPlayerCoinWinGet(lbl_1_bss_24[3]) + 10); + HuAudSStreamPlay(1); + lbl_1_bss_40 = 8; + lbl_1_bss_34 = 0; + } + break; + case 8: + if (lbl_1_bss_30 == 0) { + var_f31 = lbl_1_bss_34 / 60.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind(90.0f * (var_f31 * var_f31)); + fn_1_1204(0, 1, var_f31); + } + if (++lbl_1_bss_34 >= 210.0f) { + lbl_1_bss_48 = -1; + lbl_1_bss_40 = 9; + lbl_1_bss_34 = 0; + } + break; + case 9: + WipeCreate(2, 0, 0x3C); + object->func = fn_1_EE0; + break; + } + fn_1_F40(object); +} + +void fn_1_EE0(omObjData* object) { + if (WipeStatGet() == 0) { + Hu3DBGColorSet(0, 0, 0); + fn_1_1B8C(); + fn_1_2880(); + fn_1_94A4(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_F40(omObjData* object) { + s32 var_r30; + + var_r30 = 0; + if ((WipeStatGet() != 0) || (object->func == fn_1_EE0)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + WipeCreate(2, 0, 0x3C); + HuAudStreamFadeOut(0x1E); + object->func = fn_1_EE0; + } +} + +s32 fn_1_FE0(void) { + return lbl_1_bss_40; +} + +void fn_1_FF0(void) { + omObjData* var_r31; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + var_r31 = lbl_1_bss_14 = omAddObjEx(lbl_1_bss_4C, 0x7FDA, 0, 0, -1, omOutView); + var_r31->work[0] = 1; + CRot.x = lbl_1_data_0[0].rot.x; + CRot.y = lbl_1_data_0[0].rot.y; + CRot.z = lbl_1_data_0[0].rot.z; + Center.x = lbl_1_data_0[0].center.x; + Center.y = lbl_1_data_0[0].center.y; + Center.z = lbl_1_data_0[0].center.z; + CZoom = lbl_1_data_0[0].zoom; + lbl_1_bss_C = 0; + lbl_1_bss_10 = -1; + omAddObjEx(lbl_1_bss_4C, 0xFF, 0, 0, -1, fn_1_11EC); +} + +void fn_1_11EC(omObjData* object) {} +void fn_1_11F0(void) {} + +s32 fn_1_11F4(void) { + return lbl_1_bss_C; +} + +void fn_1_1204(s32 arg0, s32 arg1, f32 arg2) { + M424DllMainStruct* temp_r30; + M424DllMainStruct* temp_r31; + + temp_r31 = &lbl_1_data_0[arg0]; + temp_r30 = &lbl_1_data_0[arg1]; + CRot.x = fn_1_16C0(arg2, temp_r31->rot.x, temp_r30->rot.x); + CRot.y = fn_1_16C0(arg2, temp_r31->rot.y, temp_r30->rot.y); + CRot.z = fn_1_16C0(arg2, temp_r31->rot.z, temp_r30->rot.z); + Center.x = temp_r31->center.x + (arg2 * (temp_r30->center.x - temp_r31->center.x)); + Center.y = temp_r31->center.y + (arg2 * (temp_r30->center.y - temp_r31->center.y)); + Center.z = temp_r31->center.z + (arg2 * (temp_r30->center.z - temp_r31->center.z)); + CZoom = temp_r31->zoom + (arg2 * (temp_r30->zoom - temp_r31->zoom)); +} + +f32 fn_1_1358(f32 arg8, f32 arg9) { + f32 var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } else { + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + } + return var_f31; +} + +f32 fn_1_1470(f32 arg8, f32 arg9, f32 argA) { + f32 var_f30; + f32 var_f31; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = (360.0 + (arg8 - arg9)); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } else { + var_f31 = argA; + } + } else { + if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } else { + var_f31 = -argA; + } + } + var_f31 = var_f31 + arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +f32 fn_1_16C0(f32 arg0, f32 arg1, f32 arg2) { + f32 temp_f24; + f32 var_f23; + + var_f23 = fn_1_1358(arg2, arg1); + temp_f24 = fabs(var_f23 * arg0); + return fn_1_1470(arg2, arg1, temp_f24); +} diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c new file mode 100644 index 00000000..4536b396 --- /dev/null +++ b/src/REL/m424Dll/map.c @@ -0,0 +1,293 @@ +#include "REL/m424Dll.h" + +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "math.h" + + +// STRUCT +typedef struct _M424DllMapStruct { + f32 unk0; + f32 unk4; + Mtx unk8; + s32 unk38; + f32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + s32 unk50; +} M424DllMapStruct; // sizeof 0x54 + +// BSS +Process *lbl_1_bss_54; +omObjData *lbl_1_bss_50; + +// DATA +Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; +Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; + +// PROTO +void fn_1_1BB8(omObjData *); +void fn_1_1E1C(omObjData *); +void fn_1_2130(omObjData *); +void fn_1_2438(f32); + +omObjData *fn_1_1AB8(Process *arg0) +{ + lbl_1_bss_54 = arg0; + lbl_1_bss_50 = omAddObjEx(arg0, 0x7F, 6, 0, -1, fn_1_1BB8); + lbl_1_bss_50->data = NULL; + Hu3DShadowCreate(45.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowPosSet(&lbl_1_data_E0, &lbl_1_data_EC, &lbl_1_data_F8); + return lbl_1_bss_50; +} + +void fn_1_1B8C(void) +{ + fn_1_2130(lbl_1_bss_50); +} + +void fn_1_1BB8(omObjData *arg0) +{ + M424DllMapStruct *var_r30; + + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + memset(var_r30, 0, 0x54); + var_r30->unk0 = 0.0f; + var_r30->unk4 = 0.0f; + var_r30->unk38 = -1; + var_r30->unk3C = 0.0f; + var_r30->unk40 = 0; + var_r30->unk44 = -1; + var_r30->unk48 = 0; + var_r30->unk4C = 0; + var_r30->unk50 = -1; + arg0->model[0] = Hu3DModelCreateFile(0x370017); + arg0->model[1] = Hu3DModelCreateFile(0x370018); + arg0->model[2] = Hu3DModelCreateFile(0x370019); + arg0->model[3] = Hu3DModelCreateFile(0x37001A); + arg0->model[4] = Hu3DModelCreateFile(0x37001B); + arg0->model[5] = Hu3DModelCreateFile(0x37001C); + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DMotionSpeedSet(arg0->model[1], var_r30->unk0); + Hu3DModelAttrSet(arg0->model[1], 0x40000001); + Hu3DMotionSpeedSet(arg0->model[0], 0.15f); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelPosSet(arg0->model[2], 847.135f, 0.0f, 424.56f); + Hu3DMotionSpeedSet(arg0->model[4], 2.0f); + Hu3DModelAttrSet(arg0->model[4], 0x40000001); + Hu3DModelShadowMapSet(arg0->model[0]); + Hu3DModelShadowMapSet(arg0->model[1]); + Hu3DModelShadowMapSet(arg0->model[2]); + arg0->func = fn_1_1E1C; +} + +void fn_1_1E1C(omObjData *arg0) +{ + f32 temp_f31; + M424DllMapStruct *temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk40 > 0) { + fn_1_2438(temp_r31->unk3C); + if ((--temp_r31->unk40 <= 0) && (temp_r31->unk44 != -1)) { + HuAudFXStop(temp_r31->unk44); + temp_r31->unk44 = -1; + } + } + switch (fn_1_FE0()) { + case 0: + temp_r31->unk0 = 0.5f; + break; + case 1: + case 2: + temp_r31->unk0 = 0.0f; + break; + case 3: + case 4: + temp_r31->unk0 += 0.001f; + if (temp_r31->unk0 > 0.04f) { + temp_r31->unk0 = 0.04f; + } + if (temp_r31->unk38 != -1) + break; + + temp_r31->unk38 = HuAudFXPlay(0x626); + break; + default: + if ((fn_1_B804() == 0) && (fn_1_8A2C() != 0)) { + temp_r31->unk0 *= 0.9f; + if (temp_r31->unk0 < 0.01f) { + temp_r31->unk0 = 0.0f; + } + temp_f31 = temp_r31->unk0 / 0.04f; + if (temp_r31->unk38 != -1) { + HuAudFXVolSet(temp_r31->unk38, (s16)(-8191.0f * (1.0f - temp_f31))); + HuAudFXPitchSet(temp_r31->unk38, (s16)(127.0f * temp_f31)); + if (temp_f31 <= 0.0f) { + HuAudFXStop(temp_r31->unk38); + temp_r31->unk38 = -1; + } + } + } + break; + } + + if (temp_r31->unk48 != 0) { + if (temp_r31->unk4C != 0) { + temp_r31->unk4C = (temp_r31->unk4C - 1); + } + else { + temp_r31->unk48 = (temp_r31->unk48 - 1); + if (temp_r31->unk48 != 0) { + Hu3DModelAttrReset(arg0->model[4], 1); + Hu3DModelAttrSet(arg0->model[5], 1); + } + else { + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DModelAttrReset(arg0->model[5], 1); + if (temp_r31->unk50 != -1) { + HuAudFXStop(temp_r31->unk50); + temp_r31->unk50 = -1; + } + } + } + } + temp_r31->unk4 = (20.0f * temp_r31->unk0); + MTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); + Hu3DMotionSpeedSet(arg0->model[1], temp_r31->unk0); +} + +void fn_1_2130(omObjData *arg0) +{ + arg0->func = NULL; +} + +f32 fn_1_213C(void) +{ + M424DllMapStruct *var_r31; + if (!lbl_1_bss_50) { + return 0.0f; + } + if (!lbl_1_bss_50->data) { + return 0.0f; + } + var_r31 = lbl_1_bss_50->data; + return var_r31->unk4; +} + +void fn_1_21B0(Mtx arg0) +{ + M424DllMapStruct *var_r31; + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + var_r31 = lbl_1_bss_50->data; + MTXCopy(var_r31->unk8, *(Mtx *)&arg0); + } +} + +void fn_1_2220(Vec *arg0, Vec *arg1) +{ + Vec spC; + M424DllMapStruct *temp_r30; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + temp_r30 = lbl_1_bss_50->data; + if (sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)) < 700.0f) { + spC.x = (temp_r30->unk8[0][0] * arg0->x) + (temp_r30->unk8[0][2] * arg0->z); + spC.z = (temp_r30->unk8[2][0] * arg0->x) + (temp_r30->unk8[2][2] * arg0->z); + spC.y = arg0->y; + } + else { + spC = *arg0; + } + VECSubtract(&spC, arg0, &spC); + *arg1 = spC; + } +} + +void fn_1_2438(f32 arg0) +{ + M424DllMapStruct *spC; + HsfAttribute *var_r31; + ModelData *temp_r30; + HsfData *temp_r29; + s32 var_r28; + HsfBitmap *var_r27; + omObjData *var_r26; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + var_r26 = lbl_1_bss_50; + spC = lbl_1_bss_50->data; + temp_r30 = &Hu3DData[var_r26->model[2]]; + temp_r29 = temp_r30->hsfData; + var_r31 = temp_r30->hsfData->attribute; + for (var_r28 = 0; var_r28 < temp_r29->attributeCnt; var_r28++, var_r31++) { + var_r27 = var_r31->bitmap; + if (strcmp("cr_dk2", var_r27->name) == 0) + break; + } + if (var_r28 < temp_r29->attributeCnt) { + var_r31->unk30 += arg0; + } + } +} + +void fn_1_252C(f32 arg8, s32 arg0) +{ + omObjData *sp10; + M424DllMapStruct *temp_r31; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + sp10 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + temp_r31->unk44 = HuAudFXPlay(0x627); + temp_r31->unk3C = arg8; + temp_r31->unk40 = arg0; + } +} + +f32 fn_1_25C0(void) +{ + omObjData *sp8; + M424DllMapStruct *temp_r31; + + if (!lbl_1_bss_50) { + return 0.0f; + } + if (!lbl_1_bss_50->data) { + return 0.0f; + } + sp8 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + if (temp_r31->unk40 != 0) { + return 250.0f * temp_r31->unk3C; + } + return 0.0f; +} + +void fn_1_2670(s32 arg0, s32 arg1) +{ + omObjData *temp_r30; + M424DllMapStruct *temp_r31; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + temp_r30 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + temp_r31->unk50 = HuAudFXPlay(0x629); + temp_r31->unk48 = arg0; + temp_r31->unk4C = arg1; + Hu3DMotionTimeSet(temp_r30->model[4], 0.0f); + } +} + +// UNUSED (guessing types) +M424DllMainStruct lbl_1_data_10C = { { 0.0f, 0.0f, 5500.0f }, { -3950.0f, 0.0f, -0.7f }, 0.6f }; + +GXColor lbl_1_data_128 = { 0xFF, 0xFF, 0xFF, 0xFF }; +M424DllMainStruct lbl_1_data_12C = { { 0.0f, 5500.0f, -3950.0f }, { 0.0f, 1.0f, 0.0f }, 0.0f }; + +s32 lbl_1_data_148[2] = { 0 }; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c new file mode 100644 index 00000000..7d1a75d0 --- /dev/null +++ b/src/REL/m425Dll/main.c @@ -0,0 +1,1711 @@ +#define HUSPR_USE_OLD_DEFS +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "math.h" +#include "string.h" + +#include "REL/m425Dll.h" + +extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h? + +typedef struct M425DllWork { + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u8 unk_06; + char unk07[2]; + u8 unk_09; + u8 unk_0A; + u8 unk_0B; + u8 unk_0C; + char unk0D; + s16 unk_0E; + float unk_10; + float unk_14; + Vec unk_18; + Vec unk_24; + Vec unk_30; + float unk_3C[8]; + s32 unk_5C; + float unk_60; + s32 unk_64; + s32 unk_68; +} M425DllWork; /* size = 0x6C */ + +typedef struct M425DllWork2 { + char unk00[4]; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + float unk_34; + float unk_38; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + char unk4C[0x18]; + float unk_64; + float unk_68; + float unk_6C; + char unk70[4]; + s16 unk_74; + s16 unk_76; +} M425DllWork2; /* size = 0x78 */ + +typedef struct M425DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + char unk06[0x42]; +} M425DllUnkStruct; /* size = 0x48 */ + +typedef struct M425DllUnkStruct2 { + AnimData *unk_00; + s16 unk_04; + Vec unk_08; + Mtx unk_14; + Vec2f *unk_44; + s16 unk_48; +} M425DllUnkStruct2; /* size = 0x4C */ + +typedef struct M425DllUnkStruct3 { + char unk00[0xC]; + s16 unk_0C; + void *unk_10; + Vec *unk_14; + GXColor *unk_18; + Vec *unk_1C; + GXColor unk_20; + GXColor unk_24; + s16 unk_28; + s16 unk_2A; + M425DllUnkStruct2 *unk_2C; +} M425DllUnkStruct3; /* size = 0x30 */ + +typedef struct M425DllUnkBss10Struct { + /* 0x00 */ u8 unk_00; + /* 0x01 */ char pad_01[1]; + /* 0x02 */ u8 unk_02; + /* 0x03 */ u8 unk_03; + /* 0x04 */ float unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ float unk_34; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ float unk_40; + union { + /* 0x44 */ s16 unk_44[0x20]; + struct { + float unk_44f; + float unk_48; + char unk4C[4]; + float unk_50; + char unk54[0x30]; + }; + }; +} M425DllUnkBss10Struct; /* size = 0x84 */ + +void fn_1_1B40(omObjData *object); +void fn_1_2784(omObjData *object); +void fn_1_2870(omObjData *object); +void fn_1_2A94(s16 arg0, Vec *arg1, Vec *arg2, float arg8); +void fn_1_2B2C(omObjData *object); +void fn_1_2E78(omObjData *object); +void fn_1_33E0(omObjData *object); +void fn_1_3764(omObjData *object); +s16 fn_1_3ED0(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_3F80(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_460(omObjData *object); +void fn_1_480(omObjData *object); +void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_5044(s16 arg0); +void fn_1_573C(Vec2f **arg0, s16 arg1, Vec2f *arg2); +void fn_1_57D4(ModelData *model, Mtx matrix); +void fn_1_5C20(ModelData *model, Mtx matrix); +s32 fn_1_64D4(void); +void fn_1_8E4(omObjData *object); +void fn_1_F48(omObjData *object); +void fn_1_FA8(omObjData *object); + +s16 lbl_1_data_0 = -1; +Vec lbl_1_data_4 = { -200.0f, 2500.0f, 1200.0f }; +Vec lbl_1_data_10 = { 0.2f, -0.8f, -0.2f }; +float lbl_1_data_1C[9] = { 0.0f, 2500.0f, 1500.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_40 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +omObjData *lbl_1_bss_668; +omObjData *lbl_1_bss_664; +// M425DllWork2 +omObjData *lbl_1_bss_660; +omObjData *lbl_1_bss_65C; +// M425DllWork +omObjData *lbl_1_bss_64C[4]; +u16 lbl_1_bss_648; +s16 lbl_1_bss_646; +s16 lbl_1_bss_644; +s16 lbl_1_bss_642; +s16 lbl_1_bss_640; +M425DllUnkBss10Struct lbl_1_bss_10[0xC]; +float lbl_1_bss_C; +float lbl_1_bss_8; +float lbl_1_bss_4; +char lbl_1_bss_0[4]; + +void ObjectSetup(void) +{ + s32 var_r31; + Process *process; + omObjData *object; + s32 var_r28; + LightData *var_r27; + CameraData *var_r26; + s32 var_r25; + s32 var_r24; + s32 sp8[4] = { 0, 0, 0, 0 }; + + OSReport("******* M425ObjectSetup *********\n"); + Hu3DLighInit(); + var_r24 = Hu3DGLightCreateV(&lbl_1_data_4, &lbl_1_data_10, &lbl_1_data_40); + Hu3DGLightInfinitytSet(var_r24); + var_r27 = Hu3DGlobalLight; + var_r27->unk_00 |= 0x8000; + process = omInitObjMan(0x32, 0x2000); + var_r25 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r25; var_r31++) { + fn_1_64D4(); + } + CRot.x = 8.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 430.0f; + Center.z = -400.0f; + CZoom = 1650.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_664 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutView); + var_r26 = Hu3DCamera; + var_r26->fov = -1.0f; + lbl_1_bss_668 = omAddObjEx(process, 0x10, 8, 0, -1, fn_1_460); + lbl_1_bss_65C = omAddObjEx(process, 0x20, 0x10, 0, -1, fn_1_FA8); + lbl_1_bss_660 = omAddObjEx(process, 0x50, 0x10, 0, -1, fn_1_2784); + fn_1_6A0C(process, 0x40); + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + object = omAddObjEx(process, 0x30, 2, 0xA, 0, fn_1_2B2C); + lbl_1_bss_64C[var_r31] = object; + object->work[0] = var_r31; + object->work[1] = GWPlayerCfg[var_r31].group; + for (var_r28 = object->work[1] * 2; var_r28 < 4; var_r28++) { + if (sp8[var_r28] == 0) { + object->work[1] = var_r28; + sp8[var_r28]++; + break; + } + } + } + omGameSysInit(process); + HuAudSndGrpSet(0x32); +} + +void fn_1_460(omObjData *object) +{ + lbl_1_bss_648 = 0; + object->func = fn_1_480; +} + +void fn_1_480(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + CameraData *var_r30; + + switch (lbl_1_bss_648) { + case 0: + sp14.x = -250.0f; + sp14.y = 225.0f; + sp14.z = 200.0f; + sp8.x = 22.0f; + sp8.y = 10.0f; + sp8.z = 0.0f; + var_f31 = 500.0f; + fn_1_2A94(1, &sp14, &sp8, var_f31); + lbl_1_bss_C = -4.866667f; + lbl_1_bss_8 = 600.0f; + sp14.x = -300.0f; + sp14.y = lbl_1_bss_8; + sp14.z = 0.0f; + fn_1_6CD0(0, &sp14); + sp14.x = 300.0f; + fn_1_6CD0(1, &sp14); + var_r30 = Hu3DCamera; + var_r30->fov = 45.0f; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_648++; + break; + case 1: + lbl_1_bss_8 += lbl_1_bss_C; + lbl_1_bss_C += -2.4333334f; + if (lbl_1_bss_8 < 0.0f) { + lbl_1_bss_8 = 0.0f; + lbl_1_bss_648++; + lbl_1_bss_640 = 0x3C; + fn_1_10DB4(0); + fn_1_10DB4(1); + fn_1_10E3C(0); + } + sp14.x = -300.0f; + sp14.y = lbl_1_bss_8; + sp14.z = 0.0f; + fn_1_6CD0(0, &sp14); + sp14.x = 300.0f; + fn_1_6CD0(1, &sp14); + break; + case 2: + if (--lbl_1_bss_640 == 0) { + sp14.x = 0.0f; + sp14.y = 430.0f; + sp14.z = -400.0f; + sp8.x = 8.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1650.0f; + lbl_1_bss_640 = 0x48; + fn_1_2A94(0x3C, &sp14, &sp8, var_f31); + lbl_1_bss_648++; + } + break; + case 3: + if (--lbl_1_bss_640 == 0) { + lbl_1_bss_648 = 4; + object->func = fn_1_8E4; + lbl_1_bss_646 = lbl_1_bss_644 = -1; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } +} + +s32 lbl_1_data_68 = -1; +s32 lbl_1_data_6C[0xA] = { 0, 2, 3, 5, 6, 8, 0xA, 9, 0x17, 0x18 }; +Vec lbl_1_data_94[4] = { + { -350.0f, 800.0f, 100.0f }, + { -200.0f, 1000.0f, 0.0f }, + { 200.0f, 1200.0f, 0.0f }, + { 350.0f, 1400.0f, 100.0f }, +}; + +void fn_1_8E4(omObjData *object) +{ + s16 sp8[2]; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s16 var_r26; + s16 var_r25; + + switch (lbl_1_bss_648) { + case 4: + if (lbl_1_bss_644 == -1) { + lbl_1_bss_642 = 0x708; + lbl_1_bss_644 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_644, 320.0f, 240.0f); + } + else { + if (MGSeqStatGet(lbl_1_bss_644) == 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_648++; + lbl_1_bss_646 = MGSeqCreate(1, lbl_1_bss_642 / 60, -1, -1); + } + } + if ((lbl_1_data_68 == -1) && ((MGSeqStatGet(lbl_1_bss_644) & 0x10) != 0)) { + lbl_1_data_68 = HuAudSeqPlay(0x48); + } + break; + case 5: + var_r30 = 0; + lbl_1_bss_642--; + var_r28 = (lbl_1_bss_642 + 0x3B) / 60; + if (var_r28 < 0) { + var_r28 = 0; + } + MGSeqParamSet(lbl_1_bss_646, 1, var_r28); + if (lbl_1_bss_642 < -1) { + var_r30++; + if ((fn_1_10CF4(0) == 1000.0f) && (fn_1_10CF4(1) == 1000.0f)) { + lbl_1_data_0 = -1; + } + else { + var_f31 = fn_1_10CF4(1); + if (fn_1_10CF4(0) <= var_f31) { + lbl_1_data_0 = 0; + } + else { + lbl_1_data_0 = 1; + } + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (!(fn_1_10CF4(var_r31) > 0.0f)) { + lbl_1_data_0 = var_r31; + var_r30++; + } + } + if (var_r30 != 0) { + lbl_1_bss_648++; + } + break; + case 6: + if (lbl_1_bss_644 == -1) { + lbl_1_bss_644 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_644, 320.0f, 240.0f); + MGSeqParamSet(lbl_1_bss_646, 2, -1); + HuAudSeqFadeOut(lbl_1_data_68, 0x64); + } + else if (MGSeqStatGet(lbl_1_bss_644) == 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_640 = 1; + lbl_1_bss_648++; + } + break; + case 7: + if (--lbl_1_bss_640 <= 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_648++; + } + break; + case 8: + if (lbl_1_data_0 != -1) { + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_data_0 == OM_GET_DATA_PTR(lbl_1_bss_64C[var_r31], M425DllWork)->unk_02) { + sp8[var_r29] = OM_GET_DATA_PTR(lbl_1_bss_64C[var_r31], M425DllWork)->unk_01; + var_r29++; + GWPlayerCoinWinAdd(var_r31, 10); + } + } + lbl_1_bss_644 = MGSeqCreate(5, 3, sp8[0], sp8[1], -1, -1); + HuAudSStreamPlay(1); + } + else { + lbl_1_bss_644 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + lbl_1_bss_640 = 0xD2; + lbl_1_bss_648++; + break; + case 9: + if (--lbl_1_bss_640 <= 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } +} + +void fn_1_F48(omObjData *object) +{ + if (WipeStatGet() == 0) { + CharModelKill(-1); + MGSeqKill(lbl_1_bss_646); + MGSeqKillAll(); + fn_1_6C08(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_FA8(omObjData *object) +{ + M425DllUnkBss10Struct *var_r31; + s32 var_r30; + s16 *var_r28; + s32 var_r27; + s32 var_r26; + Vec sp8[] = { + { 475.0f, 800.0f, -1400.0f }, + { -300.0f, 900.0f, -1400.0f }, + { 300.0f, 875.0f, -1450.0f }, + { -575.0f, 850.0f, -1550.0f }, + { 350.0f, 750.0f, -1500.0f }, + { -450.0f, 775.0f, -1550.0f }, + { 325.0f, 725.0f, -1450.0f }, + { -525.0f, 725.0f, -1500.0f }, + { 575.0f, 850.0f, -1550.0f }, + { -350.0f, 750.0f, -1500.0f }, + { 450.0f, 775.0f, -1550.0f }, + { -325.0f, 725.0f, -1450.0f }, + { 525.0f, 725.0f, -1500.0f }, + { -475.0f, 800.0f, -1400.0f }, + { 300.0f, 900.0f, -1400.0f }, + { -300.0f, 875.0f, -1450.0f }, + }; + + var_r30 = Hu3DModelCreateFile(0x380000); + object->model[0] = var_r30; + var_r30 = Hu3DModelCreateFile(0x380001); + object->model[1] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r30 = Hu3DHookFuncCreate(fn_1_57D4); + object->model[2] = var_r30; + fn_1_5044(var_r30); + var_r30 = fn_1_3ED0(0x1E0020, 0xC8, fn_1_4A88); + object->model[3] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + var_r30 = fn_1_3ED0(0x380005, 1, fn_1_3F80); + object->model[5] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 0; + var_r30 = fn_1_3ED0(0x380008, 0xA, fn_1_3F80); + object->model[6] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 1; + var_r30 = fn_1_3ED0(0x380007, 4, fn_1_3F80); + object->model[7] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 2; + var_r30 = fn_1_3ED0(0x380006, 6, fn_1_3F80); + object->model[8] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 3; + for (var_r27 = 0; var_r27 < 0xC; var_r27++) { + var_r31 = &lbl_1_bss_10[var_r27]; + var_r30 = Hu3DModelCreateFile(0x380002); + var_r31->unk_00 = var_r30; + var_r31->unk_08.x = sp8[var_r27].x; + var_r31->unk_08.y = sp8[var_r27].y; + var_r31->unk_08.z = sp8[var_r27].z; + Hu3DModelPosSet(var_r30, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z); + Hu3DMotionSpeedSet(var_r30, 6.0f); + var_r31->unk_02 = var_r31->unk_03 = 0; + var_r31->unk_14 = var_r31->unk_18 = var_r31->unk_1C = 0.0f; + var_r31->unk_20 = var_r31->unk_24 = var_r31->unk_28 = 1.0f; + var_r31->unk_38 = var_r31->unk_3C = var_r31->unk_40 = 0.0f; + var_r31->unk_2C = var_r31->unk_08.x; + var_r31->unk_30 = var_r31->unk_08.y; + var_r31->unk_34 = var_r31->unk_08.z; + if ((var_r27 & 1) != 0) { + var_r31->unk_18 = 90.0f; + var_r31->unk_08.y += 650.0; + var_r31->unk_08.x -= 1400.0; + } + else { + var_r31->unk_18 = 90.0f; + } + var_r31->unk_18 += 10.0 * (3.0517578125e-05 * (float)((u16)frand() - 0x8000)); + var_r31->unk_08.z -= 400.0; + var_r31->unk_04 = 100.0 * (0.10000000149011612 + (0.019999999552965164 * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + var_r31->unk_44[var_r26] = 0; + } + var_r31->unk_50 = var_r31->unk_04; + } + HuAudFXPlay(0x633); + HuAudFXPlay(0x635); + object->func = fn_1_1B40; +} + +void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + if (argA != 0.0f) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} + +float fn_1_15EC(float arg8, float arg9) +{ + float var_f30 = 360.0f; + float var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + if (var_f31 < 0.0f) { + var_f31 += var_f30; + } + else if (var_f31 >= var_f30) { + var_f31 -= var_f30; + } + return var_f31; +} + +void fn_1_16B0(Mtx var_r30, Vec *var_r31) +{ + float var_f29; + float var_f25; + + var_r31->x = fn_1_15EC(var_r30[2][2], var_r30[1][2]); + var_r31->z = fn_1_15EC(var_r30[0][0], var_r30[0][1]); + var_f29 = -var_r30[0][2]; + var_f25 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-1.0 - (var_f29 * var_f29)) : (1.0 - (var_f29 * var_f29))); + if ((var_r31->x > 90.0f) && (var_r31->x < 270.0f) && (var_r31->z > 90.0f) && (var_r31->z < 270.0f)) { + var_r31->x = fmod(180.0f + var_r31->x, 360.0); + var_r31->z = fmod(180.0f + var_r31->z, 360.0); + var_f25 = -var_f25; + } + var_r31->y = fn_1_15EC(var_f25, var_f29); +} + +void fn_1_1B40(omObjData *object) +{ + Mtx spCC; + Mtx sp9C; + Mtx sp6C; + Vec sp60; + M425DllUnkBss10Struct *var_r31; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 0xC; var_r27++) { + var_r31 = &lbl_1_bss_10[var_r27]; + switch (var_r31->unk_03) { + case 0: + if (var_r31->unk_04 < var_r31->unk_50) { + var_r31->unk_04 += 0.4f; + } + if ((s32)(64.0 * (1.52587890625e-05 * (float)fn_1_64D4())) == 0) { + Hu3DMotionTimeSet(var_r31->unk_00, 0.0f); + } + if (Hu3DMotionEndCheck(var_r31->unk_00) != 0) { + var_r31->unk_3C = -2.92f; + } + else { + var_r31->unk_3C = -0.48666668f; + } + var_r31->unk_44f += 0.10000000149011612 * (3.0517578125e-05 * (float)((u16)frand() - 0x8000)); + var_r31->unk_48 += var_r31->unk_44f; + if (var_r31->unk_48 > 180.0f) { + var_r31->unk_48 -= 180.0f; + } + if (var_r31->unk_48 < -180.0f) { + var_r31->unk_48 += 180.0f; + } + var_r31->unk_14 = -30.0 * sind(var_r31->unk_48) * sind(var_r31->unk_18); + var_r31->unk_1C = -30.0 * sind(var_r31->unk_48) * cosd(var_r31->unk_18); + if ((var_r31->unk_08.y <= 700.0f) || (fabs(var_r31->unk_08.x) > 2000.0)) { + var_r31->unk_3C = 0.0f; + var_r31->unk_44[6] = (s32)(20.0 * (3.0517578125e-05 * (float)(fn_1_64D4() - 0x8000))) + 0xB4; + var_r31->unk_04 *= 0.75f; + var_r31->unk_03++; + } + break; + case 1: + var_r31->unk_18 += 1.0f; + var_r31->unk_14 = 0.0f; + var_r31->unk_1C = 60.0 * sind(var_r31->unk_44[6]) * cosd(var_r31->unk_18); + if (--var_r31->unk_44[6] == 0) { + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 6.0f); + var_r31->unk_3C = 5.3533335f; + var_r31->unk_03++; + } + break; + case 2: + if (var_r31->unk_04 > 4.0f) { + var_r31->unk_04 -= 0.1f; + var_r31->unk_3C += 0.73f; + } + var_r31->unk_3C += -0.5475f; + if (var_r31->unk_3C < 0.0f) { + Hu3DModelAttrReset(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 2.0f); + var_r31->unk_50 = 100.0 * (0.10000000149011612 + (0.019999999552965164 * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + var_r31->unk_03 = 0; + } + break; + } + if (0) { + s32 var_r31; + s32 var_r30; + s32 var_r29; + float var_f31; + float var_f20; + float var_f19; + float var_f18; + + (void) object; + (void) object; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f20; + (void) var_f20; + (void) var_f20; + (void) var_f19; + (void) var_f19; + (void) var_f19; + (void) var_f18; + (void) var_f18; + (void) var_f18; + } + var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); + var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); + var_r31->unk_08.x += var_r31->unk_38; + var_r31->unk_08.y += var_r31->unk_3C; + var_r31->unk_08.z += var_r31->unk_40; + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z); + fn_1_14CC(spCC, var_r31->unk_14, -var_r31->unk_18, var_r31->unk_1C); + fn_1_16B0(spCC, &sp60); + Hu3DModelRotSetV(var_r31->unk_00, &sp60); + } +} + +void fn_1_2784(omObjData *object) +{ + M425DllWork2 *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllWork2), MEMORY_DEFAULT_NUM); + object->data = work; + work->unk_76 = work->unk_74 = 0; + work->unk_10.x = work->unk_28.x = 8.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 430.0f; + work->unk_04.z = work->unk_1C.z = -400.0f; + work->unk_64 = work->unk_68 = 1650.0f; + object->func = fn_1_2870; +} + +void fn_1_2870(omObjData *object) +{ + float var_f31; + M425DllWork2 *work; + + work = object->data; + if (work->unk_76 != 0) { + work->unk_76--; + var_f31 = (float)(work->unk_74 - work->unk_76) / work->unk_74; + var_f31 = sind((90.0f * var_f31)); + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34 - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_38 - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_3C - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40 - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_44 - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_48 - work->unk_28.z)); + work->unk_64 = work->unk_68 + (var_f31 * (work->unk_6C - work->unk_68)); + } + CRot.x = work->unk_10.x; + CRot.y = work->unk_10.y; + CRot.z = work->unk_10.z; + Center.x = work->unk_04.x; + Center.y = work->unk_04.y; + Center.z = work->unk_04.z; + CZoom = work->unk_64; +} + +void fn_1_2A94(s16 arg0, Vec *arg1, Vec *arg2, float arg8) +{ + M425DllWork2 *work = lbl_1_bss_660->data; + work->unk_74 = arg0; + work->unk_76 = arg0; + work->unk_1C = work->unk_04; + work->unk_34 = arg1->x; + work->unk_38 = arg1->y; + work->unk_3C = arg1->z; + work->unk_28 = work->unk_10; + work->unk_40 = arg2->x; + work->unk_44 = arg2->y; + work->unk_48 = arg2->z; + work->unk_68 = work->unk_64; + work->unk_6C = arg8; +} + +void fn_1_2B2C(omObjData *object) +{ + s32 sp8; // ! - uninitialized + M425DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllWork), MEMORY_DEFAULT_NUM); + object->data = var_r31; + var_r31->unk_00 = object->work[0]; + var_r31->unk_01 = GWPlayerCfg[var_r31->unk_00].character; + var_r31->unk_02 = GWPlayerCfg[var_r31->unk_00].group; + var_r31->unk_03 = object->work[1] & 1; + var_r31->unk_04 = GWPlayerCfg[var_r31->unk_00].pad_idx; + var_r31->unk_05 = GWPlayerCfg[var_r31->unk_00].iscom; + var_r31->unk_06 = GWPlayerCfg[var_r31->unk_00].diff; + var_r31->unk_0E = 0; + var_r31->unk_0B = 1; + var_r31->unk_0C = 0; + memset(var_r31->unk_3C, 0, sizeof(var_r31->unk_3C)); + var_r31->unk_5C = 0; + var_r31->unk_60 = 1.0f; + var_r31->unk_64 = 0; + var_r31->unk_68 = 0; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != var_r31->unk_00) && (var_r31->unk_02 == GWPlayerCfg[var_r29].group)) { + var_r31->unk_09 = var_r29; + break; + } + } + var_r27 = object->work[1]; + var_r31->unk_18.x = lbl_1_data_94[var_r27].x; + var_r31->unk_18.y = lbl_1_data_94[var_r27].y; + var_r31->unk_18.z = lbl_1_data_94[var_r27].z; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + if (var_r31->unk_02 == 0) { + var_r31->unk_10 = 30.0f; + } + else { + var_r31->unk_10 = -30.0f; + } + var_r28 = CharModelCreate(var_r31->unk_01, 4); + object->model[0] = var_r28; + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); + CharModelStepTypeSet(var_r31->unk_01, 1); + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_01, lbl_1_data_6C[var_r29]); + if (var_r29 == 5) { + CharModelVoiceEnableSet(var_r31->unk_01, object->motion[var_r29], 0); + } + } + CharModelMotionDataClose(var_r31->unk_01); + CharModelMotionSet(var_r31->unk_01, object->motion[var_r31->unk_0E]); + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelPosSet(var_r28, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r28, 0.0f, 30.0f, 0.0f); + HuDataDirClose(sp8); + object->func = fn_1_2E78; +} + +void fn_1_2E78(omObjData *object) +{ + float spC[8]; + s32 sp8; + M425DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + sp8 = object->model[0]; + var_r31 = object->data; + var_r31->unk_30 = var_r31->unk_18; + if ((lbl_1_bss_648 == 5) && (var_r31->unk_05 != 0)) { + fn_1_33E0(object); + } + fn_1_3764(object); + switch (lbl_1_bss_648) { + case 2: + if (lbl_1_bss_640 == 1) { + var_r31->unk_0E = 5; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, 0); + var_r31->unk_24.y = 0.0f; + var_r31->unk_0B = 0; + } + var_r31->unk_68 = 0; + break; + case 3: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + if (var_r31->unk_0B == 0) { + HuAudFXPlay(0x62F); + } + CharModelVoiceEnableSet(var_r31->unk_01, object->motion[5], 1); + var_r31->unk_0B = 1; + } + break; + case 5: + if ((var_r31->unk_0E == 5) && (var_r31->unk_0C == 0)) { + var_r26 = 1; + } + + case 4: + case 6: + case 7: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, var_r26) != 0) { + var_r31->unk_0B = 1; + } + break; + case 8: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + var_r31->unk_0B = 1; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + var_r31->unk_0B = 1; + } + if ((var_r31->unk_0B != 0) && (var_r31->unk_0E != 8) && (var_r31->unk_0E != 9)) { + if (var_r31->unk_02 == lbl_1_data_0) { + var_r31->unk_0E = 8; + } + else { + var_r31->unk_0E = 9; + } + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, 0); + } + break; + case 9: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + var_r31->unk_0B = 1; + } + break; + } + if (var_r31->unk_18.y < 0.0f) { + var_r31->unk_18.y = 0.0f; + var_r31->unk_0B = 1; + } + var_r27 = var_r31->unk_5C % 8; + var_r31->unk_3C[var_r27] = var_r31->unk_18.y; + if (++var_r31->unk_5C > 8) { + for (var_r29 = 0; var_r29 < 8; var_r29++) { + var_r28 = var_r27 - var_r29; + if (var_r28 < 0) { + var_r28 += 8; + } + spC[var_r29] = var_r31->unk_3C[var_r28]; + } + for (var_r29 = 1; var_r29 < 8; var_r29++) { + if (fabs(spC[var_r29] - spC[0]) > 25.0) { + break; + } + } + if (((var_r31->unk_0E == 0) || (var_r31->unk_0E == 8) || (var_r31->unk_0E == 9)) && (var_r29 >= 8)) { + var_r31->unk_60 = var_r31->unk_60 - 0.05f; + if (var_r31->unk_60 < 0.75f) { + var_r31->unk_60 = 0.75f; + } + } + else { + var_r31->unk_60 = 1.0f; + } + } + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); +} + +void fn_1_33E0(omObjData *object) +{ + s32 spC; + s16 sp8; + M425DllWork *var_r31; + M425DllWork *var_r30; + + var_r31 = object->data; + var_r30 = lbl_1_bss_64C[var_r31->unk_09]->data; + spC = object->model[0]; + sp8 = var_r31->unk_0E; + switch (var_r31->unk_0E) { + case 4: + case 7: + case 0: + if (var_r30->unk_0E == 3) { + if ((var_r30->unk_05 == 0) || ((s32)((0x18 - (var_r31->unk_06 * 3)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + } + else { + if ((s32)((0x30 - (var_r31->unk_06 * 4)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + break; + } + break; + case 3: + if ((s32)(4.0 * (1.52587890625e-05 * (float)fn_1_64D4())) != 0) { + HuPadBtn[var_r31->unk_04] |= 0x100; + } + if ((var_r30->unk_05 == 0) && (var_r30->unk_0E == 5)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + if ((var_r31->unk_24.y < 5.353333473205566) && ((s32)((0xE - (var_r31->unk_06 * 2)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + } + break; + } +} + +void fn_1_3764(omObjData *object) +{ + float var_f30; + float var_f29; + + M425DllWork *var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + s32 var_r23; + + var_r31 = object->data; + var_r23 = object->model[0]; + var_r30 = var_r31->unk_0E; + if (lbl_1_bss_648 == 5) { + var_r26 = 0; + var_r25 = 0; + var_r27 = HuPadBtnDown[var_r31->unk_04]; + var_r24 = HuPadBtn[var_r31->unk_04]; + } + else { + var_r26 = 0; + var_r25 = 0; + var_r27 = 0; + var_r24 = 0; + } + var_r31->unk_64 = 0; + switch (var_r31->unk_0E) { + case 4: + case 7: + if (CharModelMotionEndCheck(var_r31->unk_01) != 0) { + var_r30 = 0; + var_r29 = 1; + } + + case 0: + case 1: + case 2: + var_r31->unk_24.x = 0.25f * var_r26; + var_r31->unk_24.z = 0.25f * -var_r25; + var_r31->unk_14 = sqrtf((var_r31->unk_24.x * var_r31->unk_24.x) + (var_r31->unk_24.z * var_r31->unk_24.z)); + var_r31->unk_64 = 1; + if (var_r31->unk_14 > 0.1f) { + if (var_r31->unk_14 >= 8.0f) { + var_r30 = 2; + var_r29 = 1; + } + else { + var_r30 = 1; + var_r29 = 1; + } + var_f30 = atan2d(var_r31->unk_24.x, var_r31->unk_24.z); + if (var_f30 >= 180.0f) { + var_f30 = var_f30 - 360.0f; + } + else if (var_f30 < -180.0f) { + var_f30 += 360.0f; + } + var_f29 = var_r31->unk_10 - var_f30; + if (var_f29 >= 180.0f) { + var_f29 -= 360.0f; + } + else if (var_f29 < -180.0f) { + var_f29 += 360.0f; + } + var_r31->unk_10 = var_f30 + (0.5f * var_f29); + if (var_r31->unk_10 >= 180.0f) { + var_r31->unk_10 = var_r31->unk_10 - 360.0f; + } + else if (var_r31->unk_10 < -180.0f) { + var_r31->unk_10 += 360.0f; + } + } + else { + var_r30 = 0; + var_r29 = 1; + } + var_r31->unk_24.y = 0.0f; + var_r31->unk_24.y += -2.4333334f * var_r31->unk_60; + if ((var_r27 & 0x100) != 0) { + var_r31->unk_0B = 0; + var_r31->unk_0A = 1; + var_r31->unk_24.y = 26.766666f; + var_r30 = 3; + var_r29 = 0; + } + break; + case 3: + if (var_r31->unk_0A != 0) { + if ((var_r24 & 0x100) != 0) { + if (++var_r31->unk_0A > 4) { + var_r31->unk_0A = 0; + } + else { + var_r31->unk_24.y += 4.866667f; + } + } + else { + var_r31->unk_0A = 0; + } + } + var_r31->unk_24.y += -2.4333334f; + if (var_r31->unk_0B != 0) { + var_r31->unk_0B = 1; + var_r30 = 4; + var_r29 = 0; + var_r31->unk_24.y = 0.0f; + } + if (((var_r27 & 0x100) != 0) || ((var_r27 & 0x40) != 0)) { + var_r31->unk_24.y = 0.0f; + var_r31->unk_0C = 0; + var_r30 = 5; + var_r29 = 0; + } + break; + case 5: + if ((Hu3DData[var_r23].unk_0C == -1) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r31->unk_24.y += -2.4333334f; + } + else { + var_r31->unk_24.y = 0.0f; + } + if (var_r31->unk_0B != 0) { + if (var_r31->unk_0C != 0) { + var_r31->unk_24.y = 0.0f; + var_r31->unk_0C = 0; + var_r30 = 7; + var_r29 = 0; + } + else { + var_r31->unk_24.y = 9.733334f; + var_r31->unk_0B = 0; + var_r30 = 6; + var_r29 = 0; + } + } + break; + case 6: + var_r31->unk_24.y += -2.4333334f; + if ((var_r31->unk_0B != 0) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r30 = 7; + var_r29 = 0; + } + break; + case 8: + case 9: + var_r31->unk_24.y = -2.4333334f * var_r31->unk_60; + var_r31->unk_64 = 1; + break; + } + var_r31->unk_18.x += var_r31->unk_24.x; + if (var_r31->unk_0B == 0) { + var_r31->unk_18.y += var_r31->unk_24.y; + } + var_r31->unk_18.z += var_r31->unk_24.z; + if (var_r30 != var_r31->unk_0E) { + var_r31->unk_0E = var_r30; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, var_r29); + } + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + omSetRot(object, 0.0f, var_r31->unk_10, 0.0f); +} + +s16 fn_1_3ED0(s32 arg0, s16 arg1, ParticleHook arg2) +{ + s32 var_r31; + M425DllUnkStruct *var_r30; + ParticleData *var_r29; + AnimData *var_r28; + + var_r28 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r31 = Hu3DParticleCreate(var_r28, arg1); + Hu3DParticleHookSet(var_r31, arg2); + var_r29 = Hu3DData[var_r31].unk_120; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllUnkStruct), MEMORY_DEFAULT_NUM); + var_r29->unk_1C = var_r30; + var_r30->unk_04 = 0; + return var_r31; +} + +void fn_1_3F80(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f29; + float var_f28; + float var_f26; + float var_f25; + float var_f24; + + HsfanimStruct01 *var_r31; + M425DllUnkStruct *var_r29; + s32 var_r28; + + float sp54[4] = { 1000.0f, 200.0f, 600.0f, 1200.0f }; + float sp44[4] = { 1.0f, 0.6f, 0.3f, 0.425f }; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 sp8 = 0; + + var_r29 = particle->unk_1C; + switch (var_r29->unk_04) { + case 0: + var_r31 = particle->unk_48; + if (var_r29->unk_02 != 0) { + sp14.x = 0.0f; + sp14.y = -3600.0f; + sp14.z = 6250.0f; + var_f28 = (sp14.z * sp14.z) + ((sp14.x * sp14.x) + (sp14.y * sp14.y)); + var_f29 = 1.0f / sqrtf(var_f28); + sp14.x *= var_f29; + sp14.y *= var_f29; + sp14.z *= var_f29; + var_f24 = 6000.0f / particle->unk_30; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_f26 = 500.0 + ((var_f24 * var_r28) + ((0.25f * var_f24) * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + var_f25 = var_f26 / 6000.0f; + var_r31->unk14.x = var_f26; + var_r31->unk34.x = var_f26 * sp14.x; + var_r31->unk34.y = 4000.0f + (var_f26 * sp14.y); + var_r31->unk34.z = -6750.0f + (var_f26 * sp14.z); + var_r31->unk2C = (0.3f + (0.7f * (var_f25 * var_f25))) + * (sp54[var_r29->unk_02] * (0.699999988079071 + (0.30000001192092896 * (1.52587890625e-05 * (float)(s32)(u16)frand())))); + var_r31->unk40.r = (s32)(160.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.g = (s32)(96.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.b = (s32)(128.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.a + = ((1.0 - (0.4 * var_f25)) * (255.0f * sp44[var_r29->unk_02])) - (s32)(16.0 * (1.52587890625e-05 * (float)fn_1_64D4())); + } + var_r29->unk_04++; + } + else { + var_r31->unk34.x = 0.0f; + var_r31->unk34.y = 4000.0f; + var_r31->unk34.z = -6750.0f; + var_r31->unk2C = 1000.0f; + } + break; + case 1: + sp38.x = sind(CRot.y) * cosd(CRot.x); + sp38.y = -sind(CRot.x); + sp38.z = cosd(CRot.y) * cosd(CRot.x); + sp2C.x = -(Center.x + (1.25f * (sp38.x * CZoom))); + sp2C.y = 4000.0f - (Center.y + (sp38.y * CZoom)); + sp2C.z = -6750.0f - (Center.z + (1.25f * (sp38.z * CZoom))); + var_f29 = 1.0f / sqrtf((sp2C.z * sp2C.z) + ((sp2C.x * sp2C.x) + (sp2C.y * sp2C.y))); + sp2C.x *= var_f29; + sp2C.y *= var_f29; + sp2C.z *= var_f29; + var_f29 = -((-sp2C.z * -sp38.z) + ((-sp2C.x * -sp38.x) + (-sp2C.y * -sp38.y))); + sp20.x = -sp38.x + (-2.0f * sp2C.x * var_f29); + sp20.y = -sp38.y + (-2.0f * sp2C.y * var_f29); + sp20.z = -sp38.z + (-2.0f * sp2C.z * var_f29); + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk34.x = sp20.x * var_r31->unk14.x; + var_r31->unk34.y = 4000.0f + (sp20.y * var_r31->unk14.x); + var_r31->unk34.z = -6750.0f + (sp20.z * var_r31->unk14.x); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f31; + HsfanimStruct01 *var_r31; + M425DllUnkStruct *var_r29; + s32 var_r28; + s16 var_r27; + + var_r27 = 0; + var_r29 = particle->unk_1C; + switch (var_r29->unk_04) { + case 0: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk00 = var_r31->unk02 = 0; + } + var_r29->unk_04++; + break; + case 1: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk00 != 0) { + var_r31->unk00--; + } + else { + if (var_r31->unk02 == 0) { + var_f31 = 180.0 * (1.52587890625e-05 * (float)(s32)(u16)frand()); + var_f31 = var_f31; + if ((s32)(4.0 * (1.52587890625e-05 * (float)fn_1_64D4())) != 0) { + var_r31->unk34.x = 100.0 * (4.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * cosd(var_f31); + } + else { + var_r31->unk34.x = 100.0 * (2.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * cosd(var_f31); + } + var_r31->unk34.y = -10.0f; + var_r31->unk34.z = -7000.0 + (100.0 * (40.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * sind(var_f31)); + var_r31->unk30 = 1.5707964f; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xC0; + var_r31->unk40.b = 0xA0; + var_r31->unk2C = 0.0f; + var_r31->unk00 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4())); + var_r31->unk02 = 0x3C; + var_r31->unk40.r = 0xC0; + var_r31->unk40.g = 0xE0; + var_r31->unk40.b = 0xE0; + var_r31->unk08.z = 0.01f * (0.05f * (3000.0f + -var_r31->unk34.z)); + var_r31->unk08.z *= var_r31->unk08.z; + var_r31->unk08.z *= 0.125f; + } + var_r31->unk40.a = 248.0 * sind((var_r31->unk02 * 3)); + var_r31->unk2C = (30.0f * var_r31->unk08.z) * sind((var_r31->unk02 * 3)); + var_r31->unk02--; + } + } + if (particle->unk_30 == var_r27) { + Hu3DModelAttrReset(var_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); + Hu3DModelKill(var_r29->unk_00); + return; + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_5044(s16 sp8) +{ + M425DllUnkStruct3 *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + ModelData *var_r27; + void *var_r26; + + Vec2f spC[4] = { { 0.0f, 0.0f }, { 1.0f, 0.0f }, { 1.0f, 1.0f }, { 0.0f, 1.0f } }; + var_r27 = &Hu3DData[sp8]; + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllUnkStruct3), MEMORY_DEFAULT_NUM); + var_r27->unk_120 = var_r31; + var_r31->unk_2A = 1; + var_r31->unk_20.r = var_r31->unk_20.g = var_r31->unk_20.b = 0x40; + var_r31->unk_20.a = 0xFF; + var_r31->unk_24.a = var_r31->unk_24.g = var_r31->unk_24.b = 0xFF; + var_r31->unk_24.r = var_r31->unk_24.b = 0; + // maybe Mtx? + var_r31->unk_14 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); + var_r31->unk_14[0].x = -4500.0f; + var_r31->unk_14[0].y = 0.0f; + var_r31->unk_14[0].z = -7000.0f; + var_r31->unk_14[1].x = 4500.0f; + var_r31->unk_14[1].y = 0.0f; + var_r31->unk_14[1].z = -7000.0f; + var_r31->unk_14[2].x = 3000.0f; + var_r31->unk_14[2].y = -200.0f; + var_r31->unk_14[2].z = 0.0f; + var_r31->unk_14[3].x = -3000.0f; + var_r31->unk_14[3].y = -200.0f; + var_r31->unk_14[3].z = 0.0f; + var_r31->unk_18 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); + var_r31->unk_18[0].r = 0xFF; + var_r31->unk_18[0].g = 0xFF; + var_r31->unk_18[0].b = 0xFF; + var_r31->unk_18[0].a = 0xFF; + var_r31->unk_18[1].r = 0xFF; + var_r31->unk_18[1].g = 0xFF; + var_r31->unk_18[1].b = 0xFF; + var_r31->unk_18[1].a = 0xFF; + var_r31->unk_18[2].r = 0xFF; + var_r31->unk_18[2].g = 0xFF; + var_r31->unk_18[2].b = 0xFF; + var_r31->unk_18[2].a = 0xFF; + var_r31->unk_18[3].r = 0xFF; + var_r31->unk_18[3].g = 0xFF; + var_r31->unk_18[3].b = 0xFF; + var_r31->unk_18[3].a = 0xFF; + var_r31->unk_1C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_1C->x = 0.0f; + var_r31->unk_1C->y = 1.0f; + var_r31->unk_1C->z = 0.0f; + var_r31->unk_28 = 2; + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (var_r31->unk_28 * sizeof(M425DllUnkStruct2)), MEMORY_DEFAULT_NUM); + var_r31->unk_2C[0].unk_00 = HuSprAnimReadFile(0x380003); + var_r31->unk_2C[0].unk_04 = 0; + var_r31->unk_2C[1].unk_00 = HuSprAnimReadFile(0x380004); + var_r31->unk_2C[1].unk_04 = 0; + var_r31->unk_2C[1].unk_48 = 0x80; + for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) { + MTXIdentity(var_r31->unk_2C[var_r30].unk_14); + var_r31->unk_2C[var_r30].unk_08.x = var_r31->unk_2C[var_r30].unk_08.y = var_r31->unk_2C[var_r30].unk_08.z = 0.0f; + } + for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) { + fn_1_573C(&var_r31->unk_2C[var_r30].unk_44, var_r31->unk_2A, spC); + } + var_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20000, MEMORY_DEFAULT_NUM); + var_r31->unk_10 = var_r26; + DCFlushRange(var_r31->unk_10, 0x20000); + GXBeginDisplayList(var_r26, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r31->unk_2A * 4); + for (var_r30 = 0; var_r30 < var_r31->unk_2A; var_r30++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + GXUnknownu16(var_r29 + (var_r30 * 4)); + GXUnknownu16(var_r30); + GXUnknownu16(var_r29 + (var_r30 * 4)); + for (var_r28 = 0; var_r28 < var_r31->unk_28; var_r28++) { + GXUnknownu16(var_r29 + (var_r30 * 4)); + } + } + } + var_r31->unk_0C = GXEndDisplayList(); +} + +void fn_1_5568(Vec **arg0, s16 arg1, Vec *arg2) +{ + Vec *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } + } +} + +void fn_1_5608(GXColor **arg0, s16 arg1, GXColor *arg2) +{ + GXColor *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), 0x10000000); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->r = arg2->r; + var_r31->g = arg2->g; + var_r31->b = arg2->b; + var_r31->a = arg2->a; + } + } +} + +void fn_1_56B0(Vec **arg0, s16 arg1, Vec *arg2) +{ + Vec *var_r31; + s32 var_r29; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } +} + +void fn_1_573C(Vec2f **arg0, s16 arg1, Vec2f *arg2) +{ + Vec2f *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(Vec2f)), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + } + } +} + +void fn_1_57D4(ModelData *model, Mtx matrix) +{ + float var_f31; + float var_f30; + s32 var_r31; + M425DllUnkStruct3 *var_r30; + + var_r30 = model->unk_120; + var_r30->unk_2C[1].unk_08.y -= 0.0005f; + var_f31 = sind(lbl_1_bss_4); + var_f30 = cosd(lbl_1_bss_4); + for (var_r31 = 0; var_r31 < 1; var_r31++) { + var_r30->unk_2C[var_r31].unk_44[0].x = 0.005f * var_f31 * (var_r31 != 0 ? 10.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[0].y = 0.005f * var_f30 * (var_r31 != 0 ? 1.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[1].x = 1.0f + (0.005f * var_f30 * (var_r31 != 0 ? 10.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[1].y = 0.005f * var_f31 * (var_r31 != 0 ? 1.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[2].x = 1.0f + (0.005f * var_f31 * (var_r31 != 0 ? 10.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[2].y = 1.0f + (0.005f * var_f30 * (var_r31 != 0 ? 1.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[3].x = 0.005f * var_f30 * (var_r31 != 0 ? 10.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[3].y = 1.0f + (0.005f * var_f31 * (var_r31 != 0 ? 1.0f : -1.0f)); + } + lbl_1_bss_4 += 1.0f; + fn_1_5C20(model, matrix); +} + +void fn_1_5C20(ModelData *var_r27, Mtx sp8) +{ + Mtx sp5C; + Mtx sp2C; + GXColor sp26; + s16 spC; + GXTexMapID var_r29; + M425DllUnkStruct3 *var_r31; + s16 var_r30; + s16 var_r28; + s16 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r31 = var_r27->unk_120; + GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20); + GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24); + GXLoadPosMtxImm(sp8, 0); + MTXInverse(sp8, sp5C); + MTXTranspose(sp5C, sp2C); + GXLoadNrmMtxImm(sp2C, 0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(1, GX_LEQUAL, 1); + var_r30 = 0; + var_r28 = 0; + spC = 0; + for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) { + MTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); + mtxTransCat( + var_r31->unk_2C[var_r29].unk_14, var_r31->unk_2C[var_r29].unk_08.x, var_r31->unk_2C[var_r29].unk_08.y, var_r31->unk_2C[var_r29].unk_08.z); + switch (var_r31->unk_2C[var_r29].unk_04) { + case 0: + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r25 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r25, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + if (var_r29 == GX_TEXMAP0) { + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + } + else { + sp26.a = var_r31->unk_2C[var_r29].unk_48; + GXSetTevColor(GX_TEVREG2, sp26); + GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + break; + case 1: + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r24 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r24, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColor(GX_TEVREG2, sp26); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + break; + case 2: + sp26.a = 0xE0; + GXSetTevColor(GX_TEVREG1, sp26); + GXSetTexCoordGen2(var_r28 + 1, GX_TG_BUMP0, var_r28, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + var_r30++; + GXSetTevOrder(var_r30, var_r28 + 1, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(var_r30, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + break; + case 3: + var_r28--; + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r23 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r23, 0, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + var_r28++; + break; + } + var_r30++; + var_r28++; + HuSprTexLoad(var_r31->unk_2C[var_r29].unk_00, 0, var_r29, GX_REPEAT, GX_REPEAT, GX_LINEAR); + } + sp26.a = var_r31->unk_24.a; + GXSetTevColor(GX_TEVREG0, sp26); + GXSetTevOrder(var_r30, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_KONST); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + var_r30++; + GXSetNumTevStages((s32)var_r30); + GXSetNumTexGens((s32)var_r28); + var_r26 = Hu3DLightSet(var_r27, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, var_r26, GX_DF_CLAMP, GX_AF_SPOT); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_18, 4); + for (var_r29 = GX_TEXMAP0; var_r29 < (var_r31->unk_28 * var_r31->unk_2A); var_r29++) { + GXSetVtxDesc(var_r29 + 0xD, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, 8); + } + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_1C, 0xC); + GXCallDisplayList(var_r31->unk_10, var_r31->unk_0C); +} + +u32 lbl_1_data_114 = 0x41C64E6D; + +s32 fn_1_64D4(void) +{ + lbl_1_data_114 *= 0x41C64E6D; + lbl_1_data_114 += 0x3039; + return lbl_1_data_114 >> 0x10; +} + +float fn_1_6528(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 1.0 - arg8; + float var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_65A0(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_6528(arg8, *arg0++, *arg1++, *arg2++); + } +} + +float fn_1_66BC(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_6734(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_66BC(arg8, *arg0++, *arg1++, *arg2++); + } + + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = 1.0 / var_f29; + var_f29 = var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c new file mode 100644 index 00000000..3f02dce6 --- /dev/null +++ b/src/REL/m425Dll/thwomp.c @@ -0,0 +1,2768 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "ext_math.h" +#include "game/animdata.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m425Dll.h" + +extern u32 GlobalCounter; +extern LightData Hu3DLocalLight[0x20]; + +typedef struct M425DllUnkStruct4 { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + s32 unk_28; + s32 unk_2C; + float unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C[5]; + s32 unk_50; + float unk_54[6]; + s32 unk_6C[6]; + s32 unk_84[6]; + float unk_9C[6]; + s32 unk_B4[6]; + Vec unk_CC; + float unk_D8; + float unk_DC; + float unk_E0; + float unk_E4; + float unk_E8; + float unk_EC; + s32 unk_F0[3]; + float unk_FC; + float unk_100; + char unk104[0x8]; + s16 unk_10C; + s16 unk_10E; + s16 unk_110; + s16 unk_112[0x19]; + s16 unk_144[0x1A]; + s16 *unk_178; + Vec *unk_17C; + Vec *unk_180; + Vec2f *unk_184; + Vec *unk_188; + Vec *unk_18C; + s16 (*unk_190)[3]; + Vec *unk_194; + Vec *unk_198; + s32 unk_19C; + u8 *unk_1A0; + s16 *unk_1A4[0x19]; + s16 unk_208[0x19]; + GXColor unk_23A; + s32 unk_240; + u32 unk_244[0x19]; + void *unk_2A8[0x19]; +} M425DllUnkStruct4; /* size = 0x30C */ + +typedef struct M425DllUnkStruct5 { + char unk00[4]; + Vec unk_04; + Vec unk_10; + float unk_1C; + char unk20[8]; + float unk_28; + float unk_2C; + Vec unk_30; + GXColor unk_3C; + s32 unk_40; +} M425DllUnkStruct5; /* size = 0x44 */ + +typedef void (*UnkHook)(ModelData *model, struct M425DllUnkStruct6 *particle, Mtx matrix); + +typedef struct M425DllUnkStruct6 { + s16 unk_00; + s16 unk_02; + char unk04[0x1C]; + u8 unk_20; + u8 unk_21; + char unk22[2]; + s16 unk_24; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + u32 unk_34; + AnimData *unk_38; + M425DllUnkStruct5 *unk_3C; + Vec *unk_40; + Vec2f *unk_44; + void *unk_48; + UnkHook unk_4C; +} M425DllUnkStruct6; /* size = 0x50 */ + +void fn_1_6BD8(omObjData *object); +s32 fn_1_6EC4(float arg8, float arg9, s16 arg0, s16 arg1); +void fn_1_6DFC(s32 arg0, float arg8); +void fn_1_E210(s32 arg0); +void fn_1_E914(ModelData *arg0, Mtx matrix); +void fn_1_D9A8(M425DllUnkStruct4 *var_r31, ModelData *var_r24, s32 var_r30, s32 var_r26, s32 var_r25); +void fn_1_DB44(M425DllUnkStruct4 *arg0, ModelData *model); +void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model); +void fn_1_101C4(ModelData *model, Mtx matrix); +void fn_1_11284(void); +void fn_1_112FC(void); +void fn_1_11418(void); +s32 fn_1_11454(Vec *arg0, Vec *arg1, float arg8, float arg9); +s16 fn_1_115D4(ModelData *arg0, Mtx arg1, Mtx arg2, float arg8); +void fn_1_116E4(ModelData *arg1, LightData *arg2, s16 arg3, Mtx arg4, Mtx arg5, float arg8); +s16 fn_1_11A74(AnimData *arg0, s16 arg1); +void fn_1_11EE0(ModelData *model, Mtx matrix); + +Vec lbl_1_data_118[2] = { + { -300.0f, 1.0f, 0.0f }, + { 300.0f, 1.0f, 0.0f }, +}; + +Process *lbl_1_bss_6F0; +omObjData *lbl_1_bss_6EC; +s32 lbl_1_bss_6E8; +u8 *lbl_1_bss_6E4; +AnimData *lbl_1_bss_6E0; +AnimData *lbl_1_bss_6DC; +AnimData *lbl_1_bss_6D8; +// M425DllUnkStruct6 +s32 lbl_1_bss_6D4; +u8 lbl_1_bss_6D0; +s32 lbl_1_bss_6CC; +GXColor lbl_1_bss_6C8; +GXLightObj lbl_1_bss_688; +Vec lbl_1_bss_67C; +Vec lbl_1_bss_670; + +omObjData *fn_1_6A0C(Process *process, s32 sp8) +{ + omObjData *object; + + lbl_1_bss_6F0 = process; + object = omAddObjEx(process, sp8, 6, 0, -1, fn_1_6BD8); + lbl_1_bss_6EC = object; + object->stat |= 0x100; + lbl_1_bss_6E8 = 0; + lbl_1_bss_6D0 = 0x40; + lbl_1_bss_6CC = 0; + object->model[0] = fn_1_6EC4(350.0f, 350.0f, 0x10, 0x10); + object->model[1] = fn_1_6EC4(350.0f, 350.0f, 0x10, 0x10); + fn_1_6CD0(0, &lbl_1_data_118[0]); + fn_1_6CD0(1, &lbl_1_data_118[1]); + fn_1_6DFC(0, 30.0f); + fn_1_6DFC(1, -30.0f); + lbl_1_bss_6E4 = HuDataReadNum(0x38000A, MEMORY_DEFAULT_NUM); + lbl_1_bss_6E0 = HuSprAnimRead(HuDataReadNum(0x38000B, MEMORY_DEFAULT_NUM)); + lbl_1_bss_6DC = HuSprAnimRead(HuDataReadNum(0x38000C, MEMORY_DEFAULT_NUM)); + fn_1_11284(); + return lbl_1_bss_6EC; +} + +void fn_1_6BD8(omObjData *object) +{ + fn_1_E210(0); + fn_1_E210(1); + fn_1_112FC(); +} + +void fn_1_6C08(void) +{ + omObjData *object = lbl_1_bss_6EC; + if (object) { + HuMemDirectFree(lbl_1_bss_6E4); + lbl_1_bss_6E4 = NULL; + HuSprAnimKill(lbl_1_bss_6E0); + lbl_1_bss_6E0 = NULL; + HuSprAnimKill(lbl_1_bss_6DC); + lbl_1_bss_6DC = NULL; + fn_1_11418(); + lbl_1_bss_6EC = NULL; + object->func = NULL; + omDelObjEx(lbl_1_bss_6F0, object); + } +} + +void fn_1_6CD0(s32 arg0, Vec *arg1) +{ + M425DllUnkStruct4 *var_r30; + s32 var_r29; + ModelData *var_r28; + + if (lbl_1_bss_6EC) { + var_r28 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r28->unk_120; + var_r30->unk_CC.x = arg1->x; + var_r30->unk_CC.y = arg1->y; + var_r30->unk_CC.z = arg1->z; + Hu3DModelPosSet(lbl_1_bss_6EC->model[arg0], arg1->x, arg1->y, arg1->z); + if ((lbl_1_bss_6CC == 0) && (arg0 == 0) && (arg1->y <= 0.0f)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + omVibrate(0, 0xC, 6, 6); + } + HuAudFXPlay(0x62E); + lbl_1_bss_6CC = 1; + } + } +} + +void fn_1_6DFC(s32 arg0, float arg8) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (lbl_1_bss_6EC) { + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + var_r30->unk_D8 = arg8; + Hu3DModelRotSet(lbl_1_bss_6EC->model[arg0], 0.0f, arg8, 0.0f); + } +} + +s32 fn_1_6EC4(float var_f24, float sp8, s16 var_r22, s16 var_r24) +{ + float sp24; + float sp20; + float sp1C; + float sp18; + float sp14; + float sp10; + void *spC; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + + M425DllUnkStruct4 *var_r31; + s32 var_r30; + Vec *var_r29; + Vec2f *var_r28; + s32 var_r27; + Vec *var_r26; + s16 *var_r25; + ModelData *var_r23; + s32 var_r21; + s16 *var_r20; + s32 var_r19; + s16 var_r18; + void *var_r17; + + var_r19 = Hu3DHookFuncCreate(fn_1_101C4); + var_r23 = &Hu3DData[var_r19]; + Hu3DModelLayerSet(var_r19, 5); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M425DllUnkStruct4), var_r23->unk_48); + var_r23->unk_120 = var_r31; + memset(var_r31, 0, sizeof(M425DllUnkStruct4)); + var_r31->unk_00 = lbl_1_bss_6E8; + lbl_1_bss_6E8++; + var_r31->unk_02 = 0; + var_r31->unk_04 = Hu3DModelCreateFile(0x38000D); + Hu3DModelLayerSet(var_r31->unk_04, 6); + var_r31->unk_06 = 0; + var_r31->unk_08 = 1000.0f; + var_r31->unk_0C = 1000.0f; + var_r31->unk_10 = 1000.0f; + var_r31->unk_14 = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = sp8; + var_r31->unk_FC = var_f24; + var_r31->unk_100 = sp8; + var_r31->unk_28 = 0; + var_r31->unk_2C = 0; + var_r31->unk_30 = 0.0f; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + var_r31->unk_3C[var_r30] = -1; + var_r31->unk_54[var_r30] = 0.0f; + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + } + var_r31->unk_CC.x = var_r31->unk_CC.y = var_r31->unk_CC.z = 0.0f; + var_r31->unk_D8 = 0.0f; + var_r31->unk_DC = 1.0f; + var_r31->unk_F0[0] = -1; + var_r31->unk_F0[1] = -1; + var_r31->unk_F0[2] = -1; + lbl_1_bss_6EC->model[var_r31->unk_00 + 2] = var_r31->unk_04; + if (var_r31->unk_00 == 0) { + var_r31->unk_E0 = var_f22 = 302.0f; + var_r31->unk_E4 = var_f27 = 193.0f; + } + else { + var_r31->unk_E0 = var_f22 = 302.0f; + var_r31->unk_E4 = var_f27 = 150.0f; + } + var_r31->unk_E8 = var_r31->unk_EC = 0.0f; + var_f30 = sind(var_f27) * cosd(var_f22); + var_f26 = cosd(var_f27) * cosd(var_f22); + var_f28 = sind(var_f22); + sp24 = sqrtf((var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28))); + if (sp24 != 0.0f) { + sp24 = 1.0f / sp24; + } + else { + sp24 = 0.0f; + } + var_f30 *= sp24; + var_f28 *= sp24; + var_f26 *= sp24; + var_r30 = Hu3DLLightCreate(var_r19, 1000.0f * var_f30, 1000.0f * var_f28, 1000.0f * var_f26, var_f30, var_f28, var_f26, 0xFF, 0xFF, 0xFF); + Hu3DLLightInfinitytSet(var_r19, var_r30); + Hu3DLLightStaticSet(var_r19, var_r30, 1); + var_r22++; + var_r24++; + sp14 = var_f24 - 50.0f; + sp10 = sp8 - 50.0f; + var_r31->unk_112[0] = var_r24 * var_r24; + var_r31->unk_144[0] = 0; + var_r31->unk_112[1] = var_r22 * var_r24; + var_r31->unk_144[1] = var_r31->unk_144[0] + var_r31->unk_112[0]; + if (var_r31->unk_00 != 0) { + var_r31->unk_112[2] = 0; + } + else { + var_r31->unk_112[2] = var_r22 * var_r24; + } + var_r31->unk_144[2] = var_r31->unk_144[1] + var_r31->unk_112[1]; + if (var_r31->unk_00 == 0) { + var_r31->unk_112[3] = 0; + } + else { + var_r31->unk_112[3] = var_r22 * var_r24; + } + var_r31->unk_144[3] = var_r31->unk_144[2] + var_r31->unk_112[2]; + var_r31->unk_112[4] = var_r24 * 5; + var_r31->unk_144[4] = var_r31->unk_144[3] + var_r31->unk_112[3]; + var_r31->unk_112[5] = var_r24 * 5; + var_r31->unk_144[5] = var_r31->unk_144[4] + var_r31->unk_112[4]; + var_r31->unk_112[6] = var_r22 * 5; + var_r31->unk_144[6] = var_r31->unk_144[5] + var_r31->unk_112[5]; + var_r31->unk_112[7] = var_r22 * 5; + var_r31->unk_144[7] = var_r31->unk_144[6] + var_r31->unk_112[6]; + var_r31->unk_112[8] = var_r24 * 5; + var_r31->unk_144[8] = var_r31->unk_144[7] + var_r31->unk_112[7]; + var_r31->unk_112[9] = var_r24 * 5; + var_r31->unk_144[9] = var_r31->unk_144[8] + var_r31->unk_112[8]; + var_r31->unk_112[10] = var_r24 * 5; + var_r31->unk_144[10] = var_r31->unk_144[9] + var_r31->unk_112[9]; + var_r31->unk_112[11] = var_r24 * 5; + var_r31->unk_144[11] = var_r31->unk_144[10] + var_r31->unk_112[10]; + var_r31->unk_112[12] = var_r24 * 5; + var_r31->unk_144[12] = var_r31->unk_144[11] + var_r31->unk_112[11]; + var_r31->unk_112[13] = var_r24 * 5; + var_r31->unk_144[13] = var_r31->unk_144[12] + var_r31->unk_112[12]; + if (var_r31->unk_00 == 0) { + var_r31->unk_112[14] = 0; + } + else { + var_r31->unk_112[14] = var_r22 * 5; + } + var_r31->unk_144[14] = var_r31->unk_144[13] + var_r31->unk_112[13]; + if (var_r31->unk_00 != 0) { + var_r31->unk_112[15] = 0; + } + else { + var_r31->unk_112[15] = var_r22 * 5; + } + var_r31->unk_144[15] = var_r31->unk_144[14] + var_r31->unk_112[14]; + var_r31->unk_112[16] = 0x19; + var_r31->unk_144[16] = var_r31->unk_144[15] + var_r31->unk_112[15]; + var_r31->unk_112[17] = 0x19; + var_r31->unk_144[17] = var_r31->unk_144[16] + var_r31->unk_112[16]; + var_r31->unk_112[18] = 0x19; + var_r31->unk_144[18] = var_r31->unk_144[17] + var_r31->unk_112[17]; + var_r31->unk_112[19] = 0x19; + var_r31->unk_144[19] = var_r31->unk_144[18] + var_r31->unk_112[18]; + var_r31->unk_112[20] = 0x19; + var_r31->unk_144[20] = var_r31->unk_144[19] + var_r31->unk_112[19]; + var_r31->unk_112[21] = 0x19; + var_r31->unk_144[21] = var_r31->unk_144[20] + var_r31->unk_112[20]; + var_r31->unk_112[22] = 0x19; + var_r31->unk_144[22] = var_r31->unk_144[21] + var_r31->unk_112[21]; + var_r31->unk_112[23] = 0x19; + var_r31->unk_144[23] = var_r31->unk_144[22] + var_r31->unk_112[22]; + var_r31->unk_112[24] = var_r24 * var_r24; + var_r31->unk_144[24] = var_r31->unk_144[23] + var_r31->unk_112[23]; + if (var_r31->unk_00 == 0) { + var_r31->unk_06 = var_r31->unk_144[17] + (var_r31->unk_112[17] / 2) + 1; + } + else { + var_r31->unk_06 = var_r31->unk_144[16] + (var_r31->unk_112[16] / 2) - 1; + } + var_r31->unk_10C = var_r22; + var_r31->unk_10E = var_r24; + var_r31->unk_110 = var_r31->unk_144[24] + var_r31->unk_112[24]; + var_r31->unk_240 = 0x19; + var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 2, var_r23->unk_48); + memset(var_r31->unk_178, 0, var_r31->unk_110 * 2); + var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_17C, 0, var_r31->unk_110 * 0xC); + var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_180, 0, var_r31->unk_110 * 0xC); + var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 8, var_r23->unk_48); + memset(var_r31->unk_184, 0, var_r31->unk_110 * 8); + var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_188, 0, var_r31->unk_110 * 0xC); + var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_18C, 0, var_r31->unk_110 * 0xC); + var_r31->unk_190 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 6, var_r23->unk_48); + memset(var_r31->unk_190, 0, var_r31->unk_110 * 6); + var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_194, 0, var_r31->unk_110 * 0xC); + var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * 0xC, var_r23->unk_48); + memset(var_r31->unk_198, 0, var_r31->unk_112[0] * 0xC); + var_r31->unk_1A0 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110, var_r23->unk_48); + memset(var_r31->unk_1A0, 0, var_r31->unk_110); + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (((var_r31->unk_112[0] > 0) && (var_r30 >= var_r31->unk_144[0]) && (var_r30 < (var_r31->unk_144[0] + var_r31->unk_112[0]))) + || ((var_r31->unk_112[4] > 0) && (var_r30 >= var_r31->unk_144[4]) && (var_r30 < (var_r31->unk_144[4] + var_r31->unk_112[4]))) + || ((var_r31->unk_112[8] > 0) && (var_r30 >= var_r31->unk_144[8]) && (var_r30 < (var_r31->unk_144[8] + var_r31->unk_112[8]))) + || ((var_r31->unk_112[10] > 0) && (var_r30 >= var_r31->unk_144[10]) && (var_r30 < (var_r31->unk_144[10] + var_r31->unk_112[10]))) + || ((var_r31->unk_112[12] > 0) && (var_r30 >= var_r31->unk_144[12]) && (var_r30 < (var_r31->unk_144[12] + var_r31->unk_112[12]))) + || ((var_r31->unk_112[16] > 0) && (var_r30 >= var_r31->unk_144[16]) && (var_r30 < (var_r31->unk_144[16] + var_r31->unk_112[16]))) + || ((var_r31->unk_112[17] > 0) && (var_r30 >= var_r31->unk_144[17]) && (var_r30 < (var_r31->unk_144[17] + var_r31->unk_112[17]))) + || ((var_r31->unk_112[20] > 0) && (var_r30 >= var_r31->unk_144[20]) && (var_r30 < (var_r31->unk_144[20] + var_r31->unk_112[20]))) + || ((var_r31->unk_112[21] > 0) && (var_r30 >= var_r31->unk_144[21]) && (var_r30 < (var_r31->unk_144[21] + var_r31->unk_112[21])))) { + var_r31->unk_1A0[var_r30] = 1; + } + else { + var_r31->unk_1A0[var_r30] = 0; + } + } + var_r31->unk_23A.r = 0; + var_r31->unk_23A.g = 0; + var_r31->unk_23A.b = 0xFF; + var_r31->unk_23A.a = 0x40; + var_r29 = &var_r31->unk_17C[var_r31->unk_144[0]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[0]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[0]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[0]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp14 / (var_r24 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[0] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f26 = var_f26 + var_f23; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0, var_r24 - 1, var_r24 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[1]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[1]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[1]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[1]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = 0.5f * var_f24; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[1] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 1, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[2]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[2]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[2]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[2]]; + var_f25 = var_f30 = -(0.5f * var_f24); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[2] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 2, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[3]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[3]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[3]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[3]]; + var_f25 = var_f30 = 0.5f * var_f24; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[3] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 3, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[4]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[4]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[4]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[4]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[4] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * (cosd(var_f27) - 1.0)); + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 4, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[5]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[5]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[5]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[5]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[5] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * cosd(var_f27)); + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 5, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[6]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[6]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[6]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[6]]; + var_f25 = var_f30 = -(0.5f * var_f24); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[6] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_r29->x = var_f25 - (25.0 * (cosd(var_f27) - 1.0)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 6, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[7]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[7]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[7]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[7]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = 0.5f * var_f24; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[7] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * (sind(var_f27) - 1.0)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 7, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[8]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[8]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[8]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[8]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[8] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + 25.0 * cosd(var_f27); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 8, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[9]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[9]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[9]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[9]]; + var_f25 = var_f30 = -(0.5f * var_f24 - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[9] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 9, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[10]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[10]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[10]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[10]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[10] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xA, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[11]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[11]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[11]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[11]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[11] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xB, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[12]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[12]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[12]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[12]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[12] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = sp1C + (25.0 * cosd(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xC, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[13]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[13]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[13]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[13]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[13] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = sp1C + (25.0 * cosd(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xD, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[14]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[14]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[14]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[14]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[14] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = -(90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xE, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[15]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[15]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[15]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[15]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[15] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = -90.0f - (90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xF, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[16]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[16]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[16]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[16]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[16] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x10, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[17]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[17]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[17]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[17]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[17] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r27 / 4.0f)); + var_f22 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * -sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * -sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x11, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[18]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[18]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[18]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[18]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[18] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x12, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[19]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[19]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[19]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[19]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[19] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 - (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x13, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[20]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[20]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[20]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[20]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[20] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x14, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[21]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[21]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[21]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[21]]; + var_f25 = var_f30 = -(0.5f * var_f24 - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[21] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 270.0f - (90.0f * (var_r27 / 4.0f)); + var_f22 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (cosd(var_f27) * 25.0 * -sind(var_f22)); + var_r29->y = sp20 + 25.0 * cosd(var_f22); + var_r29->z = sp1C + (25.0 * sind(var_f27) * -sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x15, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[22]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[22]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[22]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[22]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[22] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x16, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[23]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[23]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[23]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[23]]; + var_f25 = var_f30 = -((var_f24 * 0.5f) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((var_f24 * 0.5f) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[23] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 - (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x17, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[24]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[24]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[24]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[24]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 0.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp14 / (var_r24 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[0x18] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f26 = var_f26 - var_f23; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x18, var_r24 - 1, var_r24 - 1); + } + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + for (var_r27 = 0; var_r27 < var_r30; var_r27++) { + var_f30 = var_r31->unk_17C[var_r30].x - var_r31->unk_17C[var_r27].x; + var_f28 = var_r31->unk_17C[var_r30].y - var_r31->unk_17C[var_r27].y; + var_f26 = var_r31->unk_17C[var_r30].z - var_r31->unk_17C[var_r27].z; + sp24 = (var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28)); + if (sp24 < 10.0f) { + var_r31->unk_178[var_r30] = var_r27; + if (var_r31->unk_178[var_r27] != -1) { + var_r31->unk_178[var_r30] = var_r31->unk_178[var_r27]; + } + break; + } + } + if (var_r27 >= var_r30) { + var_r31->unk_178[var_r30] = -1; + } + } + memcpy(var_r31->unk_180, var_r31->unk_17C, var_r31->unk_110 * 0xC); + memcpy(var_r31->unk_198, &var_r31->unk_180[var_r31->unk_144[0]], var_r31->unk_112[0] * 0xC); + var_r31->unk_19C = 0; + fn_1_DB44(var_r31, var_r23); + fn_1_DE3C(var_r31, var_r23); + var_f31 = sqrtf((0.5f * sp8 * (0.5f * sp8)) + ((0.5f * var_f24 * (0.5f * var_f24)) + (0.5f * var_f24 * (0.5f * var_f24)))); + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + var_f30 = var_r31->unk_17C[var_r30].x; + var_f28 = var_r31->unk_17C[var_r30].y - (0.5f * sp8); + var_f26 = var_r31->unk_17C[var_r30].z; + sp24 = sqrtf((var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28))); + var_f27 = sp24; + sp24 = 1.0f - (sp24 / var_f31); + if (var_f27 != 0.0f) { + var_f22 = 1.0f / var_f27; + } + else { + var_f22 = 0.0; + } + var_r31->unk_194[var_r30].x = sp24 * (var_f22 * var_r31->unk_17C[var_r30].x); + var_r31->unk_194[var_r30].y = sp24 * (var_f22 * var_r31->unk_17C[var_r30].y); + var_r31->unk_194[var_r30].z = sp24 * (var_f22 * var_r31->unk_17C[var_r30].z); + } + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if ((((var_r31->unk_112[6] <= 0) || (var_r30 < var_r31->unk_144[6]) || (var_r30 >= (var_r31->unk_144[6] + var_r31->unk_112[6]))) + && ((var_r31->unk_112[7] <= 0) || (var_r30 < var_r31->unk_144[7]) || (var_r30 >= (var_r31->unk_144[7] + var_r31->unk_112[7]))) + && ((var_r31->unk_112[0xE] <= 0) || (var_r30 < var_r31->unk_144[0xE]) || (var_r30 >= (var_r31->unk_144[0xE] + var_r31->unk_112[0xE]))) + && ((var_r31->unk_112[0xF] <= 0) || (var_r30 < var_r31->unk_144[0xF]) || (var_r30 >= (var_r31->unk_144[0xF] + var_r31->unk_112[0xF]))) + && ((var_r31->unk_112[4] <= 0) || (var_r30 < var_r31->unk_144[4]) || (var_r30 >= (var_r31->unk_144[4] + var_r31->unk_112[4]))) + && ((var_r31->unk_112[8] <= 0) || (var_r30 < var_r31->unk_144[8]) || (var_r30 >= (var_r31->unk_144[8] + var_r31->unk_112[8]))) + && ((var_r31->unk_112[0xA] <= 0) || (var_r30 < var_r31->unk_144[0xA]) || (var_r30 >= (var_r31->unk_144[0xA] + var_r31->unk_112[0xA]))) + && ((var_r31->unk_112[0xC] <= 0) || (var_r30 < var_r31->unk_144[0xC]) || (var_r30 >= (var_r31->unk_144[0xC] + var_r31->unk_112[0xC]))) + && ((var_r31->unk_112[0x10] <= 0) || (var_r30 < var_r31->unk_144[0x10]) + || (var_r30 >= (var_r31->unk_144[0x10] + var_r31->unk_112[0x10]))) + && ((var_r31->unk_112[0x11] <= 0) || (var_r30 < var_r31->unk_144[0x11]) + || (var_r30 >= (var_r31->unk_144[0x11] + var_r31->unk_112[0x11]))) + && ((var_r31->unk_112[0x14] <= 0) || (var_r30 < var_r31->unk_144[0x14]) + || (var_r30 >= (var_r31->unk_144[0x14] + var_r31->unk_112[0x14]))) + && ((var_r31->unk_112[0x15] <= 0) || (var_r30 < var_r31->unk_144[0x15]) + || (var_r30 >= (var_r31->unk_144[0x15] + var_r31->unk_112[0x15]))) + && (var_r30 >= var_r31->unk_144[4])) + || (var_r31->unk_178[var_r30] != -1)) { + var_r31->unk_18C[var_r30].x = var_r31->unk_18C[var_r30].y = var_r31->unk_18C[var_r30].z = 0.0; + var_r31->unk_190[var_r30][0] = var_r31->unk_190[var_r30][1] = 0; + var_r31->unk_190[var_r30][2] = 0; + } + else if (((var_r31->unk_112[0] > 0) && (var_r30 >= var_r31->unk_144[0]) && (var_r30 < (var_r31->unk_144[0] + var_r31->unk_112[0]))) + || ((var_r31->unk_112[4] > 0) && (var_r30 >= var_r31->unk_144[4]) && (var_r30 < (var_r31->unk_144[4] + var_r31->unk_112[4]))) + || ((var_r31->unk_112[8] > 0) && (var_r30 >= var_r31->unk_144[8]) && (var_r30 < (var_r31->unk_144[8] + var_r31->unk_112[8]))) + || ((var_r31->unk_112[0xA] > 0) && (var_r30 >= var_r31->unk_144[0xA]) && (var_r30 < (var_r31->unk_144[0xA] + var_r31->unk_112[0xA]))) + || ((var_r31->unk_112[0xC] > 0) && (var_r30 >= var_r31->unk_144[0xC]) && (var_r30 < (var_r31->unk_144[0xC] + var_r31->unk_112[0xC]))) + || ((var_r31->unk_112[0x10] > 0) && (var_r30 >= var_r31->unk_144[0x10]) && (var_r30 < (var_r31->unk_144[0x10] + var_r31->unk_112[0x10]))) + || ((var_r31->unk_112[0x11] > 0) && (var_r30 >= var_r31->unk_144[0x11]) && (var_r30 < (var_r31->unk_144[0x11] + var_r31->unk_112[0x11]))) + || ((var_r31->unk_112[0x14] > 0) && (var_r30 >= var_r31->unk_144[0x14]) && (var_r30 < (var_r31->unk_144[0x14] + var_r31->unk_112[0x14]))) + || ((var_r31->unk_112[0x15] > 0) && (var_r30 >= var_r31->unk_144[0x15]) + && (var_r30 < (var_r31->unk_144[0x15] + var_r31->unk_112[0x15])))) { + *var_r31->unk_190[var_r30] = var_r31->unk_190[var_r30][1] = 0; + sp24 = sqrtf((var_r31->unk_17C[var_r30].x * var_r31->unk_17C[var_r30].x) + (var_r31->unk_17C[var_r30].z * var_r31->unk_17C[var_r30].z)); + var_f27 = sp24; + sp24 = 1.0f - (sp24 / sqrtf(var_f24 * var_f24)); + var_r31->unk_18C[var_r30].y = -(180.0f * sp24); + var_f27 = sqrtf(var_f27); + if (var_f27 != 0.0f) { + var_f22 = 1.0f / var_f27; + } + else { + var_f22 = 0.0; + } + var_r31->unk_18C[var_r30].x = sind((180.0f * (var_f22 * var_r31->unk_17C[var_r30].x))); + var_r31->unk_18C[var_r30].z = sind((180.0f * (var_f22 * var_r31->unk_17C[var_r30].z))); + var_r31->unk_18C[var_r30].x *= 20.0f * -(1.0f - sp24); + var_r31->unk_18C[var_r30].z *= (20.0f * -(1.0f - sp24)); + var_r31->unk_190[var_r30][2] = 1; + } + else { + sp24 = sqrtf((var_r31->unk_17C[var_r30].x * var_r31->unk_17C[var_r30].x) + (var_r31->unk_17C[var_r30].z * var_r31->unk_17C[var_r30].z)); + if (sp24 != 0.0f) { + sp24 = 1.0f / sp24; + } + else { + sp24 = 0.0f; + } + var_r31->unk_18C[var_r30].x = -(sp24 * var_r31->unk_17C[var_r30].x); + var_r31->unk_18C[var_r30].z = -(sp24 * var_r31->unk_17C[var_r30].z); + var_r31->unk_18C[var_r30].y = 0.0; + var_f27 = 180.0 + atan2d(var_r31->unk_17C[var_r30].x, var_r31->unk_17C[var_r30].z); + if (var_f27 > 360.0f) { + var_f27 = fmod(var_f27, 360.0); + } + else if (var_f27 < 0.0f) { + var_f27 += 360.0f; + } + var_f27 = 255.0f * (0.0027777778f * var_f27); + if (var_f27 >= 255.0f) { + var_f27 = 255.0f; + } + else if (var_f27 < 0.0f) { + var_f27 = 0.0; + } + var_f22 = 64.0f * (var_r31->unk_17C[var_r30].y / sp8); + if (var_f22 >= 63.0f) { + var_f22 = 63.0f; + } + else if (var_f22 < 0.0f) { + var_f22 = 0.0; + } + var_r31->unk_190[var_r30][0] = var_f27; + var_r31->unk_190[var_r30][1] = var_f22; + var_r31->unk_190[var_r30][2] = 2; + } + } + DCFlushRangeNoSync(var_r31->unk_180, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_17C, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_188, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_184, var_r31->unk_110 * 8); + DCFlushRangeNoSync(var_r31->unk_178, var_r31->unk_110 * 2); + PPCSync(); + for (var_r21 = 0; var_r21 < 0x19; var_r21++) { + if ((var_r31->unk_208[var_r21] != 0) && var_r31->unk_1A4[var_r21] && (var_r31->unk_112[var_r21] != 0)) { + var_r17 = HuMemDirectMallocNum(HEAP_DATA, 0x4000, var_r23->unk_48); + spC = var_r17; + (void)var_r18; + DCFlushRange(var_r17, 0x4000); + GXBeginDisplayList(spC, 0x4000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r31->unk_208[var_r21] * 4); + var_r20 = var_r31->unk_1A4[var_r21]; + for (var_r30 = 0; var_r30 < var_r31->unk_208[var_r21]; var_r30++) { + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if (var_r31->unk_178[var_r20[var_r27]] == -1) { + var_r18 = var_r20[var_r27]; + } + else { + var_r18 = var_r31->unk_178[var_r20[var_r27]]; + } + GXPosition1x16(var_r18); + GXNormal1x16(var_r18); + GXColor1x16(0); + GXTexCoord1x16(var_r20[var_r27]); + } + var_r20 += 5; + } + var_r31->unk_244[var_r21] = GXEndDisplayList(); + if (var_r31->unk_244[var_r21] >= 0x4000) { + OSReport("ERROR! GList test size over! \n"); + } + var_r31->unk_2A8[var_r21] = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_244[var_r21], var_r23->unk_48); + memcpy(var_r31->unk_2A8[var_r21], var_r17, var_r31->unk_244[var_r21]); + DCFlushRange(var_r31->unk_2A8[var_r21], var_r31->unk_244[var_r21]); + HuMemDirectFree(var_r17); + } + } + return var_r19; +} + +void fn_1_D9A8(M425DllUnkStruct4 *var_r31, ModelData *var_r24, s32 var_r30, s32 var_r26, s32 var_r25) +{ + s16 *var_r29; + s32 var_r28; + s32 var_r27; + + var_r31->unk_208[var_r30] = var_r26 * var_r25; + var_r31->unk_1A4[var_r30] = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_208[var_r30] * 0xA, var_r24->unk_48); + memset(var_r31->unk_1A4[var_r30], 0, var_r31->unk_208[var_r30] * 0xA); + var_r29 = var_r31->unk_1A4[var_r30]; + for (var_r28 = 0; var_r28 < var_r25; var_r28++) { + for (var_r27 = 0; var_r27 < var_r26; var_r27++) { + var_r29[0] = var_r31->unk_144[var_r30] + (var_r26 + 1) * var_r28 + var_r27; + var_r29[1] = var_r31->unk_144[var_r30] + (var_r26 + 1) * var_r28 + (var_r27 + 1); + var_r29[2] = var_r31->unk_144[var_r30] + (var_r26 + 1) * (var_r28 + 1) + (var_r27 + 1); + var_r29[3] = var_r31->unk_144[var_r30] + (var_r26 + 1) * (var_r28 + 1) + var_r27; + var_r29 += 5; + } + } + DCFlushRangeNoSync(var_r31->unk_1A4[var_r30], var_r31->unk_208[var_r30] * 0xA); + PPCSync(); +} + +void fn_1_DB44(M425DllUnkStruct4 *arg0, ModelData *model) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s16 *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r30 = 0; var_r30 < 0x19; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r31 = arg0->unk_1A4[var_r30], var_r29 = 0; var_r29 < arg0->unk_208[var_r30]; var_r29++, var_r31 += 0x5) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (arg0->unk_178[var_r31[var_r28]] != -1) { + var_r31[var_r28] = arg0->unk_178[var_r31[var_r28]]; + } + } + } + } + } + for (var_r30 = 0; var_r30 < 0x19; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r31 = arg0->unk_1A4[var_r30], var_r29 = 0; var_r29 < arg0->unk_208[var_r30]; var_r29++, var_r31 += 0x5) { + var_f31 = arg0->unk_17C[var_r31[0]].x - arg0->unk_17C[var_r31[1]].x; + var_f30 = arg0->unk_17C[var_r31[0]].y - arg0->unk_17C[var_r31[1]].y; + var_f29 = arg0->unk_17C[var_r31[0]].z - arg0->unk_17C[var_r31[1]].z; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < 10.0f) { + var_r31[4] = 1; + } + else { + var_f31 = arg0->unk_17C[var_r31[0]].x - arg0->unk_17C[var_r31[2]].x; + var_f30 = arg0->unk_17C[var_r31[0]].y - arg0->unk_17C[var_r31[2]].y; + var_f29 = arg0->unk_17C[var_r31[0]].z - arg0->unk_17C[var_r31[2]].z; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < 10.0f) { + var_r31[4] = 2; + } + else { + var_r31[4] = 0; + } + } + } + } + } +} + +void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) +{ + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r30; + s32 var_r29; + s16 *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + memset(arg0->unk_188, 0, arg0->unk_110 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < arg0->unk_240; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r28 = arg0->unk_1A4[var_r30], var_r24 = 0; var_r24 < arg0->unk_208[var_r30]; var_r24++, var_r28 += 5) { + switch (var_r28[4]) { + case 1: + var_r27 = 0; + var_r29 = 2; + var_r26 = 3; + var_r25 = 1; + break; + case 2: + var_r27 = 0; + var_r29 = 1; + var_r26 = 3; + var_r25 = 2; + break; + default: + var_r27 = 0; + var_r29 = 1; + var_r26 = 2; + var_r25 = 3; + break; + } + var_r27 = var_r28[var_r27]; + var_r29 = var_r28[var_r29]; + var_r26 = var_r28[var_r26]; + var_r25 = var_r28[var_r25]; + sp14.x = arg0->unk_180[var_r29].x - arg0->unk_180[var_r27].x; + sp14.y = arg0->unk_180[var_r29].y - arg0->unk_180[var_r27].y; + sp14.z = arg0->unk_180[var_r29].z - arg0->unk_180[var_r27].z; + sp8.x = arg0->unk_180[var_r26].x - arg0->unk_180[var_r29].x; + sp8.y = arg0->unk_180[var_r26].y - arg0->unk_180[var_r29].y; + sp8.z = arg0->unk_180[var_r26].z - arg0->unk_180[var_r29].z; + VECCrossProduct(&sp14, &sp8, &sp20); + sp20.x *= -1.0f; + sp20.y *= -1.0f; + sp20.z *= -1.0f; + arg0->unk_188[var_r27].x += sp20.x; + arg0->unk_188[var_r27].y += sp20.y; + arg0->unk_188[var_r27].z += sp20.z; + arg0->unk_188[var_r29].x += sp20.x; + arg0->unk_188[var_r29].y += sp20.y; + arg0->unk_188[var_r29].z += sp20.z; + arg0->unk_188[var_r26].x += sp20.x; + arg0->unk_188[var_r26].y += sp20.y; + arg0->unk_188[var_r26].z += sp20.z; + arg0->unk_188[var_r25].x += sp20.x; + arg0->unk_188[var_r25].y += sp20.y; + arg0->unk_188[var_r25].z += sp20.z; + } + } + } + for (var_r30 = 0; var_r30 < arg0->unk_110; var_r30++) { + VECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); + } +} + +s32 lbl_1_data_150[3][2] = { { 0x638, 0x63B }, { 0x639, 0x63C }, { 0x63A, 0x63D } }; +GXColor lbl_1_data_168 = { 255, 255, 255, 255 }; +Mtx lbl_1_data_16C = { + { 0.5f, 0.0f, 0.0f, -0.5f }, + { 0.0f, 0.5f, 0.0f, -0.5f }, + { 0.0f, 0.0f, 0.5f, -0.5f }, +}; +Vec lbl_1_data_19C[4] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f }, +}; +Vec2f lbl_1_data_1CC[4] = { + { 0.0f, 0.0f }, + { 0.25f, 0.0f }, + { 0.25f, 0.25f }, + { 0.0f, 0.25f }, +}; + +void fn_1_E210(s32 arg0) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s32 var_r29; + LightData *var_r28; + ModelData *var_r27; + s32 var_r26; + + if (lbl_1_bss_6EC) { + var_r27 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r27->unk_120; + for (var_r30 = 0, var_f31 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_84[var_r30] == -1) || (var_r31->unk_9C[var_r30] < 0.0f)) { + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + } + else { + var_f31 += var_r31->unk_9C[var_r30]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if (var_r31->unk_3C[var_r29] == var_r31->unk_84[var_r30]) { + break; + } + } + if (var_r29 >= 5) { + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if ((var_r31->unk_3C[var_r29] == -1) && (var_r31->unk_54[var_r29] <= 0.0f)) { + break; + } + } + } + if ((var_r29 < 5) && (var_r31->unk_54[var_r29] < var_r31->unk_9C[var_r30])) { + var_r31->unk_3C[var_r29] = var_r31->unk_84[var_r30]; + var_r31->unk_54[var_r29] = var_r31->unk_9C[var_r30]; + var_r31->unk_6C[var_r29] = var_r31->unk_B4[var_r30]; + } + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + var_r31->unk_B4[var_r30] = 0; + } + } + for (var_r30 = 0, var_r29 = 0, var_r31->unk_14 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_3C[var_r30] != -1) && (var_r31->unk_54[var_r30] > 0.0f)) { + var_r31->unk_14 += 0.8f * var_r31->unk_54[var_r30]; + var_r29++; + } + } + + for (var_r30 = 0, var_r29 = 0, var_r31->unk_20 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_3C[var_r30] != -1) && (var_r31->unk_54[var_r30] > 0.0f) && (var_r31->unk_6C[var_r30] != 0)) { + var_r31->unk_20 += 0.8f * var_r31->unk_54[var_r30]; + var_r29++; + } + } + if (var_r29 != 0) { + var_r31->unk_18 = 20.0f * (var_r31->unk_20 * var_r31->unk_20); + var_r31->unk_08 -= var_r31->unk_18; + if (var_r31->unk_08 < 0.0f) { + var_r31->unk_08 = 0.0f; + } + if ((var_r31->unk_18 > var_r31->unk_1C) && (var_r31->unk_18 >= 0.0f)) { + if (var_r31->unk_18 >= 13.200000000000001) { + var_r26 = HuAudFXPlay(lbl_1_data_150[2][arg0]); + } + else if (var_r31->unk_18 >= 6.6000000000000005) { + var_r26 = HuAudFXPlay(lbl_1_data_150[1][arg0]); + } + else { + var_r26 = HuAudFXPlay(lbl_1_data_150[0][arg0]); + } + var_f30 = var_r31->unk_08 / 1000.0f; + if (var_r26 != -1) { + HuAudFXPitchSet(var_r26, (s32)(8191.0f * (1.0f - var_f30))); + } + } + } + else { + var_r31->unk_18 = 0.0f; + } + var_r31->unk_1C = var_r31->unk_18; + if (var_r31->unk_2C != 0) { + if (++var_r31->unk_28 >= var_r31->unk_2C) { + var_r31->unk_2C = var_r31->unk_28 = 0; + var_r31->unk_30 = 0.0f; + } + } + if ((var_r31->unk_E0 != var_r31->unk_E8) || (var_r31->unk_E4 != var_r31->unk_EC)) { + sp8.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0); + sp8.z = cosd(var_r31->unk_E4) * cosd(var_r31->unk_E0); + sp8.y = sind(var_r31->unk_E0); + VECNormalize(&sp8, &sp8); + var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]]; + var_r28->unk_1C.x = 1000.0f * sp8.x; + var_r28->unk_1C.y = 1000.0f * sp8.y; + var_r28->unk_1C.z = 1000.0f * sp8.z; + var_r28->unk_28.x = sp8.x; + var_r28->unk_28.y = sp8.y; + var_r28->unk_28.z = sp8.z; + var_r31->unk_E8 = var_r31->unk_E0; + var_r31->unk_EC = var_r31->unk_E4; + } + var_r31->unk_20 = 0.0f; + } +} + +void fn_1_E914(ModelData *var_r27, Mtx matrix) +{ + s32 spB4; + s32 spB0; + Mtx sp70; + Vec sp64; + Vec sp58; + float sp48; + float sp44; + float sp40; + float sp3C; + float sp38; + float sp34; + float sp30; + float sp2C; + float sp28; + + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f19; + float var_f18; + + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s32 var_r26; + + var_r31 = var_r27->unk_120; + if (var_r31->unk_2C != 0) { + var_f24 = (float)var_r31->unk_28 / var_r31->unk_2C; + var_r31->unk_30 = 0.30000001192092896 * cosd((90.0f * var_f24)); + sp40 = var_r31->unk_30 * (0.5 * sind((720.0f * var_f24))); + } + else { + sp40 = 0.0f; + } + if (var_r31->unk_0C != 0.0f) { + var_f19 = var_r31->unk_08 / var_r31->unk_0C; + } + else { + var_f19 = 1.0f; + } + var_r27->scale.y = var_r31->unk_DC = (0.100000024f + (0.9f * var_f19)) - sp40; + if (var_r31->unk_DC > 0.3f) { + sp3C = 1.0f - (-0.39999998f * ((var_r31->unk_DC - 0.3f) / 0.7f)); + } + else { + sp3C = 0.6f * (var_r31->unk_DC / 0.3f); + } + if (var_r31->unk_DC != 0.0f) { + sp3C /= var_r31->unk_DC; + } + else { + sp3C = 0.0f; + } + if (var_r31->unk_08 < 0.0f) { + sp3C = 0.0f; + } + if (var_f19 <= 0.3f) { + var_f24 = var_f19 / 0.3f; + var_r31->unk_E0 = 222.0f + (80.0f * var_f24); + } + var_f18 = 100.0f * var_r31->unk_14; + if (var_f19 > 0.85f) { + var_f18 += 100.0f * (4.0f * (var_f19 - 0.85f)); + } + if (var_f18 > 150.0f) { + var_f18 = 150.0f; + } + sp38 = 1.0f - var_f19; + if (var_f18 >= 0.0f) { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (var_r31->unk_178[var_r30] == -1) { + var_r31->unk_180[var_r30].x = var_r31->unk_17C[var_r30].x + (var_f18 * var_r31->unk_194[var_r30].x); + var_r31->unk_180[var_r30].y = var_r31->unk_17C[var_r30].y + (var_f18 * var_r31->unk_194[var_r30].y); + var_r31->unk_180[var_r30].z = var_r31->unk_17C[var_r30].z + (var_f18 * var_r31->unk_194[var_r30].z); + } + } + } + else { + memcpy(var_r31->unk_180, var_r31->unk_17C, var_r31->unk_110 * 0xC); + } + var_r31->unk_14 = 0.0f; + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (!(var_f19 >= 1.0f) && (var_r31->unk_190[var_r30][2] != 0)) { + switch (var_r31->unk_190[var_r30][2]) { + case 1: + var_r31->unk_180[var_r30].x += sp38 * var_r31->unk_18C[var_r30].x; + var_r31->unk_180[var_r30].y += sp38 * var_r31->unk_18C[var_r30].y; + var_r31->unk_180[var_r30].z += sp38 * var_r31->unk_18C[var_r30].z; + break; + case 2: + var_f24 = lbl_1_bss_6E4[var_r31->unk_190[var_r30][0] + (var_r31->unk_190[var_r30][1] << 8)]; + var_f24 = 80.0f * (0.003921569f * (255.0f - var_f24) * sp38); + var_r31->unk_180[var_r30].x += var_f24 * var_r31->unk_18C[var_r30].x; + var_r31->unk_180[var_r30].y += var_f24 * var_r31->unk_18C[var_r30].y; + var_r31->unk_180[var_r30].z += var_f24 * var_r31->unk_18C[var_r30].z; + break; + } + } + } + for (var_r29 = 0, var_r28 = 0, var_f27 = var_f26 = var_f25 = 0.0f; var_r29 < 6; var_r29++) { + if ((var_r31->unk_54[var_r29] > 0.0f) || (var_r31->unk_3C[var_r29] != -1)) { + var_f27 += var_r31->unk_180[var_r31->unk_3C[var_r29]].x; + var_f25 += var_r31->unk_180[var_r31->unk_3C[var_r29]].z; + var_f26 += var_r31->unk_54[var_r29]; + var_r28++; + } + } + if (var_r28 >= 2) { + var_f27 /= var_r28; + var_f25 /= var_r28; + var_f26 /= var_r28; + mtxRot(sp70, 0.0f, var_r31->unk_D8, 0.0f); + var_f30 = var_r31->unk_CC.x + ((sp70[0][0] * var_f27) + (sp70[0][2] * var_f25)); + var_f31 = var_r31->unk_CC.z + ((sp70[2][0] * var_f27) + (sp70[2][2] * var_f25)); + fn_1_10EF8(var_r31->unk_00, 2, var_f30, var_f31); + var_r31->unk_50 = var_r31->unk_34; + var_r31->unk_54[5] = var_f26; + var_r31->unk_6C[5] = 0; + } + else { + var_r31->unk_50 = -1; + var_r31->unk_54[5] = 0.0f; + var_r31->unk_6C[5] = 0; + } + for (var_r29 = 0; var_r29 < 6; var_r29++) { + if ((var_r31->unk_54[var_r29] <= 0.0f) || (var_r31->unk_3C[var_r29] == -1)) { + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_6C[var_r29] = 0; + } + else { + var_f24 = 150.0f * var_r31->unk_54[var_r29] * sp3C; + sp44 = 50.0f * var_r31->unk_54[var_r29]; + if (sp44 > 15.000001f) { + sp44 = 15.000001f; + } + var_f27 = var_r31->unk_180[var_r31->unk_3C[var_r29]].x; + var_f26 = var_r31->unk_180[var_r31->unk_3C[var_r29]].y; + var_f25 = var_r31->unk_180[var_r31->unk_3C[var_r29]].z; + if (var_r29 != 5) { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (var_r31->unk_178[var_r30] == -1) { + var_f30 = var_r31->unk_180[var_r30].x - var_f27; + var_f29 = var_r31->unk_DC * (var_r31->unk_180[var_r30].y - var_f26); + var_f31 = 0.425f * (var_r31->unk_180[var_r30].z - var_f25); + var_f28 = (var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29)); + if (var_f28 < 10000.0f) { + var_f28 = sqrtf((var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29))); + var_f28 = var_f28 * 0.01f; + var_r31->unk_180[var_r30].y -= (1.0f - var_f28) * var_f24; + if (var_r31->unk_180[var_r30].y < 1.0f) { + var_r31->unk_180[var_r30].y = 1.0f; + } + } + if (var_r31->unk_1A0[var_r30] != 0) { + var_f31 = var_r31->unk_180[var_r30].z - var_f25; + if (!(fabs(var_f31) > 100.0)) { + var_f28 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); + if (var_f28 < 200.0f) { + var_f28 = var_f28 * 0.005f; + var_r31->unk_180[var_r30].y += (sp44 * sind((90.0f * var_f28))); // is this right? + } + else if (var_f28 < 400.0f) { + var_f28 -= 200.0f; + var_f28 = var_f28 * 0.005f; + var_r31->unk_180[var_r30].y += (sp44 * cosd((90.0f * var_f28))); + } + } + } + } + } + } + else { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if ((var_r31->unk_178[var_r30] == -1) && ((var_r31->unk_F0[0] != var_r30) || (var_r31->unk_F0[1] != var_r30))) { + var_f30 = var_r31->unk_180[var_r30].x - var_f27; + var_f29 = var_r31->unk_DC * (var_r31->unk_180[var_r30].y - var_f26); + var_f31 = 0.425f * (var_r31->unk_180[var_r30].z - var_f25); + var_f28 = (var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29)); + if (var_f28 < 10000.0f) { + var_f28 = sqrtf((var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29))); + var_f28 = var_f28 * 0.01f; + var_r31->unk_180[var_r30].y -= (1.0f - var_f28) * var_f24; + if (var_r31->unk_180[var_r30].y < 1.0f) { + var_r31->unk_180[var_r30].y = 1.0f; + } + } + } + } + } + if (var_r29 < 5) { + if ((var_r31->unk_54[var_r29] -= 0.075f) <= 0.0f) { + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_6C[var_r29] = 0; + } + } + else { + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_6C[var_r29] = 0; + } + } + } + var_r31->unk_38 = 0; + memcpy(var_r31->unk_198, &var_r31->unk_180[var_r31->unk_144[0]], var_r31->unk_112[0] * 0xC); + var_r31->unk_19C = 0; + fn_1_DE3C(var_r31, var_r27); + if ((var_r31->unk_04 != -1) && (var_r31->unk_06 != -1)) { + mtxRot(sp70, 0.0f, var_r31->unk_D8, 0.0f); + sp70[1][0] *= var_r31->unk_DC; + sp70[1][1] *= var_r31->unk_DC; + sp70[1][2] *= var_r31->unk_DC; + var_f30 = var_r31->unk_180[var_r31->unk_06].x; + var_f29 = var_r31->unk_180[var_r31->unk_06].y; + var_f31 = var_r31->unk_180[var_r31->unk_06].z; + var_f27 = var_r31->unk_CC.x + ((sp70[0][2] * var_f31) + ((sp70[0][0] * var_f30) + (sp70[0][1] * var_f29))); + var_f26 = var_r31->unk_CC.y + ((sp70[1][2] * var_f31) + ((sp70[1][0] * var_f30) + (sp70[1][1] * var_f29))); + var_f25 = var_r31->unk_CC.z + ((sp70[2][2] * var_f31) + ((sp70[2][0] * var_f30) + (sp70[2][1] * var_f29))); + Hu3DModelPosSet(var_r31->unk_04, var_f27, var_f26, var_f25); + var_f30 = var_r31->unk_188[var_r31->unk_06].x; + var_f29 = var_r31->unk_188[var_r31->unk_06].y; + var_f31 = var_r31->unk_188[var_r31->unk_06].z; + sp64.x = var_f27 + (20.0f * var_f30); + sp64.y = var_f26 + (20.0f * var_f29); + sp64.z = var_f25 + (20.0f * var_f31); + sp48 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); + var_f27 = sp34 = atan2d(sp48, var_f29); + var_f26 = sp30 = atan2d(var_f30, var_f31); + var_f25 = sp2C = 0.0f; + Hu3DModelRotSet(var_r31->unk_04, var_f27, var_f26, var_f25); + var_r30 = (s32)(10.0f * var_r31->unk_18) / 40; + if (var_r30 > 0x10) { + var_r30 = 0x10; + } + for (var_r26 = 0; var_r26 < var_r30; var_r26++) { + var_f27 = sp34; + var_f26 = sp30; + var_f25 = sp2C; + var_f27 += 0.5f * ((s32)frand() % 48); + var_f30 = sind(var_f26) * sind(var_f27); + var_f31 = cosd(var_f26) * sind(var_f27); + var_f29 = cosd(var_f27); + sp28 = 12.0f - ((s32)frand() % 6); + sp58.x = var_f30; + sp58.y = var_f29; + sp58.z = var_f31; + fn_1_11454(&sp64, &sp58, 50.0f + (5.0f * var_r30), sp28); + } + } + DCFlushRangeNoSync(var_r31->unk_180, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_188, var_r31->unk_110 * 0xC); + PPCSync(); +} + +void fn_1_101C4(ModelData *var_r29, Mtx var_r28) +{ + Mtx sp50; + ROMtx sp20; + GXColor sp1C; + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s16 var_r27; + + var_r31 = var_r29->unk_120; + GXLoadPosMtxImm(var_r28, 0); + MTXInvXpose(var_r28, sp50); + GXLoadNrmMtxImm(sp50, 0); + var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f); + if (omPauseChk() == 0) { + fn_1_E914(var_r29, var_r28); + } + var_r29->scale.y = var_r31->unk_DC; + memcpy(sp50, lbl_1_data_16C, sizeof(lbl_1_data_16C)); + mtxRotCat(&sp50[0], CRot.x, CRot.y + var_r31->unk_D8, 180.0f); + GXLoadTexMtxImm(sp50, 0x36, GX_MTX2x4); + sp1C.a = lbl_1_bss_6D0; + GXSetTevColor(GX_TEVREG2, sp1C); + HuSprTexLoad(lbl_1_bss_6E0, 0, 0, GX_CLAMP, GX_CLAMP, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_6DC, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_NRM, 0x36, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + lbl_1_bss_6C8.r = var_r31->unk_23A.r; + lbl_1_bss_6C8.g = var_r31->unk_23A.g; + lbl_1_bss_6C8.b = var_r31->unk_23A.b; + lbl_1_bss_6C8.a = var_r31->unk_23A.a; + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_bss_6C8); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_168); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r27, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(1, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { + MTXIdentity(sp50); + } + PSMTXReorder(sp50, sp20); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); + for (var_r30 = 0; var_r30 < var_r31->unk_240; var_r30++) { + if (var_r31->unk_2A8[var_r30] && var_r31->unk_244[var_r30] != 0 && var_r30 != 1) { + GXCallDisplayList(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]); + } + } + GXSetNumTevStages(2); + GXSetNumTexGens(2); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_NRM, 0x36, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_APREV, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + lbl_1_bss_6C8.r = var_r31->unk_23A.r; + lbl_1_bss_6C8.g = var_r31->unk_23A.g; + lbl_1_bss_6C8.b = var_r31->unk_23A.b; + lbl_1_bss_6C8.a = var_r31->unk_23A.a; + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_bss_6C8); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_168); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r27, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); + if (var_r31->unk_2A8[1] && (var_r31->unk_244[1] != 0)) { + GXCallDisplayList(var_r31->unk_2A8[1], var_r31->unk_244[1]); + } +} + +s32 fn_1_109EC(s32 arg0, s32 arg1, Vec *arg2, Vec *arg3, Vec *arg4, s32 arg5) +{ + float var_f31; + float var_f30; + M425DllUnkStruct4 *var_r31; + s32 var_r29; + ModelData *var_r26; + + if (!lbl_1_bss_6EC) { + return; + } + var_r26 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r26->unk_120; + if (var_r31->unk_0C != 0.0f) { + var_f30 = var_r31->unk_08 / var_r31->unk_0C; + } + else { + var_f30 = 1.0f; + } + var_r31->unk_24 = fn_1_10EF8(arg0, arg1, arg2->x, arg2->z); + arg4->x = arg2->x + arg3->x; + arg4->y = arg2->y + arg3->y; + arg4->z = arg2->z + arg3->z; + if ((arg4->y < var_r31->unk_24) && (arg3->y < 0.0f) && (var_r31->unk_34 >= 0)) { + var_f31 = -arg3->y; + if (var_f31 > 50.0f) { + var_f31 = 50.0f; + } + else if (var_f31 < 10.0f) { + var_f31 = 0.0f; + } + if ((var_f31 > 0.0f) && (arg5 != 0)) { + var_f31 = (var_f31 - 10.0f) / 40.0f; + var_r31->unk_20 += var_f31; + } + var_f31 = -arg3->y; + var_f31 = var_f31 * 0.02f; + if (var_r31->unk_34 >= 0) { + for (var_r29 = 0; var_r29 < var_r31->unk_38; var_r29++) { + if (var_r31->unk_84[var_r29] == var_r31->unk_34) { + break; + } + } + if (var_r29 >= var_r31->unk_38) { + var_r29 = var_r31->unk_38; + } + if (var_r29 < 6) { + var_r31->unk_84[var_r29] = var_r31->unk_34; + if (var_r31->unk_9C[var_r29] < var_f31) { + var_r31->unk_9C[var_r29] = var_f31; + var_r31->unk_B4[var_r29] = arg5; + } + var_r31->unk_38++; + } + } + arg4->y = var_r31->unk_24 - (150.0f * (var_f30 * var_f31)); + if (arg4->y < 1.0f) { + arg4->y = 1.0f; + } + return 1; + } + if (arg4->y < var_r31->unk_24) { + arg4->y = var_r31->unk_24; + } + return 0; +} + +float fn_1_10CF4(s32 arg0) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (!lbl_1_bss_6EC) { + return; + } + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + return var_r30->unk_08; +} + +void fn_1_10D54(s32 arg0, float arg8) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (lbl_1_bss_6EC) { + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + var_r30->unk_08 = arg8; + } +} + +void fn_1_10DB4(s32 arg0) +{ + M425DllUnkStruct4 *var_r31; + ModelData *var_r30; + + if (lbl_1_bss_6EC) { + var_r30 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r30->unk_120; + if (var_r31->unk_2C == 0) { + var_r31->unk_28 = 0; + var_r31->unk_2C = 0x28; + var_r31->unk_30 = 0.3f; + } + } +} + +void fn_1_10E3C(s32 arg0) +{ + M425DllUnkStruct4 *var_r31; + s32 var_r30; + ModelData *var_r29; + + if (lbl_1_bss_6EC) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = &Hu3DData[lbl_1_bss_6EC->model[var_r30]]; + var_r31 = var_r29->unk_120; + if (arg0 != 0) { + var_r31->unk_110 = var_r31->unk_144[0x18] + var_r31->unk_112[24]; + var_r31->unk_240 = 0x19; + } + else { + var_r31->unk_110 = var_r31->unk_144[0x17] + var_r31->unk_112[23]; + var_r31->unk_240 = 0x18; + } + } + } +} + +float fn_1_10EF8(s32 arg0, s32 arg1, float arg8, float arg9) +{ + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f25; + M425DllUnkStruct4 *var_r31; + Vec *var_r30; + s32 var_r29; + s32 var_r28; + ModelData *var_r26; + + if (!lbl_1_bss_6EC) { + return 0.0f; + } + var_r26 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r26->unk_120; + if ((arg1 >= 0) && (arg1 <= 2) && (var_r31->unk_F0[arg1] != -1)) { + var_r28 = var_r31->unk_F0[arg1]; + var_r31->unk_34 = var_r28; + if (var_r31->unk_19C == 0) { + return var_r31->unk_DC * var_r31->unk_198[var_r28].y; + } + return var_r31->unk_198[var_r28].y; + } + if (var_r31->unk_19C == 0) { + mtxRot(spC, 0.0f, var_r31->unk_D8, 0.0f); + spC[1][0] *= var_r31->unk_DC; + spC[1][1] *= var_r31->unk_DC; + spC[1][2] *= var_r31->unk_DC; + for (var_r29 = 0, var_r30 = var_r31->unk_198; var_r29 < var_r31->unk_112[0]; var_r29++, var_r30++) { + var_f31 = (spC[0][2] * var_r30->z) + ((spC[0][0] * var_r30->x) + (spC[0][1] * var_r30->y)); + var_f25 = (spC[1][2] * var_r30->z) + ((spC[1][0] * var_r30->x) + (spC[1][1] * var_r30->y)); + var_f30 = (spC[2][2] * var_r30->z) + ((spC[2][0] * var_r30->x) + (spC[2][1] * var_r30->y)); + var_r30->x = var_f31; + var_r30->y = var_f25; + var_r30->z = var_f30; + } + var_r31->unk_19C = 1; + } + arg8 -= var_r31->unk_CC.x; + arg9 -= var_r31->unk_CC.z; + var_f28 = 10000.0f; + var_r28 = -1; + for (var_r29 = 0, var_r30 = var_r31->unk_198; var_r29 < var_r31->unk_112[0]; var_r29++, var_r30++) { + var_f31 = arg8 - var_r30->x; + var_f30 = arg9 - var_r30->z; + if (!(fabs(var_f31) > 100.0)) { + if (!(fabs(var_f30) > 100.0)) { + var_f29 = (var_f31 * var_f31) + (var_f30 * var_f30); + if (var_f29 < var_f28) { + var_r28 = var_r29; + var_f28 = var_f29; + } + } + } + } + (void)var_r29; + var_r31->unk_34 = var_r28; + if ((arg1 >= 0) && (arg1 <= 2)) { + var_r31->unk_F0[arg1] = var_r28; + } + if (var_r28 >= 0) { + return var_r31->unk_198[var_r28].y; + } + return 0.0f; +} + +void fn_1_11284(void) +{ + lbl_1_bss_6D8 = HuSprAnimRead(HuDataReadNum(0x38000E, 0x10000000)); + lbl_1_bss_6D4 = fn_1_11A74(lbl_1_bss_6D8, 0x40); + Hu3DModelLayerSet(lbl_1_bss_6D4, 6); +} + +void fn_1_112FC(void) +{ + M425DllUnkStruct5 *var_r31; + M425DllUnkStruct6 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[lbl_1_bss_6D4]; + var_r30 = var_r28->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_24; var_r29++, var_r31++) { + if (!(var_r31->unk_28 <= 0.0f)) { + var_r31->unk_04.x = var_r31->unk_10.x * var_r31->unk_1C; + var_r31->unk_04.y = var_r31->unk_10.y * var_r31->unk_1C; + var_r31->unk_04.z = var_r31->unk_10.z * var_r31->unk_1C; + var_r31->unk_1C *= 0.95f; + VECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); + if (++var_r31->unk_40 >= 0xF) { + var_r31->unk_40 = 0; + var_r31->unk_28 = 0.0f; + } + } + } +} + +void fn_1_11418(void) +{ + HuSprAnimKill(lbl_1_bss_6D8); + lbl_1_bss_6D8 = NULL; +} + +s32 fn_1_11454(Vec *arg0, Vec *arg1, float arg8, float arg9) +{ + M425DllUnkStruct5 *var_r31; + M425DllUnkStruct6 *var_r29; + s32 var_r28; + ModelData *var_r26; + + var_r26 = &Hu3DData[lbl_1_bss_6D4]; + var_r29 = var_r26->unk_120; + for (var_r31 = var_r29->unk_3C, var_r28 = 0; var_r28 < var_r29->unk_24; var_r28++, var_r31++) { + if (var_r31->unk_28 <= 0.0f) { + break; + } + } + if (var_r28 >= var_r29->unk_24) { + return -1; + } + var_r31->unk_30.x = arg0->x; + var_r31->unk_30.y = arg0->y; + var_r31->unk_30.z = arg0->z; + var_r31->unk_10.x = arg1->x; + var_r31->unk_10.y = arg1->y; + var_r31->unk_10.z = arg1->z; + var_r31->unk_04.x = arg1->x * arg9; + var_r31->unk_04.y = arg1->y * arg9; + var_r31->unk_04.z = arg1->z * arg9; + var_r31->unk_1C = arg9; + var_r31->unk_28 = arg8; + var_r31->unk_2C = (s32)frand() % 360; + var_r31->unk_3C.a = 0x40; + var_r31->unk_40 = 0; + return var_r28; +} + +s16 fn_1_115D4(ModelData *arg0, Mtx arg1, Mtx arg2, float arg8) +{ + s16 var_r31; + s16 var_r30; + LightData *var_r29; + s16 var_r27; + + var_r27 = 0; + var_r30 = 1; + for (var_r29 = Hu3DGlobalLight, var_r31 = 0; var_r31 < 8; var_r31++, var_r29++) { + if (var_r29->unk_00 != -1) { + var_r30 <<= 1; + } + } + if ((arg0->attr & 0x1000) != 0) { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (arg0->unk_38[var_r31] != -1) { + var_r29 = &Hu3DLocalLight[arg0->unk_38[var_r31]]; + fn_1_116E4(arg0, var_r29, var_r30, arg2, arg1, arg8); + var_r27 |= var_r30; + var_r30 <<= 1; + } + } + } + return var_r27; +} + +void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, float var_f31) +{ + switch ((u8)var_r31->unk_00) { + case 0: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); + GXInitLightSpot(&lbl_1_bss_688, var_r31->unk_04, var_r31->unk_02); + break; + case 1: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); + VECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); + break; + case 2: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + GXInitLightDistAttn(&lbl_1_bss_688, var_r31->unk_04, var_r31->unk_08, var_r31->unk_02); + break; + } + if ((var_r31->unk_00 & 0x8000) != 0) { + MTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); + MTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); + GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z); + } + else { + GXInitLightPos(&lbl_1_bss_688, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + lbl_1_bss_67C = var_r31->unk_28; + } + if (var_f31 == 0.0f) { + GXInitLightDir(&lbl_1_bss_688, lbl_1_bss_67C.x, lbl_1_bss_67C.y, lbl_1_bss_67C.z); + } + else { + GXInitSpecularDir(&lbl_1_bss_688, lbl_1_bss_67C.x, lbl_1_bss_67C.y, lbl_1_bss_67C.z); + GXInitLightAttn(&lbl_1_bss_688, 0.0f, 0.0f, 1.0f, var_f31 / 2, 0.0f, 1.0f - (var_f31 / 2)); + } + GXInitLightColor(&lbl_1_bss_688, var_r31->color); + GXLoadLightObjImm(&lbl_1_bss_688, sp8); +} + +s16 fn_1_11A74(AnimData *arg0, s16 arg1) +{ + M425DllUnkStruct6 *var_r31; + s16 var_r30; + Vec2f *var_r29; + M425DllUnkStruct5 *var_r28; + ModelData *var_r27; + Vec *var_r26; + void *var_r24; + s16 var_r23; + void *var_r21; + + var_r23 = Hu3DHookFuncCreate(fn_1_11EE0); + var_r27 = &Hu3DData[var_r23]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M425DllUnkStruct6), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = arg0; + arg0->useNum++; + var_r31->unk_24 = arg1; + var_r31->unk_20 = 0; + var_r31->unk_4C = 0; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r28 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(M425DllUnkStruct5), var_r27->unk_48); + var_r31->unk_3C = var_r28; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r28++) { + var_r28->unk_28 = 0.0f; + var_r28->unk_2C = 0.0f; + var_r28->unk_30.x = (s32)((frand() & 0x7F) - 0x40) * 0x14; + var_r28->unk_30.y = (s32)((frand() & 0x7F) - 0x40) * 0x1E; + var_r28->unk_30.z = (s32)((frand() & 0x7F) - 0x40) * 0x14; + var_r28->unk_3C.r = var_r28->unk_3C.g = var_r28->unk_3C.b = var_r28->unk_3C.a = 0xFF; + var_r28->unk_40 = 0; + } + var_r26 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r26; + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r26++) { + var_r26->x = var_r26->y = var_r26->z = 0.0f; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r29; + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x4000, var_r27->unk_48); + var_r21 = var_r24; + DCFlushRange(var_r24, 0x4000); + GXBeginDisplayList(var_r21, 0x4000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30 * 4 + 3); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 3); + } + var_r31->unk_34 = GXEndDisplayList(); + var_r31->unk_48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_34, var_r27->unk_48); + memcpy(var_r31->unk_48, var_r24, var_r31->unk_34); + DCFlushRange(var_r31->unk_48, var_r31->unk_34); + HuMemDirectFree(var_r24); + return var_r23; +} + +void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + M425DllUnkStruct6 *var_r31; + Vec *var_r30; + M425DllUnkStruct5 *var_r29; + Vec *var_r28; + Vec *var_r27; + Vec2f *var_r26; + s16 var_r25; + s16 var_r23; + s16 var_r22; + s16 var_r20; + s16 var_r19; + UnkHook var_r18; + + var_r31 = var_r24->unk_120; + if ((var_r31->unk_2C != GlobalCounter) || (shadowModelDrawF != 0)) { + GXLoadPosMtxImm(var_r21, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(0, GX_LEQUAL, 0); + } + else { + var_r22 = var_r31->unk_38->bmp->dataFmt & 0xF; + if ((var_r22 == 7) || (var_r22 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if ((var_r24->attr & 2) != 0) { + GXSetZMode(1, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(1, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(var_r31->unk_38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); + if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { + MTXIdentity(sp128); + } + PSMTXReorder(sp128, &sp8[0]); + if (var_r31->unk_4C) { + var_r18 = var_r31->unk_4C; + var_r18(var_r24, var_r31, var_r21); + } + var_r29 = var_r31->unk_3C; + var_r30 = var_r31->unk_40; + var_r26 = var_r31->unk_44; + PSMTXROMultVecArray(sp8, lbl_1_data_19C, &sp38[0], 4); + for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) { + if (!var_r29->unk_28) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else { + if (!var_r29->unk_2C) { + var_r28 = &sp98[0]; + var_r27 = &sp38[0]; + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + } + else { + VECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); + VECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); + VECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); + VECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); + MTXRotRad(spC8, 0x5A, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + } + var_r20 = var_r29->unk_40 & 3; + var_r19 = (var_r29->unk_40 >> 2) & 3; + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r26++) { + var_r26->x = (0.25f * var_r20) + lbl_1_data_1CC[var_r25].x; + var_r26->y = (0.25f * var_r19) + lbl_1_data_1CC[var_r25].y; + } + } + } + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * 8 * 4); + PPCSync(); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); + if (shadowModelDrawF == 0) { + if ((var_r31->unk_21 & 2) == 0) { + var_r31->unk_28++; + } + if ((var_r31->unk_30 != 0) && (var_r31->unk_30 <= var_r31->unk_28)) { + if ((var_r31->unk_21 & 1) != 0) { + var_r31->unk_28 = 0; + } + var_r31->unk_28 = var_r31->unk_30; + } + var_r31->unk_2C = GlobalCounter; + } + } +} diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 6f4d3a64..9a80a823 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -11,6 +11,7 @@ #include "game/sprite.h" #include "game/wipe.h" #include "string.h" +#include "version.h" typedef struct UnkM426Struct { /* 0x00 */ s32 unk_00; @@ -393,18 +394,18 @@ void fn_1_330(omObjData *object) if (!WipeStatGet()) { lbl_1_bss_54 = 1; lbl_1_bss_58 = 0; - lbl_1_bss_30 = 120; + lbl_1_bss_30 = 2 * REFRESH_RATE; } break; case 1: - if (++lbl_1_bss_58 >= 15.0f) { + if (++lbl_1_bss_58 >= REFRESH_RATE / 4.0f) { lbl_1_bss_54 = 2; lbl_1_bss_58 = 0; lbl_1_bss_38 = 1; } break; case 2: - var_f31 = 0.007246377f * lbl_1_bss_58; + var_f31 = (VERSION_NTSC ? 0.007246377f : 0.008695652f) * lbl_1_bss_58; var_f31 = sind(90.0f * var_f31); var_f31 *= var_f31; for (var_r31 = 0; var_r31 < 7; var_r31++) { @@ -417,7 +418,7 @@ void fn_1_330(omObjData *object) Center.y = sp10[4]; Center.z = sp10[5]; CZoom = sp10[6]; - if (++lbl_1_bss_58 >= 138.0f) { + if (++lbl_1_bss_58 >= (VERSION_NTSC ? 138.0f : 115.0f)) { CRot.x = lbl_1_data_4C[0][0]; CRot.y = lbl_1_data_4C[0][1]; CRot.z = lbl_1_data_4C[0][2]; @@ -430,7 +431,7 @@ void fn_1_330(omObjData *object) } break; case 3: - if (++lbl_1_bss_58 >= 30.0f) { + if (++lbl_1_bss_58 >= (REFRESH_RATE / 2.0f)) { lbl_1_bss_50 = MGSeqCreate(3, 0); lbl_1_bss_54 = 4; lbl_1_bss_58 = 0; @@ -451,21 +452,21 @@ void fn_1_330(omObjData *object) lbl_1_bss_40 = 1; lbl_1_bss_3C = 1; lbl_1_bss_54 = 5; - lbl_1_bss_58 = 1800; + lbl_1_bss_58 = 30 * REFRESH_RATE; fn_1_7328(1); - lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / 60, -1, -1); + lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / REFRESH_RATE, -1, -1); } break; case 5: - var_r25 = (lbl_1_bss_58 + 59) / 60; + var_r25 = (lbl_1_bss_58 + REFRESH_RATE - 1) / REFRESH_RATE; if (var_r25 < 0) { var_r25 = 0; } MGSeqParamSet(lbl_1_bss_4C, 1, var_r25); - if (lbl_1_bss_58 == 600) { + if (lbl_1_bss_58 == 10 * REFRESH_RATE) { lbl_1_bss_34 = 3.0f; } - else if (lbl_1_bss_58 == 1200) { + else if (lbl_1_bss_58 == 20 * REFRESH_RATE) { lbl_1_bss_34 = 2.5f; } if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) { @@ -528,7 +529,7 @@ void fn_1_330(omObjData *object) } break; case 7: - if (++lbl_1_bss_58 > 210.0f) { + if (++lbl_1_bss_58 > 3.5f * REFRESH_RATE) { lbl_1_bss_50 = -1; lbl_1_bss_54 = 8; lbl_1_bss_58 = 0; @@ -779,7 +780,6 @@ void fn_1_125C(omObjData *object) object->func = NULL; } -// TODO https://decomp.me/scratch/1aZdv void fn_1_16F8(omObjData *object) { s32 spA8[3]; @@ -812,7 +812,7 @@ void fn_1_16F8(omObjData *object) s32 var_r24; s32 var_r23; s32 var_r22; - s32 var_r21; // this is weird, used as a temporary + s32 var_r21; sp18 = 0; sp14 = 0; @@ -826,7 +826,7 @@ void fn_1_16F8(omObjData *object) } if (var_r31->unk_14) { sp20 = sp1C = 0.0f; - sp10 = 0; + var_r21 = sp10 = 0; fn_1_2F5C(object, &sp20, &sp1C, &sp10); } else { @@ -849,8 +849,7 @@ void fn_1_16F8(omObjData *object) else { if (!lbl_1_bss_40) { sp20 = sp1C = 0.0f; - - sp10 = 0; + var_r21 = sp10 = 0; } if (fabs(sp20) > 8.0) { var_f30 = 0.25f * sp20; @@ -947,8 +946,8 @@ void fn_1_16F8(omObjData *object) } else if (var_f27 != 0.0f) { var_f27 = 1.0f / var_f27; - object->trans.x += var_f28 * (var_f30 * var_f27); - object->trans.z += var_f28 * (var_f31 * var_f27); + object->trans.x += var_f28 * (var_f30 * var_f27) * (60.0f / REFRESH_RATE); + object->trans.z += var_f28 * (var_f31 * var_f27) * (60.0f / REFRESH_RATE); } } var_f30 = object->trans.x - var_f22; @@ -1042,16 +1041,16 @@ void fn_1_16F8(omObjData *object) break; case 6: var_r31->unk_2C++; - if (var_r31->unk_2C < 60.0f) { + if (var_r31->unk_2C < 1.0f * REFRESH_RATE) { if (lbl_1_bss_40 == 0) { - var_r31->unk_2C = 59; + var_r31->unk_2C = REFRESH_RATE - 1; } } - else if (var_r31->unk_2C == 60.0f) { + else if (var_r31->unk_2C == 1.0f * REFRESH_RATE) { var_r31->unk_28 = 7; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - else if (var_r31->unk_2C >= 90.0f) { + else if (var_r31->unk_2C >= (VERSION_NTSC ? 90.0f : 80.0f)) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -1241,7 +1240,7 @@ void fn_1_2B74(Vec *arg0) var_r31->unk_2C = 0; var_r31->unk_24 = 3; var_r31->unk_AC = 32; - var_r31->unk_30 = 90; + var_r31->unk_30 = 1.5f * REFRESH_RATE; var_r31->unk_90 = var_r31->unk_94 = -1; if (!var_r29->unk_00) { var_r31->unk_9C.x = -1.0f; @@ -1371,7 +1370,7 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) break; case 1: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE) { if (var_r31->unk_90 == var_r31->unk_B0) { var_r31->unk_B0 = -1; return; @@ -1390,12 +1389,12 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) return; case 2: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f && var_r31->unk_B0 != var_r28->unk_B0) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE && var_r31->unk_B0 != var_r28->unk_B0) { if (var_r31->unk_90 == var_r31->unk_B0) { *arg3 |= 256; var_r31->unk_B0 = -1; var_r31->unk_B4 = 0; - var_r31->unk_B8 = (50.0f + (frand() % 15)) - (var_r31->unk_18 * 10); + var_r31->unk_B8 = ((VERSION_NTSC ? 50.0f : 45.0f) + (frand() % 15)) - (var_r31->unk_18 * 10); var_r31->unk_BC = 0; return; } @@ -1586,7 +1585,7 @@ void fn_1_3714(omObjData *object) sp8.x = 0.0f; sp8.y = 500.0f; sp8.z = var_r31->unk_38; - var_r25 = 0.3f * (var_r31->unk_00 * 60); + var_r25 = 0.3f * (var_r31->unk_00 * REFRESH_RATE); var_r31->unk_34 = fn_1_5C6C(var_r31->unk_00, var_r25, &sp8); } lbl_1_bss_24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 1), MEMORY_DEFAULT_NUM)); @@ -1976,7 +1975,7 @@ void fn_1_5134(omObjData *object) } break; case 1: - if ((var_r31->unk_40 -= 50.0f) <= 50.0f) { + if ((var_r31->unk_40 -= (VERSION_NTSC ? 50.0f : 60.000004f)) <= 50.0f) { if (lbl_1_bss_54 <= 4) { fn_1_3654(0); fn_1_3654(1); @@ -2006,8 +2005,8 @@ void fn_1_5134(omObjData *object) } if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) { var_r31->unk_48 = var_f31; - if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) { - var_r31->unk_34 = lbl_1_bss_34; + if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34 * (60.0f / REFRESH_RATE)) { + var_r31->unk_34 = lbl_1_bss_34 * (60.0f / REFRESH_RATE); } } else { @@ -2055,7 +2054,7 @@ void fn_1_5134(omObjData *object) if (lbl_1_bss_1C[1] < 0) { lbl_1_bss_1C[1] = 0; } - lbl_1_bss_30 = 60; + lbl_1_bss_30 = REFRESH_RATE; lbl_1_bss_28 = 1.0f; var_r31->unk_30 = 0; var_r31->unk_28 = 4; @@ -2477,7 +2476,7 @@ void fn_1_6704(omObjData *object) if (var_r31->unk_04) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelRotSet(var_r31->unk_00, CRot.x, CRot.y, CRot.z); - if (++var_r31->unk_08 >= 120.0f) { + if (++var_r31->unk_08 >= 2.0f * REFRESH_RATE) { Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; @@ -3044,7 +3043,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (!HmfInverseMtxF3X3(arg1, sp128)) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -3084,9 +3083,9 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) VECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, &spF8[0]); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, &spF8[0]); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3169,7 +3168,7 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetArray(GX_VA_POS, lbl_1_data_27C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); @@ -3223,7 +3222,7 @@ void fn_1_8E48(ModelData *arg0, Mtx arg1) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c new file mode 100644 index 00000000..7031739f --- /dev/null +++ b/src/REL/m427Dll/main.c @@ -0,0 +1,957 @@ +#include "REL/m427Dll.h" + +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/wipe.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +typedef struct M427DllStruct2 { + s32 unk0[3]; + s32 unkC; + s32 unk10; + s32 unk14[7]; + s32 unk30[7]; + HsfVector2f unk4C[7]; + f32 unk84; + f32 unk88; + s32 unk8C; + f32 unk90; + f32 unk94; + f32 unk98; + s32 unk9C; + s32 unkA0; +} M427DllStruct2; // sizeof 0xA4 + +typedef struct M427DllStruct3 { + Vec rot; + Vec cen; + f32 zoom; +} M427DllStruct3; + +Process* lbl_1_bss_8C; +omObjData* lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +f32 lbl_1_bss_6C[2]; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +s32 lbl_1_bss_5C; +s32 lbl_1_bss_58; +s32 lbl_1_bss_54; +s32 lbl_1_bss_50; +s32 lbl_1_bss_4C; +omObjData* lbl_1_bss_48; +s32 lbl_1_bss_44; +M427DllStruct2* lbl_1_bss_40; +M427DllStruct lbl_1_bss_0[8]; + +void fn_1_29C(omObjData*); +void fn_1_300(omObjData*); +void fn_1_1664(omObjData*); +void fn_1_16C4(omObjData*); +void fn_1_1864(s32); +void fn_1_1954(void); +void fn_1_1F34(void); +void fn_1_2188(void); +void fn_1_21E8(s32, s32); +void fn_1_232C(s32); +void fn_1_2518(s32); +void fn_1_2704(void); +void fn_1_272C(void); +void fn_1_2790(void); +void fn_1_2B20(omObjData* object); +void fn_1_2B28(void); +void fn_1_2CE8(f32); +void fn_1_2EE0(void); +void fn_1_2F6C(f32); +void fn_1_3164(void); + +M427DllStruct3 lbl_1_data_0[4] = { + { + { -25.0f, 0.0f, 0.0f }, + { 0.0f, 275.0f, 0.0f }, + 1975.0f + }, + { + { 4.0f, 167.0f, 0.0f }, + { 57.0f, 475.0f, 198.0f }, + 3375.0f + }, + { + { -0.0f, -190.0f, 0.0f }, + { -90.0f, 50.0f, 800.0f }, + 1700.0f + }, + { + { 2.0f, 170.0f, 0.0f }, + { -400.0f, 175.0f, 127.0f }, + 2425.0f + } +}; + +void ObjectSetup(void) { + Process* var_r30; + s32 var_r31; + + OSReport("******* M426ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_8C = var_r30; + omGameSysInit(var_r30); + fn_1_2790(); + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x34); + lbl_1_bss_88 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_29C); + lbl_1_bss_84 = 0; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + lbl_1_bss_78 = lbl_1_bss_74 = GWMGRecordGet(2); + if (lbl_1_bss_78 <= 0) { + lbl_1_bss_78 = lbl_1_bss_74 = 0xE10; + } + + lbl_1_bss_68 = lbl_1_bss_64 = 0; + + lbl_1_bss_60 = lbl_1_bss_5C = -1; + lbl_1_bss_58 = -1; + lbl_1_bss_54 = lbl_1_bss_50 = -1; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_6C[var_r31] = 0.0f; + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + lbl_1_bss_0[var_r31].unk0 = -1; + lbl_1_bss_0[var_r31].unk4 = 0; + } +} + +void fn_1_29C(omObjData* arg0) { + fn_1_32F4(lbl_1_bss_8C); + fn_1_E98C(lbl_1_bss_8C); + fn_1_1954(); + fn_1_21E8(0, 1); + arg0->func = fn_1_300; +} + +void fn_1_300(omObjData* arg0) { + s32 sp10[2]; + s32 sp8[2]; + f32 var_f31; + f32 var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + switch (lbl_1_bss_84) { + case 0: + lbl_1_bss_80++; + if (lbl_1_bss_80 == 3) { + WipeCreate(1, 0, 0x3C); + lbl_1_bss_4C = 0; + fn_1_21E8(1, 1); + fn_1_2B28(); + } else if ((lbl_1_bss_80 > 3) && (WipeStatGet() == 0)) { + lbl_1_bss_54 = HuAudFXPlay(0x657); + lbl_1_bss_50 = HuAudFXPlay(0x651); + lbl_1_bss_84 = 1; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 1: + lbl_1_bss_80++; + var_f31 = lbl_1_bss_80 / 300.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(sind(90.0f * var_f31)); + if (++lbl_1_bss_7C >= 60.0f) { + lbl_1_bss_84 = 2; + lbl_1_bss_7C = 0; + } + break; + case 2: + lbl_1_bss_80++; + var_f31 = lbl_1_bss_80 / 300.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(sind(90.0f * var_f31)); + var_f30 = sind(90.0f * (lbl_1_bss_7C / 240.0f)); + fn_1_2CE8(var_f30 * var_f30); + if (++lbl_1_bss_7C >= 240.0f) { + lbl_1_bss_60 = MGSeqCreate(3, 0); + fn_1_2EE0(); + lbl_1_bss_84 = 3; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 3: + if (lbl_1_bss_60 != -1) { + var_r28 = MGSeqStatGet(lbl_1_bss_60); + if (((var_r28 & 0x10) != 0) && (lbl_1_bss_58 == -1)) { + lbl_1_bss_58 = HuAudSeqPlay(0x49); + } + } else { + var_r28 = 0; + } + if ((lbl_1_bss_60 == -1) || (var_r28 == 0)) { + lbl_1_bss_84 = 4; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 4: + lbl_1_bss_80++; + var_r30 = lbl_1_bss_80; + if (var_r30 > 0x4650) { + var_r30 = 0x4650; + } + + fn_1_2518(var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (lbl_1_bss_0[var_r31].unk0 != -1) { + if (--lbl_1_bss_0[var_r31].unk4 <= 0) { + lbl_1_bss_0[var_r31].unk0 = -1; + lbl_1_bss_0[var_r31].unk4 = 0; + } + } + } + if (lbl_1_bss_80 == 0x3F48) { + lbl_1_bss_5C = MGSeqCreate(1, 0x708, -1, -1); + } + if (lbl_1_bss_5C != -1) { + var_r26 = (0x4650 - lbl_1_bss_80); + var_r30 = (var_r26 + 0x3A) / 60; + if (var_r30 < 0) { + var_r30 = 0; + } + MGSeqParamSet(lbl_1_bss_5C, 1, var_r30); + } + if (lbl_1_bss_68 != 0) { + if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) { + if (((s32)frand() & 1) != 0) { + lbl_1_bss_68 = 1; + } else { + lbl_1_bss_68 = 2; + } + } + if (lbl_1_bss_5C != -1) { + MGSeqParamSet(lbl_1_bss_5C, 2, -1); + } + lbl_1_bss_5C = -1; + lbl_1_bss_60 = MGSeqCreate(3, 1); + if (lbl_1_bss_58 != -1) { + HuAudSeqFadeOut(lbl_1_bss_58, 0x64); + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) { + HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64); + } + } + HuAudFXFadeOut(lbl_1_bss_54, 0x64); + HuAudFXFadeOut(lbl_1_bss_50, 0x64); + if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 < lbl_1_bss_78)) { + if (lbl_1_bss_68 == 1) { + var_r29 = 0; + } else { + var_r29 = 1; + } + if (fn_1_113F0(var_r29) == 0) { + lbl_1_bss_74 = lbl_1_bss_80; + } + } + if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 <= 0xA8C)) { + if (lbl_1_bss_68 == 1) { + var_r29 = 0; + } else { + var_r29 = 1; + } + if (fn_1_113F0(var_r29) == 0) { + GWGameStat.present[0x34] = 1; + } + } + lbl_1_bss_84 = 5; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } else { + if (lbl_1_bss_80 >= 0x4651) { + MGSeqParamSet(lbl_1_bss_5C, 1, 0); + MGSeqParamSet(lbl_1_bss_5C, 2, -1); + lbl_1_bss_5C = -1; + lbl_1_bss_60 = MGSeqCreate(3, 1); + if (lbl_1_bss_58 != -1) { + HuAudSeqFadeOut(lbl_1_bss_58, 0x64); + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) { + HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64); + } + } + HuAudFXFadeOut(lbl_1_bss_54, 0x64); + HuAudFXFadeOut(lbl_1_bss_50, 0x64); + lbl_1_bss_64 = 1; + lbl_1_bss_84 = 5; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + } + break; + case 5: + if (lbl_1_bss_68 != 0) { + WipeCreate(2, 0, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_4C = 1; + lbl_1_bss_84 = 6; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } else if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) { + lbl_1_bss_84 = 0xA; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 6: + if ((WipeStatGet() == 0) && ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0))) { + lbl_1_bss_60 = -1; + fn_1_21E8(0, 0); + fn_1_3164(); + HuAudFXAllStop(); + HuAudFXPlay(0x65E); + lbl_1_bss_84 = 7; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 7: + if (++lbl_1_bss_80 > 5) { + WipeCreate(1, 0, 0x1E); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_4C = 0; + HuAudAUXVolSet(-1, -1); + fn_1_272C(); + lbl_1_bss_84 = 8; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 8: + if (WipeStatGet() == 0) { + lbl_1_bss_84 = 0xA; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 10: + if (lbl_1_bss_68 != 0) { + var_f31 = sind((90.0f * (lbl_1_bss_80 / 180.0f))); + if (var_f31 >= 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(var_f31); + if (lbl_1_bss_80 > 30.0f) { + var_f30 = lbl_1_bss_7C / 150.0f; + lbl_1_bss_7C++; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + } + var_f30 = sind(90.0f * var_f30); + fn_1_2F6C(var_f30); + } + if (++lbl_1_bss_80 > 180.0f) { + if (lbl_1_bss_68 == 1) { + fn_1_110E8(0, sp10); + fn_1_111C0(0, sp8); + } else { + fn_1_110E8(1, sp10); + fn_1_111C0(1, sp8); + } + GWPlayerCoinWinAdd(sp8[0], 10); + GWPlayerCoinWinAdd(sp8[1], 10); + if (lbl_1_bss_74 < lbl_1_bss_78) { + lbl_1_bss_78 = lbl_1_bss_74; + fn_1_232C(lbl_1_bss_78); + GWMGRecordSet(2, lbl_1_bss_78); + fn_1_2704(); + lbl_1_bss_60 = MGSeqCreate(0xE, lbl_1_bss_78); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xB; + lbl_1_bss_80 = 0; + } else { + lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + } + } else { + lbl_1_bss_60 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + break; + case 11: + if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) { + if (lbl_1_bss_68 == 1) { + fn_1_110E8(0, sp10); + } else { + fn_1_110E8(1, sp10); + } + lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + break; + case 12: + if (++lbl_1_bss_80 >= 210.0f) { + WipeCreate(2, 0, 0x3C); + lbl_1_bss_4C = 1; + lbl_1_bss_84 = 0xD; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 13: + if (WipeStatGet() == 0) { + lbl_1_bss_84 = 0xE; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 14: + arg0->func = fn_1_1664; + break; + } + fn_1_1F34(); + fn_1_16C4(arg0); +} + +void fn_1_1664(omObjData* arg0) { + if (WipeStatGet() == 0) { + fn_1_EC54(); + fn_1_3A88(); + fn_1_2188(); + CharModelKill(-1); + HuDataDirClose(0x3A0000); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_16C4(omObjData* arg0) { + s32 var_r30; + + var_r30 = 0; + if ((WipeStatGet() != 0) || (arg0->func == fn_1_1664)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + if ((s32) lbl_1_bss_4C == 0) { + WipeCreate(2, 0, 0x3C); + } + lbl_1_bss_4C = 1; + HuAudStreamFadeOut(0x1E); + arg0->func = fn_1_1664; + } +} + +s32 fn_1_1788(void) { + return lbl_1_bss_84; +} + +void fn_1_1798(s32 arg0, f32 arg8) { + + if (arg8 < 0.0f) { + arg8 = 0.0f; + } else if (arg8 > 1.0f) { + arg8 = 1.0f; + } + lbl_1_bss_6C[arg0] = arg8; + if (lbl_1_bss_6C[arg0] >= 1.0f) { + fn_1_1864(1 << arg0); + } +} + +void fn_1_1864(s32 arg0) { + lbl_1_bss_68 |= arg0; +} + +s32 fn_1_1884(void) { + if (lbl_1_bss_68 != 0) { + if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) { + if (((s32)frand() & 1) != 0) { + lbl_1_bss_68 = 1; + } else { + lbl_1_bss_68 = 2; + } + } + if (lbl_1_bss_68 == 1) { + return 0; + } else { + return 1; + } + } else { + if (lbl_1_bss_64 != 0) { + return 3; + } else { + return -1; + } + } +} + +s32 lbl_1_data_D0[2] = { 0x3A0029, 0x3A002A }; +s16 lbl_1_data_D8[2] = { -24, 24 }; +s16 lbl_1_data_DC[2] = { -10, 10 }; +s16 lbl_1_data_E0[2] = { 350, 96 }; + +void fn_1_1954(void) { + f32 temp_f28; + f32 temp_f29; + f32 var_f31; + f32 var_f30; + s32 var_r29; + s32 var_r31; + M427DllStruct2* var_r30; + + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA4, 0x10000000); + lbl_1_bss_40 = var_r30; + var_r30->unk9C = 0; + var_r30->unkA0 = 0; + var_r31 = espEntry(0x3A0028, 1, 0); + var_r30->unk0[0] = var_r31; + espPriSet(var_r31, 0xFF); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espPosSet(var_r31, 288.0, 240.0); + + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r31 = espEntry(lbl_1_data_D0[var_r29], 1, 0); + var_r30->unk0[var_r29 + 1] = var_r31; + espPriSet(var_r31, 0xC8); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espPosSet(var_r31, 288.0f + lbl_1_data_D8[var_r29], 240.0); + } + + temp_f28 = 288.0f; + temp_f29 = 400.0f; + var_f31 = 288.0f; + var_f30 = temp_f29; + var_r31 = espEntry(0x3A002B, 1, 0); + var_r30->unkC = var_r31; + espPriSet(var_r31, 0xBE); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espTPLvlSet(var_r31, 0.5); + espColorSet(var_r31, 0x80, 0x80, 0x80); + espScaleSet(var_r31, 1.25, 1.5); + espPosSet(var_r31, var_f31, var_f30); + var_f31 = 248.0f; + var_f30 = temp_f29 - 8.0f; + var_r31 = espEntry(0x610037, 1, 0); + var_r30->unk10 = var_r31; + espPriSet(var_r31, 0xBE); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31 - 18.0f, var_f30); + var_r30->unk84 = ((var_f31 - 18.0f) - temp_f28); + var_r30->unk88 = (var_f30 - temp_f29); + var_r30->unk8C = -1; + var_r30->unk98 = 1.0f; + var_r30->unk90 = temp_f28; + var_r30->unk94 = temp_f29; + var_f31 = 248.0f; + var_f30 = temp_f29 - 8.0f; + + for (var_r29 = 0; var_r29 < 7; var_r29++) { + var_r31 = espEntry(0x610030, 1, 0); + var_r30->unk14[var_r29] = var_r31; + espPriSet(var_r31, 0xB4); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 9); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31, var_f30); + if (var_r29 == 1) { + espBankSet(var_r31, 10); + } else if (var_r29 == 4) { + espBankSet(var_r31, 11); + } else { + espBankSet(var_r31, 0); + } + var_r30->unk4C[var_r29].x = var_f31 - temp_f28; + var_r30->unk4C[var_r29].y = var_f30 - temp_f29; + var_f31 += 16.0f; + } + var_f31 = 248.0f; + var_f30 = 8.0f + temp_f29; + + for (var_r29 = 0; var_r29 < 7; var_r29++) { + var_r31 = espEntry(0x610031, 1, 0); + var_r30->unk30[var_r29] = var_r31; + espPriSet(var_r31, 0xB4); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31, var_f30); + if (var_r29 == 1) { + espBankSet(var_r31, 10); + } else if (var_r29 == 4) { + espBankSet(var_r31, 11); + } else { + espBankSet(var_r31, 0); + } + var_f31 += 16.0f; + } + fn_1_232C(lbl_1_bss_78); + fn_1_2518(0); +} + +void fn_1_1F34(void) { + f32 var_f30; + f32 temp_f31; + s32 var_r29; + s32 var_r30; + M427DllStruct2* temp_r31; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = temp_r31->unk0[var_r30 + 1]; + var_f30 = lbl_1_data_E0[0] + (lbl_1_bss_6C[var_r30] * (lbl_1_data_E0[1] - lbl_1_data_E0[0])); + espPosSet(var_r29, 288.0f + lbl_1_data_DC[var_r30], var_f30); + } + if (temp_r31->unk8C != -1) { + if (temp_r31->unk8C == 0) { + if ((temp_r31->unk98 += 0.02f) >= 1.2f) { + temp_r31->unk98 = 1.2f; + temp_r31->unk8C = 1; + } + } else { + if ((temp_r31->unk98 -= 0.04f) <= 1.0f) { + temp_r31->unk98 = 1.0f; + temp_r31->unk8C = 0; + } + } + temp_f31 = temp_r31->unk98; + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + var_r29 = temp_r31->unk14[var_r30]; + espScaleSet(var_r29, temp_f31, temp_f31); + } + var_r29 = temp_r31->unk10; + espScaleSet(var_r29, temp_f31, temp_f31); + } +} + +void fn_1_2188(void) { + M427DllStruct2* temp_r31; + s32 var_r30; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + espKill(temp_r31->unk0[var_r30]); + } + espKill(temp_r31->unkC); +} + +void fn_1_21E8(s32 arg0, s32 arg1) { + M427DllStruct2* temp_r31; + s32 var_r30; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk0[var_r30]); + } else { + espDispOn(temp_r31->unk0[var_r30]); + } + } + if (arg1 != 0) { + if (arg0 == 0) { + espDispOff(temp_r31->unkC); + } else { + espDispOn(temp_r31->unkC); + } + if (arg0 == 0) { + espDispOff(temp_r31->unk10); + } else { + espDispOn(temp_r31->unk10); + } + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk14[var_r30]); + } else { + espDispOn(temp_r31->unk14[var_r30]); + } + } + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk30[var_r30]); + } else { + espDispOn(temp_r31->unk30[var_r30]); + } + } + } +} + +void fn_1_232C(s32 arg0) { + M427DllStruct2* temp_r29; + f32 temp_f0; + s32 var_r31; + + temp_r29 = lbl_1_bss_40; + temp_r29->unk9C = arg0; + var_r31 = arg0 / 3600; + arg0 -= var_r31 * 3600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[0], var_r31); + var_r31 = (arg0 / 600); + arg0 -= var_r31 * 600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[2], var_r31); + var_r31 = arg0 / 60; + arg0 -= var_r31 * 60; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[3], var_r31); + arg0 = 100.0f * (arg0 / 60.0f); + var_r31 = arg0 / 10; + arg0 -= var_r31 * 10; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[5], var_r31); + var_r31 = arg0; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[6], var_r31); +} + +void fn_1_2518(s32 arg0) { + M427DllStruct2* temp_r29; + f32 temp_f0; + s32 var_r31; + + temp_r29 = lbl_1_bss_40; + temp_r29->unkA0 = arg0; + var_r31 = arg0 / 3600; + arg0 -= var_r31 * 3600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[0], var_r31); + var_r31 = (arg0 / 600); + arg0 -= var_r31 * 600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[2], var_r31); + var_r31 = arg0 / 60; + arg0 -= var_r31 * 60; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[3], var_r31); + arg0 = 100.0f * (arg0 / 60.0f); + var_r31 = arg0 / 10; + arg0 -= var_r31 * 10; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[5], var_r31); + var_r31 = arg0; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[6], var_r31); +} + +void fn_1_2704(void) { + M427DllStruct2* var_r31; + + var_r31 = lbl_1_bss_40; + var_r31->unk8C = 0; +} + +void fn_1_272C(void) { + M427DllStruct2* var_r31; + s32 temp_r30; + + var_r31 = lbl_1_bss_40; + temp_r30 = var_r31->unkC; + espTPLvlSet(temp_r30, 0.5); + espColorSet(temp_r30, 0, 0, 0); +} + +void fn_1_2790(void) { + omObjData* var_r30; + s32 var_r31; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, -1.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + Hu3DCameraCreate(4); + Hu3DCameraPerspectiveSet(4, -1.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(4, 0.0f, 0.0f, 576.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(4, 0, 0, 0x280, 0x1E0); + var_r30 = lbl_1_bss_48 = omAddObjEx(lbl_1_bss_8C, 0x7FDA, 0, 0, -1, omOutViewMulti); + var_r30->work[0] = 3; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0[0].rot.x; + CRotM[var_r31].y = lbl_1_data_0[0].rot.y; + CRotM[var_r31].z = lbl_1_data_0[0].rot.z; + CenterM[var_r31].x = lbl_1_data_0[0].cen.x; + CenterM[var_r31].y = lbl_1_data_0[0].cen.y; + CenterM[var_r31].z = lbl_1_data_0[0].cen.z; + CZoomM[var_r31] = lbl_1_data_0[0].zoom; + } + lbl_1_bss_44 = 0; + omAddObjEx(lbl_1_bss_8C, 0x3F, 0, 0, -1, fn_1_2B20); +} + +void fn_1_2B20(omObjData* object) {} + +void fn_1_2B24(void) {} + +void fn_1_2B28(void) { + s32 var_r31; + + Hu3DCameraPerspectiveSet(1, 45.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(4, 45.0f, 100.0f, 50000.0f, 1.2f); + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0[2].rot.x; + CRotM[var_r31].y = lbl_1_data_0[2].rot.y; + CRotM[var_r31].z = lbl_1_data_0[2].rot.z; + CenterM[var_r31].x = lbl_1_data_0[2].cen.x; + CenterM[var_r31].y = lbl_1_data_0[2].cen.y; + CenterM[var_r31].z = lbl_1_data_0[2].cen.z; + CZoomM[var_r31] = lbl_1_data_0[2].zoom; + } +} + +void fn_1_2CE8(f32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[2].rot.x, lbl_1_data_0->rot.x); + CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[2].rot.y, lbl_1_data_0->rot.z); + CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[2].rot.z, lbl_1_data_0->rot.z); + CenterM[var_r31].x = lbl_1_data_0[2].cen.x + (arg0 * (lbl_1_data_0->cen.x - lbl_1_data_0[2].cen.x)); + CenterM[var_r31].y = lbl_1_data_0[2].cen.y + (arg0 * (lbl_1_data_0->cen.y - lbl_1_data_0[2].cen.y)); + CenterM[var_r31].z = lbl_1_data_0[2].cen.z + (arg0 * (lbl_1_data_0->cen.z - lbl_1_data_0[2].cen.z)); + CZoomM[var_r31] = lbl_1_data_0[2].zoom + (arg0 * (lbl_1_data_0->zoom - lbl_1_data_0[2].zoom)); + } +} + +void fn_1_2EE0(void) { + Hu3DCameraPerspectiveSet(1, 45.0f, 700.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 700.0f, 50000.0f, 0.6f); +} + +void fn_1_2F6C(f32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[1].rot.x, lbl_1_data_0[3].rot.x); + CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[1].rot.y, lbl_1_data_0[3].rot.y); + CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[1].rot.z, lbl_1_data_0[3].rot.z); + CenterM[var_r31].x = lbl_1_data_0[1].cen.x + (arg0 * (lbl_1_data_0[3].cen.x - lbl_1_data_0[1].cen.x)); + CenterM[var_r31].y = lbl_1_data_0[1].cen.y + (arg0 * (lbl_1_data_0[3].cen.y - lbl_1_data_0[1].cen.y)); + CenterM[var_r31].z = lbl_1_data_0[1].cen.z + (arg0 * (lbl_1_data_0[3].cen.z - lbl_1_data_0[1].cen.z)); + CZoomM[var_r31] = lbl_1_data_0[1].zoom + (arg0 * (lbl_1_data_0[3].zoom - lbl_1_data_0[1].zoom)); + } +} + +void fn_1_3164(void) { + lbl_1_bss_48->work[0] = 1; + Hu3DCameraKill(2); + Hu3DCameraKill(4); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + CRotM->x = lbl_1_data_0[1].rot.x; + CRotM->y = lbl_1_data_0[1].rot.y; + CRotM->z = lbl_1_data_0[1].rot.z; + CenterM->x = lbl_1_data_0[1].cen.x; + CenterM->y = lbl_1_data_0[1].cen.y; + CenterM->z = lbl_1_data_0[1].cen.z; + *CZoomM = lbl_1_data_0[1].zoom; +} + +s32 fn_1_32EC(void) { + return 0; +} diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c new file mode 100644 index 00000000..fa191ed6 --- /dev/null +++ b/src/REL/m427Dll/map.c @@ -0,0 +1,3157 @@ +#include "REL/m427Dll.h" + +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/pad.h" +#include "ext_math.h" +#include "game/animdata.h" +#include "game/audio.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +extern s32 rand8(void); +extern LightData Hu3DLocalLight[0x20]; + +#define FABS(value) ((value < 0) ? -(value) : (value)) + +typedef struct M427DllStruct2 { + s32 unk0[3]; + s32 unkC; + s32 unk10; + s32 unk14[7]; + s32 unk30[7]; + HsfVector2f unk4C[7]; + f32 unk84; + f32 unk88; + s32 unk8C; + f32 unk90; + f32 unk94; + f32 unk98; + s32 unk9C; + s32 unkA0; +} M427DllStruct2; // sizeof 0xA4 + +typedef struct M427DllStruct3 { + Vec rot; + Vec cen; + f32 zoom; +} M427DllStruct3; // sizeof 0x1C + +typedef struct M427DllMapStruct { + u8 unk0; + char unk_1; + s16 unk2; + s16 unk4; + char unk_6[0x2]; + AnimData *unk8; + Vec unkC; + Vec unk18; + Vec unk24; + Vec unk30; + Vec2f unk3C; + Vec2f unk44; + Vec2f unk4C; + Vec2f unk54; + Vec2f unk5C[4]; + GXColor unk7C; + void *unk80; + s32 unk84; + float unk88; + float unk8C; + float unk90; + float unk94; +} M427DllMapStruct; // sizeof 0x98 + +typedef struct M427DllMapStruct2 { + s8 unk0; + s16 unk2; + s16 unk4; +} M427DllMapStruct2; // sizeof 0x6 + +typedef struct M427DllMapSubstruct { + s16 unk0; + Vec unk4; +} M427DllMapSubstruct; // sizeof 0x10 + +typedef struct M427DllMapSubstruct2 { + s16 unk0; + Vec unk4; + s16 unk10[2]; + s16 unk14[4]; +} M427DllMapSubstruct2; // sizeof 0x1C + +typedef struct M427DllMapSubstruct7 { + s16 unk0; + s32 unk4; + void *unk8; +} M427DllMapSubstruct7; // sizeof 0xC + +typedef struct M427DllMapUNKB8 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + u8 unk8; + s16 unkA; + float unkC; + float unk_10; + float unk_14; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + float unk20; + float unk24; + float unk28; + float unk2C; +} M427DllMapUNKB8; // sizeof 0x30 + +typedef struct M427DllMapUNK17E { + s16 unk0; + s16 unk2; +} M427DllMapUNK17E; // sizeof 0x4 + +typedef struct M427DllMapSubstruct3Sub { + s16 unk0; + void *unk4; + u32 unk8; +} M427DllMapSubstruct3Sub; // sizeof 0xC + +typedef struct M427DllMapSubstruct3 { + s16 unk0; + s16 unk2[11]; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + s16 unk20; + char unk_22[2]; + float unk24[4]; + s16 unk34[4]; + s16 unk3C[4]; + s16 unk44[0xB]; + s16 unk5A; + s16 unk5C; + char unk_5E[2]; + Vec unk_60; + Vec unk_6C; + Vec unk78; + Vec unk84; + f32 unk90; + M427DllMapSubstruct3Sub unk94; + char unk_A0[0xC]; + struct M427DllMapStruct6 *unkAC; + s16 unkB0[1]; + char unk_B2[0x6]; + M427DllMapUNKB8 unkB8[2][2]; + s16 unk178[3]; + M427DllMapUNK17E unk17E[2][2]; + s16 unk18E[2]; + char unk194[4]; +} M427DllMapSubstruct3; // sizeof 0x198 + +typedef struct M427DllMapStruct3Sub { + AnimData *unk_00; + AnimData *unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; +} M427DllMapStruct3Sub; // sizeof 0x18 + +typedef struct M427DllMapStruct3 { + u8 unk0; + M427DllMapSubstruct3 unk4[2]; + M427DllMapStruct3Sub unk334; + M427DllMapSubstruct2 unk34C[3]; + M427DllMapSubstruct unk3A0[5]; +} M427DllMapStruct3; // sizeof 0x3F0 + +typedef struct M427DllMapSubstruct5 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + Vec unk8; + char unk14[0x8]; +} M427DllMapSubstruct5; // sizeof 0x1C + +typedef struct M427DllMapStruct4 { + s16 unk0; + Vec *unk4; + Vec2f *unk8; + Vec *unkC; + GXColor *unk10; + s16 unk14; + s16 unk16; + s16 unk18; + M427DllMapSubstruct5 *unk1C; + void *unk20; + u32 unk24; + void *unk28; + u32 unk2C; + void *unk30; + u32 unk34; + f32 unk38; + f32 unk3C; + f32 unk40; + f32 unk44; + s16 unk48[1]; + s16 unk4A; +} M427DllMapStruct4; // sizeof 0x4C + +typedef struct M427DllMapStruct5 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; +} M427DllMapStruct5; // sizeof 0x14 + +typedef struct M427DllMapStruct6 { + s16 unk_00; + Vec *unk_04; + Vec *unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + AnimData *unk_28; + Vec *unk_2C; + Vec2f *unk_30; + Vec *unk_34; + s16 unk_38; + s16 unk_3A; + s16 unk_3C; + char pad_3E[2]; + void *unk_40; + u32 unk_44; + M427DllMapSubstruct5 *unk_48; + float unk_4C; + float unk_50; + float unk_54; + float unk_58; + float unk_5C; + /* 0x60 */ float unk_60; +} M427DllMapStruct6; /* size = 0x64, stored in unk_120 */ + +typedef struct M427DllMapSubstruct6 { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ char pad_0C[0xC]; /* maybe part of unk_08[4]? */ + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ s16 unk_34; + /* 0x36 */ s16 unk_36; + /* 0x38 */ s16 unk_38; + /* 0x3A */ char pad_3A[2]; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s16 unk_40; + /* 0x42 */ char pad_42[2]; + /* 0x44 */ float unk_44; + /* 0x48 */ Vec unk_48; + /* 0x54 */ Vec unk_54; + /* 0x60 */ s16 unk_60; + /* 0x62 */ s8 unk_62; + /* 0x63 */ char pad_63[1]; +} M427DllMapSubstruct6; // sizeof 0x64 + +typedef void (*M427DllHook)(ModelData *model, struct M427DllMapStruct7 *particle, Mtx matrix); + +typedef struct M427DllMapStruct7 { + /* 0x00 */ s16 unk_00; + /* 0x02 */ char pad_02[2]; + /* 0x04 */ u32 unk_04; + /* 0x08 */ u8 unk_08; + /* 0x09 */ char pad_09[3]; /* maybe part of unk_08[4]? */ + /* 0x0C */ M427DllHook unk_0C; + /* 0x10 */ AnimData *unk_10; + /* 0x14 */ s16 unk_14; + /* 0x16 */ char pad_16[2]; + /* 0x18 */ M427DllMapSubstruct6 *unk_18; + /* 0x1C */ Vec *unk_1C; + /* 0x20 */ Vec2f *unk_20; + /* 0x24 */ GXColor *unk_24; + /* 0x28 */ void *unk_28; + /* 0x2C */ Vec unk_2C; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ float unk_40; + /* 0x44 */ float unk_44; + /* 0x48 */ float unk_48; + /* 0x4C */ float unk_4C; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ Vec2f *unk_5C; + /* 0x60 */ float unk_60; + /* 0x64 */ float unk_64; +} M427DllMapStruct7; /* size = 0x68, stored in unk_120 */ + +GXColor lbl_1_data_E8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +omObjData *lbl_1_bss_548; +M427DllMapStruct3 lbl_1_bss_158; +M427DllMapStruct2 lbl_1_bss_F8[0x10]; +AnimData *lbl_1_bss_F4; +M427DllMapStruct *lbl_1_bss_F0; +s16 lbl_1_bss_EC[2]; +s16 lbl_1_bss_E8[2]; +M427DllMapStruct5 *lbl_1_bss_E4; +M427DllMapStruct4 lbl_1_bss_98; +f32 lbl_1_bss_94; +s8 lbl_1_bss_91; +s8 lbl_1_bss_90; + +void fn_1_372C(void); +void fn_1_4218(omObjData *object); +void fn_1_44F4(f32, f32, f32, f32, f32); +void fn_1_48EC(ModelData *model, Mtx matrix); +void fn_1_4D7C(ModelData *model, Mtx matrix); +void fn_1_50A0(ModelData *model, Mtx matrix); +void fn_1_510C(s32, s16, s16); +void fn_1_558C(M427DllMapStruct4 *); +void fn_1_618C(ModelData *model, Mtx matrix); +void fn_1_6760(omObjData *object); +void fn_1_C2C8(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_D22C(ModelData *model, struct M427DllMapStruct7 *arg1, Mtx matrix); +s16 fn_1_D63C(AnimData *arg0, s16 arg1, float arg8, s16 arg2, s16 arg3); +void fn_1_DB80(s16); +void fn_1_DC64(s16, M427DllHook); +void fn_1_DC9C(s16, u8); + +void fn_1_72E4(omObjData *arg0); +void fn_1_73BC(void); +void fn_1_794C(M427DllMapSubstruct3 *arg0, s16 arg1); +void fn_1_7C34(void); +void fn_1_7E60(s16 arg0, M427DllMapSubstruct3 *arg1); +void fn_1_7F38(void); +void fn_1_85D4(s16 arg0, M427DllMapSubstruct3 *arg1); +void fn_1_8768(M427DllMapSubstruct3 *arg0, M427DllMapUNKB8 *arg1, s16 arg2, float arg8, float arg9); +void fn_1_8E1C(u8 arg0, M427DllMapSubstruct3 *arg1, M427DllMapUNKB8 *arg2); +void fn_1_8F90(omObjData *object); +void fn_1_9240(void); +void fn_1_9318(s16 *arg0, s16 arg1); +void fn_1_93EC(s32 arg0, s32 arg1, float arg8, float arg9, float argA, float argB); +s16 fn_1_95E8(s32 arg0, s16 arg1, s16 arg2, float arg8, float arg9, float argA, float argB, float argC); +void fn_1_9958(s16 arg0, u8 arg1); +void fn_1_999C(s16 arg0, u8 arg1); +void fn_1_99E4(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4); +void fn_1_9A2C(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9AA0(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9B14(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9B88(ModelData *model, Mtx matrix); +void fn_1_A148(ModelData *model, Mtx matrix); +s16 fn_1_A1F4(s32 arg0, s16 arg1, s16 arg2, s16 arg3, float arg8, Vec *arg4, Vec *arg5); +void fn_1_A7F8(M427DllMapStruct6 *arg0); +void fn_1_B194(M427DllMapStruct6 *arg0, float arg8, Vec *arg1); +void fn_1_B3CC(ModelData *model, Mtx matrix); +void fn_1_C154(ModelData *model, Mtx matrix); +void fn_1_C200(ModelData *model, Mtx matrix); +void fn_1_C2AC(Vec *arg0, float arg8, float arg9, float argA); +void fn_1_C2BC(Vec2f *arg0, float arg8, float arg9); +s16 fn_1_C41C(float arg8, float arg9, float argA, float argB, float argC, float argD, u8 arg0, u8 arg1, u8 arg2); +void fn_1_C528(s16 arg0, s16 arg1, float arg8, float arg9, float argA, float argB, float argC, float argD, u8 arg2, u8 arg3, u8 arg4); +void fn_1_C68C(LightData *arg0, Vec *arg1, Vec *arg2, GXColor *arg3); +void fn_1_C76C(u8 arg0, float arg8, float arg9, float argA, s16 arg1, float argB, float argC, s16 arg2); +s16 fn_1_D430(float arg8, float arg9, float argA, s16 arg0); +M427DllMapSubstruct6 *fn_1_D4FC(s16 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor *arg3); +M427DllMapSubstruct6 *fn_1_DC0C(s16 arg0, s16 arg1); +void fn_1_DCD4(ModelData *model, Mtx matrix); +void fn_1_E2B0(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9); +void fn_1_E37C(Vec2f *arg0, Vec2f *arg1, s16 arg2, float arg8, float arg9); +void fn_1_E420(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3); + +void fn_1_32F4(Process *arg0) +{ + s16 var_r31; + AnimData *temp_r30; + s32 var_r29; + s32 var_r28; + + lbl_1_bss_158.unk0 = 0; + lbl_1_bss_548 = omAddObjEx(arg0, 0x7F, 0, 0, -1, fn_1_6760); + lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); + + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + lbl_1_bss_F0[var_r31].unk2 = -1; + } + temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_EC[var_r31] = fn_1_D63C(temp_r30, 0x200, 80.0f, 0x40, 0x40); + fn_1_DC64(lbl_1_bss_EC[var_r31], fn_1_D22C); + fn_1_DC9C(lbl_1_bss_EC[var_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_EC[var_r31], 7); + if (var_r31 == 0) { + var_r29 = 1; + } + else { + var_r29 = 2; + } + Hu3DModelCameraSet(lbl_1_bss_EC[var_r31], var_r29); + } + temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A001A, MEMORY_DEFAULT_NUM)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_E8[var_r31] = fn_1_D63C(temp_r30, 4, 120.0f, 0, 0); + fn_1_DC9C(lbl_1_bss_E8[var_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_E8[var_r31], 7); + if (var_r31 == 0) { + var_r28 = 1; + } + else { + var_r28 = 2; + } + Hu3DModelCameraSet(lbl_1_bss_E8[var_r31], var_r28); + } + fn_1_372C(); + + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + lbl_1_bss_F8[var_r31].unk0 = -1; + lbl_1_bss_F8[var_r31].unk2 = Hu3DModelCreateFile(0x3A0012); + Hu3DModelAttrSet(lbl_1_bss_F8[var_r31].unk2, 1); + Hu3DModelScaleSet(lbl_1_bss_F8[var_r31].unk2, 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(lbl_1_bss_F8[var_r31].unk2, 4); + Hu3DMotionSpeedSet(lbl_1_bss_F8[var_r31].unk2, 2.0f); + lbl_1_bss_F8[var_r31].unk4 = Hu3DAnimCreate(HuDataReadNum(0x3A001B, MEMORY_DEFAULT_NUM), lbl_1_bss_F8[var_r31].unk2, "db91"); + Hu3DAnimSpeedSet(lbl_1_bss_F8[var_r31].unk4, 2.0f); + } +} + +void fn_1_372C(void) +{ + M427DllMapSubstruct *var_r29 = &lbl_1_bss_158.unk3A0[0]; + M427DllMapSubstruct2 *var_r30 = &lbl_1_bss_158.unk34C[0]; + s16 sp1A[5] = { 0, 0, 1, 1, 0 }; + Vec sp60[5] = { { -700.0f, -150.0f, -7000.0f }, { 0.0f, -300.0f, -12000.0f }, { 800.0f, -350.0f, -12700.0f }, { 600.0f, -350.0f, -13700.0f }, + { 825.0f, -450.0f, -15000.0f } }; + s16 sp8[3] = { 1, 1, 0 }; + s16 spE[3][2] = { { 4, 5 }, { 8, -1 }, { 9, -1 } }; + s16 sp24[3][4] = { { 180, 120, 60, 60 }, { 90, 180, 60, 60 }, { 90, 180, 60, 60 } }; + Vec sp3C[3] = { -350.0f, -300.0f, -10000.0f, -700.0f, -600.0f, -17000.0f, 700.0f, -600.0f, -19000.0f }; + s16 var_r28; + s16 var_r31; + + for (var_r31 = 0; var_r31 < 5; var_r31++, var_r29++) { + var_r29->unk0 = sp1A[var_r31]; + var_r29->unk4.x = sp60[var_r31].x; + var_r29->unk4.y = sp60[var_r31].y; + var_r29->unk4.z = sp60[var_r31].z; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++, var_r30++) { + var_r30->unk0 = sp8[var_r31]; + var_r30->unk4.x = sp3C[var_r31].x; + var_r30->unk4.y = sp3C[var_r31].y; + var_r30->unk4.z = sp3C[var_r31].z; + var_r30->unk10[0] = spE[var_r31][0]; + var_r30->unk10[1] = spE[var_r31][1]; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r30->unk14[var_r28] = sp24[var_r31][var_r28]; + } + } +} + +void fn_1_3A88(void) +{ + M427DllMapStruct *sp8; + s16 var_r30; + M427DllMapSubstruct3 *var_r31; + + sp8 = lbl_1_bss_F0; + HuSprAnimKill(lbl_1_bss_158.unk334.unk_00); + HuSprAnimKill(lbl_1_bss_158.unk334.unk_04); + + for (var_r30 = 0, var_r31 = &lbl_1_bss_158.unk4[0]; var_r30 < 2; var_r30++, var_r31++) { + if (var_r31->unk94.unk4) { + HuMemDirectFree(var_r31->unk94.unk4); + } + } +} + +void fn_1_3B20(s8 arg0, s16 arg1) +{ + M427DllMapStruct2 *var_r31 = &lbl_1_bss_F8[0]; + M427DllMapSubstruct3 *temp_r30 = &lbl_1_bss_158.unk4[arg1]; + Vec sp54[4] = { { 110.0f, -20.0f, 0.0f }, { -110.0f, -20.0f, 0.0f }, { 110.0f, -20.0f, 190.0f }, { -110.0f, -20.0f, 190.0f } }; + Mtx sp24; + f32 sp14[4] = { 135.0f, 225.0f, 45.0f, 315.0f }; + Vec sp8; + f32 temp_f31; + s16 var_r29; + s32 var_r27; + + for (var_r29 = 0; var_r29 < 0x10; var_r29++, var_r31++) { + if (var_r31->unk0 == -1) + break; + } + if (var_r29 != 0x10) { + var_r31->unk0 = arg0; + temp_f31 = temp_r30->unk90; + MTXRotRad(sp24, 0x59, MTXDegToRad(temp_f31)); + MTXMultVec(sp24, &sp54[arg0], &sp8); + sp8.x += temp_r30->unk84.x; + sp8.y += temp_r30->unk84.y; + sp8.z += temp_r30->unk84.z; + Hu3DModelAttrReset(var_r31->unk2, 1); + if (arg1 == 0) { + var_r27 = 1; + } + else { + var_r27 = 2; + } + Hu3DModelCameraSet(var_r31->unk2, var_r27); + Hu3DModelPosSet(var_r31->unk2, sp8.x, sp8.y, sp8.z); + Hu3DModelRotSet(var_r31->unk2, 0.0f, temp_f31 + sp14[arg0], 0.0f); + Hu3DMotionTimeSet(var_r31->unk2, 0.0f); + if (arg0 < 2) { + Hu3DModelAmbSet(var_r31->unk2, 1.0f, 1.0f, 1.0f); + } + else { + Hu3DModelAmbSet(var_r31->unk2, 0.5f, 0.5f, 0.5f); + } + Hu3DAnimBankSet(var_r31->unk4, 0); + } +} + +void fn_1_3DBC(void) +{ + M427DllMapStruct2 *var_r31; + s16 var_r30; + f32 temp_f31; + + var_r31 = &lbl_1_bss_F8[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 != -1) { + temp_f31 = Hu3DMotionMaxTimeGet(var_r31->unk2); + if (Hu3DMotionTimeGet(var_r31->unk2) >= temp_f31) { + var_r31->unk0 = -1; + Hu3DModelAttrSet(var_r31->unk2, 1U); + } + } + } +} + +void fn_1_3E58(omObjData *arg0) +{ + s32 sp8[8]; + M427DllMapStruct *var_r26; + M427DllMapSubstruct3 *var_r31; + ModelData *temp_r25; + s16 var_r30; + M427DllMapStruct4 *var_r29; + s16 var_r28; + s16 var_r27; + + var_r29 = &lbl_1_bss_98; + for (var_r28 = 0, var_r31 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r27 = fn_1_10FE8(var_r31->unk0, &sp8[0]); + + for (var_r30 = 0; var_r30 < var_r27; var_r30++) { + temp_r25 = &Hu3DData[sp8[var_r30]]; + temp_r25->unk_38[4] = temp_r25->unk_38[5] = temp_r25->unk_38[6] = temp_r25->unk_38[7] = -1; + } + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + Hu3DModelKill(var_r31->unk17E[var_r30][var_r27].unk2); + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + Hu3DModelKill(var_r31->unkB8[var_r30][var_r27].unk2); + } + } + HuSprAnimKill(var_r31->unkAC->unk_28); + Hu3DModelKill(var_r31->unk1A); + Hu3DModelKill(var_r31->unk1C); + HuMemDirectFree(var_r31->unk94.unk4); + var_r31->unk94.unk4 = NULL; + fn_1_DB80(lbl_1_bss_EC[var_r28]); + fn_1_DB80(lbl_1_bss_E8[var_r28]); + + for (var_r30 = 0; var_r30 < 11; var_r30++) { + Hu3DModelKill(var_r31->unk2[var_r30]); + } + Hu3DModelKill(var_r31->unk1E); + Hu3DModelKill(var_r31->unk20); + } + for (var_r28 = 0, var_r26 = lbl_1_bss_F0; var_r28 < 0x10; var_r28++, var_r26++) { + if (var_r26->unk2 != -1) { + Hu3DModelKill(var_r26->unk4); + HuSprAnimKill(var_r26->unk8); + HuMemDirectFree(var_r26->unk80); + } + } + HuMemDirectFree(lbl_1_bss_F0); + Hu3DFogClear(); + var_r30 = Hu3DModelCreateFile(0x3A0011); + Hu3DModelCameraSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + var_r29->unk0 = Hu3DModelCreateFile(0x3A0010); + Hu3DModelCameraSet(var_r29->unk0, 1); + Hu3DModelLayerSet(var_r29->unk0, 3); + Hu3DModelPosSet(var_r29->unk0, 0.0f, 0.0f, 0.0f); + lbl_1_bss_158.unk0 = 1; + var_r29->unk48[0] = 0; + var_r29->unk4A = 0; + var_r29->unk4 = 0; + lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + lbl_1_bss_E4[var_r28].unk10 = -1.0f; + } + fn_1_510C(0, 0x32, 0x32); + arg0->func = fn_1_4218; +} + +void fn_1_4218(omObjData *arg0) +{ + f32 var_f31; + f32 temp_f30; + f32 var_f29; + M427DllMapStruct5 *var_r31; + s16 var_r30; + M427DllMapStruct4 *var_r29; + s32 temp_r28; + + var_r29 = &lbl_1_bss_98; + var_r31 = &lbl_1_bss_E4[0]; + for (var_r30 = 0; var_r30 < 1; var_r30++) { + if (--var_r29->unk48[var_r30] < 0.0f) { + var_r29->unk48[var_r30] = (f32)((((rand8() << 8) | rand8()) % 241) + 0x78); + var_f31 = ((((rand8() << 8) | rand8()) % 4001) - 0x7D0); + temp_f30 = -3000.0f; + var_f29 = ((((rand8() << 8) | rand8()) % 21) + 0xA); + fn_1_44F4(var_f31, 0.0f, temp_f30, var_f29, 0.0f); + } + } + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f != var_r31->unk10) { + var_r31->unkC += 20.0f; + var_r31->unk10 -= 0.2f; + if (var_r31->unk10 < 0.0f) { + var_r31->unk10 = -1.0f; + } + } + } +} + +void fn_1_44F4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + M427DllMapStruct5 *var_r31; + s16 var_r30; + + var_r31 = &lbl_1_bss_E4[0]; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f == var_r31->unk10) + break; + } + if (var_r30 != 0x10) { + var_r31->unk0 = arg0; + var_r31->unk4 = arg1; + var_r31->unk8 = arg2; + var_r31->unkC = arg4; + var_r31->unk10 = arg3; + } +} + +f32 lbl_1_data_F4 = 450.0f; + +f32 fn_1_4570(Vec *arg0) +{ + f32 temp_f31; + f32 temp_f30; + f32 var_f28; + f32 var_f27; + f32 var_f23; + M427DllMapStruct5 *var_r31; + s16 var_r30; + + var_r31 = &lbl_1_bss_E4[0]; + var_f27 = 0.0f; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f != var_r31->unk10) { + temp_f31 = arg0->x - var_r31->unk0; + temp_f30 = arg0->z - var_r31->unk8; + if (FABS(temp_f31) > (var_r31->unkC + lbl_1_data_F4)) { + if (FABS(temp_f30) > (var_r31->unkC + lbl_1_data_F4)) { + continue; + } + } + var_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + var_f23 = FABS(var_f28 - var_r31->unkC); + var_f28 = 1.0f - (var_f23 / lbl_1_data_F4); + if (var_f28 < 0.0f) { + var_f28 = 0.0f; + } + var_f27 += var_r31->unk10 * sind(90.0f * var_f28); + } + } + return var_f27; +} + +void fn_1_48EC(ModelData *arg0, Mtx arg1) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + f32 sp8; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + + sp3C.x = CenterM->x; + sp3C.y = CenterM->y; + sp3C.z = CenterM->z; + sp30.x = CRotM->x; + sp30.y = CRotM->y; + sp30.z = CRotM->z; + temp_f29 = *CZoomM; + CenterM->x = -CenterM->x; + CenterM->y = -CenterM->y; + CenterM->z = CenterM->z; + CRotM->x = 180.0f + CRotM->x; + CRotM->y = 180.0f + -CRotM->y; + CRotM->z = CRotM->z; + *CZoomM = *CZoomM; + temp_f31 = CRotM->x; + temp_f30 = CRotM->y; + sp8 = CRotM->z; + sp24.x = (CenterM->x + (*CZoomM * (sind(temp_f30) * cosd(temp_f31)))); + sp24.y = (CenterM->y + (*CZoomM * -sind(temp_f31))); + sp24.z = (CenterM->z + (*CZoomM * (cosd(temp_f30) * cosd(temp_f31)))); + spC.x = CenterM->x; + spC.y = CenterM->y; + spC.z = CenterM->z; + sp18.x = (sind(temp_f30) * sind(temp_f31)); + sp18.y = cosd(temp_f31); + sp18.z = (cosd(temp_f30) * sind(temp_f31)); + Hu3DCameraPosSetV(1, &sp24, &sp18, &spC); + CenterM->x = sp3C.x; + CenterM->y = sp3C.y; + CenterM->z = sp3C.z; + CRotM->x = sp30.x; + CRotM->y = sp30.y; + CRotM->z = sp30.z; + *CZoomM = temp_f29; +} + +void fn_1_4D7C(ModelData *arg0, Mtx arg1) +{ + Vec sp24; + Vec sp18; + Vec spC; + f32 sp8; + f32 temp_f30; + f32 temp_f31; + + temp_f31 = CRotM->x; + temp_f30 = CRotM->y; + sp8 = CRotM->z; + sp24.x = CenterM->x + sind(temp_f30) * cosd(temp_f31) * *CZoomM; + sp24.y = CenterM->y + *CZoomM * -sind(temp_f31); + sp24.z = CenterM->z + cosd(temp_f30) * cosd(temp_f31) * *CZoomM; + sp18.x = CenterM->x; + sp18.y = CenterM->y; + sp18.z = CenterM->z; + spC.x = sind(temp_f30) * sind(temp_f31); + spC.y = cosd(temp_f31); + spC.z = cosd(temp_f30) * sind(temp_f31); + Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); + if (lbl_1_bss_98.unk30) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(lbl_1_bss_98.unk30, 1); + } +} + +void fn_1_50A0(ModelData *arg0, Mtx arg1) +{ + if (lbl_1_bss_98.unk28) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(lbl_1_bss_98.unk28, 0); + } +} + +void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) +{ + s16 sp12; + s16 sp10; + s16 spE; + s16 spC; + s16 spA; + s16 sp8; + M427DllMapStruct4 *var_r31; + M427DllMapSubstruct5 *var_r30; + s16 var_r29; + ModelData *temp_r28; + s16 var_r27; + M427DllMapSubstruct5 *var_r26; + M427DllMapSubstruct5 *var_r23; + + var_r31 = &lbl_1_bss_98; + var_r29 = Hu3DHookFuncCreate(fn_1_618C); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 5); + temp_r28 = &Hu3DData[var_r29]; + var_r29 = Hu3DHookFuncCreate(fn_1_48EC); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 0); + var_r29 = Hu3DHookFuncCreate(fn_1_4D7C); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 2); + var_r29 = Hu3DHookFuncCreate(fn_1_50A0); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 4); + var_r31->unk38 = var_r31->unk3C = 0.0f; + var_r31->unk34 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r31->unk30 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk34, temp_r28->unk_48); + var_r31->unk2C = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk2C, temp_r28->unk_48); + var_r31->unk16 = arg1 + 1; + var_r31->unk18 = arg2 + 1; + var_r31->unk14 = var_r31->unk16 * var_r31->unk18; + var_r31->unk4 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk8 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec2f), temp_r28->unk_48); + var_r31->unkC = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), temp_r28->unk_48); + var_r30 = var_r31->unk1C; + var_r23 = var_r26 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); + DCFlushRange(var_r26, 0x20000); + GXBeginDisplayList(var_r23, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * arg2 * 4)); + + for (var_r29 = 0; var_r29 < arg2; var_r29++) { + for (var_r27 = 0; var_r27 < arg1; var_r30++, var_r27++) { + var_r30->unk0 = var_r27 + var_r29 * var_r31->unk16; + var_r30->unk2 = (var_r29 * var_r31->unk16) + var_r27 + 1; + var_r30->unk4 = ((var_r29 + 1) * var_r31->unk16) + var_r27 + 1; + var_r30->unk6 = var_r27 + ((var_r29 + 1) * var_r31->unk16); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + fn_1_C2C8(&var_r31->unk4[var_r30->unk0], &var_r31->unk4[var_r30->unk2], &var_r31->unk4[var_r30->unk4], &var_r30->unk8); + } + } + var_r31->unk24 = GXEndDisplayList(); + var_r31->unk20 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk24, temp_r28->unk_48); + memcpy(var_r31->unk20, var_r26, var_r31->unk24); + DCFlushRange(var_r31->unk20, var_r31->unk24); + HuMemDirectFree(var_r26); + fn_1_558C(var_r31); +} + +f32 lbl_1_data_F8 = -1.0f; + +void fn_1_558C(M427DllMapStruct4 *arg0) +{ + Mtx spAC; + Mtx sp7C; + Mtx sp4C; + Vec2f sp44; + Vec2f sp3C; + Vec2f sp34; + Vec2f sp2C; + f32 sp28; + f32 sp24; + f32 sp20; + f32 var_f26; + f32 var_f25; + f32 var_f20; + M427DllMapSubstruct5 *var_r30; + Vec *var_r29; + Vec *var_r28; + s16 var_r27; + M427DllMapStruct5 *var_r26; + Vec2f *var_r25; + s16 var_r24; + CameraData *var_r23; + s16 var_r22; + + var_r23 = &Hu3DCamera[0]; + if (lbl_1_data_F8 == -1.0f) { + lbl_1_bss_94 = 720.0f / arg0->unk16; + lbl_1_data_F8 = 1440.0f / arg0->unk18; + } + if (omPauseChk() == 0) { + arg0->unk40 += 1.0f; + arg0->unk44 += 1.5f; + } + if (arg0->unk40 >= 360.0f) { + arg0->unk40 -= 360.0f; + } + if (arg0->unk44 >= 360.0f) { + arg0->unk44 -= 360.0f; + } + var_r28 = arg0->unk4; + var_r29 = arg0->unkC; + sp3C.x = 2000.0f; + sp3C.y = -2000.0f; + sp44.x = 1000.0f; + sp44.y = -2500.0f; + sp2C.x = sp44.x; + sp2C.y = (sp44.y - sp44.x) / (arg0->unk18 - 1); + var_f25 = arg0->unk44; + + for (var_r27 = 0; var_r27 < arg0->unk18; var_r27++) { + sp34.x = sp3C.x; + sp34.y = (sp3C.y - sp3C.x) / (arg0->unk16 - 1); + var_f26 = arg0->unk40; + + for (var_r24 = 0; var_r24 < arg0->unk16; var_r28++, var_r29++, var_r24++) { + var_r28->x = sp34.x; + var_r28->z = sp2C.x; + sp24 = 5.0 * sind(var_f26) + 10.0 * sind(var_f25); + sp34.x += sp34.y; + var_f26 += lbl_1_bss_94; + if (var_f26 >= 360.0f) { + var_f26 -= 360.0f; + } + var_r28->y = sp24 + fn_1_4570(var_r28); + var_r29->x = var_r29->y = var_r29->z = 0.0f; + } + sp2C.x += sp2C.y; + var_f25 += lbl_1_data_F8; + if (var_f25 >= 360.0f) { + var_f25 -= 360.0f; + } + } + var_r30 = arg0->unk1C; + var_r24 = (arg0->unk16 - 1) * (arg0->unk18 - 1); + + for (var_r27 = 0; var_r27 < var_r24; var_r27++, var_r30++) { + fn_1_C2C8(&arg0->unk4[var_r30->unk0], &arg0->unk4[var_r30->unk2], &arg0->unk4[var_r30->unk4], &var_r30->unk8); + arg0->unkC[var_r30->unk0].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk0].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk0].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk2].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk2].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk2].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk4].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk4].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk4].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk6].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk6].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk6].z += var_r30->unk8.z; + } + + var_r29 = arg0->unkC; + for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r29++) { + var_f20 = sqrtf((var_r29->x * var_r29->x) + (var_r29->y * var_r29->y) + (var_r29->z * var_r29->z)); + var_r29->x /= var_f20; + var_r29->y /= var_f20; + var_r29->z /= var_f20; + } + var_r28 = arg0->unk4; + var_r25 = arg0->unk8; + C_MTXLookAt(spAC, &var_r23->pos, &var_r23->up, &var_r23->target); + GXGetProjectionv(&sp7C[0][0]); + GXGetViewportv(&sp4C[0][0]); + + for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r28++, var_r25++) { + GXProject(var_r28->x, var_r28->y, var_r28->z, spAC, &sp7C[0][0], &sp4C[0][0], &sp28, &sp24, &sp20); + var_r25->x = 0.0015625f * sp28; + var_r25->y = 0.0020833f * sp24; + var_r25->x += 0.05f * arg0->unkC[var_r27].x; + var_r25->y += 0.05f * arg0->unkC[var_r27].z; + arg0->unk10[var_r27].r = 0xFF; + arg0->unk10[var_r27].g = 0xFF; + arg0->unk10[var_r27].b = 0xFF; + arg0->unk10[var_r27].a = 0xFF; + } + DCFlushRangeNoSync(arg0->unk4, arg0->unk14 * 0xC); + DCFlushRangeNoSync(arg0->unkC, arg0->unk14 * 0xC); + DCFlushRangeNoSync(arg0->unk8, arg0->unk14 * 8); + DCFlushRangeNoSync(arg0->unk10, arg0->unk14 * 4); + PPCSync(); +} + +void fn_1_618C(ModelData *arg0, Mtx arg1) +{ + Mtx sp64; + Mtx sp34; + GXTexObj sp14; + GXColor spC; + M427DllMapStruct4 *var_r31 = &lbl_1_bss_98; + M427DllMapStruct3Sub *var_r30 = &lbl_1_bss_158.unk334; + + fn_1_558C(var_r31); + GXLoadPosMtxImm(arg1, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk4, 0xC); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk8, 8); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk10, 4); + GXInitTexObj(&sp14, var_r31->unk30, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + GXInitTexObj(&sp14, var_r31->unk28, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP1); + HuSprTexLoad(var_r30->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(3); + spC.r = 0; + spC.g = 0x10; + spC.b = 0x1E; + spC.a = 0x4C; + GXSetTevColor(GX_TEVREG2, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_C0, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_C1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C2); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP2); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, 1, 0, GX_ITM_0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + MTXScale(sp64, -0.1f, 0.0f, 1.0f); + GXSetIndTexMtx(GX_ITM_0, (f32(*)[3])(sp64), 0); + GXSetNumTexGens(2); + if (omPauseChk() == 0) { + var_r31->unk38 += 0.001f; + var_r31->unk3C += 0.0005f; + } + MTXRotRad(sp64, 0x58, 1.5707964f); + MTXScale(sp34, 0.001f, 0.001f, 0.001f); + MTXConcat(sp64, sp34, sp64); + mtxTransCat(sp64, var_r31->unk38, var_r31->unk3C, 0.0f); + GXLoadTexMtxImm(sp64, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk20, var_r31->unk24); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +s32 lbl_1_data_FC[0xC] = { + 0x3A0000, + 0x3A0001, + 0x3A0002, + 0x3A0003, + 0x3A0004, + 0x3A0005, + 0x3A0006, + 0x3A0007, + 0x3A0008, + 0x3A0009, + 0x3A000A, + 0x3A000B, +}; +s32 lbl_1_data_12C[2] = { 0x3A000C, 0x3A000D }; +s32 lbl_1_data_134[4] = { 0x3A000E, 0x3A000F, 0x3F800000, 0x01000000 }; + +void fn_1_6760(omObjData *object) +{ + s16 sp14[2][0x20]; + s16 sp10[2]; + s16 spC[2]; + s16 sp8[2]; + M427DllMapSubstruct3 *var_r31; + s16 var_r30; + M427DllMapUNKB8 *var_r29; + s16 var_r28; + M427DllMapUNK17E *var_r27; + s16 var_r26; + M427DllMapSubstruct3Sub *var_r25; + M427DllMapStruct3 *var_r24; + u16 var_r23; + + var_r24 = &lbl_1_bss_158; + Hu3DFogSet(3500.0f, 20000.0f, 0, 0, 0); + for (var_r28 = 0, var_r31 = &var_r24->unk4[0]; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unk0 = var_r28; + sp10[var_r28] = 0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31->unk178[var_r30] = 0; + } + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + var_r31->unk2[var_r30] = Hu3DModelCreateFile(lbl_1_data_FC[var_r30]); + var_r31->unk44[var_r30] = -1; + if (var_r30 < 0xA) { + Hu3DModelLayerSet(var_r31->unk2[var_r30], 2); + } + else { + Hu3DModelLayerSet(var_r31->unk2[var_r30], 5); + } + Hu3DModelAmbSet(var_r31->unk2[var_r30], 0.1f, 0.1f, 0.1f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r31->unk2[var_r30], 1); + } + else { + Hu3DModelCameraSet(var_r31->unk2[var_r30], 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r31->unk2[var_r30]; + } + var_r30 = Hu3DHookFuncCreate(fn_1_C154); + var_r31->unk1E = var_r30; + Hu3DModelLayerSet(var_r30, 4); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r30, 1); + } + else { + Hu3DModelCameraSet(var_r30, 2); + } + var_r30 = Hu3DHookFuncCreate(fn_1_C200); + var_r31->unk20 = var_r30; + Hu3DModelLayerSet(var_r30, 6); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r30, 1); + } + else { + Hu3DModelCameraSet(var_r30, 2); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = var_r31->unkB8[var_r30]; + for (var_r26 = 0; var_r26 < 2; var_r26++, var_r29++) { + if ((var_r28 == 0) && (var_r26 == 0)) { + var_r29->unk2 = spC[var_r30] = Hu3DModelCreateFile(lbl_1_data_134[var_r30]); + } + else { + var_r29->unk2 = Hu3DModelLink(spC[var_r30]); + } + Hu3DModelAttrSet(var_r29->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r29->unk2, 2); + Hu3DModelAmbSet(var_r29->unk2, 0.0f, 0.0f, 0.0f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r29->unk2, 1); + } + else { + Hu3DModelCameraSet(var_r29->unk2, 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r29->unk2; + var_r29->unk6 = fn_1_95E8(0x3A0018, var_r28, 0, 0.0f, -400.0f, 700.0f, 800.0f, -5.0f); + fn_1_9958(var_r29->unk6, 1); + fn_1_99E4(var_r29->unk6, 0xFF, 0xFF, 0xFF, 0); + var_r29->unk4 = 2 * var_r30 + 4 + var_r26; + fn_1_C528(var_r29->unk2, var_r29->unk4, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xA0, 0x60); + Hu3DLLightStaticSet(var_r29->unk2, var_r29->unk4, 1); + Hu3DLLightPointSet(var_r29->unk2, var_r29->unk4, 1.0f, 0.6f, 3); + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r27 = var_r31->unk17E[var_r30]; + for (var_r26 = 0; var_r26 < 2; var_r26++, var_r27++) { + if ((var_r28 == 0) && (var_r26 == 0)) { + var_r27->unk2 = sp8[var_r30] = Hu3DModelCreateFile(lbl_1_data_12C[var_r30]); + } + else { + var_r27->unk2 = Hu3DModelLink(sp8[var_r30]); + } + Hu3DModelAttrSet(var_r27->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r27->unk2, 2); + Hu3DModelAmbSet(var_r27->unk2, 0.0f, 0.0f, 0.0f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r27->unk2, 1); + } + else { + Hu3DModelCameraSet(var_r27->unk2, 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r27->unk2; + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk34[var_r30] = fn_1_C41C(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xFF, 0xFF); + var_r31->unk24[var_r30] = -1.0f; + } + } + for (var_r28 = 0, var_r31 = var_r24->unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unk5C = Hu3DLLightCreate(var_r31->unk2[0], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFA, 0xF0, 0xD2); + Hu3DLLightSpotSet(var_r31->unk2[0], var_r31->unk5C, 37.5f, 4); + Hu3DLLightStaticSet(var_r31->unk2[0], var_r31->unk5C, 1); + var_r31->unk78.x = 0.0f; + var_r31->unk78.y = 0.0f; + var_r31->unk78.z = 0.0f; + var_r31->unk84.x = 0.0f; + var_r31->unk84.y = 0.0f; + var_r31->unk84.z = 0.0f; + var_r31->unk90 = 0.0f; + } + fn_1_93EC(0x3A0016, 0x3A0014, 2000.0f, 6000.0f, 4.0f, 9.0f); + for (var_r28 = 0, var_r31 = var_r24->unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unkB0[0] = fn_1_95E8(0x3A0015, var_r28, 0.0f, 0.0f, -900.0f, 500.0f, 700.0f, -10.0f); + var_r25 = &var_r31->unk94; + var_r25->unk0 = var_r28; + var_r25->unk8 = GXGetTexBufferSize(0x140, 0x1E0, 5, 0, 0); + var_r25->unk4 = HuMemDirectMalloc(HEAP_DATA, var_r25->unk8); + var_r30 = Hu3DHookFuncCreate(fn_1_A148); + var_r31->unk1C = var_r30; + Hu3DModelCameraSet(var_r30, var_r28 ? 2 : 1); + Hu3DModelLayerSet(var_r30, 1); + Hu3DData[var_r30].unk_120 = var_r25; + var_r31->unk1A = fn_1_A1F4(0x3A0013, 0xA, 0x1E, var_r28, 6000.0f, lbl_1_bss_554, lbl_1_bss_558); + fn_1_C528(var_r31->unk1A, 1, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xC8, 0xF0, 0xA0); + Hu3DLLightStaticSet(var_r31->unk1A, 1, 1); + Hu3DLLightPointSet(var_r31->unk1A, 1, 125.0f, 0.5f, 3); + fn_1_C528(var_r31->unk1A, 2, 0.0f, -500.0f, -23500.0f, 0.0f, 0.0f, 0.0f, 0xFA, 0xF0, 0xD2); + Hu3DLLightStaticSet(var_r31->unk1A, 2, 1); + Hu3DLLightPointSet(var_r31->unk1A, 2, 800.0f, 0.5f, 3); + sp14[var_r28][sp10[var_r28]++] = var_r31->unk1A; + fn_1_9318(sp14[var_r28], sp10[var_r28]); + } + object->func = fn_1_72E4; +} + +void fn_1_72E4(omObjData *object) +{ + float var_f31; + M427DllMapStruct2 *var_r31; + s16 var_r30; + + if (fn_1_1788() == 7) { + object->func = fn_1_3E58; + } + fn_1_73BC(); + fn_1_7C34(); + fn_1_7F38(); + fn_1_8F90(object); + fn_1_9240(); + for (var_r31 = lbl_1_bss_F8, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 != -1) { + var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk2); + if (Hu3DMotionTimeGet(var_r31->unk2) >= var_f31) { + var_r31->unk0 = -1; + Hu3DModelAttrSet(var_r31->unk2, HU3D_ATTR_DISPOFF); + } + } + } +} + +void fn_1_73BC(void) +{ + float var_f31; + M427DllMapSubstruct3 *var_r31; + M427DllMapSubstruct6 *var_r30; + s16 var_r29; + ModelData *var_r28; + s16 var_r27; + + for (var_r27 = 0, var_r31 = lbl_1_bss_158.unk4; var_r27 < 2; var_r27++, var_r31++) { + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + var_r28 = &Hu3DData[var_r31->unk2[var_r29]]; + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk3C[var_r31->unk44[var_r29]]); + var_f31 = -2000.0f * var_r29; + if (((var_r31->unk84.z - 25000.0f) < var_f31) && ((3000.0f + var_r31->unk84.z) > var_f31)) { + if (var_r31->unk44[var_r29] == -1) { + fn_1_794C(var_r31, var_r29); + var_r28->attr &= 0xFFFFFFFE; + } + else { + if (var_r30) { + var_r30->unk_24 += 5.0f; + if (var_r30->unk_24 >= 360.0f) { + var_r30->unk_24 -= 360.0f; + } + var_r30->unk_48.x = var_r30->unk_48.y = var_r30->unk_48.z = 1.0 + (0.05000000074505806 * sind(var_r30->unk_24)); + } + var_r31->unk24[var_r31->unk44[var_r29]] += 5.0f; + if (var_r31->unk24[var_r31->unk44[var_r29]] >= 360.0f) { + var_r31->unk24[var_r31->unk44[var_r29]] -= 360.0f; + } + var_f31 = 50.0 * sind(var_r31->unk24[var_r31->unk44[var_r29]]); + var_f31 = var_f31; + Hu3DLLightPointSet(var_r31->unk2[var_r29], 1, 400.0f + var_f31, 0.5f, 3); + if (var_r29 == 0) { + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk5A); + if (var_r30->unk_24 >= 360.0f) { + var_r30->unk_24 -= 360.0f; + } + var_r30->unk_48.x = var_r30->unk_48.y = var_r30->unk_48.z = 1.0 + (0.05000000074505806 * sind(var_r30->unk_24)); + var_r31->unk24[1] += 5.0f; + if (var_r31->unk24[1] >= 360.0f) { + var_r31->unk24[1] -= 360.0f; + } + var_f31 = 50.0 * sind(var_r31->unk24[1]); + var_f31 = var_f31; + Hu3DLLightPointSet(var_r31->unk2[var_r29], 2, 400.0f + var_f31, 0.5f, 3); + } + } + } + else { + if (var_r31->unk44[var_r29] != -1) { + if (var_r30) { + var_r30->unk_62 = 0; + } + var_r28->unk_38[1] = -1; + var_r31->unk24[var_r31->unk44[var_r29]] = -1.0f; + var_r31->unk44[var_r29] = -1; + if (var_r29 == 0) { + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk5A); + var_r30->unk_62 = 0; + var_r28->unk_38[2] = -1; + var_r31->unk24[1] = -1.0f; + } + } + var_r28->attr |= 1; + } + } + } +} + +Vec lbl_1_data_144[0xC] = { + { -670.0f, 400.0f, 1750.0f }, + { 930.0f, 400.0f, -1000.0f }, + { -930.0f, 400.0f, -3000.0f }, + { 230.0f, 400.0f, -5000.0f }, + { -1630.0f, 300.0f, -7000.0f }, + { 530.0f, 100.0f, -9000.0f }, + { -530.0f, 100.0f, -11000.0f }, + { 1630.0f, 100.0f, -13000.0f }, + { -230.0f, 0.0f, -15000.0f }, + { 930.0f, -200.0f, -17000.0f }, + { -930.0f, -200.0f, -19000.0f }, + { 930.0f, -200.0f, -21000.0f }, +}; + +void fn_1_794C(M427DllMapSubstruct3 *arg0, s16 arg1) +{ + Vec sp14; + s16 var_r30; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0->unk2[arg1]]; + { + Vec sp8 = { 0.0f, 0.0f, 0.0f }; + if (arg1 != 0xA) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (arg0->unk24[var_r30] == -1.0f) { + break; + } + } + if (var_r30 != 4) { + var_r28->unk_38[1] = arg0->unk34[var_r30]; + arg0->unk24[var_r30] = 0.0f; + arg0->unk44[arg1] = var_r30; + if (var_r28->unk_38[1] != -1) { + sp14.x = lbl_1_data_144[arg1 + 1].x; + sp14.y = lbl_1_data_144[arg1 + 1].y; + sp14.z = lbl_1_data_144[arg1 + 1].z; + Hu3DLLightPointSet(arg0->unk2[arg1], 1, 400.0f, 0.5f, 3); + Hu3DLLightPosSetV(arg0->unk2[arg1], 1, &sp14, &sp8); + } + arg0->unk3C[var_r30] = fn_1_D430(sp14.x, sp14.y, sp14.z, lbl_1_bss_E8[arg0->unk0]); + if (arg1 == 0) { + var_r30 = 1; + var_r28->unk_38[2] = arg0->unk34[var_r30]; + arg0->unk24[var_r30] = 0.0f; + sp14.x = lbl_1_data_144[0].x; + sp14.y = lbl_1_data_144[0].y; + sp14.z = lbl_1_data_144[0].z; + Hu3DLLightPointSet(arg0->unk2[0], 2, 400.0f, 0.5f, 3); + Hu3DLLightPosSetV(arg0->unk2[0], 2, &sp14, &sp8); + arg0->unk5A = fn_1_D430(sp14.x, sp14.y, sp14.z, lbl_1_bss_E8[arg0->unk0]); + } + } + } + } +} + +float lbl_1_data_1D4[2] = { 50.0f, 80.0f }; + +void fn_1_7C34(void) +{ + Vec sp14; + M427DllMapSubstruct3 *var_r31; + ModelData *var_r30; + s16 var_r29; + s16 var_r28; + M427DllMapUNK17E *var_r27; + M427DllMapSubstruct *var_r26; + s16 var_r25; + + for (var_r26 = lbl_1_bss_158.unk3A0, var_r29 = 0; var_r29 < 5; var_r29++, var_r26++) { + for (var_r28 = 0, var_r31 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r31++) { + if ((var_r31->unk18E[var_r29] == 0) && ((var_r31->unk84.z - 7000.0f) < var_r26->unk4.z) + && ((1000.0f + var_r31->unk84.z) > var_r26->unk4.z)) { + fn_1_7E60(var_r29, var_r31); + } + } + } + for (var_r29 = 0, var_r31 = lbl_1_bss_158.unk4; var_r29 < 2; var_r29++, var_r31++) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r27 = var_r31->unk17E[var_r28]; + for (var_r25 = 0; var_r25 < 2; var_r25++, var_r27++) { + var_r30 = &Hu3DData[var_r27->unk2]; + if ((var_r30->attr & 1) == 0) { + if (((var_r31->unk84.z - 7000.0f) > var_r30->pos.z) || ((1000.0f + var_r31->unk84.z) < var_r30->pos.z)) { + var_r30->attr |= 1; + var_r31->unk18E[var_r27->unk0] = 0; + } + else { + sp14.x = var_r30->pos.x; + sp14.z = var_r30->pos.z; + fn_1_15FD0(sp14, lbl_1_data_1D4[var_r28], 0, 1, var_r31->unk0); + } + } + } + } + } +} + +void fn_1_7E60(s16 arg0, M427DllMapSubstruct3 *arg1) +{ + M427DllMapUNK17E *var_r31; + M427DllMapSubstruct *var_r30; + s16 var_r29; + ModelData *var_r28; + + var_r30 = &lbl_1_bss_158.unk3A0[arg0]; + var_r31 = arg1->unk17E[var_r30->unk0]; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r28 = &Hu3DData[var_r31->unk2]; + if ((var_r28->attr & 1) != 0) { + Hu3DModelAttrReset(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(var_r31->unk2, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + var_r31->unk0 = arg0; + arg1->unk18E[arg0] = 1; + return; + } + } +} + +void fn_1_7F38(void) +{ + Vec sp14; + float var_f31; + M427DllMapUNKB8 *var_r31; + M427DllMapSubstruct3 *var_r30; + ModelData *var_r29; + s16 var_r28; + s16 var_r27; + M427DllMapSubstruct2 *var_r26; + s16 var_r25; + s32 var_r24; + s32 var_r23; + + for (var_r26 = lbl_1_bss_158.unk34C, var_r27 = 0; var_r27 < 3; var_r27++, var_r26++) { + for (var_r28 = 0, var_r30 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r30++) { + if ((var_r30->unk178[var_r27] == 0) && ((var_r30->unk84.z - 7000.0f) < var_r26->unk4.z) + && ((1000.0f + var_r30->unk84.z) > var_r26->unk4.z)) { + fn_1_85D4(var_r27, var_r30); + } + } + } + for (var_r27 = 0, var_r30 = lbl_1_bss_158.unk4; var_r27 < 2; var_r27++, var_r30++) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r31 = var_r30->unkB8[var_r28]; + for (var_r25 = 0; var_r25 < 2; var_r25++, var_r31++) { + var_r29 = &Hu3DData[var_r31->unk2]; + if ((var_r29->attr & 1) == 0) { + if (((var_r30->unk84.z - 7000.0f) > var_r29->pos.z) || ((1000.0f + var_r30->unk84.z) < var_r29->pos.z)) { + if (var_r31->unk8 == 0) { + fn_1_8E1C(1, var_r30, var_r31); + fn_1_9958(var_r31->unk6, 1); + var_r29->attr |= 1; + var_r31->unk8 = 0x63; + var_r30->unk178[var_r31->unk0] = 0; + } + else if (var_r31->unk8 != 2) { + var_r31->unkA = 0; + var_r31->unk8 = 2; + } + } + switch (var_r31->unk8) { + case 0: + if (++var_r31->unkA > var_r31->unk18) { + var_r31->unkA = 0; + var_r31->unkC = 0.0f; + var_r31->unk20 = ((rand8() << 8) | rand8()) % 361; + var_r31->unk24 = ((rand8() << 8) | rand8()) % 361; + var_r31->unk28 = 1.0f; + var_r31->unk2C = 0.0f; + var_r31->unk8++; + } + break; + case 1: + if (++var_r31->unkA > var_r31->unk1E) { + var_r31->unkA = 0; + var_r31->unk8++; + if (fn_1_1788() <= 4) { + if (var_r27 == 0) { + var_r24 = HuAudFXPlay(0x65A); + } + else { + var_r24 = HuAudFXPlay(0x65B); + } + var_r23 = var_r27 * 4 + var_r28 * 2 + var_r25; + lbl_1_bss_0[var_r23].unk0 = var_r24; + lbl_1_bss_0[var_r23].unk4 = 0x78; + } + } + var_r31->unk_14 = 0.1f; + fn_1_8768(var_r30, var_r31, var_r28, 0.2f, var_r31->unk_14); + break; + case 2: + if (++var_r31->unkA > var_r31->unk1A) { + var_r31->unkA = 0; + var_r31->unk8++; + } + if (var_r31->unk_14 < 1.0f) { + var_r31->unk_14 += 0.05f; + } + if (var_r31->unk_14 > 1.0f) { + var_r31->unk_14 = 1.0f; + } + var_r31->unk_10 += 40.0f; + var_r31->unkC += 0.05f; + fn_1_8768(var_r30, var_r31, var_r28, 1.0f, var_r31->unk_14); + break; + case 3: + var_r31->unkA++; + var_f31 = 1.0f - ((float)var_r31->unkA / var_r31->unk1C); + if (var_r31->unkA > var_r31->unk1C) { + var_r31->unkA = 0; + var_f31 = 0.0f; + var_r31->unk8 = 0; + } + var_r31->unk_10 = 400.0 * sind((90.0f * var_f31)); + var_r31->unkC = 1.2f * var_f31; + var_r31->unk_14 = var_f31; + fn_1_8768(var_r30, var_r31, var_r28, var_f31, var_r31->unk_14); + break; + } + sp14.x = var_r29->pos.x; + sp14.z = var_r29->pos.z; + fn_1_15FD0(sp14, 50.0f, 0, 1, var_r30->unk0); + } + } + } + } +} + +void fn_1_85D4(s16 arg0, M427DllMapSubstruct3 *arg1) +{ + float var_f31; + M427DllMapUNKB8 *var_r31; + M427DllMapSubstruct2 *var_r30; + s16 var_r29; + ModelData *var_r27; + + var_r30 = &lbl_1_bss_158.unk34C[arg0]; + var_r31 = arg1->unkB8[var_r30->unk0]; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r27 = &Hu3DData[var_r31->unk2]; + if ((var_r27->attr & 1) != 0) { + Hu3DModelAttrReset(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(var_r31->unk2, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + var_r31->unk8 = 0; + var_r31->unkA = 0; + var_r31->unk18 = var_r30->unk14[0]; + var_r31->unk1A = var_r30->unk14[1]; + var_r31->unk1C = var_r30->unk14[2]; + var_r31->unk1E = var_r30->unk14[3]; + var_r31->unk0 = arg0; + arg1->unk178[arg0] = 1; + fn_1_9A2C(var_r31->unk6, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + if (var_r30->unk0 == 0) { + var_f31 = 90.0f; + } + else { + var_f31 = 270.0f; + } + fn_1_9B14(var_r31->unk6, 0.0f, var_f31, 0.0f); + fn_1_999C(var_r31->unk6, 1); + fn_1_8E1C(0, arg1, var_r31); + return; + } + } +} + +float lbl_1_data_1DC[2] = { -1.0f, 1.0f }; +float lbl_1_data_1E4[2] = { 270.0f, 90.0f }; + +void fn_1_8768(M427DllMapSubstruct3 *var_r28, M427DllMapUNKB8 *var_r31, s16 var_r27, float var_f28, float var_f29) +{ + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + float var_f31; + float var_f30; + ModelData *var_r30; + M427DllMapStruct *var_r29; + + var_r30 = &Hu3DData[var_r31->unk2]; + var_f31 = var_f28 * var_r31->unk28; + sp50.x = var_r30->pos.x + (60.0f * lbl_1_data_1DC[var_r27]); + sp50.y = 80.0f + var_r30->pos.y; + sp50.z = var_r30->pos.z; + if (var_r31->unk8 == 1) { + fn_1_C76C(0, sp50.x, sp50.y, sp50.z, 1, lbl_1_data_1E4[var_r27], var_f31, lbl_1_bss_EC[var_r28->unk0]); + return; + } + fn_1_C76C(1, sp50.x, sp50.y, sp50.z, 1, lbl_1_data_1E4[var_r27], var_f31, lbl_1_bss_EC[var_r28->unk0]); + if (var_r31->unk_10 > (400.0f * var_r31->unk28)) { + var_r31->unk_10 = 400.0f * var_r31->unk28; + } + else if (var_r31->unk_10 < 1.0f) { + var_r31->unk_10 = 1.0f; + } + var_r31->unk2C += 30.0f; + if (var_r31->unk2C >= 360.0f) { + var_r31->unk2C -= 360.0f; + } + sp50.x = var_r30->pos.x + (240.0f * lbl_1_data_1DC[var_r27]); + sp50.y = 100.0f + var_r30->pos.y; + sp50.z = var_r30->pos.z; + sp44.x = sp44.y = sp44.z = 0.0f; + var_f30 = var_r31->unk_10 + (var_f28 * (50.0 * sind(var_r31->unk2C))); + Hu3DLLightPointSet(var_r31->unk2, var_r31->unk4, var_f30, 0.5f, 3); + Hu3DLLightPosSetV(var_r31->unk2, var_r31->unk4, &sp50, &sp44); + var_r29 = &lbl_1_bss_F0[var_r31->unk6]; + var_r29->unk90 -= 0.0005f; + var_r29->unk8C += 0.005f; + var_r29->unk94 += 0.001f; + if (var_r31->unkC > 1.0f) { + var_r31->unkC = 1.0f; + } + else if (var_r31->unkC < 0.0f) { + var_r31->unkC = 0.0f; + } + fn_1_99E4(var_r31->unk6, 0xFF, 0xA0, 0x60, 255.0f * var_r31->unkC); + var_r31->unk20 += 2.0f; + var_r31->unk24 += (((rand8() << 8) | rand8()) % 5) + 4; + if (var_r31->unk20 >= 360.0f) { + var_r31->unk20 -= 360.0f; + } + if (var_r31->unk24 >= 360.0f) { + var_r31->unk24 -= 360.0f; + } + sp38.x = 1.0 + (0.009999999776482582 * sind(var_r31->unk24)); + sp38.z = var_r31->unk28 + (0.009999999776482582 * sind(var_r31->unk20)); + fn_1_9AA0(var_r31->unk6, sp38.x, 1.0f, sp38.z); + if (var_r27 == 0) { + sp2C.x = var_r30->pos.x - (700.0f * var_f31 * var_f29); + sp20.x = var_r30->pos.x - 50.0f; + } + else { + sp2C.x = 50.0f + var_r30->pos.x; + sp20.x = var_r30->pos.x + (700.0f * var_f31 * var_f29); + } + sp2C.z = var_r30->pos.z - 30.0f; + sp20.z = 30.0f + var_r30->pos.z; + fn_1_15F10(sp2C, sp20, 1, 1, var_r28->unk0); +} + +void fn_1_8E1C(u8 arg0, M427DllMapSubstruct3 *arg1, M427DllMapUNKB8 *arg2) +{ + s32 spC[8]; + s16 var_r30; + ModelData *var_r29; + M427DllMapSubstruct2 *var_r27; + s16 var_r26; + ModelData *var_r25; + s16 var_r24; + + var_r27 = &lbl_1_bss_158.unk34C[arg2->unk0]; + var_r25 = &Hu3DData[arg2->unk2]; + if (arg0 == 0) { + var_r26 = var_r25->unk_38[arg2->unk4]; + } + else { + var_r26 = -1; + } + var_r24 = fn_1_10FE8(arg1->unk0, spC); + for (var_r30 = 0; var_r30 < var_r24; var_r30++) { + var_r29 = &Hu3DData[spC[var_r30]]; + var_r29->unk_38[arg2->unk4] = var_r26; + } + var_r29 = &Hu3DData[arg1->unk1A]; + var_r29->unk_38[arg2->unk4] = var_r26; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r27->unk10[var_r30] != -1) { + var_r29 = &Hu3DData[arg1->unk2[var_r27->unk10[var_r30]]]; + var_r29->unk_38[arg2->unk4] = var_r26; + } + } +} + +void fn_1_8F90(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M427DllMapSubstruct3 *var_r31; + s16 var_r30; + M427DllMapStruct3 *var_r29; + + var_r29 = &lbl_1_bss_158; + for (var_r30 = 0, var_r31 = var_r29->unk4; var_r30 < 2; var_r30++, var_r31++) { + var_f31 = sind(var_r31->unk90); + var_f30 = cosd(var_r31->unk90); + var_r31->unk_60.x = var_r31->unk84.x - (25.0f * var_f31); + var_r31->unk_60.y = 100.0f + var_r31->unk84.y; + var_r31->unk_60.z = var_r31->unk84.z - (25.0f * var_f30); + var_r31->unk_6C.x = var_r31->unk_60.x - (50.0f * var_f31); + var_r31->unk_6C.y = var_r31->unk_60.y; + var_r31->unk_6C.z = var_r31->unk_60.z - (50.0f * var_f30); + Hu3DLLightPosSet(var_r31->unk2[0], var_r31->unk5C, var_r31->unk_60.x, var_r31->unk_60.y, var_r31->unk_60.z, 0.0f, 0.0f, 0.0f); + Hu3DLLightPosAimSetV(var_r31->unk2[0], var_r31->unk5C, &var_r31->unk_60, &var_r31->unk_6C); + fn_1_9A2C(var_r31->unkB0[0], var_r31->unk84.x, var_r31->unk84.y, var_r31->unk84.z); + fn_1_9B14(var_r31->unkB0[0], 0.0f, var_r31->unk90, 0.0f); + sp14.x = var_r31->unk84.x; + sp14.y = 100.0f + var_r31->unk84.y; + sp14.z = 50.0f + var_r31->unk84.z; + sp8.x = sp8.y = sp8.z = 0.0f; + Hu3DLLightPosSetV(var_r31->unk1A, 1, &sp14, &sp8); + } +} + +void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB) +{ + M427DllMapSubstruct3 *var_r31; + + var_r31 = &lbl_1_bss_158.unk4[arg0]; + var_r31->unk84.x = arg8; + var_r31->unk84.y = arg9; + var_r31->unk84.z = argA; + var_r31->unk90 = argB; + if (var_r31->unkAC) { + var_r31->unkAC->unk_0C = 1500.0f + argA; + } +} + +void fn_1_9240(void) +{ + M427DllMapStruct *var_r31; + M427DllMapSubstruct3 *var_r30; + s16 var_r29; + s16 var_r28; + + for (var_r30 = lbl_1_bss_158.unk4, var_r28 = 0; var_r28 < 2; var_r28++, var_r30++) { + for (var_r29 = 0; var_r29 < 1; var_r29++) { + var_r31 = &lbl_1_bss_F0[var_r30->unkB0[var_r29]]; + var_r31->unk90 -= 0.0005f; + var_r31->unk8C += 0.0005f; + var_r31->unk94 += 0.0005f; + } + } +} + +void fn_1_9318(s16 *arg0, s16 arg1) +{ + s16 var_r31; + ModelData *var_r30; + ModelData *var_r29; + s16 var_r28; + + var_r30 = &Hu3DData[*arg0]; + for (var_r28 = 1; var_r28 < arg1; var_r28++) { + var_r29 = &Hu3DData[arg0[var_r28]]; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (var_r30->unk_38[var_r31] != -1) { + var_r29->unk_38[var_r31] = var_r30->unk_38[var_r31]; + } + } + var_r29->attr |= 0x1000; + } +} + +void fn_1_93EC(s32 sp8, s32 spC, float var_f30, float var_f31, float sp10, float sp14) +{ + M427DllMapStruct3Sub *var_r31; + + var_r31 = &lbl_1_bss_158.unk334; + var_r31->unk_00 = HuSprAnimRead(HuDataReadNum(sp8, MEMORY_DEFAULT_NUM)); + var_r31->unk_04 = HuSprAnimRead(HuDataReadNum(spC, MEMORY_DEFAULT_NUM)); + var_r31->unk_08 = 0.5f * var_f30; + var_r31->unk_0C = 0.5f * var_f31; + var_r31->unk_10 = sp10 / var_f30; + var_r31->unk_14 = sp14 / var_f31; +} + +void fn_1_94BC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg8, Vec2f *arg4, s16 arg5) +{ + Mtx sp58; + Mtx sp28; + Vec sp1C; + Vec sp10; + M427DllMapStruct3Sub *var_r31; + s16 var_r28; + + var_r31 = &lbl_1_bss_158.unk334; + for (var_r28 = 0; var_r28 < arg5; var_r28++, arg2++, arg4++) { + MTXScale(sp58, arg3->x, arg3->y, arg3->z); + MTXRotRad(sp28, 0x59, MTXDegToRad(arg8)); + MTXConcat(sp58, sp28, sp58); + MTXMultVec(sp58, arg2, &sp1C); + sp10.x = var_r31->unk_08 + ((sp1C.x + arg1->x) - arg0->x); + sp10.z = var_r31->unk_0C + ((sp1C.z + arg1->z) - arg0->z); + arg4->x = sp10.x * var_r31->unk_10; + arg4->y = sp10.z * var_r31->unk_14; + } +} + +s16 fn_1_95E8(s32 arg0, s16 arg1, s16 arg2, float arg8, float arg9, float argA, float argB, float argC) +{ + M427DllMapStruct *var_r31; + s16 var_r30; + s16 var_r29; + void *var_r28; + void *var_r26; + + for (var_r31 = lbl_1_bss_F0, var_r29 = 0; var_r29 < 0x10; var_r29++, var_r31++) { + if (var_r31->unk2 == -1) { + break; + } + } + if (var_r29 == 0x10) { + return -1; + } + var_r31->unk4 = Hu3DHookFuncCreate(fn_1_9B88); + Hu3DModelCameraSet(var_r31->unk4, arg1 ? 2 : 1); + Hu3DModelLayerSet(var_r31->unk4, arg2); + Hu3DData[var_r31->unk4].unk_120 = var_r31; + Hu3DModelPosSet(var_r31->unk4, 0.0f, 0.0f, -2000.0f); + var_r31->unk0 = 0; + var_r31->unk2 = arg1; + var_r31->unk7C.r = var_r31->unk7C.g = var_r31->unk7C.b = var_r31->unk7C.a = 0xFF; + var_r31->unk88 = var_r31->unk8C = 0.0f; + var_r31->unk90 = var_r31->unk94 = 0.0f; + var_r31->unk8 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + fn_1_C2AC(&var_r31->unkC, arg8 - argA, argC, arg9 - argB); + fn_1_C2BC(&var_r31->unk3C, 0.0f, 0.0f); + fn_1_C2AC(&var_r31->unk18, arg8 + argA, argC, arg9 - argB); + fn_1_C2BC(&var_r31->unk44, 1.0f, 0.0f); + fn_1_C2AC(&var_r31->unk24, arg8 + argA, argC, arg9 + argB); + fn_1_C2BC(&var_r31->unk4C, 1.0f, 1.0f); + fn_1_C2AC(&var_r31->unk30, arg8 - argA, argC, arg9 + argB); + fn_1_C2BC(&var_r31->unk54, 0.0f, 1.0f); + DCFlushRangeNoSync(&var_r31->unkC, 0x30); + DCFlushRangeNoSync(&var_r31->unk3C, 0x20); + PPCSync(); + var_r28 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, MEMORY_DEFAULT_NUM); + var_r26 = var_r28; + DCFlushRange(var_r28, 0x1000); + GXBeginDisplayList(var_r26, 0x1000); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + GXPosition1x16(var_r30); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30); + } + var_r31->unk84 = GXEndDisplayList(); + var_r31->unk80 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk84, MEMORY_DEFAULT_NUM); + memcpy(var_r31->unk80, var_r28, var_r31->unk84); + DCFlushRange(var_r31->unk80, var_r31->unk84); + HuMemDirectFree(var_r28); + return var_r29; +} + +void fn_1_9958(s16 arg0, u8 arg1) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk0 |= arg1; + } +} + +void fn_1_999C(s16 arg0, u8 arg1) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk0 &= ~arg1; + } +} + +void fn_1_99E4(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk7C.r = arg1; + var_r31->unk7C.g = arg2; + var_r31->unk7C.b = arg3; + var_r31->unk7C.a = arg4; + } +} + +void fn_1_9A2C(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelPosSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9AA0(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelScaleSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9B14(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelRotSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9B88(ModelData *model, Mtx matrix) +{ + Mtx sp88; + M427DllMapStruct *var_r31; + M427DllMapSubstruct3 *var_r27; + M427DllMapStruct3Sub *var_r26; + + var_r31 = model->unk_120; + var_r27 = &lbl_1_bss_158.unk4[var_r31->unk2]; + var_r26 = &lbl_1_bss_158.unk334; + if ((var_r31->unk0 & 1) == 0) { + fn_1_94BC(&var_r27->unk78, &model->pos, &var_r31->unkC, &model->scale, model->rot.y, var_r31->unk5C, 4); + DCFlushRangeNoSync(var_r31->unk5C, 4 * sizeof(Vec2f)); + PPCSync(); + GXLoadPosMtxImm(matrix, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, &var_r31->unkC, sizeof(Vec)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, &var_r31->unk3C, sizeof(Vec2f)); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX1, var_r31->unk5C, sizeof(Vec2f)); + HuSprTexLoad(var_r31->unk8, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r26->unk_04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r26->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(3); + MTXScale(sp88, 1.0f, 1.0f, 1.0f); + mtxTransCat(sp88, var_r31->unk88, var_r31->unk90, 0.0f); + GXLoadTexMtxImm(sp88, 0x1E, GX_MTX2x4); + MTXScale(sp88, 1.0f, 1.0f, 1.0f); + mtxTransCat(sp88, var_r31->unk8C, var_r31->unk94, 0.0f); + GXLoadTexMtxImm(sp88, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, 0x1E, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, 0, 0x7D); + GXSetNumTevStages(2); + GXSetTevColor(GX_TEVREG1, var_r31->unk7C); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_C1, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_C0, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_A1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetTevIndWarp(0, 0, 1, 0, 1); + MTXScale(sp88, 0.1f, 0.10000000149011612 * -sind(model->rot.y), 1.0f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp88, 0); + GXSetNumChans(0); + GXSetZMode(0, GX_LEQUAL, 0); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk80, var_r31->unk84); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); + } +} + +void fn_1_A148(ModelData *model, Mtx matrix) +{ + M427DllMapSubstruct3Sub *var_r31; + + var_r31 = model->unk_120; + if (var_r31->unk0 == 0) { + GXSetTexCopySrc(0, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + else { + GXSetTexCopySrc(0x140, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + GXCopyTex(var_r31->unk4, 1); + DCFlushRange(var_r31->unk4, var_r31->unk8); +} + +s16 fn_1_A1F4(s32 arg0, s16 arg1, s16 arg2, s16 arg3, float arg8, Vec *arg4, Vec *arg5) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M427DllMapStruct6 *var_r31; + M427DllMapSubstruct5 *var_r30; + ModelData *var_r29; + s16 var_r28; + s16 var_r27; + Vec2f *var_r26; + void *var_r25; + M427DllMapStruct3 *var_r22; + u16 var_r21; + s16 var_r19; + void *var_r18; + + var_r22 = &lbl_1_bss_158; + var_r28 = Hu3DHookFuncCreate(fn_1_B3CC); + var_r19 = var_r28; + Hu3DModelCameraSet(var_r28, arg3 ? 2 : 1); + Hu3DModelLayerSet(var_r28, 5); + var_r29 = &Hu3DData[var_r28]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M427DllMapStruct6), var_r29->unk_48); + var_r29->unk_120 = var_r31; + var_r22->unk4[arg3].unkAC = var_r31; + var_r31->unk_00 = arg3; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = arg8; + var_r31->unk_04 = arg4; + var_r31->unk_08 = arg5; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = var_r31->unk_20 = 0.0f; + var_r31->unk_4C = var_r31->unk_50 = 0.0f; + var_r31->unk_54 = 120.0f; + var_r31->unk_58 = 72.0f; + var_r31->unk_5C = 10.0f; + var_r31->unk_60 = 10.0f; + var_r31->unk_28 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r31->unk_3A = arg1 + 1; + var_r31->unk_3C = arg2 + 1; + var_r31->unk_38 = var_r31->unk_3A * var_r31->unk_3C; + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec), var_r29->unk_48); + var_r26 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec2f), var_r29->unk_48); + var_r31->unk_30 = var_r26; + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec), var_r29->unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), var_r29->unk_48); + var_r31->unk_48 = var_r30; + var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, var_r29->unk_48); + var_r18 = var_r25; + DCFlushRange(var_r25, 0x20000); + GXBeginDisplayList(var_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * arg2 * 4); + for (var_r28 = 0; var_r28 < arg2; var_r28++) { + for (var_r27 = 0; var_r27 < arg1; var_r27++) { + var_r30->unk0 = var_r27 + (var_r28 * var_r31->unk_3A); + var_r30->unk2 = var_r27 + var_r28 * var_r31->unk_3A + 1; + var_r30->unk4 = var_r27 + ((var_r28 + 1) * var_r31->unk_3A) + 1; + var_r30->unk6 = var_r27 + ((var_r28 + 1) * var_r31->unk_3A); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + fn_1_C2C8(&var_r31->unk_2C[var_r30->unk0], &var_r31->unk_2C[var_r30->unk2], &var_r31->unk_2C[var_r30->unk4], &var_r30->unk8); + var_r30++; + } + } + var_r31->unk_44 = GXEndDisplayList(); + var_r31->unk_40 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_44, var_r29->unk_48); + memcpy(var_r31->unk_40, var_r25, var_r31->unk_44); + DCFlushRange(var_r31->unk_40, var_r31->unk_44); + HuMemDirectFree(var_r25); + fn_1_A7F8(var_r31); + var_f29 = 3.0f / (var_r31->unk_3A - 1); + var_f28 = 5.0f / (var_r31->unk_3C - 1); + var_f30 = 0.0f; + for (var_r28 = 0; var_r28 < var_r31->unk_3C; var_r28++) { + var_f31 = 0.0f; + for (var_r27 = 0; var_r27 < var_r31->unk_3A; var_r27++) { + var_r26->x = var_f31; + var_r26->y = var_f30; + var_f31 += var_f29; + var_r26++; + } + var_f30 += var_f28; + } + DCFlushRangeNoSync(var_r31->unk_30, var_r31->unk_38 * 8); + PPCSync(); + return var_r19; +} + +void fn_1_A7F8(M427DllMapStruct6 *var_r31) +{ + Vec sp1C; + float sp14[2]; + float spC[2]; + float var_f29; + float var_f28; + float var_f27; + M427DllMapSubstruct5 *var_r30; + Vec *var_r29; + s16 var_r28; + Vec *var_r27; + s16 var_r26; + s16 var_r25; + + if (omPauseChk() == 0) { + var_r31->unk_4C += 1.0f; + var_r31->unk_50 += 1.5f; + } + if (var_r31->unk_4C >= 360.0f) { + var_r31->unk_4C -= 360.0f; + } + if (var_r31->unk_50 >= 360.0f) { + var_r31->unk_50 -= 360.0f; + } + var_r27 = var_r31->unk_2C; + var_r29 = var_r31->unk_34; + spC[0] = var_r31->unk_0C - var_r31->unk_10; + spC[1] = var_r31->unk_10 / (var_r31->unk_3C - 1); + var_f28 = var_r31->unk_50; + for (var_r28 = 0; var_r28 < var_r31->unk_3C; var_r28++) { + fn_1_B194(var_r31, spC[0], &sp1C); + sp14[0] = sp1C.x; + sp14[1] = (sp1C.y - sp1C.x) / (var_r31->unk_3A - 1); + var_f29 = var_r31->unk_4C; + for (var_r26 = 0; var_r26 < var_r31->unk_3A; var_r26++) { + var_r27->x = sp14[0]; + var_r27->y = sp1C.z + (var_r31->unk_5C * sind(var_f29)) + var_r31->unk_60 * sind(var_f28); + var_r27->z = spC[0]; + sp14[0] += sp14[1]; + var_r27++; + var_r29->x = var_r29->y = var_r29->z = 0.0f; + var_r29++; + var_f29 += var_r31->unk_54; + if (var_f29 >= 360.0f) { + var_f29 -= 360.0f; + } + } + spC[0] += spC[1]; + var_f28 += var_r31->unk_58; + if (var_f28 >= 360.0f) { + var_f28 -= 360.0f; + } + } + var_r30 = var_r31->unk_48; + var_r25 = (var_r31->unk_3A - 1) * (var_r31->unk_3C - 1); + for (var_r28 = 0; var_r28 < var_r25; var_r28++) { + fn_1_C2C8(&var_r31->unk_2C[var_r30->unk0], &var_r31->unk_2C[var_r30->unk2], &var_r31->unk_2C[var_r30->unk4], &var_r30->unk8); + var_r31->unk_34[var_r30->unk0].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk0].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk0].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk2].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk2].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk2].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk4].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk4].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk4].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk6].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk6].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk6].z += var_r30->unk8.z; + var_r30++; + } + var_r29 = var_r31->unk_34; + for (var_r28 = 0; var_r28 < var_r31->unk_38; var_r28++) { + var_f27 = sqrtf((var_r29->z * var_r29->z) + ((var_r29->x * var_r29->x) + (var_r29->y * var_r29->y))); + var_r29->x /= var_f27; + var_r29->y /= var_f27; + var_r29->z /= var_f27; + var_r29++; + } + DCFlushRangeNoSync(var_r31->unk_2C, var_r31->unk_38 * sizeof(Vec)); + DCFlushRangeNoSync(var_r31->unk_34, var_r31->unk_38 * sizeof(Vec)); + PPCSync(); +} + +s16 lbl_1_data_1EC[2] = { 0, 0 }; + +float fn_1_AE78(s16 arg0, float arg8, float arg9) +{ + float sp8[2]; + float var_f31; + float var_f30; + Vec *var_r31; + s16 var_r30; + M427DllMapSubstruct3 *var_r29; + Vec *var_r28; + s16 var_r27; + s16 var_r26; + + var_r29 = &lbl_1_bss_158.unk4[arg0]; + if (lbl_1_bss_158.unk0 != 0) { + if (lbl_1_bss_158.unk0 == 1) { + lbl_1_data_1EC[arg0] = 0; + lbl_1_bss_158.unk0 = 2; + } + if (!lbl_1_bss_98.unk4) { + return 0.0f; + } + var_r28 = lbl_1_bss_98.unk4; + var_r31 = &lbl_1_bss_98.unk4[lbl_1_data_1EC[arg0]]; + var_r27 = lbl_1_bss_98.unk14; + var_r26 = lbl_1_bss_98.unk16; + for (var_r30 = lbl_1_data_1EC[arg0]; var_r30 < var_r27; var_r30++, var_r31++) { + if (arg9 >= var_r31->z && arg8 >= var_r31->x) { + break; + } + } + if (var_r30 == var_r27) { + return 0.0f; + } + } + else { + if (!var_r29->unkAC) { + return 0.0f; + } + var_r28 = var_r29->unkAC->unk_2C; + var_r31 = &var_r29->unkAC->unk_2C[lbl_1_data_1EC[arg0]]; + var_r27 = var_r29->unkAC->unk_38; + var_r26 = var_r29->unkAC->unk_3A; + for (var_r30 = lbl_1_data_1EC[arg0]; var_r30 < var_r27; var_r30++, var_r31++) { + if (arg9 <= var_r31->z && arg8 <= var_r31->x) { + break; + } + } + if (var_r30 == var_r27) { + return 0.0f; + } + } + sp8[0] = var_r31->x - var_r28[var_r30 - 1].x; + sp8[1] = arg8 - var_r28[var_r30 - 1].x; + var_f30 = sp8[1] / sp8[0]; + var_f31 = var_r31->y - var_r28[var_r30 - 1].y; + var_f31 = var_r28[var_r30 - 1].y + (var_f31 * var_f30); + lbl_1_data_1EC[arg0] = var_r30 - (var_r26 * 2); + return 20.0f + var_f31; +} + +void fn_1_B194(M427DllMapStruct6 *arg0, float arg8, Vec *arg1) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + s16 var_r31; + + for (var_r31 = lbl_1_bss_580; var_r31 != 0;) { + var_r31--; + if (arg0->unk_04[var_r31].z >= arg8) { + if (var_r31 == (lbl_1_bss_580 - 1)) { + arg1->x = arg0->unk_08[var_r31].x; + arg1->y = arg0->unk_04[var_r31].x; + arg1->z = arg0->unk_04[var_r31].y; + } + else { + var_f31 = (arg0->unk_04[var_r31].z - arg8) / (arg0->unk_04[var_r31].z - arg0->unk_04[var_r31 + 1].z); + sp10[0] = arg0->unk_08[var_r31].x - 100.0f; + sp10[1] = arg0->unk_08[var_r31 + 1].x - 100.0f; + sp8[0] = 100.0f + arg0->unk_04[var_r31].x; + sp8[1] = 100.0f + arg0->unk_04[var_r31 + 1].x; + arg1->x = sp10[0] + (var_f31 * (sp10[1] - sp10[0])); + arg1->y = sp8[0] + (var_f31 * (sp8[1] - sp8[0])); + arg1->z = arg0->unk_04[var_r31].y + (var_f31 * (arg0->unk_04[var_r31 + 1].y - arg0->unk_04[var_r31].y)); + } + return; + } + } +} + +void fn_1_B3CC(ModelData *model, Mtx matrix) +{ + Mtx sp154; + Mtx sp124; + Mtx spF4; + Mtx spC4; + GXTexObj sp44; + Vec2f sp18; + GXColor sp14; + float var_f31; + M427DllMapStruct6 *var_r31; + M427DllMapSubstruct3 *var_r30; + M427DllMapSubstruct3Sub *var_r27; + M427DllMapStruct3Sub *var_r24; + s16 var_r21; + + var_r31 = model->unk_120; + var_r30 = &lbl_1_bss_158.unk4[var_r31->unk_00]; + var_r27 = &var_r30->unk94; + var_r24 = &lbl_1_bss_158.unk334; + fn_1_A7F8(var_r31); + GXLoadPosMtxImm(matrix, 0); + MTXInvXpose(matrix, spF4); + GXLoadNrmMtxImm(spF4, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_2C, sizeof(Vec)); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_34, sizeof(Vec)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_30, 8); + if (var_r31->unk_00 == 0) { + GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + else { + GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + GXInitTexObjLOD(&sp44, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp44, GX_TEXMAP0); + HuSprTexLoad(var_r31->unk_28, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r24->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(3); + sp14.r = 0; + sp14.g = 0xB6; + sp14.b = 0xCC; + sp14.a = 0x40; + GXSetTevColor(GX_TEVREG2, sp14); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_TEXA, GX_CC_C2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_C1, GX_CC_RASC, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetTevIndWarp(1, 0, 1, 0, 1); + MTXScale(spF4, -0.1f, 0.1f, 1.0f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, 0); + GXSetNumTexGens(3); + C_MTXLightPerspective(sp154, 45.0f, 0.6f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXCopy(matrix, sp124); + MTXInverse(Hu3DCameraMtx, spF4); + MTXConcat(spF4, sp124, spF4); + MTXConcat(sp154, Hu3DCameraMtx, spC4); + MTXConcat(spC4, spF4, spF4); + GXLoadTexMtxImm(spF4, 0x1E, GX_MTX3x4); + { + Vec sp38 = { 1.0f, 1.0f, 1.0f }; + var_f31 = 0.0f; + fn_1_94BC(&var_r30->unk78, &var_r30->unk84, var_r31->unk_2C, &sp38, var_f31, &sp18, 1); + } + if (omPauseChk() == 0) { + var_r31->unk_20 = var_r31->unk_20 - 0.001f; + } + MTXScale(spF4, 1.0f, 1.0f, 1.0f); + mtxTransCat(spF4, 0.0f, var_r31->unk_20 + (0.3f * sp18.y), 0.0f); + GXLoadTexMtxImm(spF4, 0x21, GX_MTX2x4); + if (omPauseChk() == 0) { + var_r31->unk_24 += 0.05f; + } + if (var_r31->unk_24 >= 360.0f) { + var_r31->unk_24 -= 360.0f; + } + var_r31->unk_14 = sind(var_r31->unk_24); + if (omPauseChk() == 0) { + var_r31->unk_1C += 0.0005f; + } + MTXScale(spF4, 0.5f, 0.5f, 0.5f); + mtxTransCat(spF4, var_r31->unk_14, var_r31->unk_1C, 0.0f); + GXLoadTexMtxImm(spF4, 0x24, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x24, GX_FALSE, 0x7D); + GXSetNumChans(1); + var_r21 = Hu3DLightSet(model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r21, GX_DF_CLAMP, GX_AF_SPOT); + sp14.r = sp14.g = sp14.b = 0x10; + sp14.a = 0xFF; + GXSetChanAmbColor(GX_COLOR0A0, sp14); + sp14.r = sp14.g = sp14.b = 0xFF; + sp14.a = 0xFF; + GXSetChanMatColor(GX_COLOR0A0, sp14); + GXSetZMode(1, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_44); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +void fn_1_BD2C(ModelData *model, Mtx matrix) +{ + GXColor sp14 = { 0, 0, 0, 0xFF }; + GXSetFog(GX_FOG_EXP, 10000.0f, 20000.0f, 300.0f, 50000.0f, sp14); + GXLoadPosMtxImm(matrix, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + HuSprTexLoad(lbl_1_bss_F4, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetNumChans(0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, 1000.0f, -24000.0f); + GXTexCoord2f32(0.0f, 0.0f); + + GXPosition3f32(1000.0f, 1000.0f, -24000.0f); + GXTexCoord2f32(1.0f, 0.0f); + + GXPosition3f32(1000.0f, -1000.0f, -24000.0f); + GXTexCoord2f32(1.0f, 1.0f); + + GXPosition3f32(-1000.0f, -1000.0f, -24000.0f); + GXTexCoord2f32(0.0f, 1.0f); + + GXSetFog(GX_FOG_EXP, 3500.0f, 20000.0f, 300.0f, 50000.0f, sp14); +} + +void fn_1_C154(ModelData *model, Mtx matrix) +{ + GXColor spC = { 0, 0, 0, 255 }; + GXSetFog(GX_FOG_EXP, 10000.0f, 20000.0f, 300.0f, 50000.0f, spC); +} + +void fn_1_C200(ModelData *model, Mtx matrix) +{ + GXColor spC = { 0, 0, 0, 255 }; + GXSetFog(GX_FOG_EXP, 3500.0f, 20000.0f, 300.0f, 50000.0f, spC); +} + +void fn_1_C2AC(Vec *arg0, float arg8, float arg9, float argA) +{ + arg0->x = arg8; + arg0->y = arg9; + arg0->z = argA; +} + +void fn_1_C2BC(Vec2f *arg0, float arg8, float arg9) +{ + arg0->x = arg8; + arg0->y = arg9; +} + +void fn_1_C2C8(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp14; + Vec sp8; + + sp14.x = arg1->x - arg0->x; + sp14.y = arg1->y - arg0->y; + sp14.z = arg1->z - arg0->z; + sp8.x = arg2->x - arg1->x; + sp8.y = arg2->y - arg1->y; + sp8.z = arg2->z - arg1->z; + arg3->x = -((sp14.y * sp8.z) - (sp14.z * sp8.y)); + arg3->y = -((sp14.z * sp8.x) - (sp14.x * sp8.z)); + arg3->z = -((sp14.x * sp8.y) - (sp14.y * sp8.x)); +} + +// is this one of the structs? +void fn_1_C3A0(float *arg0, float *arg1) +{ + arg1[0] = arg0[0]; + arg1[4] = arg0[1]; + arg1[8] = arg0[2]; + arg1[1] = arg0[4]; + arg1[5] = arg0[5]; + arg1[9] = arg0[6]; + arg1[2] = arg0[8]; + arg1[6] = arg0[9]; + arg1[10] = arg0[10]; + arg1[3] = 0.0f; + arg1[7] = 0.0f; + arg1[11] = 0.0f; +} + +s16 fn_1_C41C(float x1, float y1, float z1, float x2, float y2, float z2, u8 r, u8 g, u8 b) +{ + Vec sp34; + Vec sp28; + GXColor sp23; + LightData *var_r31; + s16 var_r30; + + sp34.x = x1; + sp34.y = y1; + sp34.z = z1; + sp28.x = x2; + sp28.y = y2; + sp28.z = z2; + sp23.r = r; + sp23.g = g; + sp23.b = b; + sp23.a = 0xFF; + for (var_r31 = Hu3DLocalLight, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_00 == -1) { + break; + } + } + if (var_r30 == 0x20) { + return -1; + } + fn_1_C68C(var_r31, &sp34, &sp28, &sp23); + var_r31->unk_00 |= 0x8000; + return var_r30; +} + +void fn_1_C528(s16 sp8, s16 var_r28, float x1, float y1, float z1, float x2, float y2, float z2, u8 r, u8 g, u8 b) +{ + Vec sp38; + Vec sp2C; + GXColor sp27; + ModelData *var_r31; + LightData *var_r30; + s16 var_r29; + + var_r31 = &Hu3DData[sp8]; + sp38.x = x1; + sp38.y = y1; + sp38.z = z1; + sp2C.x = x2; + sp2C.y = y2; + sp2C.z = z2; + sp27.r = r; + sp27.g = g; + sp27.b = b; + sp27.a = 0xFF; + for (var_r30 = Hu3DLocalLight, var_r29 = 0; var_r29 < 0x20; var_r29++, var_r30++) { + if (var_r30->unk_00 == -1) { + break; + } + } + if (var_r29 == 0x20) { + OSReport("Light Entry Over!\n"); + return; + } + fn_1_C68C(var_r30, &sp38, &sp2C, &sp27); + if (var_r31->unk_38[var_r28] == -1) { + var_r31->unk_38[var_r28] = var_r29; + var_r31->attr |= 0x1000; + } +} + +void fn_1_C68C(LightData *arg0, Vec *arg1, Vec *arg2, GXColor *arg3) +{ + arg0->unk_00 = 0; + arg0->unk_1C = *arg1; + arg0->unk_28 = *arg2; + arg0->unk_34.x = arg0->unk_34.y = arg0->unk_34.z = 0.0f; + arg0->unk_04 = 30.0f; + arg0->unk_02 = 2; + VECNormalize(&arg0->unk_28, &arg0->unk_28); + arg0->color.r = arg3->r; + arg0->color.g = arg3->g; + arg0->color.b = arg3->b; + arg0->color.a = arg3->a; +} + +void fn_1_C76C(u8 arg0, float arg8, float arg9, float argA, s16 arg1, float argB, float argC, s16 arg2) +{ + Vec sp24; + Vec sp18; + float sp10[2]; + GXColor spC; + M427DllMapSubstruct6 *var_r31; + s16 var_r30; + + if (arg0 != 0) { + argB += (((rand8() << 8) | rand8()) % 21) - 0xA; + } + else { + argB += (((rand8() << 8) | rand8()) % 61) - 0x1E; + } + sp10[0] = sind(argB); + sp10[1] = cosd(argB); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + if (arg0 != 0) { + sp24.x = arg8 + ((((rand8() << 8) | rand8()) % 21) - 0xA); + sp24.y = arg9 + ((((rand8() << 8) | rand8()) % 21) - 0xA); + sp24.z = argA + ((((rand8() << 8) | rand8()) % 21) - 0xA); + } + else { + sp24.x = arg8 + ((((rand8() << 8) | rand8()) % 41) - 0x14); + sp24.y = arg9 + ((((rand8() << 8) | rand8()) % 41) - 0x14); + sp24.z = argA + ((((rand8() << 8) | rand8()) % 41) - 0x14); + } + sp18.x = sp18.y = sp18.z = 0.0f; + spC.r = spC.g = spC.b = spC.a = 0xFF; + var_r31 = fn_1_D4FC(arg2, &sp24, &sp18, 0.0f, &spC); + if (!var_r31) { + break; + } + var_r31->unk_38 = arg0; + if (arg0 != 0) { + var_r31->unk_34 = 0; + var_r31->unk_36 = 3; + var_r31->unk_00 = argC * (sp10[0] * (0.1f * ((((rand8() << 8) | rand8()) % 151) + 0x96))); + var_r31->unk_04 = 0.1f * ((((rand8() << 8) | rand8()) % 31) - 0x14); + var_r31->unk_08 = argC * (sp10[1] * (0.1f * ((((rand8() << 8) | rand8()) % 151) + 0x96))); + var_r31->unk_18 = 0.01f * var_r31->unk_00; + var_r31->unk_1C = 0.1f; + var_r31->unk_20 = 0.01f * var_r31->unk_08; + var_r31->unk_24 = argC * (0.1f * ((((rand8() << 8) | rand8()) % 11) + 0xA)); + var_r31->unk_28 = argC * (0.01f * ((((rand8() << 8) | rand8()) % 101) + 0x32) / (var_r31->unk_36 * 0xE)); + } + else { + var_r31->unk_34 = 0; + var_r31->unk_36 = 2; + var_r31->unk_00 = sp10[0] * (0.1f * ((((rand8() << 8) | rand8()) % 31) + 0x32)); + var_r31->unk_04 = 0.1f * ((((rand8() << 8) | rand8()) % 31) - 0x14); + var_r31->unk_08 = sp10[1] * (0.1f * (((((rand8() << 8) | rand8()) % 31)) + 0x32)); + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.1f; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = 0.3f * (0.1f * ((((rand8() << 8) | rand8()) % 11) + 0xA)); + var_r31->unk_28 = 0.4f * ((0.01f * ((((rand8() << 8) | rand8()) % 51) + 0x32)) / (var_r31->unk_36 * 0xE)); + } + var_r31->unk_2C = 1024.0f * argC; + var_r31->unk_30 = var_r31->unk_2C / (var_r31->unk_36 * 0xE); + } +} + +void fn_1_D22C(ModelData *model, M427DllMapStruct7 *arg1, Mtx matrix) +{ + M427DllMapSubstruct6 *var_r31; + GXColor *var_r30; + s16 var_r29; + u8 var_r28; + + var_r31 = arg1->unk_18; + var_r30 = arg1->unk_24; + for (var_r29 = 0; var_r29 < arg1->unk_00; var_r29++, var_r31++, var_r30++) { + if (var_r31->unk_62 != 0) { + var_r31->unk_54.x += var_r31->unk_00; + var_r31->unk_54.y += var_r31->unk_04; + var_r31->unk_54.z += var_r31->unk_08; + if (var_r31->unk_38 != 0) { + var_r31->unk_00 -= var_r31->unk_18; + var_r31->unk_04 += var_r31->unk_1C; + var_r31->unk_08 -= var_r31->unk_20; + var_r31->unk_18 = 0.01f * var_r31->unk_00; + var_r31->unk_1C *= 1.04f; + var_r31->unk_20 = 0.01f * var_r31->unk_08; + } + else { + var_r31->unk_04 += var_r31->unk_1C; + var_r31->unk_1C *= 1.1f; + } + var_r31->unk_24 += var_r31->unk_28; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = var_r31->unk_24; + var_r31->unk_2C -= var_r31->unk_30; + if (var_r31->unk_2C > 255.0f) { + var_r28 = 0xFF; + } + else { + var_r28 = (s32)var_r31->unk_2C; + } + var_r30->a = (s32)var_r28; + var_r31->unk_34++; + if (var_r31->unk_34 >= var_r31->unk_36) { + var_r31->unk_34 = 0; + var_r31->unk_60++; + } + if (var_r31->unk_60 >= arg1->unk_14) { + var_r31->unk_62 = 0; + } + } + } +} + +s16 fn_1_D430(float arg8, float arg9, float argA, s16 arg0) +{ + Vec sp28; + Vec sp1C; + GXColor sp16; + M427DllMapSubstruct6 *var_r31; + + sp28.x = arg8; + sp28.y = arg9; + sp28.z = argA; + sp1C.x = sp1C.y = sp1C.z = 1.0f; + sp16.r = 0xFF; + sp16.g = 0xA0; + sp16.b = 0x60; + sp16.a = 0xFF; + var_r31 = fn_1_D4FC(arg0, &sp28, &sp1C, 0.0f, &sp16); + if (!var_r31) { + return -1; + } + var_r31->unk_24 = 0.0f; + return var_r31->unk_40; +} + +M427DllMapSubstruct6 *fn_1_D4FC(s16 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor *arg3) +{ + M427DllMapSubstruct6 *var_r31; + M427DllMapStruct7 *var_r30; + s16 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + for (var_r29 = 0, var_r31 = var_r30->unk_18; var_r29 < var_r30->unk_00; var_r29++, var_r31++) { + if (var_r31->unk_62 == 0) { + break; + } + } + if (var_r29 == var_r30->unk_00) { + return NULL; + } + var_r30->unk_24[var_r29].r = arg3->r; + var_r30->unk_24[var_r29].g = arg3->g; + var_r30->unk_24[var_r29].b = arg3->b; + var_r30->unk_24[var_r29].a = arg3->a; + var_r31->unk_40 = var_r29; + var_r31->unk_44 = arg8; + var_r31->unk_48 = *arg2; + var_r31->unk_54 = *arg1; + var_r31->unk_60 = 0; + var_r31->unk_3C = 0; + var_r31->unk_62 = 1; + return var_r31; +} + +s16 fn_1_D63C(AnimData *arg0, s16 arg1, float arg8, s16 arg2, s16 arg3) +{ + float temp_f0; + M427DllMapStruct7 *var_r31; + s16 var_r30; + Vec2f *var_r29; + ModelData *var_r28; + GXColor *var_r27; + Vec *var_r25; + M427DllMapSubstruct6 *var_r24; + s16 var_r22; + void *var_r21; + s16 var_r20; + s16 var_r19; + void *var_r18; + + var_r20 = Hu3DHookFuncCreate(fn_1_DCD4); + var_r28 = &Hu3DData[var_r20]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M427DllMapStruct7), var_r28->unk_48); + var_r28->unk_120 = var_r31; + arg0->useNum++; + var_r31->unk_10 = arg0; + var_r31->unk_00 = arg1; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(M427DllMapSubstruct6), var_r28->unk_48); + var_r31->unk_18 = var_r24; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { + var_r24->unk_60 = -1; + var_r24->unk_62 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, var_r28->unk_48); + var_r31->unk_1C = var_r25; + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), var_r28->unk_48); + var_r31->unk_24 = var_r27; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { + var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, var_r28->unk_48); + var_r31->unk_20 = var_r29; + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + if ((arg2 != 0) || (arg3 != 0)) { + var_r22 = arg0->bmp->sizeX / arg2; + var_r19 = arg0->bmp->sizeY / arg3; + var_r31->unk_14 = var_r22 * var_r19; + var_r31->unk_60 = 1.0f / var_r22; + var_r31->unk_64 = 1.0f / var_r19; + } + else { + var_r22 = 1; + var_r31->unk_14 = 1; + var_r31->unk_60 = 1.0f; + var_r31->unk_64 = 1.0f; + } + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_14 * sizeof(Vec2f), var_r28->unk_48); + fn_1_E2B0(var_r31->unk_5C, var_r31->unk_14, var_r22, var_r31->unk_60, var_r31->unk_64); + var_r31->unk_2C.x = var_r31->unk_50 = var_r31->unk_48 = var_r31->unk_54 = -arg8; + var_r31->unk_38 = var_r31->unk_44 = var_r31->unk_2C.y = var_r31->unk_3C = arg8; + var_r31->unk_2C.z = var_r31->unk_40 = var_r31->unk_4C = var_r31->unk_58 = 0.0f; + var_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, var_r28->unk_48); + var_r18 = var_r21; + DCFlushRange(var_r21, 0x20000); + GXBeginDisplayList(var_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + GXPosition1x16(var_r30 * 4); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4); + GXPosition1x16(var_r30 * 4 + 1); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 1); + GXPosition1x16(var_r30 * 4 + 2); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 2); + GXPosition1x16(var_r30 * 4 + 3); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 3); + } + var_r31->unk_04 = GXEndDisplayList(); + var_r31->unk_28 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_04, var_r28->unk_48); + memcpy(var_r31->unk_28, var_r21, var_r31->unk_04); + DCFlushRange(var_r31->unk_28, var_r31->unk_04); + HuMemDirectFree(var_r21); + return var_r20; +} + +void fn_1_DB80(s16 arg0) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + HuSprAnimKill(var_r30->unk_10); + Hu3DModelKill(arg0); +} + +void *fn_1_DBE0(s16 arg0) +{ + ModelData *var_r31; + + var_r31 = &Hu3DData[arg0]; + return var_r31->unk_120; +} + +M427DllMapSubstruct6 *fn_1_DC0C(s16 arg0, s16 arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + if (arg1 == -1) { + return NULL; + } + return &var_r30->unk_18[arg1]; +} + +void fn_1_DC64(s16 arg0, M427DllHook arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + var_r30->unk_0C = arg1; +} + +void fn_1_DC9C(s16 arg0, u8 arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + var_r30->unk_08 = arg1; +} + +void fn_1_DCD4(ModelData *model, Mtx matrix) +{ + Mtx sp128; + ROMtx spF8; + Mtx spC8; + Mtx sp98; + Vec sp68[4]; + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Vec *var_r31; + M427DllMapStruct7 *var_r30; + M427DllMapSubstruct6 *var_r29; + Vec2f *var_r26; + s16 var_r25; + s16 var_r24; + M427DllHook var_r23; + + var_r30 = model->unk_120; + GXLoadPosMtxImm(matrix, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + var_r24 = var_r30->unk_10->bmp->dataFmt & 0xF; + if ((var_r24 == 7) || (var_r24 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXA, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if ((model->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + HuSprTexLoad(var_r30->unk_10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r30->unk_08) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r30->unk_1C, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r30->unk_24, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r30->unk_20, 8); + sp128[0][0] = matrix[0][0]; + sp128[1][0] = matrix[0][1]; + sp128[2][0] = matrix[0][2]; + sp128[0][1] = matrix[1][0]; + sp128[1][1] = matrix[1][1]; + sp128[2][1] = matrix[1][2]; + sp128[0][2] = matrix[2][0]; + sp128[1][2] = matrix[2][1]; + sp128[2][2] = matrix[2][2]; + sp128[0][3] = 0.0f; + sp128[1][3] = 0.0f; + sp128[2][3] = 0.0f; + PSMTXReorder(sp128, spF8); + if ((omPauseChk() == 0) && (var_r30->unk_0C)) { + var_r23 = var_r30->unk_0C; + var_r23(model, var_r30, matrix); + } + var_r29 = var_r30->unk_18; + var_r31 = var_r30->unk_1C; + var_r26 = var_r30->unk_20; + PSMTXROMultVecArray(spF8, &var_r30->unk_2C, sp68, 4); + for (var_r25 = 0; var_r25 < var_r30->unk_00; var_r25++, var_r29++, var_r26 += 4) { + if (var_r29->unk_62 == 0) { + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + } + else { + if (var_r29->unk_44 == 0.0f) { + fn_1_E420(sp68, &sp38, &var_r29->unk_48, 4); + PSVECAdd(&sp38, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp44, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp50, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp5C, &var_r29->unk_54, var_r31++); + } + else { + fn_1_E420(&var_r30->unk_2C, &sp38, &var_r29->unk_48, 4); + PSMTXRotRad(spC8, 0x5A, MTXDegToRad(var_r29->unk_44)); + PSMTXConcat(sp128, spC8, sp98); + PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + PSVECAdd(&sp8, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp14, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp20, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp2C, &var_r29->unk_54, var_r31++); + } + if (var_r29->unk_60 != -1) { + fn_1_E37C(var_r26, var_r30->unk_5C, var_r29->unk_60, var_r30->unk_60, var_r30->unk_64); + } + } + } + DCFlushRangeNoSync(var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4); + DCFlushRangeNoSync(var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4); + PPCSync(); + GXCallDisplayList(var_r30->unk_28, var_r30->unk_04); +} + +void fn_1_E2B0(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9) +{ + s16 var_r31; + s16 var_r30; + s16 var_r29; + + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { + var_r30 = var_r31 % arg2; + var_r29 = var_r31 / arg2; + arg0->x = var_r30 * arg8; + arg0->y = var_r29 * arg9; + } +} + +void fn_1_E37C(Vec2f *arg0, Vec2f *arg1, s16 arg2, float arg8, float arg9) +{ + arg0[0].x = arg1[arg2].x; + arg0[0].y = arg1[arg2].y; + arg0[1].x = arg8 + arg1[arg2].x; + arg0[1].y = arg1[arg2].y; + arg0[2].x = arg8 + arg1[arg2].x; + arg0[2].y = arg9 + arg1[arg2].y; + arg0[3].x = arg1[arg2].x; + arg0[3].y = arg9 + arg1[arg2].y; +} + +void fn_1_E420(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ + s16 var_r31; + + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { + arg1->x = arg0->x * arg2->x; + arg1->y = arg0->y * arg2->y; + arg1->z = arg0->z * arg2->z; + } +} + +void fn_1_E488(void) +{ + if ((HuPadBtnDown[0] & PAD_TRIGGER_L) != 0) { + lbl_1_bss_91 ^= 1; + } + if (lbl_1_bss_91 != 0) { + if ((HuPadBtnDown[0] & PAD_TRIGGER_Z) != 0) { + lbl_1_bss_90 = lbl_1_bss_90 ^ 1; + } + if ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0) { + CRotM[lbl_1_bss_90].y += 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) { + CRotM[lbl_1_bss_90].y -= 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_UP) != 0) { + CRotM[lbl_1_bss_90].x -= 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0) { + CRotM[lbl_1_bss_90].x += 1.0f; + } + CenterM[lbl_1_bss_90].x += HuPadSubStkX[0]; + if ((HuPadBtn[0] & PAD_TRIGGER_R) != 0) { + CenterM[lbl_1_bss_90].y += HuPadSubStkY[0]; + } + else { + CenterM[lbl_1_bss_90].z += HuPadSubStkY[0]; + } + if ((HuPadBtn[0] & PAD_BUTTON_X) != 0) { + CZoomM[lbl_1_bss_90] += 10.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_Y) != 0) { + CZoomM[lbl_1_bss_90] -= 10.0f; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) { + OSReport("\nCZoom = %.2f \n", CZoomM[lbl_1_bss_90]); + OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", CenterM[lbl_1_bss_90].x, CenterM[lbl_1_bss_90].y, CenterM[lbl_1_bss_90].z); + OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRotM[lbl_1_bss_90].x, CRotM[lbl_1_bss_90].y, CRotM[lbl_1_bss_90].z); + } + } +} diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c new file mode 100644 index 00000000..fe097531 --- /dev/null +++ b/src/REL/m427Dll/player.c @@ -0,0 +1,2361 @@ +#include "REL/m427Dll.h" + +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M427DllPlayerWork2 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ s32 unk_44; + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ s32 unk_64; + /* 0x68 */ float unk_68; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; +} M427DllPlayerWork2; /* size = 0x74 */ + +typedef struct M427DllPlayerWork { + /* 0x00 */ omObjData *unk_00[2]; + /* 0x08 */ M427DllPlayerWork2 *unk_08[2]; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ s32 unk_30[5]; + /* 0x34 */ char unk44[8]; + /* 0x4C */ float unk_4C; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ float unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ float unk_64; + /* 0x68 */ s32 unk_68; + /* 0x6C */ char unk6C[4]; +} M427DllPlayerWork; /* size = 0x70 */ + +typedef struct M427DllBss57CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ Vec unk_1C; + /* 0x28 */ Vec unk_28; + /* 0x34 */ float unk_34; + /* 0x38 */ char unk38[4]; +} M427DllBss57CStruct; /* size = 0x3C */ + +typedef struct M427DllBss590Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ Vec unk_14[2]; + /* 0x2C */ Vec unk_2C[2]; + /* 0x44 */ Vec unk_44; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ float unk_5C; + /* 0x60 */ float unk_60; + /* 0x64 */ float unk_64; + /* 0x68 */ float unk_68; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; + /* 0x74 */ float unk_74; + /* 0x78 */ Vec *unk_78; + /* 0x7C */ Vec *unk_7C; + /* 0x80 */ Vec *unk_80; +} M427DllBss590Struct; /* size = 0x84 */ + +void fn_1_10830(omObjData *object); +void fn_1_1143C(omObjData *object); +void fn_1_115B4(omObjData *object); +void fn_1_119C0(omObjData *object); +void fn_1_11A74(omObjData *object); +void fn_1_11ED8(omObjData *object); +void fn_1_12514(omObjData *object); +void fn_1_12518(omObjData *object); +void fn_1_12580(omObjData *object); +void fn_1_12B08(void); +void fn_1_13F24(void); +void fn_1_13FB8(void); +s32 fn_1_155E0(float arg8, float arg9, float argA, float *arg0); +float fn_1_15714(float arg8, float arg9); +void fn_1_158D8(float arg8, float arg9, Vec *arg0); +s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4); +void fn_1_1607C(s32 arg0); +s32 fn_1_160D4(s32 arg0, Vec *arg1, float arg8); +s32 fn_1_16260(s32 arg0, Vec *arg2, Vec *arg3, Vec *arg4, float arg8); +float fn_1_16594(float arg8, float arg9); +void fn_1_16E3C(Vec *arg0, Vec *arg1, Vec *arg2, s32 arg3); +void fn_1_17048(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3); +void fn_1_1723C(Mtx arg0, Vec *arg1); +void fn_1_172F0(s32 arg0, float arg8); +s32 fn_1_17430(s32 arg0, s32 arg1, s32 arg2); +void fn_1_EC74(omObjData *object); +void fn_1_EC94(omObjData *object); +void fn_1_F0E0(omObjData *object); + +Vec lbl_1_data_260[0x1D] = { + { -900.0f, 0.0f, 2000.0f }, + { -900.0f, 0.0f, 0.0f }, + { -900.0f, 0.0f, -2000.0f }, + { -900.0f, 0.0f, -4000.0f }, + { -1300.0f, 0.0f, -4500.0f }, + { -1600.0f, 0.0f, -5000.0f }, + { -1800.0f, 0.0f, -5500.0f }, + { -1900.0f, 0.0f, -6000.0f }, + { -1800.0f, 0.0f, -6500.0f }, + { -1600.0f, -100.0f, -7000.0f }, + { -1300.0f, -200.0f, -7500.0f }, + { -900.0f, -300.0f, -8000.0f }, + { -900.0f, -300.0f, -8500.0f }, + { -500.0f, -300.0f, -9000.0f }, + { -500.0f, -300.0f, -10000.0f }, + { -500.0f, -300.0f, -11000.0f }, + { -900.0f, -300.0f, -11500.0f }, + { -900.0f, -300.0f, -12000.0f }, + { -500.0f, -300.0f, -12500.0f }, + { -200.0f, -300.0f, -13000.0f }, + { -0.0f, -300.0f, -13500.0f }, + { 100.0f, -300.0f, -14000.0f }, + { 0.0f, -300.0f, -14500.0f }, + { -200.0f, -400.0f, -15000.0f }, + { -500.0f, -500.0f, -15500.0f }, + { -900.0f, -600.0f, -16000.0f }, + { -900.0f, -600.0f, -18000.0f }, + { -900.0f, -600.0f, -20000.0f }, + { -900.0f, -600.0f, -22000.0f }, +}; +Vec lbl_1_data_3BC[29] = { + { 900.0f, 0.0f, 2000.0f }, + { 900.0f, 0.0f, -0.0f }, + { 900.0f, 0.0f, -2000.0f }, + { 900.0f, 0.0f, -4000.0f }, + { 500.0f, 0.0f, -4500.0f }, + { 200.0f, 0.0f, -5000.0f }, + { 0.0f, 0.0f, -5500.0f }, + { -100.0f, 0.0f, -6000.0f }, + { 0.0f, 0.0f, -6500.0f }, + { 200.0f, -100.0f, -7000.0f }, + { 500.0f, -200.0f, -7500.0f }, + { 900.0f, -300.0f, -8000.0f }, + { 900.0f, -300.0f, -8500.0f }, + { 500.0f, -300.0f, -9000.0f }, + { 500.0f, -300.0f, -10000.0f }, + { 500.0f, -300.0f, -11000.0f }, + { 900.0f, -300.0f, -11500.0f }, + { 900.0f, -300.0f, -12000.0f }, + { 1300.0f, -300.0f, -12500.0f }, + { 1600.0f, -300.0f, -13000.0f }, + { 1800.0f, -300.0f, -13500.0f }, + { 1900.0f, -300.0f, -14000.0f }, + { 1800.0f, -300.0f, -14500.0f }, + { 1600.0f, -400.0f, -15000.0f }, + { 1300.0f, -500.0f, -15500.0f }, + { 900.0f, -600.0f, -16000.0f }, + { 900.0f, -600.0f, -18000.0f }, + { 900.0f, -600.0f, -20000.0f }, + { 900.0f, -600.0f, -22000.0f }, +}; +s32 lbl_1_data_518[7] = { 0, 1, 2, 3, 4, 5, 6 }; +Vec lbl_1_data_534[2] = { { 0.0f, -25.0f, 50.0f }, { 0.0f, -25.0f, -50.0f } }; +Vec lbl_1_data_54C[2] = { { 0.0f, 0.0f, 1900.0f }, { 0.0f, 20.0f, 20.0f } }; +Vec lbl_1_data_564 = { 0.0f, 240.00002f, 360.0f }; +Vec lbl_1_data_570 = { 0.0f, 1.0f, 1.5f }; +GXColor lbl_1_data_57C = { 0xFF, 0xFF, 0xFF, 0xFF }; + +Process *lbl_1_bss_594; +M427DllBss590Struct *lbl_1_bss_590; +Vec *lbl_1_bss_58C; +Vec *lbl_1_bss_588; +Vec *lbl_1_bss_584; +s32 lbl_1_bss_580; +M427DllBss57CStruct *lbl_1_bss_57C; +M427DllPlayerWork *lbl_1_bss_578; +M427DllPlayerWork2 *lbl_1_bss_574; +omObjData *lbl_1_bss_56C[2]; +char lbl_1_bss_55C[0x10]; +Vec *lbl_1_bss_558; +Vec *lbl_1_bss_554; +Vec *lbl_1_bss_550; + +void fn_1_E98C(Process *sp8) +{ + s32 sp10; + omObjData *object; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + s8 spE[2] = { 0xFF, 0xFF }; + s8 spC[2] = { 0xFF, 0xFF }; + sp10 = 0; + OSReport("Init Player \n"); + lbl_1_bss_594 = sp8; + object = omAddObjEx(lbl_1_bss_594, 0x42, 0, 0, -1, fn_1_EC74); + omMakeGroupEx(lbl_1_bss_594, 0, 4); + omGetGroupMemberListEx(lbl_1_bss_594, 0); + for (var_r30 = 0, var_r28 = 0, var_r27 = 0, var_r29 = 0; var_r30 < 4; var_r30++) { + var_r26 = GWPlayerCfg[var_r30].group; + switch (var_r26) { + case 0: + if (var_r28 >= 2) { + var_r29 = 1; + } + else { + spE[var_r28] = var_r30; + var_r28++; + } + break; + case 1: + if (var_r27 >= 2) { + var_r29 = 1; + } + else { + spC[var_r27] = var_r30; + var_r27++; + } + break; + default: + var_r29 = 1; + break; + } + if (var_r29 != 0) { + break; + } + } + lbl_1_bss_578 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M427DllPlayerWork), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_578, 0, 0xE0); + lbl_1_bss_574 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(M427DllPlayerWork2), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_574, 0, 0x1D0); + memset(lbl_1_bss_56C, 0, 8); + memset(lbl_1_bss_55C, 0, 0x10); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30] = omAddObjEx(lbl_1_bss_594, 0x41, 0xE, 0, -1, fn_1_EC94); + object->work[0] = var_r30; + if (var_r29 != 0) { + object->work[1] = var_r30 * 2; + object->work[2] = (var_r30 * 2) + 1; + } + else if (var_r30 == 0) { + object->work[1] = spE[0]; + object->work[2] = spE[1]; + } + else { + object->work[1] = spC[0]; + object->work[2] = spC[1]; + } + } + fn_1_12B08(); +} + +s32 lbl_1_data_590[7] = { 0x3A001C, 0x3A001D, 0x3A001E, 0x3A001F, 0x3A0020, 0x3A0026, 0x3A0027 }; +s32 lbl_1_data_5AC[7] = { 0x3A0021, 0x3A0022, 0x3A0023, 0x3A0024, 0x3A0025, 0x3A0026, 0x3A0027 }; +s32 lbl_1_data_5C8[2] = { 1, 3 }; +s32 lbl_1_data_5D0[2] = { 2, 4 }; + +void fn_1_EC54(void) +{ + fn_1_13FB8(); +} + +void fn_1_EC74(omObjData *object) +{ + fn_1_13F24(); +} + +void fn_1_EC94(omObjData *object) +{ + M427DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + work = &lbl_1_bss_578[object->work[0]]; + object->data = work; + work->unk_10 = object->work[0]; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_1C = 0; + work->unk_20 = 0; + work->unk_24 = 0; + work->unk_28 = 0.0f; + work->unk_2C = 0.0f; + work->unk_4C = 0.0f; + work->unk_50 = 0.0f; + work->unk_54 = 0.0f; + work->unk_58 = 0.0f; + work->unk_5C = 0.0f; + work->unk_60 = 0; + work->unk_64 = 180.0f; + work->unk_68 = 0; + object->trans.x = lbl_1_data_54C->x; + object->trans.y = lbl_1_data_54C->y; + object->trans.z = lbl_1_data_54C->z; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + if (work->unk_10 == 0) { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_590[var_r29]); + } + else { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_5AC[var_r29]); + } + Hu3DModelLayerSet(object->model[var_r29], 2); + if (work->unk_10 == 0) { + Hu3DModelCameraSet(object->model[var_r29], 1); + } + else { + Hu3DModelCameraSet(object->model[var_r29], 2); + } + if (var_r29 < 5) { + Hu3DMotionSpeedSet(object->model[var_r29], 2.0f); + } + } + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[0], 2.0f); + Hu3DModelLayerSet(object->model[5], 5); + Hu3DModelAttrSet(object->model[5], HU3D_MOTATTR_LOOP); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if (var_r29 == 0) { + var_r28 = object->model[var_r29]; + var_r27 = Hu3DLLightCreateV(var_r28, &lbl_1_data_564, &lbl_1_data_570, &lbl_1_data_57C); + work->unk_30[var_r29] = var_r27; + Hu3DLLightStaticSet(var_r28, var_r27, 1); + Hu3DLLightPointSet(var_r28, var_r27, 80.0f, 0.95f, 3); + Hu3DLLightColorSet(var_r28, var_r27, 0xFF, 0xF0, 0xDC, 0xFF); + Hu3DLLightPosSet( + var_r28, var_r27, lbl_1_data_564.x, lbl_1_data_564.y, lbl_1_data_564.z, lbl_1_data_570.x, lbl_1_data_570.y, lbl_1_data_570.z); + } + else { + var_r28 = object->model[var_r29]; + work->unk_30[var_r29] = fn_1_17430(object->model[0], work->unk_30[0], var_r28); + } + fn_1_172F0(var_r28, 0.1f); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_00[var_r29] = omAddObjEx(lbl_1_bss_594, 0x40, 2, 4, -1, fn_1_11A74); + work->unk_00[var_r29]->work[0] = object->work[var_r29 + 1]; + work->unk_00[var_r29]->work[1] = work->unk_10; + work->unk_00[var_r29]->work[2] = var_r29; + } + object->func = fn_1_F0E0; +} + +void fn_1_F0E0(omObjData *object) +{ + Mtx sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M427DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + + work = object->data; + if ((work->unk_00[0] == NULL) || (work->unk_08[0] == NULL)) { + return; + } + sp2C.x = object->trans.x; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z; + switch (work->unk_1C) { + case 0: + object->rot.y = work->unk_64 = 180.0f; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if ((work->unk_08[var_r29]->unk_30 != 0) && (Hu3DMotionEndCheck(object->model[lbl_1_data_5C8[var_r29]]) != 0)) { + fn_1_3B20(var_r29 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5C8[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + if ((work->unk_08[var_r29]->unk_34 != 0) && (Hu3DMotionEndCheck(object->model[lbl_1_data_5D0[var_r29]]) != 0)) { + fn_1_3B20((var_r29 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5D0[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + if (fn_1_1788() == 3) { + work->unk_1C = 1; + } + break; + case 1: + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + if (fn_1_1788() == 4) { + work->unk_1C = 2; + } + break; + case 2: + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_08[var_r29]->unk_30 != 0) { + work->unk_58 += 0.1f; + if (Hu3DMotionEndCheck(object->model[lbl_1_data_5C8[var_r29]]) != 0) { + fn_1_3B20(var_r29 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5C8[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (work->unk_08[var_r29]->unk_34 != 0) { + work->unk_5C += 0.1f; + if (Hu3DMotionEndCheck(object->model[lbl_1_data_5D0[var_r29]]) != 0) { + fn_1_3B20((var_r29 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5D0[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + } + fn_1_158D8(object->trans.x, object->trans.z, &sp8); + work->unk_4C += 0.15f * sp8.x; + work->unk_54 += 0.15f * sp8.z; + work->unk_58 *= 0.995f; + work->unk_5C *= 0.995f; + work->unk_4C *= 0.99f; + work->unk_54 *= 0.99f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f30 = 0.25f * (work->unk_58 - work->unk_5C); + if (var_f30 > 20.0f) { + var_f30 = 20.0f; + } + else if (var_f30 < -20.0f) { + var_f30 = -20.0f; + } + work->unk_64 += var_f30; + if (work->unk_64 > 360.0f) { + work->unk_64 -= 360.0f; + } + else if (work->unk_64 < 0.0f) { + work->unk_64 += 360.0f; + } + if (work->unk_64 > 270.0f) { + work->unk_64 = 270.0f; + } + else if (work->unk_64 < 90.0f) { + work->unk_64 = 90.0f; + } + object->rot.y = work->unk_64; + var_f31 = work->unk_60; + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + if (work->unk_68 > 0) { + work->unk_68--; + } + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + if ((work->unk_68 == 0) && (fn_1_1788() <= 4)) { + if (work->unk_10 == 0) { + HuAudFXPlay(0x65C); + } + else { + HuAudFXPlay(0x65D); + } + } + work->unk_68 = 5; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + if (work->unk_20 <= 0) { + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_160D4(work->unk_10, &sp20, 200.0f) != 0) { + omVibrate(work->unk_08[0]->unk_00, 0xC, 6, 6); + omVibrate(work->unk_08[1]->unk_00, 0xC, 6, 6); + HuAudCharVoicePlay(work->unk_08[0]->unk_0C, 0x123); + HuAudCharVoicePlay(work->unk_08[1]->unk_0C, 0x123); + work->unk_24 = 0x78; + work->unk_1C = 3; + work->unk_28 = 5.0f; + work->unk_2C = 360.0f * ((frand() & 0x7F) / 127.0f); + work->unk_18 = 0; + } + } + else { + work->unk_20--; + } + fn_1_119C0(object); + if (fn_1_1788() >= 5) { + work->unk_1C = 4; + } + break; + case 3: + work->unk_58 = 0.0f; + work->unk_5C = 0.0f; + work->unk_4C = 0.0f; + work->unk_54 = 0.0f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f31 = work->unk_60 / 5.0f; + var_f31 = 5.0f * (var_f31 * var_f31); + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + if ((--work->unk_24 > 0) && ((work->unk_18 & 3) == 0)) { + omVibrate(work->unk_08[0]->unk_00, 0xC, 6, 6); + omVibrate(work->unk_08[1]->unk_00, 0xC, 6, 6); + } + if (work->unk_18 >= 120.0f) { + work->unk_1C = 2; + work->unk_20 = 0xB4; + work->unk_18 = 0; + } + fn_1_119C0(object); + if (fn_1_1788() >= 7) { + work->unk_20 = 0; + work->unk_18 = 0; + work->unk_1C = 4; + object->func = fn_1_10830; + } + break; + case 4: + work->unk_58 *= 0.993f; + work->unk_5C *= 0.993f; + work->unk_4C *= 0.993f; + work->unk_54 *= 0.993f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f31 = work->unk_60 / 5.0f; + var_f31 = 5.0f * (var_f31 * var_f31); + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + work->unk_20 = 0; + if (fn_1_1788() >= 7) { + work->unk_18 = 0; + work->unk_1C = 4; + object->func = fn_1_10830; + } + break; + case 5: + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + break; + case 6: + break; + case 7: + break; + } + var_f31 = work->unk_60 / 5.0f; + Hu3DMotionSpeedSet(object->model[0], 2.0f * var_f31); + if (work->unk_1C == 3) { + work->unk_2C += (frand() & 3) + 2; + object->rot.x = 0.0f; + object->rot.z = 0.0f; + work->unk_28 = 5.0f - (5.0f * (0.008333334f * work->unk_18)); + var_f29 = 7.0 * (work->unk_28 * sind((10.0f * work->unk_18))); + object->rot.x = object->rot.x + (var_f29 * sind(work->unk_2C)); + object->rot.z = object->rot.z + (var_f29 * cosd(work->unk_2C)); + } + if (((work->unk_1C == 3) || (work->unk_20 != 0)) && ((work->unk_18 & 1) != 0)) { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_00[var_r29]->model[0] != -1) { + Hu3DModelAttrSet(*work->unk_00[var_r29]->model, HU3D_ATTR_DISPOFF); + } + } + } + else { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelAttrReset(object->model[var_r29], HU3D_ATTR_DISPOFF); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_00[var_r29]->model[0] != -1) { + Hu3DModelAttrReset(*work->unk_00[var_r29]->model, HU3D_ATTR_DISPOFF); + } + } + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_08[var_r29]->unk_24 = work->unk_1C; + } + object->trans.y = fn_1_AE78(work->unk_10, object->trans.x, object->trans.z); + mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); + sp38[1][0] *= object->scale.y; + sp38[1][1] *= object->scale.y; + sp38[1][2] *= object->scale.z; + sp20.x = 0.0f; + sp20.y = 0.0f; + sp20.z = 100.0f; + fn_1_1723C(sp38, &sp20); + sp20.x += object->trans.x; + sp20.y += object->trans.y; + sp20.z += object->trans.z; + fn_1_91E0(work->unk_10, sp20.x, sp20.y, sp20.z, 180.0f + object->rot.y); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + sp20 = lbl_1_data_534[var_r29]; + fn_1_1723C(sp38, &sp20); + work->unk_00[var_r29]->trans.x = object->trans.x + sp20.x; + work->unk_00[var_r29]->trans.y = object->trans.y + sp20.y; + work->unk_00[var_r29]->trans.z = object->trans.z + sp20.z; + work->unk_00[var_r29]->rot.x = object->rot.x; + work->unk_00[var_r29]->rot.y = object->rot.y; + work->unk_00[var_r29]->rot.z = object->rot.z; + } + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelPosSet(object->model[var_r29], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r29], object->rot.x, object->rot.y, object->rot.z); + } + fn_1_1143C(object); + if ((fn_1_32EC() == 0) && (object->func != fn_1_10830) && ((work->unk_1C == 2) || (work->unk_1C == 3))) { + fn_1_115B4(object); + } + work->unk_18++; +} + +s32 lbl_1_data_5F8[2] = { 1, 3 }; +s32 lbl_1_data_600[2] = { 2, 4 }; +s32 lbl_1_data_608[4] = { 0x3A002F, 0x3A0037, 0x3A003F, 0x3A0047 }; +s32 lbl_1_data_618[4] = { 15, 10, 6, 5 }; + +void fn_1_10830(omObjData *object) +{ + Mtx sp14; + Vec sp8; + s32 var_r30; + M427DllPlayerWork *work; + s32 var_r28; + s32 var_r27; + + work = object->data; + switch (work->unk_1C) { + case 4: + var_r27 = fn_1_1884(); + if (var_r27 == 3) { + break; + } + if (var_r27 == work->unk_10) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelCameraSet(*work->unk_00[var_r30]->model, 1); + Hu3DModelLayerSet(*work->unk_00[var_r30]->model, 3); + fn_1_172F0(work->unk_00[var_r30]->model[0], 5.0f); + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + Hu3DModelCameraSet(object->model[var_r30], 1); + Hu3DModelLayerSet(object->model[var_r30], 3); + if (var_r30 < 5) { + fn_1_172F0(object->model[var_r30], 5.0f); + } + } + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + work->unk_00[var_r30]->model[1] = Hu3DModelLink(*work->unk_00[var_r30]->model); + Hu3DModelCameraSet(work->unk_00[var_r30]->model[1], 1); + Hu3DModelLayerSet(work->unk_00[var_r30]->model[1], 1); + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + object->model[var_r30 + 7] = Hu3DModelLink(object->model[var_r30]); + Hu3DModelCameraSet(object->model[var_r30 + 7], 1); + Hu3DModelLayerSet(object->model[var_r30 + 7], 1); + } + object->trans.x = object->trans.y = object->trans.z = 0.0f; + object->rot.x = object->rot.z = 0.0f; + object->rot.y = 180.0f; + work->unk_1C = 5; + break; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelAttrSet(work->unk_00[var_r30]->model[0], HU3D_ATTR_DISPOFF); + work->unk_00[var_r30]->func = NULL; + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); + } + object->func = NULL; + return; + case 5: + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r28 = lbl_1_data_5F8[var_r30]; + if ((work->unk_08[var_r30]->unk_30 != 0) && (Hu3DMotionEndCheck(object->model[var_r28]) != 0)) { + fn_1_3B20(var_r30 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[var_r28], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + var_r28 = lbl_1_data_600[var_r30]; + if ((work->unk_08[var_r30]->unk_34 != 0) && (Hu3DMotionEndCheck(object->model[var_r28]) != 0)) { + fn_1_3B20((var_r30 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[var_r28], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (fn_1_1788() >= 0xC) { + work->unk_1C = 6; + } + break; + case 6: + case 7: + break; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + work->unk_08[var_r30]->unk_24 = work->unk_1C; + } + mtxRot(sp14, object->rot.x, object->rot.y, object->rot.z); + sp14[1][0] *= object->scale.y; + sp14[1][1] *= object->scale.y; + sp14[1][2] *= object->scale.z; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 100.0f; + fn_1_1723C(sp14, &sp8); + sp8.x += object->trans.x; + sp8.y += object->trans.y; + sp8.z += object->trans.z; + fn_1_91E0(work->unk_10, sp8.x, sp8.y, sp8.z, 180.0f + object->rot.y); + object->trans.y = fn_1_AE78(work->unk_10, object->trans.x, object->trans.z); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp8 = lbl_1_data_534[var_r30]; + fn_1_1723C(sp14, &sp8); + work->unk_00[var_r30]->trans.x = object->trans.x + sp8.x; + work->unk_00[var_r30]->trans.y = object->trans.y + sp8.y; + work->unk_00[var_r30]->trans.z = object->trans.z + sp8.z; + work->unk_00[var_r30]->rot.x = object->rot.x; + work->unk_00[var_r30]->rot.y = object->rot.y; + work->unk_00[var_r30]->rot.z = object->rot.z; + if (work->unk_00[var_r30]->model[1] != -1) { + Hu3DModelPosSet( + work->unk_00[var_r30]->model[1], -work->unk_00[var_r30]->trans.x, work->unk_00[var_r30]->trans.y, work->unk_00[var_r30]->trans.z); + Hu3DModelRotSet( + work->unk_00[var_r30]->model[1], work->unk_00[var_r30]->rot.x, -work->unk_00[var_r30]->rot.y, work->unk_00[var_r30]->rot.z); + } + } + for (var_r30 = 0; var_r30 < 0xE; var_r30++) { + if (object->model[var_r30] != -1) { + if (var_r30 < 7) { + Hu3DModelPosSet(object->model[var_r30], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r30], object->rot.x, object->rot.y, object->rot.z); + } + else { + Hu3DModelPosSet(object->model[var_r30], -object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r30], object->rot.x, -object->rot.y, object->rot.z); + } + } + } + work->unk_64 = 200.0f; + fn_1_1143C(object); + work->unk_18++; +} + +void fn_1_10F8C(omObjData *object) +{ + s32 var_r31; + M427DllPlayerWork *work = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_12514(work->unk_00[var_r31]); + } +} + +s32 fn_1_10FE8(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return -1; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return -1; + } + for (var_r31 = 0; var_r31 < 7; var_r31++) { + if (var_r31 < 5) { + arg1[var_r31] = var_r29->model[var_r31]; + } + else if (var_r31 < 6) { + arg1[var_r31] = var_r30->unk_00[0]->model[0]; + } + else { + arg1[var_r31] = var_r30->unk_00[1]->model[0]; + } + } + return var_r31; +} + +void fn_1_110E8(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = 0; + } + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = var_r30->unk_08[var_r31]->unk_0C; + } +} + +void fn_1_111C0(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = 0; + } + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = var_r30->unk_08[var_r31]->unk_00; + } +} + +void fn_1_11298(float var_f30) +{ + float var_f31; + omObjData *object; + s32 var_r30; + + if (fn_1_1788() < 4) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30]; + if (object) { + object->trans.z = 1900.0f + (-1800.0f * var_f30); + } + } + return; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30]; + if (object) { + object->trans.z = -1800.0f * var_f30; + if (object->trans.z < -1500.0f) { + var_f31 = (object->trans.z - -1500.0f) / 300.0f; + object->rot.y = 180.0f - (30.0f * var_f31); + } + } + } +} + +s32 fn_1_113F0(s32 arg0) +{ + M427DllPlayerWork *work; + omObjData *object; + + object = lbl_1_bss_56C[arg0]; + work = object->data; + if (work->unk_14 == 3) { + return 1; + } + return 0; +} + +void fn_1_1143C(omObjData *object) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + M427DllPlayerWork *work; + s32 var_r29; + + work = object->data; + mtxRot(sp20, 0.0f, work->unk_64, 0.0f); + sp14 = lbl_1_data_564; + fn_1_1723C(sp20, &sp14); + sp14.x += object->trans.x; + sp14.y += object->trans.y; + sp14.z += object->trans.z; + sp8.x = sp8.z = 0.0f; + sp8.y = 1.0f; + Hu3DLLightPosSet(object->model[0], work->unk_30[0], sp14.x, sp14.y, sp14.z, sp8.x, sp8.y, sp8.z); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (*work->unk_00[var_r29]->model != -1) { + Hu3DLLightPosSet(work->unk_00[var_r29]->model[0], work->unk_08[var_r29]->unk_14, sp14.x, sp14.y, sp14.z, sp8.x, sp8.y, sp8.z); + } + } +} + +void fn_1_115B4(omObjData *object) +{ + Vec spC; + float sp8; + float var_f31; + float var_f30; + float var_f29; + M427DllBss590Struct *var_r31; + M427DllPlayerWork *work; + s32 var_r28; + + work = object->data; + var_r28 = fn_1_155E0(object->trans.x, object->trans.y, object->trans.z, &sp8); + if ((var_r28 < 0) || (var_r28 >= (lbl_1_bss_580 - 1))) { + return; + } + var_r31 = &lbl_1_bss_590[var_r28]; + spC.x = var_r31->unk_44.x + (sp8 * var_r31->unk_50); + spC.y = 275.0f + (var_r31->unk_44.y + (sp8 * var_r31->unk_54)); + spC.z = var_r31->unk_44.z + (sp8 * var_r31->unk_58); + var_f29 = object->trans.x - spC.x; + spC.x += 0.4f * var_f29; + if (var_f29 < 0.0f) { + var_f30 = fabs(var_r31->unk_5C + (sp8 * (var_r31->unk_64 - var_r31->unk_5C))); + } + else { + var_f30 = fabs(var_r31->unk_60 + (sp8 * (var_r31->unk_68 - var_r31->unk_60))); + } + CenterM[work->unk_10].x = CenterM[work->unk_10].x + (0.06666667f * (spC.x - CenterM[work->unk_10].x)); + CenterM[work->unk_10].y = CenterM[work->unk_10].y + (0.06666667f * (spC.y - CenterM[work->unk_10].y)); + CenterM[work->unk_10].z = CenterM[work->unk_10].z + (0.06666667f * (spC.z - CenterM[work->unk_10].z)); + var_f31 = var_r31->unk_0C; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + var_f31 = 180.0f + (0.25f * (var_f31 - 180.0f)); + if (var_f30 != 0.0f) { + var_f30 = var_f29 / var_f30; + } + var_f31 -= 30.0f * var_f30; + CRotM[work->unk_10].y = fn_1_168FC(0.020000001f, CRotM[work->unk_10].y, 180.0f + var_f31); +} + +void fn_1_119C0(omObjData *object) +{ + float var_f31; + float var_f30; + M427DllBss590Struct *var_r31; + M427DllPlayerWork *work; + M427DllBss590Struct *var_r28; + + work = object->data; + var_r31 = &lbl_1_bss_590[1]; + var_r28 = &lbl_1_bss_590[27]; + var_f31 = var_r28->unk_80->z - var_r31->unk_80->z; + var_f30 = object->trans.z - var_r31->unk_80->z; + fn_1_1798(work->unk_10, var_f30 / var_f31); +} + +void fn_1_11A74(omObjData *object) +{ + M427DllPlayerWork2 *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + M427DllPlayerWork *var_r26; + + var_r31 = &lbl_1_bss_574[object->work[0]]; + object->data = var_r31; + var_r26 = &lbl_1_bss_578[object->work[1]]; + lbl_1_bss_578[object->work[1]].unk_08[object->work[2]] = var_r31; + var_r31->unk_00 = object->work[0]; + var_r31->unk_04 = object->work[1]; + var_r31->unk_08 = GWPlayerCfg[var_r31->unk_00].pad_idx; + var_r31->unk_0C = GWPlayerCfg[var_r31->unk_00].character; + var_r31->unk_10 = object->work[2]; + var_r31->unk_18 = GWPlayerCfg[var_r31->unk_00].iscom; + var_r31->unk_1C = GWPlayerCfg[var_r31->unk_00].diff; + var_r31->unk_20 = 0; + var_r31->unk_24 = 0; + var_r31->unk_28 = 0; + var_r31->unk_30 = 0; + var_r31->unk_34 = 0; + var_r31->unk_38 = 0; + var_r31->unk_3C = 0; + var_r31->unk_40 = var_r31->unk_44 = 0; + var_r31->unk_48 = var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_54 = 0; + var_r31->unk_60 = lbl_1_data_618[var_r31->unk_1C]; + var_r31->unk_58 = frand() % var_r31->unk_60; + var_r31->unk_5C = frand() % 7; + var_r31->unk_64 = -1; + var_r31->unk_68 = var_r31->unk_6C = var_r31->unk_70 = 0.0f; + if (var_r31->unk_18 != 0) { + var_r26->unk_14 |= 1 << var_r31->unk_10; + } + var_r27 = var_r31->unk_0C; + object->model[0] = CharModelCreate(var_r27, 4); + Hu3DModelLayerSet(object->model[0], 2); + if (var_r31->unk_04 == 0) { + Hu3DModelCameraSet(object->model[0], 1); + } + else { + Hu3DModelCameraSet(object->model[0], 2); + } + if (var_r31->unk_10 != 0) { + fn_1_172F0(object->model[0], 0.3f); + } + else { + fn_1_172F0(object->model[0], 0.3f); + } + CharModelStepTypeSet(var_r27, 3); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r31->unk_0C + lbl_1_data_608[var_r29]); + } + var_r31->unk_2C = 0; + CharModelMotionSet(var_r31->unk_0C, object->motion[0]); + CharModelMotionDataClose(var_r27); + var_r28 = Hu3DLLightCreateV(object->model[0], &lbl_1_data_564, &lbl_1_data_570, &lbl_1_data_57C); + var_r31->unk_14 = var_r28; + Hu3DLLightStaticSet(object->model[0], var_r28, 1); + if (var_r31->unk_10 == 0) { + Hu3DLLightPointSet(object->model[0], var_r28, 80.0f, 0.95f, 3); + } + else { + Hu3DLLightPointSet(object->model[0], var_r28, 80.0f, 0.95f, 3); + } + Hu3DLLightColorSet(object->model[0], var_r28, 0xFF, 0xFF, 0xFF, 0xFF); + Hu3DLLightPosSet( + object->model[0], var_r28, lbl_1_data_564.x, lbl_1_data_564.y, lbl_1_data_564.z, lbl_1_data_570.x, lbl_1_data_570.y, lbl_1_data_570.z); + object->func = fn_1_11ED8; + (void)var_r29; +} + +void fn_1_11ED8(omObjData *object) +{ + M427DllPlayerWork2 *var_r31; + s32 var_r29; + M427DllPlayerWork *var_r28; + omObjData *var_r27; + + var_r31 = object->data; + var_r28 = &lbl_1_bss_578[var_r31->unk_04]; + var_r27 = lbl_1_bss_56C[var_r31->unk_04]; + var_r31->unk_40 = HuPadBtn[var_r31->unk_08]; + var_r31->unk_44 = HuPadBtnDown[var_r31->unk_08]; + if ((var_r31->unk_18 != 0) && (var_r31->unk_24 == 2)) { + if (var_r28->unk_14 == 3) { + fn_1_12580(object); + } + else { + fn_1_12518(object); + } + } + var_r31->unk_38 = var_r31->unk_3C = 0; + if (var_r31->unk_30 != 0) { + var_r31->unk_38 = 1; + } + if (var_r31->unk_34 != 0) { + var_r31->unk_3C = 1; + } + var_r31->unk_30 = var_r31->unk_34 = 0; + switch (var_r31->unk_24) { + case 0: + if (((var_r31->unk_20 & 0xF) == 0) && (var_r27->trans.z > 100.0f)) { + var_r31->unk_30 = 1; + var_r31->unk_34 = 1; + } + var_r29 = 1; + if (var_r29 != var_r31->unk_2C) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + break; + case 1: + var_r29 = 0; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + var_r31->unk_28 = 0; + } + break; + case 2: + if (fn_1_32EC() == 0) { + if ((var_r31->unk_44 & 0x100) != 0) { + var_r31->unk_30 = 1; + } + if ((var_r31->unk_44 & 0x200) != 0) { + var_r31->unk_34 = 1; + } + } + var_r31->unk_48 = var_r31->unk_40; + var_r31->unk_4C = var_r31->unk_44; + if ((var_r31->unk_30 != 0) || (var_r31->unk_34 != 0)) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((CharModelMotionShiftIDGet(var_r31->unk_0C) == -1) + && ((var_r29 != var_r31->unk_2C) || (CharModelMotionEndCheck(var_r31->unk_0C) == 1))) { + if (var_r31->unk_2C == var_r29) { + CharModelMotionTimeSet(var_r31->unk_0C, 0.0f); + } + else { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0); + } + } + break; + case 3: + var_r29 = 2; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + var_r31->unk_28 = 0; + } + if (var_r31->unk_2C == 2) { + if (++var_r31->unk_28 >= 240.0f) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + } + } + break; + case 4: + var_r29 = 0; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + if (object->model[1] != -1) { + Hu3DMotionShiftSet(object->model[1], object->motion[var_r31->unk_2C], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + else { + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + var_r31->unk_28 = 0; + } + break; + case 5: + if (object->trans.z > -1300.0f) { + if ((var_r31->unk_20 & 0xF) == 0) { + var_r31->unk_30 = 1; + var_r31->unk_34 = 1; + } + var_r29 = 1; + } + else { + var_r29 = 0; + } + if (var_r31->unk_2C == 1) { + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + } + if ((CharModelMotionShiftIDGet(var_r31->unk_0C) == -1) && (var_r29 != var_r31->unk_2C)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + break; + case 6: + var_r29 = 3; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0); + HuAudCharVoicePlay(var_r31->unk_0C, 0x124); + var_r31->unk_28 = 0; + } + break; + case 7: + break; + } + var_r31->unk_20++; +} + +void fn_1_12514(omObjData *object) { } + +void fn_1_12518(omObjData *object) +{ + M427DllPlayerWork *var_r31; + M427DllPlayerWork2 *var_r30; + M427DllPlayerWork2 *var_r29; + + var_r30 = object->data; + var_r31 = &lbl_1_bss_578[var_r30->unk_04]; + if (var_r31->unk_14 == 1) { + var_r29 = var_r31->unk_08[1]; + } + else { + var_r29 = var_r31->unk_08[0]; + } + var_r30->unk_40 = var_r29->unk_48; + var_r30->unk_44 = var_r29->unk_4C; +} + +void fn_1_12580(omObjData *var_r24) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + M427DllPlayerWork2 *var_r31; + M427DllBss590Struct *var_r30; + omObjData *var_r29; + M427DllPlayerWork *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = var_r24->data; + var_r28 = &lbl_1_bss_578[var_r31->unk_04]; + var_r29 = lbl_1_bss_56C[var_r31->unk_04]; + var_r31->unk_40 = 0; + var_r31->unk_44 = 0; + var_r26 = fn_1_155E0(var_r29->trans.x, var_r29->trans.y, var_r29->trans.z, NULL); + if ((var_r31->unk_64 != var_r26) || (var_r31->unk_54 > 180.0f)) { + var_r31->unk_64 = var_r26; + switch (var_r31->unk_1C) { + case 0: + var_r27 = 2; + break; + case 1: + var_r27 = 2; + break; + case 2: + var_r27 = 3; + break; + case 3: + var_r27 = 4; + break; + } + if ((var_r31->unk_64 >= 0) && (var_r31->unk_64 < (lbl_1_bss_580 - var_r27)) && (var_r31->unk_64 <= (lbl_1_bss_580 - 2))) { + var_r26 = var_r31->unk_64 + var_r27; + var_r30 = &lbl_1_bss_590[var_r26]; + var_f31 = 0.5f * (var_r30->unk_64 + var_r30->unk_68); + var_f30 = (0.6f - (0.1f * var_r31->unk_1C)) - (0.1f * var_r31->unk_1C * ((frand() & 0x7F) / 127.0f)); + if (var_f30 > 1.0f) { + var_f30 = 1.0f; + } + else if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + var_f31 *= var_f30; + if ((frand() & 1) != 0) { + var_f31 *= -1.0f; + } + var_r31->unk_68 = var_r30->unk_80->x + var_f31; + var_r31->unk_6C = var_r30->unk_80->y; + var_r31->unk_70 = var_r30->unk_80->z; + } + else { + var_r30 = &lbl_1_bss_590[lbl_1_bss_580 - 1]; + var_r31->unk_68 = var_r30->unk_80->x; + var_r31->unk_6C = var_r30->unk_80->y; + var_r31->unk_70 = var_r30->unk_80->z; + } + var_r31->unk_54 = 0; + } + var_r25 = var_r31->unk_60 + var_r31->unk_5C; + if (var_r28->unk_20 != 0) { + var_r25 = 5; + } + if (++var_r31->unk_58 > var_r25) { + var_r31->unk_58 = 0; + var_r31->unk_5C = frand() % 7; + var_f28 = var_r31->unk_68 - var_r29->trans.x; + var_f27 = var_r31->unk_70 - var_r29->trans.z; + var_f31 = fn_1_16594(atan2d(var_f28, var_f27), var_r28->unk_64); + if (fabs(var_f31) < (30.0f - (5.0f * var_r31->unk_1C))) { + if (var_r31->unk_1C > 2) { + var_f29 = 0.25f * (var_r28->unk_58 - var_r28->unk_5C); + if (var_f29 > 10.0f) { + var_r31->unk_44 |= 0x100; + } + else if (var_f29 < -10.0f) { + var_r31->unk_44 |= 0x200; + } + else { + var_r31->unk_44 |= 0x300; + } + } + else { + var_r31->unk_44 |= 0x300; + } + } + else if (var_f31 < 0.0f) { + var_r31->unk_44 |= 0x200; + } + else { + var_r31->unk_44 |= 0x100; + } + } + var_r31->unk_50++; + var_r31->unk_54++; +} + +void fn_1_12B08(void) +{ + Vec sp20; + float sp1C; + float sp18; + float sp14; + float sp10; + float spC; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M427DllBss590Struct *var_r31; + s32 var_r30; + M427DllBss57CStruct *var_r29; + + lbl_1_bss_580 = 0x1D; + lbl_1_bss_584 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_584, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + lbl_1_bss_584[var_r30].x = 0.5f * (lbl_1_data_260[var_r30].x + lbl_1_data_3BC[var_r30].x); + lbl_1_bss_584[var_r30].y = 0.5f * (lbl_1_data_260[var_r30].y + lbl_1_data_3BC[var_r30].y); + lbl_1_bss_584[var_r30].z = 0.5f * (lbl_1_data_260[var_r30].z + lbl_1_data_3BC[var_r30].z); + } + lbl_1_bss_58C = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_58C, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + VECSubtract(&lbl_1_bss_584[var_r30], &lbl_1_data_260[var_r30], &lbl_1_bss_58C[var_r30]); + VECNormalize(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r30]); + VECScale(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r30], 200.0f); + VECAdd(&lbl_1_bss_58C[var_r30], &lbl_1_data_260[var_r30], &lbl_1_bss_58C[var_r30]); + } + lbl_1_bss_588 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_588, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + VECSubtract(&lbl_1_bss_584[var_r30], &lbl_1_data_3BC[var_r30], &lbl_1_bss_588[var_r30]); + VECNormalize(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r30]); + VECScale(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r30], 200.0f); + VECAdd(&lbl_1_bss_588[var_r30], &lbl_1_data_3BC[var_r30], &lbl_1_bss_588[var_r30]); + } + var_r31 = lbl_1_bss_590 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(M427DllBss590Struct), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_590, 0, lbl_1_bss_580 * sizeof(M427DllBss590Struct)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++, var_r31++) { + var_r31->unk_00 = var_r30; + var_r31->unk_04 = var_r30 + 1; + var_r31->unk_08 = var_r30 - 1; + if (var_r31->unk_04 >= lbl_1_bss_580) { + var_r31->unk_04 = -1; + } + if (var_r31->unk_08 >= lbl_1_bss_580) { + var_r31->unk_08 = -1; + } + var_r31->unk_78 = &lbl_1_bss_58C[var_r30]; + var_r31->unk_7C = &lbl_1_bss_588[var_r30]; + var_r31->unk_80 = &lbl_1_bss_584[var_r30]; + if (var_r31->unk_04 < 0) { + var_r31->unk_0C = 180.0f; + var_r31->unk_70 = 180.0f; + var_r31->unk_74 = 180.0f; + } + else { + var_r31->unk_0C + = atan2d(lbl_1_bss_584[var_r31->unk_04].x - lbl_1_bss_584[var_r30].x, lbl_1_bss_584[var_r31->unk_04].z - lbl_1_bss_584[var_r30].z); + var_r31->unk_70 + = atan2d(lbl_1_bss_58C[var_r31->unk_04].x - lbl_1_bss_58C[var_r30].x, lbl_1_bss_58C[var_r31->unk_04].z - lbl_1_bss_58C[var_r30].z); + var_r31->unk_74 + = atan2d(lbl_1_bss_588[var_r31->unk_04].x - lbl_1_bss_588[var_r30].x, lbl_1_bss_588[var_r31->unk_04].z - lbl_1_bss_588[var_r30].z); + } + if (var_r31->unk_08 < 0) { + var_r31->unk_10 = 0.0f; + } + else { + var_r31->unk_10 + = atan2d(lbl_1_bss_584[var_r31->unk_08].x - lbl_1_bss_584[var_r30].x, lbl_1_bss_584[var_r31->unk_08].z - lbl_1_bss_584[var_r30].z); + } + if (var_r31->unk_04 < 0) { + var_r31->unk_6C = 0.0f; + sp20.x = lbl_1_bss_58C[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_14[1].x; + sp20.y = lbl_1_bss_58C[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_14[1].y; + sp20.z = lbl_1_bss_58C[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_14[1].z; + fn_1_16E3C(&lbl_1_data_260[var_r30], &sp20, &var_r31->unk_14[0], 0); + sp20.x = lbl_1_bss_588[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_2C[1].x; + sp20.y = lbl_1_bss_588[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_2C[1].y; + sp20.z = lbl_1_bss_588[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_2C[1].z; + fn_1_16E3C(&lbl_1_data_3BC[var_r30], &sp20, &var_r31->unk_2C[0], 0); + sp20.x = lbl_1_bss_584[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_50; + sp20.y = lbl_1_bss_584[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_54; + sp20.z = lbl_1_bss_584[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_58; + fn_1_16E3C(&lbl_1_bss_584[var_r30], &sp20, &var_r31->unk_44, 0); + } + else { + sp20.x = lbl_1_bss_584[var_r30 + 1].x - lbl_1_bss_584[var_r30].x; + sp20.y = lbl_1_bss_584[var_r30 + 1].y - lbl_1_bss_584[var_r30].y; + sp20.z = lbl_1_bss_584[var_r30 + 1].z - lbl_1_bss_584[var_r30].z; + var_r31->unk_6C = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + fn_1_16E3C(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r31->unk_04], &var_r31->unk_14[0], 0); + fn_1_16E3C(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r31->unk_04], &var_r31->unk_2C[0], 0); + fn_1_16E3C(&lbl_1_bss_584[var_r30], &lbl_1_bss_584[var_r31->unk_04], &var_r31->unk_44, 0); + } + sp20.x = lbl_1_bss_58C[var_r30].x - lbl_1_bss_584[var_r30].x; + sp20.z = lbl_1_bss_58C[var_r30].z - lbl_1_bss_584[var_r30].z; + sp20.y = 0.0f; + var_r31->unk_5C = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + sp20.x = lbl_1_bss_588[var_r30].x - lbl_1_bss_584[var_r30].x; + sp20.z = lbl_1_bss_588[var_r30].z - lbl_1_bss_584[var_r30].z; + sp20.y = 0.0f; + var_r31->unk_60 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + if (var_r31->unk_04 < 0) { + var_r31->unk_64 = var_r31->unk_5C; + var_r31->unk_68 = var_r31->unk_60; + } + else { + sp20.x = lbl_1_bss_58C[var_r31->unk_04].x - lbl_1_bss_584[var_r31->unk_04].x; + sp20.z = lbl_1_bss_58C[var_r31->unk_04].z - lbl_1_bss_584[var_r31->unk_04].z; + sp20.y = 0.0f; + var_r31->unk_64 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + sp20.x = lbl_1_bss_588[var_r31->unk_04].x - lbl_1_bss_584[var_r31->unk_04].x; + sp20.z = lbl_1_bss_588[var_r31->unk_04].z - lbl_1_bss_584[var_r31->unk_04].z; + sp20.y = 0.0f; + var_r31->unk_68 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + } + } + lbl_1_bss_558 = lbl_1_data_260; + lbl_1_bss_554 = lbl_1_data_3BC; + lbl_1_bss_550 = lbl_1_bss_584; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x40 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); + lbl_1_bss_57C = var_r29; + memset(lbl_1_bss_57C, 0, 0x40 * sizeof(M427DllBss57CStruct)); + for (var_r30 = 0; var_r30 < 0x40; var_r30++, var_r29++) { + var_r29->unk_00 = var_r30; + var_r29->unk_04 = -1; + var_r29->unk_08 = -1; + var_r29->unk_0C = 0; + var_r29->unk_10 = 0; + var_r29->unk_14 = var_r29->unk_18 = 0; + } +} + +void fn_1_13F24(void) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30 += 1, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_18 >= 0)) { + if (++var_r31->unk_14 > var_r31->unk_18) { + fn_1_1607C(var_r30); + } + } + } +} + +void fn_1_13FB8(void) { } + +GXColor lbl_1_data_648 = { 0xFF, 0xFF, 0xFF, 0xFF }; +GXColor lbl_1_data_64C = { 0xFF, 0, 0, 0xFF }; +GXColor lbl_1_data_650 = { 0xFF, 0xFF, 0, 0xFF }; + +void fn_1_13FBC(ModelData *model, Mtx matrix) +{ + Mtx sp70; + float var_f31; + float var_f30; + float var_f29; + M427DllBss57CStruct *var_r31; + M427DllBss590Struct *var_r30; + s16 var_r29; + s16 var_r28; + M427DllPlayerWork *var_r27; + M427DllPlayerWork2 *var_r26; + s32 *var_r25; + omObjData *var_r24; + + var_r25 = model->unk_120; + var_r27 = &lbl_1_bss_578[*var_r25]; + var_r24 = lbl_1_bss_56C[*var_r25]; + GXLoadPosMtxImm(matrix, 0); + PSMTXInvXpose(matrix, sp70); + GXLoadNrmMtxImm(sp70, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, lbl_1_data_260, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, &lbl_1_data_3BC, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_bss_584, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_650, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXBegin(GX_LINES, GX_VTXFMT0, lbl_1_bss_580 * 4); + for (var_r30 = lbl_1_bss_590, var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++, var_r30++) { + GXPosition3f32(var_r30->unk_78->x, var_r30->unk_78->y, var_r30->unk_78->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_80->x, var_r30->unk_80->y, var_r30->unk_80->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_7C->x, var_r30->unk_7C->y, var_r30->unk_7C->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_80->x, var_r30->unk_80->y, var_r30->unk_80->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + } + for (var_r29 = 0, var_r31 = lbl_1_bss_57C; var_r29 < 0x40; var_r29++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == *var_r25) && (var_r31->unk_04 == 1)) { + switch (var_r31->unk_08) { + case 0: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 5); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + break; + case 1: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r31->unk_1C.x + (var_r31->unk_34 * sind((40.0f * var_r28))); + var_f29 = var_r31->unk_1C.z + (var_r31->unk_34 * cosd((40.0f * var_r28))); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0xFF, 0, 0xFF); + } + break; + } + } + } + for (var_r29 = 0, var_r31 = lbl_1_bss_57C; var_r29 < 0x40; var_r29++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == *var_r25) && (var_r31->unk_04 == 0)) { + switch (var_r31->unk_08) { + case 0: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 5); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + break; + case 1: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r31->unk_1C.x + (var_r31->unk_34 * sind((40.0f * var_r28))); + var_f29 = var_r31->unk_1C.z + (var_r31->unk_34 * cosd((40.0f * var_r28))); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0, 0xFF, 0xFF); + } + break; + } + } + } + if ((var_r24 == NULL) || (var_r27 == NULL)) { + return; + } + if ((var_r27->unk_00[0] == NULL) || (var_r27->unk_08[0] == NULL)) { + return; + } + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 100.0f + var_r24->trans.y; + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r24->trans.x + (200.0 * sind((40.0f * var_r28))); + var_f30 = var_f30; + var_f29 = var_r24->trans.z + (200.0 * cosd((40.0f * var_r28))); + var_f29 = var_f29; + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0, 0xFF, 0xFF); + } + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 4); + var_r26 = var_r27->unk_08[0]; + var_f30 = var_r26->unk_68; + var_f29 = var_r26->unk_70; + var_f31 = 100.0f + fn_1_15714(var_f30, var_f29); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(100.0f + var_f30, 200.0f + var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(var_f30 - 100.0f, 200.0f + var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 4); + var_r26 = var_r27->unk_08[1]; + var_f30 = var_r26->unk_68; + var_f29 = var_r26->unk_70; + var_f31 = 100.0f + fn_1_15714(var_f30, var_f29); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(100.0f + var_f30, 200.0f + var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(var_f30 - 100.0f, 200.0f + var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); +} + +void fn_1_154B8(void) { } + +s32 fn_1_154BC(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + s32 var_r31; + s32 var_r30; + + var_r30 = -1; + var_f27 = 1e7f; + for (var_r31 = 0; var_r31 < lbl_1_bss_580; var_r31++) { + var_f31 = lbl_1_bss_590[var_r31].unk_80->x - arg8; + var_f30 = lbl_1_bss_590[var_r31].unk_80->y - arg9; + var_f29 = lbl_1_bss_590[var_r31].unk_80->z - argA; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < var_f27) { + var_r30 = var_r31; + var_f27 = var_f28; + } + } + return var_r30; +} + +s32 fn_1_155E0(float arg8, float arg9, float argA, float *arg0) +{ + float var_f31; + float var_f30; + double var_f29; + double var_f28; + M427DllBss590Struct *var_r31; + s32 var_r30; + M427DllBss590Struct *var_r29; + + for (var_r30 = 0; var_r30 < (lbl_1_bss_580 - 1); var_r30++) { + var_r31 = &lbl_1_bss_590[var_r30]; + var_r29 = &lbl_1_bss_590[var_r30 + 1]; + if ((argA < var_r31->unk_80->z) && (argA >= var_r29->unk_80->z)) { + var_f31 = var_r29->unk_80->z - var_r31->unk_80->z; + if ((arg0 != NULL) && (var_f31 != 0.0f)) { + *arg0 = fabs((argA - var_r31->unk_80->z) / var_f31); + } + break; + } + } + return var_r30; +} + +float fn_1_15714(float arg8, float arg9) +{ + float sp8; + M427DllBss590Struct *var_r31; + s32 var_r28; + M427DllBss590Struct *var_r26; + + var_r28 = fn_1_155E0(0.0f, 0.0f, arg9, &sp8); + var_r31 = &lbl_1_bss_590[var_r28]; + if ((var_r28 < 0) || (var_r28 >= (lbl_1_bss_580 - 1))) { + return var_r31->unk_80->y; + } + var_r26 = &lbl_1_bss_590[var_r28 + 1]; + return var_r31->unk_80->y + (sp8 * (var_r26->unk_80->y - var_r31->unk_80->y)); +} + +void fn_1_158D8(float arg8, float var_f30, Vec *var_r31) +{ + float sp8; + M427DllBss590Struct *var_r30; + M427DllBss590Struct *var_r29; + s32 var_r26; + + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r26 = fn_1_155E0(0.0f, 0.0f, var_f30, &sp8); + var_r30 = &lbl_1_bss_590[var_r26]; + if ((var_r26 < 0) || (var_r26 >= (lbl_1_bss_580 - 1))) { + return; + } + var_r29 = &lbl_1_bss_590[var_r26 + 1]; + if (var_r30->unk_80->y > var_r29->unk_80->y) { + var_r31->x = var_r29->unk_80->x - var_r30->unk_80->x; + var_r31->z = var_r29->unk_80->z - var_r30->unk_80->z; + VECNormalize(var_r31, var_r31); + } +} + +s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float sp8; + float var_f31; + float var_f29; + M427DllBss590Struct *var_r30; + + *arg3 = *arg2; + arg4->x = arg4->y = arg4->z = 0.0f; + if (arg0 < 0) { + arg0 = fn_1_155E0(0.0f, 0.0f, arg2->z, &sp8); + } + if ((arg0 < 0) || (arg0 >= (lbl_1_bss_580 - 1))) { + return 0; + } + var_r30 = &lbl_1_bss_590[arg0]; + sp3C.x = arg2->x - arg1->x; + sp3C.y = arg2->y - arg1->y; + sp3C.z = arg2->z - arg1->z; + VECNormalize(&sp3C, &sp3C); + spC.x = var_r30->unk_44.x + (sp8 * var_r30->unk_50); + spC.y = var_r30->unk_44.y + (sp8 * var_r30->unk_54); + spC.z = var_r30->unk_44.z + (sp8 * var_r30->unk_58); + var_f29 = fabs(arg2->x - spC.x); + if (arg2->x < spC.x) { + var_f31 = var_r30->unk_5C + (sp8 * (var_r30->unk_64 - var_r30->unk_5C)); + if (var_f29 > var_f31) { + sp30 = *arg2; + fn_1_17048(var_r30->unk_14, NULL, &sp30, &sp24); + arg3->x = sp24.x; + arg3->y = sp24.y; + arg3->z = sp24.z; + arg4->x = arg3->x - arg2->x; + arg4->y = arg3->y - arg2->y; + arg4->z = arg3->z - arg2->z; + return 1; + } + goto block_18; + } + var_f31 = var_r30->unk_60 + (sp8 * (var_r30->unk_68 - var_r30->unk_60)); + if (var_f29 > var_f31) { + sp30 = *arg2; + fn_1_17048(var_r30->unk_2C, NULL, &sp30, &sp18); + arg3->x = sp18.x; + arg3->y = sp18.y; + arg3->z = sp18.z; + arg4->x = arg3->x - arg2->x; + arg4->y = arg3->y - arg2->y; + arg4->z = arg3->z - arg2->z; + return 1; + } +block_18: + return 0; +} + +s32 fn_1_15F10(Vec arg0, Vec arg1, s32 arg2, s32 arg3, s32 arg4) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 < 0) || (var_r31->unk_08 < 0)) { + break; + } + } + if (var_r30 >= 0x40) { + return -1; + } + var_r31->unk_04 = arg2; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = arg4; + var_r31->unk_18 = arg3; + var_r31->unk_14 = 0; + var_r31->unk_1C = arg0; + var_r31->unk_28 = arg1; + return var_r30; +} + +s32 fn_1_15FD0(Vec arg0, float arg8, s32 arg1, s32 arg2, s32 arg3) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 < 0) || (var_r31->unk_08 < 0)) { + break; + } + } + if (var_r30 >= 0x40) { + return -1; + } + var_r31->unk_04 = arg1; + var_r31->unk_08 = 1; + var_r31->unk_0C = 0; + var_r31->unk_10 = arg3; + var_r31->unk_18 = arg2; + var_r31->unk_14 = 0; + var_r31->unk_1C = arg0; + var_r31->unk_34 = arg8; + return var_r30; +} + +void fn_1_1607C(s32 arg0) +{ + M427DllBss57CStruct *var_r31; + + if ((arg0 < 0) || (arg0 >= 0x40)) { + return; + } + var_r31 = &lbl_1_bss_57C[arg0]; + var_r31->unk_04 = -1; + var_r31->unk_08 = -1; + var_r31->unk_14 = var_r31->unk_18 = 0; +} + +s32 fn_1_160D4(s32 arg0, Vec *arg1, float arg8) +{ + float var_f31; + float var_f30; + float var_f29; + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == arg0) && ((var_r31->unk_04 == 1) || (var_r31->unk_04 == 2))) { + switch (var_r31->unk_08) { + case 0: + var_f31 = arg1->x - var_r31->unk_1C.x; + var_f30 = arg1->z - var_r31->unk_1C.z; + if ((arg1->x >= (var_r31->unk_1C.x - arg8)) && (arg1->x <= (var_r31->unk_28.x + arg8)) && (arg1->z >= (var_r31->unk_1C.z - arg8)) + && (arg1->z <= (var_r31->unk_28.z + arg8))) { + return 1; + } + break; + case 1: + var_f31 = arg1->x - var_r31->unk_1C.x; + var_f30 = arg1->z - var_r31->unk_1C.z; + var_f29 = var_r31->unk_34 + arg8; + if (((var_f31 * var_f31) + (var_f30 * var_f30)) < (var_f29 * var_f29)) { + return 1; + } + break; + } + } + } + return 0; +} + +s32 fn_1_16260(s32 arg0, Vec *arg2, Vec *arg3, Vec *arg4, float arg8) +{ + float var_f31; + float var_f30; + float var_f28; + M427DllBss57CStruct *var_r31; + s32 var_r30; + + *arg4 = *arg3; + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == arg0) && ((var_r31->unk_04 == 0) || (var_r31->unk_04 == 2))) { + switch (var_r31->unk_08) { + case 0: + var_f31 = arg3->x - var_r31->unk_1C.x; + var_f30 = arg3->z - var_r31->unk_1C.z; + if ((arg3->x >= (var_r31->unk_1C.x - arg8)) && (arg3->x <= (var_r31->unk_28.x + arg8)) && (arg3->z >= (var_r31->unk_1C.z - arg8)) + && (arg3->z <= (var_r31->unk_28.z + arg8))) { + return 1; + } + break; + case 1: + var_f31 = arg3->x - var_r31->unk_1C.x; + var_f30 = arg3->z - var_r31->unk_1C.z; + var_f28 = var_r31->unk_34 + arg8; + if (((var_f31 * var_f31) + (var_f30 * var_f30)) < (var_f28 * var_f28)) { + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 == 0.0f) { + var_f31 = 0.0f; + var_f30 = 1.0f; + } + else { + var_f31 /= var_f28; + var_f30 /= var_f28; + } + var_f28 = var_r31->unk_34 + arg8; + arg4->x = var_r31->unk_1C.x + (var_f31 * var_f28); + arg4->z = var_r31->unk_1C.z + (var_f30 * var_f28); + arg4->y = arg3->y; + return 1; + } + break; + } + } + } + return 0; +} + +float fn_1_16594(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_166AC(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f26; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_168FC(float arg8, float arg9, float argA) +{ + float var_f24; + float var_f23; + + var_f23 = fn_1_16594(argA, arg9); + var_f24 = fabs(var_f23 * arg8); + return fn_1_166AC(argA, arg9, var_f24); +} + +void fn_1_16CF4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp14; + Vec sp8; + + sp14.x = arg1->x - arg0->x; + sp14.y = arg1->y - arg0->y; + sp14.z = arg1->z - arg0->z; + sp8.x = arg2->x - arg0->x; + sp8.y = arg2->y - arg0->y; + sp8.z = arg2->z - arg0->z; + arg3->x = (sp14.y * sp8.z) - (sp14.z * sp8.y); + arg3->y = (sp14.z * sp8.x) - (sp14.x * sp8.z); + arg3->z = (sp14.x * sp8.y) - (sp14.y * sp8.x); + VECNormalize(arg3, arg3); + arg3[1].x = (arg3->z * arg0->z) + ((arg3->x * arg0->x) + (arg3->y * arg0->y)); +} + +void fn_1_16E3C(Vec *arg0, Vec *arg1, Vec *arg2, s32 arg3) +{ + Vec spC; + + spC.x = arg1->x - arg0->x; + spC.y = arg1->y - arg0->y; + spC.z = arg1->z - arg0->z; + if (arg3 != 0) { + VECNormalize(&spC, &spC); + } + arg2->x = arg0->x; + arg2->y = arg0->y; + arg2->z = arg0->z; + arg2[1].x = spC.x; + arg2[1].y = spC.y; + arg2[1].z = spC.z; +} + +void fn_1_16EF8(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = (arg0[1].z * arg0[1].z) + ((arg0[1].x * arg0[1].x) + (arg0[1].y * arg0[1].y)); + var_f29 = (-arg0[0].z * arg0[1].z) + (arg2->z * arg0[1].z) + + ((-arg0[0].x * arg0[1].x) + (arg2->x * arg0[1].x) + ((-arg0[0].y * arg0[1].y) + (arg2->y * arg0[1].y))); + if (var_f30 != 0.0f) { + var_f31 = var_f29 / var_f30; + } + else { + var_f31 = 0.0f; + } + if (arg3 != NULL) { + arg3->x = arg0[0].x + (var_f31 * arg0[1].x); + arg3->y = arg0[0].y + (var_f31 * arg0[1].y); + arg3->z = arg0[0].z + (var_f31 * arg0[1].z); + } + if (arg1 != NULL) { + *arg1 = var_f31; + } +} + +typedef struct Vec3d { + double x; + double y; + double z; +} Vec3d; + +void fn_1_17048(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3) +{ + Vec3d sp38; + Vec3d sp20; + Vec3d sp8; + double var_f31; + double var_f30; + double var_f29; + + sp20.x = 0.0; + sp20.y = 0.0; + sp20.z = 0.0; + sp38.x = arg0[1].x; + sp38.y = arg0[1].y; + sp38.z = arg0[1].z; + sp8.x = arg2->x - arg0->x; + sp8.y = arg2->y - arg0->y; + sp8.z = arg2->z - arg0->z; + + var_f30 = (sp38.z * arg0[1].z) + ((sp38.x * arg0[1].x) + (sp38.y * arg0[1].y)); + var_f29 = (-sp20.z * sp38.z) + (sp8.z * sp38.z) + ((-sp20.x * sp38.x) + (sp8.x * sp38.x) + ((-sp20.y * sp38.y) + (sp8.y * sp38.y))); + if (0.0 != var_f30) { + var_f31 = var_f29 / var_f30; + } + else { + var_f31 = 0.0; + } + if (arg3 != NULL) { + arg3->x = arg0->x + (float)(sp20.x + (var_f31 * sp38.x)); + arg3->y = arg0->y + (float)(sp20.y + (var_f31 * sp38.y)); + arg3->z = arg0->z + (float)(sp20.z + (var_f31 * sp38.z)); + } + if (arg1 != NULL) { + *arg1 = var_f31; + } +} + +void fn_1_17238(void) { } + +void fn_1_1723C(Mtx arg0, Vec *arg1) +{ + Vec sp8; + + sp8.x = (arg0[0][2] * arg1->z) + ((arg0[0][0] * arg1->x) + (arg0[0][1] * arg1->y)); + sp8.y = (arg0[1][2] * arg1->z) + ((arg0[1][0] * arg1->x) + (arg0[1][1] * arg1->y)); + sp8.z = (arg0[2][2] * arg1->z) + ((arg0[2][0] * arg1->x) + (arg0[2][1] * arg1->y)); + *arg1 = sp8; +} + +void fn_1_172F0(s32 arg0, float arg8) +{ + HsfMaterial *var_r31; + s32 var_r30; + HsfData *var_r29; + s32 var_r28; + ModelData *var_r27; + s32 var_r26; + + var_r27 = &Hu3DData[arg0]; + var_r29 = var_r27->hsfData; + var_r31 = var_r29->material; + var_r26 = var_r29->materialCnt; + for (var_r28 = 0; var_r28 < var_r26; var_r28++, var_r31++) { + var_r31->vtxMode = 1; + var_r30 = var_r31->litColor[0] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[0] = var_r30; + var_r30 = var_r31->litColor[1] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[1] = var_r30; + var_r30 = var_r31->litColor[2] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[2] = var_r30; + } +} + +s32 fn_1_17430(s32 arg0, s32 arg1, s32 arg2) +{ + s32 var_r31; + ModelData *var_r30; + ModelData *var_r29; + + var_r29 = &Hu3DData[arg0]; + var_r30 = &Hu3DData[arg2]; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (var_r30->unk_38[var_r31] == -1) { + break; + } + } + if (var_r31 == 8) { + return -1; + } + var_r30->unk_38[var_r31] = var_r29->unk_38[arg1]; + var_r30->attr |= 0x1000; + return var_r31; +} diff --git a/src/REL/m428Dll/main.c b/src/REL/m428Dll/main.c new file mode 100644 index 00000000..1ee62c82 --- /dev/null +++ b/src/REL/m428Dll/main.c @@ -0,0 +1,1094 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/ClusterExec.h" +#include "game/EnvelopeExec.h" +#include "game/ShapeExec.h" +#include "game/frand.h" +#endif + +typedef struct M428DllData0Struct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; +} M428DllData0Struct; /* size = 0x1C */ + +typedef struct M428DllUnkStruct2 { + s16 unk_00[0x10]; + float unk_20[0x10]; + s32 unk_60; +} M428DllUnkStruct2; /* size = 0x64 */ + +typedef struct M428DllUnkStruct { + M428DllUnkStruct2 unk_00[0x10]; + ShadowData unk_640[0x10]; + ShadowData unk_FC0; +} M428DllUnkStruct; /* size = 0x1058 */ + +void fn_1_478(omObjData *); +void fn_1_25CC(omObjData *object); +void fn_1_261C(omObjData *arg0); +void fn_1_29E8(omObjData *object); +void fn_1_2ACC(s32 arg0); +void fn_1_2B8(omObjData *object); +void fn_1_2C90(ModelData *, float[3][4]); +void fn_1_2E2C(s32 arg0); +void fn_1_40A4(void); + +M428DllData0Struct lbl_1_data_0[3] = { + { 65.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 1575.0f }, +}; + +Vec lbl_1_data_54 = { -1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; + +Process *lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +u32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +s32 lbl_1_bss_70; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +float lbl_1_bss_58[2]; +s16 lbl_1_bss_50[4]; +s16 lbl_1_bss_48[4]; +s32 lbl_1_bss_38[4]; +float lbl_1_bss_28[4]; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +omObjData *lbl_1_bss_1C; +s32 lbl_1_bss_18; +omObjData *lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +char lbl_1_bss_4[8]; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + s32 var_r31; + Process *var_r30; + s32 var_r29; + + OSReport("******* M428ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_88 = var_r30; + omGameSysInit(var_r30); + Hu3DLightAllKill(); + Hu3DLighInit(); + lbl_1_bss_1C = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_2B8); + lbl_1_bss_84 = lbl_1_bss_80 = -1; + HuAudSndGrpSet(0x35); + lbl_1_bss_7C = 0; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + lbl_1_bss_64 = -1; + lbl_1_bss_60 = 0; + lbl_1_bss_24 = -1; + lbl_1_bss_20 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = -1; + lbl_1_bss_48[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_38[var_r31] = -1; + } + var_r29 = GWGameStat.rumble; + lbl_1_bss_18 = var_r29; + Hu3DShadowCreate(45.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); + fn_1_2ACC(3); +} + +Vec lbl_1_data_9C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_A8 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_B4 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2B8(omObjData *var_r27) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = Hu3DGLightCreateV(&lbl_1_data_9C, &lbl_1_data_A8, &lbl_1_data_B4); + Hu3DGLightStaticSet(var_r28, 1); + Hu3DGLightInfinitytSet(var_r28); + for (var_r31 = 0, var_r30 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_50[var_r30] = var_r31; + lbl_1_bss_48[var_r30] = GWPlayerCfg[var_r31].character; + var_r30++; + } + else { + lbl_1_bss_50[var_r29 + 2] = var_r31; + lbl_1_bss_48[var_r29 + 2] = GWPlayerCfg[var_r31].character; + var_r29++; + } + } + if ((var_r30 != 2) || (var_r29 != 2)) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = var_r31; + lbl_1_bss_48[var_r31] = GWPlayerCfg[var_r31].character; + } + } + fn_1_43C8(lbl_1_bss_88); + fn_1_9F5C(lbl_1_bss_88); + var_r27->func = fn_1_478; +} + +void fn_1_478(omObjData *object) +{ + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + switch (lbl_1_bss_7C) { + case 0: + lbl_1_bss_78++; + Hu3DCamera->fov = -1.0f; + Hu3DCamera[1].fov = -1.0f; + if (lbl_1_bss_78 > 3) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_20 = 0; + fn_1_11798(1); + lbl_1_bss_38[0] = HuAudFXPlay(0x65F); + if ((lbl_1_bss_38[1] = HuAudFXPlay(0x660)) != -1) { + lbl_1_bss_28[1] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if ((lbl_1_bss_38[2] = HuAudFXPlay(0x661)) != -1) { + lbl_1_bss_28[2] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + Hu3DCamera->fov = 45.0f; + Hu3DCamera[1].fov = 45.0f; + lbl_1_bss_7C = 1; + lbl_1_bss_78 = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 2; + lbl_1_bss_78 = 0; + } + else { + sp2C.x = lbl_1_data_0->unk_00.x; + sp2C.y = lbl_1_data_0->unk_00.y; + sp2C.z = lbl_1_data_0->unk_00.z; + sp38.x = lbl_1_data_0->unk_0C.x; + sp38.y = lbl_1_data_0->unk_0C.y; + sp38.z = lbl_1_data_0->unk_0C.z; + fn_1_9A30(0, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + fn_1_9A30(1, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + } + break; + case 2: + if (++lbl_1_bss_78 == 0x78) { + sp2C.x = lbl_1_data_0[2].unk_00.x; + sp2C.y = lbl_1_data_0[2].unk_00.y; + sp2C.z = lbl_1_data_0[2].unk_00.z; + sp38.x = lbl_1_data_0[2].unk_0C.x; + sp38.y = lbl_1_data_0[2].unk_0C.y; + sp38.z = lbl_1_data_0[2].unk_0C.z; + fn_1_9A30(0, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + fn_1_9A30(1, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + } + if ((fn_1_F354() != 0) && (lbl_1_bss_78 >= 0x78)) { + sp2C.x = lbl_1_data_0[1].unk_00.x; + sp2C.y = lbl_1_data_0[1].unk_00.y; + sp2C.z = lbl_1_data_0[1].unk_00.z; + sp38.x = lbl_1_data_0[1].unk_0C.x; + sp38.y = lbl_1_data_0[1].unk_0C.y; + sp38.z = lbl_1_data_0[1].unk_0C.z; + fn_1_9A30(0, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + fn_1_9A30(1, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + lbl_1_bss_84 = MGSeqCreate(3, 0); + lbl_1_bss_7C = 3; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + } + break; + case 3: + if (lbl_1_bss_84 != -1) { + var_r27 = MGSeqStatGet(lbl_1_bss_84); + if (((var_r27 & 0x10) != 0) && (lbl_1_bss_24 == -1)) { + lbl_1_bss_24 = HuAudSeqPlay(0x4B); + } + } + else { + var_r27 = 0; + } + if ((lbl_1_bss_84 == -1) || (var_r27 == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 4; + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + lbl_1_bss_58[0] = 15.0f; + lbl_1_bss_58[1] = 15.0f; + lbl_1_bss_68 = 0x4650; + } + break; + case 4: + if (++lbl_1_bss_78 >= lbl_1_bss_74) { + var_r29 = lbl_1_bss_78 - lbl_1_bss_74; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if (var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) { + fn_1_9DE8(var_r31, 15.0f, 1); + fn_1_11754(var_r31, 0.05f); + if (var_r29 == 0) { + fn_1_F46C(var_r31, 0); + } + else if (var_r29 < lbl_1_bss_6C) { + fn_1_F454(var_r31, 1); + if ((var_r30 == 1) && (fn_1_F4E8(var_r31) == 0)) { + lbl_1_bss_58[var_r31] = 15.0f; + } + } + else if (var_r29 == lbl_1_bss_6C) { + if (var_r30 == 1) { + fn_1_F46C(var_r31, var_r30); + } + } + else if (var_r29 == (21.0f + lbl_1_bss_6C)) { + if (var_r30 == 0) { + fn_1_F454(var_r31, 2); + } + else { + fn_1_F454(var_r31, 3); + if (lbl_1_bss_18 == 0) { + fn_1_116C4(var_r31, 1); + } + if (var_r30 != 0) { + fn_1_F4B4(var_r31, lbl_1_bss_70, 3.125f); + } + } + } + } + else { + fn_1_9DE8(var_r31, lbl_1_bss_58[var_r31], 1); + if ((var_r29 < ((15.0f + lbl_1_bss_6C + lbl_1_bss_70) - 6.0f)) && (var_r30 == 1)) { + var_f31 = 0.10000000149011612 * sind((20.0f * var_r29)); + fn_1_11754(var_r31, 0.3f + var_f31); + } + if (var_r30 == 0) { + fn_1_F454(var_r31, 4); + } + else { + fn_1_F454(var_r31, 5); + } + } + } + if (var_r29 == (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_F454(0, 6); + fn_1_F454(1, 6); + } + else if (var_r29 > (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if ((frand() & 3) == 0) { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 15.0f; + } + else { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 60.0f; + } + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if ((var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) || (var_r30 < 1)) { + if (lbl_1_bss_28[var_r31 + 1] < 0.5f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 0.5f) { + lbl_1_bss_28[var_r31 + 1] -= 0.1f; + } + } + else { + if (lbl_1_bss_28[var_r31 + 1] < 1.0f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 1.0f) { + lbl_1_bss_28[var_r31 + 1] = 1.0f; + } + } + } + } + else { + if (lbl_1_bss_28[1] > 0.0f) { + lbl_1_bss_28[1] -= 0.01f; + } + if (lbl_1_bss_28[1] < 0.0f) { + lbl_1_bss_28[1] = 0.0f; + } + if (lbl_1_bss_28[2] > 0.0f) { + lbl_1_bss_28[2] -= 0.01f; + } + if (lbl_1_bss_28[2] < 0.0f) { + lbl_1_bss_28[2] = 0.0f; + } + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + if ((lbl_1_bss_68 <= 1800.0f) && (lbl_1_bss_80 == -1)) { + lbl_1_bss_80 = MGSeqCreate(1, lbl_1_bss_68 / 60, -1, -1); + } + if (lbl_1_bss_80 != -1) { + var_r28 = (lbl_1_bss_68 + 0x3B) / 60; + if (var_r28 < 0) { + var_r28 = 0; + } + MGSeqParamSet(lbl_1_bss_80, 1, var_r28); + } + var_r26 = fn_1_F3BC(0); + var_r25 = fn_1_F3BC(1); + if ((--lbl_1_bss_68 < -1) || (var_r26 != 0) || (var_r25 != 0)) { + if (lbl_1_bss_80 != -1) { + MGSeqParamSet(lbl_1_bss_80, 2, -1); + } + lbl_1_bss_80 = -1; + lbl_1_bss_84 = MGSeqCreate(3, 1); + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if (lbl_1_bss_38[0] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[0], 0x64); + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[1], 0x64); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[2], 0x64); + } + if (lbl_1_bss_24 != -1) { + HuAudSeqFadeOut(lbl_1_bss_24, 0x64); + } + if ((var_r26 != 0) && (var_r25 != 0)) { + if ((frand() & 1) != 0) { + lbl_1_bss_64 = 0; + } + else { + lbl_1_bss_64 = 1; + } + } + else if (var_r26 != 0) { + lbl_1_bss_64 = 0; + } + else if (var_r25 != 0) { + lbl_1_bss_64 = 1; + } + lbl_1_bss_7C = 6; + lbl_1_bss_78 = 0; + } + break; + case 6: + if ((lbl_1_bss_64 == -1) || (lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + if (lbl_1_bss_64 != -1) { + lbl_1_bss_84 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 1; + } + lbl_1_bss_7C = 5; + lbl_1_bss_78 = 0; + } + break; + case 5: + if (lbl_1_bss_64 != -1) { + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 7; + lbl_1_bss_78 = 0; + } + } + else if ((lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 7: + lbl_1_bss_78++; + if (lbl_1_bss_78 == 1) { + if (lbl_1_bss_64 == 0) { + fn_1_9ADC(0); + fn_1_F414(0); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + else if (lbl_1_bss_64 == 1) { + fn_1_9ADC(1); + fn_1_F414(1); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + } + else if (lbl_1_bss_78 >= 0xA) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 0; + lbl_1_bss_38[3] = HuAudFXPlay(0x662); + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 8: + if (lbl_1_bss_64 == 0) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else if (lbl_1_bss_64 == 1) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else { + if (++lbl_1_bss_78 >= 60.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + break; + case 9: + if (lbl_1_bss_64 == 0) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[0], lbl_1_bss_48[1], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[0], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[1], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else if (lbl_1_bss_64 == 1) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[2], lbl_1_bss_48[3], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[2], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[3], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else { + lbl_1_bss_84 = MGSeqCreate(3, 2); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + HuAudSStreamPlay(4); + } + break; + case 10: + if (++lbl_1_bss_68 >= 210.0f) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 0xB; + lbl_1_bss_68 = 0; + } + break; + case 11: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_20 = 1; + if (lbl_1_bss_38[3] != -1) { + HuAudFXStop(lbl_1_bss_38[3]); + } + object->func = fn_1_25CC; + break; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp50.x = CenterM[var_r31].x; + sp50.y = CenterM[var_r31].y; + sp50.z = CenterM[var_r31].z; + if (lbl_1_bss_60 == 0) { + sp5C.x = CenterM[var_r31].x - 1200.0f; + sp5C.y = 1200.0f + CenterM[var_r31].y; + sp5C.z = 1200.0f + CenterM[var_r31].z; + } + else { + sp5C.x = CenterM[var_r31].x - 600.0f; + sp5C.y = 1000.0f + CenterM[var_r31].y; + sp5C.z = 600.0f + CenterM[var_r31].z; + } + sp44.x = 0.0f; + sp44.y = 1.0f; + sp44.z = 0.0f; + fn_1_4324(var_r31, &sp5C, &sp44, &sp50); + } + fn_1_261C(object); +} + +void fn_1_25CC(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_4630(); + fn_1_A0B0(); + fn_1_40A4(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_261C(omObjData *object) +{ + s32 var_r30 = 0; + if ((WipeStatGet() != 0) || (object->func == fn_1_25CC)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + if (lbl_1_bss_20 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + } + lbl_1_bss_20 = 1; + HuAudSeqAllFadeOut(0x64); + object->func = fn_1_25CC; + } +} + +s32 fn_1_26E0(void) +{ + return lbl_1_bss_7C; +} + +void fn_1_26F0(void) +{ + s32 var_r31; + omObjData *object; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0, 0, 0x140, 0x1E0); + object = lbl_1_bss_14 = omAddObjEx(lbl_1_bss_88, 0x7FDA, 0, 0, -1, omOutViewMulti); + object->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0->unk_00.x; + CRotM[var_r31].y = lbl_1_data_0->unk_00.y; + CRotM[var_r31].z = lbl_1_data_0->unk_00.z; + CenterM[var_r31].x = lbl_1_data_0->unk_0C.x; + CenterM[var_r31].y = lbl_1_data_0->unk_0C.y; + CenterM[var_r31].z = lbl_1_data_0->unk_0C.z; + CZoomM[var_r31] = lbl_1_data_0->unk_18; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = -1; + omAddObjEx(lbl_1_bss_88, 0xFE, 0, 0, -1, fn_1_29E8); +} + +void fn_1_29E8(omObjData *object) { } + +void fn_1_29EC(void) { } + +s32 fn_1_29F0(void) +{ + return lbl_1_bss_C; +} + +void fn_1_2A00(s32 arg0, s32 arg1, float arg8) +{ + M428DllData0Struct *var_r31; + M428DllData0Struct *var_r30; + + var_r31 = &lbl_1_data_0[arg0]; + var_r30 = &lbl_1_data_0[arg1]; + Center.x = var_r31->unk_0C.x + (arg8 * (var_r30->unk_0C.x - var_r31->unk_0C.x)); + Center.y = var_r31->unk_0C.y + (arg8 * (var_r30->unk_0C.y - var_r31->unk_0C.y)); + Center.z = var_r31->unk_0C.z + (arg8 * (var_r30->unk_0C.z - var_r31->unk_0C.z)); + CZoom = var_r31->unk_18 + (arg8 * (var_r30->unk_18 - var_r31->unk_18)); +} + +void fn_1_2ACC(s32 arg0) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + ModelData *var_r28; + M428DllUnkStruct *var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + u32 var_r23; + + lbl_1_bss_0 = var_r24 = Hu3DHookFuncCreate(fn_1_2C90); + var_r28 = &Hu3DData[var_r24]; + Hu3DModelLayerSet(var_r24, 0); + var_r27 = var_r28->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllUnkStruct), var_r28->unk_48); + memset(var_r27, 0, sizeof(M428DllUnkStruct)); + var_r27->unk_FC0 = Hu3DShadowData; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r29 = &var_r27->unk_00[var_r30]; + var_r31 = &var_r27->unk_640[var_r30]; + var_r23 = 1 << var_r30; + + *var_r31 = Hu3DShadowData; + for (var_r26 = 0; var_r26 < 0x10; var_r26++) { + var_r29->unk_00[var_r26] = -1; + var_r29->unk_20[var_r26] = 1.0f; + } + var_r29->unk_60 = 0; + if ((var_r23 & arg0) != 0) { + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DShadowData.unk_04; + } + else { + var_r25 = var_r31->unk_02; + var_r31->unk_04 = HuMemDirectMallocNum(HEAP_DATA, var_r25 * var_r25, var_r28->unk_48); + } + } + else { + var_r31->unk_04 = NULL; + } + } + Hu3DShadowCamBit++; +} + +void fn_1_2C90(ModelData *model, Mtx matrix) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct *var_r29; + M428DllUnkStruct2 *var_r28; + + var_r29 = model->unk_120; + if (Hu3DCameraNo == 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r28 = &var_r29->unk_00[var_r30]; + var_r31 = &var_r29->unk_640[var_r30]; + if ((var_r31->unk_04 != NULL) && !(var_r31->unk_08.x <= 0.0f) && (var_r28->unk_60 > 0)) { + Hu3DShadowData = *var_r31; + fn_1_2E2C(var_r30); + *var_r31 = Hu3DShadowData; + } + } + HuSprDispInit(); + HuSprExec(0x7F); + } + var_r28 = &var_r29->unk_00[Hu3DCameraNo]; + var_r31 = &var_r29->unk_640[Hu3DCameraNo]; + if ((var_r31->unk_04 == NULL) || (var_r31->unk_08.x <= 0.0f)) { + return; + } + Hu3DShadowData = *var_r31; +} + +GXColor lbl_1_data_E8 = { 0, 0, 0, 0 }; + +void fn_1_2E2C(s32 var_r26) +{ + Mtx spBC; + Mtx sp8C; + Mtx sp5C; + Mtx44 sp1C; + ShadowData *sp18; + ModelData *var_r31; + s16 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + s32 var_r27; + s32 var_r25; + u32 var_r24; + + var_r31 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r31->unk_120; + var_r29 = &var_r28->unk_00[var_r26]; + sp18 = &var_r28->unk_640[var_r26]; + var_r24 = Hu3DShadowData.unk_00; + if (var_r26 == 0) { + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + } + Hu3DDrawPreInit(); + GXSetCopyClear(lbl_1_data_E8, 0xFFFFFF); + C_MTXPerspective(sp1C, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(sp1C, GX_PERSPECTIVE); + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02 * 2) - 4, (Hu3DShadowData.unk_02 * 2) - 4); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2, 0.0f, 1.0f); + var_r25 = (Hu3DShadowData.unk_02 / 2) * (Hu3DShadowData.unk_02 / 2); + } + else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02 - 2, Hu3DShadowData.unk_02 - 2); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f, 1.0f); + var_r25 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + } + C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20); + MTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (var_r29->unk_00[var_r30] != -1) { + var_r31 = &Hu3DData[var_r29->unk_00[var_r30]]; + if (((var_r31->attr & 1) == 0) && ((var_r31->attr & 0x8000) == 0)) { + if ((var_r31->attr & 8) != 0) { + var_r27 = 0; + if (var_r31->unk_08 != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_08, var_r31->unk_64, 0); + } + if (var_r31->unk_0C != -1) { + Hu3DSubMotionExec(var_r30); + } + if (var_r31->unk_0A != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0A, var_r31->unk_74, 1); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterMotionExec(var_r31); + var_r27 = 1; + } + if (var_r31->unk_0E != -1) { + if (var_r31->unk_08 == -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 0); + } + else { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 1); + } + } + if (((var_r31->attr & 0x90) == 0) || ((var_r31->motion_attr & 0x40000002) == 0)) { + var_r27 = 1; + InitVtxParm(var_r31->hsfData); + if (var_r31->unk_0E != -1) { + ShapeProc(var_r31->hsfData); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterProc(var_r31); + } + if (var_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(var_r31->hsfData); + } + PPCSync(); + } + var_r31->attr |= 0x800; + } + Hu3DModelShadowSet(var_r29->unk_00[var_r30]); + Hu3DShadowData.unk_00 = (s8)(var_r29->unk_20[var_r30] * var_r24); + mtxRot(sp5C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp5C, spBC, spBC); + mtxTransCat(spBC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(Hu3DCameraMtx, spBC, sp8C); + MTXConcat(sp8C, var_r31->unk_F0, sp8C); + Hu3DDraw(var_r31, sp8C, &var_r31->scale); + Hu3DModelShadowReset(var_r29->unk_00[var_r30]); + } + } + } + Hu3DDrawPost(); + GXDrawDone(); + shadowModelDrawF = 0; + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 1); + } + else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 0); + } + GXCopyTex(Hu3DShadowData.unk_04, 1); + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, 1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); +} + +void fn_1_3B64(void) +{ + Mtx44 sp64; + Mtx sp34; + GXTexObj sp14; + ShadowData *sp10; + GXColor spC; + M428DllUnkStruct *var_r31; + M428DllUnkStruct2 *var_r30; + ModelData *var_r29; + u8 *var_r28; + + if (lbl_1_bss_0 != -1) { + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r29->unk_120; + var_r30 = &var_r31->unk_00[Hu3DCameraNo]; + sp10 = &var_r31->unk_640[Hu3DCameraNo]; + if (var_r30->unk_60 > 0) { + GXInitTexObj(&sp14, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + C_MTXOrtho(sp64, 0.0f, 480.0f, 0.0f, 320.0f, 0.0f, 10.0f); + GXSetProjection(sp64, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + spC.a = 0x80; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + MTXIdentity(sp34); + GXLoadPosMtxImm(sp34, 0); + GXSetZMode(0, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(0.0f, 0.0f, 0.0f); + GXTexCoord2f32(0.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, 0.0f, 0.0f); + GXTexCoord2f32(1.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(1.0f, 1.0f); + GXPosition3f32(0.0f, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(0.0f, 1.0f); + } + } +} + +s32 lbl_1_data_EC[] = { + 0, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0xBF333333, + 0x3F19999A, + 0xFFFFFFFF, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0x3F800000, + 0, + 0, + 0, + 0, +}; + +void fn_1_40A4(void) +{ + M428DllUnkStruct *var_r31; + ModelData *var_r30; + + var_r30 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r30->unk_120; + Hu3DShadowData = var_r31->unk_FC0; + Hu3DModelKill(lbl_1_bss_0); + lbl_1_bss_0 = -1; + if (Hu3DShadowCamBit > 0) { + Hu3DShadowCamBit--; + } +} + +void fn_1_4170(s16 arg0, s32 arg1) +{ + ShadowData *sp8; + M428DllUnkStruct2 *var_r31; + s32 var_r30; + s32 var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r29 = 0; var_r29 < 0x10; var_r29++) { + var_r31 = &var_r28->unk_00[var_r29]; + sp8 = &var_r28->unk_640[var_r29]; + var_r26 = 1 << var_r29; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 != var_r31->unk_00[var_r30]) { + if (var_r31->unk_00[var_r30] == -1) { + var_r31->unk_00[var_r30] = arg0; + var_r31->unk_20[var_r30] = 1.0f; + var_r31->unk_60++; + break; + } + } + else { + break; + } + } + } + } +} + +void fn_1_4264(s16 arg0, s32 arg1, float arg8) +{ + ShadowData *sp8; + s32 var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + var_r29 = &var_r28->unk_00[var_r31]; + sp8 = &var_r28->unk_640[var_r31]; + var_r26 = 1 << var_r31; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 == var_r29->unk_00[var_r30]) { + var_r29->unk_20[var_r30] = arg8; + } + } + } + } +} + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + M428DllUnkStruct2 *sp8; + ShadowData *var_r31; + M428DllUnkStruct *var_r30; + ModelData *var_r29; + + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r30 = var_r29->unk_120; + sp8 = &var_r30->unk_00[arg0]; + var_r31 = &var_r30->unk_640[arg0]; + var_r31->unk_14 = *arg1; + var_r31->unk_20 = *arg3; + var_r31->unk_2C = *arg2; +} diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c new file mode 100644 index 00000000..925c04bc --- /dev/null +++ b/src/REL/m428Dll/map.c @@ -0,0 +1,1275 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M433DllMapWork2 { + u8 unk_00; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + Vec unk_40; + Vec unk_4C; + Vec unk_58; + Vec unk_64[3]; + Vec unk_88[3]; + Vec unk_AC[3]; + Vec unk_D0[3]; + float unk_F4[3]; + float unk_100[3]; + float unk_10C[3]; + float unk_118[3]; + float unk_124[3]; + float unk_130; + float unk_134; + float unk_138; + float unk_13C; + float unk_140; + float unk_144; + float unk_148; + float unk_14C[3]; + float unk_158[3]; + float unk_164[3]; + float unk_170[3]; + float unk_17C[3]; + u16 unk_188[3]; +} M433DllMapWork2; /* size = 0x190 */ + +typedef struct M433DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + char unk20[0x28]; +} M433DllUnkStruct; /* size = 0x48 */ + +typedef struct M433DllUnkStruct4 { + Vec unk_00; + s32 unk_0C[3]; + s8 unk_18[4]; + s8 unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; +} M433DllUnkStruct4; /* size = 0x34 */ + +typedef struct M433DllUnkStruct2 { + Vec *unk_00; + s32 unk_04; + s32 unk_08; + M433DllUnkStruct4 *unk_0C; +} M433DllUnkStruct2; /* size 0x10 */ + +typedef struct M433DllUnkStruct3 { + s32 unk_00; + M433DllUnkStruct2 *unk_04; +} M433DllUnkStruct3; /* size = 0x08 */ + +void fn_1_4650(omObjData *object); +void fn_1_475C(omObjData *object); +void fn_1_4F04(omObjData *object); +void fn_1_51E0(omObjData *object); +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1); +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1); +void fn_1_5CCC(HsfData *arg0, HsfObject *arg1); +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix); +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_7294(void); +void *fn_1_72D4(s32 arg0); +void fn_1_739C(M433DllUnkStruct2 *arg0); +void fn_1_7430(void); +s32 fn_1_7500(void); +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3); +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3); +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4); + +M433DllUnkStruct3 *lbl_1_bss_12C; +M433DllUnkStruct2 *lbl_1_bss_128; +void *lbl_1_bss_A8[0x20]; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_98[2]; +M433DllUnkStruct3 lbl_1_bss_90; + +void fn_1_43C8(Process *arg0) +{ + s32 var_r31; + omObjData *var_r30; + s32 var_r28; + + var_r28 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + fn_1_7500(); + } + fn_1_7294(); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + lbl_1_bss_A4 = omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_A4->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = omAddObjEx(arg0, 0xFE, 1, 0, -1, fn_1_4650); + lbl_1_bss_98[var_r31] = var_r30; + var_r30->work[0] = var_r31; + } + lbl_1_bss_A0 = omAddObjEx(arg0, 0x7F, 9, 0, -1, fn_1_4F04); +} + +void fn_1_4630(void) +{ + fn_1_7430(); +} + +void fn_1_4650(omObjData *object) +{ + M433DllMapWork2 *work; + + work = fn_1_72D4(0x190); + object->data = work; + work->unk_148 = work->unk_144 = 0.0f; + work->unk_140 = 1.0f; + work->unk_10.x = work->unk_28.x = 0.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 80.0f; + work->unk_04.z = work->unk_1C.z = 0.0f; + work->unk_130 = work->unk_134 = 600.0f; + work->unk_188[0] = work->unk_188[1] = work->unk_188[2] = 0; + object->func = fn_1_475C; +} + +void fn_1_475C(omObjData *object) +{ + float var_f31; + M433DllMapWork2 *work; + s32 var_r29; + + work = object->data; + if (work->unk_148 > 0.0f) { + work->unk_148 = work->unk_148 - work->unk_140; + var_f31 = (work->unk_144 - work->unk_148) / work->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (work->unk_00 == 0) { + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34.x - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_34.y - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_34.z - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40.x - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_40.y - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_40.z - work->unk_28.z)); + work->unk_130 = work->unk_134 + (var_f31 * (work->unk_138 - work->unk_134)); + } + else { + fn_1_977C(2.0f * var_f31, (float *)&work->unk_04, work->unk_F4, (float(*)[3])work->unk_64, (float(*)[3])work->unk_88, 3); + fn_1_977C(2.0f * var_f31, (float *)&work->unk_10, work->unk_100, (float(*)[3])work->unk_AC, (float(*)[3])work->unk_D0, 3); + work->unk_130 = fn_1_9248(2.0f * var_f31, work->unk_124, work->unk_10C, work->unk_118, 3); + } + } + CRotM[object->work[0]].x = work->unk_10.x; + CRotM[object->work[0]].y = work->unk_10.y; + CRotM[object->work[0]].z = work->unk_10.z; + CenterM[object->work[0]].x = work->unk_04.x; + CenterM[object->work[0]].y = work->unk_04.y; + CenterM[object->work[0]].z = work->unk_04.z; + CZoomM[object->work[0]] = work->unk_130; + for (var_r29 = 0; var_r29 < 3; var_r29++) { + work->unk_17C[var_r29] = 0.0f; + if (work->unk_188[var_r29] != 0) { + work->unk_17C[var_r29] = work->unk_14C[var_r29] * sind(work->unk_164[var_r29]); + work->unk_164[var_r29] += work->unk_170[var_r29]; + work->unk_14C[var_r29] *= work->unk_158[var_r29]; + work->unk_188[var_r29] -= 1; + } + } + CenterM[object->work[0]].x += work->unk_17C[0]; + CenterM[object->work[0]].y += work->unk_17C[1]; + CenterM[object->work[0]].z += work->unk_17C[2]; +} + +void fn_1_4B7C(u8 arg0, float arg1, Vec *arg2, Vec *arg3, float arg8, Vec *arg4, Vec *arg5, float arg9) +{ + float var_f31; + float var_f30; + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 1; + var_r31->unk_148 = var_r31->unk_144 = arg1; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg2->x; + var_r31->unk_34.y = arg2->y; + var_r31->unk_34.z = arg2->z; + var_r31->unk_4C.x = arg4->x; + var_r31->unk_4C.y = arg4->y; + var_r31->unk_4C.z = arg4->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg3->x; + var_r31->unk_40.y = arg3->y; + var_r31->unk_40.z = arg3->z; + var_r31->unk_58.x = arg5->x; + var_r31->unk_58.y = arg5->y; + var_r31->unk_58.z = arg5->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg8; + var_r31->unk_13C = arg9; + var_r31->unk_64[0] = var_r31->unk_1C; + var_r31->unk_64[1] = var_r31->unk_4C; + var_r31->unk_64[2] = var_r31->unk_34; + var_r31->unk_AC[0] = var_r31->unk_28; + var_r31->unk_AC[1] = var_r31->unk_58; + var_r31->unk_AC[2] = var_r31->unk_40; + var_r31->unk_10C[0] = var_r31->unk_134; + var_r31->unk_10C[1] = var_r31->unk_13C; + var_r31->unk_10C[2] = var_r31->unk_138; + var_r31->unk_124[0] = 0.0f; + if ((var_r31->unk_10C[1] - var_r31->unk_10C[0]) < 0.0f) { + var_f31 = -(var_r31->unk_10C[1] - var_r31->unk_10C[0]); + } + else { + var_f31 = var_r31->unk_10C[1] - var_r31->unk_10C[0]; + } + var_r31->unk_124[1] = var_f31; + if ((var_r31->unk_10C[2] - var_r31->unk_10C[1]) < 0.0f) { + var_f30 = -(var_r31->unk_10C[2] - var_r31->unk_10C[1]); + } + else { + var_f30 = var_r31->unk_10C[2] - var_r31->unk_10C[1]; + } + var_r31->unk_124[2] = var_r31->unk_124[1] + var_f30; + fn_1_939C(var_r31->unk_F4, (float(*)[3])var_r31->unk_64, (float(*)[3])var_r31->unk_88, 3); + fn_1_939C(var_r31->unk_100, (float(*)[3])var_r31->unk_AC, (float(*)[3])var_r31->unk_D0, 3); + fn_1_8F90(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); +} + +void fn_1_4E44(u8 arg0, float arg8) +{ + M433DllMapWork2 *work = lbl_1_bss_98[arg0]->data; + work->unk_140 = arg8; +} + +void fn_1_4E78(u8 arg0, u8 arg1, u16 arg2, float arg8, float arg9, float argA) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_188[arg1] = arg2; + var_r31->unk_14C[arg1] = arg8; + var_r31->unk_158[arg1] = arg9; + var_r31->unk_170[arg1] = argA; + var_r31->unk_164[arg1] = 90.0f; +} + +static char lbl_1_data_130[20] = "goal"; // explicitly declared because of padding + +void fn_1_4F04(omObjData *object) +{ + s32 var_r31; + M433DllUnkStruct *var_r29; + s32 var_r28; + + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0)); + object->model[0] = var_r31; + Hu3DModelShadowMapSet(var_r31); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 1)); + object->model[1] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + fn_1_5558(var_r31, &lbl_1_bss_90); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 2)); + object->model[2] = var_r31; + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 3)); + object->model[3] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapObjSet(var_r31, lbl_1_data_130); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 4)); + object->model[4] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 1); + fn_1_4170(var_r31, 1); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 5)); + object->model[5] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 2); + fn_1_4170(var_r31, 2); + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r31 = fn_1_71AC(DATA_MAKE_NUM(DATADIR_M428, 6), 0x3E8, fn_1_6280); + object->model[var_r28 + 6] = var_r31; + Hu3DModelLayerSet(var_r31, 4); + Hu3DModelCameraSet(var_r31, 1 << var_r28); + var_r29 = ((ParticleData *)Hu3DData[var_r31].unk_120)->unk_1C; + var_r29->unk_08 = 400.0f; + var_r29->unk_0C = -400.0f; + var_r29->unk_10 = 1300.0f; + var_r29->unk_14 = -800.0f; + var_r29->unk_18 = 700.0f; + var_r29->unk_1C = 150.0f; + } + object->func = fn_1_51E0; +} + +void fn_1_51E0(omObjData *object) +{ + M433DllUnkStruct *var_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31 = ((ParticleData *)Hu3DData[object->model[var_r30 + 6]].unk_120)->unk_1C; + var_r31->unk_08 = 500.0f + CenterM[var_r30].x; + var_r31->unk_0C = -500.0f + CenterM[var_r30].x; + var_r31->unk_10 = 900.0f + CenterM[var_r30].y; + var_r31->unk_14 = -1200.0f + CenterM[var_r30].y; + } +} + +void fn_1_52D8(omObjData *object) { } + +u8 fn_1_52DC(M433DllUnkStruct3 *arg0, Vec *arg1) +{ + u32 var_r30; + M433DllUnkStruct2 *var_r29; + s32 var_r28; + + var_r28 = 0; + for (var_r29 = arg0->unk_04, var_r30 = 0; var_r30 < arg0->unk_00; var_r30++, var_r29++) { + if (fn_1_5370(var_r29, arg1) != 0) { + break; + } + } + if (var_r30 < arg0->unk_00) { + var_r28 = 1; + } + return var_r28; +} + +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M433DllUnkStruct4 *var_r31; + s32 var_r28; + u32 var_r27; + s32 var_r26; + Vec *var_r25; + s32 var_r24; + Vec *var_r23; + + var_r31 = arg0->unk_0C; + for (var_r27 = 0; var_r27 < arg0->unk_08; var_r27++, var_r31++) { + sp8 = *arg1; + sp8.y = 0.0f; + VECSubtract(&sp8, &var_r31->unk_00, &sp20); + var_f30 = VECMag(&sp20); + if (!(var_f30 > (400.0f + var_r31->unk_20)) && (var_r31->unk_2C != 0.0f)) { + var_r24 = 0; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r26 = var_r28 + 1; + if (var_r26 == 3) { + var_r26 = 0; + } + var_r23 = &arg0->unk_00[var_r31->unk_0C[var_r28]]; + var_r25 = &arg0->unk_00[var_r31->unk_0C[var_r26]]; + VECSubtract(var_r25, var_r23, &sp20); + VECSubtract(arg1, var_r25, &sp14); + var_f31 = (sp20.x * sp14.y) - (sp20.y * sp14.x); + if ((var_f31 * var_r31->unk_2C) < 0.0) { + var_r24 = 1; + break; + } + } + if (var_r24 == 0) { + arg1->z = ((var_r31->unk_30 - (var_r31->unk_24 * arg1->x)) - (var_r31->unk_28 * arg1->y)) / var_r31->unk_2C; + return 1; + } + } + } + return 0; +} + +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1) +{ + HsfData *var_r31; + u32 var_r30; + + var_r31 = Hu3DData[arg0].hsfData; + lbl_1_bss_12C = arg1; + lbl_1_bss_12C->unk_00 = 0; + lbl_1_bss_12C->unk_04 = fn_1_72D4(0x1000); + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + fn_1_5CCC(var_r31, var_r31->root); + var_r30 = lbl_1_bss_12C->unk_00 * 0x10; + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + lbl_1_bss_12C->unk_04 = fn_1_72D4(var_r30); + memcpy(lbl_1_bss_12C->unk_04, lbl_1_bss_128, var_r30); + fn_1_739C(lbl_1_bss_128); +} + +void fn_1_5684(HsfData *arg0, HsfObject *arg1) +{ + Vec sp18; + Vec spC; + float var_f31; + M433DllUnkStruct4 *var_r31; + HsfFace *var_r30; + HsfBuffer *var_r29; + s32 var_r28; + s32 var_r27; + HsfBuffer *var_r25; + + var_r29 = arg1->data.vertex; + var_r25 = arg1->data.face; + lbl_1_bss_128->unk_08 = var_r25->count; + lbl_1_bss_128->unk_04 = var_r29->count; + lbl_1_bss_128->unk_00 = var_r29->data; + lbl_1_bss_128->unk_0C = fn_1_72D4(lbl_1_bss_128->unk_08 * sizeof(M433DllUnkStruct4)); + var_r30 = var_r25->data; + var_r31 = lbl_1_bss_128->unk_0C; + for (var_r27 = 0; var_r27 < var_r25->count; var_r27++, var_r30++, var_r31++) { + switch (var_r30->type & 7) { + case 2: + var_r31->unk_1C = 3; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x /= 3.0f; + var_r31->unk_00.y /= 3.0f; + var_r31->unk_00.z /= 3.0f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + var_r31->unk_00.y = 0.0f; + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z) + + ((var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + (var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)); + break; + case 3: + var_r31->unk_1C = 4; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x *= 0.25f; + var_r31->unk_00.y *= 0.25f; + var_r31->unk_00.z *= 0.25f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + ((var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)) + + (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z); + break; + default: + OSReport("Error\n"); + break; + } + } + for (var_r27 = 0; var_r27 < arg1->data.childrenCount; var_r27++) { + fn_1_5CCC(arg0, arg1->data.children[var_r27]); + } +} + +void fn_1_5CCC(HsfData *var_r31, HsfObject *var_r23) +{ + s16 var_r22; + + switch (var_r23->type) { + case 0: + case 1: + case 3: + case 4: + case 5: + case 6: + case 9: + for (var_r22 = 0; var_r22 < var_r23->data.childrenCount; var_r22++) { + fn_1_5CCC(var_r31, var_r23->data.children[var_r22]); + } + break; + case 2: + fn_1_5684(var_r31, var_r23); + lbl_1_bss_12C->unk_00++; + lbl_1_bss_128++; + break; + } +} + +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) +{ + s32 sp3C; + s32 sp38; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + HsfanimStruct01 *var_r31; + M433DllUnkStruct *var_r30; + s32 var_r28; + s32 var_r27; + + var_r30 = particle->unk_1C; + var_f29 = var_r30->unk_08 - var_r30->unk_0C; + var_f30 = var_r30->unk_10 - var_r30->unk_14; + var_f28 = var_r30->unk_18 - var_r30->unk_1C; + switch (var_r30->unk_04) { + case 2: + break; + case 0: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < (0.3f * particle->unk_30); var_r28++, var_r31++) { + var_r31->unk00 = 1; + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = (var_r30->unk_14 + ((200.0f + var_f30) * (fn_1_7500() / 65536.0f))) - 100.0f; + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + var_r31->unk2C = 26.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk30 = 360.0f * (fn_1_7500() / 65536.0f); + var_r31->unk02 = 0; + } + for (; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk40.a = 0; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + } + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_04++; + break; + case 1: + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_06 = 0; + break; + case 3: + particle->unk_04.x *= 0.95f; + if (particle->unk_04.x < 0.0f) { + var_f27 = -particle->unk_04.x; + } + else { + var_f27 = particle->unk_04.x; + } + if (var_f27 < 0.01f) { + var_r30->unk_04 = 1; + } + break; + } + for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + switch (var_r31->unk00) { + case 0: + if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) { + var_r31->unk2C = 0.01f; + } + else { + if (((fn_1_7500() & 3) == 0) || (particle->unk_04.x == 0.0f)) { + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = var_r30->unk_10 + (100.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 7; + } + else { + if (particle->unk_04.x > 0.0f) { + var_r31->unk34.x = var_r30->unk_0C - (100.0f * (fn_1_7500() / 65536.0f)); + } + else { + var_r31->unk34.x = var_r30->unk_08 + (100.0f * (fn_1_7500() / 65536.0f)); + } + var_r31->unk34.y = var_r30->unk_10 - (var_f30 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 0xFF; + } + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk2C = 28.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk08.x = 0.25f * var_r31->unk08.y * ((fn_1_7500() - 0x8000) / 32768.0f); + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + var_r31->unk02 = 0; + var_r27++; + var_r31->unk00++; + } + break; + case 1: + var_r31->unk08.y += -1.6333333f; + var_r31->unk08.y += 0.19998f * (1.6333333f * (4.81f + (0.005f * var_r31->unk2C))); + if (var_r31->unk02 != 0) { + var_r31->unk02--; + var_r31->unk08.y *= 0.8f; + var_r31->unk08.y += 0.0025f * (-1.6333333f * var_r31->unk2C); + } + else if ((fn_1_7500() & 0x7F) == 0) { + var_r31->unk02 = (s32)(30.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk08.x < 0.0f) { + var_f26 = -var_r31->unk08.x; + } + else { + var_f26 = var_r31->unk08.x; + } + if (var_f26 < 0.02f) { + var_r31->unk14.x = 0.025f * (var_r31->unk2C * (-1.6333333f * ((fn_1_7500() - 0x8000) / 32768.0f))); + if (var_r31->unk14.x > 0.0f) { + var_r31->unk08.x = 0.02f + (0.04f * var_r31->unk14.x); + } + else { + var_r31->unk08.x = (0.04f * var_r31->unk14.x) - 0.02f; + } + } + else { + var_f31 = var_r31->unk08.x - var_r31->unk14.x; + var_r31->unk08.x = var_r31->unk14.x + (0.98f * var_f31); + if (var_f31 < 0.0f) { + var_f25 = -var_f31; + } + else { + var_f25 = var_f31; + } + if (var_f25 < 0.02f) { + var_r31->unk14.x = 0.0f; + } + } + if ((var_r31->unk34.y < (var_r30->unk_14 - 100.0f)) || (var_r31->unk34.x > (100.0f + var_r30->unk_08)) + || (var_r31->unk34.x < (var_r30->unk_0C - 100.0f))) { + var_r31->unk00 = 0; + } + if (var_r31->unk34.y > (100.0f + var_r30->unk_10)) { + var_r31->unk34.y = var_r30->unk_14 - (100.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk34.y < var_r30->unk_14) { + var_r31->unk40.a *= 0.9f; + } + else if (var_r31->unk40.a < 0xFF) { + var_r31->unk40.a += 8; + } + break; + } + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + if (particle->unk_04.x != 0.0f) { + sp8 = particle->unk_04; + sp8.x *= var_r31->unk2C / 28.0f; + sp8.y = (((u8)var_r31->unk2C & 1) != 0 ? 1.0f : -1.0f) * (sp8.x * (0.05f + (s32)(0.2f * (fn_1_7500() / 65536.0f)))); + VECAdd(&var_r31->unk34, &sp8, &var_r31->unk34); + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook hook) +{ + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + s32 var_r28; + M433DllUnkStruct *var_r27; + AnimData *var_r25; + + var_r25 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r28 = Hu3DParticleCreate(var_r25, arg1); + Hu3DParticleHookSet(var_r28, hook); + var_r30 = Hu3DData[var_r28].unk_120; + var_r27 = fn_1_72D4(0x48); + var_r30->unk_1C = var_r27; + var_r27->unk_04 = 0; + var_r31 = var_r30->unk_48; + memset(var_r31, 0, arg1 * 0x44); + for (var_r29 = 0; var_r29 < arg1; var_r29++, var_r31++) { + var_r31->unk06 = -1; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + } + return var_r28; +} + +void fn_1_7294(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void *fn_1_72D4(s32 arg0) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (!lbl_1_bss_A8[i]) { + break; + } + } + if (i == 0x20) { + return NULL; + } + lbl_1_bss_A8[i] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_A8[i], 0, arg0); + return lbl_1_bss_A8[i]; +} + +void fn_1_739C(M433DllUnkStruct2 *arg0) +{ + s32 var_r31; + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31] == arg0) { + break; + } + } + if (var_r31 != 0x20) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void fn_1_7430(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31]) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } + } +} + +void fn_1_74B4(s16 arg0, Mtx arg1) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + MTXCopy(arg1, var_r31->unk_F0); +} + +u32 lbl_1_data_14C = 0x41C64E6D; + +s32 fn_1_7500(void) +{ + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + return lbl_1_data_14C >> 0x10; +} + +void fn_1_7554(s32 arg0, s32 *arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r31 = 0; var_r31 < arg0; var_r31++) { + arg1[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < (arg0 - 1); var_r31++) { + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + var_r28 = lbl_1_data_14C >> 0x10; + var_r27 = var_r28; + var_r30 = arg0 * (var_r27 / 65536.0f); + var_r29 = arg1[var_r31]; + arg1[var_r31] = arg1[var_r30]; + arg1[var_r30] = var_r29; + } +} + +float fn_1_7690(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_77F8(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_7918(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + var_f29 = -arg0[0][2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_7CB4(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f27; + + arg1->z = atan2d(arg0[0][1], arg0[1][1]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + arg1->y = atan2d(arg0[0][2], arg0[2][2]); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } + var_f29 = -arg0[2][1]; + var_f27 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + arg1->x = atan2d(var_f29, var_f27); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } +} + +float fn_1_7F94(Vec *arg0) +{ + float var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + float var_f29 = 1.0f / var_f30; + arg0->x = arg0->x * var_f29; + arg0->y = arg0->y * var_f29; + arg0->z = arg0->z * var_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} + +void fn_1_812C(Vec arg0, Vec arg1, Vec *arg2, float arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } + else if (arg8 >= 1.0f) { + arg2->x = arg0.x + arg1.x; + arg2->y = arg0.y + arg1.y; + arg2->z = arg0.z + arg1.z; + arg8 = 1.0f; + } + else { + arg2->x = arg0.x + (arg8 * arg1.x); + arg2->y = arg0.y + (arg8 * arg1.y); + arg2->z = arg0.z + (arg8 * arg1.z); + } +} + +float fn_1_8204(Vec arg0, Vec arg1, Vec arg2) +{ + float var_f31; + float temp_f30; + + var_f31 = arg2.x * (arg1.x - arg0.x) + arg2.y * (arg1.y - arg0.y) + arg2.z * (arg1.z - arg0.z); + temp_f30 = -(arg2.x * arg2.x + arg2.y * arg2.y + arg2.z * arg2.z); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +float fn_1_82C0(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + float var_f31; + + if (arg2->x * arg2->x + arg2->y * arg2->y + arg2->z * arg2->z == 0.0f) { + return (arg0->x - arg1->x) * (arg0->x - arg1->x) + (arg0->y - arg1->y) * (arg0->y - arg1->y) + (arg0->z - arg1->z) * (arg0->z - arg1->z); + } + var_f31 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, &sp44, var_f31); + return (arg0->x - sp44.x) * (arg0->x - sp44.x) + (arg0->y - sp44.y) * (arg0->y - sp44.y) + (arg0->z - sp44.z) * (arg0->z - sp44.z); +} + +float fn_1_85FC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + float var_f30; + + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f30 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, arg3, var_f30); + + arg4->x = arg0->x - arg3->x; + arg4->y = arg0->y - arg3->y; + arg4->z = arg0->z - arg3->z; + return fn_1_7F94(arg4); +} + +float fn_1_8AAC(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 1.0 - arg8; + float var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_8B24(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_8AAC(arg8, *arg0++, *arg1++, *arg2++); + } +} + +float fn_1_8C40(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_8CB8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float var_f29; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_8C40(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = 1.0 / var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} + +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float sp48[16]; + float sp8[16]; + double var_f31; + s32 var_r31; + + arg2[0] = 0.0f; + arg2[arg3 - 1] = 0.0f; + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp48[var_r31] == 0.0f) { + sp8[var_r31 + 1] = 0.0f; + } + else { + sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; + } + } + arg2[1] = sp8[2] - sp8[1]; + sp8[1] = 2.0f * (arg0[2] - arg0[0]); + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + var_f31 = sp48[var_r31] / sp8[var_r31]; + arg2[var_r31 + 1] = (sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (var_f31 * arg2[var_r31]); + sp8[var_r31 + 1] = (2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (var_f31 * sp48[var_r31]); + } + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp8[var_r31] == 0.0f) { + arg2[var_r31] = 0.0f; + } + else { + arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; + } + } +} + +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31 = arg8; + arg8 = arg8 - var_r31; + var_f31 = arg0[var_r31 + 1] - arg0[var_r31]; + var_f30 = var_f31 * arg8; + var_f29 = arg1[var_r31] + + (var_f30 + * ((var_f30 * ((3.0f * arg2[var_r31]) + ((var_f30 * (arg2[var_r31 + 1] - arg2[var_r31])) / var_f31))) + + (((arg1[var_r31 + 1] - arg1[var_r31]) / var_f31) - (var_f31 * ((2.0f * arg2[var_r31]) + arg2[var_r31 + 1]))))); + if (var_f31 == 0.0f) { + var_f29 = arg1[var_r31]; + } + return var_f29; +} + +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28) +{ + float spD4[16]; + float sp94[16]; + Vec sp8; + s32 var_r31; + s32 var_r30; + s32 var_r27; + + arg0[0] = 0.0f; + for (var_r30 = 1; var_r30 < var_r28; var_r30++) { + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); + } + for (var_r27 = 0; var_r27 < 3; var_r27++) { + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + spD4[var_r30] = arg1[var_r30][var_r27]; + } + fn_1_8F90(arg0, spD4, sp94, var_r28); + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + arg2[var_r30][var_r27] = sp94[var_r30]; + } + } +} + +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4) +{ + float sp48[16]; + float sp8[16]; + s32 var_r30; + s32 var_r29; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + for (var_r30 = 0; var_r30 < arg4; var_r30++) { + sp48[var_r30] = arg2[var_r30][var_r29]; + sp8[var_r30] = arg3[var_r30][var_r29]; + } + arg0[var_r29] = fn_1_9248(arg8, arg1, sp48, sp8, 3); + } +} + +u8 fn_1_9990(Vec *sp8) +{ + u32 var_r31; + M433DllUnkStruct2 *var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = lbl_1_bss_90.unk_04; + for (var_r31 = 0; var_r31 < lbl_1_bss_90.unk_00; var_r31++, var_r30++) { + if (fn_1_5370(var_r30, sp8) != 0) { + break; + } + } + if (var_r31 < lbl_1_bss_90.unk_00) { + var_r29 = 1; + } + return var_r29; +} + +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9) +{ + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 0; + var_r31->unk_144 = arg8; + var_r31->unk_148 = arg8; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg1->x; + var_r31->unk_34.y = arg1->y; + var_r31->unk_34.z = arg1->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg2->x; + var_r31->unk_40.y = arg2->y; + var_r31->unk_40.z = arg2->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg9; +} + +void fn_1_9ADC(u8 arg0) +{ + Vec sp14; + Vec sp8; + float var_f31; + M433DllMapWork2 *work; + omObjData *var_r30; + + sp14.x = 0.0f; + sp14.y = 80.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 600.0f; + work = lbl_1_bss_98[arg0]->data; + work->unk_00 = 0; + work->unk_148 = work->unk_144 = 1.0f; + work->unk_1C = work->unk_04; + work->unk_34.x = sp14.x; + work->unk_34.y = sp14.y; + work->unk_34.z = sp14.z; + work->unk_28 = work->unk_10; + work->unk_40.x = sp8.x; + work->unk_40.y = sp8.y; + work->unk_40.z = sp8.z; + work->unk_134 = work->unk_130; + work->unk_138 = var_f31; + Hu3DCameraPerspectiveSet(1 << arg0, 45.0f, 100.0f, 5000.0f, 1.2f); + Hu3DCameraViewportSet(1 << arg0, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2 >> arg0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1 << arg0, 0, 0, 0x280, 0x1E0); + Hu3DCameraScissorSet(2 >> arg0, 0, 0, 0, 0); + var_r30 = lbl_1_bss_A0; + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[arg0 + 4], HU3D_ATTR_DISPOFF); + var_r30->func = fn_1_52D8; +} + +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1) +{ + ParticleData *var_r31; + M433DllUnkStruct *var_r30; + + var_r31 = Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120; + var_r30 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + var_r30->unk_04 = 2; + var_r31->unk_04.x = arg8 * arg1; +} + +void fn_1_9EA8(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + if (var_r31->unk_04 == 2) { + var_r31->unk_04 = 3; + } +} + +u8 fn_1_9F08(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + return var_r31->unk_04; +} diff --git a/src/REL/m428Dll/player.c b/src/REL/m428Dll/player.c new file mode 100644 index 00000000..4964e8a5 --- /dev/null +++ b/src/REL/m428Dll/player.c @@ -0,0 +1,3401 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfload.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M428DllBss13CStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ char pad_04[0x3C]; /* maybe part of unk_00[0x10]? */ +} M428DllBss13CStruct; /* size = 0x40 */ + +typedef struct M428DllData4B0Struct { + Vec unk_00; + float unk_0C; +} M428DllData4B0Struct; /* size = 0x10 */ + +typedef struct M428DllData500Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; +} M428DllData500Struct; /* size = 0x08 */ + +typedef struct M428DllPlayerWork { + omObjData *unk_00[2]; // M428DllPlayerWork2 + s16 unk_08[2]; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + s16 unk_12; + s32 unk_14; + s32 unk_18; + float unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + float unk_2C; + float unk_30; + float unk_34; + s32 unk_38; + Vec unk_3C; + float unk_48; + float unk_4C[2]; + float unk_54[2]; + float unk_5C; + float unk_60; + Vec unk_64[2]; + Vec unk_7C; + Vec unk_88; + Vec unk_94; + Vec unk_A0; + Vec unk_AC; + s32 unk_B8; + s32 unk_BC; + s32 unk_C0; + s32 unk_C4; + float unk_C8; +} M428DllPlayerWork; /* size = 0xCC */ + +typedef struct M428DllPlayerWork2 { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + s16 unk_08; + s16 unk_0A; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + float unk_14; + float unk_18; + s16 unk_1C; + s16 unk_1E; + s16 unk_20; + s16 unk_22; + s16 unk_24; + s16 unk_26; + float unk_28; + float unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + Vec unk_3C; + Vec unk_48; + Vec unk_54; + Mtx unk_60; + Vec unk_90; + char unk_9C[0x100]; + s32 unk_19C; + s32 unk_1A0; + s32 unk_1A4; + s32 unk_1A8; + float unk_1AC; + s32 unk_1B0; + s32 unk_1B4; + Vec unk_1B8; +} M428DllPlayerWork2; /* size = 0x1C4 */ + +typedef struct M428DllPlayerWork3 { + s32 unk_00; + s32 unk_04[2]; + float unk_0C[2][2]; + s32 unk_1C[2]; + float unk_24[2][2]; + AnimData *unk_34; + AnimData *unk_38; + s32 unk_3C[2][2]; + s32 unk_4C[2][2]; +} M428DllPlayerWork3; /* size = 0x5C */ + +typedef struct M428DllPlayerUnkStruct { + s16 unk_00; + s16 unk_02; + s32 unk_04; + Vec unk_08[4]; +} M428DllPlayerUnkStruct; /* size = 0x38 */ + +typedef struct M428DllPlayerUnk120Struct { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + s32 unk_0C; + s32 unk_10; + float unk_14; + float unk_18; + s32 unk_1C; + Vec unk_20; + Vec unk_2C; + Vec unk_38; + s32 unk_44; + float unk_48; + float unk_4C; + float unk_50; + M428DllPlayerUnkStruct *unk_54; +} M428DllPlayerUnk120Struct; /* size = 0x58 */ + +typedef struct M428DllPlayerUnkStruct2 { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + float unk_0C; + char unk10[8]; + float unk_18; + char unk1C[0xC]; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + Vec unk_38; + GXColor unk_44; + s32 unk_48; +} M428DllPlayerUnkStruct2; /* size = 0x4C */ + +typedef void (*M428DllPlayerHook)(ModelData *model, struct M428DllPlayerUnk120Struct2 *arg1, Mtx matrix); + +typedef struct M428DllPlayerUnk120Struct2 { + s16 unk_00; + s16 unk_02; + char unk04[0x1C]; + u8 unk_20; + u8 unk_21; + u8 unk_22; + u8 unk_23; + char unk24[2]; + s16 unk_26; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + u32 unk_34; + AnimData *unk_38; + M428DllPlayerUnkStruct2 *unk_3C; + Vec *unk_40; + Vec2f *unk_44; + void *unk_48; + M428DllPlayerHook unk_4C; + ModelData *unk_50; +} M428DllPlayerUnk120Struct2; /* size = 0x54 */ + +typedef struct M428DllPlayerWork4 { + s32 unk_00[2]; + s32 unk_08[2]; + AnimData *unk_10; +} M428DllPlayerWork4; /* size = 0x14 */ + +void fn_1_102A8(ModelData *modle, Mtx matrix); +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2); +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3); +void fn_1_105E8(s32 arg0, float arg8, float arg9); +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_10A88(void); +void fn_1_11014(omObjData *object); +void fn_1_115F8(void); +void fn_1_118A8(s32 arg0, float arg8); +void fn_1_11930(void); +void fn_1_11A60(omObjData *object); +void fn_1_11C20(void); +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3); +float fn_1_1236C(float arg8, float arg9, float argA); +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2); +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +s16 fn_1_12CD4(AnimData *arg0, s16 arg1); +void fn_1_134C0(ModelData *model, Mtx matrix); +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2); +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2); +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8); +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3); +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3); +void fn_1_A108(omObjData *object); +void fn_1_A4C8(omObjData *object); +void fn_1_B3D4(omObjData *object); +void fn_1_B43C(omObjData *object); +void fn_1_BBD0(omObjData *object); +void fn_1_E5F4(omObjData *object); +void fn_1_E600(omObjData *object); +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg8); +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8); +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3); + +extern u32 GlobalCounter; + +Vec lbl_1_data_150[4] = { + { -140.0f, -400.0f, 0.0f }, + { 140.0f, -300.0f, 0.0f }, + { -140.0f, -300.0f, 0.0f }, + { 140.0f, -400.0f, 0.0f }, +}; +Vec lbl_1_data_180[4] = { + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, +}; +Vec lbl_1_data_1B0[4][0xE] = { + { + { -11.0f, 214.0f, 39.0f }, + { -11.0f, 400.0f, 46.0f }, + { -11.0f, 668.0f, 56.0f }, + { -11.0f, 931.0f, 42.0f }, + { 7.0f, 1131.0f, 65.0f }, + { -452.0f, 1449.0f, 57.0f }, + { -478.0f, 1763.0f, 48.0f }, + { -452.0f, 2001.0f, 44.0f }, + { -311.0f, 2120.0f, 55.0f }, + { -85.0f, 2442.0f, 42.0f }, + { -32.0f, 2876.0f, 43.0f }, + { -12.0f, 3300.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 16.0f, 203.0f, 40.0f }, + { 0.0f, 456.0f, 50.0f }, + { 15.0f, 650.0f, 58.0f }, + { -268.0f, 935.0f, 51.0f }, + { -463.0f, 1205.0f, 66.0f }, + { -663.0f, 1313.0f, 69.0f }, + { -460.0f, 1600.0f, 59.0f }, + { -333.0f, 1946.0f, 46.0f }, + { -82.0f, 2188.0f, 44.0f }, + { -76.0f, 2374.0f, 40.0f }, + { -108.0f, 2620.0f, 43.0f }, + { -95.0f, 2990.0f, 46.0f }, + { -270.0f, 3445.0f, 46.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 26.0f, 354.0f, 46.0f }, + { 29.0f, 604.0f, 57.0f }, + { 30.0f, 877.0f, 39.0f }, + { 51.0f, 1086.0f, 64.0f }, + { 360.0f, 1196.0f, 46.0f }, + { 398.0f, 1416.0f, 39.0f }, + { 468.0f, 1658.0f, 43.0f }, + { 468.0f, 1944.0f, 53.0f }, + { 135.0f, 2174.0f, 47.0f }, + { 107.0f, 2430.0f, 61.0f }, + { 98.0f, 2698.0f, 43.0f }, + { 90.0f, 2995.0f, 50.0f }, + { 0.0f, 4500.0f, 48.0f }, + { 0.0f, 4500.0f, 48.0f }, + }, + { + { -24.0f, 313.0f, 41.0f }, + { -11.0f, 529.0f, 51.0f }, + { -33.0f, 799.0f, 44.0f }, + { 7.0f, 990.0f, 53.0f }, + { 135.0f, 1196.0f, 57.0f }, + { 393.0f, 1379.0f, 39.0f }, + { 429.0f, 1457.0f, 42.0f }, + { 420.0f, 1984.0f, 54.0f }, + { 190.0f, 2239.0f, 53.0f }, + { 70.0f, 2532.0f, 55.0f }, + { 75.0f, 2933.0f, 44.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + }, +}; +Vec lbl_1_data_450[4] = { + { -30.000002f, -10.0f, -90.0f }, + { 20.0f, -10.0f, -70.0f }, + { 0.0f, -10.0f, 0.0f }, + { 0.0f, -10.0f, 0.0f }, +}; +Vec lbl_1_data_480[4] = { + { 15.0f, 150.0f, 0.0f }, + { 15.0f, 210.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, +}; +M428DllData4B0Struct lbl_1_data_4B0[5] = { + { { -400.0f, 700.0f, 0.0f }, 200.0f }, + { { 400.0f, 900.0f, 0.0f }, 200.0f }, + { { 0.0f, 1800.0f, 0.0f }, 220.0f }, + { { -600.0f, 3100.0f, 0.0f }, 300.0f }, + { { 600.0f, 2880.0f, 0.0f }, 300.0f }, +}; +M428DllData500Struct lbl_1_data_500[0xC] = { + { 0x5F0000, 0 }, + { 0x5F0002, 0 }, + { 0x5F0003, 0 }, + { -1, 0 }, + { -1, 1 }, + { -1, 2 }, + { -1, 3 }, + { 0x5F0006, 0 }, + { 0x5F0014, 0 }, + { 0x5F005B, 0 }, + { 0x5F0017, 0 }, + { 0x5F0018, 0 }, +}; +s32 lbl_1_data_560[4][8] = { + { + DATA_MAKE_NUM(DATADIR_M428, 0x11), + DATA_MAKE_NUM(DATADIR_M428, 0x12), + DATA_MAKE_NUM(DATADIR_M428, 0x13), + DATA_MAKE_NUM(DATADIR_M428, 0x14), + DATA_MAKE_NUM(DATADIR_M428, 0x15), + DATA_MAKE_NUM(DATADIR_M428, 0x16), + DATA_MAKE_NUM(DATADIR_M428, 0x17), + DATA_MAKE_NUM(DATADIR_M428, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x19), + DATA_MAKE_NUM(DATADIR_M428, 0x1A), + DATA_MAKE_NUM(DATADIR_M428, 0x1B), + DATA_MAKE_NUM(DATADIR_M428, 0x1C), + DATA_MAKE_NUM(DATADIR_M428, 0x1D), + DATA_MAKE_NUM(DATADIR_M428, 0x1E), + DATA_MAKE_NUM(DATADIR_M428, 0x1F), + DATA_MAKE_NUM(DATADIR_M428, 0x20), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x21), + DATA_MAKE_NUM(DATADIR_M428, 0x22), + DATA_MAKE_NUM(DATADIR_M428, 0x23), + DATA_MAKE_NUM(DATADIR_M428, 0x24), + DATA_MAKE_NUM(DATADIR_M428, 0x25), + DATA_MAKE_NUM(DATADIR_M428, 0x26), + DATA_MAKE_NUM(DATADIR_M428, 0x27), + DATA_MAKE_NUM(DATADIR_M428, 0x28), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x29), + DATA_MAKE_NUM(DATADIR_M428, 0x2A), + DATA_MAKE_NUM(DATADIR_M428, 0x2B), + DATA_MAKE_NUM(DATADIR_M428, 0x2C), + DATA_MAKE_NUM(DATADIR_M428, 0x2D), + DATA_MAKE_NUM(DATADIR_M428, 0x2E), + DATA_MAKE_NUM(DATADIR_M428, 0x2F), + DATA_MAKE_NUM(DATADIR_M428, 0x30), + }, +}; +Vec lbl_1_data_5E0[8] = { + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, 10.0f, -10.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, +}; +s32 lbl_1_data_640[4] = { 0x80000000, 0x40000000, 0x20000000, 0x10000000 }; +GXColor lbl_1_data_650 = { 0xFF, 0xFF, 0xFF, 0x20 }; +GXColor lbl_1_data_654 = { 0xFF, 0xFF, 0xFF, 0x40 }; + +Process *lbl_1_bss_2D0; +// M428DllPlayerWork +omObjData *lbl_1_bss_2C8[2]; +omObjData *lbl_1_bss_2B8[4]; +// M428DllPlayerWork3 +omObjData *lbl_1_bss_2B4; +// M428DllPlayerWork4 +omObjData *lbl_1_bss_2B0; +M428DllPlayerWork *lbl_1_bss_2AC; +M428DllPlayerWork2 *lbl_1_bss_2A8; +s32 lbl_1_bss_2A4; +s32 lbl_1_bss_29C[2]; +Mtx lbl_1_bss_23C[2]; +M428DllBss13CStruct lbl_1_bss_1BC[2]; +M428DllBss13CStruct lbl_1_bss_13C[2]; +s32 lbl_1_bss_138; +s32 lbl_1_bss_134; +s32 lbl_1_bss_130; + +omObjData *fn_1_9F5C(Process *process) +{ + s32 var_r31; + + lbl_1_bss_2D0 = process; + lbl_1_bss_2A4 = 0; + lbl_1_bss_2AC = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M428DllPlayerWork), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2AC, 0, 2 * sizeof(M428DllPlayerWork)); + lbl_1_bss_2A8 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(M428DllPlayerWork2), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2A8, 0, 4 * sizeof(M428DllPlayerWork2)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_2C8[var_r31] = omAddObjEx(process, 0x40, 1, 0, -1, fn_1_A108); + lbl_1_bss_2C8[var_r31]->work[0] = var_r31; + } + fn_1_10A88(); + fn_1_11798(0); + fn_1_11930(); + lbl_1_bss_29C[0] = lbl_1_bss_29C[1] = 0; + return lbl_1_bss_2C8[var_r31]; +} + +void fn_1_A0B0(void) +{ + s32 var_r31; + + fn_1_115F8(); + fn_1_11C20(); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_B3D4(lbl_1_bss_2C8[var_r31]); + } +} + +void fn_1_A108(omObjData *object) +{ + M428DllPlayerWork *work; + s32 var_r30; + s32 var_r28; + s32 var_r27; + + var_r28 = object->work[0]; + work = &lbl_1_bss_2AC[var_r28]; + object->data = work; + work->unk_0C = var_r28; + work->unk_0E = 0; + work->unk_10 = 0; + work->unk_12 = (u8)frand() % 4; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_1C = 0.0f; + work->unk_20 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_2C = 0.0f; + work->unk_30 = 0.0f; + work->unk_34 = 0.0f; + work->unk_B8 = 0; + work->unk_BC = -1; + work->unk_C0 = work->unk_C4 = 0; + work->unk_C8 = 0.0f; + work->unk_38 = -1; + work->unk_4C[0] = work->unk_4C[1] = 0.0f; + work->unk_48 = 400.0f; + work->unk_54[0] = work->unk_5C = 200.0f; + work->unk_54[1] = work->unk_60 = 200.0f; + work->unk_64[0].x = 0.5f * (lbl_1_data_150[0].x + lbl_1_data_150[1].x); + work->unk_64[0].y = 0.5f * (lbl_1_data_150[0].y + lbl_1_data_150[1].y); + work->unk_64[0].z = 0.5f * (lbl_1_data_150[0].z + lbl_1_data_150[1].z); + work->unk_64[1] = work->unk_64[0]; + work->unk_7C = work->unk_64[0]; + work->unk_88 = work->unk_64[1]; + work->unk_94.x = work->unk_94.y = work->unk_94.z = 0.0f; + work->unk_A0.x = work->unk_A0.y = work->unk_A0.z = 0.0f; + work->unk_AC.x = work->unk_AC.y = work->unk_AC.z = 0.0f; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r27 = lbl_1_bss_50[var_r30 + (var_r28 * 2)]; + work->unk_08[var_r30] = var_r27; + work->unk_00[var_r30] = lbl_1_bss_2B8[var_r27] = omAddObjEx(lbl_1_bss_2D0, 0x41, 2, 0xC, -1, fn_1_B43C); + work->unk_00[var_r30]->data = NULL; + work->unk_00[var_r30]->work[0] = var_r27; + work->unk_00[var_r30]->work[1] = work->unk_0C; + work->unk_00[var_r30]->work[2] = var_r30; + } + object->model[0] = fn_1_FB8C(&lbl_1_data_150[0], &lbl_1_data_150[1], 400.0f, 0x30, work->unk_0C); + if (work->unk_0C == 0) { + Hu3DModelCameraSet(object->model[0], 1); + } + else { + Hu3DModelCameraSet(object->model[0], 2); + } + object->func = fn_1_A4C8; +} + +void fn_1_A4C8(omObjData *object) +{ + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + M428DllPlayerWork *var_r31; + M428DllPlayerWork2 *var_r30; + M428DllPlayerWork2 *var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + + var_r22 = 0; + var_r24 = 0; + var_r23 = 0; + var_r31 = object->data; + var_r30 = var_r31->unk_00[0]->data; + var_r29 = var_r31->unk_00[1]->data; + if (!var_r30 || !var_r29) { + return; + } + if ((fn_1_26E0() < 7) || (lbl_1_bss_2A4 == 0)) { + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + var_r21 = fn_1_10788(object->model[0], &sp50, &sp44, &sp38); + if (var_r21 != -1) { + if (var_r31->unk_38 != var_r21) { + var_r31->unk_38 = var_r21; + var_r31->unk_3C = sp38; + var_r23 = 1; + } + else { + var_r23 = 0; + } + var_r31->unk_64[1] = var_r31->unk_3C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_f31 = var_r31->unk_4C[0] + var_r31->unk_4C[1]; + if (var_f31 >= 400.0f) { + if (var_r23 != 0) { + var_r31->unk_48 = var_f31; + } + else { + var_r31->unk_48 + (400.0f - var_r31->unk_48) * 0.01f; // bug + (void)var_r22; + } + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = var_r31->unk_48 * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = var_r31->unk_48 * (var_r31->unk_4C[1] * var_f31); + } + else { + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = 400.0f * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = 400.0f * (var_r31->unk_4C[1] * var_f31); + var_r31->unk_48 = 400.0f; + } + var_f31 = var_r31->unk_54[0] + var_r31->unk_54[1]; + var_r26 = 48.0f * (var_r31->unk_54[0] / var_f31); + if (var_r26 < 1) { + var_r26 = 1; + } + else if (var_r26 > 0x2E) { + var_r26 = 0x2E; + } + fn_1_10590(object->model[0], 1, var_r26, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / var_r31->unk_48; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + } + else { + var_r31->unk_38 = -1; + fn_1_10590(object->model[0], 0, 0x18, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / 400.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + var_r31->unk_48 = 400.0f; + var_r31->unk_64[1] = sp2C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_r31->unk_54[0] = 200.0f; + var_r31->unk_54[1] = 200.0f; + } + var_r31->unk_54[0] = var_r31->unk_5C + (0.01f * (var_r31->unk_54[0] - var_r31->unk_5C)); + var_r31->unk_54[1] = var_r31->unk_60 + (0.01f * (var_r31->unk_54[1] - var_r31->unk_60)); + fn_1_129B4(0.1f, &var_r31->unk_64[2], &var_r31->unk_64[0], &var_r31->unk_64[0]); + fn_1_129B4(0.1f, &var_r31->unk_88, &var_r31->unk_64[1], &var_r31->unk_64[1]); + var_r31->unk_5C = var_r31->unk_54[0]; + var_r31->unk_60 = var_r31->unk_54[1]; + var_r31->unk_7C = var_r31->unk_64[0]; + var_r31->unk_88 = var_r31->unk_64[1]; + if (var_r31->unk_38 != -1) { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + else if (var_r30->unk_20 == 4) { + var_r31->unk_94 = var_r29->unk_90; + var_r31->unk_A0 = var_r30->unk_90; + } + else if (var_r29->unk_20 == 4) { + var_r31->unk_94 = var_r30->unk_90; + var_r31->unk_A0 = var_r29->unk_90; + } + else { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + if (lbl_1_bss_29C[var_r31->unk_0C] == 5) { + var_r24 = 1; + } + if ((fn_1_26E0() != 4) || (var_r31->unk_18 != 0)) { + var_r24 = 0; + } + if (var_r24 != 0) { + var_r27 = -1; + if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 3)) { + var_r27 = 0; + } + else if ((var_r30->unk_20 == 3) && (var_r29->unk_20 == 2)) { + var_r27 = 1; + } + else if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 2)) { + if (sp50.y > sp44.y) { + var_r27 = 0; + } + else { + var_r27 = 1; + } + } + if (var_r27 == 0) { + var_r30->unk_20 = 4; + var_r30->unk_22 = 0; + var_r30->unk_34 = 0; + var_r30->unk_38 = 0; + var_r30->unk_3C.x = 0.0f; + var_r30->unk_3C.y = var_r30->unk_3C.z = 0.0f; + var_r31->unk_2C = sp50.y; + var_r31->unk_AC = sp50; + var_r31->unk_34 = 0.0f; + } + else if (var_r27 == 1) { + var_r29->unk_20 = 4; + var_r29->unk_22 = 0; + var_r29->unk_34 = 0; + var_r29->unk_38 = 0; + var_r29->unk_3C.x = 0.0f; + var_r29->unk_3C.y = var_r29->unk_3C.z = 0.0f; + var_r31->unk_2C = sp44.y; + var_r31->unk_AC = sp44; + var_r31->unk_34 = 0.0f; + } + } + if ((var_r30->unk_20 == 4) || (var_r29->unk_20 == 4)) { + var_r31->unk_24 = 1; + var_r31->unk_28 = 1; + } + else { + var_r31->unk_24 = 0; + } + if (lbl_1_bss_29C[var_r31->unk_0C] != 5) { + var_r31->unk_28 = 0; + } + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + fn_1_10530(object->model[0], &sp50, &sp44); + if (var_r31->unk_00[0]->trans.y > var_r31->unk_00[1]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[0]->trans.y; + var_r31->unk_10 = 0; + } + else if (var_r31->unk_00[1]->trans.y > var_r31->unk_00[0]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[1]->trans.y; + var_r31->unk_10 = 1; + } + else { + var_r25 = frand() & 1; + var_r31->unk_1C = var_r31->unk_00[var_r25]->trans.y; + var_r31->unk_10 = var_r25; + } + fn_1_118A8(var_r31->unk_0C, var_r31->unk_1C / 3800.0f); + if (fn_1_26E0() == 4) { + sp50.x = var_r31->unk_00[0]->trans.x; + sp50.y = var_r31->unk_00[0]->trans.y; + sp50.z = var_r31->unk_00[0]->trans.z; + sp44.x = var_r31->unk_00[1]->trans.x; + sp44.y = var_r31->unk_00[1]->trans.y; + sp44.z = var_r31->unk_00[1]->trans.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + VECSubtract(&sp50, &sp44, &sp20); + sp20.z = 0.0f; + var_f29 = VECMag(&sp20); + if (var_f29 < 100.0f) { + var_f27 = 0.0f; + } + else if (var_f29 >= 300.0f) { + var_f27 = 1.0f; + } + else { + var_f27 = (var_f29 - 100.0f) / 200.0f; + } + var_f29 = 1500.0f + (500.0f * var_f27); + var_f28 = sp2C.x; + if (var_f28 > 400.0f) { + var_f28 = 400.0f; + } + else if (var_f28 < -400.0f) { + var_f28 = -400.0f; + } + var_f26 = sp2C.y; + if (var_f26 < 400.0f) { + var_f26 = 400.0f; + } + var_f25 = var_r31->unk_1C; + if (var_f25 < 20.0f) { + var_f30 = 0.0f; + } + else { + var_f30 = (var_f25 - 20.0f) / 3780.0f; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + } + } + sp14.x = var_f28; + sp14.y = var_f26; + sp14.z = 0.0f; + sp8.x = 70.0f * var_f30; + sp8.y = 0.0f; + sp8.z = 0.0f; + if (var_r31->unk_C4 > 0) { + var_f30 = var_r31->unk_C8 * ((float)var_r31->unk_C0 / var_r31->unk_C4); + var_r25 = (var_r31->unk_C0 * 0x2D) % 360; + var_f30 = var_f30 * sind(var_r25); + var_f30 = var_f30; + sp14.x += var_f30; + sp14.y += var_f30; + if (--var_r31->unk_C0 <= 0) { + var_r31->unk_C0 = var_r31->unk_C4 = 0; + } + var_r22 = 1; + } + if (var_r22 == 0) { + fn_1_9A30(var_r31->unk_0C, 12.0f, &sp14, &sp8, var_f29); + } + else { + fn_1_9A30(var_r31->unk_0C, 3.0f, &sp14, &sp8, var_f29); + } + } + if (var_r31->unk_BC != -1) { + if (var_r31->unk_BC == 0) { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 6, 6); + omVibrate(var_r31->unk_08[1], 0xC, 6, 6); + return; + } + if (var_r31->unk_B8 >= 45.0f) { + var_r31->unk_B8 = 0; + } + } + else { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 0xC, 0); + omVibrate(var_r31->unk_08[1], 0xC, 0xC, 0); + return; + } + if (var_r31->unk_B8 >= 6.0f) { + var_r31->unk_B8 = 0; + } + } + } + } + else { + switch (fn_1_26E0()) { + case 7: + if (lbl_1_bss_2A4 != 0) { + if (var_r31->unk_14 != 0) { + var_r30->unk_20 = 7; + var_r30->unk_22 = 0; + var_r29->unk_20 = 7; + var_r29->unk_22 = 0; + } + else { + var_r30->unk_20 = 9; + var_r30->unk_22 = 0; + var_r29->unk_20 = 9; + var_r29->unk_22 = 0; + } + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + break; + case 8: + break; + case 9: + if ((var_r31->unk_14 != 0) && (lbl_1_bss_2A4 != 0)) { + var_r30->unk_20 = 8; + var_r30->unk_22 = 0; + var_r29->unk_20 = 8; + var_r29->unk_22 = 0; + } + break; + } + } +} + +void fn_1_B3D4(omObjData *object) +{ + s32 var_r31; + M428DllPlayerWork *work = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_E5F4(work->unk_00[var_r31]); + work->unk_00[var_r31] = NULL; + } +} + +void fn_1_B43C(omObjData *object) +{ + M428DllPlayerWork2 *var_r31; + s32 var_r29; + s32 var_r28; + u32 var_r27; + M428DllPlayerWork *var_r26; + u32 var_r25; + u32 var_r24; + + var_r27 = object->work[0]; + var_r25 = object->work[1]; + var_r24 = object->work[2]; + var_r26 = &lbl_1_bss_2AC[var_r25]; + var_r31 = object->data = &lbl_1_bss_2A8[var_r27]; + var_r31->unk_00 = var_r27; + var_r31->unk_02 = var_r25; + var_r31->unk_04 = var_r24; + var_r31->unk_06 = GWPlayerCfg[var_r27].character; + var_r31->unk_08 = GWPlayerCfg[var_r27].pad_idx; + var_r31->unk_0A = GWPlayerCfg[var_r27].iscom; + var_r31->unk_0C = GWPlayerCfg[var_r27].diff; + if ((var_r31->unk_0A == 0) && ((lbl_1_data_640[var_r31->unk_08] & HuPadRumbleGet()) == 0)) { + lbl_1_bss_18 = 0; + } + if (var_r31->unk_0A != 0) { + var_r26->unk_0E = var_r26->unk_0E | (1 << var_r31->unk_04); + } + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = -1; + var_r31->unk_1E = 4; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r31->unk_24 = 0; + var_r31->unk_26 = 0; + var_r31->unk_28 = 200.0f; + var_r31->unk_2C = var_r31->unk_28; + var_r31->unk_30 = 0; + var_r31->unk_34 = 0; + var_r31->unk_38 = 0; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = 0.0f; + var_r31->unk_54.x = 0.0f; + var_r31->unk_54.z = 0.0f; + var_r31->unk_54.y = 75.0f; + mtxRot(var_r31->unk_60, 0.0f, 0.0f, 0.0f); + mtxTransCat(var_r31->unk_60, lbl_1_data_5E0[var_r31->unk_06].x, lbl_1_data_5E0[var_r31->unk_06].y, lbl_1_data_5E0[var_r31->unk_06].z); + var_r31->unk_90.x = lbl_1_data_150[var_r31->unk_04].x; + var_r31->unk_90.y = 80.0f + lbl_1_data_150[var_r31->unk_04].y; + var_r31->unk_90.z = lbl_1_data_150[var_r31->unk_04].z; + strcpy(var_r31->unk_9C, MakeObjectName(CharModelHookNameGet(var_r31->unk_06, 4, 4))); + var_r31->unk_19C = -1; + var_r31->unk_1A0 = 30.0f * ((frand() & 0x7FFF) % 5); + var_r31->unk_1A4 = 0; + var_r31->unk_1A8 = 0; + var_r31->unk_1AC = 0.0f; + var_r31->unk_1B0 = 0; + var_r31->unk_1B4 = 0; + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r29 = CharModelCreate(var_r31->unk_06, 4); + object->model[0] = var_r29; + if (var_r31->unk_02 == 0) { + Hu3DModelCameraSet(var_r29, 1); + fn_1_4170(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + fn_1_4170(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + CharModelStepTypeSet(var_r31->unk_06, 0); + if (var_r31->unk_02 == 0) { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x07)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 1); + } + else { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x08)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + if (lbl_1_data_500[var_r28].unk_00 != 0xFFFFFFFF) { + object->motion[var_r28] = CharModelMotionCreate(var_r31->unk_06, lbl_1_data_500[var_r28].unk_00); + } + else { + object->motion[var_r28] = Hu3DJointMotionFile(object->model[0], lbl_1_data_560[lbl_1_data_500[var_r28].unk_04][var_r31->unk_06]); + } + } + var_r31->unk_1C = 3; + CharModelMotionSet(var_r31->unk_06, object->motion[var_r31->unk_1C]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + CharModelMotionDataClose(var_r31->unk_06); + object->trans.x = var_r31->unk_48.x = lbl_1_data_150[var_r31->unk_04].x; + object->trans.y = var_r31->unk_48.y = lbl_1_data_150[var_r31->unk_04].y; + object->trans.z = var_r31->unk_48.z = lbl_1_data_150[var_r31->unk_04].z; + object->rot.x = object->rot.z = 0.0f; + object->rot.y = 180.0f; + object->func = fn_1_BBD0; +} + +void fn_1_BBD0(omObjData *object) +{ + Mtx sp104; + Vec spF8; + Vec spEC; + Vec spE0; + float var_f31; + float var_f30; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + M428DllPlayerWork2 *var_r27; + s32 var_r26; + ModelData *var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r22 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r22]; + var_r27 = var_r28->data; + if (fn_1_26E0() == 4) { + if (var_r31->unk_0A != 0) { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + fn_1_E600(object); + } + else { + var_r31->unk_0E = HuPadBtnDown[var_r31->unk_08]; + var_r31->unk_10 = HuPadBtn[var_r31->unk_08]; + var_r31->unk_14 = HuPadStkX[var_r31->unk_08]; + var_r31->unk_18 = HuPadStkY[var_r31->unk_08]; + } + } + else { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + } + switch (var_r31->unk_20) { + case 0: + var_r31->unk_20 = 1; + var_r31->unk_22 = 0; + break; + case 1: + if (object->trans.y < 0.0f) { + object->trans.y += 1.6f; + var_r26 = 3; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + else { + object->trans.y = 0.0f; + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (fn_1_26E0() >= 4) { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 2: + if (((var_r31->unk_0E & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0)) { + if (var_r31->unk_1C == 4) { + var_r31->unk_1E = 5; + } + else { + var_r31->unk_1E = 4; + } + var_r31->unk_26 = 0; + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + else { + if (fabs(var_r31->unk_14) >= 8.0) { + var_f27 = 0.025f * var_r31->unk_14; + } + else { + var_f27 = 0.0f; + } + if (fabs(var_r31->unk_18) >= 8.0) { + var_f24 = 0.025f * var_r31->unk_18; + } + else { + var_f24 = 0.0f; + } + spE0.x = var_f27; + spE0.y = var_f24; + spE0.z = 0.0f; + if (VECMag(&spE0) > 0.0f) { + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + } + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (var_f30 <= 0.0f) { + spE0.y = -1.0f; + } + VECNormalize(&spE0, &spE0); + VECScale(&spE0, &spE0, 200.0f); + object->trans.x = spE0.x + (var_r28->trans.x + var_r27->unk_54.x); + object->trans.y = spE0.y + (var_r28->trans.y + var_r27->unk_54.x); + object->trans.z = spE0.z + (var_r28->trans.z + var_r27->unk_54.x); + } + } + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_f31 > var_r29->unk_54[var_r31->unk_04]) { + var_r31->unk_30 = 1; + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_54[var_r31->unk_04]); + VECAdd(&var_r29->unk_64[var_r31->unk_04], &spEC, &spF8); + object->trans.x += spF8.x - var_r31->unk_90.x; + object->trans.y += spF8.y - var_r31->unk_90.y; + object->trans.z += spF8.z - var_r31->unk_90.z; + var_r20 = 1; + } + if ((var_r20 != 0) || (object->trans.x != var_r31->unk_48.x) || (object->trans.y != var_r31->unk_48.y)) { + spF8.x = var_r31->unk_48.x + var_r31->unk_54.x; + spF8.y = var_r31->unk_48.y + var_r31->unk_54.y; + spF8.z = var_r31->unk_48.z + var_r31->unk_54.z; + spE0.x = (object->trans.x + var_r31->unk_54.x) - spF8.x; + spE0.y = (object->trans.y + var_r31->unk_54.y) - spF8.y; + spE0.z = (object->trans.z + var_r31->unk_54.z) - spF8.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) == 0) { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + var_r20 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + var_f31 = sqrtf((var_r31->unk_14 * var_r31->unk_14) + (var_r31->unk_18 * var_r31->unk_18)); + var_f31 *= 0.02f; + CharModelMotionSpeedSet(var_r31->unk_06, var_f31); + if ((var_f27 == 0.0f) && (var_f24 == 0.0f)) { + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + if ((var_r31->unk_1C != 8) && (var_r31->unk_1C != 9) && (var_r31->unk_1C != 6)) { + var_r26 = var_r31->unk_1C; + } + else { + var_r26 = 4; + } + var_f22 = object->rot.z; + } + else { + if (fabs(var_f27) > (2.0 * fabs(var_f24))) { + if (var_f27 > 0.0f) { + var_r26 = 4; + } + else { + var_r26 = 5; + } + var_f22 = 0.0f; + } + else { + var_r26 = 3; + if (var_f24 > 0.0f) { + var_f22 = -30.0f * (var_f27 / 1.6f); + } + else { + var_f22 = -(-30.0f * (var_f27 / 1.6f)); + CharModelMotionSpeedSet(var_r31->unk_06, -var_f31); + } + } + } + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0x40000001); + } + } + else { + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + } + object->rot.x = 0.0f; + object->rot.y = 180.0f; + object->rot.z = fn_1_1236C(var_f22, object->rot.z, 1.25f); + } + break; + case 3: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (fn_1_26E0() != 4) { + var_r31->unk_10 = 0; + var_r31->unk_26 = 0; + } + if (((var_r31->unk_10 & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0) || (var_r31->unk_26 != 0)) { + if (var_r31->unk_26 > 0) { + var_r31->unk_26--; + } + if (var_r29->unk_24 != 0) { + if (fabs(var_r29->unk_34) > 0.0) { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r29->unk_A0.z = object->trans.z; + VECSubtract(&var_r29->unk_A0, &spF8, &spEC); + var_f30 = VECMag(&spEC); + if (var_f30 < var_r29->unk_34) { + var_r29->unk_34 = var_f30; + } + if (var_f30 > 0.0f) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_34); + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if (fn_1_F288(&spF8, &spEC, 75.0f) != 0) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + spF8.x = object->trans.x + (0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + spF8.y = 100.0f + object->trans.y + 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + spF8.z = object->trans.z - 47.5f; + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + spE0.x = 2.5 * sind(var_f31); + spE0.y = 2.5 * cosd(var_f31); + spE0.z = 0.0f; + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 50.0f, 5.0f, 100.0f, 0.5f, lbl_1_data_650); + } + object->trans.x += spEC.x; + object->trans.y += spEC.y; + } + } + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + if (lbl_1_bss_29C[var_r29->unk_0C] == 5) { + var_r26 = 6; + if ((object->rot.z > 180.0f) || (object->rot.z < 45.0f)) { + object->rot.z += 5.0f; + } + if (object->rot.z >= 360.0f) { + object->rot.z -= 360.0f; + } + } + else { + var_r26 = var_r31->unk_1E; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + } + if ((var_r26 != var_r31->unk_1C) && (var_r26 != -1) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r31->unk_1C != 6) { + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0); + } + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + if ((var_r31->unk_1C != 6) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + CharModelMotionTimeSet(var_r31->unk_06, 0.0f); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (var_r31->unk_1C == 6) { + CharModelMotionSpeedSet(var_r31->unk_06, 2.0f); + } + } + else { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 4: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r31->unk_3C.y -= 0.65333337f; + if (var_r29->unk_38 == -1) { + var_r29->unk_30 = 400.0f; + var_r29->unk_94.x = var_r28->trans.x + var_r27->unk_54.x; + var_r29->unk_94.y = var_r28->trans.y + var_r27->unk_54.y; + var_r29->unk_94.z = var_r28->trans.z + var_r27->unk_54.z; + } + else { + var_r29->unk_30 = var_r29->unk_48 - var_r29->unk_54[var_r22]; + } + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if ((fn_1_F288(&spF8, &var_r31->unk_3C, 75.0f) != 0) && ((object->trans.y + var_r31->unk_3C.y) >= -200.0f)) { + spF8.x = object->trans.x + var_r31->unk_3C.x; + spF8.y = object->trans.y + var_r31->unk_3C.y; + spF8.z = object->trans.z + var_r31->unk_3C.z; + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + var_f31 = VECMag(&spEC); + if (var_f31 > var_r29->unk_30) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_30); + VECAdd(&var_r29->unk_94, &spEC, &spF8); + if (fabs(spEC.x) < 180.0) { + var_r31->unk_34 = 1; + } + } + object->trans.x = spF8.x; + object->trans.y = spF8.y; + object->trans.z = spF8.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + if ((object->trans.y + var_r31->unk_3C.y) >= -200.0f) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + var_f30 = -90.0f + (36.0f * var_r24); + spF8.x = object->trans.x + (12.5 * sind(var_f30)); + spF8.z = object->trans.z + 12.5 * cosd(var_f30); + spF8.y = (object->trans.y - 25.0f) + (0.25f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + var_f23 = 0.3f + (0.7f * (0.007874016f * (frand() & 0x7F))); + spE0.x = var_f23 * ((2.5 * sind(var_f30)) + (2.5 * sind(var_f31))); + spE0.y = var_f23 * (2.5 * cosd(var_f31)); + spE0.z = var_f23 * (2.5 * cosd(var_f30)); + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 100.0f, 5.0f, 100.0f, 0.5f * var_f23, lbl_1_data_654); + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.x; + var_r31->unk_38 = 1; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r29->unk_34 = 0.0f; + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + break; + } + if (var_r31->unk_34 == 0) { + var_r29->unk_34 = 0.0f; + var_r31->unk_22++; + var_r31->unk_24 = 0; + var_f31 = 2.0f * var_r31->unk_22; + if (var_f31 >= 90.0f) { + var_f31 = 90.0f; + } + if ((object->trans.z = object->trans.z + (10.0 * cosd(var_f31))) >= (150.0f + var_r29->unk_AC.z)) { + object->trans.z = 150.0f + var_r29->unk_AC.z; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if (object->trans.z < spF8.z) { + object->trans.z = spF8.z; + } + var_r26 = 8; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + else { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + if (fabs(spEC.x) < 100.0) { + if ((var_r31->unk_3C.y += 0.65333337f) > 0.0f) { + var_r31->unk_3C.y = 0.0f; + } + var_r31->unk_3C.x *= 0.96f; + var_r31->unk_3C.y *= 0.97f; + } + else { + var_r31->unk_22++; + } + var_r29->unk_34 = fabs(0.45f * sqrtf((var_r31->unk_3C.x * var_r31->unk_3C.x) + (var_r31->unk_3C.y * var_r31->unk_3C.y))); + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z -= 5.0f) < spF8.z) { + object->trans.z = 50.0f + spF8.z; + } + var_r26 = 9; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (++var_r31->unk_24 > var_r31->unk_22) { + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + } + } + + break; + case 5: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_r31->unk_38 != 0) { + var_r26 = 7; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + var_r21 = 0; + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (object->trans.x > var_r28->trans.x) { + var_f30 = 10.0f; + } + else { + var_f30 = -10.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + spE0.x = var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + object->trans.z += spE0.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + } + spF8.x = var_r28->trans.x + var_r27->unk_54.x; + spF8.y = var_r28->trans.y + var_r27->unk_54.y; + spF8.z = var_r28->trans.z + var_r27->unk_54.z; + spE0.x = -var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + var_r28->trans.x += spE0.x; + var_r28->trans.y += spE0.y; + var_r28->trans.z += spE0.z; + } + else { + var_r28->trans.x = spF8.x - var_r27->unk_54.x; + var_r28->trans.y = spF8.y - var_r27->unk_54.y; + var_r28->trans.z = spF8.z - var_r27->unk_54.z; + } + var_r21 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z - spF8.z) > 30.000002f) { + object->trans.z -= 30.000002f; + } + else { + object->trans.z = spF8.z; + if (var_r21 == 0) { + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + } + break; + case 7: + object->trans.x = lbl_1_data_180[var_r31->unk_04].x; + object->trans.y = lbl_1_data_180[var_r31->unk_04].y; + object->trans.z = lbl_1_data_180[var_r31->unk_04].z; + object->rot.x = object->rot.y = object->rot.z = 0.0f; + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = 0.0f; + var_r25->unk_F0[1][3] = 0.0f; + var_r25->unk_F0[2][3] = 0.0f; + var_r25 = &Hu3DData[object->model[1]]; + MTXIdentity(var_r25->unk_F0); + Hu3DModelPosSet( + object->model[1], lbl_1_data_450[var_r31->unk_04].x, lbl_1_data_450[var_r31->unk_04].y, lbl_1_data_450[var_r31->unk_04].z); + Hu3DModelRotSet( + object->model[1], lbl_1_data_480[var_r31->unk_04].x, lbl_1_data_480[var_r31->unk_04].y, lbl_1_data_480[var_r31->unk_04].z); + if (var_r31->unk_02 == 0) { + fn_1_4170(object->model[1], 1); + } + else { + fn_1_4170(object->model[1], 2); + } + var_r26 = 0; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + break; + case 8: + var_r26 = 0xA; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + break; + case 9: + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + break; + } + var_r31->unk_48.x = object->trans.x; + var_r31->unk_48.y = object->trans.y; + var_r31->unk_48.z = object->trans.z; + if (var_r31->unk_20 < 7) { + if (fn_1_13F54(object->model[0], var_r31->unk_9C, sp104, 0) != 0) { + var_r25 = &Hu3DData[object->model[1]]; + MTXConcat(sp104, var_r31->unk_60, sp104); + MTXCopy(sp104, var_r25->unk_F0); + var_r31->unk_90.x = sp104[0][3]; + var_r31->unk_90.y = sp104[1][3]; + var_r31->unk_90.z = sp104[2][3]; + } + else { + OSReport("NO OBJECT %d %s \n", var_r31->unk_06, CharModelHookNameGet(var_r31->unk_06, 4, 4)); + } + spF8.x = 0.0f; + spF8.y = 100.0f; + spF8.z = 0.0f; + spE0.x = spF8.y * sind((180.0f + object->rot.z)); + spE0.y = spF8.y * sind((90.0f + object->rot.z)); + spE0.z = 0.0f; + VECSubtract(&spE0, &spF8, &spEC); + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = spEC.x; + var_r25->unk_F0[1][3] = spEC.y; + var_r25->unk_F0[2][3] = spEC.z; + } +} + +void fn_1_E5F4(omObjData *object) +{ + object->func = NULL; +} + +void fn_1_E600(omObjData *object) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r24 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r24]; + if ((var_r29->unk_0E == 3) && (var_r29->unk_10 == var_r31->unk_04)) { + var_r26 = 1; + } + else { + var_r26 = 0; + } + if ((lbl_1_bss_29C[var_r31->unk_02] == 6) || (var_r31->unk_19C == -1)) { + if (var_r29->unk_0E != 3) { + var_r31->unk_19C = 2; + } + else { + var_r25 = (s32)(50.0f * (0.007874016f * (frand() & 0x7F))) + var_r31->unk_0C * 0xF + 5; + var_r31->unk_1A0 = (u8)frand() % 90; + if (var_r26 == 0) { + var_r31->unk_1A0 = (u8)frand() % 60; + } + if (var_r25 < 0x2D) { + var_r31->unk_19C = 0; + } + else if (var_r25 < 0x4B) { + var_r31->unk_19C = 1; + } + else { + var_r31->unk_19C = 2; + } + } + } + var_f31 = 1.0f; + switch (var_r31->unk_19C) { + case 0: + break; + case 1: + if (lbl_1_bss_29C[var_r31->unk_02] != 0) { + if (var_r31->unk_1A0 > 0) { + var_r31->unk_1A0--; + } + else { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + } + break; + case 2: + if ((lbl_1_bss_29C[var_r31->unk_02] == 3) || (lbl_1_bss_29C[var_r31->unk_02] == 5)) { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + break; + } + if (var_r26 != 0) { + for (var_r27 = 0; var_r27 < 0x10; var_r27++) { + if ((lbl_1_data_1B0[var_r29->unk_12][var_r27].y - 100.0f) > object->trans.y) { + break; + } + } + var_r31->unk_1B0 = var_r27; + sp18 = lbl_1_data_1B0[var_r29->unk_12][var_r31->unk_1B0]; + sp8 = var_r31->unk_1B0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECSubtract(&var_r31->unk_48, &sp24, &spC); + if ((VECMag(&spC) < 1.0f) && (lbl_1_bss_29C[var_r31->unk_02] != 0)) { + var_r31->unk_1B4++; + } + if (var_r31->unk_1B4 >= 180.0f) { + if (var_r31->unk_1B4 < 300.0f) { + if ((var_r31->unk_1B0 >= 2) && (var_r31->unk_1B0 <= 3)) { + if (fabs(object->trans.x) < 500.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = 64.0f; + } + else { + var_r31->unk_14 = -64.0f; + } + } + } + else { + if (fabs(object->trans.x) > 50.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = -64.0f; + } + else { + var_r31->unk_14 = 64.0f; + } + } + } + } + else if (var_r31->unk_1B0 > 0) { + var_r31->unk_1B0--; + var_r31->unk_1B4 = 0; + } + } + else { + var_r31->unk_1B4 = 0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp18, &var_r31->unk_1B8, &sp18); + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + VECNormalize(&spC, &spC); + var_r31->unk_14 = 64.0f * (spC.x * var_f31); + var_r31->unk_18 = 64.0f * (spC.y * var_f31); + if (++var_r31->unk_1A4 > 180.0f) { + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * (0.007874016f * (frand() & 0x7F))); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1A4++; + } + } + } + else { + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + sp18.x = var_r28->trans.x; + sp18.y = var_r28->trans.y; + sp18.z = var_r28->trans.z; + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + if (var_f30 != 0.0f) { + var_f29 = atan2d(spC.x, spC.y); + } + else { + spC.y = 1.0f; + var_f29 = 0.0; + } + if (var_f30 < 230.0f) { + spC.x *= -1.0f; + spC.y *= -1.0f; + var_f29 += 180.0f; + } + if ((var_f30 >= 250.0f) || (var_f30 <= 230.0f)) { + VECNormalize(&spC, &spC); + if (var_f30 >= 250.0f) { + var_f31 = (var_f30 - 250.0f) / 20.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + } + else { + var_f31 = 1.0f; + } + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp24, &var_r31->unk_54, &sp24); + var_f29 = var_f29 + var_r31->unk_1AC; + sp18.x = 64.0 * sind(var_f29); + sp18.y = 64.0 * cosd(var_f29); + sp18.z = 0.0f; + var_r31->unk_14 = sp18.x * var_f31; + var_r31->unk_18 = sp18.y * var_f31; + var_r31->unk_1A8 = 0; + } + } + var_r31->unk_1A4++; +} + +s32 fn_1_F080(Vec *arg0, Vec *arg1, float arg8) +{ + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + s32 var_r31; + + if (VECMag(arg1) <= 0.0f) { + return 0; + } + var_f30 = atan2d(arg1->x, arg1->y); + var_f30 = var_f30; + sp24 = *arg0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_f31 = -45.0f + (15.0f * var_r31); + var_f31 += var_f30; + spC.x = sind(var_f31); + spC.y = cosd(var_f31); + spC.z = 0.0f; + VECNormalize(&spC, &spC); + VECScale(&spC, &spC, arg8); + VECAdd(arg0, &spC, &sp24); + if (fn_1_9990(&sp24) != 0) { + if (var_r31 == 3) { + sp18 = sp24; + } + } + else { + break; + } + } + if (var_r31 < 6) { + return 0; + } + return 1; +} + +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg2) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 var_r30; + + sp24 = *arg0; + sp18 = *arg1; + var_r30 = fn_1_F538(&sp24, &sp18, &spC, arg2); + if (var_r30 != 0) { + *arg0 = spC; + return 0; + } + *arg0 = sp24; + return 1; +} + +s32 fn_1_F354(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_2B8[var_r31]->trans.y < 0.0f) { + break; + } + } + if (var_r31 < 4) { + return 0; + } + return 1; +} + +s32 fn_1_F3BC(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 3800.0f) { + return var_r31->unk_18 = 1; + } + return var_r31->unk_18 = 0; +} + +void fn_1_F414(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_14 = 1; + lbl_1_bss_2A4 = 1; +} + +void fn_1_F454(s32 arg0, s32 arg1) +{ + lbl_1_bss_29C[arg0] = arg1; +} + +void fn_1_F46C(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_18 != 0) { + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_B8 = 0; + var_r31->unk_BC = arg1; + } +} + +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_C4 = arg1; + var_r31->unk_C0 = arg1; + var_r31->unk_C8 = arg8; +} + +s32 fn_1_F4E8(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 500.0f) { + return 1; + } + return 0; +} + +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f30; + float var_f29; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp38 = var_r30->unk_00; + VECAdd(arg0, arg1, &sp2C); + if ((arg0->y >= (sp38.y + arg8)) && (sp2C.y <= (sp38.y + arg8))) { + sp8.x = sp2C.y - arg0->y; + sp8.y = arg0->x - sp2C.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f29 = -((sp8.z + (sp8.y * (sp38.y + arg8))) / sp8.x); + if ((var_f29 >= (sp38.x - (var_r30->unk_0C + arg8))) && (var_f29 <= (sp38.x + (var_r30->unk_0C + arg8)))) { + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + sp14 = sp20; + if ((var_f30 < (var_r30->unk_0C + arg8)) && (sp20.y < arg8)) { + sp38 = var_r30->unk_00; + sp2C = *arg0; + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + if (sp20.y <= arg8) { + VECNormalize(&sp14, &sp20); + VECScale(&sp20, &sp20, var_r30->unk_0C + arg8); + VECAdd(&sp38, &sp20, arg2); + return 1; + } + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + return 0; +} + +s32 fn_1_F88C(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp2C = var_r30->unk_00; + VECAdd(arg0, arg1, &sp20); + if ((arg0->y >= sp2C.y) && (sp20.y <= sp2C.y)) { + sp8.x = sp20.y - arg0->y; + sp8.y = arg0->x - sp20.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f30 = -((sp8.z + (sp8.y * sp2C.y)) / sp8.x); + if ((var_f30 >= (sp2C.x - var_r30->unk_0C)) && (var_f30 <= (sp2C.x + var_r30->unk_0C))) { + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if ((var_f31 < var_r30->unk_0C) && (sp14.y <= 0.0f)) { + sp2C = var_r30->unk_00; + sp20 = *arg0; + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if (sp14.y <= 0.0f) { + VECNormalize(&sp14, &sp14); + VECScale(&sp14, &sp14, var_r30->unk_0C); + VECAdd(&sp2C, &sp14, arg2); + return var_r27; + } + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return var_r27; + } + } + return -1; +} + +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3) +{ + float var_f31; + M428DllPlayerUnk120Struct *var_r31; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + ModelData *var_r28; + s32 var_r26; + + var_r26 = Hu3DHookFuncCreate(fn_1_102A8); + var_r28 = &Hu3DData[var_r26]; + Hu3DModelLayerSet(var_r26, 2); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct), var_r28->unk_48); + var_r28->unk_120 = var_r31; + memset(var_r31, 0, sizeof(M428DllPlayerUnk120Struct)); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, arg2 * sizeof(M428DllPlayerUnkStruct), var_r28->unk_48); + var_r31->unk_54 = var_r30; + memset(var_r30, 0, arg2 * sizeof(M428DllPlayerUnkStruct)); + var_r31->unk_00 = var_r26; + var_r31->unk_02 = arg2; + var_r31->unk_04 = arg8; + var_r31->unk_08 = arg8 / (arg2 - 1); + var_r31->unk_0C = 0; + var_r31->unk_10 = arg3; + var_r31->unk_14 = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0; + var_r31->unk_20 = *arg0; + var_r31->unk_2C = *arg1; + var_r31->unk_38.x = var_r31->unk_38.y = var_r31->unk_38.z = 0.0f; + var_r31->unk_44 = -1; + var_r31->unk_48 = var_r31->unk_4C = var_r31->unk_50 = 0.0f; + for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r30++) { + var_r30->unk_00 = var_r29; + if (var_r29 == 0) { + var_r30->unk_02 = 0; + } + else if (var_r29 == (arg2 - 1)) { + var_r30->unk_02 = 1; + } + else { + var_r30->unk_02 = -1; + } + var_r30->unk_04 = 0; + var_f31 = (float)var_r29 / (arg2 - 1); + var_r30->unk_08[0].x = var_r31->unk_20.x + (var_f31 * (var_r31->unk_2C.x - var_r31->unk_20.x)); + var_r30->unk_08[0].y = var_r31->unk_20.y + (var_f31 * (var_r31->unk_2C.y - var_r31->unk_20.y)); + var_r30->unk_08[0].z = var_r31->unk_20.z + (var_f31 * (var_r31->unk_2C.z - var_r31->unk_20.z)); + var_r30->unk_08[1] = var_r30->unk_08[0]; + var_r30->unk_08[2] = var_r30->unk_08[0]; + var_r30->unk_08[3].x = var_r30->unk_08[3].y = var_r30->unk_08[3].z = 0.0f; + } + return var_r26; +} + +void fn_1_FE98(M428DllPlayerUnk120Struct *arg0) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + if (arg0->unk_1C == 0) { + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_14 * (0.75f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_02 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + else { + arg0->unk_38.z = 0.5f * (arg0->unk_20.z + arg0->unk_2C.z); + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_38, &spC); + spC.y -= arg0->unk_14 * (0.375f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_44; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_44 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_38, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_38, &var_r30->unk_08[2]); + } + fn_1_129B4(0.1f, &arg0->unk_38, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_18 * (0.375f * arg0->unk_04); + for (var_r30 = &arg0->unk_54[arg0->unk_44], var_r29 = arg0->unk_44; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)(var_r29 - arg0->unk_44) / ((arg0->unk_02 - arg0->unk_44) - 1); + fn_1_12AA4(var_f31, &arg0->unk_38, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_38, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + for (var_r29 = 0, var_r30 = arg0->unk_54; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24); + var_f30 = var_r30->unk_08[0].z; + if ((sp8 = fn_1_F88C(&var_r30->unk_08[2], &sp24, &sp18)) != -1) { + var_r30->unk_08[0] = sp18; + var_r30->unk_08[0].z = var_f30; + var_r30->unk_04 = 1; + } + else { + var_r30->unk_04 = 0; + } + if (var_r30->unk_02 == -1) { + fn_1_129B4(0.9f, &var_r30->unk_08[1], &var_r30->unk_08[0], &var_r30->unk_08[0]); + } + var_r30->unk_08[1] = var_r30->unk_08[0]; + } +} + +s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF }; +s16 lbl_1_data_69C[2] = { -0x10, 0x10 }; +s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 }; +Vec lbl_1_data_6A4[4] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f }, +}; +Vec2f lbl_1_data_6D4[4] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; + +void fn_1_102A8(ModelData *model, Mtx matrix) +{ + Mtx sp8; + s16 var_r30; + + M428DllPlayerUnk120Struct *var_r31 = model->unk_120; + if (omPauseChk() == 0) { + fn_1_FE98(var_r31); + } + GXLoadPosMtxImm(matrix, 0); + MTXInvXpose(matrix, sp8); + GXLoadNrmMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + // bug, it should be var_r31->unk_54 + DCFlushRange(&var_r31->unk_54, var_r31->unk_02 * sizeof(M428DllPlayerUnkStruct)); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(M428DllPlayerUnkStruct)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], 4); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02); + for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) { + GXPosition1x16(var_r30); + GXColor1x16(0); + } +} + +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_20 = *arg1; + var_r31->unk_2C = *arg2; +} + +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_1C = arg1; + if (arg1 != 0) { + var_r31->unk_38 = *arg3; + var_r31->unk_44 = arg2; + } +} + +void fn_1_105E8(s32 arg0, float arg8, float arg9) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + if (arg8 > 1.0f) { + arg8 = 1.0f; + } + else if (arg8 < 0.0f) { + arg8 = 0.0f; + } + if (arg9 > 1.0f) { + arg9 = 1.0f; + } + else if (arg9 < 0.0f) { + arg9 = 0.0f; + } + var_r31->unk_14 = arg8; + var_r31->unk_18 = arg9; +} + +s32 fn_1_106A8(s32 arg0, s32 arg1, Vec *arg2, float *arg3) +{ + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + ModelData *var_r28 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r28->unk_120; + float var_f31 = 0.0f; + for (var_r29 = 0; var_r29 < var_r31->unk_02; var_f31 += var_r31->unk_08, var_r29++) { + if (arg1 == 0) { + var_r30 = &var_r31->unk_54[var_r29]; + } + else { + var_r30 = &var_r31->unk_54[(var_r31->unk_02 - 1) - var_r29]; + } + if (var_r30->unk_04 != 0) { + *arg2 = var_r30->unk_08[0]; + *arg3 = var_f31; + return 1; + } + } + return 0; +} + +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + ModelData *sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M428DllData4B0Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + sp8 = &Hu3DData[arg0]; + sp18.x = arg2->y - arg1->y; + sp18.y = arg1->x - arg2->x; + sp18.z = -((sp18.x * arg1->x) + (sp18.y * arg1->y)); + if (arg1->x < arg2->x) { + var_f27 = arg1->x; + var_f26 = arg2->x; + } + else { + var_f27 = arg2->x; + var_f26 = arg1->x; + } + if (arg1->y < arg2->y) { + var_f30 = arg1->y; + var_f29 = arg2->y; + } + else { + var_f30 = arg2->y; + var_f29 = arg1->y; + } + for (var_r30 = 0, var_r31 = lbl_1_data_4B0; var_r30 < 5; var_r30++, var_r31++) { + sp30 = var_r31->unk_00; + sp30.x -= var_r31->unk_0C; + sp24 = var_r31->unk_00; + sp24.x += var_r31->unk_0C; + spC.x = sp24.y - sp30.y; + spC.y = sp30.x - sp24.x; + spC.z = -((spC.x * sp30.x) + (spC.y * sp30.y)); + if ((var_r31->unk_00.y >= var_f30) && (var_r31->unk_00.y <= var_f29) && (sp18.x != 0.0f)) { + var_f31 = -((sp18.z + (sp18.y * var_r31->unk_00.y)) / sp18.x); + var_f28 = var_r31->unk_00.y; + if ((var_f31 >= sp30.x) && (var_f31 <= sp24.x)) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((var_f31 >= var_f27) && (var_f31 <= var_f26) && (var_f28 >= var_f30) && (var_f28 <= var_f29)) { + var_r28 = 1; + } + else { + var_r28 = 0; + } + if ((var_r29 != 0) && (var_r28 != 0)) { + if (var_f31 < var_r31->unk_00.x) { + *arg3 = sp30; + } + else { + *arg3 = sp24; + } + return var_r30; + } + } + } + return -1; +} + +void fn_1_10A88(void) +{ + M428DllPlayerWork3 *var_r31; + omObjData *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + ModelData *var_r27; + s32 var_r26; + s32 var_r25; + + var_r30 = lbl_1_bss_2B4 = omAddObjEx(lbl_1_bss_2D0, 0x42, 0xA, 0, -1, fn_1_11014); + var_r31 = var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork3), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork3)); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0E), 0x80, 0); + var_r31->unk_00 = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0C), 0x50, 0); + var_r31->unk_04[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0D), 0x50, 0); + var_r31->unk_04[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r31->unk_0C[0][0] = var_r31->unk_0C[0][1] = 0.0f; + var_r31->unk_0C[1][0] = var_r31->unk_0C[1][1] = 0.0f; + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 144.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 432.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r31->unk_24[0][0] = var_r31->unk_24[0][1] = 0.0f; + var_r31->unk_24[1][0] = var_r31->unk_24[1][1] = 0.0f; + var_r31->unk_34 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0A), MEMORY_DEFAULT_NUM)); + var_r31->unk_38 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0B), MEMORY_DEFAULT_NUM)); + var_r30->model[0] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[0], 1); + Hu3DModelLayerSet(var_r30->model[0], 5); + fn_1_13D9C(var_r30->model[0], -1, 0); + var_r27 = &Hu3DData[var_r30->model[0]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[1] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[1], 1); + Hu3DModelLayerSet(var_r30->model[1], 5); + fn_1_13D9C(var_r30->model[1], -1, 0); + var_r27 = &Hu3DData[var_r30->model[1]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[2] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[2], 2); + Hu3DModelLayerSet(var_r30->model[2], 5); + fn_1_13D9C(var_r30->model[2], -1, 0); + var_r27 = &Hu3DData[var_r30->model[2]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[3] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[3], 2); + Hu3DModelLayerSet(var_r30->model[3], 5); + fn_1_13D9C(var_r30->model[3], -1, 0); + var_r27 = &Hu3DData[var_r30->model[3]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + for (var_r25 = 0; var_r25 < 2; var_r25++) { + var_r31->unk_3C[var_r26][var_r25] = var_r31->unk_4C[var_r26][var_r25] = -1; + } + } +} + +void fn_1_11014(omObjData *object) +{ + Vec sp20; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r29; + omObjData *var_r27; + M428DllPlayerWork *var_r26; + + M428DllPlayerWork3 *var_r30 = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_0C[var_r31][0] = var_r30->unk_0C[var_r31][0] + (0.05f * (var_r30->unk_0C[var_r31][1] - var_r30->unk_0C[var_r31][0])); + var_f30 = lbl_1_data_6A0[0] + (var_r30->unk_0C[var_r31][0] * (lbl_1_data_6A0[1] - lbl_1_data_6A0[0])); + espPosSet(var_r30->unk_04[var_r31], 288.0f + lbl_1_data_69C[var_r31], var_f30); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_24[var_r31][0] = var_r30->unk_24[var_r31][0] + (0.05f * (var_r30->unk_24[var_r31][1] - var_r30->unk_24[var_r31][0])); + espTPLvlSet(var_r30->unk_1C[var_r31], var_r30->unk_24[var_r31][0]); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r26 = lbl_1_bss_2C8[var_r31]->data; + var_r27 = var_r26->unk_00[var_r29]; + if (var_r30->unk_3C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_3C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[var_r31 * 2], var_r29, sp20); + fn_1_13EC8(object->model[var_r31 * 2], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_3C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[var_r31 * 2], var_r29, 0); + } + if (var_r30->unk_4C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_4C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[(var_r31 * 2) + 1], var_r29, sp20); + fn_1_13EC8(object->model[(var_r31 * 2) + 1], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_4C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[(var_r31 * 2) + 1], var_r29, 0); + } + } + } +} + +void fn_1_115F8(void) +{ + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + espKill(var_r31->unk_00); + espKill(var_r31->unk_04[0]); + espKill(var_r31->unk_04[1]); + espKill(var_r31->unk_1C[0]); + espKill(var_r31->unk_1C[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[0]); + Hu3DModelKill(lbl_1_bss_2B4->model[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[2]); + Hu3DModelKill(lbl_1_bss_2B4->model[3]); + HuSprAnimKill(var_r31->unk_34); + HuSprAnimKill(var_r31->unk_38); +} + +void fn_1_116C4(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_2B4) { + s32 var_r31; + M428DllPlayerWork3 *var_r30 = lbl_1_bss_2B4->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (arg1 == 0) { + var_r30->unk_3C[arg0][var_r31] = 0x1E; + } + else { + var_r30->unk_4C[arg0][var_r31] = 0x1E; + } + } + } +} + +void fn_1_11754(s32 arg0, float arg8) +{ + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + var_r31->unk_24[arg0][1] = arg8; + } +} + +void fn_1_11798(s32 sp8) +{ + s32 var_r30; + s32 var_r29; + + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *work = lbl_1_bss_2B4->data; + if (sp8 == 0) { + espDispOff(work->unk_00); + espDispOff(work->unk_04[0]); + espDispOff(work->unk_04[1]); + espDispOff(work->unk_1C[0]); + espDispOff(work->unk_1C[1]); + } + else { + espDispOn(work->unk_00); + espDispOn(work->unk_04[0]); + espDispOn(work->unk_04[1]); + espDispOn(work->unk_1C[0]); + espDispOn(work->unk_1C[1]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_3C[var_r30][var_r29] = work->unk_4C[var_r30][var_r29] = -1; + } + } + } +} + +void fn_1_118A8(s32 arg0, float var_f1) +{ + M428DllPlayerWork3 *var_r31; + if (lbl_1_bss_2B4) { + var_r31 = lbl_1_bss_2B4->data; + if (var_f1 < 0.0f) { + var_f1 = 0.0f; + } + else if (var_f1 > 1.0f) { + var_f1 = 1.0f; + } + var_r31->unk_0C[arg0][1] = var_f1; + } +} + +void fn_1_11930(void) +{ + M428DllPlayerWork4 *var_r31; + s32 var_r30; + s32 var_r29; + omObjData *var_r28; + M428DllPlayerUnk120Struct2 *var_r27; + ModelData *var_r26; + AnimData *var_r25; + + var_r28 = lbl_1_bss_2B0 = omAddObjEx(lbl_1_bss_2D0, 0xBF, 0, 0, -1, fn_1_11A60); + var_r31 = var_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork4), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork4)); + var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0F), MEMORY_DEFAULT_NUM)); + var_r31->unk_10 = var_r25; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = fn_1_12CD4(var_r25, 0x200); + var_r31->unk_00[var_r30] = var_r29; + if (var_r30 == 0) { + Hu3DModelCameraSet(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 3); + var_r31->unk_08[var_r30] = 0; + var_r26 = &Hu3DData[var_r29]; + var_r27 = var_r26->unk_120; + var_r27->unk_20 = 0; + } +} + +void fn_1_11A60(omObjData *object) +{ + s32 temp_r4; + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerWork4 *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + s32 var_r27; + ModelData *var_r26; + + var_r30 = object->data; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (var_r30->unk_08[var_r29] <= 0) { + Hu3DModelAttrSet(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + var_r26 = &Hu3DData[var_r30->unk_00[var_r29]]; + var_r28 = var_r26->unk_120; + var_r31 = var_r28->unk_3C; + var_r28->unk_23 = 0; + for (var_r27 = 0; var_r27 < var_r28->unk_26; var_r27++, var_r31++) { + if (!(var_r31->unk_30 <= 0.0f)) { + var_r31->unk_38.x += var_r31->unk_04; + var_r31->unk_38.y += var_r31->unk_08; + var_r31->unk_38.z += var_r31->unk_0C; + var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_18; + if (var_r31->unk_34 >= 360.0f) { + var_r31->unk_34 = var_r31->unk_34 - 360.0f; + } + var_r31->unk_48 = var_r31->unk_28; + var_r31->unk_28 = var_r31->unk_28 + var_r31->unk_2C; + if (var_r31->unk_48 >= 0x10) { + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_30 = 0.0f; + var_r30->unk_08[var_r29] -= 1; + } + } + } + } + } +} + +void fn_1_11C20(void) +{ + + omObjData *var_r30 = lbl_1_bss_2B0; + M428DllPlayerWork4 *var_r31 = var_r30->data; + Hu3DModelAttrSet(var_r31->unk_00[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_00[1], HU3D_ATTR_DISPOFF); + HuSprAnimKill(var_r31->unk_10); + var_r30->func = NULL; +} + +s32 fn_1_11C8C(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +static inline s32 fn_1_11C8C_inlined(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3) +{ + Vec sp64; + Vec sp58; + s32 sp24; + s32 sp20; + float var_f31; + + sp58.x = arg2.z; + sp58.z = arg2.x; + sp58.y = 0.0f; + VECNormalize(&sp58, &sp58); + var_f31 = 0.5f * argA; + sp64.x = arg1.x + (sp58.x * var_f31); + sp64.y = arg1.y + (sp58.y * var_f31); + sp64.z = arg1.z + (sp58.z * var_f31); + + sp24 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, arg9, argB); + sp64.x = arg1.x - (sp58.x * var_f31); + sp64.y = arg1.y - (sp58.y * var_f31); + sp64.z = arg1.z - (sp58.z * var_f31); + + sp20 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, -arg9, argB); + return (sp24 << 0x10) | sp20; +} + +float fn_1_12254(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_1236C(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if (360.0 - var_f30 <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_125BC(float arg8, float arg9, float argA) +{ + float var_f24; + float var_f23; + + var_f23 = fn_1_12254(argA, arg9); + var_f24 = fabs(var_f23 * arg8); + return fn_1_1236C(argA, arg9, var_f24); +} + +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp8; + sp8.x = arg0->x + (arg8 * (arg1->x - arg0->x)); + sp8.y = arg0->y + (arg8 * (arg1->y - arg0->y)); + sp8.z = arg0->z + (arg8 * (arg1->z - arg0->z)); + *arg2 = sp8; +} + +float fn_1_12A2C(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + arg3->x = fn_1_12A2C(arg8, arg0->x, arg1->x, arg2->x); + arg3->y = fn_1_12A2C(arg8, arg0->y, arg1->y, arg2->y); + arg3->z = fn_1_12A2C(arg8, arg0->z, arg1->z, arg2->z); +} + +s16 fn_1_12CD4(AnimData *sp8, s16 var_r26) +{ + s16 var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r25; + void *var_r24; + void *var_r22; + + s16 var_r23 = Hu3DHookFuncCreate(fn_1_134C0); + ModelData *var_r27 = &Hu3DData[var_r23]; + M428DllPlayerUnk120Struct2 *var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = sp8; + var_r31->unk_26 = var_r26; + var_r31->unk_20 = 0; + var_r31->unk_22 = 0; + var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_23 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r29; + memset(var_r29, 0, var_r26 * sizeof(M428DllPlayerUnkStruct2)); + for (var_r30 = 0; var_r30 < var_r26; var_r30++, var_r29++) { + var_r29->unk_30 = 0.0f; + var_r29->unk_34 = 0.0f; + var_r29->unk_28 = 0.0f; + var_r29->unk_2C = 1.0f; + var_r29->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r29->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_44.r = var_r29->unk_44.g = var_r29->unk_44.b = var_r29->unk_44.a = 0xFF; + var_r29->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r30 = 0; var_r30 < (var_r26 * 4); var_r30++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r28 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r28; + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + var_r28->x = 0.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 1.0f; + var_r28++; + var_r28->x = 0.0f; + var_r28->y = 1.0f; + var_r28++; + } + var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, var_r27->unk_48); + var_r22 = var_r24; + DCFlushRange(var_r24, 0x10000); + GXBeginDisplayList(var_r22, 0x10000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r26 * 4); + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30 * 4 + 3); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 3); + } + var_r31->unk_34 = GXEndDisplayList(); + var_r31->unk_48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_34, var_r27->unk_48); + memcpy(var_r31->unk_48, var_r24, var_r31->unk_34); + DCFlushRange(var_r31->unk_48, var_r31->unk_34); + HuMemDirectFree(var_r24); + (void)var_r30; + (void)var_r26; + return var_r23; +} + +s16 fn_1_13184(s16 sp8) +{ + M428DllPlayerUnk120Struct2 *var_r31; + M428DllPlayerUnkStruct2 *var_r30; + Vec2f *var_r29; + s16 var_r28; + ModelData *var_r27; + M428DllPlayerUnk120Struct2 *var_r26; + Vec *var_r25; + s32 var_r24; + ModelData *var_r23; + s16 var_r22; + + var_r23 = &Hu3DData[sp8]; + var_r26 = var_r23->unk_120; + var_r22 = Hu3DHookFuncCreate(var_r23->hook); + var_r27 = &Hu3DData[var_r22]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = var_r26->unk_38; + var_r31->unk_26 = var_r26->unk_26; + var_r24 = var_r31->unk_26; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r26->unk_22; + var_r31->unk_4C = NULL; + var_r31->unk_50 = NULL; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r30 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r30; + for (var_r28 = 0; var_r28 < var_r24; var_r28++, var_r30++) { + var_r30->unk_30 = 0.0f; + var_r30->unk_34 = 0.0f; + var_r30->unk_28 = 0.0f; + var_r30->unk_2C = 1.0f; + var_r30->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r30->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_44.r = var_r30->unk_44.g = var_r30->unk_44.b = var_r30->unk_44.a = 0xFF; + var_r30->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r28 = 0; var_r28 < (var_r24 * 4); var_r28++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r29; + for (var_r28 = 0; var_r28 < var_r24; var_r28++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + var_r31->unk_34 = var_r26->unk_34; + var_r31->unk_48 = var_r26->unk_48; + return var_r22; +} + +void fn_1_134C0(ModelData *var_r23, Mtx var_r22) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + M428DllPlayerUnk120Struct2 *var_r31; + Vec *var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r27; + s16 var_r26; + s16 var_r25; + Vec *var_r24; + s16 var_r21; + s16 var_r20; + s16 var_r19; + M428DllPlayerHook var_r18; + + var_r31 = var_r23->unk_120; + if ((var_r31->unk_2C != GlobalCounter) || (shadowModelDrawF != 0)) { + if ((var_r31->unk_50) && (var_r31->unk_50 != var_r23)) { + fn_1_134C0(var_r31->unk_50, var_r22); + } + GXLoadPosMtxImm(var_r22, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else { + var_r21 = var_r31->unk_38->bmp->dataFmt & 0xF; + if ((var_r21 == 7) || (var_r21 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if ((var_r31->unk_22 & 1) != 0) { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else if ((var_r23->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(var_r31->unk_38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if (HmfInverseMtxF3X3(var_r22, &sp128[0]) == 0) { + MTXIdentity(sp128); + } + PSMTXReorder(sp128, sp8); + if (var_r31->unk_4C) { + var_r18 = var_r31->unk_4C; + var_r18(var_r23, var_r31, var_r22); + } + var_r29 = var_r31->unk_3C; + var_r30 = var_r31->unk_40; + var_r28 = var_r31->unk_44; + PSMTXROMultVecArray(sp8, lbl_1_data_6A4, &sp38[0], 4); + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + if (!var_r29->unk_30) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else if (!var_r29->unk_34) { + var_r27 = &sp98[0]; + var_r24 = &sp38[0]; + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + } + else { + VECScale(lbl_1_data_6A4, &sp98[0], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[1], &sp98[1], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[2], &sp98[2], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[3], &sp98[3], var_r29->unk_30); + MTXRotRad(spC8, 0x5A, var_r29->unk_34); + MTXConcat(&sp128[0], spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_38, var_r30++); + } + } + var_r29 = var_r31->unk_3C; + var_r28 = var_r31->unk_44; + if ((var_r31->unk_22 & 2) == 0) { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + var_r20 = var_r29->unk_48 & 3; + var_r19 = (var_r29->unk_48 >> 2) & 3; + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = (0.25f * var_r20) + lbl_1_data_6D4[var_r25].x; + var_r28->y = (0.25f * var_r19) + lbl_1_data_6D4[var_r25].y; + } + } + } + else { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = 4.0f * lbl_1_data_6D4[var_r25].x; + var_r28->y = 4.0f * lbl_1_data_6D4[var_r25].y; + } + } + } + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_26 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_26 * 8 * 4); + DCFlushRangeNoSync(var_r31->unk_3C, var_r31->unk_26 * 0x4C); + PPCSync(); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(M428DllPlayerUnkStruct2)); // bug? + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, sizeof(Vec2f)); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); + if (shadowModelDrawF == 0) { + if ((var_r31->unk_21 & 2) == 0) { + var_r31->unk_28++; + } + if ((var_r31->unk_30 != 0) && (var_r31->unk_30 <= var_r31->unk_28)) { + if ((var_r31->unk_21 & 1) != 0) { + var_r31->unk_28 = 0; + } + var_r31->unk_28 = var_r31->unk_30; + } + var_r31->unk_2C = GlobalCounter; + } + } +} + +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2) +{ + if (arg2 == 0) { + fn_1_13EC8(arg0, arg1, 0.0f); + return; + } + fn_1_13EC8(arg0, arg1, 1.0f); +} + +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_38 = arg2; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_38 = arg2; + } +} + +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_30 = arg8; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_30 = arg8; + } +} + +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3) +{ + Mtx sp44; + Mtx sp14; + ModelData *var_r31; + HsfData *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->hsfData; + lbl_1_bss_130 = 0; + if (var_r31->unk_08 != -1) { + lbl_1_bss_134 = 1; + } + else { + lbl_1_bss_134 = 0; + } + mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); + mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(sp44, var_r31->unk_F0, sp44); + if (arg3 != 0) { + MTXConcat(arg2, sp44, sp44); + } + fn_1_14088(var_r30->root, sp44, arg1, arg2); + return lbl_1_bss_130; +} + +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) +{ + Mtx spF8; + Mtx spC8; + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + HsfTransform *var_r31; + HsfTransform *var_r30; + HsfTransform *var_r29; + HsfObject *var_r28; + HsfObject *var_r27; + u32 var_r25; + u32 var_r24; + u32 var_r23; + + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r31 = &arg0->data.curr; + } + else { + var_r31 = &arg0->data.base; + } + if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { + MTXCopy(arg1, spF8); + OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); + } + else { + mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); + mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(arg1, spF8, spF8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", arg0->name); + } + if (strcmp(arg2, arg0->name) == 0) { + MTXCopy(spF8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { + var_r28 = arg0->data.children[var_r25]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r30 = &var_r28->data.curr; + } + else { + var_r30 = &var_r28->data.base; + } + if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { + MTXCopy(spF8, sp68); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r28->name); + } + else { + mtxRot(&sp98[0], var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(&sp98[0], sp68, sp68); + mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); + MTXConcat(spF8, sp68, sp68); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r28->name); + } + if (strcmp(arg2, var_r28->name) == 0) { + MTXCopy(sp68, arg3); + lbl_1_bss_130 = 1; + } + for (var_r24 = 0; var_r24 < var_r28->data.childrenCount; var_r24++) { + var_r27 = var_r28->data.children[var_r24]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r29 = &var_r27->data.curr; + } + else { + var_r29 = &var_r27->data.base; + } + if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { + MTXCopy(sp68, sp8); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r27->name); + } + else { + mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); + mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + MTXConcat(sp68, sp8, sp8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r27->name); + } + if (strcmp(arg2, var_r27->name) == 0) { + MTXCopy(sp8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r23 = 0; var_r23 < var_r27->data.childrenCount; var_r23++) { + fn_1_14088(var_r27->data.children[var_r23], sp8, arg2, arg3); + } + } + } + } + } + } +} + +void fn_1_14560(s16 arg0) +{ + CameraData *var_r31 = &Hu3DCamera[arg0]; + C_MTXLookAt(lbl_1_bss_23C[arg0], &var_r31->pos, &var_r31->up, &var_r31->target); + GXGetProjectionv(&lbl_1_bss_1BC[arg0].unk_00); + GXGetViewportv(&lbl_1_bss_13C[arg0].unk_00); +} + +void fn_1_145F8(s16 var_r29, Vec *var_r31, float *var_r30) +{ + GXProject(var_r31->x, var_r31->y, var_r31->z, lbl_1_bss_23C[var_r29], &lbl_1_bss_1BC[var_r29].unk_00, &lbl_1_bss_13C[var_r29].unk_00, var_r30, + &var_r30[1], &var_r30[2]); +} diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 7c2aa9be..01040112 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -21,6 +21,7 @@ #include "game/sprite.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -402,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -2343,7 +2344,7 @@ void fn_1_AD74(float *arg0) float temp_f30; temp_r31 = &lbl_1_data_103C[0][0]; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) { sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0])); @@ -2395,8 +2396,8 @@ void fn_1_B01C(void) temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x; temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z; temp_r30->unk64 = atan2d(temp_f31, temp_f30); - omVibrate(temp_r31->unk114, 120, 6, 6); - omVibrate(temp_r30->unk114, 120, 6, 6); + omVibrate(temp_r31->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6); + omVibrate(temp_r30->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6); } void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3) @@ -2438,7 +2439,7 @@ void fn_1_B8E0(omObjData *object) WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_E96C; } - lbl_1_bss_114 += 1.0f / 60.0f; + lbl_1_bss_114 += 1.0f / REFRESH_RATE; if (360.0f <= lbl_1_bss_114) { lbl_1_bss_114 -= 360.0f; } @@ -2464,12 +2465,12 @@ void fn_1_B8E0(omObjData *object) case 1002: lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f)); for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); } - if (60.0f <= lbl_1_bss_12C) { + if (REFRESH_RATE <= lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { @@ -2480,12 +2481,12 @@ void fn_1_B8E0(omObjData *object) case 1003: lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { lbl_1_bss_130[temp_r29].unk4 = temp_f31; } - if (60.0f <= lbl_1_bss_12C) { + if (REFRESH_RATE <= lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; lbl_1_bss_4 = HuAudFXPlay(1645); @@ -2511,19 +2512,19 @@ void fn_1_B8E0(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_2FE)) { object->work[0]++; - lbl_1_bss_304 = 3600; - lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60); + lbl_1_bss_304 = 60 * REFRESH_RATE; + lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / REFRESH_RATE); lbl_1_bss_2FE = -1; } } break; case 1006: - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60); + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_304--; if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { object->work[0] = 1007; - lbl_1_bss_304 = 3600; + lbl_1_bss_304 = 60 * REFRESH_RATE; lbl_1_bss_12C = 0; } break; @@ -2575,7 +2576,7 @@ void fn_1_B8E0(omObjData *object) case 1008: lbl_1_bss_12C++; - if (60.0f < lbl_1_bss_12C) { + if (REFRESH_RATE < lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; HuAudFXPlay(1650); @@ -2587,7 +2588,7 @@ void fn_1_B8E0(omObjData *object) } else { fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); - temp_f30 = lbl_1_bss_12C / 60.0f; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); } @@ -2595,13 +2596,13 @@ void fn_1_B8E0(omObjData *object) case 1009: lbl_1_bss_12C++; - if (120.0f < lbl_1_bss_12C) { + if (2 * REFRESH_RATE < lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; HuAudFXPlay(1651); } else { - temp_f30 = lbl_1_bss_12C / 120.0f; + temp_f30 = lbl_1_bss_12C / (2 * REFRESH_RATE); temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); temp_f20 = (6.0f * frandf()) - 3.0f; temp_f19 = (6.0f * frandf()) - 3.0f; diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c new file mode 100644 index 00000000..d848689f --- /dev/null +++ b/src/REL/m430Dll/main.c @@ -0,0 +1,569 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +typedef struct M430DllMainWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + s32 unk_10; + u32 unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + u32 unk_24; + u32 unk_28; + s32 unk_2C; + u32 unk_30; + s32 unk_34; +} M430DllMainWork; /* size = 0x38 */ + +void fn_1_10FC(omObjData *object); +void fn_1_168C(omObjData *object); +void fn_1_1B04(omObjData *object); +void fn_1_21E4(omObjData *object); +void fn_1_2710(omObjData *object); +omObjFunc fn_1_2D48(Process *process, omObjData *object); +void fn_1_2E80(omObjData *object); +omObjFunc fn_1_369C(Process *arg1, omObjData *object); +void fn_1_3768(omObjData *object); +s32 fn_1_4030(void); +void fn_1_65C(omObjData *object); +void fn_1_A54(omObjData *arg0); +void fn_1_B98(omObjData *object); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; + +Process *lbl_1_bss_38; +omObjData *lbl_1_bss_34; +omObjData *lbl_1_bss_30; +s16 lbl_1_bss_2C; +char lbl_1_bss_28[4]; +s16 lbl_1_bss_26; +s16 lbl_1_bss_24; +s16 lbl_1_bss_22; +s16 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + Process *var_r31; + LightData *var_r30; + + HuAudSndGrpSet(0x37); + lbl_1_bss_C = lbl_1_bss_8 = -1; + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_bss_2C = -1; + lbl_1_bss_14 = 1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_26 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_26); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_26]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 34.75f; + lbl_1_data_18.y = -24.75f; + lbl_1_data_18.z = 3500.0f; + sp14.x = sp14.y = sp14.z = 0.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + MTXMultVec(sp20, &sp8, &sp8); + Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14); + Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); + lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1; + lbl_1_bss_1C = 1; + lbl_1_bss_18 = 1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_38 = var_r31; + omGameSysInit(var_r31); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, -1.0f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, -1.0f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + lbl_1_bss_30 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_30->work[0] = 2; + lbl_1_bss_34 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_65C); + fn_1_4A80(var_r31); + fn_1_BBC4(var_r31); + lbl_1_bss_10 = espEntry(DATA_MAKE_NUM(DATADIR_M430, 0x1B), 0x64, 0); + espPosSet(lbl_1_bss_10, 288.0, 240.0); + espScaleSet(lbl_1_bss_10, 0.22499999403953552, 60.0); + espDispOff(lbl_1_bss_10); +} + +void fn_1_65C(omObjData *object) +{ + M430DllMainWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M430DllMainWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M430DllMainWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_08 = 0; + work->unk_2C = 0; + work->unk_30 = 0; + work->unk_34 = 0; + object->func = fn_1_B98; +} + +void fn_1_720(omObjData *object) +{ + M430DllMainWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_28++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_A54(object); + } + if (lbl_1_bss_18 == 0) { + if (fn_1_4030() != 0) { + if ((Hu3DCamera->fov < 0.0f) || (Hu3DCamera[1].fov < 0.0f)) { + Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 41.5f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + } + } + else if ((Hu3DCamera->fov < 0.0f) || (Hu3DCamera[1].fov >= 0.0f)) { + Hu3DCamera[1].fov = -1.0f; + Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + } + } +} + +void fn_1_A54(omObjData *object) +{ + M430DllMainWork *work = object->data; + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_18 = 0; + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_2D48(lbl_1_bss_38, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1B04; + break; + case 2: + work->unk_00 = 3; + work->unk_28 = 0; + object->func = fn_1_369C(lbl_1_bss_38, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_10FC; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_168C; + break; + } + work->unk_04 = 0; + } +} + +void fn_1_B98(omObjData *object) +{ + fn_1_720(object); + fn_1_A54(object); +} + +void fn_1_10FC(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_14 = 1; + work->unk_08 = 0; + fn_1_A54(object); + } +} + +void fn_1_168C(omObjData *object) +{ + fn_1_720(object); + if (WipeStatGet() == 0) { + fn_1_C00C(); + fn_1_4C48(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1B04(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + switch (work->unk_14) { + case 0: + lbl_1_bss_1C = 1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 0; + espDispOn(lbl_1_bss_10); + work->unk_1C = 0x2D; + work->unk_20 = 0x3C; + CenterM->x = -450.0f; + CenterM[1].x = 450.0f; + CenterM->y = CenterM[1].y = 300.0f; + CenterM->z = CenterM[1].z = 950.0f; + CRotM->x = CRotM[1].x = -5.0f; + CRotM->y = CRotM[1].y = 0.0f; + CZoomM[0] = CZoomM[1] = 700.0f; + work->unk_14 = 1; + work->unk_18 = 0; + object->work[0] = 0; + return; + case 1: + if (object->work[0] == 0) { + if (WipeStatGet() == 0) { + lbl_1_bss_24 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_24, 320.0f, 240.0f); + object->work[0]++; + } + } + else { + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_24) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x4A); + } + if ((MGSeqStatGet(lbl_1_bss_24) == 0) && (work->unk_08 == 0)) { + lbl_1_bss_2C = MGSeqCreate(1, work->unk_1C, -1, -1); + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_21E4; + } + } + break; + } +} + +void fn_1_21E4(omObjData *object) +{ + M430DllMainWork *work = object->data; + s32 var_r27 = 0; + fn_1_720(object); + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C <= 0) { + var_r27 = 1; + } + } + if (var_r27 != 0) { + lbl_1_bss_22 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_22, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + object->work[1] = 0; + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_2710; + } + } + MGSeqParamSet(lbl_1_bss_2C, 1, work->unk_1C); +} + +void fn_1_2710(omObjData *object) +{ + M430DllMainWork *work = object->data; + if (lbl_1_bss_2C >= 0) { + MGSeqParamSet(lbl_1_bss_2C, 2, -1); + lbl_1_bss_2C = -1; + } + fn_1_720(object); + if (object->work[1] == 0) { + if (MGSeqStatGet(lbl_1_bss_22) == 0) { + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 1; + } + object->work[1]++; + HuAudFXFadeOut(lbl_1_bss_C, 0x1E); + } + } + else if ((WipeStatGet() == 0) && (work->unk_30 == 0x1111)) { + work->unk_14 = 4; + work->unk_18 = 0; + fn_1_A54(object); + } +} + +omObjFunc fn_1_2D48(Process *process, omObjData *object) +{ + CenterM->x = CenterM[1].x = 0.0f; + CenterM->y = CenterM[1].y = 300.0f; + CenterM->z = CenterM[1].z = 950.0f; + CRotM->x = CRotM[1].x = -5.0f; + CRotM->y = CRotM[1].y = 0.0f; + CZoomM[0] = CZoomM[1] = 700.0f; + object->work[0] = object->work[1] = 0; + lbl_1_bss_1C = 0; + lbl_1_bss_C = HuAudFXPlay(0x674); + return fn_1_2E80; +} + +void fn_1_2E80(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + work->unk_0C = 1; + object->work[0]++; + switch (object->work[1]) { + case 0: + if (object->work[0] > 180.0f) { + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 1; + } + object->work[1]++; + object->work[0] = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + object->work[0] = 0; + work->unk_0C = 2; + fn_1_A54(object); + } + break; + } +} + +omObjFunc fn_1_369C(Process *arg0, omObjData *object) +{ + M430DllMainWork *work = object->data; + s32 spC = 0; + s32 sp8 = 1; + lbl_1_bss_1C = 0; + espDispOff(lbl_1_bss_10); + fn_1_BB98(1); + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 0; + } + CenterM->x = 0.0f; + lbl_1_bss_8 = HuAudFXPlay(0x679); + return fn_1_3768; +} + +void fn_1_3768(omObjData *object) +{ + M430DllMainWork *work = object->data; + + fn_1_720(object); + if (WipeStatGet() == 0) { + work->unk_24 = 1; + if (work->unk_28 >= 210.0f) { + work->unk_24 = 2; + fn_1_A54(object); + } + } + else { + work->unk_28 = 0; + } +} + +s32 fn_1_4030(void) +{ + return lbl_1_bss_1C; +} + +u32 fn_1_4040(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_00; +} + +u32 fn_1_4058(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_0C; +} + +u32 fn_1_4070(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_14; +} + +u32 fn_1_4088(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_24; +} + +void fn_1_40A0(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_2C = arg0; +} + +s32 fn_1_40B8(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_2C; +} + +void fn_1_40D0(s32 arg0) +{ + + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_30 |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_4100(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_34 |= (1 << ((arg0 & 3) * 4)); +} + +float fn_1_4130(void) +{ + M430DllMainWork *work = lbl_1_bss_34->data; + float var_f31 = work->unk_1C - 1; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_f31 += 0.016666668f * work->unk_20; + return var_f31; +} + +void fn_1_41F0(Vec *arg0, Vec *arg1) +{ + Vec sp10; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + + sp10.x = arg1->x - arg0->x; + sp10.y = arg1->y - arg0->y; + sp10.z = arg1->z - arg0->z; + Center.x = arg1->x; + Center.y = arg1->y; + Center.z = arg1->z; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))); +} + +void fn_1_4538(float sp8, float spC, float sp10, float sp14, float sp18, float sp1C) +{ + Vec sp40; + Vec sp34; + sp40.x = sp8; + sp40.y = spC; + sp40.z = sp10; + + sp34.x = sp14; + sp34.y = sp18; + sp34.z = sp1C; + fn_1_41F0(&sp40, &sp34); +} + +float fn_1_48B0(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_49CC(float arg0, float arg1) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg1 - arg0, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c new file mode 100644 index 00000000..baa21d63 --- /dev/null +++ b/src/REL/m430Dll/player.c @@ -0,0 +1,2428 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +inline double fabs2(double x) +{ + return (double)fabs(x); +} + +typedef struct M430PlayerData170Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; +} M430PlayerData170Struct; /* size = 0x08 */ + +typedef struct M430PlayerBss160Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10[6]; + s32 unk_28[6][3]; + s32 unk_70[6][3]; + s32 unk_B8; + s32 unk_BC; +} M430PlayerBss160Struct; /* size = 0xC0 */ + +typedef struct M430PlayerBss164Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + AnimData *unk_14; + Vec unk_18; + Vec unk_24; + Vec unk_30; +} M430PlayerBss164Struct; /* size = 0x3C */ + +typedef struct M430PlayerBss168Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + Vec unk_14; + Vec unk_20; + Vec unk_2C; +} M430PlayerBss168Struct; /* size = 0x38 */ + +typedef struct M430PlayerBss16CStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + float unk_18; + Vec unk_1C; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; +} M430PlayerBss16CStruct; /* size = 0x40 */ + +typedef struct M430PlayerBss170Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + Vec *unk_4C; + Vec *unk_50; + Vec2f *unk_54; + s32 unk_58; + u32 unk_5C; + void *unk_60; +} M430PlayerBss170Struct; /* size = 0x64 */ + +typedef struct M430PlayerBss174Struct { + s32 unk_00[2]; + s32 unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + s32 unk_20; +} M430PlayerBss174Struct; /* size = 0x24 */ + +typedef struct M430PlayerWork { + u32 unk_00; + u16 unk_04; + u16 unk_06; + u16 unk_08; + u16 unk_0A; + u16 unk_0C; + u16 unk_0E; + u16 unk_10; + u16 unk_12; + u16 unk_14; + u16 unk_16; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + s32 unk_34; + s32 unk_38; + char unk3C[4]; + s32 unk_40; + u32 unk_44; + float unk_48; + float unk_4C; + float unk_50; + float unk_54; + s32 unk_58; + s32 unk_5C; + s32 unk_60; + s32 unk_64; + s32 unk_68; + s32 unk_6C; + float unk_70; + s32 unk_74; + s32 unk_78; + float unk_7C; +} M430PlayerWork; /* size = 0x80 */ + +void fn_1_100A0(void); +void fn_1_1033C(void); +void fn_1_1053C(void); +void fn_1_10540(s32 arg0, s32 arg1, float arg8, float arg9, float argA); +void fn_1_1058C(s32 arg0, float arg8); +void fn_1_105B8(s32 arg0); +void fn_1_1061C(M430PlayerBss170Struct *arg0); +void fn_1_10948(ModelData *model, Mtx matrix); +void fn_1_10B88(void); +void fn_1_10D1C(void); +void fn_1_10F20(void); +s32 fn_1_10F24(s32 arg0, float arg8, float arg9, float argA); +s32 fn_1_110A8(s32 arg0, float arg8, float arg9, float argA, s32 arg1); +s32 fn_1_111BC(s32 arg0, float arg8, Vec *arg1); +void fn_1_11314(s32 arg0); +void fn_1_113AC(void); +void fn_1_114F0(void); +void fn_1_11644(void); +s32 fn_1_11648(s32 arg0, float arg8, float arg9, float argA); +s32 fn_1_117A4(s32 arg0, float arg8, float arg9, float argA, s32 arg1); +s32 fn_1_11A1C(s32 arg0, float arg8, Vec *arg1); +M430PlayerBss168Struct *fn_1_11B64(s32 arg0); +void fn_1_11B94(s32 arg0); +void fn_1_11C1C(void); +void fn_1_11D70(void); +void fn_1_11F60(void); +s32 fn_1_11F90(s32 arg0, float arg8, float arg9, float argA); +void fn_1_12550(s32 arg0); +void fn_1_125C4(void); +void fn_1_129CC(void); +void fn_1_12D74(void); +void fn_1_12DF0(s32 arg0); +void fn_1_12F20(float arg8, float *arg0, float *arg1, float *arg2, float *arg3); +float fn_1_1303C(float arg8, float arg9); +float fn_1_13154(float arg8, float arg9, float argA); +void fn_1_133A4(AnimData *arg0); +void fn_1_133DC(Mtx arg0, Vec *arg1); +void fn_1_BE24(omObjData *object); +void fn_1_C040(void); +void fn_1_C1E4(omObjData *object); +void fn_1_CA3C(omObjData *object); +void fn_1_D2D0(omObjData *object); +void fn_1_D828(omObjData *object); +void fn_1_E8FC(omObjData *object); +void fn_1_F0D8(omObjData *object); +s32 fn_1_F62C(omObjData *object); +void fn_1_F6A0(omObjData *object); +void fn_1_FC9C(omObjData *object); + +M430PlayerData170Struct lbl_1_data_170[7] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x42), -1 }, + { 0, 1 }, + { 0, 2 }, + { 0, 3 }, + { 0, -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), -1 }, +}; +M430PlayerData170Struct lbl_1_data_1A8[4] = { + { 0, 4 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), -1 }, +}; +s32 lbl_1_data_1C8[5] = { 0, DATA_MAKE_NUM(DATADIR_M430, 0x31), DATA_MAKE_NUM(DATADIR_M430, 0x39), DATA_MAKE_NUM(DATADIR_M430, 0x41), + DATA_MAKE_NUM(DATADIR_M430, 0x49) }; +float lbl_1_data_1DC[7] = { -262.5f, -173.25f, -86.625f, 0.0f, 86.625f, 173.25f, 262.5f }; +Vec lbl_1_data_1F8[8] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 160.0f }, + { 60.000004f, 0.0f, 0.0f }, + { -60.000004f, 0.0f, 0.0f }, + { 50.0f, 0.0f, 100.0f }, + { -50.0f, 0.0f, 100.0f }, + { 60.000004f, 0.0f, -120.00001f }, + { -60.000004f, 0.0f, -120.00001f }, +}; +float lbl_1_data_258[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 25.0f, 0.0f, 25.0f }; +s32 lbl_1_data_278[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x1C), DATA_MAKE_NUM(DATADIR_M430, 0x1D) }; +s32 lbl_1_data_280[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x1E), DATA_MAKE_NUM(DATADIR_M430, 0x1F) }; +s32 lbl_1_data_288[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x20), DATA_MAKE_NUM(DATADIR_M430, 0x21) }; + +s32 lbl_1_bss_17C; +Process *lbl_1_bss_178; +M430PlayerBss174Struct *lbl_1_bss_174; +M430PlayerBss170Struct *lbl_1_bss_170; +M430PlayerBss16CStruct *lbl_1_bss_16C; +M430PlayerBss168Struct *lbl_1_bss_168; +M430PlayerBss164Struct *lbl_1_bss_164; +M430PlayerBss160Struct *lbl_1_bss_160; +s32 lbl_1_bss_15C; +s32 lbl_1_bss_158; + +void fn_1_BBC4(Process *process) +{ + Vec sp14; + Vec sp8; + + lbl_1_bss_178 = process; + fn_1_C040(); + fn_1_100A0(); + fn_1_10B88(); + fn_1_113AC(); + fn_1_11C1C(); + fn_1_125C4(); + omAddObjEx(process, 0x2D, 0, 0, -1, fn_1_BE24); + sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); + sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); + sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); +} + +void fn_1_BE24(omObjData *object) +{ + Vec sp14; + Vec sp8; + + fn_1_1033C(); + fn_1_10D1C(); + fn_1_114F0(); + fn_1_11D70(); + fn_1_129CC(); + sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); + sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); + sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_C00C(void) +{ + HuAudFXListnerKill(); + fn_1_1053C(); + fn_1_10F20(); + fn_1_11644(); + fn_1_11F60(); + fn_1_12D74(); +} + +void fn_1_C040(void) +{ + s8 spC[4]; + s32 sp8; + s32 var_r31; + omObjData *var_r30; + s32 var_r29; + s32 var_r28; + + sp8 = 0; + lbl_1_bss_17C = 1; + omMakeGroupEx(lbl_1_bss_178, 0, 4); + omGetGroupMemberListEx(lbl_1_bss_178, 0); + lbl_1_bss_174 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss174Struct), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_174, 0, 2 * sizeof(M430PlayerBss174Struct)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].group; + if (spC[var_r29] == -1) { + spC[var_r29] = var_r31; + } + else { + break; + } + } + if (var_r31 < 4) { + spC[0] = 0; + spC[1] = 1; + spC[2] = 2; + spC[3] = 3; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = omAddObjEx(lbl_1_bss_178, 0x28, 3, 7, 0, fn_1_C1E4); + var_r28 = spC[var_r31]; + var_r30->work[0] = var_r28; + var_r30->work[1] = var_r31 >> 1; + var_r30->work[2] = var_r31 & 1; + } +} + +void fn_1_C1E4(omObjData *object) +{ + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + u32 var_r27; + HsfData *var_r26; + HsfMaterial *var_r25; + ModelData *var_r24; + s32 var_r23; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M430PlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M430PlayerWork)); + var_r27 = object->work[0]; + var_r23 = GWPlayerCfg[var_r27].character; + work->unk_38 = var_r23; + work->unk_00 = var_r27; + work->unk_04 = object->work[1]; + work->unk_06 = GWPlayerCfg[var_r27].pad_idx; + work->unk_08 = GWPlayerCfg[var_r27].iscom; + work->unk_0A = GWPlayerCfg[var_r27].diff; + work->unk_0C = object->work[2]; + work->unk_0E = 0; + work->unk_10 = 0; + work->unk_12 = 0; + work->unk_14 = 0; + work->unk_16 = 0; + if (work->unk_04 == 0) { + work->unk_18 = 450.0f; + } + else { + work->unk_18 = -450.0f; + } + work->unk_34 = 1; + work->unk_24 = 12.500001f; + work->unk_28 = 0.0f; + work->unk_1C = 180.0f; + work->unk_2C = 0.0f; + work->unk_30 = 0.0f; + work->unk_20 = 0.0f; + work->unk_40 = work->unk_44 = 0; + work->unk_48 = work->unk_4C = 0.0f; + work->unk_50 = 0.0f; + work->unk_54 = 0.0f; + work->unk_74 = 0; + work->unk_78 = -1; + work->unk_7C = 0.0f; + work->unk_60 = -1; + work->unk_64 = -1; + work->unk_68 = -1; + work->unk_6C = -1; + work->unk_70 = lbl_1_data_258[var_r23]; + object->model[0] = CharModelCreate(work->unk_38, 4); + Hu3DModelCameraSet(object->model[0], 3); + Hu3DModelLayerSet(object->model[0], 6); + CharModelStepTypeSet(work->unk_38, 3); + if (work->unk_0C == 0) { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + if ((lbl_1_data_170[var_r29].unk_04) == 0xFFFFFFFF) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_38, lbl_1_data_170[var_r29].unk_00); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_38 + lbl_1_data_1C8[lbl_1_data_170[var_r29].unk_04]); + } + if (var_r29 == 5) { + CharModelVoiceEnableSet(work->unk_38, object->motion[var_r29], 0); + } + } + work->unk_58 = 0; + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_278[work->unk_04]); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelScaleSet(object->model[1], 1.2f, 1.2f, 1.2f); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x25)); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelCameraSet(object->model[2], 3); + work->unk_60 = HuAudFXPlay(0x67A); + work->unk_68 = 0x50; + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_04 == 0) { + work->unk_64 = HuAudFXPlay(0x675); + } + else { + work->unk_64 = HuAudFXPlay(0x676); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, 0); + } + } + else { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_data_1A8[var_r29].unk_04 == 0xFFFFFFFF) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_38, lbl_1_data_1A8[var_r29].unk_00); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_38 + lbl_1_data_1C8[lbl_1_data_1A8[var_r29].unk_04]); + } + if (var_r29 == 2) { + CharModelVoiceEnableSet(work->unk_38, object->motion[var_r29], 0); + } + } + work->unk_58 = 0; + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_280[work->unk_04]); + Hu3DModelLayerSet(object->model[1], 7); + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[1], 2.0f); + object->model[2] = Hu3DModelCreateFile(lbl_1_data_288[work->unk_04]); + Hu3DModelLayerSet(object->model[2], 6); + Hu3DModelCameraSet(object->model[2], 3); + } + CharModelMotionDataClose(work->unk_38); + object->trans.x = work->unk_18; + if (work->unk_0C == 0) { + object->trans.y = 0.0f; + } + else { + object->trans.y = 200.0f; + } + if (work->unk_04 == 0) { + object->trans.z = -100000.0f; + } + else { + object->trans.z = -101000.0f; + } + object->rot.y = 180.0f; + work->unk_20 = object->trans.y; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if (work->unk_0C == 0) { + var_r28->unk_00[work->unk_0C] = work->unk_00; + if (work->unk_08 != 0) { + var_r23 = var_r28->unk_08 | 1; + var_r28->unk_08 = var_r23; + } + var_r28->unk_0C = object->trans.x; + var_r28->unk_10 = 0.0f; + var_r28->unk_14 = object->trans.z; + var_r28->unk_18 = object->trans.z; + var_r28->unk_1C = work->unk_24; + var_r28->unk_20 = 0; + lbl_1_bss_158 = 1; + } + else { + var_r28->unk_00[work->unk_0C] = work->unk_00; + if (work->unk_08 != 0) { + var_r28->unk_08 = var_r28->unk_08 | 2; + } + } + if (work->unk_0C != 0) { + var_r24 = &Hu3DData[object->model[1]]; + var_r26 = var_r24->hsfData; + for (var_r25 = var_r26->material, var_r29 = 0; var_r29 < var_r26->materialCnt; var_r29++, var_r25++) { + var_r25->flags |= 2; + } + } + object->func = fn_1_CA3C; + (void)var_r24; + (void)var_r24; +} + +void fn_1_CA3C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + HsfData *var_r27; + HsfMaterial *var_r26; + ModelData *var_r25; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + work->unk_40 = 0; + work->unk_44 = 0; + work->unk_48 = 0.0f; + work->unk_4C = 0.0f; + if (work->unk_0C == 0) { + work->unk_34 = 3; + work->unk_24 = -41.000004f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + object->trans.z -= work->unk_30; + fn_1_D828(object); + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, (s32)(8192.0f * (work->unk_68 / 127.0f))); + } + object->rot.y = object->rot.z = 0.0f; + if (++work->unk_10 > (60.0f * (1.5f + (0.5f * work->unk_04)))) { + work->unk_30 += 30.000002f; + var_r28->unk_18 = object->trans.z = object->trans.z + work->unk_30; + work->unk_68 += 3; + if (work->unk_68 > 0x7F) { + work->unk_68 = 0x7F; + } + } + else { + var_r28->unk_18 = object->trans.z; + } + var_f30 = work->unk_70 * sind(object->rot.y); + var_f29 = work->unk_70 * cosd(object->rot.y); + Hu3DModelPosSet(object->model[1], object->trans.x + var_f30, object->trans.y, object->trans.z + var_f29); + Hu3DModelRotSet(object->model[1], object->rot.x, object->rot.y, object->rot.z); + Hu3DModelPosSet(object->model[2], object->trans.x + var_f30, object->trans.y - 150.0f, object->trans.z + var_f29); + Hu3DModelRotSet(object->model[2], object->rot.x, 180.0f + object->rot.y, object->rot.z); + fn_1_10540(work->unk_04, 0, object->trans.x, 25.0f + object->trans.y, object->trans.z - 100.0f); + if (work->unk_10 > 30.0f) { + var_f31 = 0.016666668f * (work->unk_10 - 30.0f); + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((90.0f * var_f31)); + var_f31 *= var_f31; + } + else { + var_f31 = 0.0f; + } + CenterM[work->unk_04].x = work->unk_18 - (var_f31 * work->unk_18); + CenterM[work->unk_04].z = (950.0f * (0.5f + (0.5f * var_f31))) + fn_1_7FBC(work->unk_04); + } + else { + work->unk_1C = 0.0f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + fn_1_E8FC(object); + work->unk_1C = 0.0f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + object->trans.y = 200.0f; + object->trans.z = var_r28->unk_18 - 300.0f; + object->rot.z = 0.0f; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + Hu3DModelPosSet(object->model[var_r29 + 1], object->trans.x, 150.0f + object->trans.y, 50.0f + object->trans.z); + Hu3DModelRotSet(object->model[var_r29 + 1], object->rot.x, object->rot.y, object->rot.z); + } + fn_1_10540(work->unk_04, 1, object->trans.x, 150.0f + object->trans.y, 50.0f + object->trans.z); + if (work->unk_6C == -1) { + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + work->unk_6C = HuAudFXEmiterPlay(0x67B, &sp8); + } + else { + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + HuAudFXEmiterUpDate(work->unk_6C, &sp8); + } + } + if (fn_1_4058() == 2) { + if (work->unk_0C == 0) { + work->unk_34 = 1; + work->unk_24 = 12.500001f; + work->unk_28 = 0.0f; + work->unk_68 = 0x50; + object->trans.y = 0.0f; + } + else { + var_r25 = &Hu3DData[object->model[1]]; + var_r27 = var_r25->hsfData; + for (var_r26 = var_r27->material, var_r29 = 0; var_r29 < var_r27->materialCnt; var_r29++, var_r26++) { + var_r26->flags &= 0xFFFFFFFD; + } + if (work->unk_6C != -1) { + HuAudFXStop(work->unk_6C); + } + work->unk_6C = -1; + if (work->unk_04 == 0) { + work->unk_6C = HuAudFXPlay(0x67C); + } + else { + work->unk_6C = HuAudFXPlay(0x67D); + } + if (work->unk_6C != -1) { + HuAudFXPitchSet(work->unk_6C, -0x2000); + } + work->unk_28 = 0.0f; + object->trans.y = 200.0f; + object->rot.z = 180.0f; + } + object->trans.x *= -1.0f; + work->unk_18 *= -1.0f; + object->trans.x = work->unk_18; + object->trans.z = 0.0f; + object->rot.x = 0.0f; + object->rot.y = 180.0f; + work->unk_1C = 180.0f; + work->unk_20 = object->trans.y; + lbl_1_bss_158 = 0; + object->func = fn_1_D2D0; + } +} + +void fn_1_D2D0(omObjData *object) +{ + s32 spC; + s32 sp8; + float var_f31; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + + work = object->data; + spC = 0; + sp8 = -1; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if ((lbl_1_bss_15C == 0) && (fn_1_4070() >= 2)) { + fn_1_12DF0(1); + } + if (lbl_1_bss_17C != 0) { + Hu3DModelCameraSet(object->model[0], 3); + Hu3DModelCameraSet(object->model[1], 3); + if (object->model[2] != -1) { + Hu3DModelCameraSet(object->model[2], 3); + } + } + else { + if (work->unk_04 == 0) { + var_r29 = 1; + } + else { + var_r29 = 2; + } + Hu3DModelCameraSet(object->model[0], var_r29); + Hu3DModelCameraSet(object->model[1], var_r29); + if (object->model[2] != -1) { + Hu3DModelCameraSet(object->model[2], var_r29); + } + } + if (fn_1_4070() == 2) { + work->unk_40 = HuPadBtn[work->unk_06]; + work->unk_44 = HuPadBtnDown[work->unk_06]; + work->unk_48 = HuPadStkX[work->unk_06]; + work->unk_4C = HuPadStkY[work->unk_06]; + } + else { + work->unk_40 = 0; + work->unk_44 = 0; + work->unk_48 = 0.0f; + work->unk_4C = 0.0f; + } + if (fn_1_4070() < 2) { + work->unk_1C = 180.0f; + work->unk_28 = 0.0f; + object->trans.x = work->unk_18; + object->rot.y = 180.0f; + } + if (work->unk_0C == 0) { + fn_1_D828(object); + var_f31 = (work->unk_24 - 12.500001f) / 28.500004f; + work->unk_68 = 80.0f + (47.0f * var_f31); + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, (s32)(8192.0f * (work->unk_68 / 127.0f))); + } + } + else { + fn_1_E8FC(object); + var_f31 = (var_r28->unk_1C - 12.500001f) / 28.500004f; + var_f31 = 8192.0f + (-16384.0f * (1.0f - var_f31)); + if (work->unk_6C != -1) { + HuAudFXPitchSet(work->unk_6C, var_f31); + } + } + if (fn_1_4070() == 3) { + fn_1_40D0(work->unk_00); + work->unk_5C = 0; + return; + } + if (fn_1_4070() == 4) { + work->unk_0E = 2; + work->unk_10 = 0; + if (work->unk_0C == 0) { + work->unk_58 = 4; + } + else { + work->unk_58 = 1; + } + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelCameraSet(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if ((object->model[1] != -1) && (work->unk_0C != 0)) { + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + } + if (work->unk_60 != -1) { + HuAudFXStop(work->unk_60); + } + if (work->unk_64 != -1) { + HuAudFXStop(work->unk_64); + } + work->unk_60 = work->unk_64 = -1; + if (work->unk_6C != -1) { + HuAudFXStop(work->unk_6C); + } + if (object->model[2] != -1) { + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + } + fn_1_105B8(work->unk_04); + fn_1_11314(work->unk_04); + fn_1_11B94(work->unk_04); + fn_1_12550(work->unk_04); + object->func = fn_1_F0D8; + } +} + +void fn_1_D828(omObjData *var_r30) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M430PlayerWork *var_r31; + M430PlayerBss174Struct *var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = var_r30->data; + var_r27 = -1; + var_r29 = &lbl_1_bss_174[var_r31->unk_04]; + if ((fn_1_4070() == 2) && (var_r31->unk_08 != 0)) { + fn_1_F6A0(var_r30); + } + mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + sp20[1][0] *= var_r30->scale.y; + sp20[1][1] *= var_r30->scale.y; + sp20[1][2] *= var_r30->scale.z; + var_r30->trans.y = 0.3f * (100.0f * (var_r31->unk_24 / 41.000004f)); + if (var_r30->trans.y < 0.0f) { + var_r30->trans.y *= -0.5f; + } + var_f27 = 15.0f * (var_r31->unk_24 / 41.000004f); + if (var_r31->unk_24 < 0.0f) { + var_f27 *= -0.5f; + } + switch (var_r31->unk_0E) { + case 0: + var_r31->unk_12 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_12; + var_r31->unk_14 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_14; + var_r30->rot.x = (2.5 * sind(var_r31->unk_12)) - var_f27; + var_r30->rot.z = 2.0 * cosd(var_r31->unk_14); + for (var_r28 = 0; var_r28 < 8; var_r28++) { + sp14.x = lbl_1_data_1F8[var_r28].x; + sp14.y = lbl_1_data_1F8[var_r28].y; + sp14.z = lbl_1_data_1F8[var_r28].z; + fn_1_133DC(&sp20[0], &sp14); + var_f31 = var_r31->unk_70 * sind(var_r30->rot.y); + var_f29 = var_r31->unk_70 * cosd(var_r30->rot.y); + if (fn_1_110A8( + var_r31->unk_04, var_f31 + (sp14.x + var_r30->trans.x), sp14.y + var_r30->trans.y, var_f29 + (sp14.z + var_r30->trans.z), 1) + != 0) { + break; + } + } + if (var_r28 < 8) { + var_r31->unk_58 = 3; + CharModelMotionShiftSet(var_r31->unk_38, var_r30->motion[var_r31->unk_58], 0.0f, 10.0f, 0); + var_r31->unk_0E = 1; + var_r31->unk_10 = 0; + if (var_r31->unk_04 == 0) { + HuAudFXPlay(0x678); + } + else { + HuAudFXPlay(0x67E); + } + HuAudCharVoicePlay(var_r31->unk_38, 0x123); + omVibrate(var_r31->unk_00, 0xC, 4, 2); + var_r31->unk_2C = 5.0f; + var_r31->unk_16 = frand() & 3; + } + break; + case 1: + var_r31->unk_34 = 1; + var_r31->unk_44 = 0; + var_r31->unk_48 = 0.0f; + var_r31->unk_12 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_12; + var_r31->unk_14 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_14; + var_r30->rot.x = (2.5 * sind(var_r31->unk_12)) - var_f27; + var_r30->rot.z = 2.0 * cosd(var_r31->unk_14); + var_r31->unk_2C = 5.0f - (5.0f * (0.011111111f * var_r31->unk_10)); + var_f25 = 7.0 * (var_r31->unk_2C * sind((10.0f * var_r31->unk_10))); + if ((var_r31->unk_16 & 1) != 0) { + var_r30->rot.x += var_f25; + } + else { + var_r30->rot.x -= var_f25; + } + if ((var_r31->unk_16 & 2) != 0) { + var_r30->rot.z += var_f25; + } + else { + var_r30->rot.z -= var_f25; + } + if ((var_r31->unk_10 & 1) != 0) { + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + if (++var_r31->unk_10 >= 90.0f) { + var_r31->unk_0E = 0; + var_r31->unk_10 = 0; + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + break; + } + var_f24 = var_r31->unk_48; + var_f23 = var_f24; + if (fabs2(var_f23) < 8.0) { + var_f24 = 0.0f; + } + var_r31->unk_28 *= 0.98f; + var_r31->unk_28 += 0.0017499999f * var_f24; + if (var_r31->unk_28 < -8.75f) { + var_r31->unk_28 = -8.75f; + } + else if (var_r31->unk_28 > 8.75f) { + var_r31->unk_28 = 8.75f; + } + var_r30->trans.x += var_r31->unk_28; + var_f26 = 180.0f - (30.0f * (0.015625f * var_f24)); + var_r31->unk_1C = fn_1_13154(var_f26, var_r31->unk_1C, 1.0f); + var_r30->rot.y = var_r31->unk_1C; + if (var_r30->trans.x > (350.0f + var_r31->unk_18)) { + var_r30->trans.x = 350.0f + var_r31->unk_18; + } + else if (var_r30->trans.x < (var_r31->unk_18 - 350.0f)) { + var_r30->trans.x = var_r31->unk_18 - 350.0f; + } + if (var_r31->unk_0E == 0) { + if ((var_r31->unk_48 > 8.0f) && (var_r30->rot.y < 170.0f)) { + var_r27 = 1; + } + else if ((var_r31->unk_48 < -8.0f) && (var_r30->rot.y > 190.0f)) { + var_r27 = 2; + } + else { + var_r27 = 0; + } + if ((var_r27 != -1) && (var_r31->unk_58 != var_r27) && (CharModelMotionShiftIDGet(var_r31->unk_38) < 0)) { + var_r31->unk_58 = var_r27; + CharModelMotionShiftSet(var_r31->unk_38, var_r30->motion[var_r31->unk_58], 0.0f, 10.0f, 0); + } + } + if ((var_r31->unk_44 & 0x100) != 0) { + var_r31->unk_34++; + } + else if ((var_r31->unk_44 & 0x200) != 0) { + var_r31->unk_34--; + } + if (var_r31->unk_34 < 1) { + var_r31->unk_34 = 1; + } + else if (var_r31->unk_34 > 3) { + var_r31->unk_34 = 3; + } + switch (var_r31->unk_34) { + case 1: + var_f30 = 12.500001f; + (void)var_f30; + break; + case 2: + var_f30 = 27.916668f; + (void)var_f30; + break; + default: + var_f30 = 41.000004f; + break; + } + if (fabs(var_f30 - var_r31->unk_24) < 1.6666667461395264) { + var_r31->unk_24 = var_f30; + } + else if (var_f30 > var_r31->unk_24) { + var_r31->unk_24 += 1.6666667f; + } + else { + var_r31->unk_24 -= 1.6666667f; + } + var_r30->trans.z -= var_r31->unk_24; + if (fn_1_4070() >= 1) { + if ((var_r31->unk_50 -= var_r31->unk_24) < 0.0f) { + var_r31->unk_50 = 4500.0f - (500.0f * ((frand() & 0x8F) / 128.0f)); + var_f31 = var_r31->unk_18 + lbl_1_data_1DC[frand() & 7]; + fn_1_10F24(var_r31->unk_04, var_f31, var_r30->trans.y - 100.0f, -6000.0f + var_r30->trans.z); + } + if ((var_r31->unk_54 -= var_r31->unk_24) < 0.0f) { + var_r31->unk_54 = 2000.0f; + var_f31 = var_r31->unk_18 + lbl_1_data_1DC[frand() & 7]; + if ((frand() & 1) != 0) { + var_f26 = 350.0f; + } + else { + var_f26 = 500.0f; + } + if (fn_1_4070() == 2) { + fn_1_11648(var_r31->unk_04, var_f31, 50.0f + var_f26, -6000.0f + var_r30->trans.z); + } + } + } + var_r29->unk_10 = var_r30->trans.x - var_r29->unk_0C; + var_r29->unk_0C = var_r30->trans.x; + var_r29->unk_14 = var_r30->trans.z; + if (lbl_1_bss_158 == 0) { + var_r29->unk_18 = var_r30->trans.z; + } + var_r29->unk_1C = var_r31->unk_24; + fn_1_7FFC(var_r31->unk_04, var_r30->trans.z); + CenterM[var_r31->unk_04].x = var_r31->unk_18 + (0.5f * (var_r30->trans.x - var_r31->unk_18)); + CenterM[var_r31->unk_04].z = 950.0f + fn_1_7FBC(var_r31->unk_04); + var_f31 = var_r31->unk_70 * sind(var_r30->rot.y); + var_f31 = var_f31; + var_f29 = var_r31->unk_70 * cosd(var_r30->rot.y); + var_f29 = var_f29; + if (var_r31->unk_00 == 0) { + OSReport("X>%3.3f Z>%3.3f \n", var_f31, var_f29); + } + Hu3DModelPosSet(var_r30->model[1], var_r30->trans.x + var_f31, var_r30->trans.y, var_r30->trans.z + var_f29); + Hu3DModelRotSet(var_r30->model[1], var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + Hu3DModelPosSet(var_r30->model[2], var_r30->trans.x + var_f31, var_r30->trans.y - 150.0f, var_r30->trans.z + var_f29); + Hu3DModelRotSet(var_r30->model[2], var_r30->rot.x, 180.0f + var_r30->rot.y, var_r30->rot.z); + sp14.x = 0.0f; + sp14.y = 25.0f; + sp14.z = -100.0f; + fn_1_133DC(sp20, &sp14); + sp14.x += var_r30->trans.x; + sp14.y += var_r30->trans.y; + sp14.z += var_r29->unk_18; + fn_1_10540(var_r31->unk_04, 0, sp14.x, sp14.y, sp14.z); + var_f28 = var_r31->unk_24 / 41.000004f; + if (var_f28 < 0.0) { + var_f28 *= -1.0f; + } + fn_1_AEE0(var_r31->unk_04, &sp14, 180.0f + var_r30->rot.y, var_f28); + sp8.x = var_r31->unk_28; + sp8.y = 0.0f; + sp8.z = -var_r31->unk_24; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 160.0f; + fn_1_133DC(&sp20[0], &sp14); + sp14.x += var_r30->trans.x; + sp14.y += var_r30->trans.y; + sp14.z += var_r29->unk_18; + fn_1_B570(var_r31->unk_04, &sp14, var_r30->rot.y, var_f28, &sp8); +} + +s32 lbl_1_data_2A4[2] = { 1, 2 }; +Vec lbl_1_data_2AC[7] = { + { -300.0f, 30.000002f, -150.0f }, + { -150.0f, 30.000002f, 0.0f }, + { 150.0f, 30.000002f, 0.0f }, + { 300.0f, 30.000002f, -150.0f }, + { -400.0f, 0.0f, 250.0f }, + { 380.0f, 0.0f, 300.0f }, + { 0.0f, 1.0f, 0.0f }, +}; +Vec2f lbl_1_data_300 = { 0.0f, 0.0f }; +s32 lbl_1_data_308 = 0xFFA040FF; + +void fn_1_E8FC(omObjData *object) +{ + Mtx sp3C; + Vec sp30; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M430PlayerWork *work; + M430PlayerBss174Struct *var_r29; + s32 var_r28; + + work = object->data; + var_f27 = 180.0f; + var_f31 = 0.0f; + var_f29 = 0.0f; + var_r29 = &lbl_1_bss_174[work->unk_04]; + if ((fn_1_4070() == 2) && (work->unk_08 != 0)) { + fn_1_FC9C(object); + } + if ((s32)work->unk_0E != 0) { + (void)object; + } + else if ((fn_1_4070() == 2) && (fn_1_117A4(work->unk_04, object->trans.x, 50.0f + object->trans.y, object->trans.z, 1) != -1)) { + HuAudFXPlay(7); + var_r29->unk_20++; + } + if (fabs(var_f28 = work->unk_48) < 8.0) { + var_f28 = 0.0f; + } + work->unk_28 *= 0.98f; + work->unk_28 += 0.002625f * var_f28; + if (work->unk_28 < -8.75f) { + work->unk_28 = -8.75f; + } + else if (work->unk_28 > 8.75f) { + work->unk_28 = 8.75f; + } + var_f26 = object->trans.x; + object->trans.x += work->unk_28; + if (object->trans.x > (350.0f + work->unk_18)) { + object->trans.x = 350.0f + work->unk_18; + } + else if (object->trans.x < (work->unk_18 - 350.0f)) { + object->trans.x = work->unk_18 - 350.0f; + } + var_f30 = fabs(0.0033333334f * (object->trans.y - 200.0f)); + var_f31 = 245.0f + (-105.0f * var_f30); + if (object->trans.x > (var_r29->unk_0C + var_f31)) { + object->trans.x = var_r29->unk_0C + var_f31; + } + else if (object->trans.x < (var_r29->unk_0C - var_f31)) { + object->trans.x = var_r29->unk_0C - var_f31; + } + var_f27 = 180.0f; + work->unk_1C = var_f27 - (30.0f * (0.114285715f * (object->trans.x - var_f26))); + object->rot.y = fn_1_13154(work->unk_1C, object->rot.y, 2.5f); + if (fabs(fn_1_1303C(object->rot.y, 180.0f)) < 90.0) { + object->rot.z = 0.5f * (object->rot.y - 180.0f); + } + else { + object->rot.z = 0.5f * object->rot.y; + } + object->trans.z = 300.0f + var_r29->unk_18; + if (var_r29->unk_1C < 18.75f) { + var_f29 = 200.0f; + } + else if (var_r29->unk_1C < 33.333336f) { + var_f29 = 350.0f; + } + else { + var_f29 = 500.0f; + } + var_f30 = work->unk_20 - var_f29; + if (fabs(var_f30) < 1.6666667461395264) { + work->unk_20 = var_f29; + } + else if (var_f30 > 0.0f) { + work->unk_20 -= 1.6666667f; + } + else if (var_f30 < 0.0f) { + work->unk_20 += 1.6666667f; + } + work->unk_10 += (frand() & 3) + 1; + object->trans.y = work->unk_20 + (0.10000000149011612 * (100.0 * sind(work->unk_10))); + mtxRot(&sp3C[0], object->rot.x, object->rot.y, object->rot.z); + sp3C[1][0] *= object->scale.y; + sp3C[1][1] *= object->scale.y; + sp3C[1][2] *= object->scale.z; + sp30.x = 0.0f; + sp30.y = 150.0f; + sp30.z = 50.0f; + fn_1_133DC(&sp3C[0], &sp30); + for (var_r28 = 0; var_r28 < 2; var_r28++) { + Hu3DModelPosSet(object->model[lbl_1_data_2A4[var_r28]], object->trans.x + sp30.x, object->trans.y + sp30.y, object->trans.z + sp30.z); + Hu3DModelRotSet(object->model[lbl_1_data_2A4[var_r28]], object->rot.x, object->rot.y, object->rot.z); + } + sp30.x = 0.0f; + sp30.y = 150.0f; + sp30.z = 50.0f; + fn_1_133DC(&sp3C[0], &sp30); + fn_1_10540(work->unk_04, 1, object->trans.x + sp30.x, object->trans.y + sp30.y, object->trans.z + sp30.z); + fn_1_1058C(work->unk_04, 1.0 - fabs((object->trans.x - var_r29->unk_0C) / var_f31)); +} + +void fn_1_F0D8(omObjData *object) +{ + float var_f31; + float var_f30; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + s32 var_r27; + M430PlayerBss174Struct *var_r26; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + var_r26 = &lbl_1_bss_174[work->unk_04 ^ 1]; + switch (work->unk_5C) { + case 0: + var_r27 = work->unk_0C + (work->unk_04 * 2); + object->trans.x = lbl_1_data_2AC[var_r27].x; + object->trans.y = lbl_1_data_2AC[var_r27].y; + object->trans.z = lbl_1_data_2AC[var_r27].z + fn_1_7FBC(0); + object->rot.x = object->rot.y = object->rot.z = 0.0f; + object->scale.x = object->scale.y = object->scale.z = 1.0f; + CenterM[0].x = 0.0f; + CenterM[0].z = 750.0f + object->trans.z; + if (work->unk_0C == 0) { + work->unk_58 = 4; + } + else { + work->unk_58 = 1; + } + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelShadowSet(object->model[0]); + if (work->unk_0C == 0) { + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(object->model[2], 3); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + work->unk_1C = (180.0f + (40.0f * (0.007874016f * (frand() & 0x7F)))) - 20.0f; + if (work->unk_04 == 0) { + var_r29 = 4; + } + else { + var_r29 = 5; + } + Hu3DModelPosSet(object->model[1], lbl_1_data_2AC[var_r29].x, lbl_1_data_2AC[var_r29].y, lbl_1_data_2AC[var_r29].z + fn_1_7FBC(0)); + Hu3DModelPosSet( + object->model[2], lbl_1_data_2AC[var_r29].x, lbl_1_data_2AC[var_r29].y - 150.0f, lbl_1_data_2AC[var_r29].z + fn_1_7FBC(0)); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(object->model[1]); + } + if (var_r28->unk_20 > 0) { + work->unk_0E = 3; + } + else { + work->unk_0E = 4; + } + GWPlayerCoinCollectAdd(work->unk_00, var_r28->unk_20); + work->unk_5C++; + break; + case 1: + if (fn_1_4088() == 1) { + if (work->unk_00 == 0) { + if ((var_r28->unk_20 == 0) && (var_r26->unk_20 == 0)) { + HuAudSStreamPlay(4); + } + else { + HuAudSStreamPlay(1); + } + } + if (work->unk_0C == 0) { + if (work->unk_0E == 3) { + work->unk_58 = 5; + } + else { + work->unk_58 = 6; + } + } + else if (work->unk_0E == 3) { + work->unk_58 = 2; + } + else { + work->unk_58 = 3; + } + CharModelMotionShiftSet(work->unk_38, object->motion[work->unk_58], 0.0f, 8.0f, 0); + if (work->unk_0E == 3) { + HuAudCharVoicePlay(work->unk_38, 0x122); + } + work->unk_10 = 0; + work->unk_5C++; + } + break; + case 2: + if (fn_1_F62C(object) != 0) { + fn_1_4100(work->unk_00); + work->unk_5C++; + } + break; + } + if (work->unk_0C == 0) { + var_f31 = -10.0f; + var_f30 = 0.0f; + Hu3DModelRotSet(object->model[1], var_f31, work->unk_1C, var_f30); + Hu3DModelRotSet(object->model[2], var_f31, work->unk_1C, var_f30); + } +} + +s32 fn_1_F62C(omObjData *object) +{ + M430PlayerWork *work = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(work->unk_38) != 0) && (CharModelMotionShiftIDGet(work->unk_38) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +void fn_1_F6A0(omObjData *object) +{ + Vec sp38; + float sp30; + float sp28; + float sp20; + float sp18; + float sp10; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M430PlayerWork *work; + s32 var_r29; + s32 var_r28; + M430PlayerBss168Struct *var_r27; + M430PlayerBss174Struct *var_r26; + s32 var_r25; + s32 var_r24; + + work = object->data; + var_r28 = 3; + var_r26 = &lbl_1_bss_174[work->unk_04]; + if (var_r26->unk_08 != 3) { + work->unk_0A = 3; + } + if (--work->unk_74 < 0) { + work->unk_7C = 150.0f * (3 - work->unk_0A) * ((frand() & 0x7F) / 127.0f); + if ((frand() & 1) != 0) { + work->unk_7C *= -1.0f; + } + work->unk_74 = 0x1E + (frand() % 30) + (4 - work->unk_0A) * 0x3C; + } + switch (work->unk_34) { + case 1: + var_f27 = 500.0f; + break; + case 2: + var_f27 = 1500.0f; + break; + default: + var_f27 = 3000.0f; + break; + } + var_r25 = fn_1_111BC(work->unk_04, object->trans.z, &sp38); + var_f30 = sp38.x; + var_f25 = sp38.z; + var_r29 = fn_1_11A1C(work->unk_04, object->trans.z, &sp38); + var_f29 = sp38.x; + var_f28 = sp38.z; + if (var_r29 == work->unk_78) { + var_r29 = fn_1_11A1C(work->unk_04, 100.0f + var_f28, &sp38); + var_f29 = sp38.x; + var_f28 = sp38.z; + } + else if (work->unk_78 == -1) { + var_r24 = fn_1_11A1C(work->unk_04, 100.0f + var_f28, &sp38); + var_f26 = sp38.x; + if (work->unk_0A >= 2) { + if (fabs(var_f29 - object->trans.x) > 300.0) { + if (fabs(var_f26 - object->trans.x) < 300.0) { + if ((fabs(var_f28 - object->trans.z) < 1800.0) && (work->unk_34 == 3)) { + work->unk_78 = var_r29; + var_r29 = var_r24; + var_f29 = var_f26; + } + } + } + } + } + else { + work->unk_78 = -1; + } + if (fabs(var_f25 - object->trans.z) < var_f27) { + if (var_f30 > object->trans.x) { + var_f31 = var_f30 - 200.0f; + } + else { + var_f31 = 200.0f + var_f30; + } + } + else { + if ((fabs(var_f30 - var_f29) > 200.0) || (var_r25 == -1)) { + var_f31 = var_f29; + } + else if ((var_f30 > var_f29) || (var_f30 > (250.0f + work->unk_18))) { + var_f31 = var_f30 - 200.0f; + } + else { + var_f31 = 200.0f + var_f30; + } + } + var_f31 += work->unk_7C; + if (var_f31 > (350.0f + work->unk_18)) { + var_f31 = 350.0f + work->unk_18; + } + else if (var_f31 < (work->unk_18 - 350.0f)) { + var_f31 = work->unk_18 - 350.0f; + } + if (var_r29 != -1) { + var_f31 -= object->trans.x; + if (var_f31 > 30.000002f) { + work->unk_48 = 64.0f; + } + else if (var_f31 < -30.000002f) { + work->unk_48 = -64.0f; + } + var_r27 = fn_1_11B64(var_r29); + if (var_r27 != NULL) { + if (var_r27->unk_14.y > 450.0f) { + var_r28 = 3; + } + else { + var_r28 = 2; + } + } + if (var_r28 > work->unk_34) { + work->unk_44 |= 0x100; + return; + } + if (var_r28 < work->unk_34) { + work->unk_44 |= 0x200; + } + } + else if (var_r28 > work->unk_34) { + work->unk_44 |= 0x100; + } +} + +void fn_1_FC9C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + s32 var_r27; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if (var_r28->unk_08 != 3) { + work->unk_0A = 3; + } + if (--work->unk_74 < 0) { + work->unk_7C = 75.0f * (3 - work->unk_0A) * ((frand() & 0x7F) / 127.0f); + if ((frand() & 1) != 0) { + work->unk_7C *= -1.0f; + } + work->unk_74 = 0x1E + (frand() % 60) + (4 - work->unk_0A) * 0x3C; + } + var_r29 = fn_1_11A1C(work->unk_04, object->trans.z, &sp8); + var_f31 = sp8.x; + var_f30 = sp8.z; + if (var_r29 == work->unk_78) { + var_r29 = fn_1_11A1C(work->unk_04, 100.0f + var_f30, &sp8); + var_f31 = sp8.x; + var_f30 = sp8.z; + } + else if (work->unk_78 == -1) { + var_r27 = fn_1_11A1C(work->unk_04, 100.0f + var_f30, &sp8); + var_f29 = sp8.x; + if (work->unk_0A >= 2) { + if (fabs(var_f31 - object->trans.x) > 300.0) { + if (fabs(var_f29 - object->trans.x) < 300.0) { + if ((fabs(var_f30 - object->trans.z) < 1800.0) && (work->unk_34 == 3)) { + work->unk_78 = var_r29; + var_r29 = var_r27; + var_f31 = var_f29; + } + } + } + } + } + else { + work->unk_78 = -1; + } + var_f31 += work->unk_7C; + if (var_f31 > (350.0f + work->unk_18)) { + var_f31 = 350.0f + work->unk_18; + } + else if (var_f31 < (work->unk_18 - 350.0f)) { + var_f31 = work->unk_18 - 350.0f; + } + if (var_r29 != -1) { + var_f31 -= object->trans.x; + if (var_f31 > 30.000002f) { + work->unk_48 = 64.0f; + return; + } + if (var_f31 < -30.000002f) { + work->unk_48 = -64.0f; + } + } +} + +void fn_1_100A0(void) +{ + M430PlayerBss170Struct *var_r31; + ModelData *var_r30; + s32 var_r29; + s32 var_r28; + void *var_r27; + void *var_r26; + + var_r31 = lbl_1_bss_170 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss170Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 2 * sizeof(M430PlayerBss170Struct)); + for (var_r28 = 0; var_r28 < 2; var_r31++) { + var_r31->unk_00 = var_r28; + var_r31->unk_04 = Hu3DHookFuncCreate(fn_1_10948); + Hu3DModelLayerSet(var_r31->unk_04, 6); + Hu3DModelCameraSet(var_r31->unk_04, 3); + var_r30 = &Hu3DData[var_r31->unk_04]; + var_r30->unk_120 = var_r31; + var_r31->unk_08 = 1; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = var_r31->unk_20 = var_r31->unk_24 = 500.0f; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 1000.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f; + var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 1000.0f; + var_r31->unk_58 = 0; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_4C, 0, 0xC0); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_50, 0, 0xC0); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x80, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_54, 0, 0x80); + var_r30 = &Hu3DData[var_r31->unk_04]; + var_r27 = HuMemDirectMallocNum(HEAP_DATA, 0x200, var_r30->unk_48); + var_r26 = var_r27; + DCFlushRange(var_r27, 0x200); + GXBeginDisplayList(var_r26, 0x200); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x10); + for (var_r29 = 0; var_r29 < 0x10; var_r29++) { + GXUnknownu16(var_r29); + GXUnknownu16(0); + GXUnknownu16(var_r29); + } + var_r31->unk_5C = GXEndDisplayList(); + var_r31->unk_60 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_5C, var_r30->unk_48); + memcpy(var_r31->unk_60, var_r27, var_r31->unk_5C); + DCFlushRange(var_r31->unk_60, var_r31->unk_5C); + HuMemDirectFree(var_r27); + fn_1_1061C(var_r31); + var_r28++; + } +} + +void fn_1_1033C(void) +{ + float var_f31; + M430PlayerBss170Struct *var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = lbl_1_bss_170, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + if (var_r31->unk_08 != 0) { + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f; + var_r31->unk_40 = var_r31->unk_28 - var_r31->unk_10; + var_r31->unk_44 = var_r31->unk_2C - var_r31->unk_14; + var_r31->unk_48 = var_r31->unk_30 - var_r31->unk_18; + var_f31 = 0.5f * (var_r31->unk_34 + var_r31->unk_40); + var_r31->unk_1C = var_f31 + (var_r31->unk_0C * (var_r31->unk_40 - var_f31)); + var_f31 = 0.5f * (var_r31->unk_38 + var_r31->unk_44); + var_r31->unk_20 = var_f31 + (var_r31->unk_0C * (var_r31->unk_38 - var_f31)); + var_f31 = 0.5f * (var_r31->unk_3C + var_r31->unk_48); + var_r31->unk_24 = var_f31 + (var_r31->unk_0C * (var_r31->unk_3C - var_f31)); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_f31 = var_r30 / 15.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_12F20(var_f31, &var_r31->unk_34, &var_r31->unk_1C, &var_r31->unk_40, (float *)&var_r31->unk_4C[var_r30]); + } + fn_1_1061C(var_r31); + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); + } + } +} + +void fn_1_1053C(void) { } + +void fn_1_10540(s32 arg0, s32 arg1, float arg8, float arg9, float argA) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + if (arg1 == 0) { + var_r31->unk_10 = arg8; + var_r31->unk_14 = arg9; + var_r31->unk_18 = argA; + return; + } + var_r31->unk_28 = arg8; + var_r31->unk_2C = arg9; + var_r31->unk_30 = argA; +} + +void fn_1_1058C(s32 arg0, float arg8) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + var_r31->unk_0C = arg8; +} + +void fn_1_105B8(s32 arg0) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + if (var_r31->unk_08 != 0) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + var_r31->unk_08 = 0; +} + +void fn_1_1061C(M430PlayerBss170Struct *var_r31) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f27; + float var_f25; + s32 var_r30; + + var_f27 = 0.0f; + for (var_r30 = 0xF; var_r30 >= 0; var_r30--) { + var_r31->unk_50[var_r30] = var_r31->unk_4C[var_r30]; + var_r31->unk_54[var_r30] = lbl_1_data_300; + if (var_r30 == 0) { + var_f27 = 0.0f; + var_r31->unk_54[var_r30].y = var_f27; + } + else { + var_f31 = var_r31->unk_4C[var_r30 - 1].x - var_r31->unk_4C[var_r30].x; + var_f30 = var_r31->unk_4C[var_r30 - 1].y - var_r31->unk_4C[var_r30].y; + var_f29 = var_r31->unk_4C[var_r30 - 1].z - var_r31->unk_4C[var_r30].z; + var_f25 = sqrtf((var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30))); + var_f27 -= 0.01f * var_f25; + var_r31->unk_54[var_r30].y = var_f27; + } + } + DCFlushRangeNoSync(var_r31->unk_50, 0xC0); + DCFlushRangeNoSync(var_r31->unk_54, 0x80); + PPCSync(); +} + +void fn_1_10948(ModelData *var_r29, Mtx var_r30) +{ + Mtx sp8; + M430PlayerBss170Struct *var_r31 = var_r29->unk_120; + GXLoadPosMtxImm(var_r30, 0); + MTXInvXpose(var_r30, sp8); + GXLoadNrmMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_50, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_308, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_54, 8); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_5C); +} + +void fn_1_10B88(void) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x10 * sizeof(M430PlayerBss16CStruct)); + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + var_r31->unk_00 = var_r30; + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x23)); + } + else { + var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_16C[0].unk_04); + } + Hu3DModelLayerSet(var_r31->unk_04, 2); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x24)); + Hu3DModelLayerSet(var_r31->unk_08, 2); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14 = 0; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C.x = var_r31->unk_1C.y = var_r31->unk_1C.z = 0.0f; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 0.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 1.0f; + } +} + +void fn_1_10D1C(void) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + M430PlayerBss174Struct *var_r29; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk_10 != 0) { + var_r29 = &lbl_1_bss_174[var_r31->unk_0C]; + switch (var_r31->unk_10) { + case 1: + if (var_r31->unk_1C.y < 0.0f) { + var_r31->unk_1C.y += 1.0f; + } + break; + case 2: + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_08, HU3D_ATTR_DISPOFF); + Hu3DMotionTimeSet(var_r31->unk_08, 0.0f); + Hu3DMotionSpeedSet(var_r31->unk_08, 1.0f); + var_r31->unk_10 = 3; + break; + case 3: + break; + } + if (var_r31->unk_1C.z > (1000.0f + var_r29->unk_14)) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + var_r31->unk_10 = 0; + } + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); + Hu3DModelPosSet(var_r31->unk_08, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_08, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_08, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); + } + } +} + +void fn_1_10F20(void) { } + +s32 fn_1_10F24(s32 var_r29, float sp8, float spC, float sp10) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk_10 == 0) { + break; + } + } + if (var_r30 >= 0x10) { + return -1; + } + if (var_r29 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + Hu3DModelCameraSet(var_r31->unk_08, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + Hu3DModelCameraSet(var_r31->unk_08, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = var_r29; + var_r31->unk_10 = 1; + var_r31->unk_14 = 0; + var_r31->unk_1C.x = sp8; + var_r31->unk_1C.y = spC; + var_r31->unk_1C.z = sp10; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 0.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); +} + +s32 fn_1_110A8(s32 arg0, float arg8, float arg9, float argA, s32 arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_10 == 1) && (var_r31->unk_0C == arg0)) { + var_f31 = arg8 - var_r31->unk_1C.x; + var_f30 = argA - var_r31->unk_1C.z; + if ((fabs(var_f31) < 50.0) && (fabs(var_f30) < 50.0)) { + break; + } + } + } + if (var_r30 >= 0x20) { + return 0; + } + if (arg1 != 0) { + var_r31->unk_18 = 50.0f; + var_r31->unk_10 = 2; + var_r31->unk_14 = 0; + } + return 1; +} + +s32 fn_1_111BC(s32 arg0, float arg8, Vec *arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_16C; + var_r29 = -1; + var_f31 = 10000.0f; + arg1->x = arg1->y = arg1->z = 0.0f; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk_10 == 1) && (var_r31->unk_0C == arg0) && !(var_r31->unk_1C.z > arg8)) { + var_f30 = fabs(var_r31->unk_1C.z - (arg8 - 100.0f)); + if (var_f30 < var_f31) { + var_f31 = var_f30; + var_r29 = var_r30; + } + } + } + if (var_r29 == -1) { + return -1; + } + var_r31 = &lbl_1_bss_16C[var_r29]; + *arg1 = var_r31->unk_1C; + return var_r29; +} + +void fn_1_11314(s32 arg0) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk_10 != 0) && (var_r31->unk_0C == arg0)) { + var_r31->unk_10 = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_113AC(void) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x20 * sizeof(M430PlayerBss168Struct)); + for (var_r30 = 0; var_r30 < 0x20; var_r31++) { + var_r31->unk_00 = var_r30; + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x22)); + } + else { + var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_168[0].unk_04); + } + Hu3DModelLayerSet(var_r31->unk_04, 7); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14.x = var_r31->unk_14.y = var_r31->unk_14.z = 0.0f; + var_r31->unk_20.x = var_r31->unk_20.y = var_r31->unk_20.z = 0.0f; + var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 1.0f; + var_r30++; + } +} + +void fn_1_114F0(void) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + M430PlayerBss174Struct *var_r29; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_0C != 0) { + switch (var_r31->unk_0C) { + case 1: + var_r31->unk_20.y += 7.5; + break; + case 2: + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + break; + } + var_r29 = &lbl_1_bss_174[var_r31->unk_08]; + if (var_r31->unk_14.z > (1000.0f + var_r29->unk_14)) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + } + else { + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + } + } + } +} + +void fn_1_11644(void) { } + +s32 fn_1_11648(s32 arg0, float arg1, float arg8, float arg9) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_0C == 0) { + break; + } + } + if (var_r30 >= 0x20) { + return -1; + } + if (arg0 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = arg0; + var_r31->unk_0C = 1; + var_r31->unk_14.x = arg1; + var_r31->unk_14.y = arg8; + var_r31->unk_14.z = arg9; + var_r31->unk_20.x = var_r31->unk_20.y = var_r31->unk_20.z = 0.0f; + var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); +} + +s32 fn_1_117A4(s32 arg0, float arg8, float arg9, float argA, s32 arg1) +{ + float var_f31; + float var_f30; + float var_f27; + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C == 1) && (var_r31->unk_08 == arg0)) { + var_f31 = var_r31->unk_14.x - arg8; + var_f27 = var_r31->unk_14.y - arg9; + var_f30 = var_r31->unk_14.z - argA; + if ((fabs(var_f27) < 100.0) && (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) < 100.0f)) { + break; + } + } + } + if (var_r30 >= 0x20) { + return -1; + } + if (arg1 != 0) { + fn_1_11F90(var_r31->unk_08, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + var_r31->unk_0C = 2; + var_r31->unk_10 = 0; + } + return 1; +} + +s32 fn_1_11A1C(s32 arg0, float arg8, Vec *arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss168Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_168; + var_r29 = -1; + var_f31 = 10000.0f; + arg1->x = arg1->y = arg1->z = 0.0f; + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C == 1) && (var_r31->unk_08 == arg0) && !(var_r31->unk_14.z > arg8)) { + var_f30 = fabs(var_r31->unk_14.z - arg8); + if (var_f30 < var_f31) { + var_f31 = var_f30; + var_r29 = var_r30; + } + } + } + if (var_r29 == -1) { + return -1; + } + var_r31 = &lbl_1_bss_168[var_r29]; + *arg1 = var_r31->unk_14; + return var_r29; +} + +M430PlayerBss168Struct *fn_1_11B64(s32 arg0) +{ + if ((arg0 < 0) || (arg0 >= 0x20)) { + return NULL; + } + return &lbl_1_bss_168[arg0]; +} + +void fn_1_11B94(s32 arg0) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C != 0) && (var_r31->unk_08 == arg0)) { + var_r31->unk_0C = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_11C1C(void) +{ + M430PlayerBss164Struct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_164 = HuMemDirectMallocNum(HEAP_SYSTEM, 8 * sizeof(M430PlayerBss164Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 8 * sizeof(M430PlayerBss164Struct)); + for (var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { + if (var_r30 == 0) { + var_r31->unk_14 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x26), MEMORY_DEFAULT_NUM)); + } + else { + var_r31->unk_14 = lbl_1_bss_164[0].unk_14; + } + var_r31->unk_00 = var_r30; + var_r31->unk_04 = Hu3DParticleCreate(var_r31[0].unk_14, 0x20); + Hu3DModelLayerSet(var_r31->unk_04, 7); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_PARTICLE_KILL); + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_30.y = var_r31->unk_30.z = 1.0f; + } +} + +void fn_1_11D70(void) +{ + M430PlayerBss164Struct *var_r31; + HsfanimStruct01 *var_r30; + ParticleData *var_r29; + s32 var_r28; + s32 var_r27; + M430PlayerBss174Struct *var_r26; + ModelData *var_r25; + s32 var_r24; + + for (var_r31 = lbl_1_bss_164, var_r28 = 0; var_r28 < 8; var_r28++, var_r31++) { + if (var_r31->unk_0C != 0) { + if (var_r31->unk_10 > 1) { + var_r25 = &Hu3DData[var_r31->unk_04]; + var_r29 = var_r25->unk_120; + for (var_r30 = var_r29->unk_48, var_r27 = 0; var_r27 < var_r29->unk_30; var_r27++, var_r30++) { + if (++var_r30->unk00 > var_r30->unk02) { + var_r24 = var_r30->unk40.a - 9; + if (var_r24 < 0) { + var_r30->unk2C = 0.0f; + } + else { + var_r30->unk40.a = var_r24; + } + } + var_r30->unk2C *= 0.975; + var_r30->unk34.x += var_r30->unk08.x; + var_r30->unk34.y += var_r30->unk08.y; + var_r30->unk34.z += var_r30->unk08.z; + var_r30->unk08.y -= 0.3103333379576603; + } + } + var_r26 = &lbl_1_bss_174[var_r31->unk_08]; + var_r31->unk_18.z -= var_r26->unk_1C; + if (++var_r31->unk_10 > 0x78) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + } + else { + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_30.x, var_r31->unk_30.y, var_r31->unk_30.z); + } + } + } +} + +void fn_1_11F60(void) +{ + fn_1_133A4(lbl_1_bss_164[0].unk_14); +} + +s32 fn_1_11F90(s32 arg0, float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M430PlayerBss164Struct *var_r31; + HsfanimStruct01 *var_r30; + s32 var_r29; + ParticleData *var_r28; + ModelData *var_r27; + + for (var_r31 = lbl_1_bss_164, var_r29 = 0; var_r29 < 8; var_r29++, var_r31++) { + if (var_r31->unk_0C == 0) { + break; + } + } + if (var_r29 >= 8) { + return -1; + } + if (arg0 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = arg0; + var_r31->unk_0C = 1; + var_r31->unk_10 = 0; + var_r27 = &Hu3DData[var_r31->unk_04]; + var_r28 = var_r27->unk_120; + var_r28->unk_2C = 1; + for (var_r30 = var_r28->unk_48, var_r29 = 0; var_r29 < var_r28->unk_30; var_r29++, var_r30++) { + var_f30 = (frand() % 30) + 0x4B; + var_f29 = frand() % 360; + var_f27 = sind(var_f30); + var_f28 = cosd(var_f30); + var_f26 = 0.8f + (0.3f * (0.007874016f * (frand() % 255))); + var_f31 = 0.35f; + var_r30->unk08.x = var_f31 * (0.6499999761581421 * (50.0 * (var_f28 * sind(var_f29)))); + var_r30->unk08.y = var_f31 * (50.0f * var_f27 * var_f26); + var_r30->unk08.z = var_f31 * (0.6499999761581421 * (50.0 * (var_f28 * cosd(var_f29)))); + var_r30->unk00 = 0; + var_r30->unk02 = (frand() % 7) + 0xA; + var_r30->unk2C = 45.0f; + var_r30->unk34.x = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk34.y = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk34.z = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk40.r = (frand() % 64) + 0xC0; + var_r30->unk40.g = (frand() % 64) + 0xC0; + var_r30->unk40.b = (frand() % 64) + 0xC0; + var_r30->unk40.a = 0xFF; + } + var_r31->unk_18.x = arg8; + var_r31->unk_18.y = arg9; + var_r31->unk_18.z = argA; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_30.y = var_r31->unk_30.z = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_30.x, var_r31->unk_30.y, var_r31->unk_30.z); +} + +void fn_1_12550(s32 arg0) +{ + M430PlayerBss164Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_164, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { + if (var_r31->unk_0C != 0) { + var_r31->unk_0C = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_125C4(void) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss160Struct), MEMORY_DEFAULT_NUM); + lbl_1_bss_160 = var_r31; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + if (var_r29 == 0) { + var_r31->unk_00 = 0x90; + } + else { + var_r31->unk_00 = 0x1B0; + } + var_r31->unk_04 = 0x198; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_B8 = 0x15; + var_r31->unk_BC = 0; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + switch (var_r30) { + case 0: + case 1: + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x40); + var_r31->unk_28[var_r30][0] = (var_r30 * 0x14) + 0xB; + var_r31->unk_28[var_r30][1] = 0; + var_r31->unk_70[var_r30][0] = var_r31->unk_28[var_r30][0] - var_r31->unk_B8; + var_r31->unk_70[var_r30][1] = var_r31->unk_28[var_r30][1] - var_r31->unk_BC; + break; + case 2: + if (var_r29 == 0) { + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B), 1, 0); + } + else { + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); + } + espPriSet(var_r31->unk_10[var_r30], 0xFF); + var_r31->unk_28[var_r30][0] = 0; + var_r31->unk_28[var_r30][1] = 0; + break; + case 3: + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x100); + espTPLvlSet(var_r31->unk_10[var_r30], 0.6000000238418579); + espColorSet(var_r31->unk_10[var_r30], 0, 0, 0); + var_r31->unk_28[var_r30][0] = 0; + var_r31->unk_28[var_r30][1] = 0; + break; + case 4: + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x08), 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x80); + var_r31->unk_28[var_r30][0] = -0x21; + var_r31->unk_28[var_r30][1] = 0; + break; + case 5: + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M430, 0x28), 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x80); + espZRotSet(var_r31->unk_10[var_r30], 45.0); + var_r31->unk_28[var_r30][0] = -0xA; + var_r31->unk_28[var_r30][1] = 0; + break; + } + espDispOn(var_r31->unk_10[var_r30]); + espDrawNoSet(var_r31->unk_10[var_r30], 0); + espAttrSet(var_r31->unk_10[var_r30], HUSPR_ATTR_NOANIM); + espPosSet(var_r31->unk_10[var_r30], var_r31->unk_00 + var_r31->unk_28[var_r30][0], var_r31->unk_04 + var_r31->unk_28[var_r30][1]); + espBankSet(var_r31->unk_10[var_r30], 0); + } + } + lbl_1_bss_15C = 1; + fn_1_12DF0(0); +} + +void fn_1_129CC(void) +{ + s32 sp8[4]; + float var_f31; + float var_f30; + float var_f29; + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r31 = lbl_1_bss_160, var_r28 = 0; var_r28 < 2; var_r28++, var_r31++) { + var_r29 = lbl_1_bss_174[var_r28].unk_20; + if (lbl_1_bss_15C != 0) { + if (var_r29 != var_r31->unk_08) { + var_r31->unk_08 = var_r29; + var_r31->unk_0C = 0x14; + } + if (var_r31->unk_0C != 0) { + var_f31 = 1.0 + (0.800000011920929 * sind((180.0f * (var_r31->unk_0C / 20.0f)))); + var_r31->unk_0C--; + } + else { + var_f31 = 1.0f; + } + if ((sp8[0] = var_r29 / 10) > 9) { + sp8[0] = 9; + } + var_r29 -= sp8[0] * 0xA; + sp8[1] = var_r29; + if (var_r29 > 9) { + sp8[1] = 9; + } + for (var_r30 = 0; var_r30 < 6; var_r30++) { + if (var_r30 < 2) { + var_f30 = (var_r31->unk_00 + var_r31->unk_B8) + (var_r31->unk_70[var_r30][0] * var_f31); + var_f29 = (var_r31->unk_04 + var_r31->unk_BC) + (var_r31->unk_70[var_r30][1] * var_f31); + espBankSet(var_r31->unk_10[var_r30], sp8[var_r30]); + espScaleSet(var_r31->unk_10[var_r30], var_f31, var_f31); + } + else { + var_f30 = var_r31->unk_00 + var_r31->unk_28[var_r30][0]; + var_f29 = var_r31->unk_04 + var_r31->unk_28[var_r30][1]; + } + if (sp8[var_r30] < 0) { + sp8[var_r30] = 0; + } + espPosSet(var_r31->unk_10[var_r30], var_f30, var_f29); + } + } + } +} + +void fn_1_12D74(void) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = lbl_1_bss_160, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espKill(var_r31->unk_10[var_r30]); + } + } +} + +void fn_1_12DF0(s32 arg0) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_160; + lbl_1_bss_15C = arg0; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + if (arg0 != 0) { + espAttrReset(var_r31->unk_10[var_r30], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(var_r31->unk_10[var_r30], HUSPR_ATTR_DISPOFF); + } + } + } +} + +float fn_1_12EA8(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_12F20(float arg8, float *var_r3, float *var_r4, float *var_r5, float *var_r6) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *var_r6++ = fn_1_12EA8(arg8, *var_r3++, *var_r4++, *var_r5++); + } +} + +float fn_1_1303C(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_13154(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f26; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +void fn_1_133A4(AnimData *arg0) +{ + arg0->useNum = 0; + HuSprAnimKill(arg0); +} + +void fn_1_133DC(Mtx arg0, Vec *arg1) +{ + Vec sp8; + + sp8.x = (arg0[0][2] * arg1->z) + ((arg0[0][0] * arg1->x) + (arg0[0][1] * arg1->y)); + sp8.y = (arg0[1][2] * arg1->z) + ((arg0[1][0] * arg1->x) + (arg0[1][1] * arg1->y)); + sp8.z = (arg0[2][2] * arg1->z) + ((arg0[2][0] * arg1->x) + (arg0[2][1] * arg1->y)); + *arg1 = sp8; +} diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c new file mode 100644 index 00000000..cfb782c7 --- /dev/null +++ b/src/REL/m430Dll/water.c @@ -0,0 +1,1821 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" + +void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, GXBool replace_mode, GXIndTexMtxID matrix_sel); +#endif + +inline double fabs2(double x) +{ + return (double)fabs(x); +} + +typedef struct M430DllUnkStruct2 { + s32 unk_00; + s16 unk_04; + char unk06[2]; + s16 unk_08; + s16 unk_0A; + Vec unk_0C; + Vec unk_18; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; +} M430DllUnkStruct2; /* size 0x3C */ + +typedef struct M430DllWork { + s32 unk_00; + Vec unk_04; + s32 unk_10; + s32 unk_14; + s16 unk_18; + s16 unk_1A; + s16 unk_1C; + s16 unk_1E; + float unk_20; + s16 unk_24[0xC]; + s32 unk_3C; + s16 unk_40[0xA]; + s16 unk_54[0xA]; + s16 unk_68[0xA]; + s32 unk_7C; + s16 unk_80[6]; + s16 unk_8C[6]; + s16 unk_98[6]; + s32 unk_A4[6]; + s32 unk_BC; + M430DllUnkStruct2 *unk_C0; +} M430DllWork; /* size 0xC4 */ + +typedef struct M430DllWork2 { + s16 unk_00; + char unk02[4]; + s16 unk_06; + Vec unk_08; + Vec unk_14; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; +} M430DllWork2; /* size 0x40 */ + +typedef struct M430DllBss60Struct { + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ u32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ Vec *unk_2C; + /* 0x30 */ Vec *unk_30; + /* 0x34 */ void *unk_34; + /* 0x38 */ void *unk_38; + /* 0x3C */ char pad_3C[4]; + /* 0x40 */ s32 unk_40; + /* 0x44 */ Vec *unk_44[2]; + /* 0x4C */ char pad_4C[8]; + /* 0x54 */ GXColor *unk_54[2]; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ void *unk_60; + /* 0x64 */ u32 unk_64; + /* 0x68 */ u32 unk_68; + /* 0x6C */ void *unk_6C; +} M430DllBss60Struct; /* size = 0x70 */ + +void fn_1_4CB4(omObjData *object); +void fn_1_5DF8(omObjData *object); +void fn_1_6180(M430DllWork *arg0); +void fn_1_6540(M430DllWork *arg0); +void fn_1_6754(M430DllWork *arg0); +void fn_1_6DC8(M430DllWork *arg0); +M430DllUnkStruct2 *fn_1_70AC(omObjData *arg0, s32 arg1, s16 arg2); +void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1); +void fn_1_76D8(omObjData *object, M430DllUnkStruct2 *arg1); +void fn_1_7848(omObjData *object); +void fn_1_7CAC(omObjData *object); +void fn_1_7EAC(omObjData *object, M430DllWork2 *arg1); +void fn_1_803C(omObjData *object); +void fn_1_8264(omObjData *object); +void fn_1_82F4(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_8B5C(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_8CE0(ModelData *model, Mtx matrix); +void fn_1_963C(ModelData *model, Mtx matrix, u32 arg2); +void fn_1_9C90(ModelData *model, Mtx matrix); +void fn_1_A3A8(ModelData *model, Mtx matrix); +void fn_1_AB98(ModelData *model, Mtx matrix); +void fn_1_AC84(ModelData *model, Mtx matrix); +void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_B394(ModelData *model, ParticleData *particle, Mtx matrix); +float fn_1_BB54(u32 arg0); + +AnimData *lbl_1_bss_150; +AnimData *lbl_1_bss_14C; +AnimData *lbl_1_bss_148; +AnimData *lbl_1_bss_144; +AnimData *lbl_1_bss_140; +M430DllBss60Struct lbl_1_bss_60[2]; +s32 lbl_1_bss_5C; +omObjData *lbl_1_bss_58; +omObjData *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +float lbl_1_bss_4C; +float lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; + +void fn_1_4A80(Process *process) +{ + omObjData *object; + + lbl_1_bss_150 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x19), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x1A), MEMORY_DEFAULT_NUM)); + lbl_1_bss_148 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x14), MEMORY_DEFAULT_NUM)); + lbl_1_bss_144 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x17), MEMORY_DEFAULT_NUM)); + lbl_1_bss_140 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x18), MEMORY_DEFAULT_NUM)); + object = lbl_1_bss_58 = omAddObjEx(process, 0x1E, 0x68, 0, -1, fn_1_4CB4); + object->work[0] = 0; + object = lbl_1_bss_54 = omAddObjEx(process, 0x1E, 7, 0, -1, fn_1_803C); + object->work[0] = 0; + object = lbl_1_bss_50 = omAddObjEx(process, 0x1E, 0, 0, -1, fn_1_7848); + object->work[0] = 0; + lbl_1_bss_5C = 0; + lbl_1_bss_44 = lbl_1_bss_40 = 0; + lbl_1_bss_4C = lbl_1_bss_48 = 0.0f; +} + +void fn_1_4C48(void) +{ + HuSprAnimKill(lbl_1_bss_150); + HuSprAnimKill(lbl_1_bss_14C); + HuSprAnimKill(lbl_1_bss_148); + HuSprAnimKill(lbl_1_bss_144); + HuSprAnimKill(lbl_1_bss_140); +} + +void fn_1_4CB4(omObjData *object) +{ + s32 var_r31; + M430DllWork *var_r30; + s32 var_r28; + s32 var_r27; + HsfData *var_r26; + s32 var_r25; + M430DllWork *work; + + u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) }; + s32 sp8[1]; + u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), + DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; + u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), + DATA_MAKE_NUM(DATADIR_M430, 0x03) }; + u32 sp70[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x04), DATA_MAKE_NUM(DATADIR_M430, 0x04), 0, 0 }; + u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), + DATA_MAKE_NUM(DATADIR_M430, 0x09) }; + s32 sp50[4]; + s32 sp40[4]; + s32 sp30[4]; + s32 sp20[4]; + s32 sp18[2] = { 1, 2 }; + s32 sp10[2]; + s32 spA0[6] = { 0, 3, 2, 1, 2, 3 }; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, 2 * sizeof(M430DllWork)); + for (var_r30 = work, var_r31 = 0; var_r31 < 2; var_r31++, var_r30++) { + var_r30->unk_00 = var_r31; + var_r30->unk_04.x = var_r30->unk_04.y = var_r30->unk_04.z = 0.0f; + var_r30->unk_3C = 0; + var_r30->unk_7C = 0; + var_r30->unk_BC = 0; + } + var_r30 = work; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + object->model[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x00)); + var_r30[var_r31].unk_18 = object->model[var_r31]; + Hu3DModelLayerSet(var_r30[var_r31].unk_18, 0); + Hu3DModelScaleSet(var_r30[var_r31].unk_18, 1.15f, 1.15f, 1.15f); + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x0A)), 1); + var_r30[var_r31].unk_1A = var_r27; + Hu3DModelLayerSet(var_r27, 1); + *((s16 *)Hu3DData[var_r27].unk_120) = 1; + var_r30[var_r31].unk_1C = Hu3DTexScrollCreate(var_r30[var_r31].unk_18, "pa_sk2"); + var_r30[var_r31].unk_1E = Hu3DTexScrollCreate(var_r30[var_r31].unk_18, "pa_sk3"); + Hu3DTexScrollPosMoveSet(var_r30[var_r31].unk_1C, -0.00009166667f, 0.0f, 0.0f); + Hu3DTexScrollPosMoveSet(var_r30[var_r31].unk_1E, -0.00020000001f, 0.0f, 0.0f); + var_r30[var_r31].unk_20 = 50000.0f; + var_r26 = Hu3DData[var_r30[var_r31].unk_18].hsfData; + for (var_r28 = 0; var_r28 < var_r26->materialCnt; var_r28++) { + var_r26->material[var_r28].flags &= 0xFFFFFDFF; + var_r26->material[var_r28].pass = 1; + var_r26->material[var_r28].invAlpha = 0.001f; + } + } + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x0F)); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelScaleSet(object->model[2], 1.5f, 1.5f, 1.5f); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x10)); + Hu3DModelLayerSet(object->model[3], 2); + Hu3DModelScaleSet(object->model[3], 1.5f, 1.5f, 1.5f); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x15)), 0x64); + object->model[var_r31 + 4] = var_r27; + var_r30[var_r31].unk_10 = var_r27; + Hu3DModelLayerSet(var_r27, 2); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DParticleHookSet(var_r27, fn_1_AD04); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 0; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x15)), 0x64); + object->model[var_r31 + 6] = var_r27; + var_r30[var_r31].unk_14 = var_r27; + Hu3DModelLayerSet(var_r27, 1); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DParticleHookSet(var_r27, fn_1_B394); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp20[var_r31] = Hu3DModelCreateFile(sp90[var_r31]); + } + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + var_r27 = sp20[var_r31 % 4]; + object->model[var_r31 + 8] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x14] = Hu3DModelLink(var_r27); + var_r30[0].unk_24[var_r31] = object->model[var_r31 + 8]; + var_r30[1].unk_24[var_r31] = object->model[var_r31 + 0x14]; + Hu3DModelLayerSet(var_r30[0].unk_24[var_r31], 1); + Hu3DModelLayerSet(var_r30[1].unk_24[var_r31], 1); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp50[var_r31] = Hu3DModelCreateFile(sp80[var_r31]); + sp40[var_r31] = -1; + sp30[var_r31] = -1; + if (sp70[var_r31] != 0) { + sp40[var_r31] = Hu3DModelCreateFile(sp70[var_r31]); + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + s32 sp10[2] = { 0x5C, 0x62 }; + var_r25 = spA0[var_r31]; + var_r27 = sp50[var_r25]; + for (var_r28 = 0; var_r28 < 2; var_r28++) { + object->model[var_r31 + sp10[var_r28]] = Hu3DModelLink(var_r27); + var_r30[var_r28].unk_80[var_r31] = object->model[var_r31 + sp10[var_r28]]; + Hu3DModelLayerSet(var_r30[var_r28].unk_80[var_r31], 1); + } + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r30[var_r28].unk_8C[var_r31] = -1; + var_r30[var_r28].unk_98[var_r31] = -1; + } + if (sp40[var_r25] >= 0) { + var_r27 = sp40[var_r25]; + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r30[var_r28].unk_8C[var_r31] = Hu3DModelLink(var_r27); + Hu3DModelLayerSet(var_r30[var_r28].unk_8C[var_r31], 4); + Hu3DModelAttrSet(var_r30[var_r28].unk_8C[var_r31], HU3D_ATTR_ZWRITE_OFF); + } + } + if (sp60[var_r25] != 0) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(sp60[var_r25]), 1); + var_r30[var_r28].unk_98[var_r31] = var_r27; + Hu3DModelLayerSet(var_r27, 5); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 1; + } + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + sp8[var_r31] = Hu3DModelCreateFile(spC[var_r31]); + } + for (var_r31 = 0; var_r31 < 0x1E; var_r31 += 3) { + var_r27 = sp8[frandmod(1)]; + object->model[var_r31 + 0x20] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x21] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x22] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x3E] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x3F] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x40] = Hu3DModelLink(var_r27); + var_r30->unk_40[var_r31 / 3] = object->model[var_r31 + 0x20]; + var_r30->unk_54[var_r31 / 3] = object->model[var_r31 + 0x21]; + var_r30->unk_68[var_r31 / 3] = object->model[var_r31 + 0x22]; + var_r30[1].unk_40[var_r31 / 3] = object->model[var_r31 + 0x3E]; + var_r30[1].unk_54[var_r31 / 3] = object->model[var_r31 + 0x3F]; + var_r30[1].unk_68[var_r31 / 3] = object->model[var_r31 + 0x40]; + Hu3DModelLayerSet(var_r30->unk_40[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30->unk_54[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30->unk_68[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_40[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_54[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_68[var_r31 / 3], 1); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30[var_r31].unk_C0 = fn_1_70AC(object, var_r31, 8); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelKill(sp20[var_r31]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelKill(sp50[var_r31]); + if (sp40[var_r31] >= 0) { + Hu3DModelKill(sp40[var_r31]); + } + if (sp30[var_r31] >= 0) { + Hu3DModelKill(sp30[var_r31]); + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + Hu3DModelKill(sp8[var_r31]); + } + for (var_r30 = work, var_r31 = 0; var_r31 < 2; var_r31++, var_r30++) { + Hu3DModelCameraSet(var_r30->unk_18, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_1A, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_10, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_14, sp18[var_r31]); + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_24[var_r28], sp18[var_r31]); + } + for (var_r28 = 0; var_r28 < 6; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_80[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_80[var_r28], HU3D_ATTR_DISPOFF); + if (var_r30->unk_8C[var_r28] >= 0) { + Hu3DModelCameraSet(var_r30->unk_8C[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_8C[var_r28], HU3D_ATTR_DISPOFF); + } + if (var_r30->unk_98[var_r28] >= 0) { + Hu3DModelCameraSet(var_r30->unk_98[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_98[var_r28], HU3D_ATTR_DISPOFF); + } + } + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_40[var_r28], sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_54[var_r28], sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_68[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_40[var_r28], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->unk_54[var_r28], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->unk_68[var_r28], HU3D_ATTR_DISPOFF); + } + } + Hu3DModelCameraSet(object->model[2], sp18[0]); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(object->model[3], sp18[0]); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + object->func = fn_1_5DF8; +} + +void fn_1_5DF8(omObjData *object) +{ + M430DllWork *var_r31; + s32 var_r29; + M430DllWork *work; + + work = object->data; + if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { + var_r31 = work; + if ((lbl_1_bss_44 == 0) && (fn_1_4130() < 5.0f)) { + lbl_1_bss_4C = var_r31[0].unk_04.x; + if (lbl_1_bss_4C > var_r31[1].unk_04.x) { + lbl_1_bss_4C = var_r31[1].unk_04.x; + } + lbl_1_bss_44 = 1; + } + if ((lbl_1_bss_40 == 0) && (fn_1_4130() < 1.8f)) { + lbl_1_bss_48 = var_r31[0].unk_04.x; + if (lbl_1_bss_48 > var_r31[1].unk_04.x) { + lbl_1_bss_48 = var_r31[1].unk_04.x; + } + lbl_1_bss_40 = 1; + } + } + for (var_r31 = work, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r31->unk_04.z = var_r31->unk_04.x; + var_r31->unk_04.x = var_r31->unk_04.y; + fn_1_6180(var_r31); + fn_1_6540(var_r31); + fn_1_6DC8(var_r31); + fn_1_6754(var_r31); + fn_1_732C(object, var_r31->unk_C0); + fn_1_76D8(object, var_r31->unk_C0); + if (var_r29 != 0) { + if (fn_1_4030() != 0) { + Hu3DModelCameraSet(var_r31->unk_10, 2); + Hu3DModelCameraSet(var_r31->unk_14, 2); + } + else { + Hu3DModelCameraSet(var_r31->unk_10, 1); + Hu3DModelCameraSet(var_r31->unk_14, 1); + } + } + } + if (lbl_1_bss_5C != 0) { + Vec sp20 = { 0.0f, 3000.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapSet(object->model[2]); + Hu3DModelPosSet(object->model[2], 0.0f, 0.0f, fn_1_7FBC(0) - 400.0f); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[3], 0.0f, 0.0f, fn_1_7FBC(0) - 400.0f); + sp20.z = sp14.z = fn_1_7FBC(0) - 400.0f; + sp20.z += 100.0f; + Hu3DShadowPosSet(&sp20, &sp8, &sp14); + return; + } + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); +} + +void fn_1_6180(M430DllWork *work) +{ + Vec sp28; + Vec sp1C; + Vec sp10; + HsfanimStruct01 *var_r30; + s32 var_r29; + + float sp8[2] = { -450.0f, 450.0f }; + sp1C.x = CenterM[work->unk_00].x; + sp1C.y = CenterM[work->unk_00].y + (CZoomM[work->unk_00] * sind(-CRotM[work->unk_00].x)); + sp1C.z = CenterM[work->unk_00].z + (CZoomM[work->unk_00] * cosd(-CRotM[work->unk_00].x)); + sp28.x = sp1C.x; + sp28.y = 0.0f; + sp28.z = sp1C.z - 450000.0f; + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 6000.0f); + VECAdd(&sp1C, &sp10, &sp28); + Hu3DModelPosSetV(work->unk_18, &sp28); + if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { + if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) { + if (work->unk_20 > 0.0f) { + work->unk_20 = fn_1_7FBC(work->unk_00) - 23000.0f; + } + sp28.x = 0.0f; + sp28.y = 0.0f; + sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 5000.0f); + VECAdd(&sp1C, &sp10, &sp28); + sp28.y += 237.5f; + Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20); + var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; + var_r30->unk34.x = var_r30->unk34.y = var_r30->unk34.z = 0.0f; + var_r30->unk2C = 2000.0f; + var_r29 = var_r30->unk40.a; + var_r29 += 2; + if (var_r29 > 0xFF) { + var_r29 = 0xFF; + } + var_r30->unk40.a = var_r29; + } + } + else { + var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; + var_r30->unk2C = 0.0f; + var_r30->unk40.a = 0; + } + DCStoreRange(var_r30, sizeof(HsfanimStruct01)); +} + +void fn_1_6540(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = 1; + var_f29 = work->unk_04.x; + work->unk_3C = (s32)(fabs2(var_f29) / 1000.0) % 12; + var_r30 = work->unk_3C; + var_f31 = 1000.0f * (s32)(work->unk_04.x / 1000.0f); + var_f30 = 4000.0f; + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + Hu3DModelAttrReset(work->unk_24[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_24[var_r30], 0.0f, 0.0f, var_f31); + var_f31 -= 1000.0f; + var_f30 -= 1000.0f; + if (var_f30 < 0.0f) { + var_r28 = 0; + } + } + else { + Hu3DModelAttrSet(work->unk_24[var_r30], HU3D_ATTR_DISPOFF); + } + var_r30 = (var_r30 + 1) % 12; + } +} + +void fn_1_6754(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + s32 var_r30; + HsfanimStruct01 *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = 1; + { + float sp20[6] = { -1800.0f, 2000.0f, -1800.0f, 2000.0f, -1800.0f, 2000.0f }; + Vec2f sp38[6] = { + { -130.0f, 500.0f }, + { 180.0f, 70.0f }, + { 100.0f, 50.0f }, + { -30.000002f, 500.0f }, + { 100.0f, 50.0f }, + { 180.0f, 70.0f }, + }; + float sp8[6] = { 2750.0f, 1550.0f, 1450.0f, 2750.0f, 1450.0f, 1550.0f }; + if (lbl_1_bss_5C != 0) { + var_r27 = 0; + } + if ((fn_1_4070() == 0) || (fn_1_4030() == 0) || (lbl_1_bss_44 == 0) || !(lbl_1_bss_4C > work->unk_04.x)) { + for (var_r28 = 0; var_r28 < 6; var_r28++) { + work->unk_A4[var_r28] = 1; + } + } + var_f26 = work->unk_04.x; + work->unk_BC = (s32)(fabs2(var_f26) / 5000.0) % 6; + var_r30 = work->unk_BC; + var_f31 = 1000.0f + (5000.0f * (s32)(work->unk_04.x / 5000.0f)); + var_f28 = (1000.0f + work->unk_04.x) - 9000.0f; + var_f27 = (1000.0f + work->unk_04.x) - 20000.0f; + for (var_r28 = 0; var_r28 < 6; var_r28++) { + var_r25 = var_r24 = var_r23 = 1; + if ((var_r27 != 0) && (work->unk_A4[var_r30] != 0)) { + if ((var_f31 > var_f28) || ((work->unk_98[var_r30] >= 0) && (var_f31 > var_f27))) { + if (var_f31 > var_f28) { + Hu3DModelAttrReset(work->unk_80[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_80[var_r30], sp20[var_r30], 0.0f, var_f31); + if (work->unk_8C[var_r30] >= 0) { + Hu3DModelAttrReset(work->unk_8C[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_8C[var_r30], sp20[var_r30], 0.0f, var_f31); + } + var_r25 = var_r24 = 0; + } + if ((work->unk_98[var_r30] >= 0) && (var_f31 > var_f27) && (var_f31 < (1000.0f + var_f28))) { + var_r26 = work->unk_98[var_r30]; + Hu3DModelAttrReset(var_r26, HU3D_ATTR_DISPOFF); + var_r29 = ((ParticleData *)Hu3DData[var_r26].unk_120)->unk_48; + Hu3DModelPosSet(work->unk_98[var_r30], sp20[var_r30] + sp38[var_r30].x, sp38[var_r30].y, var_f31); + var_r29->unk34.x = var_r29->unk34.y = var_r29->unk34.z = 0.0f; + var_r29->unk2C = sp8[var_r30]; + var_r29->unk40.a = -1; + var_f30 = fabs(var_f27 - var_f31); + var_f29 = 1000.0f - (var_f31 - var_f28); + if (var_f30 < 2000.0f) { + var_f30 *= 0.0005f; + var_r29->unk40.a = 255.0f * var_f30; + } + else if (var_f29 < 1000.0f) { + var_f29 *= 0.001f; + var_r29->unk40.a = 255.0f * var_f29; + } + DCStoreRange(var_r29, sizeof(HsfanimStruct01)); + var_r23 = 0; + } + } + } + else { + work->unk_A4[var_r30] = 0; + } + if (var_r25 != 0) { + Hu3DModelAttrSet(work->unk_80[var_r30], HU3D_ATTR_DISPOFF); + } + if ((var_r24 != 0) && (work->unk_8C[var_r30] >= 0)) { + Hu3DModelAttrSet(work->unk_8C[var_r30], HU3D_ATTR_DISPOFF); + } + if ((var_r23 != 0) && (work->unk_98[var_r30] >= 0)) { + Hu3DModelAttrSet(work->unk_98[var_r30], HU3D_ATTR_DISPOFF); + } + var_f31 -= 5000.0f; + if (var_f31 < var_f27) { + var_r27 = 0; + } + var_r30 = (var_r30 + 1) % 6; + } + } +} + +void fn_1_6DC8(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = 1; + if (lbl_1_bss_5C != 0) { + var_r28 = 0; + } + var_f29 = work->unk_04.x; + work->unk_7C = (s32)(fabs2(var_f29) / 1000.0) % 10; + var_r30 = work->unk_7C; + var_f31 = 1000.0f + (1000.0f * (s32)(work->unk_04.x / 1000.0f)); + var_f30 = 8000.0f; + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (var_r28 != 0) { + Hu3DModelAttrReset(work->unk_40[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk_54[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk_68[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_40[var_r30], -920.0f, 0.0f, var_f31); + Hu3DModelPosSet(work->unk_54[var_r30], 0.0f, 0.0f, var_f31); + Hu3DModelPosSet(work->unk_68[var_r30], 920.0f, 0.0f, var_f31); + var_f31 -= 1000.0f; + var_f30 -= 1000.0f; + if (var_f30 < 0.0f) { + var_r28 = 0; + } + } + else { + Hu3DModelAttrSet(work->unk_40[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->unk_54[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->unk_68[var_r30], HU3D_ATTR_DISPOFF); + } + var_r30 = (var_r30 + 1) % 10; + } +} + +M430DllUnkStruct2 *fn_1_70AC(omObjData *arg0, s32 var_r27, s16 var_r28) +{ + float var_f31; + float var_f30; + float var_f29; + M430DllUnkStruct2 *var_r31; + s32 var_r30; + M430DllUnkStruct2 *var_r29; + + u32 sp10[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x11), DATA_MAKE_NUM(DATADIR_M430, 0x12) }; + s32 sp8[2] = { 1, 2 }; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28 * sizeof(M430DllUnkStruct2), MEMORY_DEFAULT_NUM); + memset(var_r29, 0, var_r28 * 0x3C); + var_f31 = -90.0f; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { + var_r31->unk_00 = var_r27; + var_r31->unk_04 = Hu3DModelCreateFile(sp10[var_r30 & 1]); + Hu3DModelLayerSet(var_r31->unk_04, 1); + Hu3DModelCameraSet(var_r31->unk_04, sp8[var_r31->unk_00]); + var_f30 = frandmod(0x168); + var_f29 = frandmod(0x118); + var_r31->unk_0C.x = var_f29 * sind(var_f30) + fn_1_BB54(var_r27); + var_r31->unk_0C.y = var_f31; + var_r31->unk_0C.z = var_f29 * cosd(var_f30); + var_r31->unk_2C = frandmod(0x168); + var_r31->unk_34 = 1.0f; + var_r31->unk_38 = 0.0f; + var_f31 -= 10.0f; + var_r31->unk_0A = var_r28; + } + return var_r29; +} + +void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = arg1->unk_0A; + for (var_r30 = 0; var_r30 < var_r28; var_r30++, arg1++) { + var_r29 = 0; + if (arg1->unk_34 > arg1->unk_38) { + var_r29 = 1; + } + else { + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + var_f31 = VECMag(&sp8); + if (var_f31 < 50.0f) { + var_r29 = 1; + } + } + if (var_r29 != 0) { + var_f31 = frandmod(0x168); + var_f30 = 400.0f + frandmod(0x15E); + arg1->unk_18.x = var_f30 * sind(var_f31) + fn_1_BB54(arg1->unk_00); + arg1->unk_18.z = 2.0 * (var_f30 * cosd(var_f31)); + arg1->unk_18.y = arg1->unk_0C.y; + arg1->unk_34 = 0.0f; + arg1->unk_38 = 200.0f + frandmod(0x258); + arg1->unk_28 = 400.0f; + } + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + arg1->unk_30 = atan2d(sp8.x, sp8.z); + arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f); + arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28); + arg1->unk_24 += 0.2f * (arg1->unk_28 - arg1->unk_24); + arg1->unk_0C.x = arg1->unk_0C.x + ((0.016666668f * arg1->unk_24) * sind(arg1->unk_2C)); + arg1->unk_0C.z = arg1->unk_0C.z + ((0.016666668f * arg1->unk_24) * cosd(arg1->unk_2C)); + arg1->unk_34 += 0.016666668f * arg1->unk_24; + } +} + +void fn_1_76D8(omObjData *object, M430DllUnkStruct2 *arg1) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + + var_r29 = arg1->unk_0A; + if (lbl_1_bss_5C != 0) { + for (var_r30 = 0; var_r30 < var_r29; var_r30++, arg1++) { + Hu3DModelAttrSet(arg1->unk_04, HU3D_ATTR_DISPOFF); + } + return; + } + var_f31 = (s32)(0.00011111111f * (1000.0f + fn_1_7FBC(arg1->unk_00))); + var_f31 = (100.0f * (90.0f * var_f31)) - 5000.0f; + for (var_r30 = 0; var_r30 < var_r29; var_r30++, arg1++) { + Hu3DModelPosSet(arg1->unk_04, arg1->unk_0C.x, arg1->unk_0C.y, arg1->unk_0C.z + var_f31); + Hu3DModelRotSet(arg1->unk_04, 0.0f, arg1->unk_2C, 0.0f); + Hu3DModelAttrReset(arg1->unk_04, HU3D_ATTR_DISPOFF); + } +} + +void fn_1_7848(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M430DllWork2 *var_r31; + s16 var_r30; + s32 var_r29; + M430DllWork2 *work; + s32 var_r26; + + var_r30 = 0x20; + work = HuMemDirectMallocNum(HEAP_SYSTEM, var_r30 * sizeof(M430DllWork2), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, var_r30 * sizeof(M430DllWork2)); + var_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x13)); + var_f29 = 1000.0f; + for (var_r31 = work, var_r29 = 0; var_r29 < var_r30; var_r29++, var_r31++) { + var_r31->unk_00 = Hu3DModelLink(var_r26); + Hu3DModelLayerSet(var_r31->unk_00, 1); + Hu3DModelCameraSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); + var_r31->unk_14.x = (2.8f * frandmod(0x3E8)) - 1400.0f; + var_r31->unk_14.z = 0.7f * frandmod(0x3E8) - 350.0f; + var_r31->unk_14.y = 300.0f + (0.8f * frandmod(0x3E8)); + var_f30 = frandmod(0x168); + var_f31 = 200.0f + frandmod(0xAF); + var_r31->unk_08.x = var_f31 * sind(var_f30); + var_r31->unk_08.y = 0.0f; + var_r31->unk_08.z = var_f31 * cosd(var_f30); + VECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); + var_r31->unk_38 = 60.0f - (0.13483146f * var_f31); + var_r31->unk_28 = frandmod(0x168); + if (frandmod(0x3E8) < 0x1F4) { + var_f28 = -70.0f + (0.1f * frandmod(0x32)); + } + else { + var_f28 = 70.0f - (0.1f * frandmod(0x32)); + } + var_r31->unk_3C = var_f28; + if (var_r31->unk_3C < 0.0f) { + var_r31->unk_38 = -var_r31->unk_38; + } + var_r31->unk_30 = 1.0f; + var_r31->unk_34 = 0.0f; + var_f29 -= 50.0f; + var_r31->unk_06 = var_r30; + } + (void)var_r29; + (void)object; + Hu3DModelKill(var_r26); + object->func = fn_1_7CAC; +} + +void fn_1_7CAC(omObjData *object) +{ + Vec spC; + s32 sp8; + s32 var_r29; + + M430DllWork2 *work = object->data; + s32 var_r28 = work->unk_06; + if (fn_1_4070() >= 4) { + for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) { + sp8 = 0; + VECSubtract(&work->unk_14, &work->unk_08, &spC); + work->unk_2C = atan2d(spC.x, spC.z); + work->unk_28 = fn_1_48B0(work->unk_28, work->unk_2C + work->unk_3C, 0.08f); + work->unk_24 += (0.05f * (600.0f - work->unk_24)); + work->unk_20 += (0.2f * (work->unk_24 - work->unk_20)); + work->unk_08.x += ((0.016666668f * work->unk_20) * sind(work->unk_28)); + work->unk_08.z += ((0.016666668f * work->unk_20) * cosd(work->unk_28)); + work->unk_30 += (0.016666668f * work->unk_20); + } + fn_1_7EAC(object, object->data); + } +} + +void fn_1_7EAC(omObjData *object, M430DllWork2 *var_r31) +{ + Mtx sp8; + float var_f31; + s32 var_r30; + Mtx *var_r29; + s32 var_r28; + + var_r28 = var_r31->unk_06; + var_f31 = fn_1_7FBC(0) - 2000.0f; + for (var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z + var_f31); + var_r29 = &Hu3DData[var_r31->unk_00].unk_F0; + MTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); + MTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); + MTXConcat(*var_r29, sp8, *var_r29); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); + } +} + +float fn_1_7FBC(s32 arg0) +{ + M430DllWork *var_r31; + M430DllWork *var_r30; + + var_r30 = lbl_1_bss_58->data; + arg0 &= 1; + var_r31 = var_r30; + return var_r31[arg0].unk_04.x; +} + +void fn_1_7FFC(s32 arg0, float arg8) +{ + M430DllWork *var_r31; + M430DllWork *var_r30; + + var_r30 = lbl_1_bss_58->data; + arg0 &= 1; + var_r31 = var_r30; + var_r31[arg0].unk_04.y = arg8; +} + +void fn_1_803C(omObjData *var_r31) +{ + var_r31->stat |= 0x100; + omSetStatBit(var_r31, 0xA0); + var_r31->model[0] = Hu3DHookFuncCreate(fn_1_8CE0); + Hu3DModelLayerSet(var_r31->model[0], 4); + Hu3DModelCameraSet(var_r31->model[0], 1); + var_r31->model[1] = Hu3DHookFuncCreate(fn_1_8CE0); + Hu3DModelLayerSet(var_r31->model[1], 4); + Hu3DModelCameraSet(var_r31->model[1], 2); + var_r31->model[2] = Hu3DHookFuncCreate(fn_1_9C90); + Hu3DModelLayerSet(var_r31->model[2], 0); + Hu3DModelCameraSet(var_r31->model[2], 1); + var_r31->model[3] = Hu3DHookFuncCreate(fn_1_9C90); + Hu3DModelLayerSet(var_r31->model[3], 0); + Hu3DModelCameraSet(var_r31->model[3], 2); + var_r31->model[4] = Hu3DHookFuncCreate(fn_1_A3A8); + Hu3DModelLayerSet(var_r31->model[4], 1); + Hu3DModelCameraSet(var_r31->model[4], 3); + var_r31->model[5] = Hu3DHookFuncCreate(fn_1_AB98); + Hu3DModelLayerSet(var_r31->model[5], 3); + Hu3DModelCameraSet(var_r31->model[5], 3); + var_r31->model[6] = Hu3DHookFuncCreate(fn_1_AC84); + Hu3DModelLayerSet(var_r31->model[6], 7); + Hu3DModelCameraSet(var_r31->model[6], 3); + lbl_1_bss_60->unk_00 = 0; + lbl_1_bss_60->unk_04 = var_r31->model[0]; + fn_1_82F4(var_r31, lbl_1_bss_60); + lbl_1_bss_60[1].unk_00 = 1; + lbl_1_bss_60[1].unk_04 = var_r31->model[1]; + fn_1_82F4(var_r31, &lbl_1_bss_60[1]); + var_r31->func = fn_1_8264; +} + +void fn_1_8264(omObjData *object) +{ + lbl_1_bss_60[0].unk_08 = lbl_1_bss_60[1].unk_08 = 0; + lbl_1_bss_60[0].unk_0C = lbl_1_bss_60[1].unk_0C = 0; + lbl_1_bss_60[0].unk_10 = lbl_1_bss_60[1].unk_10 = 0; + lbl_1_bss_60[0].unk_14 = lbl_1_bss_60[1].unk_14 = 0; + lbl_1_bss_60[0].unk_18 = lbl_1_bss_60[1].unk_18 = 0; +} + +void fn_1_82F4(omObjData *object, M430DllBss60Struct *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; + Vec *var_r29; + GXColor *var_r28; + s32 var_r27; + + s32 sp8[8] = { 0, 0x16, 1, 0x17, 1, 0, 0x17, 0x16 }; + + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14A0, MEMORY_DEFAULT_NUM); + var_r31->unk_38 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x6E0, MEMORY_DEFAULT_NUM); + var_r31->unk_40 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_44[var_r30] = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_54[var_r30] = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(GXColor), MEMORY_DEFAULT_NUM); + } + var_r31->unk_5C = 0x12D0; + var_r31->unk_60 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_5C, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r31->unk_60, var_r31->unk_5C); + var_r31->unk_64 = 0; + var_r31->unk_68 = GXGetTexBufferSize(0x140, 0x1E0, 5, 0, 0); + if (var_r31->unk_00 == 0) { + var_r31->unk_68 *= 2; + } + var_r31->unk_6C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_68, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r31->unk_6C, var_r31->unk_68); + var_r31->unk_1C = 0; + var_r31->unk_20 = 0; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r29 = var_r31->unk_2C; + var_f31 = 0.0f; + var_f30 = -2000.0f; + for (var_r30 = 0; var_r30 < 0x14; var_r30++) { + var_f31 = 65.47619f - var_f31; + for (var_r27 = 0; var_r27 < 0x16; var_r27++) { + var_r29->x = ((130.95238f * var_r27) - 1375.0f) + var_f31; + var_r29->y = 0.0f; + var_r29->z = var_f30; + var_r29++; + } + var_f30 += 210.52632f; + } + memset(var_r31->unk_30, 0, 0x1B8 * sizeof(Vec)); + for (var_r29 = var_r31->unk_30, var_r30 = 0; var_r30 < 0x1B8; var_r30++, var_r29++) { + var_r29->y = (0.05f * frandmod(0x3E8)) - 20.0f; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + memcpy(var_r31->unk_44[var_r30], var_r31->unk_2C, 0x1B8 * sizeof(Vec)); + for (var_r28 = var_r31->unk_54[var_r30], var_r27 = 0; var_r27 < 0x1B8; var_r27++, var_r28++) { + var_r28->r = 0x32; + var_r28->g = 0x8C; + var_r28->b = 0xB4; + var_r28->a = 0; + } + } + fn_1_86B4(object, var_r31); + fn_1_8B5C(object, var_r31); +} + +void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + GXColor *var_r30; + s32 var_r29; + Vec *var_r28; + Vec *var_r27; + Vec *var_r26; + u32 var_r25; + s32 var_r24; + s32 var_r23; + M430DllWork *var_r22; + M430DllWork *var_r21; + + if (omPauseChk() == 0) { + arg1->unk_1C++; + } + arg1->unk_40 = 1 - arg1->unk_40; + var_r25 = arg1->unk_00; + var_r21 = lbl_1_bss_58->data; + var_r25 &= 1; + var_r22 = var_r21; + var_f29 = var_r22[var_r25].unk_04.x; + var_f28 = var_f29; + var_f30 = var_f28; + var_r24 = 0.002375f * var_f30; + arg1->unk_28 = 421.05264f * var_r24; + arg1->unk_24 = var_f30 - arg1->unk_28; + arg1->unk_20 = (var_r24 * 2) % 20; + var_r23 = (arg1->unk_20 + 0x14) % 20; + Hu3DModelPosSet(arg1->unk_04, fn_1_BB54(arg1->unk_00), 0.0f, arg1->unk_28 - 500.0f); + var_r28 = arg1->unk_2C; + var_r30 = arg1->unk_54[arg1->unk_40]; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 2000.0f + arg1->unk_24; + if (lbl_1_bss_5C != 0) { + for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); + if (var_f31 < 0.3f) { + var_r30->a = -1; + } + else if (var_f31 > 0.75f) { + var_r30->a = 0; + } + else { + var_f31 = 255.0f - (566.6667f * (var_f31 - 0.3f)); + var_r30->a = var_f31; + } + var_r28++; + var_r30++; + } + } + else { + for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); + if (var_f31 < 0.25f) { + var_r30->a = -0x1A; + } + else if (var_f31 > 0.85f) { + var_r30->a = 0; + } + else { + var_f31 = 230.0f - (383.3333f * (var_f31 - 0.25f)); + var_r30->a = var_f31; + } + var_r28++; + var_r30++; + } + } + if (lbl_1_bss_5C != 0) { + memcpy(arg1->unk_44[arg1->unk_40], arg1->unk_2C, 0x1B8 * sizeof(Vec)); + } + else { + var_r28 = arg1->unk_2C; + var_r26 = arg1->unk_44[arg1->unk_40]; + var_r29 = (0x14 - var_r23) * 0x16; + var_r27 = &arg1->unk_30[0x1B8 - var_r29]; + while (var_r29-- != 0) { + VECAdd(var_r28, var_r27, var_r26); + var_r28++; + var_r27++; + var_r26++; + } + var_r29 = var_r23 * 0x16; + var_r27 = arg1->unk_30; + while (var_r29-- != 0) { + VECAdd(var_r28, var_r27, var_r26); + var_r28++; + var_r27++; + var_r26++; + } + memcpy(arg1->unk_44[arg1->unk_40], arg1->unk_2C, 0x16 * sizeof(Vec)); + } + DCStoreRangeNoSync(arg1->unk_44[arg1->unk_40], 0x1B8 * sizeof(Vec)); + DCStoreRangeNoSync(arg1->unk_54[arg1->unk_40], 0x1B8 * sizeof(GXColor)); + PPCSync(); +} + +void fn_1_8B5C(omObjData *object, M430DllBss60Struct *var_r30) +{ + s32 var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + s32 sp28[5] = { 0, 0, 0, 1, 1 }; + s32 sp18[4] = { 1, 0, 0, 0 }; + s32 sp8[4] = { 0, 0, 1, 2 }; + GXBeginDisplayList(var_r30->unk_60, var_r30->unk_5C); + var_r26 = 0; + var_r31 = 0; + for (var_r29 = 0; var_r29 < 0x13; var_r29++) { + var_r24 = 0x2B - (((var_r26 * 2) + sp8[var_r31]) * 2); + var_r27 = sp18[var_r31]; + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, var_r24); + for (var_r28 = 0; var_r28 < var_r24; var_r28++) { + var_r25 = (var_r28 >> 1) + ((var_r29 + var_r27) * 0x16) + (var_r26 + sp28[var_r31 + var_r27]); + GXUnknownu16(var_r25); + GXUnknownu16(var_r25); + var_r27 = 1 - var_r27; + } + var_r31++; + if (var_r31 >= 4) { + var_r31 = 0; + var_r26++; + } + } + var_r30->unk_64 = GXEndDisplayList(); +} + +void fn_1_8CE0(ModelData *model, Mtx matrix) +{ + Mtx sp194; + Mtx sp164; + Mtx sp134; + Mtx sp104; + Mtx spD4; + Mtx spA4; + Mtx sp74; + Mtx sp44; + GXTexObj sp24; + float var_f31; + float var_f30; + M430DllBss60Struct *var_r31; + + GXColor sp20 = { 0xFF, 0xFF, 0xFF, 0xFF }; + GXColor sp1C = { 0x08, 0x08, 0x08, 0xFF }; + GXColor sp18 = { 0x00, 0x00, 0x00, 0x80 }; + GXColor sp14 = { 0xCC, 0xBF, 0xB2, 0x33 }; + GXColor sp10 = { 0xE0, 0xD8, 0xF4, 0x08 }; + var_r31 = lbl_1_bss_60; + if (var_r31->unk_10 != 0) { + var_r31 = &var_r31[1]; + } + var_r31->unk_10 = 1; + fn_1_963C(model, matrix, var_r31->unk_00); + MTXCopy(matrix, sp134); + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31->unk_00); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + MTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); + MTXConcat(sp134, sp164, sp134); + MTXScale(sp194, var_f30, 1.0f, 1.0f); + MTXConcat(sp134, sp194, sp134); + GXLoadPosMtxImm(sp134, 0); + MTXInvXpose(sp134, sp194); + GXLoadNrmMtxImm(sp194, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if ((fn_1_4030() == 0) && (var_r31->unk_00 == 0)) { + GXInitTexObj(&sp24, var_r31->unk_6C, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + else { + GXInitTexObj(&sp24, var_r31->unk_6C, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + GXInitTexObjLOD(&sp24, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp24, GX_TEXMAP0); + HuSprTexLoad(lbl_1_bss_150, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 2, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(3); + if (fn_1_4030() != 0) { + C_MTXLightPerspective(sp104, 41.5f, 0.6f, 0.5f, -0.5f, 0.5f, 0.5f); + } + else { + C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + } + MTXInverse(Hu3DCameraMtx, spD4); + MTXConcat(spD4, sp134, spD4); + MTXConcat(sp104, Hu3DCameraMtx, spA4); + MTXConcat(spA4, spD4, spD4); + GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp74); + MTXConcat(sp74, sp134, sp74); + MTXConcat(sp104, Hu3DCameraMtx, sp44); + MTXConcat(sp44, sp74, sp74); + GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D); + MTXRotRad(sp164, 0x58, 1.5707964f); + var_f31 = 0.00075f * var_f30; + MTXScale(sp194, var_f31, -0.003f, 0.00075f); + MTXConcat(sp164, sp194, sp164); + MTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); + MTXConcat(sp164, sp194, sp164); + sp164[0][1] = -0.001f; + GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + GXSetNumIndStages(2); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + MTXScale(sp164, -0.25f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4); + GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2); + MTXScale(sp164, 0.4f, 0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1); + GXSetNumTevStages(2); + GXSetTevColor(GX_TEVREG0, sp14); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_RASA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_ZERO, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD2, GX_TEXMAP2, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(1, GX_LEQUAL, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], sizeof(Vec)); + GXSetArray(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], sizeof(GXColor)); + GXSetCullMode(GX_CULL_NONE); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_64); + GXSetCullMode(GX_CULL_BACK); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +Vec lbl_1_data_60[6] = { + { -2750.0f, 0.0f, -2500.0f }, + { 2750.0f, 0.0f, -2500.0f }, + { -2750.0f, 0.0f, 0.0f }, + { 2750.0f, 0.0f, 0.0f }, + { -1375.0f, 0.0f, 2500.0f }, + { 1375.0f, 0.0f, 2500.0f }, +}; +GXColor lbl_1_data_A8[6] = { + { 5, 0x38, 0xA2, 0 }, + { 5, 0x38, 0xA2, 0xFF }, + { 0x14, 0x54, 0xAB, 0xFF }, + { 0x1E, 0x6D, 0xB0, 0xFF }, + { 0x2A, 0x7E, 0xB4, 0xFF }, + { 0x32, 0x8C, 0xB4, 0xFF }, +}; + +void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) +{ + Mtx sp100; + Mtx spD0; + Mtx spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + float var_f31; + float var_f30; + + GXColor spC = { 0x32, 0x8C, 0xB4, 0x33 }; + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + MTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); + MTXScale(sp100, var_f30, 1.0f, 1.0f); + MTXConcat(spD0, sp100, spD0); + MTXConcat(Hu3DCameraMtx, spD0, spA0); + GXLoadPosMtxImm(spA0, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_14C, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp40); + MTXConcat(sp40, spA0, sp40); + MTXConcat(sp70, Hu3DCameraMtx, sp10); + MTXConcat(sp10, sp40, sp40); + GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + MTXRotRad(spD0, 0x58, 1.5707964f); + var_f31 = 0.00075f * var_f30; + MTXScale(sp100, var_f31, -0.003f, 0.00075f); + MTXConcat(spD0, sp100, spD0); + MTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, + 0.3f * (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + MTXConcat(spD0, sp100, spD0); + GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + MTXScale(spD0, 0.5f, 0.6f, 0.6f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_60, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, sizeof(GXColor)); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(3); + GXPosition1x8(1); + GXColor1x8(3); + GXPosition1x8(2); + GXColor1x8(4); + GXPosition1x8(3); + GXColor1x8(4); + GXPosition1x8(4); + GXColor1x8(5); + GXPosition1x8(5); + GXColor1x8(5); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +Vec lbl_1_data_C0[8] = { + { -2750.0f, 20.0f, 0.0f }, + { 2750.0f, 20.0f, 0.0f }, + { -2750.0f, -20.0f, 0.0f }, + { 2750.0f, -20.0f, 0.0f }, + { -2750.0f, -160.0f, 0.0f }, + { 2750.0f, -160.0f, 0.0f }, + { -2750.0f, -340.0f, 0.0f }, + { 2750.0f, -340.0f, 0.0f }, +}; +Vec lbl_1_data_120[6] = { + { -700.0f, 0.0f, -1750.0f }, + { 700.0f, 0.0f, -1750.0f }, + { -700.0f, 0.0f, -1400.0f }, + { 700.0f, 0.0f, -1400.0f }, + { -700.0f, 0.0f, 700.0f }, + { 700.0f, 0.0f, 700.0f }, +}; + +void fn_1_9C90(ModelData *model, Mtx matrix) +{ + Mtx sp124; + Mtx spF4; + Mtx spC4; + Mtx sp94; + Mtx sp64; + Mtx sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + + GXColor spC = { 0x32, 0x8C, 0xB4, 0x33 }; + var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_14 != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_14 = 1; + sp1C.x = CenterM[var_r31].x; + sp1C.y = CenterM[var_r31].y + (CZoomM[var_r31] * sind(-CRotM[var_r31].x)); + sp1C.z = CenterM[var_r31].z + (CZoomM[var_r31] * cosd(-CRotM[var_r31].x)); + sp28.x = sp1C.x; + sp28.y = 0.0f; + sp28.z = sp1C.z - 450000.0f; + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 8000.0f); + VECAdd(&sp1C, &sp10, &sp28); + MTXTrans(spF4, sp28.x, sp28.y, sp28.z); + var_f31 = 1.0f; + if (fn_1_4030() == 0) { + var_f31 = 1.5f; + MTXScale(sp124, var_f31, 1.0f, 1.0f); + MTXConcat(spF4, sp124, spF4); + } + MTXConcat(Hu3DCameraMtx, spF4, spC4); + GXLoadPosMtxImm(spC4, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_14C, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp64); + MTXConcat(sp64, spC4, sp64); + MTXConcat(sp94, Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp64); + GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + var_f30 = 0.00075f * var_f31; + MTXScale(spF4, var_f30, -0.005f, 0.00075f); + MTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), + 0.03f * -(lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24), 0.0f); + MTXConcat(spF4, sp124, spF4); + GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + MTXScale(spF4, 0.5f, 0.6f, 0.6f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_C0, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, 4); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + for (var_r30 = 0; var_r30 < 8; var_r30++) { + GXPosition1x8(var_r30); + GXColor1x8(var_r30 >> 1); + } + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +GXColor lbl_1_data_168[2] = { { 0xFF, 0xFF, 0xFF, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } }; + +void fn_1_A3A8(ModelData *model, Mtx matrix) +{ + Mtx sp48; + Mtx sp18; + float var_f31; + float var_f30; + u8 *var_r30; + u8 *var_r29; + + GXColor sp14 = { 0xFF, 0xA5, 0x59, 0xB2 }; + GXColor sp10 = { 0x99, 0x72, 0x59, 0xB2 }; + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_0C != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_0C = 1; + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + if (lbl_1_bss_5C != 0) { + MTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + GXSetTevColor(GX_TEVREG0, sp10); + } + else { + MTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + GXSetTevColor(GX_TEVREG0, sp14); + } + MTXScale(sp48, var_f30, 1.0f, 1.0f); + MTXConcat(sp18, sp48, sp18); + MTXConcat(Hu3DCameraMtx, sp18, sp18); + GXLoadPosMtxImm(sp18, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + MTXRotRad(sp18, 0x58, 1.5707964f); + var_f31 = 0.004f * var_f30; + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, + (1.2499999f * (lbl_1_bss_60[var_r31].unk_1C % 400)) + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + MTXConcat(sp18, sp48, sp18); + GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + MTXRotRad(sp18, 0x58, 1.5707964f); + var_f31 = 0.004f * var_f30; + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + MTXConcat(sp18, sp48, sp18); + GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_120, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_168, 4); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(0); + GXPosition1x8(1); + GXColor1x8(0); + GXPosition1x8(2); + GXColor1x8(1); + GXPosition1x8(3); + GXColor1x8(1); + GXPosition1x8(4); + GXColor1x8(1); + GXPosition1x8(5); + GXColor1x8(1); +} + +void fn_1_AB98(ModelData *model, Mtx matrix) +{ + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_08 != 0) { + var_r31++; + } + if ((fn_1_4030() == 0) && (var_r31 == 0)) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + } + else { + GXSetTexCopySrc(var_r31 * 0x140, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + GXCopyTex(lbl_1_bss_60[var_r31].unk_6C, 0); + GXPixModeSync(); + lbl_1_bss_60[var_r31].unk_08 = 1; +} + +void fn_1_AC84(ModelData *model, Mtx matrix) +{ + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_18 != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_18 = 1; + fn_1_86B4(lbl_1_bss_54, &lbl_1_bss_60[var_r31]); +} + +void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + if ((particle->unk_00 == 0) || (lbl_1_bss_5C != 0)) { + particle->unk_00++; + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + return; + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); + if (var_r31->unk00 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + var_r31->unk2C += 1.5f; + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9) +{ + Vec sp10; + float var_f31; + float var_f30; + float var_f28; + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M430DllWork *var_r28; + u32 var_r27; + void *var_r26; + + var_r26 = lbl_1_bss_58->data; + var_r28 = var_r26; + var_r30 = Hu3DData[var_r28[arg0].unk_10].unk_120; + if (var_r30->unk_00 != 0) { + var_r31 = var_r30->unk_48; + if (!(frandmod(0x3E8) > (1200.0f * arg9))) { + var_r27 = 1; + var_f28 = 30.0f; + for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); + var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; + var_f30 = arg8 + (var_f30 * var_f28); + sp10.x = sind(var_f30); + sp10.y = 0.0f; + sp10.z = cosd(var_f30); + var_r31->unk34 = *arg1; + var_r31->unk34.y = -20.0f; + var_f31 = 5.0f + arg9 * (1.6666667f * (2.0f * (0.001f * frandmod(0x3E8)))); + var_r31->unk08.x = sp10.x * var_f31; + var_r31->unk08.y = -0.2f * var_f31; + var_r31->unk08.z = sp10.z * var_f31; + var_f31 = 0.001f * frandmod(0x3E8); + var_f31 += (1.0f - var_f31) * (0.5f * arg9); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 80.0f + frandmod(0x46); + var_r31->unk40.a = frandmod(0x64) + 0x64; + var_r31->unk40.r = 150.0f + (95.0f * var_f31); + var_r31->unk40.g = 160.0f + (80.0f * var_f31); + var_r31->unk40.b = 166.0f + (60.0f * var_f31); + if (--var_r27 == 0) { + break; + } + } + } + } + } +} + +void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + if ((var_r30->unk_00 == 0) || (lbl_1_bss_5C != 0)) { + var_r30->unk_00++; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + return; + } + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + var_r31->unk00--; + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk2C += 0.5f; + if (var_r31->unk00 < 30.0) { + var_r31->unk40.a = 0.98f * var_r31->unk40.a; + } + if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00 == 0)) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) +{ + Vec sp28; + Vec sp1C; + s32 sp18; + float var_f31; + float var_f30; + float var_f28; + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M430DllWork *var_r28; + u32 var_r27; + M430DllWork *var_r26; + + var_r26 = lbl_1_bss_58->data; + { + float sp14[2] = { -100.0f, 100.0f }; + var_r28 = var_r26; + var_r30 = Hu3DData[var_r28[arg0].unk_14].unk_120; + if (var_r30->unk_00 != 0) { + var_r31 = var_r30->unk_48; + if (!(frandmod(0x3E8) > (1000.0f * arg9))) { + var_r27 = 2; + var_f28 = 40.0f; + VECScale(arg2, &sp1C, 0.2f); + sp1C.x = 0.0f; + for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); + var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; + var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28); + sp28.x = sind(var_f30); + sp28.y = 0.0f; + sp28.z = cosd(var_f30); + var_r31->unk34 = *arg1; + var_r31->unk34.x = var_r31->unk34.x + ((0.05f * frandmod(0x3E8)) - 25.0f); + var_r31->unk34.z = var_r31->unk34.z + ((0.05f * frandmod(0x3E8)) - 25.0f); + var_r31->unk34.y = 40.0f; + var_f31 = 1.6666667f + (arg9 * (0.0016666667f * frandmod(0x3E8))); + var_r31->unk08.x = sp28.x * var_f31; + var_r31->unk08.z = sp28.z * var_f31; + var_r31->unk08.y = 0.0f; + VECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); + var_f31 = 0.001f * frandmod(0x3E8); + var_f31 += (1.0f - var_f31) * (0.3f * arg9); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 60.0f + frandmod(0x50); + var_r31->unk40.a = (60.0f * arg9) + frandmod(0x50); + var_r31->unk40.r = 150.0f + (95.0f * var_f31); + var_r31->unk40.g = 160.0f + (80.0f * var_f31); + var_r31->unk40.b = 166.0f + (60.0f * var_f31); + if (--var_r27 == 0) { + break; + } + } + } + } + } + } +} + +float fn_1_BB54(u32 arg0) +{ + float sp8[2] = { -450.0f, 450.0f }; + + return sp8[arg0 & 1]; +} + +float fn_1_BB88(void) +{ + return 0.0f; +} + +void fn_1_BB98(u32 arg0) +{ + lbl_1_bss_5C = 0; + if (arg0 != 0) { + lbl_1_bss_5C = 1; + } +} diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 9ef89c53..4aec497d 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -15,6 +15,7 @@ #include "ext_math.h" #include "REL/m431Dll.h" +#include "version.h" typedef struct bss_5C_struct { s16 unk0[6]; @@ -167,8 +168,8 @@ u8 fn_1_57C(void) temp_r31 = &lbl_1_data_4C[0]; temp_r30 = 0; lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8 / 90.0f; - if (lbl_1_bss_8 > 90) { + temp_f30 = lbl_1_bss_8 / (1.5f * REFRESH_RATE); + if (lbl_1_bss_8 > (s32)(1.5f * REFRESH_RATE)) { lbl_1_bss_8 = 0; temp_f30 = 1; temp_r30 = 1; @@ -210,9 +211,9 @@ s32 fn_1_7B0(void) temp_r31 = &lbl_1_data_4C[0]; temp_r29 = 0; lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8 / 120.0f; - if (lbl_1_bss_8 > 120) { - lbl_1_bss_8 = 120; + temp_f30 = lbl_1_bss_8 / (2.0f * REFRESH_RATE); + if (lbl_1_bss_8 > (2 * REFRESH_RATE)) { + lbl_1_bss_8 = 2 * REFRESH_RATE; temp_f30 = 1; temp_r29 = 1; } @@ -258,7 +259,7 @@ void fn_1_A44(omObjData *object) temp_r26 = object->data; temp_r26->unk0 = 4; temp_r26->unk6[0] = 0; - temp_r26->unkA = 900; + temp_r26->unkA = 15 * REFRESH_RATE; temp_r26->unk10 = -1; temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM)); object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); @@ -365,7 +366,7 @@ void fn_1_10A4(omObjData *object) case 12: if (temp_r31->unk10 != -1) { - temp_r28 = (temp_r31->unkA + 59) / 60; + temp_r28 = (temp_r31->unkA + REFRESH_RATE - 1) / REFRESH_RATE; if (temp_r28 < 0) { temp_r28 = 0; } @@ -426,7 +427,7 @@ void fn_1_10A4(omObjData *object) break; case 20: - if (++lbl_1_bss_C > 210.0f) { + if (++lbl_1_bss_C > (3.5f * REFRESH_RATE)) { lbl_1_bss_0 = 1; } break; @@ -442,11 +443,11 @@ void fn_1_140C(omObjData *object) return; } temp_r31->unk12++; - temp_f31 = temp_r31->unk12 / 18.0f; - if (temp_r31->unk12 > 18.0f) { + temp_f31 = temp_r31->unk12 / (3.0f / 10 * REFRESH_RATE); + if (temp_r31->unk12 > (3.0f / 10 * REFRESH_RATE)) { temp_r31->unk12 = 0; temp_f31 = 1.0f; - temp_r31->unk12 = 18; + temp_r31->unk12 = 0.3f * REFRESH_RATE; temp_r31->unk0 &= ~0x300; } temp_f30 = 1.0 - cosd(90.0f * temp_f31); @@ -848,9 +849,9 @@ void fn_1_2C94(Work2110 *arg0) HuAudFXPlay(1670); } lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10 / 60.0f; + temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE); if (temp_f31 >= 1.0f) { - temp_r26->unkA = 900; + temp_r26->unkA = 15 * REFRESH_RATE; lbl_1_bss_10 = 0; temp_f31 = 1; lbl_1_data_162++; @@ -870,7 +871,7 @@ void fn_1_2C94(Work2110 *arg0) HuAudFXPlay(1663); } lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10 / 60.0f; + temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE); if (temp_f31 >= 1.0f) { lbl_1_bss_10 = 0; temp_f31 = 1.0f; @@ -912,7 +913,7 @@ void fn_1_30E0(Work2110 *arg0) switch (lbl_1_data_162) { case 0: lbl_1_bss_10++; - if (lbl_1_bss_10 > 60) { + if (lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = 0; lbl_1_data_162++; } @@ -945,7 +946,7 @@ void fn_1_30E0(Work2110 *arg0) temp_r31 = &arg0[0].unk4[temp_r28]; switch (temp_r22 = temp_r31->unk0 & 0x1C) { case 4: - if (sp8[temp_r27] > 15) { + if (sp8[temp_r27] > (VERSION_NTSC ? 15 : 12)) { sp8[temp_r27] = 0; temp_r25 = 1; if (temp_r29 - 1 > -6) { @@ -969,7 +970,7 @@ void fn_1_30E0(Work2110 *arg0) temp_f31 = 50.0f; temp_r31->unk0 &= ~0x1C; if (temp_r22 == 8) { - temp_r31->unk20 = 6; + temp_r31->unk20 = 6.0f; temp_r31->unk0 |= 12; HuAudFXPlay(1664); } @@ -1020,7 +1021,7 @@ void fn_1_3540(Work2110 *arg0) temp_f31 += temp_r29 * 36.0f; lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31; lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31; - lbl_1_bss_14 = (0.01f * temp_f31) * 60; + lbl_1_bss_14 = (0.01f * temp_f31) * REFRESH_RATE; lbl_1_data_162++; lbl_1_data_164 = HuAudFXPlay(1665); break; @@ -1119,7 +1120,7 @@ void fn_1_3D7C(Work2110 *arg0) s16 temp_r27; switch (lbl_1_data_162) { case 0: - if (++lbl_1_bss_10 > 60) { + if (++lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = 0; lbl_1_data_162++; } @@ -1151,7 +1152,7 @@ void fn_1_3D7C(Work2110 *arg0) break; case 2: - if (++lbl_1_bss_10 > 60) { + if (++lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = lbl_1_data_162 = 0; fn_1_2050(224, 32); } @@ -1235,7 +1236,7 @@ void fn_1_4028(Work2110 *arg0) break; case 2: - if (++lbl_1_bss_10 > 90.0f) { + if (++lbl_1_bss_10 > (1.5f * REFRESH_RATE)) { lbl_1_bss_10 = 0; lbl_1_data_162 = 1; fn_1_2050(224, 128); @@ -1250,7 +1251,7 @@ void fn_1_4028(Work2110 *arg0) } if (temp_r31->unk0 & 0x2) { temp_r31->unk18++; - temp_f31 = temp_r31->unk18 / 30.0f; + temp_f31 = temp_r31->unk18 / (0.5f * REFRESH_RATE); if (temp_f31 >= 1.0f) { temp_r31->unk20 -= 1.0f; if (temp_r31->unk20 < 0.4f) { @@ -1264,16 +1265,16 @@ void fn_1_4028(Work2110 *arg0) } else { if (!temp_r31->unk20) { - if (++temp_r31->unk18 > 30.0f) { + if (++temp_r31->unk18 > (0.5f * REFRESH_RATE)) { temp_r31->unk20 = 1; temp_r31->unk18 = 0; } } else { temp_r31->unk18++; - temp_f31 = temp_r31->unk18 / 54.0f; + temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f); if (temp_f31 >= 1.0f) { - temp_r31->unk18 = 54; + temp_r31->unk18 = VERSION_NTSC ? 54 : 45; temp_f31 = 1.0f; } temp_f31 = cosd(temp_f31 * 90.0f); @@ -1594,7 +1595,7 @@ void fn_1_5708(void) Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, HU3D_MOTATTR_LOOP); } else { - if (temp_r29->unkA < 180) { + if (temp_r29->unkA < (3 * REFRESH_RATE)) { temp_r31->unk12 = 0; temp_r31->unk10 = 5; } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 4bd1247c..aaa65ed0 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -13,6 +13,7 @@ #include "REL/m431Dll.h" #include "ext_math.h" +#include "version.h" typedef struct bss_struct_62C { u8 unk0; @@ -319,7 +320,7 @@ void fn_1_8790(omObjData *object) } } if (temp_r31->unk7C && temp_r28 == temp_r31->unk6E - 1) { - if (++temp_r31->unk7C > 120) { + if (++temp_r31->unk7C > 2 * REFRESH_RATE) { temp_r31->unk7C = 0; } if ((temp_r31->unk14->unk0 & 0xC0) == 0x40) { @@ -704,6 +705,12 @@ void fn_1_98D4(omObjData *object) Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); } +#if VERSION_NTSC +#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) +#else +#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 >= 14.0f && temp_r31->unk3C_pal == 0) +#endif + void fn_1_9A04(omObjData *object) { Bss61CWork *temp_r31; @@ -725,12 +732,18 @@ void fn_1_9A04(omObjData *object) if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) { fn_1_B0E8(object, 3, 4); fn_1_B130(object, 0, 8); +#if VERSION_PAL + temp_r31->unk3C_pal = 0; +#endif } } } else { if (temp_r31->unk38 == 3) { - if (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) { + if (fn_1_9A04_CHECK) { +#if VERSION_PAL + temp_r31->unk3C_pal = 1; +#endif temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E); if (temp_r31->unk5C != -1) { if (temp_r31->unkA == 0) { @@ -742,18 +755,18 @@ void fn_1_9A04(omObjData *object) if (temp_r31->unk7E != 0) { omVibrate(temp_r31->unk4, 12, 6, 6); if (temp_r31->unkA == 0) { - fn_1_B494(1666, 30); + fn_1_B494(1666, 0.5f * REFRESH_RATE); } else { - fn_1_B494(1671, 30); + fn_1_B494(1671, 0.5f * REFRESH_RATE); } } else { if (temp_r31->unkA == 0) { - fn_1_B494(1667, 30); + fn_1_B494(1667, 0.5f * REFRESH_RATE); } else { - fn_1_B494(1672, 30); + fn_1_B494(1672, 0.5f * REFRESH_RATE); } } temp_r31->unk70++; @@ -891,6 +904,9 @@ void fn_1_A0F8(omObjData *object) if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) { fn_1_B0E8(object, 3, 4); fn_1_B130(object, 0, 8); +#if VERSION_PAL + temp_r31->unk3C_pal = 0; +#endif temp_r27 = 1; } if (temp_r27 == 0) { diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index a1b6da31..038512c9 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -26,6 +26,7 @@ #include "ext_math.h" #include "string.h" +#include "version.h" #ifndef __MWERKS__ #include "game/audio.h" @@ -76,6 +77,12 @@ float lbl_1_bss_568; s32 lbl_1_bss_528[16]; UnkBss428Struct lbl_1_bss_428[32]; +#if VERSION_NTSC +#define _1606_BY_REFRESH_RATE 26.766666f +#else +#define _1606_BY_REFRESH_RATE 32.120003f +#endif + void fn_1_0(void) { lbl_1_bss_5D0.unk04 = NULL; @@ -234,20 +241,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -738,7 +745,7 @@ void fn_1_2E34(WorkPlayerOld *player) player->unk_3C |= 0x100; player->unk_A4 = 0; if (!(player2->unk_3C & 0x100)) { - player->unk_84.y = 26.766666f; + player->unk_84.y = _1606_BY_REFRESH_RATE; } } if (state == 3) { @@ -842,7 +849,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - fn_1_2BD0(player, 26.766666f, 1); + fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -857,14 +864,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) player->unk_A4 = 0; } else { - player->unk_84.y += 3.65f; + player->unk_84.y += 219.0f / REFRESH_RATE; } } else { player->unk_A4 = 0; } } - player->unk_84.y += -2.4333334f; + player->unk_84.y += -146.0f / REFRESH_RATE; if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { player->unk_38 = 3; player->unk_84.y = 0; @@ -1317,7 +1324,7 @@ void fn_1_52B8(UnkM432DllBss0SubStruct *arg0, Vec *arg1) void fn_1_5364(s32 arg0, omObjData *object) { if (lbl_1_bss_0[arg0].unk_1D8 >= 0) { - lbl_1_bss_0[arg0].unk_1DC -= 0.016666668f; + lbl_1_bss_0[arg0].unk_1DC -= 1.0f / REFRESH_RATE; if (0.0f >= lbl_1_bss_0[arg0].unk_1DC) { HuAudFXStop(lbl_1_bss_0[arg0].unk_1D8); lbl_1_bss_0[arg0].unk_1D8 = -1; @@ -2241,7 +2248,7 @@ void fn_1_B234(void) u32 var_r28; if (HuPadBtn[0] & 2) { - lbl_1_bss_57C = 0x4650; + lbl_1_bss_57C = 300 * REFRESH_RATE; } print8(0x18, 0x20, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_580, lbl_1_bss_41C->work[0], lbl_1_bss_576); print8(0x18, 0x30, 1.5f, "%f %f %f %f", lbl_1_bss_0[0].unk_64, lbl_1_bss_0[0].unk_68, lbl_1_bss_0[0].unk_6C, lbl_1_bss_0[0].unk_28.z); @@ -2487,7 +2494,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24 var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; fn_1_BF9C(var_r31); if (fn_1_BF08(var_r31) == 0x7D4) { - var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / 60.0f)); + var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / REFRESH_RATE)); if (0.0f > var_r30->unk_1D4) { var_r30->unk_1D4 = 0.0f; } @@ -2502,7 +2509,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24 } else { var_r31->unk_14C += 1.0f; - var_r30->unk_1D4 -= 0.016666668f; + var_r30->unk_1D4 -= 1.0f / REFRESH_RATE; if (0.0f > var_r30->unk_1D4) { var_r30->unk_1D4 = 0.0f; } @@ -2538,7 +2545,7 @@ void fn_1_D0E0(UnkM432DllStruct *arg0, omObjData *arg1, omObjData *arg2) { fn_1_BF9C(arg0); if (fn_1_BF08(arg0) == 0x7D5) { - lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / 60.0f)); + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / REFRESH_RATE)); if (0.0f > lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC) { lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 0.0f; } @@ -2705,7 +2712,7 @@ void fn_1_E9E4(UnkM432DllStruct *arg0) var_f28 = 100.0f; } if ((arg0->unk_C8->unk_2C.y + var_f28) > arg0->unk_00.unk_6C.y) { - arg0->unk_00.unk_84.y = 26.766666f; + arg0->unk_00.unk_84.y = _1606_BY_REFRESH_RATE; arg0->unk_00.unk_A4 = 1.0f; return; } @@ -2938,7 +2945,7 @@ void fn_1_10250(omObjData *object) var_r31->unk_00.unk_2C = 0x100; fn_1_40C0(&var_r31->unk_00); if (200.0f > var_r31->unk_00.unk_6C.y) { - var_r31->unk_00.unk_84.y = 26.766666f; + var_r31->unk_00.unk_84.y = _1606_BY_REFRESH_RATE; var_r31->unk_00.unk_A4 = 1.0f; } else { @@ -3296,6 +3303,7 @@ void fn_1_128C8(omObjData *object) lbl_1_bss_0[var_r31].unk_1F0[1] = 0.0f; } } +#if VERSION_NTSC if (lbl_1_bss_41C->work[0] >= 0x3EC) { for (var_r31 = 0; var_r31 < 2; var_r31++) { if (lbl_1_bss_0[var_r31].unk_1CC >= 0) { @@ -3312,6 +3320,7 @@ void fn_1_128C8(omObjData *object) lbl_1_bss_0[var_r31].unk_1D8 = -1; } } +#endif } } @@ -3416,16 +3425,16 @@ void fn_1_131A8(omObjData *var_r28) case 0x3EB: lbl_1_bss_57C++; if (lbl_1_bss_574 >= 0) { - MGSeqParamSet(lbl_1_bss_574, 1, (0x468B - lbl_1_bss_57C) / 60); + MGSeqParamSet(lbl_1_bss_574, 1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE); } - else if (lbl_1_bss_57C > 0x3F48) { - lbl_1_bss_574 = MGSeqCreate(1, (0x468B - lbl_1_bss_57C) / 60, -1, -1); + else if (lbl_1_bss_57C > 270 * REFRESH_RATE) { + lbl_1_bss_574 = MGSeqCreate(1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE, -1, -1); MGSeqPosSet(lbl_1_bss_574, 288.0f, 400.0f); } fn_1_580(lbl_1_bss_528, 0, lbl_1_bss_57C); fn_1_12EA8(); - if ((lbl_1_bss_57C >= 0x4650) || (lbl_1_bss_3FC >= 0)) { + if ((lbl_1_bss_57C >= 300 * REFRESH_RATE) || (lbl_1_bss_3FC >= 0)) { var_r28->work[0] = 0x3EC; lbl_1_bss_3F0 = 0.0f; } @@ -3453,7 +3462,7 @@ void fn_1_131A8(omObjData *var_r28) lbl_1_bss_3F0 += 1.0f; if ((var_r17 >= 4) && (60.0f <= lbl_1_bss_3F0) && (MGSeqStatGet(lbl_1_bss_576) == 0)) { var_r28->work[0] = 0x3EE; - if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < 0x1518)) { + if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < (VERSION_NTSC ? 5400 : 5250))) { if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC)->unk_188].iscom != 0) { if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC + 1)->unk_188].iscom == 0) { goto block_81; @@ -3535,17 +3544,17 @@ void fn_1_131A8(omObjData *var_r28) case 0x3F0: var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1]; lbl_1_bss_3F0 += 1.0f; - var_f31 = lbl_1_bss_3F0 / 180.0f; + var_f31 = lbl_1_bss_3F0 / (3.0f * REFRESH_RATE); var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); var_r29->unk_28.y = var_r29->unk_4C.y + (var_f30 * (var_r29->unk_58.y - var_r29->unk_4C.y)); var_r29->unk_1C.y = var_r29->unk_34.y + (var_f30 * (var_r29->unk_40.y - var_r29->unk_34.y)); - if (90.0f < lbl_1_bss_3F0) { - var_f31 = (lbl_1_bss_3F0 - 90.0f) / 90.0f; + if ((1.5f * REFRESH_RATE) < lbl_1_bss_3F0) { + var_f31 = (lbl_1_bss_3F0 - 1.5f * REFRESH_RATE) / (1.5f * REFRESH_RATE); var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); var_r29->unk_1C.z = var_r29->unk_34.z + (var_f30 * (var_r29->unk_40.z - var_r29->unk_34.z)); } Hu3DCameraPosSetV(lbl_1_data_A0[lbl_1_bss_3FC >> 1], &var_r29->unk_1C, &lbl_1_data_C8, &var_r29->unk_28); - if (180.0f <= lbl_1_bss_3F0) { + if ((3 * REFRESH_RATE) <= lbl_1_bss_3F0) { var_r28->work[0]++; lbl_1_bss_3F0 = 0.0f; } @@ -3654,7 +3663,7 @@ void ObjectSetup(void) lbl_1_bss_578 = GWMGRecordGet(3); lbl_1_bss_568 = -1.0f; if (lbl_1_bss_578 == 0) { - lbl_1_bss_578 = 0x1C20; + lbl_1_bss_578 = 120 * REFRESH_RATE; } fn_1_414(); for (var_r30 = 0; var_r30 < 2; var_r30++) { diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c new file mode 100644 index 00000000..6e36fe20 --- /dev/null +++ b/src/REL/m433Dll/main.c @@ -0,0 +1,476 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +void fn_1_4C0(omObjData *object); +void fn_1_618(omObjData *object); +void fn_1_798(omObjData *object); +void fn_1_AD4(omObjData *object); +void fn_1_E2C(omObjData *object); +void fn_1_1040(omObjData *object); +void fn_1_13FC(omObjData *object); +void fn_1_16D0(omObjData *object); +omObjFunc fn_1_1A3C(Process *process, omObjData *object); +void fn_1_1A48(omObjData *object); +float fn_1_26C4(float arg8, float arg9, float argA); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C = { 0.0f, 170.0f, 0.0f }; +Vec lbl_1_data_58 = { 0.0f, -22.0f, 850.0f }; + +char lbl_1_bss_34[0x4]; +char lbl_1_bss_30[0x4]; +char lbl_1_bss_2C[0x4]; +Process *lbl_1_bss_28; +omObjData *lbl_1_bss_24; +omObjData *lbl_1_bss_20; +char lbl_1_bss_18[8]; +s16 lbl_1_bss_16; +s16 lbl_1_bss_14; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Vec sp14; + Vec sp8; + Process *var_r31; + LightData *var_r30; + + HuAudSndGrpSet(0x3A); + lbl_1_bss_C = lbl_1_bss_8 = -1; + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_16 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_16); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_16]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 55.74f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 3500.0f; + sp14.x = sp14.y = sp14.z = 0.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + sp8.x = 0.0f; + sp8.y = 3480.0002f; + sp8.z = 900.00006f; + Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14); + Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); + lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_28 = var_r31; + omGameSysInit(var_r31); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 10.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_20 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_24 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_4C0); + fn_1_2894(var_r31); + fn_1_5904(var_r31); +} + +void fn_1_4C0(omObjData *object) +{ + M433DllWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_08 = 0; + work->unk_34 = 2; + work->unk_38 = 0; + work->unk_3C = 0; + object->func = fn_1_798; +} + +void fn_1_584(omObjData *object) +{ + M433DllWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_28++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_618(object); + } +} + +void fn_1_618(omObjData *object) +{ + M433DllWork *work = object->data; + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + Hu3DCameraPerspectiveSet(1, 41.5f, 10.0f, 10000.0f, 1.2f); + lbl_1_bss_C = HuAudFXPlay(0x6AC); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_29A4(lbl_1_bss_28, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1040; + break; + case 2: + work->unk_00 = 3; + work->unk_28 = 0; + object->func = fn_1_1A3C(lbl_1_bss_28, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_AD4; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_E2C; + break; + } + work->unk_04 = 0; + } +} + +void fn_1_798(omObjData *object) +{ + fn_1_584(object); + fn_1_618(object); +} + +void fn_1_AD4(omObjData *object) +{ + M433DllWork *work = object->data; + + fn_1_584(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + work->unk_08 = 0; + fn_1_618(object); + } +} + +void fn_1_E2C(omObjData *object) +{ + fn_1_584(object); + if (WipeStatGet() == 0) { + fn_1_5B74(); + fn_1_2984(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1040(omObjData *object) +{ + M433DllWork *work = object->data; + fn_1_584(object); + switch (work->unk_14) { + case 0: + HuAudFXFadeOut(lbl_1_bss_C, 0x1E); + work->unk_1C = 0x1E; + work->unk_20 = 0x3C; + lbl_1_bss_14 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_14, 320.0f, 240.0f); + Center.x = 0.0f; + Center.y = 200.0f; + Center.z = 0.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + CZoom = 1900.0f; + work->unk_14 = 1; + work->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_14) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x47); + } + if ((MGSeqStatGet(lbl_1_bss_14) == 0) && (work->unk_08 == 0)) { + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_13FC; + } + break; + } +} + +void fn_1_13FC(omObjData *object) +{ + + M433DllWork *work = object->data; + s32 var_r27 = 0; + fn_1_584(object); + work->unk_20++; + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C == 0) { + var_r27 = 1; + } + } + if (work->unk_34 != 2) { + var_r27 = 1; + } + if (var_r27 != 0) { + lbl_1_bss_12 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_12, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_16D0; + } + lbl_1_bss_8 = HuAudFXPlay(0x6AC); + } +} + +void fn_1_16D0(omObjData *object) +{ + M433DllWork *work = object->data; + fn_1_584(object); + if ((MGSeqStatGet(lbl_1_bss_12) == 0) && ((work->unk_38 + 0xFFFF0000) == 0x1111)) { + work->unk_14 = 4; + work->unk_18 = 0; + fn_1_618(object); + } +} + +omObjFunc fn_1_1A3C(Process *process, omObjData *object) +{ + return fn_1_1A48; +} + +static inline s32 fn_1_1A48_inline(void) +{ + return GWSystem.mg_type; +} + +void fn_1_1A48(omObjData *object) +{ + M433DllWork *work = object->data; + float var_f31 = lbl_1_data_58.y; + if (fn_1_10FA4(1) != 0) { + var_f31 *= -1.0f; + } + Center.x += 0.15f * (lbl_1_data_4C.x - Center.x); + Center.y += 0.15f * (lbl_1_data_4C.y - Center.y); + Center.z += 0.15f * (lbl_1_data_4C.z - Center.z); + CRot.x = fn_1_26C4(CRot.x, lbl_1_data_58.x, 0.15f); + CRot.y = fn_1_26C4(CRot.y, var_f31, 0.15f); + CZoom += 0.15f * (lbl_1_data_58.z - CZoom); + fn_1_584(object); + work->unk_24 = 1; + if (lbl_1_bss_0 < 0) { + lbl_1_bss_0 = HuAudSStreamPlay(1); + } + if (lbl_1_bss_10 < 0) { + s32 spC[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; + s32 var_r26; + s32 var_r25 = 0; + s32 var_r24; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + if (work->unk_2C[var_r26] >= 0) { + spC[var_r25++] = GWPlayerCfg[work->unk_2C[var_r26]].character; + GWPlayerCoinWinAdd(work->unk_2C[var_r26], 10); + } + } + if (spC[0] == -1) { + lbl_1_bss_10 = MGSeqCreate(5, 2); + return; + } + var_r24 = 3; + if (fn_1_1A48_inline() == 0) { + if (fn_1_10FA4(0) != 0) { + var_r24 = 5; + } + } + lbl_1_bss_10 = MGSeqCreate(5, var_r24, spC[0], spC[1], spC[2], spC[3]); + return; + } + if ((MGSeqStatGet(lbl_1_bss_10) == 0) && (work->unk_28 >= 210.0f)) { + HuAudFXFadeOut(lbl_1_bss_8, 0x1E); + work->unk_24 = 2; + fn_1_618(object); + } +} + +s32 fn_1_213C(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_00; +} + +s32 fn_1_2154(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_0C; +} + +u32 fn_1_216C(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_14; +} + +u32 fn_1_2184(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_24; +} + +void fn_1_219C(s32 arg0, s32 arg1, s32 arg2) +{ + M433DllWork *work = lbl_1_bss_24->data; + work->unk_34 = arg0; + work->unk_2C[0] = arg1; + work->unk_2C[1] = arg2; +} + +s32 fn_1_21CC(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_34; +} + +void fn_1_21E4(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_38 |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_2214(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_3C |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_2244(void) +{ + return MGSeqStatGet(lbl_1_bss_12) == 0; +} + +void fn_1_227C(Vec *arg0, Vec *arg1) +{ + Vec sp10; + + VECSubtract(arg1, arg0, &sp10); + Center = *arg1; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = VECMag(&sp10); +} + +void fn_1_2484(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + fn_1_227C(&sp3C, &sp30); +} + +float fn_1_26C4(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_27E0(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +s32 lbl_1_data_64[] = { + 0x00000000, + 0x00000000, + 0x45ABE000, + 0xC576E000, + 0x00000000, + 0xBF333333, + 0x3F19999A, + 0xFFFFFFFF, + 0x00000000, + 0x45ABE000, + 0xC576E000, + 0x00000000, + 0x3F800000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, +}; diff --git a/src/REL/m433Dll/map.c b/src/REL/m433Dll/map.c new file mode 100644 index 00000000..40aab323 --- /dev/null +++ b/src/REL/m433Dll/map.c @@ -0,0 +1,827 @@ +#include "dolphin/mtx.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +typedef struct M433DllBss38Struct { + /* 0x00 */ u8 unk_00; + /* 0x01 */ char unk01[2]; + /* 0x03 */ u8 unk_03; + /* 0x04 */ u8 unk_04; + /* 0x05 */ char unk05[3]; + /* 0x08 */ float unk_08; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ Vec unk_18; + /* 0x24 */ Vec unk_24; + /* 0x30 */ Vec unk_30; + /* 0x3C */ char unk3C[0xC]; + /* 0x48 */ Vec unk_48; + union { + struct { + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + char unk5C[4]; + /* 0x60 */ float unk_60; + }; + struct { + /* 0x54 */ s16 unk_54_s16[0x20]; + }; + }; +} M433DllBss38Struct; /* size = 0x94 */ + +typedef struct M433DllMapWork { + char unk00; + u8 unk_01; + u8 unk_02; + char unk03; + u8 unk_04; + char unk08[4]; + Vec unk_0C; + Vec unk_18; + char unk24[0xC]; + Vec unk_30; + Vec unk_3C; + char unk48[0xC]; + s16 unk_54; + char unk56[0x3E]; +} M433DllMapWork; /* size 0x94 */ + +typedef struct M433DllMapWork2 { + u8 unk_00; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + Vec unk_40; + char unk4C[0xE4]; + float unk_130; + float unk_134; + float unk_138; + char unk13C[4]; + float unk_140; + float unk_144; + float unk_148; + float unk_14C[3]; + float unk_158[3]; + float unk_164[3]; + float unk_170[3]; + float unk_17C[3]; + u16 unk_188[3]; +} M433DllMapWork2; /* size 0x190 */ + +typedef struct M433DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + char unk06[0x42]; +} M433DllUnkStruct; /* size 0x48 */ + +void fn_1_2AC4(omObjData *object); +void fn_1_2CE0(omObjData *object); +void fn_1_32CC(omObjData *object); +void fn_1_39AC(omObjData *object); +void fn_1_3C1C(omObjData *object); +s16 fn_1_3E5C(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_3F14(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_4A94(omObjData *object); +void fn_1_4BA0(omObjData *object); +void fn_1_4ED4(float arg8, Vec *arg0, Vec *arg1, float arg9); +void fn_1_5068(void); +void *fn_1_50A8(s32 arg0); +void fn_1_51DC(void); +s32 fn_1_5260(void); +float fn_1_52B4(float arg8, float arg9, float argA); +void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA); +void fn_1_553C(Mtx arg0, Vec *arg1); +extern s32 lbl_1_bss_34; + +omObjData *lbl_1_bss_7B0; +omObjData *lbl_1_bss_7AC; +omObjData *lbl_1_bss_7A8; +void *lbl_1_bss_728[0x20]; +M433DllBss38Struct lbl_1_bss_38[0xC]; + +void fn_1_2894(Process *process) +{ + s32 var_r31; + s32 var_r29; + + lbl_1_bss_34 = 1; + lbl_1_bss_7AC = omAddObjEx(process, 0x1E, 8, 0, -1, fn_1_2CE0); + lbl_1_bss_7A8 = omAddObjEx(process, 0x1F, 3, 6, -1, fn_1_39AC); + lbl_1_bss_7B0 = omAddObjEx(process, 0x1D, 1, 0, -1, fn_1_4A94); + var_r29 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + fn_1_5260(); + } + fn_1_5068(); +} + +void fn_1_2984(void) +{ + fn_1_51DC(); +} + +omObjFunc fn_1_29A4(Process *process, omObjData *object) +{ + M433DllWork *work = object->data; + CRot.x = 54.3f; + CRot.y = 22.3f; + CRot.z = 0.0f; + Center.x = -130.1f; + Center.y = 885.0f; + Center.z = -900.3f; + CZoom = 1100.0f; + fn_1_4ED4(0.0f, &Center, &CRot, CZoom); + object->work[0] = 0xB4; + work->unk_0C = 1; + return fn_1_2AC4; +} + +void fn_1_2AC4(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + M433DllWork *work = object->data; + + fn_1_584(object); + if (object->work[0] == 120.0f) { + sp14.x = 0.0f; + sp14.y = -10.0f; + sp14.z = -207.5f; + sp8.x = -26.5f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1400.0f; + fn_1_4ED4(90.0f, &sp14, &sp8, var_f31); + } + if (object->work[0] == 48.0f) { + sp14.x = 0.0f; + sp14.y = 200.0f; + sp14.z = 0.0f; + sp8.x = -30.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1900.0f; + fn_1_4ED4(object->work[0], &sp14, &sp8, var_f31); + } + if (--object->work[0] == 0) { + work->unk_0C = 2; + fn_1_618(object); + lbl_1_bss_7B0->func = NULL; + } +} + +void fn_1_2CE0(omObjData *object) +{ + Vec sp8[0x10] = { + { 475.0f, 800.0f, -1400.0f }, + { -300.0f, 700.0f, -1400.0f }, + { 300.0f, 875.0f, -1450.0f }, + { -575.0f, 850.0f, -1550.0f }, + { 350.0f, 750.0f, -1500.0f }, + { -450.0f, 775.0f, -1550.0f }, + { 325.0f, 725.0f, -1450.0f }, + { -525.0f, 725.0f, -1500.0f }, + { 575.0f, 850.0f, -1550.0f }, + { -350.0f, 750.0f, -1500.0f }, + { 450.0f, 775.0f, -1550.0f }, + { -325.0f, 725.0f, -1450.0f }, + { 525.0f, 725.0f, -1500.0f }, + { -475.0f, 800.0f, -1400.0f }, + { 300.0f, 700.0f, -1400.0f }, + { -300.0f, 875.0f, -1450.0f }, + }; + M433DllBss38Struct *var_r31; + s32 var_r30; + M433DllUnkStruct *var_r28; + s32 i; + s32 var_r26; + + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCD)); + object->model[0] = var_r30; + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCE)); + object->model[1] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r30, 0.5f); + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCF)); + object->model[2] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M425, 0x05), 1, fn_1_3F14); + object->model[3] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 0; + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M425, 0x05)); + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD3), 0xA, fn_1_3F14); + object->model[4] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 1; + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD2), 4, fn_1_3F14); + object->model[5] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 2; + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD1), 6, fn_1_3F14); + object->model[6] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 3; + for (i = 0; i < 0xC; i++) { + var_r31 = &lbl_1_bss_38[i]; + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M425, 0x02)); + var_r31->unk_00 = var_r30; + var_r31->unk_0C.x = sp8[i].x; + var_r31->unk_0C.y = sp8[i].y - 300.0f; + var_r31->unk_0C.z = 800.0f + sp8[i].z; + Hu3DModelPosSet(var_r30, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + Hu3DMotionSpeedSet(var_r30, 6.0f); + var_r31->unk_03 = var_r31->unk_04 = 0; + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 1.0f; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_0C.x; + var_r31->unk_30.y = var_r31->unk_0C.y; + var_r31->unk_30.z = var_r31->unk_0C.z; + if ((i & 1) != 0) { + var_r31->unk_18.y = 90.0f; + var_r31->unk_0C.y += 650.0; + var_r31->unk_0C.x -= 1000.0 + (200.0f * ((fn_1_5260() - 0x8000) / 32768.0f)); + } + else { + var_r31->unk_18.y = 90.0f; + var_r31->unk_0C.x += 200.0f * ((fn_1_5260() - 0x8000) / 32768.0f); + } + var_r31->unk_18.y += 10.0f * ((fn_1_5260() - 0x8000) / 32768.0f); + var_r31->unk_0C.z = var_r31->unk_0C.z - 400.0; + var_r31->unk_08 = 100.0f * (0.1f + (0.02f * (fn_1_5260() / 65536.0f))); + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + var_r31->unk_54_s16[var_r26] = 0; + } + var_r31->unk_60 = var_r31->unk_08; + } + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M425, 0x02)); + HuAudFXPlayVol(0x6A3, 0x41); + object->func = fn_1_32CC; +} + +void fn_1_32CC(omObjData *object) +{ + Mtx sp14; + Vec sp8; + M433DllBss38Struct *var_r31; + s32 i; + + for (i = 0; i < 0xC; i++) { + var_r31 = &lbl_1_bss_38[i]; + switch (var_r31->unk_04) { + case 0: + if (var_r31->unk_08 < var_r31->unk_60) { + var_r31->unk_08 += 0.4f; + } + if ((s32)(64.0f * (fn_1_5260() / 65536.0f)) == 0) { + Hu3DMotionTimeSet(var_r31->unk_00, 0.0f); + } + if (Hu3DMotionEndCheck(var_r31->unk_00) != 0) { + var_r31->unk_48.y = -3.8933334f; + } + else { + var_r31->unk_48.y = -1.2166667f; + } + var_r31->unk_54 += 0.1f * ((fn_1_5260() - 0x8000) / 32768.0f); + var_r31->unk_58 += var_r31->unk_54; + if (var_r31->unk_58 > 180.0f) { + var_r31->unk_58 -= 180.0f; + } + if (var_r31->unk_58 < -180.0f) { + var_r31->unk_58 += 180.0f; + } + var_r31->unk_18.x = -30.0 * sind(var_r31->unk_58) * sind(var_r31->unk_18.y); + var_r31->unk_18.z = -30.0 * sind(var_r31->unk_58) * cosd(var_r31->unk_18.y); + if (var_r31->unk_0C.y <= 500.0f || fabs(var_r31->unk_0C.x) > 1600.0) { + var_r31->unk_48.y = 0.0f; + var_r31->unk_54_s16[6] = 0xB4; + var_r31->unk_08 *= 0.75f; + var_r31->unk_04++; + } + break; + case 1: + var_r31->unk_18.y += 1.0f; + var_r31->unk_18.x = 0.0f; + var_r31->unk_18.z = 60.0 * sind(var_r31->unk_54_s16[6]) * cosd(var_r31->unk_18.y); + if (--var_r31->unk_54_s16[6] == 0) { + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 6.0f); + var_r31->unk_48.y = 4.866667f; + var_r31->unk_04++; + } + break; + case 2: + if (var_r31->unk_08 > 4.0f) { + var_r31->unk_08 -= 0.1f; + var_r31->unk_48.y += 0.73f; + } + var_r31->unk_48.y += -0.5475f; + if (var_r31->unk_48.y < 0.0f) { + Hu3DModelAttrReset(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 2.0f); + var_r31->unk_60 = 100.0f * (0.1f + (0.02f * (fn_1_5260() / 65536.0f))); + var_r31->unk_04 = 0; + } + break; + } + var_r31->unk_48.x = var_r31->unk_08 * sind(var_r31->unk_18.y); + var_r31->unk_48.z = var_r31->unk_08 * cosd(var_r31->unk_18.y); + var_r31->unk_0C.x += var_r31->unk_48.x; + var_r31->unk_0C.y += var_r31->unk_48.y; + var_r31->unk_0C.z += var_r31->unk_48.z; + if (var_r31->unk_0C.z >= -500.0f) { + var_r31->unk_0C.z = -500.0f; + } + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + fn_1_541C(sp14, var_r31->unk_18.x, -var_r31->unk_18.y, var_r31->unk_18.z); + fn_1_553C(sp14, &sp8); + Hu3DModelRotSetV(var_r31->unk_00, &sp8); + } +} + +void fn_1_39AC(omObjData *object) +{ + s32 var_r29; + s32 var_r28; + + s32 sp18[4] = { 0x004000D4, 0x004000D5, 0x004000D6, 0x004000D7 }; + s32 sp8[4] = { 0x0040000C, 0x00400010, 0x0040000F, 0x0040000E }; + M433DllMapWork *work = fn_1_50A8(sizeof(M433DllMapWork)); + object->data = work; + if (lbl_1_bss_34 != 0) { + var_r28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0x0B)); + } + else { + var_r28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0x62)); + } + object->model[0] = var_r28; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_34 != 0) { + object->motion[var_r29] = Hu3DJointMotionFile(var_r28, sp8[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(var_r28, sp18[var_r29]); + } + } + Hu3DMotionSet(var_r28, object->motion[0]); + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); + work->unk_01 = work->unk_02 = 0; + work->unk_04 = 0; + work->unk_54 = 0; + work->unk_0C.x = 0.0f; + work->unk_0C.y = 180.0f; + work->unk_0C.z = -490.0f; + work->unk_30 = work->unk_0C; + work->unk_18.x = work->unk_18.y = work->unk_18.z = 0.0f; + work->unk_3C = work->unk_18; + omSetTra(object, work->unk_0C.x, work->unk_0C.y, work->unk_0C.z); + omSetRot(object, work->unk_18.x, work->unk_18.y, work->unk_18.z); + object->func = fn_1_3C1C; +} + +void fn_1_3C1C(omObjData *object) +{ + M433DllMapWork *work; + s32 var_r29; + s32 var_r28; + + work = object->data; + var_r28 = object->model[0]; + switch (work->unk_04) { + case 0: + work->unk_01 = 0; + var_r29 = 0x40000001; + break; + case 1: + work->unk_3C.y = 0.0f; + work->unk_01 = 1; + var_r29 = 0x40000001; + if (work->unk_54++ >= 0x5A) { + work->unk_54 = 0; + work->unk_04 = 0; + } + break; + case 2: + work->unk_3C.y = 0.0f; + work->unk_01 = 2; + var_r29 = 0; + if (Hu3DMotionEndCheck(var_r28) != 0) { + work->unk_04 = 0; + } + break; + case 3: + work->unk_3C.y = 0.0f; + work->unk_01 = 3; + var_r29 = 0x40000001; + break; + case 4: + work->unk_3C.y = 0.0f; + work->unk_04 = 0; + break; + case 5: + work->unk_3C.y = 50.0f; + work->unk_04 = 0; + break; + case 6: + work->unk_3C.y = -50.0f; + work->unk_04 = 0; + break; + } + if (work->unk_01 != work->unk_02) { + work->unk_02 = work->unk_01; + Hu3DMotionShiftSet(var_r28, object->motion[work->unk_01], 0.0f, 8.0f, var_r29); + switch (work->unk_01) { + case 1: + HuAudFXPlay(0x43); + break; + case 2: + HuAudFXPlay(0x45); + break; + } + } + work->unk_18.y = fn_1_52B4(work->unk_18.y, work->unk_3C.y, 0.9f); + omSetTra(object, work->unk_0C.x, work->unk_0C.y, work->unk_0C.z); + omSetRot(object, work->unk_18.x, work->unk_18.y, work->unk_18.z); +} + +s16 fn_1_3E5C(s32 sp8, s16 spC, ParticleHook sp10) +{ + M433DllUnkStruct *var_r31; + s32 var_r30; + ParticleData *var_r29; + AnimData *var_r28; + + var_r28 = HuSprAnimRead(HuDataReadNum(sp8, MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r28, spC); + Hu3DParticleHookSet(var_r30, sp10); + var_r29 = Hu3DData[var_r30].unk_120; + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433DllUnkStruct), MEMORY_DEFAULT_NUM); + var_r29->unk_1C = var_r31; + var_r31->unk_00 = var_r30; + var_r31->unk_04 = 0; + return var_r30; +} + +void fn_1_3F14(ModelData *model, ParticleData *var_r30, Mtx matrix) +{ + float var_f29; + float var_f26; + float var_f25; + float var_f24; + HsfanimStruct01 *var_r31; + s32 var_r28; + float sp54[4] = { 1000.0f, 200.0f, 600.0f, 1200.0f }; + float sp44[4] = { 1.0f, 0.6f, 0.3f, 0.425f }; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 sp8 = 0; + M433DllUnkStruct *var_r29 = var_r30->unk_1C; + switch (var_r29->unk_04) { + case 0: + var_r30->unk_00 = 0x54; + var_r31 = var_r30->unk_48; + if (var_r29->unk_02 != 0) { + sp14.x = 0.0f; + sp14.y = -4700.0f; + sp14.z = 4450.0f; + var_f29 = 1.0f / sqrtf((sp14.z * sp14.z) + ((sp14.x * sp14.x) + (sp14.y * sp14.y))); + sp14.x *= var_f29; + sp14.y *= var_f29; + sp14.z *= var_f29; + var_f24 = 4000.0f / var_r30->unk_30; + for (var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + var_f26 = 500.0f + ((var_f24 * var_r28) + (0.25f * var_f24 * (fn_1_5260() / 65536.0f))); + var_f25 = var_f26 / 4000.0f; + var_r31->unk14.x = var_f26; + var_r31->unk34.x = var_f26 * sp14.x; + var_r31->unk34.y = 5500.0f + (var_f26 * sp14.y); + var_r31->unk34.z = -3950.0f + (var_f26 * sp14.z); + var_r31->unk2C = (0.3f + (0.7f * (var_f25 * var_f25))) * (sp54[var_r29->unk_02] * (0.7f + (0.3f * (fn_1_5260() / 65536.0f)))); + var_r31->unk40.r = (s32)(160.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.g = (s32)(96.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.b = (s32)(128.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.a = ((1.0 - (0.4 * var_f25)) * (255.0f * sp44[var_r29->unk_02])) - (s32)(16.0f * (fn_1_5260() / 65536.0f)); + } + var_r29->unk_04++; + } + else { + var_r31->unk34.x = 0.0f; + var_r31->unk34.y = 5500.0f; + var_r31->unk34.z = -3950.0f; + var_r31->unk2C = 1000.0f; + } + break; + case 1: + sp38.x = sind(CRot.y) * cosd(CRot.x); + sp38.y = -sind(CRot.x); + sp38.z = cosd(CRot.y) * cosd(CRot.x); + sp2C.x = -(Center.x + (1.25f * (sp38.x * CZoom))); + sp2C.y = 5500.0f - (Center.y + (sp38.y * CZoom)); + sp2C.z = -3950.0f - (Center.z + (1.25f * (sp38.z * CZoom))); + var_f29 = 1.0f / sqrtf((sp2C.z * sp2C.z) + ((sp2C.x * sp2C.x) + (sp2C.y * sp2C.y))); + sp2C.x *= var_f29; + sp2C.y *= var_f29; + sp2C.z *= var_f29; + var_f29 = -((-sp2C.z * -sp38.z) + ((-sp2C.x * -sp38.x) + (-sp2C.y * -sp38.y))); + sp20.x = -sp38.x + (-2.0f * sp2C.x * var_f29); + sp20.y = -sp38.y + (-2.0f * sp2C.y * var_f29); + sp20.z = -sp38.z + (-2.0f * sp2C.z * var_f29); + for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + var_r31->unk34.x = sp20.x * var_r31->unk14.x; + var_r31->unk34.y = 5500.0f + (sp20.y * var_r31->unk14.x); + var_r31->unk34.z = -3950.0f + (sp20.z * var_r31->unk14.x); + if (var_r30->unk_00 < 0xA) { + var_r31->unk40.a *= 0.8f; + } + } + var_r30->unk_00--; + if (var_r30->unk_00 == 0) { + Hu3DModelAttrReset(var_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); + Hu3DModelKill(var_r29->unk_00); + return; + } + break; + } + DCFlushRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_4A94(omObjData *var_r30) +{ + M433DllMapWork2 *work = fn_1_50A8(sizeof(M433DllMapWork2)); + var_r30->data = work; + work->unk_148 = work->unk_144 = 0.0f; + work->unk_140 = 1.0f; + work->unk_10.x = work->unk_28.x = -30.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 200.0f; + work->unk_04.z = work->unk_1C.z = 0.0f; + work->unk_130 = work->unk_134 = 1900.0f; + work->unk_188[0] = work->unk_188[1] = work->unk_188[2] = 0; + var_r30->func = fn_1_4BA0; +} + +void fn_1_4BA0(omObjData *object) +{ + float var_f31; + s32 var_r30; + M433DllMapWork2 *work = object->data; + if (work->unk_148 > 0.0f) { + work->unk_148 = work->unk_148 - work->unk_140; + var_f31 = (work->unk_144 - work->unk_148) / work->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (work->unk_00 == 0) { + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34.x - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_34.y - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_34.z - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40.x - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_40.y - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_40.z - work->unk_28.z)); + work->unk_130 = work->unk_134 + (var_f31 * (work->unk_138 - work->unk_134)); + } + } + CRot.x = work->unk_10.x; + CRot.y = work->unk_10.y; + CRot.z = work->unk_10.z; + Center.x = work->unk_04.x; + Center.y = work->unk_04.y; + Center.z = work->unk_04.z; + CZoom = work->unk_130; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + work->unk_17C[var_r30] = 0.0f; + if (work->unk_188[var_r30] != 0) { + work->unk_17C[var_r30] = work->unk_14C[var_r30] * sind(work->unk_164[var_r30]); + work->unk_164[var_r30] += work->unk_170[var_r30]; + work->unk_14C[var_r30] *= work->unk_158[var_r30]; + work->unk_188[var_r30] -= 1; + } + } + Center.x += work->unk_17C[0]; + Center.y += work->unk_17C[1]; + Center.z += work->unk_17C[2]; +} + +void fn_1_4ED4(float arg8, Vec *arg0, Vec *arg1, float arg9) +{ + M433DllMapWork2 *work = lbl_1_bss_7B0->data; + work->unk_00 = 0; + work->unk_144 = arg8; + work->unk_148 = arg8; + if (arg8 == 0.0f) { + work->unk_04.x = arg0->x; + work->unk_04.y = arg0->y; + work->unk_04.z = arg0->z; + work->unk_10.x = arg1->x; + work->unk_10.y = arg1->y; + work->unk_10.z = arg1->z; + work->unk_130 = arg9; + return; + } + work->unk_1C = work->unk_04; + work->unk_34.x = arg0->x; + work->unk_34.y = arg0->y; + work->unk_34.z = arg0->z; + work->unk_28 = work->unk_10; + work->unk_40.x = arg1->x; + work->unk_40.y = arg1->y; + work->unk_40.z = arg1->z; + work->unk_134 = work->unk_130; + work->unk_138 = arg9; +} + +void fn_1_4FC0(float arg8) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_7B0->data; + var_r31->unk_140 = arg8; +} + +void fn_1_4FE8(u8 arg0, u16 arg1, float arg8, float arg9, float argA) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_7B0->data; + var_r31->unk_188[arg0] = arg1; + var_r31->unk_14C[arg0] = arg8; + var_r31->unk_158[arg0] = arg9; + var_r31->unk_170[arg0] = argA; + var_r31->unk_164[arg0] = 90.0f; +} + +void fn_1_5068(void) +{ + s32 i; + for (i = 0; i < 0x20; i++) { + lbl_1_bss_728[i] = NULL; + } +} + +void *fn_1_50A8(s32 arg0) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (!lbl_1_bss_728[i]) { + break; + } + } + if (i == 0x20) { + return NULL; + } + lbl_1_bss_728[i] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + return lbl_1_bss_728[i]; +} + +void fn_1_5148(u32 sp8) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (lbl_1_bss_728[i] == (void *)sp8) { + break; + } + } + if (i != 0x20) { + HuMemDirectFree(lbl_1_bss_728[i]); + lbl_1_bss_728[i] = NULL; + } +} + +void fn_1_51DC(void) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (lbl_1_bss_728[i]) { + HuMemDirectFree(lbl_1_bss_728[i]); + lbl_1_bss_728[i] = NULL; + } + } +} + +u32 lbl_1_data_C4 = 0x41C64E6D; + +s32 fn_1_5260(void) +{ + lbl_1_data_C4 *= 0x41C64E6D; + lbl_1_data_C4 += 0x3039; + return lbl_1_data_C4 >> 0x10; +} + +float fn_1_52B4(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_553C(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + var_f29 = -arg0[0][2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_58D8(s32 arg0) +{ + M433DllMapWork *work = lbl_1_bss_7A8->data; + work->unk_04 = arg0; +} diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c new file mode 100644 index 00000000..b6ef317c --- /dev/null +++ b/src/REL/m433Dll/player.c @@ -0,0 +1,3584 @@ +#include "datadir_enum.h" +#include "dolphin/mtx.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M433PlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + u32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + s32 unk_20; + float unk_24; + float unk_28; + s32 unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + char unk50[4]; + s32 unk_54; + s32 unk_58; + s32 unk_5C; + s32 unk_60; + s32 unk_64; + s32 unk_68; + s32 unk_6C; + s32 unk_70; + u32 unk_74; + u32 unk_78; + u32 unk_7C; + u32 unk_80; + u32 unk_84; + u32 unk_88; + s32 unk_8C; + u32 unk_90; + char unk94[4]; + float unk_98; + s16 unk_9C; + char unk9E[6]; + float unk_A4; + float unk_A8; + float unk_AC; + float unk_B0; + float unk_B4; + float unk_B8; + float unk_BC; + float unk_C0; + char unkC4[8]; + u32 unk_CC; + u32 unk_D0; + u32 unk_D4; + u32 unk_D8; + float unk_DC; + float unk_E0; + s32 unk_E4; + s32 unk_E8; + s32 unk_EC; + s32 unk_F0; + s32 unk_F4; + u32 unk_F8; + Vec unk_FC; + Vec unk_108; + Vec unk_114; + float unk_120; + float unk_124; + Vec unk_128; + Vec unk_134; + Vec unk_140; + omObjData *unk_14C; +} M433PlayerWork; /* size = 0x150 */ + +typedef struct M433PlayerWork2Sub { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + Vec unk_2C; + Vec unk_38; +} M433PlayerWork2Sub; /* size = 0x44 */ + +typedef struct M433PlayerWork2 { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + char unk14[4]; + u16 unk_18; + char unk1A[0x16]; + Vec unk_30; + Vec unk_3C; + float unk_48; + Vec unk_4C; + char unk58[0x14]; + u32 unk_6C; + s32 unk_70; + s32 unk_74; + u32 unk_78; + float unk_7C[2]; + float unk_84[2]; + s32 unk_8C; + u32 unk_90; + u32 unk_94; + s32 unk_98; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + Vec unk_AC; + float unk_B8; + Vec unk_BC; + Mtx unk_C8; + M433PlayerWork2Sub unk_F8; +} M433PlayerWork2; /* size = 0x13C */ + +typedef struct M433PlayerWork3Sub { + s16 unk_00; + s16 unk_02[5]; +} M433PlayerWork3Sub; /* size = 0xC */ + +typedef struct M433PlayerWork3Sub2Sub { + s16 unk_00[2]; + float unk_04[2]; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; +} M433PlayerWork3Sub2Sub; /* size 0x2C */ + +typedef struct M433PlayerWork3Sub2Sub2 { + s32 unk_00[2]; + char unk08[8]; +} M433PlayerWork3Sub2Sub2; /* size 0x10 */ + +typedef struct M433PlayerWork3Sub2 { + s32 unk_00; + u32 unk_04; + u32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14[2]; + u32 unk_1C; + M433PlayerWork3Sub2Sub unk_20[4]; + M433PlayerWork3Sub2Sub2 unk_D0[3][0x14]; + M433PlayerWork3Sub2Sub2 unk_490; +} M433PlayerWork3Sub2; /* size = 0x4A0 */ + +typedef struct M433PlayerWork3 { + u32 uGameEvent; + s32 sWinGrp; + u32 uServeGrp; + u32 uPointGrp; + u32 auServeCel[2]; + u32 auEvents[2]; + u32 unk_20[2]; + u32 unk_28; + s32 unk_2C; + s32 unk_30; + u32 uContactCnt; + s32 sGroundGrp; + u32 uContactGrp; + u32 uContactCel; + u32 uTargetGrp; + u32 unk_48; + M433PlayerWork3Sub unk_4C[2]; + M433PlayerWork3Sub2 unk_64; +} M433PlayerWork3; /* size = 0x504 */ + +typedef struct M433DllPlayerData24CStruct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} M433DllPlayerData24CStruct; /* size = 0x14 */ + +typedef struct M433DllPlayerData794Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; +} M433DllPlayerData794Struct; /* size = 0x0C */ + +void fn_1_10130(Vec *arg0, u32 arg1); +void fn_1_10260(float arg8, float arg9, u32 arg0, u32 arg1, Vec *arg2); +s32 fn_1_10614(Vec *arg0); +void fn_1_1070C(void); +u32 fn_1_10740(Vec *arg0); +u32 fn_1_107B0(Vec *arg0); +float fn_1_10848(void); +u32 fn_1_108C4(void); +u32 fn_1_10900(void); +float fn_1_10B20(float arg8, Vec *arg0); +s32 fn_1_10D24(Vec *arg0); +u32 fn_1_10EA4(void); +u32 fn_1_10ECC(u32 arg0); +s32 fn_1_10F00(u32 arg0); +u32 fn_1_10F38(u32 arg0); +s32 fn_1_10F6C(u32 arg0); +u32 fn_1_10FDC(void); +s32 fn_1_11004(u32 arg0, s32 arg1); +s32 fn_1_11060(u32 arg0); +float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_5B98(omObjData *object); +void fn_1_6070(omObjData *object); +void fn_1_60C0(omObjData *object); +void fn_1_682C(omObjData *object); +void fn_1_722C(omObjData *object); +void fn_1_74D4(omObjData *object); +void fn_1_8408(omObjData *object); +void fn_1_873C(omObjData *object); +s32 fn_1_8938(u32 arg0, Vec *arg1); +void fn_1_8BD0(omObjData *object); +void fn_1_8F80(omObjData *object); +void fn_1_9688(omObjData *object); +void fn_1_A618(omObjData *object); +void fn_1_AB88(omObjData *object); +void fn_1_B194(omObjData *object); +void fn_1_B4D4(omObjData *object, u32 arg1); +s32 fn_1_B6E0(omObjData *object); +s32 fn_1_B7AC(omObjData *object); +s32 fn_1_BAE0(omObjData *object, u32 arg1); +void fn_1_BD48(omObjData *object); +void fn_1_C240(omObjData *object); +void fn_1_C6AC(omObjData *object); +s32 fn_1_C6B0(omObjData *object); +void fn_1_CB98(omObjData *object); +void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8); +void fn_1_D180(M433PlayerWork2Sub *arg0); +void fn_1_D338(M433PlayerWork2Sub *arg0); +s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8); +void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D888(Vec *arg0, float arg8); +void fn_1_DD70(Vec *arg0); +void fn_1_DE28(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_DF44(omObjData *object); +void fn_1_E11C(omObjData *object); +void fn_1_E5C0(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1); +void fn_1_ECFC(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1); +void fn_1_FE64(M433PlayerWork3Sub2 *arg0, s32 arg1, s32 arg2, u32 arg3); +void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3); + +s32 lbl_1_data_C8[6] = { 0, 1, 2, 3, 4, 5 }; +float lbl_1_data_E0[0xE] = { + 130.0f, + 130.0f, + 160.0f, + 130.0f, + 130.0f, + 160.0f, + 160.0f, + 180.0f, + 240.00002f, + 100.0f, + 130.0f, + 130.0f, + 120.00001f, + 130.0f, +}; +float lbl_1_data_118[0xE] = { + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 70.0f, + 50.0f, + 70.0f, + 110.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, +}; +s32 lbl_1_data_150[6][2] = { + { 0x3A, 0x3B }, + { 0x36, 0x38 }, + { 0x40, 0x42 }, + { 0x4B, 0x4D }, + { 0x46, 0x48 }, + { 0x3E, 0x3F }, +}; +s32 lbl_1_data_180[0x11] = { + DATA_MAKE_NUM(DATADIR_M433, 97), + DATA_MAKE_NUM(DATADIR_M433, 98), + DATA_MAKE_NUM(DATADIR_M433, 99), + DATA_MAKE_NUM(DATADIR_M433, 100), + DATA_MAKE_NUM(DATADIR_M433, 101), + DATA_MAKE_NUM(DATADIR_M433, 102), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +}; +u32 lbl_1_data_1C4[0x11] = { + 0, + 2, + 3, + DATA_MAKE_NUM(DATADIR_M433, 0x11), + DATA_MAKE_NUM(DATADIR_M433, 0x19), + DATA_MAKE_NUM(DATADIR_M433, 0x21), + DATA_MAKE_NUM(DATADIR_M433, 0x29), + DATA_MAKE_NUM(DATADIR_M433, 0x31), + DATA_MAKE_NUM(DATADIR_M433, 0x39), + DATA_MAKE_NUM(DATADIR_M433, 0x41), + DATA_MAKE_NUM(DATADIR_M433, 0x49), + DATA_MAKE_NUM(DATADIR_M433, 0x51), + DATA_MAKE_NUM(DATADIR_M433, 0x59), + 0x17, + 0x18, + 0x48, + 0x49, +}; +s32 lbl_1_data_208[0x11] = { + DATA_MAKE_NUM(DATADIR_M433, 0x67), + DATA_MAKE_NUM(DATADIR_M433, 0x6D), + DATA_MAKE_NUM(DATADIR_M433, 0x73), + DATA_MAKE_NUM(DATADIR_M433, 0x79), + DATA_MAKE_NUM(DATADIR_M433, 0x7F), + DATA_MAKE_NUM(DATADIR_M433, 0x85), + DATA_MAKE_NUM(DATADIR_M433, 0x8B), + DATA_MAKE_NUM(DATADIR_M433, 0x91), + DATA_MAKE_NUM(DATADIR_M433, 0x97), + DATA_MAKE_NUM(DATADIR_M433, 0x9D), + DATA_MAKE_NUM(DATADIR_M433, 0xA3), + DATA_MAKE_NUM(DATADIR_M433, 0xA9), + DATA_MAKE_NUM(DATADIR_M433, 0xAF), + DATA_MAKE_NUM(DATADIR_M433, 0xB5), + DATA_MAKE_NUM(DATADIR_M433, 0xC1), + DATA_MAKE_NUM(DATADIR_M433, 0xBB), + DATA_MAKE_NUM(DATADIR_M433, 0xC7), +}; +M433DllPlayerData24CStruct lbl_1_data_24C[0x15] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.15f, 0.0f, 0.0f, 0 }, + { 3, 0.02f, 0.0f, -1.0f, 0 }, + { 4, 0.02f, 0.2f, -1.0f, 0 }, + { 5, 0.05f, 0.25f, -1.0f, 0 }, + { 6, 0.1f, 0.0f, -1.0f, 0 }, + { 7, 0.02f, 0.0f, -1.0f, 0 }, + { 0xB, 0.02f, 0.4f, -1.0f, 0 }, + { 0xC, 0.02f, 0.36666667f, -1.0f, 0 }, + { 8, 0.01f, 0.2f, -1.0f, 0 }, + { 9, 0.02f, 0.0f, -1.0f, 0 }, + { 0xA, 0.02f, 0.0f, -1.0f, 0 }, + { 5, 0.08f, 0.0f, 0.25f, 0 }, + { 0xB, 0.2f, 0.0f, 0.4f, 0 }, + { 0xC, 0.08f, 0.0f, 0.3f, 0 }, + { 0xD, 0.2f, 0.0f, -1.0f, 0 }, + { 0xE, 0.2f, 0.0f, -1.0f, 0 }, + { 0xF, 0.2f, 0.0f, -1.0f, 0 }, + { 0x10, 0.2f, 0.0f, -1.0f, 0 }, +}; +u32 lbl_1_data_3F0[0xE] = { + 0x32, + 0x32, + 0x3C, + 0x32, + 0x32, + 0x5A, + 0x32, + 0x3C, + 0x64, + 0x1E, + 0x32, + 0x1E, + 0x28, + 0x32, +}; + +// M433PlayerWork +omObjData *lbl_1_bss_7D0[5]; +// M433PlayerWork2 +omObjData *lbl_1_bss_7CC; +// M433PlayerWork3 +omObjData *lbl_1_bss_7C8; +u32 lbl_1_bss_7B8[4]; + +void fn_1_5904(Process *process) +{ + u32 sp18[4]; + s32 sp8[4]; + + s16 var_r31; + s16 var_r30; + u32 var_r28; + omObjData *var_r27; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp18[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { + if (sp18[var_r31] > sp18[var_r30]) { + var_r28 = sp18[var_r31]; + sp18[var_r31] = sp18[var_r30]; + sp18[var_r30] = var_r28; + var_r28 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r28; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_7B8[sp8[var_r31]] = var_r31; + } + lbl_1_bss_7C8 = omAddObjEx(process, 0x14, 0, 0, 0, fn_1_DF44); + lbl_1_bss_7CC = omAddObjEx(process, 0x15, 0x1F, 0, 0, fn_1_BD48); + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r27 = lbl_1_bss_7D0[var_r31] = omAddObjEx(process, 0x28, 2, 0x11, 0, fn_1_5B98); + var_r27->work[0] = var_r31; + } +} + +void fn_1_5B74(void) +{ + CharModelKill(-1); +} + +void fn_1_5B98(omObjData *object) +{ + s32 sp8; + M433PlayerWork *work; + s16 var_r29; + u32 var_r28; + s32 var_r27; + + float spC[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork)); + var_r27 = object->work[0]; + var_r28 = GWPlayerCfg[var_r27].character; + work->unk_00 = var_r28; + work->unk_04 = -1; + if (var_r28 >= 8) { + work->unk_04 = var_r28 - 8; + } + sp8 = work->unk_08 = 0; + work->unk_14 = (lbl_1_bss_7B8[object->work[0]] >> 1) & 1; + work->unk_18 = lbl_1_bss_7B8[object->work[0]] & 1; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != object->work[0]) && (work->unk_14 == ((lbl_1_bss_7B8[var_r29] >> 1) & 1))) { + break; + } + } + work->unk_14C = lbl_1_bss_7D0[var_r29]; + work->unk_C0 = spC[GWPlayerCfg[var_r27].diff & 3]; + work->unk_2C = GWPlayerCfg[object->work[0]].iscom; + if (work->unk_04 < 0) { + object->model[0] = CharModelCreate(var_r28, 4); + CharModelStepTypeSet(var_r28, 2); + } + else { + object->model[0] = Hu3DModelCreateFile(lbl_1_data_180[work->unk_04]); + } + Hu3DModelShadowSet(object->model[0]); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 8)); + Hu3DModelLayerSet(object->model[1], 1); + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + if (work->unk_04 < 0) { + if (lbl_1_data_1C4[var_r29] < 0x10000) { + object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_1C4[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_1C4[var_r29]); + } + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_04 + lbl_1_data_208[var_r29]); + } + } + if (work->unk_04 < 0) { + CharModelVoiceEnableSet(var_r28, object->motion[16], 0); + CharModelMotionDataClose(var_r28); + } + else { + CharModelEffectNpcInitSilent(object->model[0], object->motion[1], 0); + CharModelEffectNpcInitSilent(object->model[0], object->motion[2], 1); + } + object->trans.x = work->unk_128.x = (0.4f * (700.0f * (object->work[0] + 1))) - 700.0f; + object->trans.y = work->unk_128.y = 0.0f; + object->trans.z = work->unk_128.z = 0.0f; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_A4 = work->unk_A8 = 0.0f; + work->unk_AC = 0.0f; + work->unk_B0 = 0.02f; + work->unk_120 = lbl_1_data_118[var_r28]; + work->unk_0C = -1; + work->unk_70 = -1; + fn_1_B4D4(object, 0); + work->unk_74 = 0; + object->func = fn_1_6070; +} + +void fn_1_6070(omObjData *object) +{ + M433PlayerWork *work = object->data; + fn_1_722C(object); + work->unk_74 = 0; + object->func = fn_1_60C0; +} + +void fn_1_60C0(omObjData *object) +{ + Vec spC; + float var_f31; + float var_f30; + + M433PlayerWork *work = object->data; + s32 var_r29 = 0; + M433PlayerWork *var_r28 = work->unk_14C->data; + work->unk_1C = 0; + work->unk_20 = 0; + work->unk_28 = 0.0f; + work->unk_24 = 0.0f; + if ((work->unk_30 == 0) && (work->unk_70 != fn_1_10ECC(work->unk_14))) { + work->unk_70 = fn_1_10ECC(work->unk_14); + switch (fn_1_10ECC(work->unk_14)) { + case 0: + work->unk_6C = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_74 = 0; + work->unk_38 = 0; + work->unk_3C = work->unk_40 = 0; + work->unk_128.y = 0.0f; + if (work->unk_18 == fn_1_10F38(work->unk_14)) { + if (fn_1_10F00(work->unk_14) != 0) { + work->unk_128.z = 0.0f; + work->unk_128.x = 840.00006f; + work->unk_74 = 1; + work->unk_38 = 1; + } + else { + work->unk_128.z = 140.0f; + work->unk_128.x = 540.2f; + } + } + else { + work->unk_128.z = -140.0f; + work->unk_128.x = 385.1f; + } + work->unk_A4 = work->unk_A8 = -90.0f; + work->unk_AC = 1.0f; + work->unk_B0 = 1.0f; + if (work->unk_14 == 0) { + work->unk_128.x *= -1.0f; + work->unk_A4 = work->unk_A8 = 90.0f; + } + work->unk_0C = -1; + work->unk_34 = 1; + work->unk_88 = work->unk_8C = 0; + work->unk_7C = work->unk_78 = work->unk_80 = 0; + break; + case 1: + case 2: + if (work->unk_74 == 1) { + work->unk_34 = 0; + }; + break; + case 3: + work->unk_74 = 2; + work->unk_7C = work->unk_78 = work->unk_80 = 0; + work->unk_34 = 0; + break; + case 4: + case 5: + work->unk_74 = 3; + break; + case 6: + case 7: + if (fn_1_10F6C(work->unk_14) != 0) { + fn_1_B4D4(object, 0x13); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); + } + VECSubtract(&var_r28->unk_128, &work->unk_128, &spC); + work->unk_A8 = atan2d(spC.x, spC.z); + work->unk_AC = 0.15f; + work->unk_B0 = 0.0f; + } + else { + fn_1_B4D4(object, 0x14); + } + work->unk_74 = 4; + break; + default: + break; + } + } + if (fn_1_216C() == 2) { + if (work->unk_2C != 0) { + fn_1_74D4(object); + } + else { + work->unk_20 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_1C = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_28 = atan2d(var_f31, var_f30); + work->unk_24 = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_24 > 1.0f) { + work->unk_24 = 1.0f; + } + } + } + switch (work->unk_74) { + case 0: + fn_1_B4D4(object, 0); + var_r29 = 1; + break; + case 1: + fn_1_8F80(object); + break; + case 2: + fn_1_8BD0(object); + fn_1_AB88(object); + fn_1_9688(object); + break; + case 3: + fn_1_8BD0(object); + fn_1_A618(object); + fn_1_9688(object); + break; + case 4: + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_30 = 0; + if (fn_1_B6E0(object) != 0) { + work->unk_30 = 0; + work->unk_74 = 0; + } + break; + } + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + if (fn_1_10ECC(work->unk_14) >= 2) { + fn_1_B194(object); + } + fn_1_722C(object); + if ((fn_1_216C() == 3) && (var_r29 != 0)) { + work->unk_74 = 0; + object->func = fn_1_682C; + } +} + +void fn_1_682C(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float sp8[2]; + float var_f31; + M433PlayerWork *var_r30; + M433PlayerWork *var_r29; + M433PlayerWork *var_r27; + Vec *var_r26; + s32 var_r25; + M433PlayerWork *var_r24; + s32 var_r23; + + M433PlayerWork *work = object->data; + { + Vec sp40[2] = { { 130.0f, 0.0f, -50.0f }, { 250.0f, 0.0f, 50.0f } }; + Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } }; + var_r27 = work->unk_14C->data; + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + fn_1_B194(object); + fn_1_722C(object); + switch (work->unk_74) { + case 0: + fn_1_B4D4(object, 0); + if (fn_1_2244() != 0) { + if (work->unk_18 == 0) { + var_r23 = 1; + if (work->unk_14 == 0) { + sp40[0].x *= -1.0f; + sp40[1].x *= -1.0f; + sp28[0].x *= -1.0f; + sp28[1].x *= -1.0f; + } + var_r30 = work; + var_r29 = var_r27; + var_r26 = sp40; + work->unk_84 = var_r27->unk_84 = 0; + if (lbl_1_data_3F0[var_r30->unk_00] != lbl_1_data_3F0[var_r29->unk_00]) { + if (lbl_1_data_3F0[var_r30->unk_00] < lbl_1_data_3F0[var_r29->unk_00]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + var_f31 = fn_1_11130(&var_r30->unk_128, &sp40[0], &var_r29->unk_128, &sp40[1]); + sp8[0] = 0.8f * (var_r30->unk_120 + var_r29->unk_120); + if (var_f31 < sp8[0]) { + var_r26 = sp28; + work->unk_84 = var_r27->unk_84 = 1; + OSReport("Escape!\n"); + } + else { + var_r23 = 0; + OSReport("Direct!\n"); + } + } + if (var_r23 != 0) { + var_r30 = work; + var_r29 = var_r27; + for (var_r25 = 0; var_r25 < 2; var_r25++) { + sp8[var_r25] = fn_1_11130(&var_r30->unk_128, &var_r26[var_r25 & 1], &var_r29->unk_128, &var_r26[(var_r25 + 1) & 1]); + } + if (sp8[0] < sp8[1]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + } + var_r30->unk_140 = var_r26[0]; + var_r30->unk_140.z -= var_r30->unk_120; + var_r29->unk_140 = var_r26[1]; + } + work->unk_30 = work->unk_60 = work->unk_34 = 0; + if (work->unk_84 != 0) { + work->unk_74++; + } + else { + work->unk_74 += 2; + } + work->unk_88 = 0; + break; + } + break; + case 1: + if (work->unk_84 == 1) { + VECSubtract(&work->unk_140, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (var_f31 < 20.0f) { + var_f31 = 0.01f; + work->unk_84++; + } + else { + if (VECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_28 = 180.0 * (atan2(sp10.x, sp10.z) / 3.141592653589793); + work->unk_24 = var_f31; + fn_1_8BD0(object); + } + else if (work->unk_84 == 2) { + fn_1_BAE0(object, 0); + if ((work->unk_18 == 0) && (var_r27->unk_84 != 0)) { + if (work->unk_14 == 0) { + sp40[0].x *= -1.0f; + sp40[1].x *= -1.0f; + } + var_r30 = work; + var_r29 = var_r27; + if (lbl_1_data_3F0[var_r30->unk_00] < lbl_1_data_3F0[var_r29->unk_00]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + var_r30->unk_140 = sp40[0]; + var_r30->unk_140.z -= var_r30->unk_120; + var_r29->unk_140 = sp40[1]; + work->unk_84 = var_r27->unk_84 = 3; + } + } + if (work->unk_84 == 3) { + work->unk_74++; + work->unk_88 = 0; + return; + } + break; + case 2: + VECSubtract(&work->unk_140, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (var_f31 < 10.0f) { + var_f31 = 0.01f; + } + else { + if (VECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31; + fn_1_8BD0(object); + if ((work->unk_24 < 0.02f) || (work->unk_88 > 300.0f)) { + work->unk_A8 = 0.0f; + work->unk_AC = 0.15f; + work->unk_B0 = 0.0f; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_21E4(object->work[0]); + work->unk_74++; + return; + } + break; + case 3: + if (fn_1_2184() == 1) { + if (fn_1_10FA4(work->unk_14) != 0) { + fn_1_B4D4(object, 0x11); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); + } + } + else { + fn_1_B4D4(object, 0x12); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][1]); + } + } + work->unk_74++; + return; + } + fn_1_BAE0(object, 0); + return; + case 4: + if (fn_1_10FA4(work->unk_14) != 0) { + sp1C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + sp1C.y = Center.y + (CZoom * -sind(CRot.x)); + sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); + VECSubtract(&sp1C, &work->unk_128, &sp10); + work->unk_A8 = atan2d(sp10.x, sp10.z); + } + if (fn_1_B6E0(object) != 0) { + fn_1_2214(object->work[0]); + work->unk_74++; + } + break; + } + } +} + +char *lbl_1_data_450[6] = { + "itemhook_R", + "itemhook_r", + "itemhook_R", + "itemhook_R", + "itemhook_r", + "itemhook_r", +}; +s32 lbl_1_data_468[9] = { 0, 0, 1, 1, 1, 1, 1, 0, 1 }; +float lbl_1_data_48C[0x12] = { + 0.0f, + 0.6666667f, + 2.1666667f, + 2.0f, + 1.0f, + 7.0000005f, + 1.5000001f, + 1.5000001f, + 3.0000002f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, +}; +Vec lbl_1_data_4D4[9] = { + { 0.0f, 0.0f, 1.0f }, + { 0.0f, 1.5f, 1.0f }, + { 236.5f, 0.0f, 1300.0f }, + { 0.0f, 1.5f, 1.0f }, + { 0.0f, 1.8f, 1.0f }, + { 231.0f, 0.0f, 1500.0f }, + { 231.0f, 0.0f, 1000.0f }, + { 0.0f, 1.2f, 1.0f }, + { 0.0f, 0.8f, 1.0f }, +}; +float lbl_1_data_540[9] = { 1.0f, 1.0f, 3.0f, 1.0f, 1.0f, 4.0f, 2.0f, 1.0f, 1.0f }; + +void fn_1_722C(omObjData *object) +{ + Vec sp8; + + M433PlayerWork *work = object->data; + work->unk_9C++; + work->unk_88++; + object->trans.x = work->unk_128.x; + object->trans.y = work->unk_128.y; + object->trans.z = work->unk_128.z; + work->unk_AC = work->unk_AC + work->unk_B0; + if (work->unk_AC > 0.45f) { + work->unk_AC = 0.45f; + } + work->unk_A4 = fn_1_26C4(work->unk_A4, work->unk_A8, work->unk_AC); + object->rot.y = work->unk_A4; + Hu3DModelPosSet(object->model[1], work->unk_128.x, 11.0f, work->unk_128.z); + work->unk_BC += 3.0000002f; + if (work->unk_BC >= 360.0f) { + work->unk_BC -= 360.0f; + } + Hu3DModelRotSet(object->model[1], 0.0f, work->unk_BC, 0.0f); + work->unk_B8 = 0.0f; + if (fn_1_216C() == 2) { + if (((fn_1_10EA4() == 4) || (fn_1_10EA4() == 3)) && (work->unk_14 == fn_1_10740(&sp8)) && (fn_1_10FDC() != 0) && (fn_1_10FDC() < 3) + && (work->unk_60 == 0) && (fn_1_11004(work->unk_14, work->unk_18) != 0)) { + work->unk_B8 = 1.0f; + } + if (work->unk_74 == 1) { + work->unk_B8 = 1.0f; + } + } + work->unk_B4 += 0.1f * (work->unk_B8 - work->unk_B4); + Hu3DModelScaleSet(object->model[1], work->unk_B4, 1.0f, work->unk_B4); + if ((work->unk_B8 <= 0.0f) && (work->unk_B4 < 0.1f)) { + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + work->unk_B4 = 0.0f; + return; + } + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); +} + +void fn_1_74D4(omObjData *object) +{ + Vec sp1C; + Vec sp10; + M433PlayerWork *spC; + float var_f31; + + M433PlayerWork *work = object->data; + s32 var_r29 = 1; + s32 sp8 = 0; + spC = work->unk_14C->data; + switch (work->unk_74) { + case 0: + work->unk_6C = 0; + fn_1_873C(object); + break; + case 1: + if (work->unk_3C != 0) { + work->unk_1C = work->unk_1C | 0x100; + work->unk_DC = frandmod(0x168); + work->unk_E0 = 0.3f + (0.00040000002f * (work->unk_C0 * frandmod(0x3E8))); + work->unk_E4 = 0; + if (frandmod(0x3E8) > (300.0f + (500.0f * work->unk_C0))) { + work->unk_E4 = 1; + } + } + if (fn_1_10614(&sp1C) != 0) { + if (work->unk_E4 != 0) { + if ((fabs(sp1C.z) > 1.100000023841858) || (sp1C.x > 1.1f)) { + work->unk_E0 = 0.0f; + } + } + else { + if ((fabs(sp1C.z) > 0.949999988079071) || (sp1C.x > 0.95f)) { + work->unk_E0 = 0.0f; + } + } + } + work->unk_28 = work->unk_DC; + work->unk_24 = work->unk_E0; + if (work->unk_40 != 0) { + if (work->unk_D0++ >= work->unk_CC) { + work->unk_1C = work->unk_1C | 0x100; + } + } + else if (work->unk_60 != 0) { + work->unk_CC = ((60.0f * (0.35f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D0 = 0; + } + fn_1_873C(object); + break; + case 2: + work->unk_F0 = 0; + if (frandmod(0x3E8) < (300.0f * work->unk_C0)) { + work->unk_F0 = 1; + } + fn_1_8408(object); + if (work->unk_F4 != 0) { + if (fn_1_10EA4() == 2) { + work->unk_F4 = 0; + work->unk_F8 = 0; + } + if (work->unk_14 == fn_1_107B0(&sp1C)) { + work->unk_D8++; + } + if ((work->unk_14 == fn_1_107B0(&sp1C)) && (work->unk_F8 == 0)) { + fn_1_10B20(0.9f, &work->unk_108); + work->unk_108.x = 115.0f; + if (work->unk_14 == 0) { + work->unk_108.x *= -1.0f; + } + work->unk_F8++; + } + if (work->unk_F8 == 1) { + if ((work->unk_D8 >= (0.5f * work->unk_D4)) && (fn_1_10D24(&work->unk_108) != 0)) { + work->unk_108.x = 115.0f; + if (work->unk_14 == 0) { + work->unk_108.x *= -1.0f; + } + work->unk_F8++; + } + } + else if ((work->unk_F8 == 2) && ((work->unk_D8 >= work->unk_D4) || (work->unk_14 == fn_1_10740(&sp1C)))) { + work->unk_1C = work->unk_1C | 0x200; + work->unk_F4 = 0; + work->unk_F8 = 0; + } + } + if ((work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_10900() >= (60.0f * (0.8f - (0.4f * work->unk_C0)))) && (work->unk_6C != 0)) { + VECSubtract(&sp1C, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (VECMag(&sp10) >= 20.0f) { + if (var_f31 >= 50.0f) { + var_f31 = 50.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 50.0f; + } + if ((fn_1_10848() < (0.8f - (0.6f * work->unk_C0))) && ((work->unk_44 != 0) || ((work->unk_48 != 0) && (work->unk_EC != 0)))) { + work->unk_1C = work->unk_1C | 0x100; + } + var_r29 = 0; + } + if (work->unk_F8 != 0) { + VECSubtract(&work->unk_108, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (var_f31 >= 10.0f) { + if (var_f31 >= 50.0f) { + var_f31 = 50.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 50.0f; + } + else { + work->unk_28 = 90.0f; + if (work->unk_14 != 0) { + work->unk_28 *= -1.0f; + } + work->unk_24 = 0.01f; + } + var_r29 = 0; + } + if (var_r29 != 0) { + VECSubtract(&work->unk_FC, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0)); + if (var_f31 >= 10.0f) { + if (var_f31 >= 70.0f) { + var_f31 = 70.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 70.0f; + break; + } + work->unk_28 = 90.0f; + if (work->unk_14 != 0) { + work->unk_28 *= -1.0f; + break; + } + } + break; + case 3: + fn_1_8408(object); + fn_1_873C(object); + if (work->unk_14 == fn_1_10740(&sp1C)) { + if (work->unk_68 == 0) { + if (fn_1_11004(work->unk_14, work->unk_18) != 0) { + VECSubtract(&sp1C, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (var_f31 >= 30.000002f) { + if (var_f31 >= 70.0f) { + var_f31 = 70.0f; + } + work->unk_24 = var_f31 / 70.0f; + work->unk_28 = atan2d(sp10.x, sp10.z); + } + } + if ((((work->unk_6C == 0) && (fn_1_10EA4() == 3) && (work->unk_F0 != 0)) || ((work->unk_6C != 0) && (fn_1_10EA4() == 4))) + && (work->unk_5C != 0)) { + work->unk_1C = work->unk_1C | 0x200; + work->unk_E8 = 0; + if (frandmod(0x3E8) < (s32)(300.0f * (work->unk_C0 - 0.4f))) { + work->unk_E8 = fn_1_8938(work->unk_14, &work->unk_114); + work->unk_DC = 0.0f; + work->unk_E0 = 0.0f; + work->unk_E4 = 0; + } + if (work->unk_E8 == 0) { + work->unk_DC = frandmod(0x168); + work->unk_E0 = 0.3f + (0.00040000002f * (work->unk_C0 * frandmod(0x3E8))); + work->unk_E4 = 0; + if (frandmod(0x3E8) > (300.0f + (500.0f * work->unk_C0))) { + work->unk_E4 = 1; + } + } + } + if ((work->unk_4C != 0) || (work->unk_44 != 0) || (work->unk_48 != 0)) { + work->unk_1C = work->unk_1C | 0x100; + break; + } + } + else { + if (fn_1_10614(&sp1C) != 0) { + if (work->unk_E8 != 0) { + VECSubtract(&work->unk_114, &sp1C, &sp10); + sp10.y = 0.0f; + var_f31 = VECMag(&sp10); + if (var_f31 < 0.05f) { + work->unk_DC = 0.0f; + work->unk_E0 = 0.0f; + } + else { + if (work->unk_14 != 0) { + sp10.x *= -1.0f; + } + work->unk_DC = atan2d(sp10.x, sp10.z); + work->unk_E0 = 1.0f; + } + } + if (work->unk_E4 != 0) { + if ((fabs(sp1C.z) > 1.100000023841858) || (sp1C.x > 1.1f)) { + work->unk_E0 = 0.0f; + } + } + else { + if ((fabs(sp1C.z) > 0.949999988079071) || (sp1C.x > 0.95f)) { + work->unk_E0 = 0.0f; + } + } + } + work->unk_28 = work->unk_DC; + work->unk_24 = work->unk_E0; + if (work->unk_54 != 0) { + if (work->unk_D0++ >= work->unk_CC) { + work->unk_1C |= 0x100; + break; + } + } + else { + work->unk_CC = ((60.0f * (0.35f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D0 = 0; + } + } + } + break; + } +} + +void fn_1_8408(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + M433PlayerWork *work = object->data; + M433PlayerWork *var_r30 = work->unk_14C->data; + + if (var_r30->unk_2C == 0) { + var_r30->unk_C0 = work->unk_C0 - 0.1f; + } + if ((work->unk_14 == fn_1_107B0(&sp14)) && (fn_1_108C4() >= 12.0f)) { + if (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) { + if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) { + VECSubtract(&sp14, &work->unk_128, &sp8); + sp8.y = 0.0f; + var_f31 = VECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); + VECSubtract(&sp14, &var_r30->unk_128, &sp8); + sp8.y = 0.0f; + var_f30 = VECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); + if ((work->unk_30 != 0) || (work->unk_60 != 0)) { + var_f31 = 2000.0f; + } + if ((var_r30->unk_30 != 0) || (var_r30->unk_60 != 0)) { + var_f30 = 2000.0f; + } + if (var_f31 >= 300.0f) { + var_r30->unk_F4 = 0; + } + if (var_f30 >= 300.0f) { + work->unk_F4 = 0; + } + if (work->unk_F4 != 0) { + var_f31 += 300.0f; + } + if (var_r30->unk_F4 != 0) { + var_f30 += 300.0f; + } + var_r30->unk_6C = work->unk_6C = 0; + if (var_f31 <= var_f30) { + work->unk_6C = 1; + work->unk_F4 = 0; + } + else { + var_r30->unk_6C = 1; + var_r30->unk_F4 = 0; + } + if (work->unk_F4 == 0) { + work->unk_F8 = 0; + } + if (var_r30->unk_F4 == 0) { + var_r30->unk_F8 = 0; + } + } + } + else if (fn_1_10FDC() == 1) { + work->unk_6C = fn_1_11004(work->unk_14, work->unk_18) == 0; + var_r30->unk_6C = work->unk_6C == 0; + } + } + else if (work->unk_14 != fn_1_10740(&sp14)) { + var_r30->unk_6C = work->unk_6C = 0; + } +} + +void fn_1_873C(omObjData *object) +{ + M433PlayerWork *work = object->data; + work->unk_EC = 0; + if (frandmod(0x3E8) < (600.0f * work->unk_C0)) { + work->unk_EC = 1; + } + work->unk_F4 = 0; + work->unk_F8 = 0; + if ((work->unk_18 != fn_1_10F38(work->unk_14)) && (work->unk_74 != 0) && (frandmod(0x3E8) < (500.0f * work->unk_C0))) { + work->unk_F4 = 1; + work->unk_D4 = ((60.0f * (0.5f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D8 = 0; + } + if (work->unk_18 == fn_1_10F38(work->unk_14)) { + work->unk_FC.z = 140.0f; + work->unk_FC.x = 540.2f; + } + else { + work->unk_FC.z = -140.0f; + work->unk_FC.x = 300.5f; + } + if (work->unk_14 == 0) { + work->unk_FC.x *= -1.0f; + } +} + +s32 fn_1_8938(u32 var_r27, Vec *var_r29) +{ + Vec sp2C[2]; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + u32 var_r31; + u32 var_r30; + + for (var_r31 = 0, var_r30 = 0; (var_r30 < 4) && (var_r31 < 2); var_r30++) { + M433PlayerWork *work = lbl_1_bss_7D0[var_r30]->data; + if (work->unk_14 != var_r27) { + sp2C[var_r31] = work->unk_128; + sp2C[var_r31].y = 0.0f; + var_r31++; + } + } + if (var_r31 < 2) { + return 0; + } + if (var_r27 == 1) { + sp2C[0].x *= -1.0f; + sp2C[1].x *= -1.0f; + } + var_f29 = 47.0f; + var_f28 = 70.0f; + var_f30 = -1.0f; + sp14.z = -350.0f; + sp14.y = 0.0f; + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + sp14.x = 230.0f; + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + VECSubtract(&sp14, &sp2C[0], &sp20); + var_f31 = VECMag(&sp20); + VECSubtract(&sp14, &sp2C[1], &sp20); + var_f31 *= VECMag(&sp20); + if (var_f31 > var_f30) { + var_f30 = var_f31; + sp8 = sp14; + } + sp14.x += var_f29; + } + sp14.z += var_f28; + } + *var_r29 = sp8; + var_r29->x -= 465.0f; + var_r29->x *= 0.004255319f; + var_r29->z *= 0.0028571428f; + return 1; +} + +void fn_1_8BD0(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + M433PlayerWork *work = object->data; + s32 var_r29 = 1; + if ((work->unk_30 == 0) && (work->unk_60 == 0)) { + if ((work->unk_24 > 0.0f) && (work->unk_34 == 0)) { + work->unk_A8 = work->unk_28; + } + if ((work->unk_24 > 0.05f) && (work->unk_34 == 0)) { + work->unk_134.x = 0.01666666753590107 * (550.0 * (work->unk_24 * sind(work->unk_28))); + work->unk_134.z = 0.01666666753590107 * (550.0 * (work->unk_24 * cosd(work->unk_28))); + if (work->unk_2C != 0) { + work->unk_AC = 0.1f; + } + else { + work->unk_AC = 0.2f; + } + work->unk_B0 = 0.0f; + if (fn_1_B7AC(object) != 0) { + var_f30 = 0.5f; + if (work->unk_0C == 2) { + var_f30 = 0.45f; + } + if (work->unk_24 > var_f30) { + fn_1_B4D4(object, 2); + var_f31 = work->unk_24; + } + else { + fn_1_B4D4(object, 1); + var_f31 = work->unk_24 / var_f30; + } + if (work->unk_04 < 0) { + CharModelMotionSpeedSet(work->unk_00, var_f31); + } + else { + Hu3DMotionSpeedSet(object->model[0], var_f31); + } + } + if ((work->unk_24 > 0.5f) && (((work->unk_88 + 0xF) & 0xF) == 0)) { + fn_1_D888(&work->unk_128, 0.2f); + } + } + else { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + if ((work->unk_5C != 0) && (fn_1_10FDC() >= 2)) { + fn_1_B4D4(object, 0x10); + } + else if (work->unk_4C != 0) { + fn_1_B4D4(object, 0xF); + } + else if (work->unk_44 != 0) { + fn_1_B4D4(object, 0xE); + } + else { + fn_1_BAE0(object, 0); + } + if ((var_r29 != 0) && (work->unk_24 == 0.0f)) { + fn_1_10B20(0.0f, &sp14); + VECSubtract(&sp14, &work->unk_128, &sp8); + work->unk_A8 = atan2d(sp8.x, sp8.z); + work->unk_AC = 0.1f; + work->unk_B0 = 0.0f; + } + } + } +} + +void fn_1_8F80(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + + M433PlayerWork *work = object->data; + s32 var_r29 = work->unk_40; + { + s32 sp8[2] = { 0x6A4, 0x6A5 }; + work->unk_3C = 0; + work->unk_40 = 0; + if (work->unk_04 < 0) { + char *var_r28 = CharModelHookNameGet(work->unk_00, 4, 0); + Hu3DModelObjPosGet(object->model[0], var_r28, &sp10); + } + else { + Hu3DModelObjPosGet(object->model[0], lbl_1_data_450[work->unk_04], &sp10); + } + switch (work->unk_8C) { + case 0: + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_8C++; + work->unk_88 = 0; + + case 1: + work->unk_30 = 0; + work->unk_38 = 1; + fn_1_B4D4(object, 3); + fn_1_FE8C(&sp10, 0, work->unk_14, work->unk_18); + if (fn_1_10ECC(work->unk_14) != 1) { + work->unk_88 = 0; + break; + } + if (work->unk_34 == 0) { + work->unk_3C = 1; + if ((work->unk_1C & 0x100) || (work->unk_88 > 300.0f)) { + fn_1_B4D4(object, 4); + work->unk_30 = 1; + work->unk_8C++; + work->unk_88 = 0; + } + } + break; + case 2: + if (work->unk_60 == 0) { + work->unk_134.x = 1.6666667461395264 * (2.0 * sind((10.0f + (4.285714f * work->unk_88)))); + if (work->unk_14 != 0) { + work->unk_134.x *= -1.0f; + } + } + if ((work->unk_88 >= 9.0f) && (work->unk_38 != 0)) { + if (work->unk_14 != 0) { + var_f30 = -1.0f; + } + else { + var_f30 = 1.0f; + } + sp1C.x = object->trans.x + (250.0f * var_f30); + sp1C.y = 80.0f + object->trans.y; + sp1C.z = sp10.z; + fn_1_FE8C(&sp1C, 1, work->unk_14, work->unk_18); + work->unk_38 = 0; + } + else if (work->unk_88 >= 28.0f) { + var_f31 = 0.5f; + work->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[work->unk_00])) / (var_f31 * var_f31); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f31); + work->unk_60 = 1; + work->unk_8C++; + work->unk_88 = 0; + fn_1_D888(&work->unk_128, 0.5f); + } + if (work->unk_38 == 0) { + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, 0, &sp1C); + break; + } + fn_1_FE8C(&sp10, 0, work->unk_14, work->unk_18); + break; + case 3: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if ((work->unk_88 > 27.0f) && (work->unk_88 < 51.0f)) { + work->unk_40 = 1; + } + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_40, &sp1C); + if (((work->unk_40 != 0) && ((work->unk_1C & 0x100) != 0)) || ((work->unk_40 == 0) && (var_r29 != 0))) { + fn_1_B4D4(object, 5); + if (work->unk_40 == 0) { + fn_1_1070C(); + } + fn_1_FE8C(&sp1C, 2, work->unk_14, work->unk_18); + work->unk_40 = 0; + work->unk_8C = 5; + work->unk_88 = 0; + HuAudFXPlay(sp8[work->unk_14]); + } + break; + case 4: + if (work->unk_88 >= 12.0f) { + work->unk_60 = 0; + work->unk_8C = 1; + work->unk_88 = 0; + } + break; + case 5: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if (work->unk_128.y <= 0.0f) { + work->unk_60 = 0; + fn_1_D888(&work->unk_128, 0.5f); + work->unk_30 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + } + break; + } + } +} + +void fn_1_9688(omObjData *object) +{ + Vec sp2C; + Vec sp20; + float var_f31; + float var_f30; + float var_f29; + + M433PlayerWork *work = object->data; + s32 sp38[3][3] = { { 3, 4, 6 }, { 3, 4, 6 }, { 3, 4, 7 } }; + s32 sp18[2] = { 0x6AD, 0x6AE }; + s32 sp10[2] = { 0x6A6, 0x6A7 }; + s32 sp8[2] = { 0x6AA, 0x6AB }; + M433PlayerWork *var_r29 = work->unk_14C->data; + + work->unk_4C = 0; + work->unk_44 = 0; + work->unk_48 = 0; + if (work->unk_60 == 0) { + switch (work->unk_7C) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) + && (work->unk_30 = 0, work->unk_64 = 0, ((work->unk_34 == 0) != 0)) && (work->unk_14 == fn_1_10740(&sp2C)) + && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3)) { + work->unk_140 = sp2C; + var_f31 = fn_1_10848(); + if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { + VECSubtract(&sp2C, &work->unk_128, &sp20); + sp20.y = 0.0f; + var_f30 = VECMag(&sp20); + work->unk_98 = var_f30; + if (var_f30 <= 200.0f) { + if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { + work->unk_4C = 1; + } + if ((var_f31 >= 0.02f) && (var_f30 <= 100.0f) && (var_f31 >= (0.02f + (0.001f * var_f30)))) { + work->unk_44 = 1; + } + if ((var_f31 >= 0.1f) && (var_f31 <= 0.3f) && (var_f30 > 100.0f) && (var_f30 <= 200.0f) + && (var_f31 >= (0.1f + (0.0002f * (var_f30 - 100.0f))))) { + work->unk_48 = 1; + } + } + } + if ((work->unk_1C & 0x100) != 0) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + if (work->unk_4C != 0) { + work->unk_7C = 1; + var_f31 -= 0.12f; + work->unk_98 *= 0.014285714f; + fn_1_B4D4(object, 0xF); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_44 != 0) { + work->unk_7C = 2; + var_f31 -= 0.03f; + work->unk_98 *= 0.01f; + fn_1_B4D4(object, 0xE); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_48 != 0) { + work->unk_7C = 3; + var_f31 -= 0.03f; + work->unk_98 *= 0.005f; + fn_1_B4D4(object, 7); + fn_1_D888(&work->unk_128, 0.75f); + HuAudFXPlay(sp8[work->unk_14]); + } + else { + if (fn_1_10FDC() >= 1) { + fn_1_B4D4(object, 9); + } + else { + fn_1_B4D4(object, 6); + } + work->unk_7C = 4; + } + if (work->unk_7C < 4) { + work->unk_64 = 1; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_90 = 60.0f * var_f31; + } + VECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_30 = 1; + work->unk_88 = 0; + } + } + break; + case 1: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + if (fn_1_10FDC() >= 2) { + sp2C.x = 350.0f; + sp2C.y = 11.0f; + sp2C.z = 0.0f; + if (work->unk_14 != 0) { + sp2C.x *= -1.0f; + } + } + else { + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[0][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + HuAudFXPlay(sp10[work->unk_14]); + } + work->unk_64 = 0; + fn_1_B4D4(object, 9); + VECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; + } + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + } + break; + case 2: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + switch (fn_1_10FDC()) { + case 0: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + break; + case 1: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + break; + case 2: + default: + sp2C.x = 350.0f; + sp2C.y = 11.0f; + sp2C.z = 0.0f; + if (work->unk_14 != 0) { + sp2C.x *= -1.0f; + } + break; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[1][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { + HuAudFXPlay(sp10[work->unk_14]); + } + } + work->unk_64 = 0; + fn_1_B4D4(object, 6); + VECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; + break; + } + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + break; + } + } + break; + case 3: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + sp2C = work->unk_128; + sp2C.y = 11.0f; + VECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); + var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); + var_f29 += frandmod(0xB4) - 90.0f; + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + fn_1_10130(&sp2C, work->unk_14); + fn_1_FE8C(&sp2C, sp38[2][fn_1_10FDC()], work->unk_14, work->unk_18); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { + HuAudFXPlay(sp10[work->unk_14]); + } + } + work->unk_64 = 0; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + fn_1_D888(&work->unk_128, 1.3f); + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.15f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.15f * (work->unk_140.z - work->unk_128.z); + break; + } + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + fn_1_B4D4(object, 8); + work->unk_7C = 4; + } + break; + case 4: + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + break; + } + } +} + +void fn_1_A618(omObjData *object) +{ + Vec sp20; + Vec sp14; + M433PlayerWork *sp8; + float var_f31; + float var_f30; + float var_f29; + M433PlayerWork *work = object->data; + s32 spC[2] = { 0x6A8, 0x6A9 }; + sp8 = work->unk_14C->data; + work->unk_54 = 0; + work->unk_5C = 0; + switch (work->unk_80) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) + && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { + VECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + if (!(VECMag(&sp14) > 500.0f)) { + fn_1_10B20(0.5f, &sp20); + sp20.y -= lbl_1_data_E0[work->unk_00]; + VECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + if ((VECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { + work->unk_5C = 1; + } + if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_B4D4(object, 0xA); + work->unk_80 = 1; + work->unk_88 = 0; + work->unk_30 = 1; + if (work->unk_5C != 0) { + var_f30 = 0.5f; + work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); + VECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); + work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); + if (work->unk_14 != 0) { + var_f29 = -90.0f; + } + else { + var_f29 = 90.0f; + } + work->unk_A8 = var_f29; + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_68 = 1; + } + else { + work->unk_134.y = 14.833334f; + } + work->unk_60 = 1; + fn_1_D888(&work->unk_128, 0.75f); + } + } + } + break; + case 1: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if (work->unk_68 != 0) { + var_f31 = (0.016666668f * work->unk_88) - 0.35f; + if ((var_f31 >= 0.0f) && (var_f31 < 0.4)) { + work->unk_54 = 1; + if ((work->unk_1C & 0x100) != 0) { + fn_1_B4D4(object, 0xB); + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + fn_1_FE8C(&sp20, 5, work->unk_14, work->unk_18); + work->unk_68 = 0; + work->unk_54 = 0; + HuAudFXPlay(spC[work->unk_14]); + } + } + else if (var_f31 > 0.0f) { + work->unk_68 = 0; + work->unk_54 = 0; + } + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + } + if (work->unk_128.y <= 0.0f) { + fn_1_D888(&work->unk_128, 0.75f); + work->unk_30 = 0; + work->unk_80 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_60 = 0; + work->unk_68 = 0; + } + break; + } +} + +void fn_1_AB88(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float var_f29; + float var_f28; + + M433PlayerWork *work = object->data; + s32 var_r30 = 0; + s32 sp8[2] = { 0x6A8, 0x6A9 }; + M433PlayerWork *var_r28 = work->unk_14C->data; + + work->unk_58 = 0; + switch (work->unk_78) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) + && (work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_11060(work->unk_14) == 0)) { + float var_f31 = work->unk_128.x; + float var_f30; + if (work->unk_14 == 0) { + var_f31 *= -1.0f; + } + if (!(var_f31 > 230.0f) && (fn_1_10EA4() != 2)) { + if (fn_1_10D24(&sp1C) != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + var_f31 = sp1C.z - work->unk_128.z; + if (var_f31 > 100.0f) { + var_f31 = 100.0f; + } + else if (var_f31 < -100.0f) { + var_f31 = -100.0f; + } + else { + work->unk_58 = 1; + } + } + if ((work->unk_1C & 0x200) != 0) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_B4D4(object, 0xA); + work->unk_78 = 1; + work->unk_88 = 0; + work->unk_30 = 1; + if (work->unk_14 != 0) { + var_f28 = -90.0f; + } + else { + var_f28 = 90.0f; + } + work->unk_A8 = var_f28; + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + fn_1_D888(&work->unk_128, 0.75f); + var_f30 = 0.5f; + work->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[work->unk_00])) / (var_f30 * var_f30); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); + work->unk_134.x = 0.016666668f * (-work->unk_128.x / 0.75f); + if (var_r30 != 0) { + work->unk_134.z = 0.016666668f * (var_f31 / 0.5f); + } + work->unk_60 = 1; + work->unk_58 = 0; + } + } + } + break; + case 1: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if ((work->unk_14 == fn_1_10740(&sp1C)) && (fn_1_10FDC() == 0)) { + fn_1_10B20(0.0f, &sp1C); + if ((sp1C.x * work->unk_128.x) > 0.0f) { + sp1C.y = work->unk_128.y; + VECSubtract(&sp1C, &work->unk_128, &sp10); + if (VECMag(&sp10) < 60.000004f) { + if (frandmod(0x64) < 0x1E) { + fn_1_10740(&sp1C); + sp1C.x *= -0.5f; + fn_1_FE8C(&sp1C, 5, work->unk_14, work->unk_18); + HuAudFXPlay(sp8[work->unk_14]); + } + else { + fn_1_10740(&sp1C); + var_f29 = frandmod(0x168); + sp1C.x += 100.0 * (2.0 * sind(var_f29)); + sp1C.z += 100.0 * (2.0 * cosd(var_f29)); + fn_1_10130(&sp1C, work->unk_14); + fn_1_FE8C(&sp1C, 8, work->unk_14, work->unk_18); + HuAudFXPlay(sp8[work->unk_14]); + } + fn_1_B4D4(object, 0xD); + var_r28->unk_64 = 0; + } + } + } + if (work->unk_128.y <= 0.0f) { + fn_1_D888(&work->unk_128, 0.75f); + work->unk_30 = 0; + work->unk_78 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_60 = 0; + } + break; + } +} + +void fn_1_B194(omObjData *object) +{ + Vec sp8; + float var_f31; + M433PlayerWork *var_r31; + M433PlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 2; var_r27++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_7D0[var_r29]->data; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (var_r29 != var_r28) { + var_r30 = lbl_1_bss_7D0[var_r28]->data; + VECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_120 + var_r30->unk_120); + sp8.x = frandmod(0x3E8) - 0x1F4; + sp8.z = frandmod(0x3E8) - 0x1F4; + } + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); + VECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); + } + } + } + if (var_r31->unk_128.y < 0.0f) { + var_r31->unk_128.y = 0.0f; + } + if ((var_r31->unk_128.z - var_r31->unk_120) < -500.0f) { + var_r31->unk_128.z = -500.0f + var_r31->unk_120; + } + else if ((var_r31->unk_128.z + var_r31->unk_120) > 500.0f) { + var_r31->unk_128.z = 500.0f - var_r31->unk_120; + } + if (var_r31->unk_14 == 0) { + var_r31->unk_128.x *= -1.0f; + } + if ((var_r31->unk_128.x - var_r31->unk_120) < 20.0f) { + var_r31->unk_128.x = 20.0f + var_r31->unk_120; + } + else if ((60.000004f + var_r31->unk_128.x) > 800.0f) { + var_r31->unk_128.x = 740.0f; + } + if (var_r31->unk_14 == 0) { + var_r31->unk_128.x *= -1.0f; + } + } + } +} + +void fn_1_B4D4(omObjData *object, u32 arg1) +{ + M433PlayerWork *work = object->data; + if ((work->unk_0C != arg1) && (arg1 < 0x15)) { + float var_f31 = 60.0f * lbl_1_data_24C[arg1].unk_04; + if (work->unk_0C < 0) { + var_f31 = 0.0f; + } + work->unk_0C = arg1; + if (work->unk_04 < 0) { + CharModelMotionShiftSet( + work->unk_00, object->motion[lbl_1_data_24C[arg1].unk_00], 60.0f * lbl_1_data_24C[arg1].unk_08, var_f31, lbl_1_data_24C[arg1].unk_10); + } + else { + Hu3DMotionShiftSet(object->model[0], object->motion[lbl_1_data_24C[arg1].unk_00], 60.0f * lbl_1_data_24C[arg1].unk_08, var_f31, + lbl_1_data_24C[arg1].unk_10); + } + if (lbl_1_data_24C[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_24C[arg1].unk_08, 60.0f * lbl_1_data_24C[arg1].unk_0C); + } + work->unk_10 = 0; + } +} + +s32 fn_1_B6E0(omObjData *object) +{ + M433PlayerWork *work = object->data; + s32 var_r29 = 0; + if (work->unk_04 < 0) { + if (((CharModelMotionEndCheck(work->unk_00) != 0) || (work->unk_10 != 0)) && (CharModelMotionShiftIDGet(work->unk_00) < 0)) { + var_r29 = 1; + } + } + else if (((Hu3DMotionEndCheck(object->model[0]) != 0) || (work->unk_10 != 0)) && (Hu3DMotionShiftIDGet(object->model[0]) < 0)) { + var_r29 = 1; + } + return var_r29; +} + +s32 fn_1_B7AC(omObjData *object) +{ + M433PlayerWork *work = object->data; + s32 var_r30 = 0; + if (work->unk_04 < 0) { + if (CharModelMotionShiftIDGet(work->unk_00) < 0) { + var_r30 = 1; + } + } + else if (Hu3DMotionShiftIDGet(object->model[0]) < 0) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_B838(omObjData *object, u32 arg1) +{ + s32 var_r26 = 0; + if (fn_1_B6E0(object)) { + fn_1_B4D4(object, arg1); + var_r26 = 1; + } + return var_r26; +} + +s32 fn_1_BAE0(omObjData *object, u32 arg1) +{ + s32 var_r26 = 0; + if (fn_1_B7AC(object)) { + fn_1_B4D4(object, arg1); + var_r26 = 1; + } + return var_r26; +} + +void fn_1_BD48(omObjData *object) +{ + M433PlayerWork2 *work; + s32 var_r29; + s32 var_r28; + HsfanimStruct01 *var_r27; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork2), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork2)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0)); + Hu3DModelShadowSet(object->model[0]); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 4)); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 4)); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 3)); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 7)); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 5)); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(object->model[6], 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(object->model[6], 2); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 6)); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(object->model[7], 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(object->model[7], 2); + var_r28 = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120002, MEMORY_DEFAULT_NUM)), 1); + object->model[8] = var_r28; + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleHookSet(var_r28, fn_1_DE28); + Hu3DModelAttrSet(var_r28, HU3D_ATTR_DISPOFF); + var_r28 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M433, 9)), 0xC8); + object->model[5] = var_r28; + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleHookSet(var_r28, fn_1_D6A8); + for (var_r27 = ((ParticleData *)Hu3DData[var_r28].unk_120)->unk_48, var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r27++) { + var_r27->unk2C = 0.0f; + var_r27->unk40.a = 0; + var_r27->unk00 = 0; + } + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2)); + Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f); + Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[9], 1); + Hu3DModelShadowSet(object->model[9]); + for (var_r29 = 1; var_r29 < 0x15; var_r29++) { + if (var_r29 == 0xA) { + object->model[var_r29 + 9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 1)); + } + else { + object->model[var_r29 + 9] = Hu3DModelLink(object->model[9]); + Hu3DModelLayerSet(object->model[var_r29 + 9], 1); + } + Hu3DModelShadowSet(object->model[var_r29 + 9]); + Hu3DModelScaleSet(object->model[var_r29 + 9], 1.05f, 1.05f, 1.05f); + Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + } + object->trans.x = work->unk_30.x = 0.0f; + object->trans.y = work->unk_30.y = 0.0f; + object->trans.z = work->unk_30.z = 0.0f; + work->unk_B8 = 0.0f; + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; + MTXIdentity(work->unk_C8); + work->unk_18 = 0; + object->func = fn_1_C240; +} + +void fn_1_C240(omObjData *object) +{ + s32 var_r29; + + M433PlayerWork2 *work = object->data; + s32 sp8 = 0; + work->unk_00 = 0; + switch (work->unk_18) { + case 0: + work->unk_04 = 1; + break; + case 1: + work->unk_B8 = 0.0f; + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; + MTXIdentity(work->unk_C8); + work->unk_00 = 1; + break; + case 10: + work->unk_00 = 1; + break; + } + work->unk_8C++; + if (work->unk_90 != 0) { + work->unk_A0 = 1.0f; + if (work->unk_94 == 2) { + work->unk_A4 += 12.000001f; + if (work->unk_A4 >= 360.0f) { + work->unk_A4 -= 360.0f; + } + work->unk_A0 = 1.5f; + work->unk_A8 += 0.015000001f; + Hu3DMotionSpeedSet(object->model[3], 2.5f); + } + else { + Hu3DMotionTimeSet(object->model[3], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + } + Hu3DModelRotSet(object->model[3], 0.0f, work->unk_A4, 0.0f); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[3], work->unk_AC.x, 3.0f + work->unk_AC.y, work->unk_AC.z); + work->unk_98++; + work->unk_90 = 0; + } + else if (work->unk_94 != 0) { + work->unk_94 = 0; + work->unk_A0 = 0.0f; + } + work->unk_9C = work->unk_9C + (0.2f * (work->unk_A0 - work->unk_9C)); + Hu3DModelScaleSet(object->model[3], work->unk_9C, 1.0f, work->unk_9C); + if ((work->unk_A0 <= 0.0f) && (work->unk_9C < 0.1f)) { + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + work->unk_9C = 0.0f; + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_7C[var_r29] += (0.3f * (work->unk_84[var_r29] - work->unk_7C[var_r29])); + if (work->unk_84[var_r29] > 0.0f) { + Hu3DModelAttrReset(object->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + else if (work->unk_7C[var_r29] < 0.1f) { + Hu3DModelAttrSet(object->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelScaleSet(object->model[var_r29 + 1], work->unk_7C[var_r29], 1.0f, work->unk_7C[var_r29]); + } + fn_1_C6B0(object); + fn_1_CB98(object); + object->trans.x = work->unk_30.x; + object->trans.y = work->unk_30.y; + object->trans.z = work->unk_30.z; + if ((fn_1_216C() >= 3) && (work->unk_04 != 0) && (fn_1_2244() != 0)) { + fn_1_DD70(&work->unk_30); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + object->func = fn_1_C6AC; + } +} + +void fn_1_C6AC(omObjData *object) { } + +s32 fn_1_C6B0(omObjData *object) +{ + Mtx sp14; + Vec sp8; + M433PlayerWork3 *var_r29; + s32 var_r28; + + M433PlayerWork2 *work = object->data; + if ((work->unk_00 == 0) && (work->unk_04 == 0) && (work->unk_08 == 0)) { + if (work->unk_10 == 0) { + fn_1_CDB8(&work->unk_F8, &work->unk_30, &work->unk_3C, work->unk_6C, work->unk_A8); + fn_1_D338(&work->unk_F8); + fn_1_D180(&work->unk_F8); + work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]); + VECSubtract(&work->unk_3C, &work->unk_30, &sp8); + sp8.y = 0.0f; + if (VECMag(&sp8) <= 0.0f) { + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; + } + else { + VECNormalize(&sp8, &sp8); + work->unk_BC.x = -sp8.z; + work->unk_BC.y = 0.0f; + work->unk_BC.z = sp8.x; + } + work->unk_48 = 0.0f; + var_r28 = 0; + if (work->unk_84[0] > 0.0f) { + var_r28++; + } + Hu3DModelPosSet(object->model[var_r28 + 1], work->unk_F8.unk_38.x, 3.0f + work->unk_F8.unk_38.y, work->unk_F8.unk_38.z); + if (work->unk_9C <= 0.0f) { + work->unk_8C = 9; + } + if (lbl_1_data_468[work->unk_6C] != 0) { + work->unk_84[var_r28] = 1.0f; + } + work->unk_84[1 - var_r28] = 0.0f; + } + work->unk_10 = 1; + if (work->unk_B8 != 0.0f) { + MTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); + MTXConcat(sp14, work->unk_C8, work->unk_C8); + MTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); + } + work->unk_48 += 0.016666668f; + work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48); + if (work->unk_08 != 0) { + work->unk_84[0] = work->unk_84[1] = 0.0f; + if (work->unk_30.y <= 12.0f) { + var_r29 = lbl_1_bss_7C8->data; + work->unk_78 = 0; + Hu3DModelPosSetV(object->model[4], &work->unk_30); + Hu3DMotionTimeSet(object->model[4], 0.0f); + if ((work->unk_6C == 5) || (work->unk_6C == 2)) { + Hu3DMotionSpeedSet(object->model[4], 1.5f); + fn_1_D888(&work->unk_30, 1.0f); + } + else { + Hu3DMotionSpeedSet(object->model[4], 1.0f); + fn_1_D888(&work->unk_30, 0.5f); + work->unk_30.y += 11.0f; + } + work->unk_6C = 0; + work->unk_04 = 1; + var_r29->unk_2C = 1; + var_r29->sGroundGrp = -1; + if (fabs(work->unk_30.z) < 350.0) { + if (fabs(work->unk_30.x) < 700.0) { + var_r29->sGroundGrp = 0; + if (work->unk_30.x >= 0.0f) { + var_r29->sGroundGrp = 1; + } + } + } + } + } + } + else { + work->unk_10 = 0; + } + return work->unk_08; +} + +void fn_1_CB98(omObjData *object) +{ + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r29; + + M433PlayerWork2 *work = object->data; + if (work->unk_78 != 0) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + var_f30 = work->unk_F8.unk_04; + var_f29 = var_f30; + var_f31 = var_f29 - (0.020000001f * work->unk_A8); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_f31 = (var_f30 - var_f31) / 21.0f; + MTXCopy(work->unk_C8, sp20); + var_f28 = (work->unk_B8 * (1.2f * work->unk_A8)) / 21.0f; + MTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); + for (var_r29 = 0; var_r29 < 0x15; var_r29++) { + Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30); + Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14); + MTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); + MTXConcat(sp50, sp20, sp20); + var_f30 -= var_f31; + } + work->unk_F8.unk_04 = var_f29; + return; + } + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 0x15; var_r29++) { + Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + } +} + +void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8) +{ + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + float var_f29; + + arg0->unk_0C = 0.0f; + arg0->unk_08 = 0.0f; + var_f31 = lbl_1_data_4D4[arg3].y; + arg0->unk_00 = var_f31; + if (arg0->unk_00 <= 0.0f) { + if (((arg2->x * arg1->x) < 0.0f) && (arg1->x != 0.0f) && (lbl_1_data_4D4[arg3].x > 0.0f)) { + arg0->unk_0C = lbl_1_data_4D4[arg3].x; + arg0->unk_08 = fabs(arg1->x / (arg2->x - arg1->x)); + var_f29 = arg1->y + (arg0->unk_08 * (arg2->y - arg1->y)); + if (var_f29 < arg0->unk_0C) { + spC.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x)); + spC.y = arg0->unk_0C; + spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z)); + VECSubtract(arg2, &spC, &sp18); + var_f30 = VECMag(&sp18); + VECSubtract(&spC, arg1, &sp18); + var_f30 += VECMag(&sp18); + } + else { + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); + } + } + else { + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); + } + var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z); + arg0->unk_00 = var_f31; + } + arg0->unk_04 = 0.0f; + arg0->unk_2C = *arg1; + arg0->unk_38 = *arg2; + arg0->unk_1C = arg2->y - arg1->y; + arg0->unk_24 = -980.0f; + VECSubtract(arg2, arg1, &sp18); + sp18.y = 0.0f; + arg0->unk_10 = VECMag(&sp18); + arg0->unk_18 = 0.0f; + if (var_f31 > 0.0f) { + arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; + arg0->unk_14 = arg0->unk_10 / var_f31; + } + else { + arg0->unk_20 = arg0->unk_1C; + arg0->unk_14 = arg0->unk_10; + } + arg0->unk_28 = lbl_1_data_540[arg3]; +} + +void fn_1_D180(M433PlayerWork2Sub *arg0) +{ + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + s32 var_r31; + + if (!(arg0->unk_0C <= 0.0f)) { + var_f31 = arg0->unk_00; + var_f28 = arg0->unk_00; + var_f27 = 10.0f * arg0->unk_00; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + var_f30 = 1.0f / var_f31; + sp8 = arg0->unk_10 * var_f30; + var_f26 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); + var_f29 = arg0->unk_08 * var_f31; + var_f25 = arg0->unk_2C.y + ((var_f29 * (0.5f * arg0->unk_24 * var_f29)) + (var_f26 * var_f29)); + if (arg0->unk_0C > var_f25) { + var_f28 = var_f31; + } + else { + var_f27 = var_f31; + } + var_f31 = 0.5f * (var_f28 + var_f27); + } + var_f30 = 1.0f / var_f31; + arg0->unk_00 = var_f31; + arg0->unk_14 = arg0->unk_10 * var_f30; + arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); + } +} + +void fn_1_D338(M433PlayerWork2Sub *arg0) +{ + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + s32 var_r31; + + if (!(arg0->unk_0C <= 0.0f)) { + var_f29 = arg0->unk_08 * arg0->unk_00; + var_f30 = 1.0f / arg0->unk_00; + var_f31 = arg0->unk_24; + var_f28 = arg0->unk_24; + var_f27 = arg0->unk_24 * arg0->unk_28; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + sp8 = arg0->unk_10 * var_f30; + var_f26 = (arg0->unk_1C * var_f30) - (0.5f * var_f31 * arg0->unk_00); + var_f25 = arg0->unk_2C.y + ((var_f29 * (0.5f * var_f31 * var_f29)) + (var_f26 * var_f29)); + if (arg0->unk_0C > var_f25) { + var_f28 = var_f31; + } + else { + var_f27 = var_f31; + } + var_f31 = 0.5f * (var_f28 + var_f27); + } + arg0->unk_24 = var_f31; + arg0->unk_14 = arg0->unk_10 * var_f30; + arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * arg0->unk_00); + } +} + +s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) +{ + Vec sp18; + Vec spC; + float var_f30; + float var_f29; + + if (arg8 < 0.0f) { + arg8 = 0.0f; + } + if (arg8 > arg0->unk_00) { + arg8 = arg0->unk_00; + } + arg0->unk_04 = arg8; + if (arg0->unk_10 > 0.0f) { + VECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); + spC.y = 0.0f; + VECNormalize(&spC, &spC); + } + else { + spC.x = spC.y = spC.z = 0.0f; + } + sp18 = *arg1; + var_f30 = (arg8 * (0.5f * arg0->unk_18 * arg8)) + (arg0->unk_14 * arg8); + var_f29 = (arg8 * (0.5f * arg0->unk_24 * arg8)) + (arg0->unk_20 * arg8); + arg1->x = arg0->unk_2C.x + (spC.x * var_f30); + arg1->y = arg0->unk_2C.y + var_f29; + arg1->z = arg0->unk_2C.z + (spC.z * var_f30); + VECSubtract(arg1, &sp18, arg2); + if (arg8 >= arg0->unk_00) { + return 1; + } + return 0; +} + +void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.92f; + var_r31->unk08.z *= 0.92f; + var_r31->unk08.y += -0.27222225f; + var_r31->unk2C += 2.0f; + var_r31->unk40.a *= 0.99f; + if (var_r31->unk00 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_D888(Vec *arg0, float arg8) +{ + Vec sp8; + float var_f31; + float var_f30; + HsfanimStruct01 *var_r31; + s32 var_r29; + u32 var_r28; + + var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_7CC->model[5]].unk_120)->unk_48; + var_r28 = 3.0f + (12.0f * arg8); + for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + var_f30 = frandmod(0x168); + sp8.x = sind(var_f30); + sp8.y = 0.0f; + sp8.z = cosd(var_f30); + var_f31 = 0.030000001f * frandmod(0x3E8); + var_r31->unk34.x = arg0->x + (sp8.x * var_f31); + var_r31->unk34.y = 10.0f + (arg0->y + (0.030000001f * frandmod(0x3E8))); + var_r31->unk34.z = arg0->z + (sp8.z * var_f31); + var_f31 = 0.8333334f + (0.0016666667f * frandmod(0x3E8)); + var_f31 *= 1.0f + arg8; + var_r31->unk08.x = sp8.x * var_f31; + var_r31->unk08.z = sp8.z * var_f31; + var_r31->unk08.y = 0.50000006f + (0.0011666667f * frandmod(0x3E8)); + var_r31->unk08.y *= (1.0f + arg8); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 60.0f + frandmod(0x1E); + var_r31->unk40.a = frandmod(0x64) + 0x78; + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk40.r = 235.0f + (20.0f * var_f31); + var_r31->unk40.g = 180.0f + (75.0f * var_f31); + var_r31->unk40.b = 155.0f + (100.0f * var_f31); + if (--var_r28 < 1) { + break; + } + } + } +} + +void fn_1_DD70(Vec *arg0) +{ + HsfanimStruct01 *var_r30; + + ParticleData *var_r31 = Hu3DData[lbl_1_bss_7CC->model[8]].unk_120; + Hu3DModelAttrReset(lbl_1_bss_7CC->model[8], HU3D_ATTR_DISPOFF); + var_r30 = var_r31->unk_48; + var_r31->unk_00 = 0; + var_r31->unk_02 = 0x3C; + var_r30->unk2C = 100.0f; + var_r30->unk34 = *arg0; +} + +void fn_1_DE28(ModelData *var_r27, ParticleData *var_r31, Mtx matrix) +{ + HsfanimStruct01 *var_r30; + s32 var_r29; + s8 var_r28; + + if (var_r31->unk_00 == 0) { + var_r31->unk_00 = 1; + for (var_r30 = (HsfanimStruct01 *)&var_r31->unk_48, var_r29 = 0; var_r29 < var_r31->unk_30; var_r29++, var_r30++) { + var_r30->unk2C = 0.0f; + } + } + var_r28 = 0.016666668f * (var_r31->unk_02 * 0xFF); + for (var_r30 = var_r31->unk_48, var_r29 = 0; var_r29 < var_r31->unk_30; var_r29++, var_r30++) { + var_r30->unk40.a = var_r28; + } + if (--var_r31->unk_02 == 0) { + var_r27->attr |= 1; + } + DCStoreRange(var_r31->unk_48, var_r31->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_DF44(omObjData *object) +{ + M433PlayerWork3 *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork3), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork3)); + work->uGameEvent = 0; + work->sWinGrp = -1; + work->uServeGrp = 0; + work->auEvents[0] = work->auEvents[1] = 0; + work->unk_2C = work->unk_30 = 0; + fn_1_E5C0(work->unk_4C, &work->unk_64); + object->func = fn_1_E11C; +} + +void fn_1_DFE4(omObjData *var_r30) +{ + M433PlayerWork3 *work = var_r30->data; + OSReport("\n"); + OSReport("uGameEvent %d\n", work->uGameEvent); + OSReport("sWinGrp %d\n", work->sWinGrp); + OSReport("uServeGrp %d\n", work->uServeGrp); + OSReport("uPointGrp %d\n", work->uPointGrp); + OSReport("auServeCel[2] %d,%d\n", work->auServeCel[0], work->auServeCel[1]); + OSReport("auEvents[2] %d,%d\n", work->auEvents[0], work->auEvents[1]); + OSReport("uContactCnt %d\n", work->uContactCnt); + OSReport("sGroundGrp %d\n", work->sGroundGrp); + OSReport("uContactGrp %d\n", work->uContactGrp); + OSReport("sContactCel %d\n", work->uContactCel); + OSReport("uTargetGrp %d\n", work->uTargetGrp); + OSReport("\n"); +} + +void fn_1_E11C(omObjData *object) +{ + s32 spC[4]; + u32 var_r30; + s32 var_r29; + s32 var_r27; + s16 var_r26; + s16 var_r25; + + M433PlayerWork3 *work = object->data; + s32 sp8 = 0; + s32 var_r28 = 0; + work->unk_28++; + work->unk_4C[0].unk_00 = work->unk_20[0]; + work->unk_4C[1].unk_00 = work->unk_20[1]; + if (fn_1_216C() >= 2) { + fn_1_ECFC(work->unk_4C, &work->unk_64); + } + switch (work->uGameEvent) { + case 0: + work->uContactCnt = 0; + work->uContactCel = -1; + if (work->unk_28 == 0xC) { + fn_1_58D8(1); + } + if ((work->unk_28 >= 30.0f) && (fn_1_216C() >= 2)) { + work->uGameEvent = 1; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 1; + } + break; + case 1: + if (work->unk_30 != 0) { + work->unk_48 = 0; + work->uContactCel = -1; + work->uContactCnt = 0; + work->uGameEvent = 2; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 3; + if (work->uTargetGrp != 0) { + var_r26 = 5; + } + else { + var_r26 = 6; + } + fn_1_58D8(var_r26); + } + break; + case 2: + case 5: + if (work->unk_30 != 0) { + if (work->uContactCnt != 0) { + work->unk_48++; + work->uGameEvent = 3; + work->auEvents[work->uContactGrp] = 4; + if ((work->unk_48 >= 6) && ((work->unk_48 % 3) == 0)) { + fn_1_58D8(3); + } + } + work->unk_28 = 0; + } + var_r28 = 1; + break; + case 3: + case 4: + if (work->unk_30 != 0) { + if (work->uContactGrp == work->uTargetGrp) { + work->uGameEvent = 4; + work->auEvents[work->uContactGrp] = 5; + } + else { + work->uContactCel = -1; + work->uContactCnt = 0; + work->uGameEvent = 5; + work->auEvents[work->uContactGrp] = 3; + if (work->uTargetGrp != 0) { + var_r25 = 5; + } + else { + var_r25 = 6; + } + fn_1_58D8(var_r25); + } + work->unk_28 = 0; + } + var_r28 = 1; + break; + case 6: + if (work->unk_28 >= 120.0f) { + work->uGameEvent = 0; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 0; + } + break; + case 7: + break; + } + if ((work->unk_2C != 0) && (var_r28 != 0)) { + if (work->sGroundGrp >= 0) { + var_r30 = 1 - work->sGroundGrp; + fn_1_58D8(1); + } + else { + var_r30 = 1 - work->uContactGrp; + fn_1_58D8(2); + } + work->uPointGrp = var_r30; + work->unk_20[var_r30]++; + if (work->uServeGrp != var_r30) { + work->uServeGrp = var_r30; + work->auServeCel[work->uServeGrp] = 1 - work->auServeCel[work->uServeGrp]; + } + if (work->unk_20[var_r30] >= 5) { + work->sWinGrp = var_r30; + work->uGameEvent = 7; + work->auEvents[0] = work->auEvents[1] = 7; + var_r27 = 0; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + spC[var_r29] = -1; + if (work->sWinGrp == OM_GET_DATA_PTR(lbl_1_bss_7D0[var_r29], M433PlayerWork)->unk_14) { + spC[var_r27++] = lbl_1_bss_7D0[var_r29]->work[0]; + } + } + fn_1_219C(1, spC[0], spC[1]); + fn_1_21E4(4); + } + else { + work->uGameEvent = 6; + work->auEvents[0] = work->auEvents[1] = 6; + fn_1_FE64(&work->unk_64, work->unk_20[0], work->unk_20[1], var_r30); + HuAudFXPlay(0x16); + } + work->unk_28 = 0; + } + work->unk_2C = 0; + work->unk_30 = 0; +} + +u16 lbl_1_data_674[6] = { 0, 1, 2, 3, 3, 0 }; +s32 lbl_1_data_680[2] = { 0x61001E, 0x61001F }; +Vec2f lbl_1_data_688[5] = { + { 0.0f, 0.0f }, + { 0.0f, 0.0f }, + { -23.0f, 0.0f }, + { 1.0f, 0.0f }, + { 21.0f, 0.0f }, +}; +Vec2f lbl_1_data_6B0[2] = { { 72.0f, 56.0f }, { 504.0f, 56.0f } }; +s32 lbl_1_data_6C0[0xB][4] = { + { 0x13000B, 0, 0, 0 }, + { 0x13000C, 0, 0, 0 }, + { 0x13000D, 0, 0, 0 }, + { 0x13000E, 0, 0, 0 }, + { 0x13000F, 0, 0, 0 }, + { 0x130010, 0, 0, 0 }, + { 0x130011, 0, 0, 0 }, + { 0x130012, 0, 0, 0 }, + { 0x130013, 0, 0, 0 }, + { 0x130014, 0, 0, 0 }, + { 0x130099, 0, 0, 0 }, +}; +s32 lbl_1_data_770[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +M433DllPlayerData794Struct lbl_1_data_794[9] = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, +}; +u32 lbl_1_data_800[9] = { 0, 1, 2, 1, 1, 2, 1, 1, 1 }; + +void fn_1_E5C0(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1) +{ + s32 var_r31; + s32 var_r28; + s32 var_r27; + + for (var_r28 = 0; var_r28 < 2; var_r28++, arg0++) { + for (var_r31 = 0; (u32)var_r31 < 5; var_r31++) { + switch (lbl_1_data_674[var_r31]) { + case 0: + arg0->unk_02[var_r31] = espEntry(lbl_1_data_680[var_r28], 1, 0); + espPriSet(arg0->unk_02[var_r31], 0x100); + break; + case 1: + arg0->unk_02[var_r31] = espEntry(0x610020, 1, 0); + espPriSet(arg0->unk_02[var_r31], 0x101); + espColorSet(arg0->unk_02[var_r31], 0, 0, 0); + espTPLvlSet(arg0->unk_02[var_r31], 0.5); + break; + case 2: + arg0->unk_02[var_r31] = espEntry(DATA_MAKE_NUM(DATADIR_M433, 10), 1, 0); + espPriSet(arg0->unk_02[var_r31], 0xFF); + break; + case 3: + arg0->unk_02[var_r31] = espEntry(0x610033, 1, 0); + espPriSet(arg0->unk_02[var_r31], 0xFF); + break; + } + espDispOff(arg0->unk_02[var_r31]); + espDrawNoSet(arg0->unk_02[var_r31], 0); + espAttrSet(arg0->unk_02[var_r31], HUSPR_ATTR_NOANIM); + espAttrSet(arg0->unk_02[var_r31], HUSPR_ATTR_LINEAR); + espPosSet( + arg0->unk_02[var_r31], lbl_1_data_6B0[var_r28].x + lbl_1_data_688[var_r31].x, lbl_1_data_6B0[var_r28].y + lbl_1_data_688[var_r31].y); + } + } + HuDataDirClose(0x610000); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + if (lbl_1_data_6C0[var_r31 % 10][var_r27] != 0) { + arg1->unk_D0[var_r28][var_r31].unk_00[var_r27] = espEntry(lbl_1_data_6C0[var_r31 % 10][var_r27], 2, 0); + espAttrSet(arg1->unk_D0[var_r28][var_r31].unk_00[var_r27], HUSPR_ATTR_LINEAR); + espDispOff(arg1->unk_D0[var_r28][var_r31].unk_00[var_r27]); + } + else { + arg1->unk_D0[var_r28][var_r31].unk_00[var_r27] = -1; + } + } + } + } + for (var_r27 = 0; var_r27 < 2; var_r27++) { + if (lbl_1_data_6C0[10][var_r27] != 0) { + arg1->unk_490.unk_00[var_r27] = espEntry(lbl_1_data_6C0[10][var_r27], 2, 0); + espAttrSet(arg1->unk_490.unk_00[var_r27], HUSPR_ATTR_LINEAR); + espDispOff(arg1->unk_490.unk_00[var_r27]); + } + else { + arg1->unk_490.unk_00[var_r27] = -1; + } + } + for (var_r28 = 0; var_r28 < 2; var_r28++) { + arg1->unk_20[var_r28].unk_00[0] = -1; + arg1->unk_20[var_r28].unk_00[1] = -1; + } + arg1->unk_20[2].unk_00[0] = -1; + arg1->unk_20[2].unk_00[1] = -1; + arg1->unk_20[3].unk_00[0] = -1; + arg1->unk_20[3].unk_00[1] = -1; + HuDataDirClose(lbl_1_data_6C0[0][0]); +} + +void fn_1_EA8C(M433PlayerWork3Sub2Sub *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r31->unk_00[var_r30] >= 0) { + espDispOn(var_r31->unk_00[var_r30]); + var_f31 = (var_r31->unk_04[var_r30] * var_r31->unk_1C) * cosd(var_r31->unk_28); + var_f30 = (var_r31->unk_04[var_r30] * var_r31->unk_1C) * sind(var_r31->unk_28); + espPosSet(var_r31->unk_00[var_r30], var_r31->unk_0C + var_f31, var_r31->unk_10 + var_f30); + espZRotSet(var_r31->unk_00[var_r30], var_r31->unk_28); + espScaleSet(var_r31->unk_00[var_r30], var_r31->unk_1C, var_r31->unk_20); + espTPLvlSet(var_r31->unk_00[var_r30], var_r31->unk_24); + } + } +} + +void fn_1_EBE4(M433PlayerWork3Sub2Sub2 *arg0, M433PlayerWork3Sub2Sub *arg1, u32 arg2) +{ + u32 var_r31; + u32 var_r30; + + var_r31 = arg2 % 10; + var_r30 = arg2 / 10; + if (var_r30 == 0) { + arg1->unk_00[0] = arg0[var_r31].unk_00[0]; + arg1->unk_00[1] = -1; + arg1->unk_04[0] = 0.0f; + } + else { + arg1->unk_00[0] = arg0[var_r30 + 0xA].unk_00[0]; + arg1->unk_00[1] = arg0[var_r31].unk_00[0]; + arg1->unk_04[0] = -23.039999f; + arg1->unk_04[1] = 23.039999f; + } + arg1->unk_0C = arg1->unk_10 = 0.0f; + arg1->unk_14 = arg1->unk_18 = 0.0f; + arg1->unk_1C = arg1->unk_20 = 1.5f; + arg1->unk_24 = 1.0f; + arg1->unk_28 = 0.0f; +} + +void fn_1_ECFC(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M433PlayerWork3Sub2Sub *var_r30; + M433PlayerWork3Sub2Sub2 *var_r29; + s32 var_r28; + s32 var_r22; + + for (var_r28 = 0; var_r28 < 2; var_r28++, arg0++) { + for (var_r22 = 0; var_r22 < 5; var_r22++) { + espDispOn(arg0->unk_02[var_r22]); + } + espBankSet(arg0->unk_02[3], arg0->unk_00 / 10); + espBankSet(arg0->unk_02[4], arg0->unk_00 % 10); + } + var_f28 = 2.88f; + if (arg1->unk_1C == 0) { + var_r30 = arg1->unk_20; + } + else { + var_r30 = &arg1->unk_20[1]; + var_f28 *= -1.0f; + } + switch (arg1->unk_00) { + case 0: + break; + case 1: + fn_1_EBE4(&arg1->unk_D0[0][0], &arg1->unk_20[0], arg1->unk_0C); + fn_1_EBE4(&arg1->unk_D0[1][0], &arg1->unk_20[1], arg1->unk_10); + fn_1_EBE4(&arg1->unk_490, &arg1->unk_20[2], 0); + fn_1_EBE4(&arg1->unk_D0[2][0], &arg1->unk_20[3], arg1->unk_14[arg1->unk_1C]); + + var_f30 = -48.0f; + arg1->unk_20[0].unk_0C = 172.8f; + arg1->unk_20[0].unk_10 = 360.0f - var_f30; + arg1->unk_20[1].unk_0C = 403.19998f; + arg1->unk_20[1].unk_10 = 360.0f - var_f30; + arg1->unk_20[2].unk_0C = 288.0f; + arg1->unk_20[2].unk_10 = 360.0f - var_f30; + arg1->unk_20[0].unk_24 = arg1->unk_20[1].unk_24 = arg1->unk_20[2].unk_24 = 0.0f; + var_f30 = var_f30 / 19.199999f; + arg1->unk_20[0].unk_18 = var_f30; + arg1->unk_20[1].unk_18 = var_f30; + arg1->unk_20[2].unk_18 = var_f30; + arg1->unk_20[3].unk_0C = 806.39996f; + arg1->unk_20[3].unk_10 = 144.0f; + arg1->unk_20[3].unk_1C += 0.5f; + arg1->unk_20[3].unk_20 -= 0.5f; + arg1->unk_20[3].unk_14 = (403.19998f - arg1->unk_20[3].unk_0C) / 24.0f; + arg1->unk_20[3].unk_18 = (360.0f - arg1->unk_20[3].unk_10) / 24.0f; + if (arg1->unk_1C == 0) { + arg1->unk_20[3].unk_0C = -230.40001f; + arg1->unk_20[3].unk_14 *= -1.0f; + } + arg1->unk_00++; + arg1->unk_04 = 0; + break; + case 2: + var_f31 = arg1->unk_20[0].unk_24; + var_f31 += 0.055555556f; + if (var_f31 > 0.95f) { + var_f31 = 1.0f; + } + arg1->unk_20[2].unk_24 = var_f31; + arg1->unk_20[1].unk_24 = var_f31; + arg1->unk_20[0].unk_24 = var_f31; + arg1->unk_20[0].unk_10 += arg1->unk_20[0].unk_18; + arg1->unk_20[1].unk_10 += arg1->unk_20[1].unk_18; + arg1->unk_20[2].unk_10 += arg1->unk_20[2].unk_18; + arg1->unk_20[3].unk_0C += arg1->unk_20[3].unk_14; + arg1->unk_20[3].unk_10 += arg1->unk_20[3].unk_18; + if (arg1->unk_04 >= 19.199999f) { + var_r30->unk_14 = var_f28; + var_r30->unk_18 = -16.0f; + arg1->unk_00++; + arg1->unk_08 = 0; + } + break; + case 3: + if (arg1->unk_04 <= 24.0f) { + arg1->unk_20[3].unk_0C += arg1->unk_20[3].unk_14; + arg1->unk_20[3].unk_10 += arg1->unk_20[3].unk_18; + } + if (arg1->unk_08 < 24.0f) { + arg1->unk_08++; + var_f31 = 33.75f * arg1->unk_08; + var_f29 = 0.041666668f * arg1->unk_08; + var_f29 = 0.5f * (1.0f - (var_f29 * var_f29)); + if (arg1->unk_08 == 24.0f) { + var_f29 = 0.0f; + } + arg1->unk_20[3].unk_1C = 1.5 + (var_f29 * cosd(var_f31)); + arg1->unk_20[3].unk_20 = 1.5 + (var_f29 * sind((var_f31 - 90.0f))); + } + var_r30->unk_1C = arg1->unk_20[3].unk_20; + var_r30->unk_20 = arg1->unk_20[3].unk_1C; + var_r30->unk_0C += var_r30->unk_14; + var_r30->unk_10 += var_r30->unk_18; + var_r30->unk_18 += 0.80000013f; + var_r30->unk_28 += 8.333334f; + var_r30->unk_24 -= 0.017833335f; + if (var_r30->unk_24 < 0.0f) { + var_r30->unk_24 = 0.0f; + } + if (fn_1_10EA4() == 0) { + arg1->unk_00++; + arg1->unk_04 = 0; + } + break; + case 4: + var_f31 = arg1->unk_20[3].unk_24; + var_f31 -= 0.055555556f; + if (var_f31 < 0.05f) { + var_f31 = 0.0f; + arg1->unk_00++; + arg1->unk_04 = 0; + } + arg1->unk_20[3].unk_24 = var_f31; + arg1->unk_20[2].unk_24 = var_f31; + arg1->unk_20[1].unk_24 = var_f31; + arg1->unk_20[0].unk_24 = var_f31; + break; + default: + for (var_r28 = 0; var_r28 < 2; var_r28++) { + arg1->unk_20[var_r28].unk_00[0] = -1; + arg1->unk_20[var_r28].unk_00[1] = -1; + } + arg1->unk_20[2].unk_00[0] = -1; + arg1->unk_20[2].unk_00[1] = -1; + arg1->unk_20[3].unk_00[0] = -1; + arg1->unk_20[3].unk_00[1] = -1; + arg1->unk_00 = 0; + break; + } + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r29 = &arg1->unk_D0[var_r28][0]; + for (var_r22 = 0; var_r22 < 0x14; var_r22++, var_r29++) { + if (var_r29->unk_00[0] >= 0) { + espDispOff(var_r29->unk_00[0]); + } + if (var_r29->unk_00[1] >= 0) { + espDispOff(var_r29->unk_00[1]); + } + } + } + var_r29 = &arg1->unk_490; + if (var_r29->unk_00[0] >= 0) { + espDispOff(var_r29->unk_00[0]); + } + if (var_r29->unk_00[1] >= 0) { + espDispOff(var_r29->unk_00[1]); + } + fn_1_EA8C(&arg1->unk_20[0]); + fn_1_EA8C(&arg1->unk_20[1]); + fn_1_EA8C(&arg1->unk_20[2]); + fn_1_EA8C(&arg1->unk_20[3]); + arg1->unk_04++; +} + +void fn_1_FE64(M433PlayerWork3Sub2 *arg0, s32 arg1, s32 arg2, u32 arg3) +{ + arg0->unk_00 = 1; + arg0->unk_0C = arg0->unk_14[0]; + arg0->unk_10 = arg0->unk_14[1]; + arg0->unk_14[0] = arg1; + arg0->unk_14[1] = arg2; + arg0->unk_1C = arg3; +} + +void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + var_r31->unk_18 = 0; + if (arg1 < 9) { + var_r31->unk_18 = lbl_1_data_770[arg1]; + if (lbl_1_data_794[arg1].unk_00 != 0) { + M433PlayerWork3 *var_r30 = lbl_1_bss_7C8->data; + var_r30->unk_30 = 1; + var_r30->uContactGrp = arg2; + var_r30->uContactCel = arg3; + var_r30->uTargetGrp = arg2; + if (lbl_1_data_794[arg1].unk_04 != 0) { + var_r30->uTargetGrp = 1 - var_r30->uTargetGrp; + } + if (lbl_1_data_794[arg1].unk_08 != 0) { + var_r30->uContactCnt++; + } + } + } + if (arg1 == 5) { + s32 var_r28 = 6; + if (var_r31->unk_6C == 5) { + var_r28++; + } + Hu3DModelPosSetV(lbl_1_bss_7CC->model[var_r28], &var_r31->unk_30); + Hu3DModelAttrReset(lbl_1_bss_7CC->model[var_r28], HU3D_ATTR_DISPOFF); + Hu3DMotionTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); + Hu3DMotionShapeTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); + } + else if (arg1 != 2) { + var_r31->unk_A8 = 1.0f; + } + var_r31->unk_0C = 1; + var_r31->unk_10 = 0; + var_r31->unk_04 = 0; + var_r31->unk_08 = 0; + var_r31->unk_6C = arg1; + var_r31->unk_70 = arg2; + var_r31->unk_74 = arg3; + if (lbl_1_data_800[arg1] != 0) { + var_r31->unk_78 = lbl_1_data_800[arg1]; + } + else if (var_r31->unk_78 != 0) { + var_r31->unk_78--; + } + var_r31->unk_3C = *arg0; + if (arg1 == 0) { + var_r31->unk_30 = var_r31->unk_3C; + } + var_r31->unk_F8.unk_00 = 1.0f; + var_r31->unk_F8.unk_00 = 0.0f; +} + +void fn_1_10130(Vec *arg0, u32 arg1) +{ + float var_f31 = 44.0f; + if ((arg0->z - var_f31) < -500.0f) { + arg0->z = -500.0f + var_f31; + } + else if ((arg0->z + var_f31) > 500.0f) { + arg0->z = 500.0f - var_f31; + } + if (arg1 == 0) { + arg0->x *= -1.0f; + } + if ((arg0->x - var_f31) < 20.0f) { + arg0->x = 20.0f + var_f31; + } + else if ((arg0->x + var_f31) > 800.0f) { + arg0->x = 800.0f - var_f31; + } + if (arg1 == 0) { + arg0->x *= -1.0f; + } +} + +void fn_1_10260(float var_f29, float var_f30, u32 var_r30, u32 sp8, Vec *var_r29) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_f30 > 1.0f) { + var_f30 = 1.0f; + } + if (var_r31->unk_94 == 0) { + var_r31->unk_AC.x = 465.0f; + var_r31->unk_AC.y = 11.0f; + var_r31->unk_AC.z = 0.0f; + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + var_r31->unk_94 = 1; + var_r31->unk_98 = 0; + var_r31->unk_A4 = 0.0f; + var_r31->unk_8C = 0; + var_r31->unk_A8 = 1.0f; + } + if (sp8 != 0) { + var_r31->unk_94 = 2; + var_f30 *= 1.5f; + } + var_r31->unk_90 = 1; + var_r31->unk_AC.x += 0.01666666753590107 * (800.0 * (var_f30 * sind(var_f29))); + var_r31->unk_AC.z += 0.01666666753590107 * (800.0 * (var_f30 * cosd(var_f29))); + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + if (var_r31->unk_AC.x < 230.0f) { + var_r31->unk_AC.x = 230.0f; + } + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + fn_1_10130(&var_r31->unk_AC, 1 - var_r30); + *var_r29 = var_r31->unk_AC; +} + +s32 fn_1_10614(Vec *arg0) +{ + M433PlayerWork2 *work = lbl_1_bss_7CC->data; + + arg0->x = arg0->y = arg0->z = 0.0f; + if (work->unk_94 == 0) { + return 0; + } + *arg0 = work->unk_AC; + arg0->x = fabs(arg0->x); + arg0->x -= 465.0f; + arg0->x *= 0.004255319f; + arg0->z *= 0.0028571428f; + return 1; +} + +void fn_1_1070C(void) +{ + M433PlayerWork2 *work = lbl_1_bss_7CC->data; + work->unk_A8 = 1.0f; +} + +u32 fn_1_10740(Vec *arg0) +{ + u32 var_r30; + M433PlayerWork2 *work = lbl_1_bss_7CC->data; + *arg0 = work->unk_3C; + if (work->unk_3C.x >= 0.0f) { + var_r30 = 1; + } + else { + var_r30 = 0; + } + return var_r30; +} + +u32 fn_1_107B0(Vec *arg0) +{ + u32 var_r30; + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + *arg0 = var_r31->unk_AC; + } + else { + *arg0 = var_r31->unk_3C; + } + if (arg0->x >= 0.0f) { + var_r30 = 1; + } + else { + var_r30 = 0; + } + return var_r30; +} + +float fn_1_10848(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + return var_r31->unk_F8.unk_00 - var_r31->unk_F8.unk_04; +} + +float fn_1_10878(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + return 1.5f; + } + return var_r31->unk_F8.unk_00 - var_r31->unk_F8.unk_04; +} + +u32 fn_1_108C4(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + return var_r31->unk_98; + } + return 0x2710; +} + +u32 fn_1_10900(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + return var_r31->unk_8C; +} + +float fn_1_10928(float arg8) +{ + float var_f30; + float var_f28; + float var_f26; + M433PlayerWork2Sub *var_r31; + M433PlayerWork2 *var_r30; + + var_r30 = lbl_1_bss_7CC->data; + var_r31 = &var_r30->unk_F8; + var_f28 = 1.0f / var_r31->unk_24; + var_f30 = -var_r31->unk_20 * var_f28; + var_f26 = var_r31->unk_2C.y + ((var_f30 * (0.5f * var_r31->unk_24 * var_f30)) + (var_r31->unk_20 * var_f30)); + if (arg8 > (var_f26)) { + return -1.0f; + } + var_f30 = var_f28 * (-var_r31->unk_20 - sqrtf((var_r31->unk_20 * var_r31->unk_20) - (2.0f * var_r31->unk_24 * (var_r31->unk_2C.y - arg8)))); + var_f30 -= var_r31->unk_04; + return var_f30; +} + +float fn_1_10B20(float arg8, Vec *arg0) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M433PlayerWork2Sub *var_r31; + M433PlayerWork2 *var_r29; + + var_r29 = lbl_1_bss_7CC->data; + var_r31 = &var_r29->unk_F8; + var_f30 = var_r31->unk_04; + var_f31 = var_f30 + arg8; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + if (var_f31 > var_r31->unk_00) { + var_f31 = var_r31->unk_00; + } + var_r31->unk_04 = var_f31; + if (var_r31->unk_10 > 0.0f) { + VECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); + sp14.y = 0.0f; + VECNormalize(&sp14, &sp14); + } + else { + sp14.x = sp14.y = sp14.z = 0.0f; + } + sp8 = *arg0; + var_f29 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); + var_f28 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); + arg0->x = var_r31->unk_2C.x + (sp14.x * var_f29); + arg0->y = var_r31->unk_2C.y + var_f28; + arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29); + VECSubtract(arg0, &sp8, &sp20); + var_f31 >= var_r31->unk_00; + var_r31->unk_04 = var_f30; + return var_f30 + arg8; +} + +static inline float fn_1_10D24_inline(Vec *arg0) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + *arg0 = var_r31->unk_AC; + } + else { + *arg0 = var_r31->unk_3C; + } +} + +s32 fn_1_10D24(Vec *sp8) +{ + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + M433PlayerWork2 *var_r31; + M433PlayerWork2 *var_r30; + + var_r31 = lbl_1_bss_7CC->data; + fn_1_10D24_inline(&spC); + VECSubtract(&spC, &var_r31->unk_30, &sp18); + if ((spC.x * var_r31->unk_30.x) >= 0.0f) { + return 0; + } + if ((var_r31->unk_30.x == 0.0f) || (sp18.x == 0.0f)) { + return 0; + } + var_f31 = fabs(var_r31->unk_30.x / sp18.x); + VECScale(&sp18, &sp18, var_f31); + VECAdd(&var_r31->unk_30, &sp18, sp8); + return 1; +} + +u32 fn_1_10EA4(void) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uGameEvent; +} + +u32 fn_1_10ECC(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->auEvents[arg0 & 1]; +} + +s32 fn_1_10F00(u32 arg0) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uServeGrp == (arg0 & 1); +} + +u32 fn_1_10F38(u32 arg0) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->auServeCel[arg0 & 1]; +} + +s32 fn_1_10F6C(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->uPointGrp == (arg0 & 1); +} + +s32 fn_1_10FA4(s32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->sWinGrp == (arg0 & 1); +} + +u32 fn_1_10FDC(void) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uContactCnt; +} + +s32 fn_1_11004(u32 arg0, s32 arg1) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return !((work->uContactGrp == (arg0 & 1)) && (work->uContactCel == (arg1 & 1))); +} + +s32 fn_1_11060(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->uContactGrp == (arg0 & 1); +} + +float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp10; + float var_f31; + float var_f30; + + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + var_f30 = -VECSquareMag(arg2); + if (var_f30 != 0.0f) { + var_f31 /= var_f30; + } + return var_f31; +} + +float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + VECSubtract(arg1, arg0, &sp28); + VECSubtract(arg3, arg2, &sp1C); + VECSubtract(&sp28, &sp1C, &sp28); + if (VECMag(&sp28) <= 0.0f) { + sp34 = *arg0; + } + else { + VECSubtract(arg0, arg2, &sp10); + var_f30 = VECDotProduct(&sp10, &sp28); + var_f29 = -VECSquareMag(&sp28); + if (var_f29 != 0.0f) { + var_f30 /= var_f29; + } + var_f28 = var_f30; + var_f31 = var_f28; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + VECScale(&sp28, &sp1C, var_f31); + VECAdd(arg0, &sp1C, &sp34); + } + VECSubtract(arg2, &sp34, &sp28); + return VECMag(&sp28); +} diff --git a/src/REL/m434Dll/fish.c b/src/REL/m434Dll/fish.c index 37883dc7..b5940faa 100644 --- a/src/REL/m434Dll/fish.c +++ b/src/REL/m434Dll/fish.c @@ -11,6 +11,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct bss_7480_struct { @@ -246,16 +247,16 @@ void fn_1_6DBC(omObjData *object) temp_r31->unk34.y += (75.0f - temp_r31->unk34.y) * 0.02f; } temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x; temp_r31->unk18 = fn_1_8254(temp_r31->unk18, &temp_r31->unk1C); Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); break; case 1: - temp_r31->unk34.z += 3.0000002f; + temp_r31->unk34.z += 1.0f / REFRESH_RATE * 180.0f; Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); if (fn_1_1D54() == 4) { @@ -274,9 +275,9 @@ void fn_1_6DBC(omObjData *object) } VECSubtract(&sp8, &temp_r31->unk1C, &sp8); temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x; + temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f; + temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z; temp_r31->unk8++; HuAudFXPlay(1734); } @@ -284,7 +285,7 @@ void fn_1_6DBC(omObjData *object) if (temp_r31->unk1C.y <= -15.000001f) { temp_r29 = 1; } - temp_r31->unk28.y += -0.27222225f; + temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f; VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); if (!temp_r29 && temp_r31->unk1C.y <= -15.000001f) { fn_1_43AC(&temp_r31->unk1C); @@ -345,9 +346,9 @@ void fn_1_6DBC(omObjData *object) temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); temp_r31->unk34.y += (50.0f - temp_r31->unk34.y) * 0.02f; temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x; Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); @@ -363,16 +364,16 @@ void fn_1_6DBC(omObjData *object) } VECSubtract(&sp8, &temp_r31->unk1C, &sp8); temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x; + temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f; + temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z; temp_r31->unk8++; } temp_r29 = temp_r25 = 0; if (temp_r31->unk1C.y <= -15.000001f) { temp_r29 = 1; } - temp_r31->unk28.y += -0.27222225f; + temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f; VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); if (temp_r31->unk1C.y <= -15.000001f) { temp_r25 = 1; @@ -689,8 +690,8 @@ void fn_1_8C14(s32 arg0, Vec *arg1, float arg2) temp_r31 = lbl_1_bss_7480; for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { if (!temp_r31->unk0) { - temp_r31->unk4 = 30; - temp_r31->unk0 = (60.0f * (3.0f * arg2)) + 150.0f; + temp_r31->unk4 = 0.5 * REFRESH_RATE; + temp_r31->unk0 = (REFRESH_RATE * (3.0f * arg2)) + 2.5f * REFRESH_RATE; temp_r31->unk8 = arg0; temp_r31->unk14 = *arg1; temp_r31->unkC = 0; diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index 733df325..bfe8d0df 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -11,6 +11,11 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif typedef struct camera_view { float zoom; @@ -127,9 +132,9 @@ void fn_1_558(omObjData *object) switch (fn_1_1D54()) { case 0: lbl_1_bss_3C2 = 60; - lbl_1_bss_3C0 = 60; + lbl_1_bss_3C0 = REFRESH_RATE; fn_1_1D64(1); - lbl_1_bss_10[1] = 60; + lbl_1_bss_10[1] = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); HuAudFXPlay(1736); break; @@ -160,7 +165,7 @@ void fn_1_558(omObjData *object) if (--lbl_1_bss_3C0 == 0) { lbl_1_bss_3C2--; MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); - lbl_1_bss_3C0 = 60; + lbl_1_bss_3C0 = REFRESH_RATE; } if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { fn_1_1D64(3); @@ -178,7 +183,7 @@ void fn_1_558(omObjData *object) } if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { fn_1_1D64(4); - lbl_1_bss_10[1] = 60; + lbl_1_bss_10[1] = REFRESH_RATE; } break; @@ -215,7 +220,7 @@ void fn_1_558(omObjData *object) break; } fn_1_1D64(5); - lbl_1_bss_10[1] = 210; + lbl_1_bss_10[1] = 3.5 * REFRESH_RATE; } break; diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index e690b936..ee77f381 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -14,6 +14,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct bss_2468_data { Vec unk0; @@ -531,8 +532,8 @@ void fn_1_3CC8(ModelData *model, Mtx mtx) if (temp_r31->unkC == 0) { continue; } - temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / 60.0f)) * 128.0f; - lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / 60.0f); + temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / REFRESH_RATE)) * 128.0f; + lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / REFRESH_RATE); GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f); mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0); @@ -550,7 +551,7 @@ void fn_1_43AC(Vec *arg0) temp_r31->unk0.x = arg0->x; temp_r31->unk0.y = arg0->y; temp_r31->unk0.z = arg0->z; - temp_r31->unkC = 60; + temp_r31->unkC = REFRESH_RATE; lbl_1_bss_2464 = (lbl_1_bss_2464 + 1) % 64; return; } diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index 103d7352..55ae04c8 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -1,6 +1,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/hsfman.h" +#include "game/hsfdraw.h" #include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" @@ -13,6 +14,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct data_224_struct { @@ -54,15 +56,15 @@ Vec lbl_1_data_1E4[2] = { { -550, 0, 550 }, { 550, 0, 550 } }; u32 lbl_1_data_1FC[10] = { 0, 2, 23, 133, 0x41000E, 0x410016, 0x41001E, 0x410026, 0x41002E, 0x410036 }; Data224Struct lbl_1_data_224[9] = { - { 0, 4, 12, 0, HU3D_MOTATTR_LOOP }, - { 1, 6, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 0, HU3D_MOTATTR_NONE }, - { 0, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 1, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 30, HU3D_MOTATTR_NONE }, - { 0, 9, 6, 0, HU3D_MOTATTR_NONE }, - { 2, 0, 12, 0, HU3D_MOTATTR_NONE }, - { 3, 0, 12, 0, HU3D_MOTATTR_NONE }, + { 0, 4, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 1, 6, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 0, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 1, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 0.1f * REFRESH_RATE, 0.5f * REFRESH_RATE, HU3D_MOTATTR_NONE }, + { 0, 9, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 2, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 3, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, }; void fn_1_4988(omObjData *object); @@ -210,8 +212,6 @@ void fn_1_64C0(omObjData *object); float fn_1_67AC(float arg0, float arg1); -// Issues with assignment of temp_f30 -// Scratch is at https://decomp.me/scratch/EqCuG void fn_1_4E50(omObjData *object) { float temp_f31; @@ -254,8 +254,8 @@ void fn_1_4E50(omObjData *object) if (temp_r31->unk1C > spC[temp_r31->unk24]) { temp_r31->unk24 = 1; temp_r31->unk44 = temp_r31->unk20; - temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / 60.0f); - temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / 60.0f); + temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / REFRESH_RATE); + temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / REFRESH_RATE); temp_r31->unk48 = 0.2f; temp_r31->unk4C = 0; if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { @@ -296,7 +296,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3A = 0; temp_r31->unk3C++; } - else if (temp_r31->unk3C == 1 && temp_r31->unk3A > 30.0f) { + else if (temp_r31->unk3C == 1 && temp_r31->unk3A > (0.5f * REFRESH_RATE)) { if (temp_r31->unk54 < 3) { temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -30, 30, 1, object->work[0]); if (temp_r28 >= 0) { @@ -352,7 +352,7 @@ void fn_1_4E50(omObjData *object) } } else { - if (temp_r31->unk3A > 30.0f) { + if (temp_r31->unk3A > (0.5f * REFRESH_RATE)) { temp_r31->unk38 = 0; } } @@ -376,7 +376,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3C++; } if (temp_r31->unk3E) { - if (temp_r31->unk3A > 36.0f) { + if (temp_r31->unk3A > (VERSION_NTSC ? 36.0f : 30.000002f)) { for (temp_r29 = 0; temp_r29 < temp_r31->unk54; temp_r29++) { fn_1_8B58(temp_r31->unk58[temp_r29]); } @@ -384,7 +384,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3E = 0; } } - if (temp_r31->unk3A > 60.0f) { + if (temp_r31->unk3A > 1.0f * REFRESH_RATE) { temp_r31->unk38 = 0; } break; @@ -514,7 +514,7 @@ void fn_1_5C98(omObjData *object) } else { temp_r31->unk80++; - if (temp_r30 || temp_r31->unk80 > 60.0f) { + if (temp_r30 || temp_r31->unk80 > (1.0f * REFRESH_RATE)) { if (temp_r30 || frandmod(1000) < 10) { temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); @@ -532,7 +532,7 @@ void fn_1_5C98(omObjData *object) case 2: temp_r31->unk80++; - if (temp_r31->unk80 < 120 * temp_r31->unk64) { + if (temp_r31->unk80 < (2 * REFRESH_RATE) * temp_r31->unk64) { temp_r31->unk1C = 0.4f; temp_r31->unk20 = temp_r31->unk40 + 10.0f; temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_A; diff --git a/src/REL/m435Dll/main.c b/src/REL/m435Dll/main.c new file mode 100755 index 00000000..df551b13 --- /dev/null +++ b/src/REL/m435Dll/main.c @@ -0,0 +1,4271 @@ +#include "REL/m435Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50; + /* 0x54 */ float unk54; + /* 0x58 */ StructFn19894 unk58; +} StructBssE88; // Size 0x4D8 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} StructBssDE4; // Size 0x24 + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14[3]; + /* 0x020 */ s32 unk20; + /* 0x024 */ s32 unk24; + /* 0x028 */ s32 unk28; + /* 0x02C */ s32 unk2C[3]; + /* 0x038 */ s32 unk38[3]; + /* 0x044 */ s32 unk44[3]; + /* 0x050 */ s32 unk50[3]; + /* 0x05C */ s32 unk5C[3]; + /* 0x068 */ s32 unk68[3]; + /* 0x074 */ float unk74; + /* 0x078 */ float unk78; + /* 0x07C */ float unk7C[3]; + /* 0x088 */ float unk88[3]; + /* 0x094 */ float unk94[3]; + /* 0x0A0 */ float unkA0[3]; + /* 0x0AC */ Vec unkAC[3]; + /* 0x0D0 */ Vec unkD0[3]; + /* 0x0F4 */ Vec unkF4[3]; + /* 0x118 */ Vec unk118[3]; + /* 0x13C */ Vec unk13C[3]; + /* 0x160 */ Vec unk160[3]; + /* 0x184 */ Vec unk184[3]; + /* 0x1A8 */ float unk1A8[3]; +} StructBssC30; // Size 0x1B4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; + /* 0x14 */ s32 unk14; + /* 0x18 */ char unk18[0x20]; +} StructBss4F10; // Size 0x38 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; +} StructBss4EE8; // Size 0x20 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; +} StructBssC1C; // Size 0x14 + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ Vec unk04; + /* 0x010 */ Vec unk10; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ s32 unk24; + /* 0x028 */ s32 unk28; + /* 0x02C */ s32 unk2C; + /* 0x030 */ s32 unk30; + /* 0x034 */ s32 unk34; + /* 0x038 */ s32 unk38; + /* 0x03C */ StructFn19894 unk3C; +} StructBss2A4; // Size 0x4BC + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04[6]; + /* 0x1C */ char unk1C[0x10]; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ s32 unk54; +} StructBss144; // Size 0x58 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08[6]; + /* 0x20 */ char unk20[8]; + /* 0x28 */ float unk28[6]; + /* 0x40 */ char unk40[8]; + /* 0x48 */ float unk48[6]; + /* 0x60 */ char unk60[8]; + /* 0x68 */ float unk68[6]; + /* 0x80 */ char unk80[8]; + /* 0x88 */ float unk88[6]; + /* 0xA0 */ char unkA0[8]; +} StructBss9C; // Size 0xA8 + +void fn_1_3AF4(s32 arg0); +void fn_1_4104(s32 arg0); +void fn_1_7D50(s32 arg0); +void fn_1_8544(s32 arg0); +s32 fn_1_8E48(s32 arg0); +s32 fn_1_8F34(s32 arg0); + +StructBss4F10 lbl_1_bss_4F10; +s32 lbl_1_bss_4F08[2]; +StructBss4EE8 lbl_1_bss_4EE8; +char lbl_1_bss_21E8_pad[0x2D00]; // unused +StructBssE88 lbl_1_bss_E88[4]; +StructBssE08 lbl_1_bss_E08; +StructBssDE4 lbl_1_bss_DE4; +StructBssC30 lbl_1_bss_C30; +StructBssC1C lbl_1_bss_C1C; +StructBss2A4 lbl_1_bss_2A4[2]; +StructBss144 lbl_1_bss_144[4]; +StructBss9C lbl_1_bss_9C; +StructBss84 lbl_1_bss_84; +StructBss84 lbl_1_bss_6C; +Vec lbl_1_bss_3C[4]; +StructBss84 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; // unused +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][3] = { + { DATA_MAKE_NUM(DATADIR_M435, 27), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 0) }, + { DATA_MAKE_NUM(DATADIR_M435, 28), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 1) }, + { DATA_MAKE_NUM(DATADIR_M435, 30), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 2) }, + { DATA_MAKE_NUM(DATADIR_M435, 29), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 3) }, + { DATA_MAKE_NUM(DATADIR_M435, 32), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 4) }, + { DATA_MAKE_NUM(DATADIR_M435, 31), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 5) }, + { DATA_MAKE_NUM(DATADIR_M435, 33), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 6) }, + { DATA_MAKE_NUM(DATADIR_M435, 34), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 7) } +}; + +char* lbl_1_data_E0[] = { + "c000m1-ske_head", + "c001m1-ske_head", + "c002m1-ske_head", + "c003m1-ske_head", + "c004m1-ske_head", + "c005m1-ske_head", + "c006m1-ske_head", + "c007m1-ske_head" +}; + +s32 lbl_1_data_100[][2] = { + { 0x00000100, 0x00000001 }, + { 0x00000100, 0x00000001 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 }, + { 0x00000100, 0x00000001 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 } +}; + +s32 lbl_1_data_140[][5] = { + { 91, 105, 126, 141, -1 }, + { 91, 105, 126, 141, -1 }, + { 124, 137, -1, -1, -1 }, + { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, + { 85, 97, 127, 139, -1 }, + { 127, 137, -1, -1, -1 }, + { 79, 95, 109, 127, -1 } +}; + +s32 lbl_1_data_1E0 = -1; +s32 lbl_1_data_1E4 = -1; +s32 lbl_1_data_1E8 = -1; + +void fn_1_0(void) { + s32 i; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_data_1E0 == -1 || lbl_1_data_1E4 == -1 || lbl_1_data_1E8 == -1 || lbl_1_data_1E4 != Hu3DMotionIDGet(lbl_1_data_1E0)) { + continue; + } + for (i = 0; i < 5; i++) { + if (lbl_1_data_140[lbl_1_data_1E8][i] != -1 && Hu3DMotionTimeGet(lbl_1_data_1E0) >= lbl_1_data_140[lbl_1_data_1E8][i]) { + OSReport("KE-System CHR:%d TIME:%d\n", lbl_1_data_1E8, lbl_1_data_140[lbl_1_data_1E8][i]); + HuAudFXPlay(0x6D8); + lbl_1_data_140[lbl_1_data_1E8][i] = -1; + } + } + } +} + +void fn_1_1A8(void) { + s32 var_r31; + + var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_230(s32 arg0, s32 arg1, float arg2) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk48[arg0] = arg1; + if (var_r31->unk64[arg0] < 0.0f) { + var_r31->unk64[arg0] = -arg2; + } + else { + var_r31->unk64[arg0] = arg2; + } +} + +void fn_1_298(s32 arg0, float arg1) { + fn_1_230(arg0, -1, arg1); +} + +float fn_1_304(s32 arg0) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (var_r31->unk64[arg0] != 0.0f) { + var_r31->unk64[arg0] *= -0.9f; + if (var_r31->unk48[arg0] == -1) { + if (var_r31->unk64[arg0] >= -0.5f && var_r31->unk64[arg0] <= 0.5f) { + var_r31->unk64[arg0] = 0.0f; + } + } + else { + var_r31->unk48[arg0]--; + if (var_r31->unk48[arg0] <= 0) { + var_r31->unk48[arg0] = 0; + var_r31->unk64[arg0] = 0.0f; + } + } + } + return var_r31->unk64[arg0]; +} + +void fn_1_434(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (HuPadBtn[0] & 0x200) { + if (HuPadBtn[0] & 0x100) { + var_r31->unk14 -= HuPadStkY[0] / 10.0f; + } + else { + var_r31->unk0C += HuPadStkX[0] / 10.0f; + var_r31->unk10 += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & 0x800) { + var_r31->unk24 -= HuPadStkY[0] / 100.0f; + var_r31->unk28 += HuPadStkX[0] / 100.0f; + if (var_r31->unk24 < 0.0f) { + var_r31->unk24 += 360.0f; + } + if (var_r31->unk24 >= 360.0f) { + var_r31->unk24 -= 360.0f; + } + if (var_r31->unk28 < 0.0f) { + var_r31->unk28 += 360.0f; + } + if (var_r31->unk28 >= 360.0f) { + var_r31->unk28 -= 360.0f; + } + } + if (HuPadBtn[0] & 0x400) { + var_r31->unk3C -= HuPadStkY[0] / 10.0f; + } + print8(16, 100, 1.0f, ">>>>>>>>>> CAMERA TEST <<<<<<<<<<"); + print8(16, 110, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk0C, var_r31->unk10, var_r31->unk14); + print8(16, 120, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk24, var_r31->unk28, var_r31->unk2C); + print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk3C); +} + +void fn_1_818(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk0C = 0.0f; + var_r31->unk10 = 225.0f; + var_r31->unk14 = 1740.0f; + var_r31->unk24 = -10.0f; + var_r31->unk28 = 0.0f; + var_r31->unk2C = 0.0f; + var_r31->unk3C = 300.0f; +} + +void fn_1_8A4(void (*arg0)(void)) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk04 = arg0; +} + +void fn_1_8C4(void (*arg0)(void)) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk08 = arg0; +} + +void fn_1_8E4(omObjData* arg0) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (var_r31->unk04 != NULL) { + var_r31->unk04(); + } +} + +void fn_1_92C(omObjData* arg0) { + StructBssE08* var_r23; + + var_r23 = &lbl_1_bss_E08; + fn_1_8E4(arg0); + Center.x = var_r23->unk0C + fn_1_304(0); + Center.y = var_r23->unk10 + fn_1_304(1); + Center.z = var_r23->unk14 + fn_1_304(2); + CRot.x = var_r23->unk24 + fn_1_304(3); + CRot.y = var_r23->unk28 + fn_1_304(4); + CRot.z = var_r23->unk2C + fn_1_304(5); + CZoom = var_r23->unk3C + fn_1_304(6); +} + +void fn_1_FDC(void) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); + fn_1_8A4(fn_1_818); + fn_1_8C4(fn_1_434); + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_92C); +} + +void fn_1_1110(void) { + Vec sp20 = { 0.0f, 2500.0f, 1.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_11D4(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float var_f31; + float var_f30; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + var_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + var_f31 = temp_f29 + temp_f25 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + var_f30 = temp_f28 + temp_f24 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 -= 2.0f; + } + } + if (arg3 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } + else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_152D4(var_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_152D4(temp_f27, 1.0f, i, 10.0f); + } + else { + var_f22 = fn_1_152D4(var_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_152D4(temp_f26, 1.0f, i - 10, 5.0f); + } + } + else { + if (i <= 10) { + var_f22 = fn_1_152D4(temp_f28, var_f30, i, 10.0f); + var_f20 = fn_1_152D4(1.0f, temp_f26, i, 10.0f); + } + else { + var_f23 = fn_1_152D4(temp_f29, var_f31, i - 10, 5.0f); + var_f21 = fn_1_152D4(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } + else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +void fn_1_1818(void) { + HuWinInit(1); +} + +void fn_1_183C(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 -= 2.0f; + } + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_152D4(var_f31, temp_f29, i, 10.0f); + temp_f21 = fn_1_152D4(temp_f25, 1.0f, i, 10.0f); + temp_f22 = fn_1_152D4(var_f30, temp_f28, i, 10.0f); + temp_f20 = fn_1_152D4(temp_f24, 1.0f, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); +} + +s32 fn_1_1C94(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + s32 var_r31; + s32 sp18[][6] = { + { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, + { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, + { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } + }; + + var_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1); + HuSprColorSet(winData[var_r31].group, 0, sp18[arg4][0], sp18[arg4][1], sp18[arg4][2]); + winData[var_r31].mess_color = sp18[arg4][3]; + winData[var_r31].mess_shadow_color = sp18[arg4][4]; + winData[var_r31].attr |= 0x80; + HuWinBGTPLvlSet(var_r31, sp18[arg4][5] / 10.0f); + winData[var_r31].active_pad = 0; + fn_1_11D4(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +s32 fn_1_1E80(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + return fn_1_1C94(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_206C(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_1539C(temp_f29, var_f31, i, 10.0f); + temp_f21 = fn_1_1539C(1.0f, temp_f25, i, 10.0f); + temp_f22 = fn_1_1539C(temp_f28, var_f30, i, 10.0f); + temp_f20 = fn_1_1539C(1.0f, temp_f24, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); +} + +void fn_1_24C4(s32 arg0) { + HuWinMesSet(arg0, MAKE_MESSID(29, 22)); + HuPrcVSleep(); + fn_1_11D4(arg0, 0.5f, 0.5f, 0); + HuWinKill(arg0); +} + +void fn_1_252C(s32 arg0) { + fn_1_24C4(arg0); +} + +void fn_1_2594(s32 arg0, s32 arg1) { + s32 i; + s32 var_r30; + s32 temp_r28; + + var_r30 = 0; + temp_r28 = GWMessDelayGet(); + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C == 0) { + var_r30 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r30 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_267C(s32 arg0) { + s32 var_r31; + s32 temp_r28; + s32 i; + + var_r31 = 0; + temp_r28 = GWMessDelayGet(); + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C == 0) { + var_r31 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r31 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + var_r31 = HuWinChoiceGet(arg0, 1); + if (var_r31 == -1 || var_r31 == 1) { + lbl_1_bss_8 = 0; + } + else { + lbl_1_bss_8 = 1; + } + HuWinComKeyReset(); +} + +void fn_1_2798(s32 arg0, s32 arg1) { + winData[arg0].mess_color = 0; + winData[arg0].mess_shadow_color = 9; + winData[arg0].attr |= 0x80; + HuWinMesSet(arg0, arg1); +} + +void fn_1_281C(float* arg0, s32 arg1) { + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} + +void fn_1_288C(s32 arg0) { + if (lbl_1_bss_10 == 0) { + lbl_1_bss_10 = 1; + lbl_1_bss_C = arg0 * 60; + } +} + +s32 fn_1_28C4(void) { + if (lbl_1_bss_10 == 3) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_28E8(void) { + if (lbl_1_bss_10 == 2) { + lbl_1_bss_10 = 3; + lbl_1_bss_C = 30; + } +} + +s32 lbl_1_data_26C = -1; + +void fn_1_2920(omObjData* arg0) { + switch (lbl_1_bss_10) { + case 1: + if (lbl_1_data_26C == -1) { + lbl_1_data_26C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1); + } + lbl_1_bss_10 = 2; + break; + case 2: + lbl_1_bss_C--; + if (lbl_1_data_26C != -1) { + MGSeqParamSet(lbl_1_data_26C, 1, (lbl_1_bss_C + 59) / 60); + } + if (lbl_1_bss_C <= 0) { + lbl_1_bss_C = 30; + lbl_1_bss_10 = 3; + } + break; + case 3: + if (lbl_1_data_26C != -1) { + MGSeqParamSet(lbl_1_data_26C, 2, -1); + lbl_1_data_26C = -1; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + break; + } +} + +void fn_1_2AF0(void) { + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_2920); +} + +void fn_1_2B54(omObjData* arg0) { + s32 i; + + for (i = 0; i < 3; i++) { + Hu3DData[arg0->model[i + 5]].rot.y += 360.0f / (2500.0f + 2500.0f * i); + } +} + +void fn_1_2BFC(s32 arg0) { + StructBssDE4* var_r31; + + var_r31 = &lbl_1_bss_DE4; + var_r31->unk04 = arg0; +} + +void fn_1_2C1C(omObjData* arg0) { + StructBssDE4* var_r30; + + var_r30 = &lbl_1_bss_DE4; + switch (var_r30->unk04) { + case 2: + fn_1_157BC(arg0, 9, 9, 1, 0); + Hu3DModelAttrReset(arg0->model[9], 1); + var_r30->unk1C = 0; + fn_1_230(1, 10, 4.0f); + HuAudFXPlay(0x6CF); + /* fallthrough */ + case 1: + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 3, 3, 1, 0); + fn_1_157BC(arg0, 4, 4, 1, 0); + fn_1_157BC(arg0, 5, 5, 1, 0); + fn_1_157BC(arg0, 6, 6, 1, 0); + fn_1_157BC(arg0, 7, 7, 1, 0); + if (var_r30->unk04 == 1) { + HuAudFXPlay(0x6CE); + } + var_r30->unk04 = 20; + break; + case 3: + var_r30->unk04 = 10; + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 1, 1, 1, 0); + fn_1_157BC(arg0, 2, 2, 1, 0); + fn_1_157BC(arg0, 3, 3, 1, 0); + fn_1_157BC(arg0, 4, 4, 1, 0); + fn_1_157BC(arg0, 5, 5, 1, 0); + fn_1_157BC(arg0, 6, 6, 1, 0); + fn_1_157BC(arg0, 7, 7, 1, 0); + fn_1_157BC(arg0, 8, 8, 0, 0); + HuAudFXPlay(0x6D0); + Hu3DModelAttrReset(arg0->model[8], 1); + break; + case 10: + fn_1_230(6, -1, 8.0f); + if (Hu3DMotionTimeGet(arg0->model[3]) >= 30.0f) { + var_r30->unk04 = 20; + fn_1_3AF4(1); + fn_1_230(6, -1, 128.0f); + HuAudFXPlay(0x6DA); + omVibrate(fn_1_8E48(0), 12, 12, 0); + omVibrate(fn_1_8E48(1), 12, 12, 0); + omVibrate(fn_1_8E48(2), 12, 12, 0); + omVibrate(fn_1_8E48(3), 12, 12, 0); + } + break; + case 20: + if (Hu3DMotionEndCheck(arg0->model[3])) { + var_r30->unk04 = 0; + fn_1_157BC(arg0, 3, 10, 1, 1); + fn_1_157BC(arg0, 4, 11, 1, 1); + Hu3DModelAttrSet(arg0->model[8], 1); + Hu3DModelAttrSet(arg0->model[9], 1); + } + break; + } + if (Hu3DMotionTimeGet(arg0->model[9]) >= 25.0f && var_r30->unk1C == 0) { + var_r30->unk1C = 1; + fn_1_230(1, 10, 4.0f); + } else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && var_r30->unk1C == 1) { + var_r30->unk1C = 2; + fn_1_230(1, 10, 4.0f); + } + if (var_r30->unk04 == 0) { + if (var_r30->unk14++ >= 300) { + var_r30->unk14 = 0; + if (rand8() % 2 != 0) { + fn_1_2BFC(1); + } + } + } +} + +void fn_1_31BC(omObjData* arg0) { + fn_1_2B54(arg0); + fn_1_2C1C(arg0); +} + +void fn_1_3288(StructBssDE4* arg0) { + omObjData* temp_r31; + + temp_r31 = arg0->unk00; + fn_1_157BC(temp_r31, 0, 0, 1, 2); + Hu3DModelPosSet(temp_r31->model[1], 0.0f, 0.0f, -680.0f); + fn_1_157BC(temp_r31, 1, 1, 1, 2); + Hu3DModelPosSet(temp_r31->model[2], 0.0f, 0.0f, -680.0f); + fn_1_157BC(temp_r31, 2, 2, 1, 2); + Hu3DModelPosSet(temp_r31->model[3], 525.0f, 0.0f, -1150.0f); + fn_1_157BC(temp_r31, 3, 10, 1, 1); + Hu3DModelPosSet(temp_r31->model[4], -525.0f, 0.0f, -1150.0f); + fn_1_157BC(temp_r31, 4, 11, 1, 1); + Hu3DModelPosSet(temp_r31->model[5], 50.0f, 150.0f, 50.0f); + fn_1_157BC(temp_r31, 5, 5, 1, 2); + Hu3DModelPosSet(temp_r31->model[6], 0.0f, 150.0f, 0.0f); + fn_1_157BC(temp_r31, 6, 6, 1, 2); + Hu3DModelPosSet(temp_r31->model[7], 0.0f, 150.0f, 0.0f); + fn_1_157BC(temp_r31, 7, 7, 1, 2); + Hu3DModelAttrSet(temp_r31->model[8], 1); + fn_1_157BC(temp_r31, 8, 8, 1, 2); + Hu3DModelAttrSet(temp_r31->model[9], 1); + fn_1_157BC(temp_r31, 9, 9, 1, 2); + temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; +} + +void fn_1_3558(omObjData* arg0) { + StructBssDE4* var_r30; + + var_r30 = &lbl_1_bss_DE4; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 39)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); + Hu3DModelShadowMapSet(arg0->model[0]); + fn_1_157BC(arg0, 0, 0, 1, 2); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 40)); + arg0->motion[1] = Hu3DMotionIDGet(arg0->model[1]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowMapSet(arg0->model[1]); + fn_1_157BC(arg0, 1, 1, 1, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 41)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowSet(arg0->model[2]); + fn_1_157BC(arg0, 2, 2, 1, 2); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 42)); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[3], DATA_MAKE_NUM(DATADIR_M435, 44)); + Hu3DModelPosSet(arg0->model[3], 525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[3]); + fn_1_157BC(arg0, 3, 10, 1, 1); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 43)); + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[4], DATA_MAKE_NUM(DATADIR_M435, 45)); + Hu3DModelPosSet(arg0->model[4], -525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[4]); + fn_1_157BC(arg0, 4, 11, 1, 1); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 36)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 50.0f, 150.0f, 50.0f); + fn_1_157BC(arg0, 5, 5, 1, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 37)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelPosSet(arg0->model[6], 0.0f, 150.0f, 0.0f); + fn_1_157BC(arg0, 6, 6, 1, 2); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 38)); + arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]); + Hu3DModelPosSet(arg0->model[7], 0.0f, 150.0f, 0.0f); + fn_1_157BC(arg0, 7, 7, 1, 2); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 46)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], 1); + Hu3DModelLayerSet(arg0->model[8], 1); + fn_1_157BC(arg0, 8, 8, 1, 2); + arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 47)); + arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]); + Hu3DModelAttrSet(arg0->model[9], 1); + Hu3DModelLayerSet(arg0->model[9], 1); + fn_1_157BC(arg0, 9, 9, 1, 2); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + var_r30->unk14 = var_r30->unk18 = var_r30->unk1C = var_r30->unk20 = 0; + arg0->func = fn_1_31BC; +} + +void fn_1_3AF4(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + var_r31->unk04 = arg0; +} + +float lbl_1_data_2C4 = 270.0f; + +void fn_1_3B14(omObjData* arg0) { + Vec sp14; + Vec sp8; + ModelData* temp_r30; + StructBssC30* var_r29; + s32 var_r28; + + temp_r30 = &Hu3DData[arg0->model[1]]; + var_r29 = &lbl_1_bss_C30; + if (var_r29->unk04 == 1) { + var_r29->unk04 = 0; + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 1, 2, 1, 0); + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[1], 1); + } else if (var_r29->unk04 >= 2) { + temp_r30->pos.x = 750.0 * cosd(lbl_1_data_2C4); + temp_r30->pos.z = 500.0 + 750.0 * sind(lbl_1_data_2C4); + temp_r30->rot.y += 0.2f; + if (var_r29->unk04 == 2) { + var_r29->unk04 = 3; + lbl_1_bss_4F10.unk00 = HuAudFXPlay(0x6DB); + fn_1_157BC(arg0, 1, 1, 1, 1); + } + lbl_1_data_2C4 -= 0.2f; + if (lbl_1_data_2C4 < 180.0f) { + var_r29->unk04 = 0; + HuAudFXStop(lbl_1_bss_4F10.unk00); + lbl_1_bss_4F10.unk00 = -1; + lbl_1_data_2C4 = 270.0f; + Hu3DModelPosSet(arg0->model[1], -750.0f, 0.0f, 500.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 90.0f, 0.0f); + fn_1_157BC(arg0, 1, 1, 1, 2); + fn_1_7D50(6); + } + } + sp14.x = temp_r30->pos.x; + sp14.y = temp_r30->pos.y; + sp14.z = temp_r30->pos.z; + Hu3D3Dto2D(&sp14, 1, &sp8); + var_r28 = 32.0f + sp8.x * 0.1f; + if (var_r28 <= 32) { + var_r28 = 32; + } else if (var_r28 >= 96) { + var_r28 = 96; + } + if (lbl_1_bss_4F10.unk00 != -1) { + HuAudFXPanning(lbl_1_bss_4F10.unk00, var_r28); + } +} + +void fn_1_3E84(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + var_r31->unk08 = arg0; +} + +void fn_1_3EA4(omObjData* arg0) { + StructBssC30* var_r31; + s32 i; + + var_r31 = &lbl_1_bss_C30; + switch (var_r31->unk08) { + case 0: + var_r31->unk10 = 0; + var_r31->unk78 = 7.5f; + var_r31->unk74 = var_r31->unk74; + break; + case 1: + if (lbl_1_bss_4F10.unk14 == 0) { + lbl_1_bss_4F10.unk14 = 1; + lbl_1_bss_4F10.unk04 = HuAudFXPlay(0x6DE); + } + fn_1_4104(1); + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + break; + case 2: + if (lbl_1_bss_4F10.unk14 == 1) { + lbl_1_bss_4F10.unk14 = 0; + HuAudFXStop(lbl_1_bss_4F10.unk04); + } + for (i = 0; i < 3; i++) { + if (var_r31->unk2C[i] != 7) { + break; + } + } + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + if (i == 3) { + var_r31->unk08 = 3; + } + break; + case 3: + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + var_r31->unk78 -= 0.025f; + if (var_r31->unk78 < 0.0f) { + var_r31->unk78 = 0.0f; + } + break; + } + omSetRot(arg0, 0.0f, 0.0f, var_r31->unk74); +} + +void fn_1_4104(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + if (var_r31->unk10 == 0) { + var_r31->unk10 = arg0; + } +} + +void fn_1_4130(omObjData* arg0) { + Vec spC; + StructBss4EE8* sp8; + StructBssC30* var_r31; + ModelData* temp_r28; + ModelData* temp_r29; + s32 temp_r26; + s32 i; + + sp8 = &lbl_1_bss_4EE8; + var_r31 = &lbl_1_bss_C30; + temp_r26 = lbl_1_bss_4EE8.unk10 - 1; + switch (var_r31->unk10) { + case 1: + var_r31->unk10 = 2; + if (temp_r26 < 0) { + var_r31->unk10 = 0; + break; + } + for (i = 0; i < 3; i++) { + temp_r28 = &Hu3DData[arg0->model[i + temp_r26 * 3 + 2]]; + var_r31->unk13C[i].x = temp_r28->pos.x; + var_r31->unk13C[i].y = temp_r28->pos.y; + var_r31->unk13C[i].z = temp_r28->pos.z; + var_r31->unk160[i].x = var_r31->unk13C[i].x + rand8() % 50; + var_r31->unk160[i].y = 7.5f; + var_r31->unk160[i].z = var_r31->unk13C[i].z + (rand8() % 150 - 75); + var_r31->unk184[i].x = 0.0f; + var_r31->unk184[i].y = rand8() % 120; + if (rand8() % 2 == 0) { + var_r31->unk184[i].y *= -1.0f; + } + var_r31->unk184[i].z = 5.0f + rand8() % 5; + var_r31->unk14[i] = rand8() % 10 + 15; + } + var_r31->unk20 = 0; + break; + case 2: + for (i = 0; i < 3; i++) { + temp_r29 = &Hu3DData[arg0->model[i + temp_r26 * 3 + 2]]; + spC.x = fn_1_1539C(var_r31->unk13C[i].x, var_r31->unk160[i].x, var_r31->unk20, var_r31->unk14[i]); + spC.y = fn_1_1539C(var_r31->unk13C[i].y, var_r31->unk160[i].y, var_r31->unk20, var_r31->unk14[i]); + spC.z = fn_1_1539C(var_r31->unk13C[i].z, var_r31->unk160[i].z, var_r31->unk20, var_r31->unk14[i]); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], spC.x, spC.y, spC.z); + if (var_r31->unk20 <= var_r31->unk14[i]) { + temp_r29->rot.y = fn_1_15294(temp_r29->rot.y, var_r31->unk184[i].y, 15.0f); + temp_r29->rot.z = fn_1_15294(temp_r29->rot.z, 90.0f, 15.0f); + } else { + temp_r29->rot.z = fn_1_15294(temp_r29->rot.z, 0.0f, 3.0f); + } + } + var_r31->unk20++; + if (var_r31->unk20 >= 60) { + var_r31->unk20 = 0; + var_r31->unk10 = 3; + } + break; + } +} + +s32 fn_1_46D8(float arg0, float arg1) { + s32 sp8[] = { 90, 5, 70, 30, 50, 1, 100, 10 }; + s32 var_r31; + + if (arg0 >= 0.0f && arg0 < 45.0f) { + var_r31 = sp8[0]; + } else if (arg0 >= 45.0f && arg0 < 90.0f) { + var_r31 = sp8[1]; + } else if (arg0 >= 90.0f && arg0 < 135.0f) { + var_r31 = sp8[2]; + } else if (arg0 >= 135.0f && arg0 < 180.0f) { + var_r31 = sp8[3]; + } else if (arg0 >= 180.0f && arg0 < 225.0f) { + var_r31 = sp8[4]; + } else if (arg0 >= 225.0f && arg0 < 270.0f) { + var_r31 = sp8[5]; + } else if (arg0 >= 270.0f && arg0 < 315.0f) { + var_r31 = sp8[6]; + } else if (arg0 >= 315.0f && arg0 < 360.0f) { + var_r31 = sp8[7]; + } + if (arg1 > 75.0f) { + var_r31 = 0; + } + if (arg1 < 25.0f) { + var_r31 = -999; + } + return var_r31; +} + +void fn_1_4904(s32 arg0) { + Vec spC; + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + spC.x = -675.0f; + spC.y = var_r31->unkD0[arg0].y - 175.0f; + spC.z = var_r31->unkD0[arg0].z - 500.0f; + var_r31->unk7C[arg0] = var_r31->unk1A8[arg0] + sqrtf(spC.y * spC.y + spC.z * spC.z); + var_r31->unk94[arg0] = var_r31->unk74 - var_r31->unk78 * (var_r31->unk50[arg0] + 2) + atan2d(spC.y, spC.z); + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + var_r31->unk5C[arg0] = fn_1_46D8(var_r31->unk94[arg0], var_r31->unk7C[arg0]); +} + +void fn_1_4CEC(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + if ((var_r31->unk7C[arg0] >= 23.0f && var_r31->unk7C[arg0] <= 27.0f) + || (var_r31->unk7C[arg0] >= 73.0f && var_r31->unk7C[arg0] <= 77.0f)) + { + var_r31->unk1A8[arg0] = 5.0f; + if (rand8() % 2 == 0) { + var_r31->unk1A8[arg0] *= -1.0f; + } + } +} + +void fn_1_4E08(s32 arg0) { + StructBssC30* var_r31; + float temp_f31; + + var_r31 = &lbl_1_bss_C30; + temp_f31 = var_r31->unk94[arg0]; + if ((temp_f31 >= -2.0f && temp_f31 < 2.0f) + || (temp_f31 >= 43.0f && temp_f31 < 47.0f) + || (temp_f31 >= 88.0f && temp_f31 < 92.0f) + || (temp_f31 >= 133.0f && temp_f31 < 137.0f) + || (temp_f31 >= 178.0f && temp_f31 < 182.0f) + || (temp_f31 >= 223.0f && temp_f31 < 227.0f) + || (temp_f31 >= 268.0f && temp_f31 < 272.0f) + || (temp_f31 >= 313.0f && temp_f31 < 317.0f)) + { + var_r31->unk50[arg0]++; + } +} + +s32 fn_1_4FB4(void) { + StructBssC30* var_r29; + s32 var_r28; + s32 i; + + var_r28 = 0; + var_r29 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + var_r28 += var_r29->unk5C[i]; + } + if (var_r28 < 0) { + return 1; + } + if (var_r29->unk24 == var_r28) { + for (i = 0; i < 3; i++) { + var_r29->unk50[i] += 3; + fn_1_4904(i); + } + return 0; + } + if (var_r29->unk24 > var_r28) { + var_r29->unk24 = var_r28; + } + return 1; +} + +s32 fn_1_5438(void) { + Vec spC; + float var_f28; + StructBssC30* var_r30; + s32 var_r29; + s32 i; + + var_r29 = 1; + var_r30 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + spC.x = -675.0f; + spC.y = var_r30->unkD0[i].y - 175.0f; + spC.z = var_r30->unkD0[i].z - 500.0f; + var_f28 = sqrtf(spC.y * spC.y + spC.z * spC.z); + if (var_f28 <= 30.0f) { + var_r29 = 0; + } + } + return var_r29; +} + +void fn_1_5600(s32 arg0) { + StructBssC30* var_r30; + s32 i; + + var_r30 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + var_r30->unk2C[i] = arg0; + } +} + +void fn_1_5644(omObjData* arg0) { + Vec sp2C; + float temp_f27; + float temp_f23; + StructBssC30* var_r31; + s32 temp_r26; + s32 i; + + var_r31 = &lbl_1_bss_C30; + temp_r26 = lbl_1_bss_4EE8.unk14; + for (i = 0; i < 3; i++) { + switch (var_r31->unk2C[i]) { + case 1: + var_r31->unkAC[i].x = var_r31->unkD0[i].x = -675.0f; + var_r31->unkAC[i].y = var_r31->unkD0[i].y = 175.0f; + var_r31->unkAC[i].z = var_r31->unkD0[i].z = 500.0f; + var_r31->unk38[i] = 0; + var_r31->unkF4[i].x = 0.0f; + var_r31->unkF4[i].y = -325.0f; + var_r31->unkF4[i].z = 500.0f; + var_r31->unk118[i].x = var_r31->unk118[i].y = var_r31->unk118[i].z = 0.0f; + var_r31->unk44[i] = 0; + var_r31->unk50[i] = i + 15; + var_r31->unk7C[i] = var_r31->unk88[i] = 0.0f; + var_r31->unk94[i] = var_r31->unkA0[i] = 0.0f; + var_r31->unk5C[i] = var_r31->unk68[i] = 0; + var_r31->unk1A8[i] = 0.0f; + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], 0.0f, 0.0f, 0.0f); + /* fallthrough */ + case 2: + var_r31->unk2C[i] = 2; + temp_f27 = fn_1_152D4(1.5f, 0.5f, var_r31->unk38[i], 15.0f); + temp_f23 = fn_1_152D4(0.0f, 1.0f, var_r31->unk38[i], 10.0f); + Hu3DModelAttrReset(arg0->model[i + temp_r26 * 3 + 14], 1); + Hu3DModelScaleSet(arg0->model[i + temp_r26 * 3 + 14], temp_f27, temp_f27, temp_f27); + Hu3DModelTPLvlSet(arg0->model[i + temp_r26 * 3 + 14], temp_f23); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 14], var_r31->unkD0[i].x, var_r31->unkD0[i].y, var_r31->unkD0[i].z); + if (var_r31->unk38[i]++ >= 20) { + var_r31->unk38[i] = 0; + var_r31->unk2C[i] = 3; + } + break; + case 3: + if (var_r31->unk38[i]++ >= 30) { + var_r31->unk38[i] = 0; + temp_f23 = 100.0f - i * 15; + temp_f27 = 2.0f * (rand8() % 180); + var_r31->unkAC[i].x = -675.0f; + var_r31->unkAC[i].y = 175.0 + temp_f23 * sind(temp_f27); + var_r31->unkAC[i].z = 500.0 + temp_f23 * cosd(temp_f27); + } + var_r31->unkD0[i].x = var_r31->unkAC[i].x; + var_r31->unkD0[i].y = fn_1_15294(var_r31->unkD0[i].y, var_r31->unkAC[i].y, 30.0f); + var_r31->unkD0[i].z = fn_1_15294(var_r31->unkD0[i].z, var_r31->unkAC[i].z, 30.0f); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 14], var_r31->unkD0[i].x, var_r31->unkD0[i].y, var_r31->unkD0[i].z); + break; + case 4: + var_r31->unk2C[i] = 100; + fn_1_4904(i); + fn_1_4CEC(i); + fn_1_4E08(i); + fn_1_4904(i); + var_r31->unk28 = 0; + HuAudFXPlay(0x6DC); + /* fallthrough */ + case 100: + var_r31->unk2C[i] = 5; + if (var_r31->unk28 == 1) { + var_r31->unk2C[i] = 5; + } + if (i == 2) { + while (fn_1_4FB4() == 0) { + } + var_r31->unk28 = 1; + } + Hu3DModelAttrReset(arg0->model[i + temp_r26 * 3 + 2], 1); + break; + case 5: + var_r31->unkF4[i].x = fn_1_1526C(0.0f, -675.0f, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unkF4[i].y = fn_1_1526C(175.0f, var_r31->unkD0[i].y, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unkF4[i].z = fn_1_1526C(500.0f, var_r31->unkD0[i].z, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unk118[i].x -= 360.0f / var_r31->unk50[i]; + if (var_r31->unk118[i].x >= 360.0f) { + var_r31->unk118[i].x -= 360.0f; + } else if (var_r31->unk118[i].x < 0.0f) { + var_r31->unk118[i].x += 360.0f; + } + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unk118[i].x, 0.0f, 0.0f); + if (var_r31->unk44[i]++ >= var_r31->unk50[i]) { + var_r31->unk2C[i] = 6; + var_r31->unk38[i] = 0; + } + break; + case 6: + var_r31->unk2C[i] = 7; + sp2C.x = -675.0f; + sp2C.y = var_r31->unkF4[i].y - 175.0f; + sp2C.z = var_r31->unkF4[i].z - 500.0f; + var_r31->unk88[i] = var_r31->unk1A8[i] + sqrtf(sp2C.y * sp2C.y + sp2C.z * sp2C.z); + var_r31->unkA0[i] = var_r31->unk74 + atan2d(sp2C.y, sp2C.z); + if (var_r31->unkA0[i] >= 360.0f) { + var_r31->unkA0[i] -= 360.0f; + } else if (var_r31->unkA0[i] < 0.0f) { + var_r31->unkA0[i] += 360.0f; + } + var_r31->unk118[i].y = atan2d(sp2C.y, sp2C.z); + var_r31->unk68[i] = fn_1_46D8(var_r31->unkA0[i], var_r31->unk88[i]); + if (var_r31->unk68[i] >= 0) { + HuAudFXPlay(0x6DD); + } else { + HuAudFXPlay(0x6DF); + } + fn_1_8544(7); + fn_1_3E84(2); + omVibrate(fn_1_8E48(lbl_1_bss_4EE8.unk14), 12, 6, 6); + /* fallthrough */ + case 7: + temp_f27 = fn_1_152D4(0.5f, 1.5f, var_r31->unk38[i], 15.0f); + temp_f23 = fn_1_152D4(1.0f, 0.0f, var_r31->unk38[i], 10.0f); + Hu3DModelScaleSet(arg0->model[i + temp_r26 * 3 + 14], temp_f27, temp_f27, temp_f27); + Hu3DModelTPLvlSet(arg0->model[i + temp_r26 * 3 + 14], temp_f23); + if (var_r31->unk38[i]++ >= 20) { + Hu3DModelAttrSet(arg0->model[i + temp_r26 * 3 + 14], 1); + } + var_r31->unkF4[i].x = -675.0f; + var_r31->unkF4[i].y = 175.0 + var_r31->unk88[i] * sind(var_r31->unk118[i].y); + var_r31->unkF4[i].z = 500.0 + var_r31->unk88[i] * cosd(var_r31->unk118[i].y); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unk118[i].x, 0.0f, 0.0f); + var_r31->unk118[i].z = var_r31->unk118[i].y + var_r31->unk74; + if (var_r31->unk118[i].z >= 360.0f) { + var_r31->unk118[i].z -= 360.0f; + } else if (var_r31->unk118[i].z < 0.0f) { + var_r31->unk118[i].z += 360.0f; + } + var_r31->unk118[i].x -= var_r31->unk78; + if (var_r31->unk118[i].x >= 360.0f) { + var_r31->unk118[i].x -= 360.0f; + } else if (var_r31->unk118[i].x < 0.0f) { + var_r31->unk118[i].x += 360.0f; + } + var_r31->unk118[i].y += var_r31->unk78; + if (var_r31->unk118[i].y >= 360.0f) { + var_r31->unk118[i].y -= 360.0f; + } else if (var_r31->unk118[i].y < 0.0f) { + var_r31->unk118[i].y += 360.0f; + } + break; + } + } +} + +void fn_1_725C(omObjData* arg0) { + fn_1_3B14(arg0); + fn_1_3EA4(arg0); + fn_1_5644(arg0); + fn_1_4130(arg0); +} + +void fn_1_72A4(StructBssC30* arg0) { + omObjData* temp_r29; + s32 i; + s32 j; + + temp_r29 = arg0->unk00; + Hu3DModelRotSet(temp_r29->model[0], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(temp_r29->model[0], 1); + Hu3DModelPosSet(temp_r29->model[1], 0.0f, 0.0f, -250.0f); + Hu3DModelRotSet(temp_r29->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(temp_r29->model[1], 1); + for (i = 0; i < 4; i++) { + for (j = 0; j < 3; j++) { + Hu3DModelPosSet(temp_r29->model[i + 2], 0.0f, -325.0f, 500.0f); + Hu3DModelAttrSet(temp_r29->model[j + i * 3 + 2], 1); + Hu3DModelAttrSet(temp_r29->model[j + i * 3 + 14], 1); + } + } + arg0->unk74 = 0.0f; + for (i = 0; i < 3; i++) { + arg0->unk2C[i] = 0; + arg0->unkAC[i].x = arg0->unkD0[i].x = -675.0f; + arg0->unkAC[i].y = arg0->unkD0[i].y = 175.0f; + arg0->unkAC[i].z = arg0->unkD0[i].z = 500.0f; + arg0->unk38[i] = 0; + arg0->unkF4[i].x = 0.0f; + arg0->unkF4[i].y = -325.0f; + arg0->unkF4[i].z = 500.0f; + arg0->unk118[i].x = arg0->unk118[i].y = arg0->unk118[i].z = 0.0f; + arg0->unk44[i] = 0; + arg0->unk50[i] = 0; + arg0->unk7C[i] = arg0->unk88[i] = 0.0f; + arg0->unk94[i] = arg0->unkA0[i] = 0.0f; + arg0->unk5C[i] = arg0->unk68[i] = 0; + } + arg0->unk24 = 9999; + temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14[0] = arg0->unk14[1] = arg0->unk14[2] = arg0->unk20 = 0; +} + +void fn_1_7628(omObjData* arg0) { + StructBssC30* var_r30; + s32 i; + s32 j; + + var_r30 = &lbl_1_bss_C30; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 24)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); + Hu3DModelRotSet(arg0->model[0], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[0], 1U); + Hu3DModelLayerSet(arg0->model[0], 1); + Hu3DModelShadowSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 25)); + arg0->motion[1] = Hu3DMotionIDGet(arg0->model[1]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 35)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -250.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelHookSet(arg0->model[1], "m435a02-itemfook_d", arg0->model[0]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 3; j++) { + arg0->model[j + i * 3 + 2] = Hu3DModelCreateFile(lbl_1_data_0[fn_1_8F34(i)][0]); + Hu3DModelAttrSet(arg0->model[j + i * 3 + 2], 1); + Hu3DModelShadowSet(arg0->model[j + i * 3 + 2]); + arg0->model[j + i * 3 + 14] = Hu3DModelCreateFile(lbl_1_data_0[fn_1_8F34(i)][1]); + Hu3DModelRotSet(arg0->model[j + i * 3 + 14], 0.0f, 90.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[j + i * 3 + 14], 1); + } + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + var_r30->unk14[0] = var_r30->unk14[1] = var_r30->unk14[2] = var_r30->unk20 = 0; + arg0->func = fn_1_725C; +} + +void fn_1_799C(s32 arg0) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + var_r31->unk00->work[0] = arg0; +} + +void fn_1_79C0(omObjData* arg0) { + switch (arg0->work[0]) { + case 1: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 1, 30, 1); + break; + case 2: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 2, 10, 0); + break; + case 3: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 3, 10, 0); + break; + } +} + +void fn_1_7A78(StructBssC1C* arg0) { + omObjData* temp_r31; + + temp_r31 = arg0->unk00; + omSetTra(temp_r31, 0.0f, 37.0f, -565.0f); + omSetSca(temp_r31, 1.5f, 1.5f, 1.5f); + fn_1_157BC(temp_r31, 0, 1, 1, 1); + temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_7B44(omObjData* arg0) { + StructBssC1C* var_r30; + + var_r30 = &lbl_1_bss_C1C; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 48)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 53)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 49)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 50)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 51)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 52)); + omSetTra(arg0, 0.0f, 37.0f, -565.0f); + omSetSca(arg0, 1.5f, 1.5f, 1.5f); + Hu3DModelShadowSet(arg0->model[0]); + fn_1_157BC(arg0, 0, 1, 1, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + arg0->func = fn_1_79C0; +} + +void fn_1_7D28(s32 arg0, s32 arg1) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[arg0]; + temp_r31->unk1C = arg1; +} + +void fn_1_7D50(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + temp_r31->unk20 = arg0; +} + +void fn_1_7D74(omObjData* arg0) { + StructBss2A4* temp_r30; + + temp_r30 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r30->unk1C) { + case 1: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 0, 30, 1); + } else { + fn_1_157BC(arg0, 0, 0, 30, 1); + fn_1_157BC(arg0, 1, 5, 30, 1); + } + break; + case 2: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 4, 10, 0); + } else { + fn_1_157BC(arg0, 0, 2, 10, 0); + fn_1_157BC(arg0, 1, 5, 10, 2); + } + break; + case 3: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 9, 5, 0); + } + break; + } +} + +void fn_1_7ED4(omObjData* arg0) { + StructBss2A4* temp_r31; + Mtx sp38; + Mtx sp8; + + temp_r31 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r31->unk20) { + case 1: + case 3: + case 6: + temp_r31->unk04.x = arg0->trans.x; + temp_r31->unk04.y = arg0->trans.y; + temp_r31->unk04.z = arg0->trans.z; + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp38); + temp_r31->unk10.x = sp38[0][3]; + temp_r31->unk10.y = sp38[1][3]; + temp_r31->unk10.z = sp38[2][3]; + if (temp_r31->unk20 == 1) { + temp_r31->unk10.x = temp_r31->unk04.x - 30.0f; + } else if (temp_r31->unk20 == 6) { + temp_r31->unk10.x = (120.0f + sp38[0][3]); + temp_r31->unk10.z = (sp38[2][3] - 50.0f); + } + temp_r31->unk2C = 0; + temp_r31->unk20++; + break; + case 2: + fn_1_15934(arg0, 0, 1, 10, 1); + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 5, temp_r31->unk2C++, 0xF); + if (temp_r31->unk2C > 15) { + temp_r31->unk20++; + } + break; + case 4: + if (temp_r31->unk2C == 25) { + fn_1_15934(arg0, 0, 0, 5, 1); + } else if (temp_r31->unk2C == 40) { + fn_1_15934(arg0, 0, 5, 30, 1); + } + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 25); + if (temp_r31->unk2C > 60) { + fn_1_3AF4(2); + temp_r31->unk20++; + } + break; + case 5: + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp8); + omSetTra(arg0, sp8[0][3], sp8[1][3], sp8[2][3]); + omSetRot(arg0, 0.0f, Hu3DData[lbl_1_bss_C30.unk00->model[1]].rot.y - 90.0f, 0.0f); + break; + case 7: + fn_1_15934(arg0, 0, 1, 10, 1); + fn_1_19530(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 5, temp_r31->unk2C++, 15); + fn_1_19658(arg0, 0, 90.0f, 5); + if (temp_r31->unk2C > 15) { + temp_r31->unk20++; + } + break; + case 8: + fn_1_15934(arg0, 0, 0, 5, 1); + lbl_1_bss_14 = 1; + temp_r31->unk20 = temp_r31->unk2C = 0; + break; + } +} + +void fn_1_8250(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + temp_r31->unk24 = arg0; +} + +void fn_1_8274(omObjData* arg0) { + StructBss2A4* temp_r31; + Mtx sp8; + + temp_r31 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r31->unk24) { + case 1: + case 3: + case 5: + fn_1_15934(temp_r31->unk00, 0, 1, 10, 1); + temp_r31->unk04.x = arg0->trans.x; + temp_r31->unk04.y = arg0->trans.y; + temp_r31->unk04.z = arg0->trans.z; + if (temp_r31->unk24 == 1) { + temp_r31->unk10.x = -400.0f; + temp_r31->unk10.y = arg0->trans.y; + temp_r31->unk10.z = -310.0f; + } else if (temp_r31->unk24 == 3) { + temp_r31->unk10.x = 400.0f; + temp_r31->unk10.y = arg0->trans.y; + temp_r31->unk10.z = arg0->trans.z; + } else if (temp_r31->unk24 == 5) { + temp_r31->unk10.x = 400.0f; + temp_r31->unk10.y = 37.0f; + temp_r31->unk10.z = -425.0f; + } + temp_r31->unk2C = 0; + temp_r31->unk24++; + break; + case 2: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 90); + if (temp_r31->unk2C > 90) { + temp_r31->unk24++; + } + break; + case 4: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 90); + if (temp_r31->unk2C > 90) { + temp_r31->unk24++; + } + break; + case 6: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 15); + if (temp_r31->unk2C > 15) { + temp_r31->unk24++; + temp_r31->unk2C = 0; + } + break; + case 7: + fn_1_19658(arg0, 0, -15.0f, 5); + if (temp_r31->unk2C++ > 15) { + temp_r31->unk24++; + } + break; + case 8: + fn_1_15934(temp_r31->unk00, 0, 0, 10, 1); + temp_r31->unk24 = 0; + break; + case 10: + temp_r31->unk24 = 0; + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp8); + arg0->trans.x = sp8[0][3]; + arg0->trans.y = sp8[1][3]; + arg0->trans.z = sp8[2][3]; + break; + } +} + +void fn_1_8544(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + fn_1_15934(temp_r31->unk00, 0, arg0, 1, 0); +} + +void fn_1_8590(omObjData* arg0) { + StructBss2A4* temp_r29; + + temp_r29 = &lbl_1_bss_2A4[arg0->work[0]]; + if (temp_r29->unk1C != 0) { + fn_1_7D74(arg0); + } + if (temp_r29->unk20 != 0) { + fn_1_7ED4(arg0); + } + fn_1_8274(arg0); +} + +void fn_1_8734(StructBss2A4* arg0) { + omObjData* temp_r30; + + temp_r30 = arg0->unk00; + if (temp_r30->work[0] != 0) { + omSetTra(temp_r30, 400.0f, 37.0f, -425.0f); + omSetRot(temp_r30, 0.0f, -15.0f, 0.0f); + fn_1_157BC(temp_r30, 0, 0, 1, 1); + fn_1_19974(&arg0->unk3C, 0); + fn_1_198F8(&arg0->unk3C, -1); + fn_1_19968(&arg0->unk3C, -1); + } else { + omSetTra(temp_r30, -400.0f, 37.0f, -425.0f); + fn_1_157BC(temp_r30, 0, 0, 1, 1); + fn_1_157BC(temp_r30, 1, 5, 1, 1); + } + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk1C = arg0->unk20 = arg0->unk24 = arg0->unk28 = 0; + arg0->unk2C = arg0->unk30 = arg0->unk34 = arg0->unk38 = 0; + lbl_1_bss_14 = 0; +} + +void fn_1_88B0(omObjData* arg0) { + StructBss2A4* temp_r30; + s32 var_r29; + + var_r29 = arg0->work[0]; + temp_r30 = &lbl_1_bss_2A4[var_r29]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 56)); + if (arg0->work[0] != 0) { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 57)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 58)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 62)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 63)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 64)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 65)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 66)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 67)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 68)); + arg0->motion[9] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 69)); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 70)); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 71)); + arg0->motion[12] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 72)); + omSetTra(arg0, 400.0f, 37.0f, -425.0f); + omSetRot(arg0, 0.0f, -15.0f, 0.0f); + fn_1_157BC(arg0, 0, 0, 1, 1); + fn_1_1A33C(lbl_1_bss_0, &temp_r30->unk3C, arg0->model[0], "g007m0-skl_at", 0x100, 0); + fn_1_19974(&temp_r30->unk3C, 0); + fn_1_198F8(&temp_r30->unk3C, -1); + fn_1_19968(&temp_r30->unk3C, -1); + } else { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 59)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 60)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 61)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 73)); + omSetTra(arg0, -400.0f, 37.0f, -425.0f); + fn_1_157BC(arg0, 0, 0, 1, 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 74)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 75)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 76)); + Hu3DModelHookSet(arg0->model[0], "g007m0-itemhook_r", arg0->model[1]); + Hu3DModelLayerSet(arg0->model[0], 2); + Hu3DModelLayerSet(arg0->model[1], 2); + fn_1_157BC(arg0, 1, 5, 1, 1); + } + Hu3DModelShadowSet(arg0->model[0]); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r30->unk1C = temp_r30->unk20 = temp_r30->unk24 = temp_r30->unk28 = 0; + temp_r30->unk2C = temp_r30->unk30 = temp_r30->unk34 = temp_r30->unk38 = 0; + lbl_1_bss_14 = 0; + arg0->func = fn_1_8590; +} + +s32 fn_1_8E48(s32 arg0) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + return temp_r31->unk24; +} + +s32 fn_1_8E70(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C != 0) { + var_r30++; + } + } + return var_r30; +} + +s32 fn_1_8EC8(s32 arg0) { + if (lbl_1_bss_E88[arg0].unk2C != 0) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_8EF4(s32 arg0) { + if (HuPadBtnDown[lbl_1_bss_E88[arg0].unk38] == 0x100) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_8F34(s32 arg0) { + return lbl_1_bss_E88[arg0].unk34; +} + +void fn_1_8F4C(void) { + StructBssE88* temp_r31; + s32 sp8[4]; + s32 i; + + sp8[0] = GWPlayerCurrGet(); + for (i = 1; i < 4; i++) { + sp8[i] = sp8[i - 1] + 1; + if (sp8[i] >= 4) { + sp8[i] = 0; + } + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_E88[i]; + temp_r31->unk24 = sp8[i]; + temp_r31->unk28 = GWPlayerCfg[temp_r31->unk24].group; + temp_r31->unk2C = GWPlayerCfg[temp_r31->unk24].iscom; + temp_r31->unk30 = GWPlayerCfg[temp_r31->unk24].diff; + temp_r31->unk34 = GWPlayerCfg[temp_r31->unk24].character; + temp_r31->unk38 = GWPlayerCfg[temp_r31->unk24].pad_idx; + } +} + +void fn_1_909C(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) { + StructBssE88* sp18; + float temp_f31; + float temp_f30; + float var_f26; + float var_f27; + + sp18 = &lbl_1_bss_E88[arg0->work[0]]; + temp_f31 = arg1.x - arg0->trans.x; + temp_f30 = arg0->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(temp_f30, temp_f31); + var_f27 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f27 <= arg4) { + temp_f31 = temp_f30 = 0.0f; + } else { + temp_f31 = 72.0f * (temp_f31 / var_f27); + temp_f30 = 72.0f * (temp_f30 / var_f27); + } + var_f27 = arg3 * (sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30) / 72.0f); + if (var_f27 >= arg3) { + var_f27 = arg3; + } else if (var_f27 <= 1.0f) { + temp_f31 = temp_f30 = var_f27 = 0.0f; + } + if (temp_f31 != 0.0f || temp_f30 != 0.0f || arg2 >= 0.0f) { + if (arg2 >= 0.0f && temp_f31 == 0.0f && temp_f30 == 0.0f) { + var_f26 = arg2; + } + if (var_f26 >= 180.0f) { + if (arg0->rot.y - var_f26 >= 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 < -180.0f) { + arg0->rot.y += 360.0f; + } + } else { + if (arg0->rot.y - var_f26 > 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 <= -180.0f) { + arg0->rot.y += 360.0f; + } + } + arg0->rot.y = (var_f26 + arg0->rot.y * (arg5 - 1.0f)) / arg5; + } + arg0->trans.x += var_f27 * sind(arg0->rot.y); + arg0->trans.z += var_f27 * cosd(arg0->rot.y); + if (var_f27 >= 6.75f) { + if (arg6 != 0) { + fn_1_15934(arg0, 0, 5, 10, 1); + } else { + fn_1_15934(arg0, 0, 2, 10, 1); + } + } else { + if (var_f27 > 0.0f) { + fn_1_15934(arg0, 0, 2, 10, 1); + } else { + fn_1_15934(arg0, 0, 0, 10, 1); + } + } +} + +void fn_1_9768(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk04 = arg1; +} + +void fn_1_9790(omObjData* arg0) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0->work[0]]; + switch (temp_r31->unk04) { + case 0: + temp_r31->unk04 = 99; + Hu3DModelAttrSet(arg0->model[0], 1); + break; + case 1: + temp_r31->unk04 = 99; + Hu3DModelAttrReset(arg0->model[0], 1); + break; + } +} + +void fn_1_9824(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk08 = arg1; +} + +void fn_1_984C(omObjData* arg0) { + StructBssE88* temp_r30; + HsfMaterial* var_r31; + HsfData* temp_r28; + char** temp_r27; + s32 var_r23; + s32 i, j; + ModelData* temp_r25; + HsfAttribute* temp_r24; + + temp_r30 = &lbl_1_bss_E88[arg0->work[0]]; + if (temp_r30->unk08 != 1) { + return; + } + var_r23 = 1; + temp_r25 = &Hu3DData[arg0->model[0]]; + temp_r28 = temp_r25->hsfData; + var_r31 = temp_r28->material; + if (temp_r30->unk34 == 3) { + for (i = 0; i < temp_r25->hsfData->materialCnt; i++, var_r31++) { + if (i == 1 || i == 2) { + continue; + } + var_r31->color[0] *= temp_r30->unk3C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk3C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk3C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } else { + temp_r27 = CharModelTexNameGet(temp_r30->unk34, 2); + for (i = 0; i < temp_r28->materialCnt; i++, var_r31++) { + var_r23 = 1; + for (j = 0; j < var_r31->numAttrs; j++) { + temp_r24 = &temp_r28->attribute[var_r31->attrs[j]]; + if (strcmp(temp_r27[0], temp_r24->bitmap->name) == 0 || strcmp(temp_r27[1], temp_r24->bitmap->name) == 0) { + var_r23 = 0; + } + } + if (var_r23 == 0) { + continue; + } + var_r31->color[0] *= temp_r30->unk3C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk3C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk3C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } + temp_r30->unk3C -= 0.01; + if (temp_r30->unk3C < 0.0f) { + temp_r30->unk08 = 99; + temp_r30->unk3C = 0.0f; + } +} + +void fn_1_9BCC(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk0C = arg1; + temp_r31->unk1C = 15 - arg1 * 5; + temp_r31->unk20 = 0; +} + +void fn_1_9C08(omObjData* arg0) { + StructBssE88* temp_r31 = &lbl_1_bss_E88[arg0->work[0]]; + Vec sp14[] = { + { 0.0f, 0.0f, 0.0f }, + { 600.0f, 0.0f, 800.0f }, + { -200.0f, 0.0f, 800.0f }, + { -1000.0f, 0.0f, 400.0f } + }; + + if (temp_r31->unk0C >= 1) { + if (temp_r31->unk1C-- <= 0) { + temp_r31->unk20 = 1; + } + if (temp_r31->unk20 != 0) { + fn_1_909C(arg0, sp14[temp_r31->unk0C], -1.0f, 7.0f + temp_r31->unk0C, 30.0f, 5.0f, 1); + } + } +} + +void fn_1_9D88(omObjData* arg0) { + fn_1_9790(arg0); + fn_1_984C(arg0); + fn_1_9C08(arg0); +} + +void fn_1_9F7C(StructBssE88* arg0) { + omObjData* temp_r30 = arg0->unk00; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + s32 temp_r29; + + temp_r29 = temp_r30->work[0]; + omSetTra(temp_r30, sp8[temp_r29].x, sp8[temp_r29].y, sp8[temp_r29].z); + omSetRot(temp_r30, 0.0f, -90.0f, 0.0f); + Hu3DModelAttrSet(temp_r30->model[0], 1); + fn_1_15934(temp_r30, 0, 0, 0, 1); + fn_1_19974(&arg0->unk58, 0); + fn_1_198F8(&arg0->unk58, -1); + fn_1_19968(&arg0->unk58, -1); + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk40 = arg0->unk44 = arg0->unk48 = 0.0f; + arg0->unk4C = arg0->unk50 = arg0->unk54 = 0.0f; + arg0->unk3C = 1.0f; +} + +void fn_1_A148(omObjData* arg0) { + s32 temp_r29 = arg0->work[0]; + StructBssE88* temp_r31 = &lbl_1_bss_E88[temp_r29]; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + + arg0->model[0] = CharModelCreate(temp_r31->unk34, 2); + arg0->motion[0] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[1] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[2] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[6] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 28)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, temp_r31->unk34)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 8 + temp_r31->unk34)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 16 + temp_r31->unk34)); + omSetTra(arg0, sp8[temp_r29].x, sp8[temp_r29].y, sp8[temp_r29].z); + omSetRot(arg0, 0.0f, -90.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], 1); + fn_1_15934(arg0, 0, 0, 0, 1); + fn_1_1A33C(lbl_1_bss_0, &temp_r31->unk58, arg0->model[0], lbl_1_data_E0[temp_r31->unk34], lbl_1_data_100[temp_r31->unk34][0], lbl_1_data_100[temp_r31->unk34][1]); + fn_1_19974(&temp_r31->unk58, 0); + fn_1_198F8(&temp_r31->unk58, -1); + fn_1_19968(&temp_r31->unk58, -1); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r31->unk04 = temp_r31->unk08 = temp_r31->unk0C = temp_r31->unk10 = 0; + temp_r31->unk14 = temp_r31->unk18 = temp_r31->unk1C = temp_r31->unk20 = 0; + temp_r31->unk40 = temp_r31->unk44 = temp_r31->unk48 = 0.0f; + temp_r31->unk4C = temp_r31->unk50 = temp_r31->unk54 = 0.0f; + temp_r31->unk3C = 1.0f; + CharModelMotionDataClose(temp_r31->unk34); + arg0->func = fn_1_9D88; +} + +void fn_1_A4B8(s32 arg0, s32 arg1) { + StructBss144* var_r31; + + var_r31 = &lbl_1_bss_144[arg0]; + var_r31->unk2C = arg1; +} + +void fn_1_A4E0(omObjData* arg0) { + StructBss144* temp_r31; + s32 i; + + temp_r31 = &lbl_1_bss_144[arg0->work[0]]; + switch (temp_r31->unk2C) { + case 0: + temp_r31->unk4C -= 0.1f; + if (temp_r31->unk4C < 0.0f) { + temp_r31->unk4C = 0.0f; + } + break; + case 1: + temp_r31->unk4C += 0.1f; + if (temp_r31->unk4C > 1.0f) { + temp_r31->unk4C = 1.0f; + } + break; + } + for (i = 0; i < 6; i++) { + if (temp_r31->unk4C > 0.0f) { + espDispOn(temp_r31->unk04[i]); + } else { + espDispOff(temp_r31->unk04[i]); + } + if (i == 5) { + espTPLvlSet(temp_r31->unk04[i], 0.5f * temp_r31->unk4C); + } else { + espTPLvlSet(temp_r31->unk04[i], temp_r31->unk4C); + } + } +} + +void fn_1_A670(s32 arg0, s32 arg1) { + StructBss144* temp_r31; + + temp_r31 = &lbl_1_bss_144[arg0]; + temp_r31->unk54 = temp_r31->unk50; + temp_r31->unk50 = arg1; + if (temp_r31->unk50 < 0) { + temp_r31->unk50 = 0; + } else if (temp_r31->unk50 > 999) { + temp_r31->unk50 = 999; + } + temp_r31->unk3C = 0; +} + +void fn_1_A6D4(omObjData* arg0) { + StructBss144* temp_r31; + s32 temp_r30; + s32 var_r29; + + temp_r31 = &lbl_1_bss_144[arg0->work[0]]; + if (temp_r31->unk3C <= 60) { + var_r29 = fn_1_152D4(temp_r31->unk54, temp_r31->unk50, temp_r31->unk3C++, 60.0f); + } else { + var_r29 = temp_r31->unk54 = temp_r31->unk50; + } + if ((temp_r30 = var_r29 / 100) == 0) { + espDispOff(temp_r31->unk04[0]); + } + espBankSet(temp_r31->unk04[0], temp_r30); + if ((temp_r30 = (var_r29 % 100) / 10) == 0 && var_r29 / 100 == 0) { + espDispOff(temp_r31->unk04[1]); + } + espBankSet(temp_r31->unk04[1], temp_r30); + temp_r30 = var_r29 % 10; + espBankSet(temp_r31->unk04[2], temp_r30); +} + +void fn_1_A8C4(omObjData* arg0) { + fn_1_A4E0(arg0); + fn_1_A6D4(arg0); +} + +void fn_1_ABFC(StructBss144* arg0) { + omObjData* temp_r30; + + temp_r30 = arg0->unk00; + espTPLvlSet(arg0->unk04[5], 0.0f); + espDispOff(arg0->unk04[5]); + espTPLvlSet(arg0->unk04[4], 0.0f); + espDispOff(arg0->unk04[4]); + espTPLvlSet(arg0->unk04[3], 0.0f); + espDispOff(arg0->unk04[3]); + espTPLvlSet(arg0->unk04[2], 0.0f); + espDispOff(arg0->unk04[2]); + espTPLvlSet(arg0->unk04[1], 0.0f); + espDispOff(arg0->unk04[1]); + espTPLvlSet(arg0->unk04[0], 0.0f); + espDispOff(arg0->unk04[0]); + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk4C = 0.0f; + arg0->unk50 = arg0->unk54 = 0; + arg0->unk2C = arg0->unk30 = arg0->unk34 = arg0->unk38 = 0; + arg0->unk3C = arg0->unk40 = arg0->unk44 = arg0->unk48 = 0; +} + +void fn_1_AD5C(omObjData* arg0) { + StructBss144* temp_r31; + StructBssE88* var_r26; + s32 temp_r27; + s32 var_r28; + s32 var_r29; + + temp_r27 = arg0->work[0]; + var_r28 = 62; + temp_r31 = &lbl_1_bss_144[temp_r27]; + var_r26 = &lbl_1_bss_E88[temp_r27]; + if (temp_r27 < 2) { + var_r29 = temp_r27 * 118 + 84; + } else { + var_r29 = (temp_r27 - 2) * 118 + 390; + } + temp_r31->unk04[5] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 21), 100, 0); + espPosSet(temp_r31->unk04[5], var_r29, var_r28); + espColorSet(temp_r31->unk04[5], 1, 1, 1); + espTPLvlSet(temp_r31->unk04[5], 0.0f); + espDispOff(temp_r31->unk04[5]); + temp_r31->unk04[4] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 20), 100, 0); + espPosSet(temp_r31->unk04[4], var_r29, var_r28); + espTPLvlSet(temp_r31->unk04[4], 0.0f); + espDispOff(temp_r31->unk04[4]); + temp_r31->unk04[3] = espEntry(lbl_1_data_0[var_r26->unk34][2], 100, 0); + espPosSet(temp_r31->unk04[3], var_r29 - 46, var_r28 - 2); + espTPLvlSet(temp_r31->unk04[3], 0.0f); + espDispOff(temp_r31->unk04[3]); + temp_r31->unk04[0] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[0], var_r29 - 14, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[2], 0.0f); + espDispOff(temp_r31->unk04[2]); + temp_r31->unk04[1] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[1], var_r29 + 6, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[1], 0.0f); + espDispOff(temp_r31->unk04[1]); + temp_r31->unk04[2] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[2], var_r29 + 26, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[0], 0.0f); + espDispOff(temp_r31->unk04[0]); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r31->unk4C = 0.0f; + temp_r31->unk50 = temp_r31->unk54 = 0; + temp_r31->unk2C = temp_r31->unk30 = temp_r31->unk34 = temp_r31->unk38 = 0; + temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = temp_r31->unk48 = 0; + arg0->func = fn_1_A8C4; +} + +s32 fn_1_B1F4(omObjData* arg0) { + StructBss4EE8* var_r25; + StructBss9C* var_r31; + StructBssC1C* var_r28; + StructBssE88* temp_r26; + Mtx sp8; + s32 i; + + var_r25 = &lbl_1_bss_4EE8; + var_r31 = &lbl_1_bss_9C; + var_r28 = &lbl_1_bss_C1C; + temp_r26 = &lbl_1_bss_E88[var_r25->unk10]; + if (arg0->work[3] == 1) { + arg0->work[3] = 0; + arg0->work[1] = 1; + arg0->work[2] = 0; + var_r31->unk04 = 1; + for (i = 0; i < 6; i++) { + var_r31->unk08[i] = -(50.0f * i); + } + } + switch (arg0->work[1]) { + case 1: + arg0->work[1] = 2; + fn_1_19974(&temp_r26->unk58, 0); + fn_1_157BC(var_r28->unk00, 0, 4, 5, 0); + break; + case 2: + if (Hu3DMotionTimeGet(var_r28->unk00->model[0]) == 90.0f) { + arg0->work[1] = 3; + fn_1_157BC(temp_r26->unk00, 0, 6, 5, 0); + Hu3DMotionTimeSet(var_r28->unk00->model[0], 90.0f); + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 0.0f); + HuAudCharVoicePlay(temp_r26->unk34, 0x123); + HuAudFXPlay(0x6D5); + omVibrate(temp_r26->unk24, 120, 12, 0); + } + break; + case 3: + Hu3DModelObjMtxGet(var_r28->unk00->model[0], "g000m0-itemhook_M", sp8); + fn_1_9824(var_r25->unk10, 1); + for (i = 0; i < 6; i++) { + if (var_r31->unk04 == 1 || (var_r31->unk04 == 0 && var_r31->unk08[i] > 0.0f)) { + var_r31->unk08[i] += 10.0f; + } + if (var_r31->unk08[i] > 0.0f) { + var_r31->unk48[i] += 0.1f; + var_r31->unk28[i] -= 5.0f; + if (var_r31->unk88[i] == 0.0f) { + fn_1_157BC(arg0, i + 1, i + 1, 1, 1); + } + if (var_r31->unk88[i] < 8.0f) { + var_r31->unk68[i] += 0.025f; + } else if (var_r31->unk88[i] < 23.0f) { + var_r31->unk68[i] = 0.7f; + } else if (var_r31->unk88[i] < 31.0f) { + var_r31->unk68[i] -= 0.1f; + if (var_r31->unk68[i] < 0.0f) { + var_r31->unk68[i] = 0.0f; + } + } + var_r31->unk88[i] += 1.0f; + } + Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3] + var_r31->unk28[i], sp8[2][3] + var_r31->unk08[i]); + Hu3DModelScaleSet(arg0->model[i + 1], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i]); + Hu3DModelTPLvlSet(arg0->model[i + 1], var_r31->unk68[i]); + if (var_r31->unk88[i] == 31.0f) { + var_r31->unk08[i] = 0.0f; + var_r31->unk28[i] = 0.0f; + var_r31->unk48[i] = 0.0f; + var_r31->unk68[i] = 0.5f; + var_r31->unk88[i] = 0.0f; + } + } + if (arg0->work[2]++ >= 120) { + var_r31->unk04 = 0; + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 1.0f); + } + if (arg0->work[2] >= 10 && arg0->work[2] <= 120) { + fn_1_230(6, -1, 8.0f); + } + break; + } +} + +void fn_1_B828(StructBss9C* arg0) { + omObjData* temp_r29; + s32 i; + + temp_r29 = arg0->unk00; + for (i = 0; i < 6; i++) { + fn_1_157BC(temp_r29, i + 1, i + 1, 5, 1); + arg0->unk08[i] = -(50.0f * i); + arg0->unk28[i] = 0.0f; + arg0->unk48[i] = 0.0f; + arg0->unk68[i] = 0.5f; + arg0->unk88[i] = 0.0f; + } + arg0->unk04 = 1; + temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0; +} + +void fn_1_B950(omObjData *arg0) { + StructBss9C* var_r29; + s32 i; + + var_r29 = &lbl_1_bss_9C; + for (i = 0; i < 6; i++) { + if (i % 2 == 0) { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 54)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } + else { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 55)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } + fn_1_157BC(arg0, i + 1, i + 1, 5, 1); + Hu3DModelPosSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[i + 1], 2); + var_r29->unk08[i] = -(50.0f * i); + var_r29->unk28[i] = 0.0f; + var_r29->unk48[i] = 0.0f; + var_r29->unk68[i] = 0.5f; + var_r29->unk88[i] = 0.0f; + } + var_r29->unk04 = 1; + arg0->func = (void*) fn_1_B1F4; // fn_1_B1F4 must return s32 to match +} + +void fn_1_BBE8(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = 1740.0f; + var_r31->unk30 = -10.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 300.0f; + fn_1_161B0(var_r31, 200.0f); +} + +void fn_1_BC98(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -50.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 200.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 30.0f, 5.0f); +} + +void fn_1_BD70(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 200.0f; + var_r31->unk20 = -50.0f; + var_r31->unk30 = 5.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 200.0f; + fn_1_161B0(var_r31, 200.0f); +} + +void fn_1_BE20(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 45.0f); +} + +void fn_1_BED0(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 150.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 30.0f); +} + +void fn_1_BF80(void) { + StructBssC30* var_r29; + StructBss2A4* sp8; + StructBssE08* var_r31; + ModelData* temp_r30; + + var_r29 = &lbl_1_bss_C30; + sp8 = &lbl_1_bss_2A4[1]; + var_r31 = &lbl_1_bss_E08; + temp_r30 = &Hu3DData[var_r29->unk00->model[1]]; + var_r31->unk18 = temp_r30->pos.x; + var_r31->unk1C = temp_r30->pos.y + 175.0f; + var_r31->unk20 = temp_r30->pos.z; + var_r31->unk30 = -5.0f; + var_r31->unk34 = temp_r30->rot.y; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 600.0f; + fn_1_161B0(var_r31, 15.0f); +} + +void fn_1_C064(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 175.0f; + sp8.unk14 = -250.0f; + sp8.unk24 = -5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 600.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 10.0f, 5.0f); +} + +void fn_1_C13C(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 145.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = -15.0f; + sp8.unk28 = 90.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 60.0f, 5.0f); +} + +void fn_1_C214(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 150.0f; + sp8.unk14 = 435.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 90.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 30.0f, 15.0f); +} + +void fn_1_C2EC(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = 10.0f; + sp8.unk28 = 105.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 30.0f, 15.0f); +} + +void fn_1_C3C4(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = 10.0f; + sp8.unk28 = 105.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 10.0f, 5.0f); +} + +void fn_1_C49C(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 150.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 20.0f); +} + +void fn_1_C54C(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 20.0f); +} + +void fn_1_C5FC(s32 arg0) { + StructBssE08* var_r20; + + var_r20 = &lbl_1_bss_E08; + fn_1_15E50(var_r20); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_BBE8); + break; + case 1: + fn_1_8A4(fn_1_BC98); + break; + case 2: + fn_1_8A4(fn_1_BD70); + break; + case 3: + fn_1_8A4(fn_1_BE20); + break; + case 4: + fn_1_8A4(fn_1_BED0); + break; + case 5: + fn_1_8A4(fn_1_BF80); + break; + case 6: + fn_1_8A4(fn_1_C064); + break; + case 7: + fn_1_8A4(fn_1_C13C); + break; + case 8: + fn_1_8A4(fn_1_C214); + break; + case 10: + fn_1_8A4(fn_1_C49C); + break; + case 11: + fn_1_8A4(fn_1_C54C); + break; + } +} + +void fn_1_C764(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 0)); + fn_1_281C(sp1C, MAKE_MESSID(29, 1)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 80.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D1); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 0)); + fn_1_2594(sp8, 0); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 1)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_CCBC(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 2)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 100.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D2); + fn_1_799C(3); + fn_1_2798(sp8, MAKE_MESSID(29, 2)); + fn_1_2594(sp8, 60); + fn_1_2BFC(3); + fn_1_2594(sp8, 60); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D05C(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 64)); + sp8 = fn_1_1E80(550.0f - sp1C[0], 340.0f, sp1C[0], sp1C[1], 1); + fn_1_7D28(1, 2); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_2798(sp8, MAKE_MESSID(29, 64)); + fn_1_267C(sp8); + fn_1_7D28(1, 1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D498(s32 arg0) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp10[] = { + MAKE_MESSID(29, 6), + MAKE_MESSID(29, 39), + MAKE_MESSID(29, 41), + MAKE_MESSID(29, 43), + MAKE_MESSID(29, 45), + MAKE_MESSID(29, 47), + MAKE_MESSID(29, 49), + MAKE_MESSID(29, 51), + -1 + }; + s32 sp8; + + if (sp10[arg0] == -1) { + return; + } + fn_1_7D28(0, 2); + HuPrcSleep(15); + fn_1_281C(sp1C, sp10[arg0]); + sp8 = fn_1_1E80(20.0f, 360.0f, sp1C[0], sp1C[1], 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_2798(sp8, sp10[arg0]); + fn_1_2594(sp8, 0); + fn_1_7D28(0, 1); + fn_1_24C4(sp8); +} + +void fn_1_D8BC(void) { + float sp64[] = { 0.0f, 0.0f }; + s32 sp10[] = { + MAKE_MESSID(29, 5), + MAKE_MESSID(29, 38), + MAKE_MESSID(29, 40), + MAKE_MESSID(29, 42), + MAKE_MESSID(29, 44), + MAKE_MESSID(29, 46), + MAKE_MESSID(29, 48), + MAKE_MESSID(29, 50), + MAKE_MESSID(29, 52) + }; + s32 var_r30; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 9; i++) { + fn_1_281C(sp64, sp10[i]); + } + var_r30 = fn_1_1E80(550.0f - sp64[0], 340.0f, sp64[0], sp64[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + for (i = 0; i < 9; i++) { + fn_1_7D28(1, 2); + fn_1_2798(var_r30, sp10[i]); + fn_1_2594(var_r30, 0); + fn_1_D498(i); + } + fn_1_7D28(1, 1); + fn_1_24C4(var_r30); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_E190(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 53)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 80.0f, sp1C[0], sp1C[1], 2); + omVibrate(fn_1_8E48(0), 12, 4, 2); + omVibrate(fn_1_8E48(1), 12, 4, 2); + omVibrate(fn_1_8E48(2), 12, 4, 2); + omVibrate(fn_1_8E48(3), 12, 4, 2); + HuAudFXPlay(0x6D2); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 53)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4++; + HuPrcEnd(); +} + +void fn_1_E670(void) { + float sp1C[] = { 0.0f, 0.0f }; + StructBss2A4* var_r27; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 54)); + sp8 = fn_1_1E80(580.0f - sp1C[0] - 40.0f, 260.0f, sp1C[0], sp1C[1], 1); + var_r27 = &lbl_1_bss_2A4[1]; + fn_1_157BC(var_r27->unk00, 0, 12, 1, 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_2798(sp8, MAKE_MESSID(29, 54)); + fn_1_2594(sp8, 15); + fn_1_7D50(1); + fn_1_2594(sp8, 15); + fn_1_24C4(sp8); + fn_1_C5FC(5); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_EA54(void) { + float sp1C[] = { 0.0f, 0.0f }; + StructBss2A4* var_r27; + s32 sp8; + + fn_1_281C(sp1C, MAKE_MESSID(29, 55)); + sp8 = fn_1_1E80(40.0f, 260.0f, sp1C[0], sp1C[1], 0); + var_r27 = &lbl_1_bss_2A4[0]; + fn_1_157BC(var_r27->unk00, 0, 3, 1, 0); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_2798(sp8, MAKE_MESSID(29, 55)); + fn_1_2594(sp8, 15); + fn_1_7D28(0, 1); + fn_1_2594(sp8, 15); + fn_1_24C4(sp8); + HuPrcEnd(); +} + +void fn_1_ED94(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 56)); + fn_1_C5FC(6); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 320.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D2); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 56)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_F1DC(void) { +} + +s32 fn_1_F1E0(void) { + if (fn_1_15670(&lbl_1_bss_84, 0) == 80) { + fn_1_C5FC(1); + lbl_1_bss_4F08[0] = HuAudSeqPlay(6); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 115) { + fn_1_C5FC(2); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 180) { + fn_1_C5FC(3); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 0) { + fn_1_2BFC(2); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 150) { + fn_1_2BFC(1); + } + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F36C(void) { + HuPrcChildCreate(fn_1_C764, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F3A8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F404(void) { + s32 i; + + HuPrcChildCreate(fn_1_CCBC, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + fn_1_9768(i, 1); + } +} + +s32 fn_1_F47C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F4D8(void) { + StructBssC1C* sp8; + + sp8 = &lbl_1_bss_C1C; + fn_1_C5FC(10); +} + +s32 fn_1_F534(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F57C(void) { + HuPrcChildCreate(fn_1_D05C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F5B8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + if (lbl_1_bss_8 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + fn_1_1561C(&lbl_1_bss_84, 6); + } + return 0; +} + +void fn_1_F638(void) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + fn_1_157BC(var_r31->unk00, 0, 0, 60, 1); + HuPrcChildCreate(fn_1_D8BC, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F69C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F6F8(void) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + fn_1_C5FC(11); + fn_1_157BC(var_r31->unk00, 0, 1, 60, 1); +} + +s32 fn_1_F768(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F7B0(void) { + StructBssC1C* var_r30; + StructBss2A4* var_r31; + + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_E190, 100, 0x2000, 0, HuPrcCurrentGet()); + var_r31 = &lbl_1_bss_2A4[1]; + var_r30 = &lbl_1_bss_C1C; + fn_1_19974(&var_r31->unk3C, 1); + fn_1_198F8(&var_r31->unk3C, -1); + fn_1_19968(&var_r31->unk3C, -1); + fn_1_19960(&var_r31->unk3C, var_r30->unk00->model[0]); +} + +s32 fn_1_F858(void) { + if (lbl_1_bss_4 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F89C(void) { + HuPrcChildCreate(fn_1_E670, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_EA54, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F8F8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F954(void) { +} + +s32 fn_1_F958(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F9A0(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_ED94, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F9EC(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_FA48(void) { + s32 i; + StructBssC30* var_r28; + StructBssC1C* var_r27; + StructBssE88* temp_r30; + StructBss2A4* var_r29; + + var_r28 = &lbl_1_bss_C30; + var_r27 = &lbl_1_bss_C1C; + fn_1_157BC(var_r27->unk00, 0, 0, 60, 1); + fn_1_C5FC(7); + for (i = 0; i < 4; i++) { + temp_r30 = &lbl_1_bss_E88[i]; + fn_1_19974(&temp_r30->unk58, 1); + fn_1_198F8(&temp_r30->unk58, -1); + fn_1_19968(&temp_r30->unk58, -1); + fn_1_19960(&temp_r30->unk58, var_r28->unk00->model[1]); + } + var_r29 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r29->unk3C, 0); + fn_1_198F8(&var_r29->unk3C, -1); + fn_1_19968(&var_r29->unk3C, -1); +} + +s32 fn_1_FB50(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0 && lbl_1_bss_14 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_FBAC(void) { + StructBss4EE8* var_r31; + StructBss2A4* var_r30; + StructBssE88* temp_r29; + + var_r31 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + temp_r29 = &lbl_1_bss_E88[var_r31->unk10]; + var_r31->unk0C = 0; + fn_1_157BC(var_r30->unk00, 0, 6, 10, 0); + fn_1_157BC(temp_r29->unk00, 0, 4, 60, 1); + var_r31->unk14 = var_r31->unk10; + HuAudSeqFadeOut(lbl_1_bss_4F08[0], 1000); +} + +s32 fn_1_FC5C(void) { + StructBss4EE8* var_r29; + StructBss2A4* var_r30; + StructBssC30* var_r26; + StructBss2A4* var_r28; + s32 i; + + var_r29 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 0) != 0) { + fn_1_19658(var_r30->unk00, 0, 0.0f, 10); + } else if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 1) != 0) { + fn_1_19658(var_r30->unk00, 0, 90.0f, 10); + if (var_r29->unk0C == 0) { + var_r29->unk0C = 1; + for (i = 0; i < 4; i++) { + fn_1_A4B8(i, 1); + } + fn_1_3E84(1); + fn_1_5600(1); + } + } + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + var_r26 = &lbl_1_bss_C30; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + for (i = 0; i < 3; i++) { + fn_1_19894(&var_r28->unk3C, var_r26->unk00->model[i + var_r29->unk10 * 3 + 2]); + } + fn_1_C5FC(8); + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +StructData3A0 lbl_1_data_3A0[] = { + { fn_1_F1DC, fn_1_F1E0, 300 }, + { fn_1_F36C, fn_1_F3A8, 60 }, + { fn_1_F404, fn_1_F47C, 60 }, + { fn_1_F4D8, fn_1_F534, 45 }, + { fn_1_F57C, fn_1_F5B8, 60 }, + { fn_1_F638, fn_1_F69C, 60 }, + { fn_1_F6F8, fn_1_F768, 45 }, + { fn_1_F7B0, fn_1_F858, 60 }, + { fn_1_F89C, fn_1_F8F8, 60 }, + { fn_1_F954, fn_1_F958, 90 }, + { fn_1_F9A0, fn_1_F9EC, 60 }, + { fn_1_FA48, fn_1_FB50, 180 }, + { fn_1_FBAC, fn_1_FC5C, 180 }, + { NULL, NULL, -1 } +}; + +void fn_1_FE64(void) { + fn_1_154C4(&lbl_1_bss_84, lbl_1_data_3A0); +} + +s32 fn_1_FE94(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_84.unk10 != NULL) { + lbl_1_bss_84.unk10(); + lbl_1_bss_84.unk10 = NULL; + } + if (lbl_1_bss_84.unk14 != NULL) { + var_r31 = lbl_1_bss_84.unk14(); + } + return var_r31; +} + +s32 fn_1_FF2C(s32 arg0, s32 arg1) { + s32 var_r31; + StructBssE88* temp_r30; + + var_r31 = 0; + temp_r30 = &lbl_1_bss_E88[arg0]; + if (temp_r30->unk2C != 0) { + switch (temp_r30->unk30) { + case 0: + if (arg1 % 60 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 1: + if (arg1 % 45 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 2: + if (arg1 % 30 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 3: + if (arg1 % 15 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + } + } else if (HuPadBtnDown[temp_r30->unk38] & 0x100) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_10734(void) { + StructBss2A4* spC; + StructBssE08* sp8; + + spC = &lbl_1_bss_2A4[1]; + sp8 = &lbl_1_bss_E08; +} + +void fn_1_1075C(void) { + StructBssE08 sp8; + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -550.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 1300.0f; + fn_1_169F4(var_r31, &sp8, var_r31->unk44++, 90.0f, 10.0f); +} + +void fn_1_10834(void) { + StructBssE08 sp8; + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -850.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 1300.0f; + fn_1_169F4(var_r31, &sp8, var_r31->unk44++, 120.0f, 10.0f); +} + +void fn_1_1090C(s32 arg0) { + StructBssE08* var_r24; + + var_r24 = &lbl_1_bss_E08; + fn_1_15E50(var_r24); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_C13C); + break; + case 1: + fn_1_8A4(fn_1_C214); + break; + case 2: + fn_1_8A4(fn_1_C2EC); + break; + case 3: + fn_1_8A4(fn_1_C3C4); + break; + case 4: + fn_1_8A4(fn_1_10734); + break; + case 5: + fn_1_8A4(fn_1_1075C); + break; + case 6: + fn_1_8A4(fn_1_10834); + break; + } +} + +void fn_1_10A14(void) { + char sp18[8]; + float sp10[] = { 0.0f, 0.0f }; + StructBss4EE8* var_r29; + StructBssE88* temp_r27; + s32 sp8; + + var_r29 = &lbl_1_bss_4EE8; + temp_r27 = &lbl_1_bss_E88[var_r29->unk10]; + lbl_1_bss_4 = 0; + sprintf(sp18, "%d", var_r29->unk04); + HuWinInsertMesSizeGet(temp_r27->unk34, 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(sp18), 1); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(29, 63)); + sp8 = fn_1_1E80(550.0f - sp10[0], 180.0f, sp10[0], sp10[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_A670(var_r29->unk10, var_r29->unk04); + HuWinInsertMesSet(sp8, MAKE_MESSID_PTR(temp_r27->unk34), 0); + HuWinInsertMesSet(sp8, MAKE_MESSID_PTR(sp18), 1); + fn_1_7D28(1, 2); + fn_1_2798(sp8, MAKE_MESSID(29, 63)); + fn_1_2594(sp8, 120); + fn_1_7D28(1, 1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_10E1C(void) { + float sp14[] = { 0.0f, 0.0f }; + s32 sp1C[][2] = { + { MAKE_MESSID(29, 60), 9 }, + { MAKE_MESSID(29, 61), 11 } + }; + StructBss2A4* var_r27; + s32 sp8; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 2; i++) { + if (i == 1) { + var_r27 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r27->unk3C, 0); + fn_1_198F8(&var_r27->unk3C, -1); + fn_1_19968(&var_r27->unk3C, -1); + } + fn_1_281C(sp14, sp1C[i][0]); + sp8 = fn_1_1E80(550.0f - sp14[0], 180.0f, sp14[0], sp14[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_8544(sp1C[i][1]); + fn_1_2798(sp8, sp1C[i][0]); + fn_1_2594(sp8, 120); + fn_1_24C4(sp8); + } + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_11220(void) { + float sp10[] = { 0.0f, 0.0f }; + float temp_f31; + float temp_f30; + s32 var_r22; + s32 sp8; + s32 i; + StructBssC1C* var_r27; + StructBss2A4* var_r28; + + lbl_1_bss_4 = 0; + fn_1_281C(sp10, MAKE_MESSID(29, 62)); + temp_f31 = 640.0f; + temp_f30 = (580.0f - sp10[0]) / 2 - 1.0f; + sp8 = fn_1_1E80(temp_f31, 100.0f, sp10[0], sp10[1], 2); + fn_1_8544(9); + var_r27 = &lbl_1_bss_C1C; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + fn_1_19960(&var_r28->unk3C, var_r27->unk00->model[0]); + var_r22 = HuAudFXPlay(0x6D6); + HuAudFXPanning(var_r22, 0x60); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 62)); + HuPrcSleep(5); + for (i = 0; i < 120; i++) { + temp_f31 = fn_1_1539C(640.0f, temp_f30, i, 30.0f); + HuWinPosSet(sp8, temp_f31, 100.0f); + HuPrcVSleep(); + } + HuPrcSleep(60); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_116A8(void) { + float sp10[] = { 0.0f, 0.0f }; + float temp_f31; + float temp_f30; + s32 var_r22; + s32 sp8; + s32 i; + StructBssC1C* var_r27; + StructBss2A4* var_r28; + + lbl_1_bss_4 = 0; + fn_1_281C(sp10, MAKE_MESSID(29, 57)); + temp_f31 = 640.0f; + temp_f30 = (580.0f - sp10[0]) / 2 - 1.0f; + sp8 = fn_1_1E80(temp_f31, 100.0f, sp10[0], sp10[1], 2); + var_r27 = &lbl_1_bss_C1C; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + fn_1_19960(&var_r28->unk3C, var_r27->unk00->model[0]); + var_r22 = HuAudFXPlay(0x6D2); + HuAudFXPanning(var_r22, 0x60); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 57)); + HuPrcSleep(5); + for (i = 0; i < 120; i++) { + temp_f31 = fn_1_1539C(640.0f, temp_f30, i, 30.0f); + HuWinPosSet(sp8, temp_f31, 100.0f); + HuPrcVSleep(); + } + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_11B04(void) { + float sp14[] = { 0.0f, 0.0f }; + s32 sp1C[] = { + MAKE_MESSID(29, 58), + MAKE_MESSID(29, 59) + }; + StructBss2A4* var_r25; + StructBss2A4* var_r28; + StructBss9C* var_r24; + s32 sp8; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 2; i++) { + if (i == 1) { + var_r25 = &lbl_1_bss_2A4[1]; + var_r28 = &lbl_1_bss_2A4[0]; + var_r24 = &lbl_1_bss_9C; + var_r24->unk00->work[3] = 1; + fn_1_157BC(var_r28->unk00, 0, 1, 30, 1); + fn_1_157BC(var_r28->unk00, 1, 6, 30, 1); + fn_1_157BC(var_r25->unk00, 0, 10, 60, 0); + lbl_1_bss_4 = 1; + } + fn_1_281C(sp14, sp1C[i]); + sp8 = fn_1_1E80((580.0f - sp14[0]) / 2 - 1.0f, 75.0f, sp14[0], sp14[1], 2); + HuAudFXPlay(0x6D6); + if (i == 0) { + fn_1_799C(2); + } + fn_1_2798(sp8, sp1C[i]); + fn_1_2594(sp8, 60); + if (i == 0) { + fn_1_799C(1); + } + if (i == 1) { + fn_1_2594(sp8, 60); + } + fn_1_24C4(sp8); + } + HuPrcEnd(); +} + +void fn_1_11F7C(void) { +} + +s32 fn_1_11F80(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_11FC8(void) { + StructBss4EE8* var_r31; + StructBss2A4* var_r30; + StructBssE88* temp_r29; + + var_r31 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + temp_r29 = &lbl_1_bss_E88[var_r31->unk10]; + var_r31->unk0C = 0; + fn_1_157BC(var_r30->unk00, 0, 6, 10, 0); + fn_1_157BC(temp_r29->unk00, 0, 4, 60, 1); + var_r31->unk14 = var_r31->unk10; +} + +s32 fn_1_12064(void) { + s32 i; + StructBss4EE8* var_r29; + StructBss2A4* var_r30; + StructBssC30* var_r26; + StructBss2A4* var_r28; + + var_r29 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 0) != 0) { + fn_1_19658(var_r30->unk00, 0, 0.0f, 10); + } else if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 1) != 0) { + fn_1_19658(var_r30->unk00, 0, 90.0f, 10); + if (var_r29->unk0C == 0) { + var_r29->unk0C = 1; + fn_1_3E84(1); + fn_1_5600(1); + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r26 = &lbl_1_bss_C30; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + for (i = 0; i < 3; i++) { + fn_1_19960(&var_r28->unk3C, var_r26->unk00->model[i + var_r29->unk10 * 3 + 2]); + } + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12210(void) { + fn_1_1090C(1); +} + +s32 fn_1_12260(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_122A8(void) { + if (lbl_1_bss_10 == 0) { + lbl_1_bss_10 = 1; + lbl_1_bss_C = 300; + } +} + +s32 fn_1_122E0(void) { + s32 var_r30; + StructBss4EE8* var_r29; + + var_r30 = 0; + var_r29 = &lbl_1_bss_4EE8; + fn_1_15670(&lbl_1_bss_6C, 1); + if (fn_1_15670(&lbl_1_bss_6C, 0) <= 10) { + return 0; + } + if (fn_1_FF2C(var_r29->unk10, fn_1_15670(&lbl_1_bss_6C, 0)) != 0) { + var_r30 = 1; + fn_1_28E8(); + } + if (var_r30 != 0 || fn_1_28C4() != 0) { + fn_1_5600(4); + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12414(void) { + StructBss4EE8* var_r31; + + var_r31 = &lbl_1_bss_4EE8; + var_r31->unk00 = var_r31->unk04 = var_r31->unk08 = 0; +} + +s32 fn_1_12440(void) { + s32 i; + s32 j; + StructBss4EE8* var_r31; + StructBssC30* var_r28; + + var_r31 = &lbl_1_bss_4EE8; + var_r28 = &lbl_1_bss_C30; + if (var_r31->unk00 == 0) { + for (i = 0; i < 3; i++) { + if (var_r28->unk2C[i] != 7) { + break; + } + } + if (i == 3) { + var_r31->unk00 = 1; + for (j = 0; j < 3; j++) { + var_r31->unk04 += var_r28->unk68[j]; + } + } + } else if (var_r31->unk00 == 1) { + if (var_r31->unk04 < 0) { + var_r31->unk08 = 1; + fn_1_1561C(&lbl_1_bss_6C, 9); + fn_1_1090C(3); + } else if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + } + return 0; +} + +void fn_1_12574(void) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + fn_1_157BC(temp_r31->unk00, 0, 8, 10, 1); +} + +s32 fn_1_125BC(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12604(void) { + StructBss4EE8* var_r30; + StructBssE88* spC; + StructBss2A4* var_r29; + StructBssC30* sp8; + StructBss2A4* var_r31; + + var_r30 = &lbl_1_bss_4EE8; + spC = &lbl_1_bss_E88[var_r30->unk10]; + var_r29 = &lbl_1_bss_2A4[1]; + fn_1_157BC(var_r29->unk00, 0, 0, 10, 1); + HuPrcChildCreate(fn_1_10A14, 100, 0x2000, 0, HuPrcCurrentGet()); + fn_1_1090C(3); + sp8 = &lbl_1_bss_C30; + var_r31 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r31->unk3C, 0); + fn_1_198F8(&var_r31->unk3C, -1); + fn_1_19968(&var_r31->unk3C, -1); +} + +s32 fn_1_126F4(void) { + StructBss4EE8* var_r31; + StructBssE88* var_r30; + + var_r31 = &lbl_1_bss_4EE8; + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r30 = &lbl_1_bss_E88[var_r31->unk10]; + fn_1_157BC(var_r30->unk00, 0, 0, 1, 1); + if (var_r31->unk10 == 3) { + fn_1_1561C(&lbl_1_bss_6C, 11); + } else { + return fn_1_15520(&lbl_1_bss_6C); + } + } + return 0; +} + +void fn_1_127B4(void) { + StructBss4EE8* sp8; + + sp8 = &lbl_1_bss_4EE8; + fn_1_1090C(0); +} + +s32 fn_1_12810(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12858(void) { + StructBss4EE8* var_r28; + StructBssE88* temp_r31; + s32 var_r30; + s32 i; + + var_r28 = &lbl_1_bss_4EE8; + var_r30 = var_r28->unk10 + 1; + if (var_r30 >= 4) { + var_r30 = 0; + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_E88[var_r30]; + lbl_1_bss_3C[i].x = temp_r31->unk00->trans.x; + lbl_1_bss_3C[i].y = temp_r31->unk00->trans.y; + lbl_1_bss_3C[i].z = temp_r31->unk00->trans.z; + temp_r31->unk14 = 0; + fn_1_15934(temp_r31->unk00, 0, 2, 10, 1); + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + } +} + +s32 fn_1_12958(void) { + StructBss4EE8* var_r30 = &lbl_1_bss_4EE8; + StructBssE88* temp_r31; + s32 var_r28; + s32 var_r29; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + + var_r29 = var_r30->unk10 + 1; + if (var_r29 >= 4) { + var_r29 = 0; + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + temp_r31 = &lbl_1_bss_E88[var_r29]; + if (temp_r31->unk14++ <= 30) { + fn_1_195F4(temp_r31->unk00, 0, &lbl_1_bss_3C[var_r28], &sp8[var_r28], 5, temp_r31->unk14, 30); + } else { + fn_1_19658(temp_r31->unk00, 0, -90.0f, 10); + if (temp_r31->unk14 >= 40) { + fn_1_15934(temp_r31->unk00, 0, 0, 10, 1); + } + } + var_r29++; + if (var_r29 == 4) { + var_r29 = 0; + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r30->unk10++; + if (var_r30->unk10 >= 4) { + var_r30->unk10 = 0; + } + fn_1_3E84(0); + fn_1_5600(0); + fn_1_1561C(&lbl_1_bss_6C, 0); + } + return 0; +} + +void fn_1_12B50(void) { + HuPrcChildCreate(fn_1_10E1C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12B8C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12BE8(void) { + HuPrcChildCreate(fn_1_11220, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12C24(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + fn_1_1561C(&lbl_1_bss_6C, 12); + } + return 0; +} + +void fn_1_12C80(void) { + HuPrcChildCreate(fn_1_116A8, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12CBC(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12D18(void) { + StructBss4EE8* var_r28; + StructBssC1C* sp10; + StructBss144* temp_r27; + s32 var_r30; + s32 i; + + var_r30 = 999; + var_r28 = &lbl_1_bss_4EE8; + sp10 = &lbl_1_bss_C1C; + for (i = 0; i < 4; i++) { + fn_1_A4B8(i, 0); + } + fn_1_8250(1); + if (var_r28->unk08 != 1) { + for (i = 0; i < 4; i++) { + temp_r27 = &lbl_1_bss_144[i]; + if (var_r30 > temp_r27->unk50) { + var_r30 = temp_r27->unk50; + var_r28->unk10 = i; + } + } + } + { + StructBssE88* temp_r29; + StructBss2A4* var_r24; + Vec sp14[] = { + { 0.0f, 0.0f, -225.0f }, + { -200.0f, 0.0f, -225.0f }, + { 200.0f, 0.0f, -225.0f }, + { 400.0f, 0.0f, -225.0f } + }; + + var_r30 = var_r28->unk10; + for (i = 0; i < 4; i++) { + temp_r29 = &lbl_1_bss_E88[var_r30]; + omSetTra(temp_r29->unk00, sp14[i].x, sp14[i].y, sp14[i].z); + omSetRot(temp_r29->unk00, 0.0f, 180.0f, 0.0f); + fn_1_157BC(temp_r29->unk00, 0, 0, 10, 1); + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + var_r24 = &lbl_1_bss_2A4[1]; + fn_1_19960(&temp_r29->unk58, var_r24->unk00->model[0]); + } + } + fn_1_1090C(5); + + // Hack required to match. + if (0) { + s32 var_r25; + s32 var_r26; + + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r25; + (void) var_r25; + (void) var_r25; + (void) var_r25; + } +} + +// Unused. Mirrors the Vec array defined in fn_1_12D18. +const Vec lbl_1_rodata_48C[] = { + { 0.0f, 0.0f, -225.0f }, + { -200.0f, 0.0f, -225.0f }, + { 200.0f, 0.0f, -225.0f }, + { 400.0f, 0.0f, -225.0f } +}; + +static inline void fn_1_12F48_inline_hack(s32 arg0) { + StructBss4EE8* var_r27; + + var_r27 = &lbl_1_bss_4EE8; + (void) var_r27; + (void) var_r27; + (void) var_r27; + (void) var_r27; + + if (arg0) { + s32 var_r31; + s32 var_r30; + s32 var_r26; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r23; + (void) var_r23; + (void) var_r23; + (void) var_r22; + (void) var_r22; + (void) var_r22; + (void) var_r21; + (void) var_r21; + (void) var_r21; + (void) var_r20; + (void) var_r20; + (void) var_r20; + (void) var_r19; + (void) var_r19; + (void) var_r19; + (void) var_r18; + (void) var_r18; + (void) var_r18; + (void) var_r17; + (void) var_r17; + (void) var_r17; + } +} + +s32 fn_1_12F48(void) { + StructBssC1C* var_r25; + StructBssC30* var_r24; + StructBssE88* sp8; + s32 var_r29; + s32 var_r28; + + fn_1_12F48_inline_hack(0); // Required to match. + if (fn_1_15670(&lbl_1_bss_6C, 0) == 180) { + var_r25 = &lbl_1_bss_C1C; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + sp8 = &lbl_1_bss_E88[var_r29]; + fn_1_19960(&sp8->unk58, var_r25->unk00->model[0]); + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r24 = &lbl_1_bss_C30; + for (var_r28 = 0; var_r28 < 14; var_r28++) { + Hu3DModelAttrSet(var_r24->unk00->model[var_r28], 1); + } + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_1303C(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_11B04, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_13088(void) { + s32 var_r31; + s32 i; + StructBss4EE8* var_r28; + StructBssE88* temp_r29; + + var_r28 = &lbl_1_bss_4EE8; + var_r31 = var_r28->unk10; + if (var_r31 == 4) { + var_r31 = 0; + } + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 0) == 20) { + fn_1_1090C(6); + for (i = 0; i < 4; i++) { + if (i != 0) { + temp_r29 = &lbl_1_bss_E88[var_r31]; + temp_r29->unk0C = i; + temp_r29->unk1C = 15 - i * 5; + temp_r29->unk20 = 0; + } + var_r31++; + if (var_r31 >= 4) { + var_r31 = 0; + } + } + } + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +StructData3A0 lbl_1_data_468[] = { + { fn_1_11F7C, fn_1_11F80, 1 }, + { fn_1_11FC8, fn_1_12064, 120 }, + { fn_1_12210, fn_1_12260, 90 }, + { fn_1_122A8, fn_1_122E0, 120 }, + { fn_1_12414, fn_1_12440, -1 }, + { fn_1_12574, fn_1_125BC, 120 }, + { fn_1_12604, fn_1_126F4, 60 }, + { fn_1_127B4, fn_1_12810, 30 }, + { fn_1_12858, fn_1_12958, 120 }, + { fn_1_12B50, fn_1_12B8C, 60 }, + { fn_1_12BE8, fn_1_12C24, 60 }, + { fn_1_12C80, fn_1_12CBC, 60 }, + { fn_1_12D18, fn_1_12F48, 300 }, + { fn_1_1303C, fn_1_13088, 60 }, + { NULL, NULL, -1 } +}; + +void fn_1_131B0(void) { + fn_1_154C4(&lbl_1_bss_6C, lbl_1_data_468); + fn_1_1561C(&lbl_1_bss_6C, 3); +} + +s32 fn_1_131F0(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_6C.unk10 != NULL) { + lbl_1_bss_6C.unk10(); + lbl_1_bss_6C.unk10 = NULL; + } + if (lbl_1_bss_6C.unk14 != NULL) { + var_r31 = lbl_1_bss_6C.unk14(); + } + return var_r31; +} + +void fn_1_13288(void) { + StructBss4EE8* var_r30; + StructBssE88* temp_r31; + + var_r30 = &lbl_1_bss_4EE8; + temp_r31 = &lbl_1_bss_E88[var_r30->unk10]; + var_r30->unk1C = 0; + lbl_1_data_1E0 = temp_r31->unk00->model[0]; + lbl_1_data_1E4 = temp_r31->unk00->motion[3]; + lbl_1_data_1E8 = temp_r31->unk34; + HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_13338(void) { + StructBss4EE8* var_r31; + StructBssE88* temp_r30; + + var_r31 = &lbl_1_bss_4EE8; + temp_r30 = &lbl_1_bss_E88[var_r31->unk10]; + if (fn_1_15670(&lbl_1_bss_24, 0) == 120) { + fn_1_157BC(temp_r30->unk00, 0, 3, 30, 0); + HuAudSStreamPlay(3); + } + if (fn_1_15670(&lbl_1_bss_24, 1) != 0) { + return fn_1_15520(&lbl_1_bss_24); + } + return 0; +} + +StructData3A0 lbl_1_data_51C[] = { + { fn_1_13288, fn_1_13338, 360 }, + { NULL, NULL, -1 } +}; + +void fn_1_133E4(void) { + fn_1_154C4(&lbl_1_bss_24, lbl_1_data_51C); +} + +s32 fn_1_13414(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_24.unk10 != NULL) { + lbl_1_bss_24.unk10(); + lbl_1_bss_24.unk10 = NULL; + } + if (lbl_1_bss_24.unk14 != NULL) { + var_r31 = lbl_1_bss_24.unk14(); + } + return var_r31; +} + +void fn_1_134AC(omObjData* arg0) { + StructBss4EE8* var_r30; + StructBssE88* temp_r29; + s32 i; + + if (WipeStatGet() == 0) { + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + var_r30 = &lbl_1_bss_4EE8; + temp_r29 = &lbl_1_bss_E88[var_r30->unk10]; + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 0); + } + GWPlayerCoinWinSet(temp_r29->unk24, 1); + omOvlReturnEx(1, 1); + arg0->func = NULL; + } +} + +void fn_1_135A0(omObjData* arg0) { + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(250); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_134AC; + } +} + +void fn_1_13600(void) { + StructBss4EE8* var_r29; + s32 i; + + fn_1_3288(&lbl_1_bss_DE4); + fn_1_72A4(&lbl_1_bss_C30); + fn_1_7A78(&lbl_1_bss_C1C); + for (i = 0; i < 2; i++) { + fn_1_8734(&lbl_1_bss_2A4[i]); + } + for (i = 0; i < 4; i++) { + fn_1_9F7C(&lbl_1_bss_E88[i]); + } + for (i = 0; i < 4; i++) { + fn_1_ABFC(&lbl_1_bss_144[i]); + } + fn_1_B828(&lbl_1_bss_9C); + var_r29 = &lbl_1_bss_4EE8; + var_r29->unk00 = var_r29->unk04 = var_r29->unk08 = var_r29->unk0C = 0; + var_r29->unk10 = var_r29->unk14 = var_r29->unk18 = var_r29->unk1C = 0; + fn_1_FE64(); + fn_1_131B0(); + fn_1_133E4(); + fn_1_C5FC(0); + HuAudFXPlay(0x6D7); +} + +void fn_1_14384(omObjData* arg0) { + StructBssDE4* var_r25; + + switch (lbl_1_bss_1C) { + case 0: + fn_1_13600(); + lbl_1_bss_1C = 1; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_1C = 2; + } + break; + case 2: + if (fn_1_FE94()) { + lbl_1_bss_1C = 3; + } + break; + case 3: + lbl_1_bss_20 = MGSeqStartCreate(); + lbl_1_bss_1C = 4; + lbl_1_bss_4F08[1] = -1; + break; + case 4: + if ((MGSeqStatGet(lbl_1_bss_20) & 0x10) && lbl_1_bss_4F08[1] == -1) { + lbl_1_bss_4F08[1] = HuAudSeqPlay(0x4D); + } + if (MGSeqStatGet(lbl_1_bss_20) == 0) { + lbl_1_bss_1C = 5; + } + break; + case 5: + if (fn_1_131F0()) { + lbl_1_bss_1C = 6; + } + break; + case 6: + lbl_1_bss_20 = MGSeqFinishCreate(); + lbl_1_bss_1C = 7; + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(250); + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_20) == 0) { + lbl_1_bss_1C = 8; + } + break; + case 8: + var_r25 = &lbl_1_bss_DE4; + var_r25->unk04 = 999; + if (fn_1_13414()) { + lbl_1_bss_1C = 9; + } + break; + case 9: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_134AC; + break; + } + fn_1_135A0(arg0); + + // Hack required to match. + if (0) { + s32 var_r31; + s32 var_r28; + + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r28; + (void) var_r28; + (void) var_r28; + } +} + +void fn_1_14760(omObjData* arg0) { + s32 i; + + lbl_1_bss_DE4.unk00 = omAddObjEx(lbl_1_bss_0, 0x200, 16, 16, -1, fn_1_3558); + lbl_1_bss_C30.unk00 = omAddObjEx(lbl_1_bss_0, 0x300, 32, 32, -1, fn_1_7628); + lbl_1_bss_C1C.unk00 = omAddObjEx(lbl_1_bss_0, 0x400, 16, 16, -1, fn_1_7B44); + for (i = 0; i < 2; i++) { + lbl_1_bss_2A4[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x500, 16, 16, -1, fn_1_88B0); + lbl_1_bss_2A4[i].unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + lbl_1_bss_E88[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x50, 16, 16, -1, fn_1_A148); + lbl_1_bss_E88[i].unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + lbl_1_bss_144[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x800, 16, 16, -1, fn_1_AD5C); + lbl_1_bss_144[i].unk00->work[0] = i; + } + lbl_1_bss_9C.unk00 = omAddObjEx(lbl_1_bss_0, 0x700, 16, 16, -1, fn_1_B950); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_14384; +} + +#include "src/REL/executor.c" + +void fn_1_14A54(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + fn_1_1A8(); + fn_1_FDC(); + fn_1_1110(); + fn_1_1818(); + fn_1_2AF0(); + fn_1_8F4C(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_14760); +} + +void ObjectSetup(void) { + fn_1_14A54(); +} diff --git a/src/REL/m435Dll/sequence.c b/src/REL/m435Dll/sequence.c index 57b3db46..704c4c34 100755 --- a/src/REL/m435Dll/sequence.c +++ b/src/REL/m435Dll/sequence.c @@ -322,7 +322,7 @@ void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 a fn_1_1906C(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 1, 1); } -void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { +void fn_1_19658(omObjData* arg0, s32 arg1, float arg2, s32 arg3) { float var_f31; float var_f30; @@ -332,7 +332,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { } else if (var_f31 >= 360.0f) { var_f31 -= 360.0f; } - var_f30 = arg3; + var_f30 = arg2; if (var_f30 < 0.0f) { var_f30 += 360.0f; } else if (var_f30 >= 360.0f) { @@ -353,7 +353,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { var_f31 += 360.0f; } } - var_f31 = (var_f30 + var_f31 * (arg2 - 1)) / arg2; + var_f31 = (var_f30 + var_f31 * (arg3 - 1)) / arg3; if (arg1 == 0) { arg0->rot.y = var_f31; } else { @@ -393,7 +393,7 @@ void fn_1_19960(StructFn19894* arg0, s32 arg1) { arg0->unk464 = arg1; } -void fn_1_19968(StructFn19894* arg0) { +void fn_1_19968(StructFn19894* arg0, s32 arg1) { arg0->unk464 = -1; } @@ -526,7 +526,7 @@ void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 ar fn_1_19974(arg1, 1); arg1->unk08 = arg2; strcpy(arg1->unk10, arg3); - fn_1_19968(arg1); + fn_1_19968(arg1, -1); fn_1_198F8(arg1, -1); arg1->unk470 = 5.0f; arg1->unk474 = 10000.0f; diff --git a/src/REL/m436Dll/main.c b/src/REL/m436Dll/main.c index c7a806b9..95440203 100755 --- a/src/REL/m436Dll/main.c +++ b/src/REL/m436Dll/main.c @@ -14,6 +14,7 @@ #include "game/wipe.h" #include "ext_math.h" +#include "version.h" typedef struct { /* 0x00 */ omObjData *unk00; @@ -650,7 +651,7 @@ void fn_1_27C8(s32 arg0) { if (lbl_1_bss_10 == 0) { lbl_1_bss_10 = 1; - lbl_1_bss_C = arg0 * 60; + lbl_1_bss_C = arg0 * REFRESH_RATE; } } @@ -679,14 +680,14 @@ void fn_1_285C(omObjData *arg0) switch (lbl_1_bss_10) { case 1: if (lbl_1_data_16C == -1) { - lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1); + lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / REFRESH_RATE, -1, -1); } lbl_1_bss_10 = 2; break; case 2: lbl_1_bss_C--; if (lbl_1_data_16C != -1) { - MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + 59) / 60); + MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + REFRESH_RATE - 1) / REFRESH_RATE); } if (lbl_1_bss_C <= 0) { lbl_1_bss_C = 30; @@ -1789,9 +1790,9 @@ void fn_1_77F0(void) HuAudFXPlay(0x6D2); var_r30->unk00->work[3] = 3; fn_1_2744(var_r31, MAKE_MESSID(29, 3)); - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); lbl_1_bss_4 = 2; - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); var_r30->unk00->work[3] = 2; fn_1_2468(var_r31); lbl_1_bss_4 = 1; @@ -1901,17 +1902,17 @@ void fn_1_A5A8(void) var_r28->unk00->work[3] = 2; var_r28->unk00->work[3] = 1; fn_1_2744(var_r31, MAKE_MESSID(29, 21)); - fn_1_24D0(var_r31, 180); + fn_1_24D0(var_r31, 3 * REFRESH_RATE); var_r28->unk00->work[3] = 2; sp68->unk00->work[0] = 10; fn_1_2744(var_r31, MAKE_MESSID(29, 22)); - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); var_r28->unk00->work[3] = 4; fn_1_2A90(var_r31); fn_1_2D94(var_r31); fn_1_3020(); var_r28->unk00->work[3] = 2; - HuPrcSleep(120); + HuPrcSleep(2 * REFRESH_RATE); var_r28->unk00->work[3] = 1; fn_1_2744(var_r31, MAKE_MESSID(29, 37)); fn_1_24D0(var_r31, 0); @@ -2153,7 +2154,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) if (arg2 % 27 == 2 && temp_r31->unk24 == 0) { switch (temp_r31->unk10) { case 0: - if (arg2 <= 120) { + if (arg2 <= 2 * REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 3) { @@ -2164,7 +2165,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 1: - if (arg2 <= 120) { + if (arg2 <= 2 * REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 6) { @@ -2175,7 +2176,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 2: - if (arg2 <= 60) { + if (arg2 <= REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 9) { @@ -2186,7 +2187,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 3: - if (arg2 <= 60) { + if (arg2 <= REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 12) { @@ -2339,14 +2340,14 @@ void fn_1_C90C(void) s32 sp3C[] = { MAKE_MESSID(29, 31), MAKE_MESSID(29, 32), MAKE_MESSID(29, 33) }; var_r28 = rand8() % 3; - HuPrcSleep(70); + HuPrcSleep(REFRESH_RATE + 10); fn_1_26D4(sp28, sp3C[var_r28]); var_r31 = fn_1_2230((580.0f - sp28[0]) / 2, 60.0f, sp28[0], sp28[1], 2); var_r27->unk00->work[2] = 1; HuAudFXPlay(0x6D2); HuAudFXPlay(0x6E3); fn_1_2744(var_r31, sp3C[var_r28]); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2367,7 +2368,7 @@ void fn_1_CCA4(void) HuAudFXPlay(0x6D9); HuAudSeqAllFadeOut(100); fn_1_2744(var_r31, sp24[var_r28]); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2385,7 +2386,7 @@ void fn_1_D018(void) HuAudFXPlay(0x6D9); HuAudSeqAllFadeOut(100); fn_1_2744(var_r31, MAKE_MESSID(29, 36)); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2645,7 +2646,7 @@ s32 fn_1_DEB0(void) Hu3DModelScaleSet(var_r29->unk00->model[temp_r31->unk1C + 1], 1.0f, 1.0f, 1.0f); var_r30->unk0C = temp_r31->unk20 = 1; } - if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= 60) { + if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= REFRESH_RATE) { temp_r26 = &Hu3DData[var_r29->unk00->model[temp_r31->unk1C + 1]]; var_r28->unk00->work[1] = 3; temp_r26->pos.y = temp_r27->pos.y; diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index 6b57e11a..5ca6de46 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -18,6 +18,7 @@ #include "dolphin.h" #include "math.h" #include "string.h" +#include "version.h" typedef struct { /* 0x000 */ omObjData *unk00; @@ -524,7 +525,7 @@ void fn_1_1184(s32 arg0) { if (lbl_1_bss_8 == 0) { lbl_1_bss_8 = 1; - lbl_1_bss_4 = arg0 * 60; + lbl_1_bss_4 = arg0 * REFRESH_RATE; } } @@ -553,14 +554,14 @@ void fn_1_1218(omObjData *arg0) switch (lbl_1_bss_8) { case 1: if (lbl_1_data_12C == -1) { - lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1); + lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / REFRESH_RATE, -1, -1); } lbl_1_bss_8 = 2; break; case 2: lbl_1_bss_4--; if (lbl_1_data_12C != -1) { - MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + 59) / 60); + MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + REFRESH_RATE - 1) / REFRESH_RATE); } if (lbl_1_bss_4 <= 0) { lbl_1_bss_4 = 30; @@ -1019,7 +1020,7 @@ void fn_1_2BBC(omObjData *arg0) fn_1_230(1, 10, 4.0f); } if (temp_r30->unk04 == 0) { - if (temp_r30->unk14++ >= 300) { + if (temp_r30->unk14++ >= 5 * REFRESH_RATE) { temp_r30->unk14 = 0; if (rand8() % 2 != 0) { fn_1_2BAC(1); @@ -2272,9 +2273,9 @@ void fn_1_9320(void) HuAudFXPlay(0x6D2); fn_1_4BAC(2, 10, 0, 1); fn_1_2A10(var_r31, MAKE_MESSID(29, 4)); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_2BAC(3); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_4BAC(0, 30, 1, 1); fn_1_27A4(var_r31); lbl_1_bss_C = 1; @@ -2726,9 +2727,9 @@ void fn_1_BE80(void) HuAudFXPlay(0x6D2); fn_1_4928(1); fn_1_2A10(var_r30, sp1C[temp_r27]); - fn_1_280C(var_r30, 60); + fn_1_280C(var_r30, REFRESH_RATE); lbl_1_bss_C = 1; - fn_1_280C(var_r30, 60); + fn_1_280C(var_r30, REFRESH_RATE); fn_1_27A4(var_r30); HuPrcEnd(); } @@ -2747,9 +2748,9 @@ void fn_1_C248(void) HuAudFXPlay(0x6D2); fn_1_4928(1); fn_1_2A10(var_r31, sp1C[temp_r27]); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); lbl_1_bss_C = 1; - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_27A4(var_r31); HuPrcEnd(); } @@ -2814,7 +2815,7 @@ void fn_1_D03C(void) var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2); HuAudFXPlay(0x6D6); fn_1_2A10(var_r31, sp18[temp_r28]); - fn_1_280C(var_r31, 120); + fn_1_280C(var_r31, 2 * REFRESH_RATE); fn_1_27A4(var_r31); HuPrcEnd(); } @@ -2830,7 +2831,7 @@ void fn_1_D3C0(void) HuAudFXPlay(0x6D6); fn_1_4BAC(1, 10, 0, 1); fn_1_2A10(var_r31, MAKE_MESSID(29, 92)); - fn_1_280C(var_r31, 120); + fn_1_280C(var_r31, 2 * REFRESH_RATE); fn_1_4BAC(0, 30, 1, 1); fn_1_27A4(var_r31); lbl_1_bss_C = 1; diff --git a/src/REL/m438Dll/fire.c b/src/REL/m438Dll/fire.c index e69de29b..349febca 100644 --- a/src/REL/m438Dll/fire.c +++ b/src/REL/m438Dll/fire.c @@ -0,0 +1,1554 @@ +#include "REL/m438Dll.h" + +#include "game/hsfdraw.h" +#define HUSPR_USE_OLD_DEFS +#include "game/sprite.h" + +extern u8 texMtxTbl[]; + +// PROTO +void fn_1_E790(M438UnkStruct2*); +void fn_1_F538(ModelData*, Mtx); +void fn_1_FAB8(M438UnkStruct*); +void fn_1_FD40(M438UnkStruct2*); +void fn_1_10F0C(s16); +s32 fn_1_110B4(s16, u8, s16); + +void fn_1_E658(s16 arg0, s16 arg1) { + M438UnkStruct2* var_r29; + s32 var_r31; + M438UnkStruct3* var_r30; + + lbl_1_bss_DE4.unk_34 = Hu3DHookFuncCreate(fn_1_F538); + Hu3DModelLayerSet(lbl_1_bss_DE4.unk_34, 6); + lbl_1_bss_DE4.unk_30 = arg0; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), 0x10000000); + lbl_1_bss_DE4.unk_40 = var_r29; + lbl_1_bss_DE4.unk_32 = arg1; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), 0x10000000); + lbl_1_bss_DE4.unk_3C = var_r30; + + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { + var_r29->unk_08 = 0; + } + + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { + var_r30->unk_06 = 0; + var_r30->unk_08 = 0; + } + lbl_1_bss_DE4.unk_36 = lbl_1_bss_DE4.unk_38 = lbl_1_bss_DE4.unk_3A = 0; +} + +void fn_1_E790(M438UnkStruct2* arg0) { + ModelData sp120; + Mtx spF0; + Mtx spC0; + Mtx sp90; + Mtx sp60; + Mtx sp30; + GXColor sp2C; + s16 sp8; + M438UnkStruct* var_r31; + s16 var_r29; + s16 var_r28; + s32 var_r27; + M438UnkStruct3* temp_r26; + s32 var_r25; + s32 var_r24; + s16 temp_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + PSMTXConcat(Hu3DCameraMtx, sp90, spC0); + var_r29 = 0; + var_r28 = 0; + sp8 = 0; + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk_04; var_r27++) { + if (arg0->unk_34[var_r27] != 0) { + temp_r26 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r27]]; + PSMTXCopy(temp_r26->unk_18, sp30); + mtxTransCat(sp30, temp_r26->unk_0C.x, temp_r26->unk_0C.y, temp_r26->unk_0C.z); + switch (temp_r26->unk_04) { + case 0: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r22 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r22, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + if ((temp_r26->unk_00->bmp->dataFmt == 7) || (temp_r26->unk_00->bmp->dataFmt == 8)) { + GXSetTevColor(GX_TEVREG2, temp_r26->unk_48); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); + } else { + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + } else { + sp2C.a = temp_r26->unk_48.a; + GXSetTevColor(GX_TEVREG2, sp2C); + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 1: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r21 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r21, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 2: + sp2C.a = 0xE0; + GXSetTevColor(GX_TEVREG1, sp2C); + GXSetTexCoordGen2(var_r28 + 1, GX_TG_BUMP0, var_r28, 0x3C, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + var_r29++; + GXSetTevOrder(var_r29, var_r28 + 1, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(var_r29, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + case 3: + var_r28--; + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r20 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r20, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + var_r28++; + break; + case 4: + mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + PSMTXConcat(Hu3DCameraMtx, sp90, sp30); + PSMTXInverse(Hu3DCameraMtx, sp60); + PSMTXConcat(sp60, sp30, sp60); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp90); + PSMTXConcat(sp90, sp60, sp30); + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX3x4); + var_r19 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX3x4, GX_TG_POS, var_r19, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + } else { + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + } + var_r29++; + var_r28++; + if (temp_r26->unk_4D != 0) { + HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 1, 1, 1); + } else { + HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 0, 0, 1); + } + } + } + GXSetNumTevStages((s16)var_r29); + GXSetNumTexGens((s16)var_r28); + var_r31 = arg0->unk_3C; + for (var_r24 = 0; var_r24 < arg0->unk_02; var_r24++, var_r31++) { + if ((var_r31->unk_38 != 0) && ((var_r31->unk_38 & 4) == 0)) { + switch (var_r31->unk_30) { + case 0: + mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + if (var_r31->unk_31 == 2) { + PSMTXConcat(lbl_1_bss_DE4.unk_00, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); + } + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + PSMTXConcat(Hu3DCameraMtx, sp90, spF0); + break; + case 1: + mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + if (var_r31->unk_31 == 2) { + if (HmfInverseMtxF3X3(spC0, sp90) == 0) { + PSMTXIdentity(sp90); + } + PSMTXConcat(sp90, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); + } + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + PSMTXConcat(spC0, sp90, spF0); + break; + } + GXLoadPosMtxImm(spF0, 0); + PSMTXInverse(spF0, sp90); + PSMTXTranspose(sp90, sp60); + GXLoadNrmMtxImm(sp60, 0); + GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_50); + GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_54); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_33) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if ((var_r31->unk_38 & 0x10) != 0) { + GXSetZMode(0, GX_LEQUAL, 1); + } else { + GXSetZMode(1, GX_LEQUAL, 0); + } + sp120.attr = 0; + temp_r23 = Hu3DLightSet(&sp120, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetNumChans(1); + if ((var_r31->unk_38 & 8) != 0) { + var_r25 = GX_SRC_VTX; + } else { + var_r25 = GX_SRC_REG; + } + switch (var_r31->unk_32) { + case 0: + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, var_r25, 0, GX_DF_CLAMP, GX_AF_NONE); + break; + case 1: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPOT); + break; + case 2: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPEC); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_44, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_48, 4); + for (var_r27 = 0; var_r27 < var_r31->unk_34; var_r27++) { + GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 8); + } + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0U); + GXSetArray(GX_VA_NRM, var_r31->unk_4C, 12); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_3C); + } + } +} + +void fn_1_F538(ModelData* arg0, Mtx arg1) { + Mtx sp38; + Mtx sp8; + M438UnkStruct2* var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_DE4.unk_40; + GXLoadPosMtxImm(arg1, 0); + PSMTXInverse(arg1, sp38); + PSMTXTranspose(sp38, sp8); + GXLoadNrmMtxImm(sp8, 0); + HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_DE4.unk_00); + + for (var_r30 = 0; var_r30 < lbl_1_bss_DE4.unk_30; var_r30++, var_r31++) { + if ((var_r31->unk_08 != 0) && ((var_r31->unk_08 & 2) != 0) && ((var_r31->unk_08 & 4) == 0)) { + if ((u8)omPauseChk() == 0) { + if (var_r31->unk_30) { + var_r31->unk_30(var_r31); + } + if (var_r31->unk_08 == 0) continue; + fn_1_FD40(var_r31); + if (var_r31->unk_08 == 0) continue; + } + fn_1_E790(var_r31); + } + } +} + +M438UnkStruct2* fn_1_F664(s16 arg0) { + return &lbl_1_bss_DE4.unk_40[arg0]; +} + +M438UnkStruct* fn_1_F680(s16 arg0, s16 arg1) { + return &lbl_1_bss_DE4.unk_40[arg0].unk_3C[arg1]; +} + +M438UnkStruct3* fn_1_F6AC(s16 arg0) { + return &lbl_1_bss_DE4.unk_3C[arg0]; +} + +void fn_1_F6C8(M438FireStruct** arg0, s16 arg1, f32 arg8, f32 arg9) { + s32 var_r30; + M438FireStruct* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { + var_r31->unk0.x = (-0.5f * arg8); + var_r31->unk0.y = (0.5f * arg9); + var_r31->unk0.z = 0.0f; + var_r31->unkC.x = (0.5f * arg8); + var_r31->unkC.y = (0.5f * arg9); + var_r31->unkC.z = 0.0f; + var_r31->unk18.x = (0.5f * arg8); + var_r31->unk18.y = (-0.5f * arg9); + var_r31->unk18.z = 0.0f; + var_r31->unk24.x = (-0.5f * arg8); + var_r31->unk24.y = (-0.5f * arg9); + var_r31->unk24.z = 0.0f; + } +} + +void fn_1_F84C(M438FireStruct** arg0, s16 arg1, Vec* arg2) { + Vec* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (Vec*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } + } +} + +void fn_1_F8EC(M438FireStruct2** arg0, s16 arg1, GXColor* arg2) { + GXColor* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (GXColor*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), 0x10000000U); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->r = arg2->r; + var_r31->g = arg2->g; + var_r31->b = arg2->b; + var_r31->a = arg2->a; + } + } +} + +void fn_1_F994(Vec** arg0, s16 arg1, Vec* arg2) { + s32 var_r29; + Vec* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } +} + +void fn_1_FA20(M438FireStruct3** arg0, s16 arg1, HsfVector2f* arg2) { + HsfVector2f* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (HsfVector2f*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + } + } +} + +void fn_1_FAB8(M438UnkStruct* arg0) { + Vec sp1C[4] = { + { -50.0f, 50.0f, 0.0f }, + { 50.0f, 50.0f, 0.0f }, + { 50.0f, -50.0f, 0.0f }, + { -50.0f, -50.0f, 0.0f } + }; + GXColor spC[4] = { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }; + + void* sp8; + s32 var_r31; + s32 var_r29; + void* temp_r28; + + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk_44[var_r31] = sp1C[var_r31]; + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk_48[var_r31] = spC[var_r31]; + } + arg0->unk_4C->x = 0.0f; + arg0->unk_4C->y = 0.0f; + arg0->unk_4C->z = 1.0f; + temp_r28 = arg0->unk_40; + sp8 = temp_r28; + GXBeginDisplayList(temp_r28, 0x100); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GXPosition1x16(var_r31); + GXColor1x16(0); + GXNormal1x16(var_r31); + for (var_r29 = 0; var_r29 < arg0->unk_34; var_r29++) { + GXTexCoord1x16(var_r31); + } + } + arg0->unk_3C = GXEndDisplayList(); +} + +void fn_1_FD40(M438UnkStruct2* arg0) { + M438UnkStruct* var_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* var_r31; + s32 temp_r0; + s32 var_r25; + s32 var_r26; + s32 var_r27; + + var_r27 = 0; + + var_r28 = arg0->unk_3C; + for (var_r25 = 0; var_r25 < arg0->unk_02; var_r25++, var_r28++) { + if ((var_r28->unk_38 & 4) != 0) { + var_r27++; + } else { + var_r31 = var_r28->unk_58; + for (var_r26 = 0; var_r26 < var_r28->unk_34; var_r26++, var_r31++) { + temp_r30 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r26]]; + var_r31->unk_24 &= ~4; + switch (var_r31->unk_24 & 0xF) { + case 1: + var_r31->unk_2C += var_r31->unk_28; + if (var_r31->unk_2C >= 1.0f) { + var_r31->unk_00++; + var_r31->unk_2C -= 1.0f; + } + break; + case 2: + var_r31->unk_2C += var_r31->unk_28; + if (var_r31->unk_2C >= 1.0f) { + var_r31->unk_00 -= 1; + var_r31->unk_2C -= 1.0f; + } + break; + } + if (var_r31->unk_00 >= temp_r30->unk_4C) { + if ((var_r31->unk_24 & 0x10) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 -= 1; + } else if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 2; + var_r31->unk_00 -= 2; + } else if ((var_r31->unk_24 & 0x20) != 0) { + var_r31->unk_00 = 0; + } + var_r31->unk_24 |= 4; + } else if (var_r31->unk_00 < 0) { + if ((var_r31->unk_24 & 0x10) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 = 0; + } else if ((var_r31->unk_24 & 0x20) != 0) { + if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 1; + var_r31->unk_00 = 1; + } else { + var_r31->unk_00 = temp_r30->unk_4C - 1; + } + } else if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 = 0; + } + var_r31->unk_24 |= 4; + } else { + var_r31->unk_24 &= ~8; + } + if (var_r31->unk_00 != var_r31->unk_01) { + var_r31->unk_08 = (var_r31->unk_00 * temp_r30->unk_58); + var_r31->unk_10 = (var_r31->unk_00 * temp_r30->unk_58); + var_r31->unk_18 = ((var_r31->unk_00 + 1) * temp_r30->unk_58); + var_r31->unk_20 = ((var_r31->unk_00 + 1) * temp_r30->unk_58); + if ((var_r31->unk_00 + 1) < temp_r30->unk_4C) { + var_r31->unk_18 -= temp_r30->unk_60; + var_r31->unk_20 -= temp_r30->unk_60; + } + var_r31->unk_01 = var_r31->unk_00; + DCFlushRangeNoSync(&var_r31->unk_04, 0x20); + } + if ((var_r31->unk_24 & 8) != 0) { + if ((var_r28->unk_38 & 0x40000000) != 0) { + var_r28->unk_38 |= 4; + if ((var_r31->unk_24 & 0x40) == 0) { + if (var_r31->unk_00 <= 0) { + var_r31->unk_00 = temp_r30->unk_4C; + } else { + var_r31->unk_00 = 0; + } + } + } else if ((var_r28->unk_38 & 0x80000000) != 0) { + fn_1_107BC(arg0->unk_00); + } + var_r27++; + } + } + } + } + if (var_r27 >= arg0->unk_02) { + if ((arg0->unk_08 & 0x40000000) != 0) { + arg0->unk_08 |= 4; + } else if ((arg0->unk_08 & 0x80000000) != 0) { + fn_1_107BC(arg0->unk_00); + } + } + PPCSync(); +} + +s16 fn_1_10258(u8 arg0, u8 arg1) { + M438UnkStruct* var_r30; + M438UnkStruct2* var_r31; + s32 var_r29; + s32 var_r28; + void* temp_r25; + + var_r31 = &lbl_1_bss_DE4.unk_40[1]; + + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_30; var_r29++, var_r31++) { + if (var_r31->unk_08 == 0) break; + } + if (var_r29 == lbl_1_bss_DE4.unk_30) { + OSReport("OVER BILL\n"); + return 0; + } + var_r31->unk_00 = var_r29; + var_r31->unk_08 = 1; + var_r31->unk_30 = NULL; + var_r31->unk_02 = arg0; + var_r31->unk_04 = arg1; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, 0x10000000); + var_r31->unk_3C = var_r30; + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000); + var_r31->unk_48 = 0; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, 0x10000000); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, 0x10000000); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, 0x10000000); + var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, 0x10000000); + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), 0x10000000); + DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8); + var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 1.0f; + var_r31->unk_70.x = var_r31->unk_70.y = var_r31->unk_70.z = 0.0f; + var_r31->unk_64.x = var_r31->unk_64.y = var_r31->unk_64.z = 0.0f; + var_r31->unk_60 = 0; + + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { + var_r31->unk_7Ca[var_r29] = 0; + } + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + var_r31->unk_34[var_r29] = 0; + } + + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk_38 = 1; + var_r30->unk_34 = arg1; + var_r30->unk_30 = 0; + var_r30->unk_31 = 2; + var_r30->unk_32 = 0; + var_r30->unk_33 = 0; + var_r30->unk_50.r = var_r30->unk_50.g = var_r30->unk_50.b = 0; + var_r30->unk_50.a = 0xFF; + var_r30->unk_54.r = var_r30->unk_54.g = var_r30->unk_54.b = 0xFF; + var_r30->unk_54.a = 0xFF; + var_r30->unk_58 = &var_r31->unk_5C[var_r29 * arg1]; + + for (var_r28 = 0; var_r28 < arg1; var_r28++) { + var_r30->unk_58[var_r28].unk_00 = var_r30->unk_58[var_r28].unk_01 = 0; + var_r30->unk_58[var_r28].unk_28 = 1.0f; + var_r30->unk_58[var_r28].unk_2C = 0.0f; + } + var_r30->unk_00.x = var_r30->unk_00.y = var_r30->unk_00.z = 0.0f; + var_r30->unk_0C.x = var_r30->unk_0C.y = var_r30->unk_0C.z = 0.0f; + var_r30->unk_18.x = var_r30->unk_18.y = var_r30->unk_18.z = 1.0f; + var_r30->unk_6C.x = var_r30->unk_6C.y = var_r30->unk_6C.z = 0.0f; + var_r30->unk_24.x = var_r30->unk_24.y = var_r30->unk_24.z = 0.0f; + var_r30->unk_60.x = var_r30->unk_60.y = var_r30->unk_60.z = 0.0f; + var_r30->unk_5C = 0; + + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + var_r30->unk_78[var_r28] = 0; + } + var_r30->unk_44 = &var_r31->unk_50[var_r29 * 4]; + var_r30->unk_48 = &var_r31->unk_54[var_r29 * 4]; + var_r30->unk_4C = &var_r31->unk_58[var_r29]; + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; + fn_1_FAB8(var_r30); + var_r31->unk_48 += var_r30->unk_3C; + } + temp_r25 = var_r31->unk_4C; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, 0x10000000); + memcpy(var_r31->unk_4C, temp_r25, var_r31->unk_48); + HuMemDirectFree(temp_r25); + DCFlushRangeNoSync(var_r31->unk_50, arg0 * 0x30); + DCFlushRangeNoSync(var_r31->unk_54, arg0 * 0x10); + DCFlushRangeNoSync(var_r31->unk_58, arg0 * 0xC); + DCFlushRangeNoSync(var_r31->unk_4C, var_r31->unk_48); + var_r30 = var_r31->unk_3C; + var_r31->unk_48 = 0; + + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; + var_r31->unk_48 += var_r30->unk_3C; + } + lbl_1_bss_DE4.unk_36 = var_r31->unk_00; + lbl_1_bss_DE4.unk_38 = 0; + lbl_1_bss_DE4.unk_3A = 0; + PPCSync(); + return var_r31->unk_00; +} + +void fn_1_107BC(s16 arg0) { + M438UnkStruct2* temp_r31; + s32 var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((u32) temp_r31->unk_08 != 0) { + if (temp_r31->unk_50 != NULL) { + HuMemDirectFree(temp_r31->unk_50); + } + if (temp_r31->unk_54 != NULL) { + HuMemDirectFree(temp_r31->unk_54); + } + if (temp_r31->unk_58 != NULL) { + HuMemDirectFree(temp_r31->unk_58); + } + if (temp_r31->unk_4C != NULL) { + HuMemDirectFree(temp_r31->unk_4C); + } + if (temp_r31->unk_5C != NULL) { + HuMemDirectFree(temp_r31->unk_5C); + } + + for (var_r30 = 0; var_r30 < temp_r31->unk_04; var_r30++) { + fn_1_10F0C(temp_r31->unk_34[var_r30]); + } + HuMemDirectFree(temp_r31->unk_3C); + HuMemDirectFree(temp_r31->unk_34); + temp_r31->unk_08 = 0; + temp_r31->unk_00 = 0; + } + } +} + +void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) { + lbl_1_bss_DE4.unk_36 = arg0; + lbl_1_bss_DE4.unk_38 = arg1; + lbl_1_bss_DE4.unk_3A = arg2; +} + +#include "game/sprite.h" + +s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) { + f32 var_f31; + f32 var_f30; + AnimData* var_r30; + M438UnkStruct3* var_r31; + s32 var_r29; + + var_r31 = &lbl_1_bss_DE4.unk_3C[1]; + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { + if ((var_r31->unk_06 != 0) && (var_r31->unk_08 == arg0)) break; + } + if (var_r29 < lbl_1_bss_DE4.unk_32) { + var_r31->unk_06++; + return var_r29; + } + + var_r31 = &lbl_1_bss_DE4.unk_3C[1]; + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { + if (var_r31->unk_06 == 0) break; + } + var_r31->unk_08 = arg0; + var_r31->unk_06 = 1; + if (((arg0 & 0xFFFF0000) + 0x10000) == 0) { + var_r30 = HuSprAnimMake(arg1, arg2, 2); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); + arg1 = arg2 = 0; + } else { + var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + } + if ((arg1 == 0) || (arg2 == 0)) { + arg1 = var_r30->bmp->sizeX; + arg2 = var_r30->bmp->sizeY; + var_f31 = var_f30 = 1.0f; + } else { + var_f31 = arg1 / (f32)var_r30->bmp->sizeX; + var_f30 = arg2 / (f32)var_r30->bmp->sizeY; + } + var_r31->unk_00 = var_r30; + var_r31->unk_4E = arg1; + var_r31->unk_50 = arg2; + var_r31->unk_54 = var_f31; + var_r31->unk_58 = var_f30; + var_r31->unk_5C = 1.0f / var_r30->bmp->sizeX; + var_r31->unk_60 = 1.0f / var_r30->bmp->sizeY; + var_r31->unk_04 = 0; + var_r31->unk_4C = var_r30->bmp->sizeY / arg2; + if (var_r31->unk_4C < 1) { + var_r31->unk_4C = 1; + } + var_r31->unk_4D = 0; + if ((arg1 > var_r30->bmp->sizeX) || (arg2 > var_r30->bmp->sizeY)) { + var_r31->unk_4D = 1; + } + var_r31->unk_48.r = var_r31->unk_48.g = var_r31->unk_48.b = 0xFF; + var_r31->unk_48.a = 0xFF; + PSMTXIdentity(var_r31->unk_18); + var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; + return var_r29; +} + +void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { + f32 var_f31; + f32 var_f30; + M438UnkStruct3* temp_r31; + AnimData* temp_r30; + + temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + HuSprAnimKill(temp_r31->unk_00); + temp_r31->unk_08 |= 0xFFFF0000; + temp_r30 = HuSprAnimMake(arg2, arg3, arg1); + temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), 0x10000000U); + var_f31 = arg4 / (f32) temp_r30->bmp->sizeX; + var_f30 = arg5 / (f32) temp_r30->bmp->sizeY; + temp_r31->unk_00 = temp_r30; + temp_r31->unk_4E = arg2; + temp_r31->unk_50 = arg3; + temp_r31->unk_54 = var_f31; + temp_r31->unk_58 = var_f30; + temp_r31->unk_5C = 1.0f / (f32) temp_r30->bmp->sizeX; + temp_r31->unk_60 = 1.0f / (f32) temp_r30->bmp->sizeY; + temp_r31->unk_04 = 0; + temp_r31->unk_4C = temp_r30->bmp->sizeY / arg5; + temp_r31->unk_4D = 0; + temp_r31->unk_48.r = temp_r31->unk_48.g = temp_r31->unk_48.b = 0xFF; + temp_r31->unk_48.a = 0xFF; +} + +void fn_1_10F0C(s16 arg0) { + M438UnkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + if (temp_r31->unk_08 != 0) { + if (temp_r31->unk_06 != 0) { + temp_r31->unk_06 -= 1; + } + if (temp_r31->unk_06 == 0) { + HuSprAnimKill(temp_r31->unk_00); + temp_r31->unk_08 = 0; + } + } +} + +u8 fn_1_10F8C(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { + s32 var_r31; + + if (arg0 == 0) return 0; + + var_r31 = fn_1_10910(arg2, arg3, arg4); + if (var_r31 == 0) return 0; + + fn_1_110B4(arg0, arg1, var_r31); + return var_r31; +} + +u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2) { + u8 var_r31; + + var_r31 = fn_1_10F8C(arg0, arg1, arg2, 0, 0); + + return var_r31; +} + +s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) { + M438UnkStruct* var_r29; + M438UnkStruct2* temp_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* temp_r31; + s32 var_r26; + + if (arg2 == 0) { + return 0; + } + if (arg0 == 0) { + return 0; + } + temp_r28 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r28->unk_08 |= 2; + if (arg2 == temp_r28->unk_34[arg1]) { + return 1; + } + temp_r28->unk_34[arg1] = arg2; + temp_r30 = &lbl_1_bss_DE4.unk_3C[arg2]; + + var_r29 = temp_r28->unk_3C; + for (var_r26 = 0; var_r26 < temp_r28->unk_02; var_r26++, var_r29++) { + if (arg1 == 0) { + var_r29->unk_44[0].x = -0.5f * temp_r30->unk_4E; + var_r29->unk_44[0].y = 0.5f * temp_r30->unk_50; + var_r29->unk_44[1].x = (0.5f * temp_r30->unk_4E); + var_r29->unk_44[1].y = (0.5f * temp_r30->unk_50); + var_r29->unk_44[2].x = (0.5f * temp_r30->unk_4E); + var_r29->unk_44[2].y = (-0.5f * temp_r30->unk_50); + var_r29->unk_44[3].x = (-0.5f * temp_r30->unk_4E); + var_r29->unk_44[3].y = (-0.5f * temp_r30->unk_50); + var_r29->unk_44[0].z = var_r29->unk_44[1].z = var_r29->unk_44[2].z = var_r29->unk_44[3].z = 0.0f; + } + temp_r31 = &var_r29->unk_58[arg1]; + temp_r31->unk_24 = 0; + temp_r31->unk_00 = temp_r31->unk_01 = 0; + temp_r31->unk_28 = 1.0f; + temp_r31->unk_2C = 0.0f; + temp_r31->unk_04 = temp_r31->unk_00 * temp_r30->unk_54; + temp_r31->unk_08 = temp_r31->unk_00 * temp_r30->unk_58; + temp_r31->unk_0C = (temp_r31->unk_00 + 1) * temp_r30->unk_54; + temp_r31->unk_10 = temp_r31->unk_00 * temp_r30->unk_58; + temp_r31->unk_14 = (temp_r31->unk_00 + 1) * temp_r30->unk_54; + temp_r31->unk_18 = (temp_r31->unk_00 + 1) * temp_r30->unk_58; + temp_r31->unk_1C = (temp_r31->unk_00 * temp_r30->unk_54); + temp_r31->unk_20 = (temp_r31->unk_00 + 1) * temp_r30->unk_58; + if ((temp_r31->unk_00 + 1) < temp_r30->unk_4C) { + temp_r31->unk_18 -= temp_r30->unk_60; + temp_r31->unk_20 -= temp_r30->unk_60; + } + DCFlushRangeNoSync(&temp_r31->unk_04, 0x20); + } + lbl_1_bss_DE4.unk_36 = arg0; + lbl_1_bss_DE4.unk_3A = arg1; + PPCSync(); + return 1; +} + +void fn_1_11658(void) { + M438UnkStruct2* temp_r31; + M438UnkStruct3* temp_r30; + M438UnkStruct3* temp_r29; + s32 var_r28; + s32 var_r27; + s16 var_r26; + + for (var_r28 = 1; var_r28 < lbl_1_bss_DE4.unk_30; var_r28++) { + if ((s16)var_r28 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[(s16)var_r28]; + if (temp_r31->unk_08 != 0) { + if (temp_r31->unk_50 != NULL) { + HuMemDirectFree(temp_r31->unk_50); + } + if (temp_r31->unk_54 != NULL) { + HuMemDirectFree(temp_r31->unk_54); + } + if (temp_r31->unk_58 != NULL) { + HuMemDirectFree(temp_r31->unk_58); + } + if (temp_r31->unk_4C != NULL) { + HuMemDirectFree(temp_r31->unk_4C); + } + if (temp_r31->unk_5C != NULL) { + HuMemDirectFree(temp_r31->unk_5C); + } + + for (var_r27 = 0; var_r27 < temp_r31->unk_04; var_r27++) { + var_r26 = temp_r31->unk_34[var_r27]; + temp_r29 = &lbl_1_bss_DE4.unk_3C[var_r26]; + if (temp_r29->unk_08 != 0) { + if (temp_r29->unk_06 != 0) { + temp_r29->unk_06 -= 1; + } + if (temp_r29->unk_06 == 0) { + HuSprAnimKill(temp_r29->unk_00); + temp_r29->unk_08 = 0; + } + } + } + HuMemDirectFree(temp_r31->unk_3C); + HuMemDirectFree(temp_r31->unk_34); + temp_r31->unk_08 = 0; + temp_r31->unk_00 = 0; + } + } + } + + for (var_r28 = 1; var_r28 < lbl_1_bss_DE4.unk_32; var_r28++) { + temp_r30 = &lbl_1_bss_DE4.unk_3C[(s16)var_r28]; + if (temp_r30->unk_08 != 0U) { + if (temp_r30->unk_06 != 0) { + temp_r30->unk_06 -= 1; + } + if (temp_r30->unk_06 == 0) { + HuSprAnimKill(temp_r30->unk_00); + temp_r30->unk_08 = 0; + } + } + } + HuMemDirectFree(lbl_1_bss_DE4.unk_40); + HuMemDirectFree(lbl_1_bss_DE4.unk_3C); + Hu3DModelKill(lbl_1_bss_DE4.unk_34); +} + +void fn_1_11890(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_0C.x = arg8; + temp_r31->unk_0C.y = arg9; + temp_r31->unk_0C.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_00 = temp_r31->unk_0C; + } + } +} + +void fn_1_118FC(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_00.x = arg8; + temp_r31->unk_00.y = arg9; + temp_r31->unk_00.z = argA; + } + } +} + +void fn_1_1196C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x = arg8; + var_r31->unk_00.y = arg9; + var_r31->unk_00.z = argA; + } + } +} + +void fn_1_119E0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_0C.x += arg8; + temp_r31->unk_0C.y += arg9; + temp_r31->unk_0C.z += argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_00 = temp_r31->unk_0C; + } + } +} + +void fn_1_11A64(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_00.x += arg8; + temp_r31->unk_00.y += arg9; + temp_r31->unk_00.z += argA; + } + } +} + +void fn_1_11AEC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x += arg8; + var_r31->unk_00.y += arg9; + var_r31->unk_00.z += argA; + } + } +} + +void fn_1_11B78(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_24.x = arg8; + temp_r31->unk_24.y = arg9; + temp_r31->unk_24.z = argA; + } + } +} + +void fn_1_11BE8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_24.x = arg8; + var_r31->unk_24.y = arg9; + var_r31->unk_24.z = argA; + } + } +} + +void fn_1_11C5C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_70.x = arg8; + temp_r31->unk_70.y = arg9; + temp_r31->unk_70.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_6C = temp_r31->unk_70; + } + } +} + +void fn_1_11CC8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_6C.x = arg8; + temp_r31->unk_6C.y = arg9; + temp_r31->unk_6C.z = argA; + } + } +} + +void fn_1_11D38(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_6C.x = arg8; + var_r31->unk_6C.y = arg9; + var_r31->unk_6C.z = argA; + } + } +} + +void fn_1_11DAC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_18.x = arg8; + temp_r31->unk_18.y = arg9; + temp_r31->unk_18.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_0C = temp_r31->unk_18; + } + } +} + +void fn_1_11E18(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_0C.x = arg8; + temp_r31->unk_0C.y = arg9; + temp_r31->unk_0C.z = argA; + } + } +} + +void fn_1_11E88(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_0C.x = arg8; + var_r31->unk_0C.y = arg9; + var_r31->unk_0C.z = argA; + } + } +} + +void fn_1_11EFC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_24.x = arg8; + temp_r31->unk_24.y = arg9; + temp_r31->unk_24.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_18 = temp_r31->unk_24; + } + } +} + +void fn_1_11F68(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_18.x = arg8; + temp_r31->unk_18.y = arg9; + temp_r31->unk_18.z = argA; + } + } +} + +void fn_1_11FD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_18.x = arg8; + var_r31->unk_18.y = arg9; + var_r31->unk_18.z = argA; + } + } +} + +void fn_1_1204C(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_08 |= arg1; + } +} + +void fn_1_12090(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + temp_r30 = &temp_r31->unk_3C[arg1]; + temp_r30->unk_38 |= arg2; + } + } +} + +void fn_1_12100(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_38 |= arg1; + } + } +} + +void fn_1_12174(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_08 &= ~arg1; + } +} + +void fn_1_121B8(s16 arg0, s16 arg1, u32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((s16) temp_r31->unk_02 > arg1) { + temp_r30 = &temp_r31->unk_3C[arg1]; + temp_r30->unk_38 &= ~arg2; + } + } +} + +void fn_1_12228(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_38 &= ~arg1; + } + } +} + +s32 fn_1_1229C(s16 arg0, s32 arg1) { + M438UnkStruct2* var_r31; + + if (arg0 == 0) { + return 0; + } + + var_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((var_r31->unk_08 & arg1) != 0) { + return 1; + } + return 0; +} + +s16 fn_1_122F8(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + if ((var_r30->unk_38 & arg2) != 0) { + return 1; + } + arg0 = 0; + } + } + return arg0; +} + +void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_54.r = arg2; + temp_r31->unk_54.g = arg3; + temp_r31->unk_54.b = arg4; + temp_r31->unk_54.a = arg5; + } + } +} + +void fn_1_123EC(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_54.r = arg1; + var_r31->unk_54.g = arg2; + var_r31->unk_54.b = arg3; + var_r31->unk_54.a = arg4; + } + } +} + +void fn_1_12464(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_30 = arg2; + } + } +} + +void fn_1_124CC(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_30 = arg1; + } + } +} + +void fn_1_12538(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_31 = arg2; + } + } +} + +void fn_1_125A0(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_31 = arg1; + } + } +} + +void fn_1_1260C(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_33 = arg2; + } + } +} + +void fn_1_12674(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_33 = arg1; + } + } +} + +void fn_1_126E0(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_24 = arg2; + } + } +} + +void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_24 = arg3; + } + } +} + +void fn_1_127C4(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r29; + s32 var_r28; + s32 var_r30; + + if (arg0 != 0) { + temp_r29 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = (M438UnkStruct*)&temp_r29->unk_3C; //! bug + for (var_r28 = 0; var_r28 < temp_r29->unk_02; var_r28++, var_r31++) { + for (var_r30 = 0; var_r30 < var_r31->unk_34; var_r30++) { + var_r31->unk_58[var_r30].unk_24 = arg1; + } + } + } +} + +void fn_1_1285C(s16 arg0, s16 arg1, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_28 = arg8; + } + } +} + +void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_28 = arg8; + } + } +} + +void fn_1_12940(s16 arg0, f32 arg8) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r28; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { + for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { + var_r31->unk_58[var_r29].unk_28 = arg8; + } + } + } +} + +void fn_1_129D8(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_00 = arg2; + } + } +} + +void fn_1_12A48(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_00 = arg3; + } + } +} + +void fn_1_12AC0(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r28; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { + for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { + var_r31->unk_58[var_r29].unk_00 = arg1; + } + } + } +} + +void fn_1_12B58(s16 arg0, u8 arg1) { + M438UnkStruct3* var_r31; + + if (arg0 != 0) { + var_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + var_r31->unk_04 = arg1; + } +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 26583249..861c653d 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -5,6 +5,7 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" @@ -12,6 +13,8 @@ #include "REL/m438Dll.h" +#define BOARD_FABS(value) ((value < 0.0f) ? -(value) : (value)) + typedef struct M438MainWork { u8 unk_00; u8 unk_01; @@ -82,7 +85,11 @@ typedef struct M438MainWork2 { typedef struct M438MainWork3 { u8 unk_00; - Vec unk_04; + s16 unk_02; + union { + Vec unk_04; + s32 unk_04s; + }; Vec unk_10; Vec unk_1C; Vec unk_28; @@ -112,24 +119,7 @@ typedef struct M438MainWork3 { float unk_170[3]; float unk_17C[3]; u16 unk_188[3]; -} M438MainWork3; /* size = */ - -typedef struct M438MainWork4 { - s8 unk_00; - char unk04[11]; - float unk_0C; - float unk_10; - float unk_14; - float unk_18; - float unk_1C; - float unk_20; - float unk_24; - char unk28[4]; - float unk_2C; - char unk30[4]; - Vec unk_34; - char unk40[0xC]; -} M438MainWork4; /* size = 0x4C */ +} M438MainWork3; /* size = 0x190 */ typedef struct M438StructBss298 { /* 0x00 */ u8 unk_00; @@ -147,37 +137,11 @@ typedef struct M438StructBss298 { Vec unk_24; } M438StructBss298; /* size = 0x30 */ -typedef struct M438UnkStruct { - char unk00[0x5C]; - s8 unk_5C; - char unk5D[0x3B]; -} M438UnkStruct; /* size = 0x98 */ - -typedef struct M438UnkStruct2 { - char unk00[0x30]; - void *unk_30; // TODO type - char unk34[8]; - M438UnkStruct *unk_3C; - char unk40[0x3C]; - s16 unk_7C; - s16 unk_7E; - float unk_80; - float unk_84; - float unk_88; - float unk_8C; - float unk_90; - char unk94[0x28]; -} M438UnkStruct2; /* size = 0xBC */ - -typedef struct M438StructBssDE4 { - /* 0x00 */ char unk00[0x36]; - s16 unk_36; - s16 unk_38; - s16 unk_3A; - char unk3C[4]; - M438UnkStruct2 *unk_40; -} M438StructBssDE4; /* size = */ +typedef u8 M438UnkType[0x30]; +void fn_1_4DC(omObjData *object); +void fn_1_4FC(omObjData *object); +void fn_1_974(omObjData *object); void fn_1_1174(omObjData *object); void fn_1_1204(omObjData *object); void fn_1_13A0(omObjData *object); @@ -193,14 +157,12 @@ void fn_1_35C0(omObjData *object); void fn_1_4374(omObjData *object); void fn_1_4724(omObjData *object); void fn_1_4984(omObjData *object); -void fn_1_4DC(omObjData *object); void fn_1_4F50(omObjData *object); -void fn_1_4FC(omObjData *object); -void fn_1_5D4C(void *arg0); -void fn_1_62BC(void *arg0); -void fn_1_63B0(void *arg0); -void fn_1_6A3C(void *arg0); -void fn_1_7300(void *arg0); +void fn_1_5D4C(M438UnkStruct2 *arg0); +void fn_1_62BC(M438UnkStruct2 *arg0); +void fn_1_63B0(M438UnkStruct2 *arg0); +void fn_1_6A3C(M438UnkStruct2 *arg0); +void fn_1_7300(M438UnkStruct2 *arg0); void fn_1_7B58(omObjData *object); void fn_1_7BBC(void); void *fn_1_7BFC(s32 arg0); @@ -208,19 +170,18 @@ void fn_1_7D30(void); s32 fn_1_7DB4(void); void fn_1_7DD8(s32 arg0, s32 *arg1); float fn_1_7EDC(float arg8, float arg9, float argA); -void fn_1_8164(float *arg0, Vec *arg1); +void fn_1_8164(Mtx arg0, Vec *arg1); void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3); -float fn_1_8EEC(float *arg0, float *arg1, float *arg2, float arg8); +float fn_1_8EEC(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3); -void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4, float arg8); +void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4); float fn_1_9634(Vec *arg0); -void fn_1_974(omObjData *object); float fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2); float fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); void fn_1_A60C(omObjData *object); void fn_1_A688(omObjData *object); void fn_1_A68C(ModelData *model, Mtx matrix); -s32 fn_1_AE18(u32 arg0, Vec *arg1, Vec *arg2); +s32 fn_1_AE18(u32 arg0, float arg8, Vec *arg1, Vec *arg2); float fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2); Vec lbl_1_data_0 = { 1000.0f, 3000.0f, 1000.0f }; @@ -230,106 +191,6 @@ Vec lbl_1_data_1C = { 500.0f, 3000.0f, 500.0f }; Vec lbl_1_data_28 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_34 = { 0.0f, 0.0f, 0.0f }; -s32 lbl_1_data_64 = -1; -Vec lbl_1_data_68[10][8]; // TODO not right -s32 lbl_1_data_488[0xB] = { 0, 2, 3, 8, 0xA, 9, 0x13, 0xD, 0x10, 0x17, 0x18 }; - -Vec lbl_1_data_4B4[4] = { - { -400.0f, 1600.0f, -400.0f }, - { 400.0f, 1600.0f, -400.0f }, - { -400.0f, 1600.0f, 400.0f }, - { 400.0f, 1600.0f, 400.0f }, -}; - -Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; - -s32 lbl_1_data_520[0x19] = { - 0xFFFFFF9E, - 0xFFFFFF9F, - 0xFFFFFFA0, - 0xFFFFFFA1, - 0xFFFFFFA2, - 0xFFFFFFCE, - 0xFFFFFFCF, - 0xFFFFFFD0, - 0xFFFFFFD1, - 0xFFFFFFD2, - 0xFFFFFFFE, - 0xFFFFFFFF, - 0, - 1, - 2, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x5E, - 0x5F, - 0x60, - 0x61, - 0x62, -}; - -u32 lbl_1_data_584[0x19] = { - 0x50, - 0x64, - 0x78, - 0x64, - 0x50, - 0x64, - 0x8C, - 0xA0, - 0x8C, - 0x64, - 0x78, - 0xA0, - 0xB4, - 0xA0, - 0x78, - 0x64, - 0x8C, - 0xA0, - 0x8C, - 0x64, - 0x50, - 0x64, - 0x78, - 0x64, - 0x50, -}; - -s32 lbl_1_data_5E8[9] = { 0, 0xFFFFFFCF, 0xFFFFFFD0, 0xFFFFFFD1, 0xFFFFFFFF, 1, 0x2F, 0x30, 0x31 }; - -Vec lbl_1_data_60C[9] = { - { 0.0f, 0.0f, 0.0f }, - { -35.416668f, 0.0f, -35.416668f }, - { 0.0f, 0.0f, -35.416668f }, - { 35.416668f, 0.0f, -35.416668f }, - { -35.416668f, 0.0f, 0.0f }, - { 35.416668f, 0.0f, 0.0f }, - { -35.416668f, 0.0f, 35.416668f }, - { 0.0f, 0.0f, 35.416668f }, - { 35.416668f, 0.0f, 35.416668f }, -}; - -s32 lbl_1_data_678[9] = { 0, 0xFFFFFF9E, 0xFFFFFF70, 0xFFFFFFA2, 0xFFFFFFFD, 3, 0x5E, 0x90, 0x62 }; - -Vec lbl_1_data_69C[9] = { - { 0.0f, 0.0f, 0.0f }, - { -70.833336f, 0.0f, -70.833336f }, - { 0.0f, 0.0f, -106.25f }, - { 70.833336f, 0.0f, -70.833336f }, - { -106.25f, 0.0f, 0.0f }, - { 106.25f, 0.0f, 0.0f }, - { -70.833336f, 0.0f, 70.833336f }, - { 0.0f, 0.0f, 106.25f }, - { 70.833336f, 0.0f, 70.833336f }, -}; - -s32 lbl_1_data_708[9] = { 0, 0xFFFFFFED, 0xFFFFFFEE, 0xFFFFFFEF, 0xFFFFFFFF, 1, 0x11, 0x12, 0x13 }; -s32 lbl_1_data_72C[9] = { 0, 0xFFFFFFDA, 0xFFFFFFCA, 0xFFFFFFDE, 0xFFFFFFFD, 3, 0x22, 0x36, 0x26 }; - M438StructBssDE4 lbl_1_bss_DE4; omObjData *lbl_1_bss_DE0; omObjData *lbl_1_bss_DDC; @@ -347,12 +208,13 @@ s16 lbl_1_bss_DAA[4]; s16 lbl_1_bss_DA8; s32 lbl_1_bss_DA4; void *lbl_1_bss_BA4[0x80]; -u32 lbl_1_bss_B98; +u32 lbl_1_bss_B98[3]; M438StructBss298 lbl_1_bss_298[48]; s32 lbl_1_bss_294; u16 lbl_1_bss_C[0x144]; s32 lbl_1_bss_8; s32 lbl_1_bss_4; +static u32 lbl_1_bss_0; void ObjectSetup(void) { @@ -482,6 +344,7 @@ void fn_1_4FC(omObjData *object) } } +s32 lbl_1_data_64 = -1; void fn_1_974(omObjData *object) { s32 var_r31; @@ -514,7 +377,7 @@ void fn_1_974(omObjData *object) if (lbl_1_data_64 == -1 && (MGSeqStatGet(lbl_1_bss_DB6) & 0x10) != 0) { lbl_1_data_64 = HuAudSeqPlay(0x49); } - lbl_1_bss_B98 = 0x12C; + lbl_1_bss_B98[0] = 0x12C; break; case 7: var_r29 = 0; @@ -537,8 +400,8 @@ void fn_1_974(omObjData *object) } break; case 8: - if (lbl_1_bss_B98 != 0) { - lbl_1_bss_B98--; + if (lbl_1_bss_B98[0] != 0) { + lbl_1_bss_B98[0]--; } var_r24 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -558,7 +421,7 @@ void fn_1_974(omObjData *object) } HuAudSeqFadeOut(lbl_1_data_64, 0x3C); } - else if ((MGSeqStatGet(lbl_1_bss_DB6) == 0) && (var_r24 == 0 || lbl_1_bss_B98 == 0)) { + else if ((MGSeqStatGet(lbl_1_bss_DB6) == 0) && (var_r24 == 0 || lbl_1_bss_B98[0] == 0)) { lbl_1_bss_DB6 = -1; lbl_1_bss_DB2 = 0x3C; lbl_1_bss_DBA += 1; @@ -648,6 +511,51 @@ void fn_1_1174(omObjData *object) } } +Vec lbl_1_data_68[11][8] = { { + { -528.6f, 0.0f, 350.7f }, + { -375.7f, 0.0f, 243.0f }, + { -214.2f, 0.0f, 331.4f }, + { -173.3f, 0.0f, 523.7f }, + { 15.000001f, 0.0f, 505.7f }, + { 148.59999f, 0.0f, 393.0f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -198.7f, 0.0f, -122.899994f }, + { -11.599999f, 0.0f, -177.1f }, + { 63.4f, 0.0f, -349.7f }, + { 277.09999f, 0.0f, -296.4f }, + { 397.5f, 0.0f, -470.2f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -421.0f, 0.0f, -471.3f }, + { -270.1f, 0.0f, -460.0f }, + { -153.1f, 0.0f, -356.5f }, + { 12.4f, 0.0f, -473.99997f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -545.10004f, 0.0f, -318.9f }, + { -469.0f, 0.0f, -154.1f }, + { -313.4, 0.0f, -170.09999f }, + { -250.0f, 0.0f, -32.8f }, + { 0.0f, 1.0f, 0.0f }, + }, + { { -155.6f, 0.0f, 19.5f }, { -34.3f, 0.0f, 96.6f }, { -63.9f, 0.0f, 240.00002f }, { 37.5f, 0.0f, 402.8f }, { 0.0f, 1.0f, 0.0f } }, + { { 207.5f, 0.0f, -163.2f }, { 270.1f, 0.0f, -104.799995f }, { 402.19998f, 0.0f, -102.4f }, { 511.49997f, 0.0f, -25.099998f }, + { 627.3f, 0.0f, -142.0f }, { 0.0f, 1.0f, 0.0f } }, + { + { -601.0f, 0.0f, 97.799995f }, + { -516.80005f, 0.0f, 60.000004f }, + { -417.7f, 0.0f, 92.9f }, + { -309.40002f, 0.0f, 76.1f }, + { 0.0f, 1.0f, 0.0f }, + }, + { { 82.8f, 0.0f, 164.2f }, { 179.40001f, 0.0f, 179.8f }, { 241.00002f, 0.0f, 87.1f }, { 323.0f, 0.0f, 38.800003f }, { 0.0f, 1.0f, 0.0f } }, + { { 243.4f, 0.0f, 573.5f }, { 227.7f, 0.0f, 461.2f }, { 319.30002f, 0.0f, 400.6f }, { 342.30002f, 0.0f, 310.0f }, { 0.0f, 1.0f, 0.0f } }, + { { 357.69998f, 0.0f, 146.8f }, { 418.80002f, 0.0f, 225.0f }, { 503.2f, 0.0f, 234.69998f }, { 548.1f, 0.0f, 321.19998f }, { 0.0f, 1.0f, 0.0f } }, + { { -100.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -100.0f }, { 100.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } } }; void fn_1_1204(omObjData *object) { M438StructBss298 *var_r31; @@ -700,9 +608,8 @@ void fn_1_13A0(omObjData *object) switch (lbl_1_bss_DBA) { case 0: case 1: - case 2: - case 3: case 4: + case 5: break; case 6: lbl_1_bss_294 = 0x1E; @@ -729,7 +636,7 @@ void fn_1_13A0(omObjData *object) } for (var_r28 = 0, var_r26 = 0; var_r26 < var_r27; var_r28++) { var_r25 = sp8[var_r28]; - var_r24 = (s32)(80.0f * (0.000015258789f * fn_1_7DB4())) + 0x3C; + var_r24 = (s32)(80.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 0x3C; for (var_r31 = lbl_1_bss_298, var_r30 = 0; var_r30 < 0x30; var_r30++, var_r31++) { if (var_r31->unk_02 == var_r25) { if (var_r31->unk_00 != 0) { @@ -945,9 +852,9 @@ void fn_1_2070(omObjData *object) var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134)); } else { - fn_1_9420((float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3, 2.0f * var_f31); - fn_1_9420((float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3, 2.0f * var_f31); - var_r31->unk_130 = fn_1_8EEC(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 2.0f * var_f31); + fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3); + fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3); + var_r31->unk_130 = fn_1_8EEC(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); } } CRot.x = var_r31->unk_10.x; @@ -1078,6 +985,13 @@ void fn_1_28E4(u8 arg0, u16 arg1, float arg9, float argA, float arg4) var_r31->unk_164[arg0] = 90.0f; } +s32 lbl_1_data_488[11] = { 0, 2, 3, 8, 0xA, 9, 0x13, 0xD, 0x10, 0x17, 0x18 }; +Vec lbl_1_data_4B4[4] = { + { -400.0f, 1600.0f, -400.0f }, + { 400.0f, 1600.0f, -400.0f }, + { -400.0f, 1600.0f, 400.0f }, + { 400.0f, 1600.0f, 400.0f }, +}; void fn_1_2964(omObjData *object) { M438MainWork *var_r31; @@ -1113,7 +1027,7 @@ void fn_1_2964(omObjData *object) var_r31->unk_0A = 0; var_r28 = object->work[1]; var_r31->unk_6C.x = lbl_1_data_4B4[var_r28].x; - var_r31->unk_6C.y = lbl_1_data_4B4[var_r28].y + 100.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)); + var_r31->unk_6C.y = lbl_1_data_4B4[var_r28].y + 100.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000)); var_r31->unk_6C.z = lbl_1_data_4B4[var_r28].z; var_r31->unk_84 = var_r31->unk_88 = var_r31->unk_8C = 0.0f; var_r31->unk_78 = var_r31->unk_7C = var_r31->unk_80 = 0.0f; @@ -1460,11 +1374,17 @@ void fn_1_35C0(omObjData *object) var_r31->unk_20 = var_r28; CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27); } - else if (var_r28 < 3) { - if (var_r28 < 0 || var_r31->unk_20 == 0 || CharModelMotionShiftIDGet(var_r31->unk_01) < 0) { - var_r31->unk_22 = var_r28; - var_r31->unk_20 = var_r28; - CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_20], 0.0f, 8.0f, var_r27); + else { + switch (var_r28) { + case 0: + case 1: + case 2: + if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) + break; + default: + var_r31->unk_22 = var_r28; + var_r31->unk_20 = var_r28; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_20], 0.0f, 8.0f, var_r27); } } var_r31->unk_30 = CharModelMotionMaxTimeGet(var_r31->unk_01); @@ -1559,866 +1479,710 @@ void fn_1_4724(omObjData *object) var_r31 = fn_1_7BFC(sizeof(M438MainWork4)); object->data = var_r31; memset(var_r31, 0, sizeof(M438MainWork4)); - var_r31->unk_10 = 0.0f; - var_r31->unk_14 = -450.0f; - var_r31->unk_18 = -1550.0f; - var_r31->unk_1C = var_r31->unk_20 = var_r31->unk_24 = 0.0f; - var_r31->unk_2C = 35.0f; + var_r31->unk_10.x = 0.0f; + var_r31->unk_10.y = -450.0f; + var_r31->unk_10.z = -1550.0f; + var_r31->unk_1C.x = var_r31->unk_1C.y = var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.y = 35.0f; var_r31->unk_0C = 0.0f; var_r31->unk_00 = 0; - omSetTra(object, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); - omSetRot(object, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); omSetSca(object, 1.25f, 1.25f, 1.25f); object->func = fn_1_4984; } -// void fn_1_4984(omObjData *object) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float var_f31; -// omObjData *var_r29; -// s16 var_r27; -// void *var_r28; -// void *var_r30; -// void *var_r31; - -// var_r29 = object; -// var_r31 = var_r29->data; -// switch (lbl_1_bss_DBA) { -// case 1: -// if (lbl_1_bss_4 == 0) { -// lbl_1_bss_4 = fn_1_10258(0x90, 1); -// fn_1_11018(lbl_1_bss_4, 0, 0x45000A); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x30)) = fn_1_6A3C; -// fn_1_11890(lbl_1_bss_4, var_r31->unk_10, -80.0f, var_r31->unk_18); -// fn_1_12100(lbl_1_bss_4, 4); -// fn_1_124CC(lbl_1_bss_4, 1); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x7C)) = 0; -// } -// break; -// case 2: -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_2C = var_r31->unk_2C - -2.0416667f; -// if (var_r31->unk_14 >= -350.0f) { -// HuAudFXPlay(0x6FA); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x7C)) = 1; -// } -// if (var_r31->unk_14 > 0.0f) { -// HuAudFXEmiterPlay(0x700, var_r31 + 0x10); -// lbl_1_bss_DB2 = 0x78; -// lbl_1_bss_DBA += 1; -// var_r31->unk_30 = 20.0f; -// } -// break; -// case 3: -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_18 = var_r31->unk_18 + var_r31->unk_30; -// var_r31->unk_2C = var_r31->unk_2C + -2.0416667f; -// if (var_r31->unk_14 < 0.0f) { -// var_r31->unk_30 = var_r31->unk_30 - 0.5f; -// if (var_r31->unk_30 < 0.0f) { -// var_r31->unk_30 = 0.0f; -// } -// var_r31->unk_14 = 0.0f; -// if (lbl_1_bss_8 == 0) { -// HuAudFXPlay(0x6FE); -// var_r28 = lbl_1_bss_DD8->data; -// var_r28->unk_18A = 0x3C; -// var_r28->unk_150 = 25.0f; -// var_r28->unk_15C = 0.95f; -// var_r28->unk_174 = 90.0f; -// var_r28->unk_168 = 90.0f; -// for (var_r27 = 0; var_r27 < 4; var_r27++) { -// omVibrate(var_r27, 0x36, 0xC, 0); -// } -// lbl_1_bss_4 = fn_1_10258(0x3C, 1); -// fn_1_11018(lbl_1_bss_4, 0, 0x45000F); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x30)) = fn_1_5D4C; -// fn_1_11890(lbl_1_bss_4, var_r31->unk_10, 50.0f + var_r31->unk_14, var_r31->unk_18); -// fn_1_124CC(lbl_1_bss_4, 1); -// lbl_1_bss_8++; -// } -// } -// sp8 = var_r31->unk_10; -// spC = var_r31->unk_14; -// sp10 = var_r31->unk_18; -// temp_f0 = spC + 120.00001f; -// spC = temp_f0; -// temp_f0_2 = sp10 - 300.0f; -// sp10 = temp_f0_2; -// var_f31 = CZoom; -// var_r30 = lbl_1_bss_DD8->data; -// var_r30->unk_00 = 0; -// var_r30->unk_144 = 1.0f; -// var_r30->unk_148 = 1.0f; -// var_r30->unk_1C = var_r30->unk_04; -// var_r30->unk_20 = var_r30->unk_08; -// var_r30->unk_24 = var_r30->unk_0C; -// var_r30->unk_34 = sp8; -// var_r30->unk_38 = temp_f0; -// var_r30->unk_3C = temp_f0_2; -// var_r30->unk_28 = var_r30->unk_10; -// var_r30->unk_2C = var_r30->unk_14; -// var_r30->unk_30 = var_r30->unk_18; -// var_r30->unk_40 = CRot.x; -// var_r30->unk_44 = CRot.y; -// var_r30->unk_48 = CRot.z; -// var_r30->unk_134 = var_r30->unk_130; -// var_r30->unk_138 = var_f31; -// break; -// case 5: -// Hu3DModelAttrReset(*var_r29->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r29->model, HU3D_MOTATTR_REV); -// var_r29->func = fn_1_4F50; -// var_r29->work[0] = 0xA; -// var_r29->work[1] = 0; -// break; -// } -// omSetTra(var_r29, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); -// omSetRot(var_r29, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); -// } - -// void fn_1_4F50(omObjData *object) -// { -// Vec sp18; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// omObjData *var_r30; -// s16 temp_r0; -// s16 temp_r3_3; -// s16 temp_r6; -// s16 var_r28; -// s32 temp_r3_2; -// s32 var_r26; -// u8 temp_r3; -// void *var_r27; -// void *var_r29; -// void *var_r31; - -// var_r30 = object; -// var_r31 = var_r30->data; -// switch (lbl_1_bss_DBA) { -// case 7: -// temp_r3 = var_r31->unk_00; -// switch (temp_r3) { -// case 0: -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// Hu3DMotionShiftSet(*var_r30->model, var_r30->motion->unk_06, 0.0f, 8.0f, 0); -// var_r31->unk_00 = var_r31->unk_00 + 1; - -// case 1: -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// var_r28 = 0; -// var_r26 = 0; -// loop_21: -// if (var_r28 < 4) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { -// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); -// temp_r3_2 = var_r26; -// var_r26++; -// (&sp8[0])[temp_r3_2] = atan2d(sp18, sp18.z); -// } -// var_r28++; -// goto loop_21; -// } -// var_r31->unk_20 = var_r31->unk_20 + (18.0f + var_r30->work[1]); -// if (var_r31->unk_20 > 180.0f) { -// var_r31->unk_20 = var_r31->unk_20 - 360.0f; -// } -// if (var_r31->unk_20 <= -180.0f) { -// var_r31->unk_20 = var_r31->unk_20 + 360.0f; -// } -// var_r28 = 0; -// loop_35: -// if (var_r28 >= var_r26) { } -// else { -// var_f31 = fn_1_E5A4((&sp8[0])[var_r28], var_r30->rot.y); -// if (var_f31 < 0.0f) { -// var_f27 = -var_f31; -// } -// else { -// var_f27 = var_f31; -// } -// if (!(var_f27 > (20.0f + var_r30->work[1])) -// && ((var_r30->work[0] -= 1, ((var_r30->work[0] == 0) != 0)) || ((fn_1_7DB4() & 0xF) == 0))) { -// var_r31->unk_08 = (&sp8[0])[var_r28]; -// var_r31->unk_20 = (&sp8[0])[var_r28]; -// var_r31->unk_2C = 16.333334f; -// var_r31->unk_0C = 6.0 + (0.5 * var_r30->work[1]); -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// var_r31->unk_40 = 20.0f; -// var_r31->unk_44 = 0.0f; -// var_r31->unk_02 = 0x1E; -// Hu3DMotionShiftSet(*var_r30->model, var_r30->motion->unk_00, 0.0f, 8.0f, 0x40000002); -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// else { -// var_r28++; -// goto loop_35; -// } -// } -// break; -// case 2: -// var_r31->unk_44 = var_r31->unk_44 + 10.0f; -// if (var_r31->unk_44 > 90.0f) { -// var_r31->unk_44 = 0.0f; -// } -// var_f29 = cosd(var_r31->unk_44); -// var_r31->unk_1C = var_r31->unk_40 * var_f29; -// var_r31->unk_10 = var_r31->unk_34 + ((50.0f * var_f29) * sind(var_r31->unk_20)); -// var_r31->unk_18 = var_r31->unk_3C + ((50.0f * var_f29) * cosd(var_r31->unk_20)); -// temp_r0 = var_r31->unk_02 - 1; -// var_r31->unk_02 = temp_r0; -// if (temp_r0 == 0) { -// HuAudFXEmiterPlay(0x700, var_r31 + 0x10); -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); -// var_r31->unk_1C = 0.0f; -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// break; -// case 3: -// var_r31->unk_0C = var_r31->unk_0C + 0.5; -// var_r31->unk_2C = var_r31->unk_2C + -3.0625f; -// var_f28 = var_r31->unk_0C + (0.8f * var_r31->unk_2C); -// var_r31->unk_28 = var_f28 * sind(var_r31->unk_08); -// var_r31->unk_30 = var_f28 * cosd(var_r31->unk_08); -// var_r31->unk_10 = var_r31->unk_10 + var_r31->unk_28; -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_18 = var_r31->unk_18 + var_r31->unk_30; -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// if (var_r31->unk_14 < 0.0f) { -// var_r31->unk_14 = 0.0f; -// var_r31->unk_2C = 16.333334f; -// } -// sp18 = var_r31->unk_10; -// sp18.y = var_r31->unk_14; -// sp18.z = var_r31->unk_18; -// sp18.y = 0.0f; -// var_f30 = VECMag(&sp18); -// if (!(var_f30 <= 700.0f)) { -// var_r31->unk_02 = 1; -// if (fn_1_DA64(atan2d(sp18, sp18.z)) != 0) { -// var_r31->unk_02 = 0x78; -// for (var_r28 = 0; var_r28 < 4; var_r28++) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { -// omVibrate(var_r28, 0xC, 4, 2); -// } -// } -// var_r27 = lbl_1_bss_DD8->data; -// var_r27->unk_188 = 0x3C; -// var_r27->unk_14C = 25.0f; -// var_r27->unk_158 = 0.95f; -// var_r27->unk_170 = 90.0f; -// var_r27->unk_164 = 90.0f; -// HuAudFXEmiterPlay(0x6FC, var_r31 + 0x10); -// HuAudFXPlay(0x6FE); -// } -// fn_1_9634(&sp18); -// var_r31->unk_10 = 700.0f * sp18; -// var_r31->unk_18 = 700.0f * sp18.z; -// var_r31->unk_40 = var_r31->unk_1C; -// var_r31->unk_44 = var_r31->unk_20; -// var_r31->unk_48 = var_r31->unk_24; -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// break; -// case 4: -// var_r31->unk_2C = var_r31->unk_2C + -3.0625f; -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// if (!(var_r31->unk_14 > 0.0f)) { -// var_r31->unk_14 = 0.0f; -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); -// var_r31->unk_44 = var_r31->unk_44 + 8.0f; -// var_r31->unk_40 = 10.0 * sind(var_r31->unk_44); -// var_r31->unk_48 = 10.0 * cosd(var_r31->unk_44); -// mtxRot(&sp24[0], 0.0f, 360.0f - var_r31->unk_08, var_r31->unk_48); -// mtxRotCat(&sp24[0], var_r31->unk_40, 0.0f, 0.0f); -// fn_1_8164(&sp24[0], var_r31 + 0x1C); -// temp_r3_3 = var_r31->unk_02 - 1; -// var_r31->unk_02 = temp_r3_3; -// if (temp_r3_3 == 0) { -// var_r31->unk_24 = 0.0f; -// var_r31->unk_1C = 0.0f; -// var_r31->unk_20 = var_r31->unk_08; -// var_r30->work[0] = 0.5f * (lbl_1_bss_DB4 / 60.0f); -// var_r30->work[1] += 1; -// var_r31->unk_00 = 0; -// } -// } -// break; -// } -// break; -// case 8: -// var_r31->unk_24 = 0.0f; -// var_r31->unk_1C = 0.0f; -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); -// break; -// case 9: -// var_r31->unk_20 = fn_1_7EDC(var_r31->unk_20, 0.0f, 0.9f); -// break; -// case 10: -// if (var_r31->unk_04 == 0) { -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); -// Hu3DMotionSet(*var_r30->model, var_r30->motion->unk_02); -// Hu3DMotionSpeedSet(*var_r30->model, 1.0f); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); -// var_r31->unk_04 = 1; -// } -// break; -// } -// if (lbl_1_bss_DBA == 7) { -// var_r28 = 0; -// var_r26 = 0; -// loop_72: -// if (var_r28 < 4) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); -// var_f30 = VECMag(&sp18); -// if (!(var_f30 >= 200.0f) && (var_r29->unk_20 != 7)) { -// omVibrate(var_r29->unk_00, 0xC, 4, 2); -// var_r29->unk_07 = var_r29->unk_07 | 2; -// var_r29->unk_0D = 0; -// var_r29->unk_20 = 7; -// var_r29->unk_28 = atan2d(sp18, sp18.z); -// if (var_r29->unk_28 >= 360.0f) { -// var_r29->unk_28 = var_r29->unk_28 - 360.0f; -// } -// var_f26 = fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C); -// var_f25 = fabs(var_f26); -// var_f24 = var_f25; -// if (var_f24 > 90.0) { -// var_r29->unk_7C = 180.0f + var_r29->unk_28; -// var_r29->unk_14 = 0; -// } -// else { -// var_r29->unk_7C = var_r29->unk_28; -// var_r29->unk_14 = 1; -// } -// var_r29->unk_24 = 10.0f; -// var_r29->unk_88 = 53.083336f; -// if (lbl_1_bss_DAA[var_r28] == 0) { -// temp_r6 = lbl_1_bss_DA8; -// lbl_1_bss_DA8 = temp_r6 - 1; -// lbl_1_bss_DAA[var_r28] = temp_r6; -// } -// } -// var_r28++; -// goto loop_72; -// } -// } -// omSetTra(var_r30, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); -// omSetRot(var_r30, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); -// } - -// void fn_1_5D4C(void *arg0) -// { -// s16 sp8; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r29; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; - -// var_r30 = arg0; -// sp8 = 0; -// temp_r0 = var_r30->unk_60; -// switch (temp_r0) { -// case 0: -// var_f27 = 360.0f / var_r30->unk_02; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// var_f26 = 0.8f + (0.1f * (2.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)))); -// var_r31->unk_6C = sind((var_f27 * var_r29)) * var_f26; -// var_r31->unk_70 = 0.0f; -// var_f26 = 0.8f + (0.1f * (2.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)))); -// var_r31->unk_74 = cosd((var_f27 * var_r29)) * var_f26; -// var_r31->unk_00 = 40.0f * var_r31->unk_6C; -// var_r31->unk_04 = 6.0f; -// var_r31->unk_08 = 40.0f * var_r31->unk_74; -// var_f29 = 0.01f * (100.0f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_54 = 80.0f + (60.0f * var_f29); -// var_r31->unk_55 = 64.0f + (60.0f * var_f29); -// var_r31->unk_56 = 56.0f + (60.0f * var_f29); -// } -// var_r30->unk_7C = 0x30; -// var_r30->unk_60 = var_r30->unk_60 + 1; - -// case 1: -// var_r30->unk_7C = var_r30->unk_7C - 1; -// var_f31 = (48.0f - var_r30->unk_7C) / 48.0f; -// var_f28 = var_r30->unk_7C / 48.0f; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// var_r31->unk_00 = var_r31->unk_00 + (12.5f * var_f28 * var_r31->unk_6C); -// var_r31->unk_08 = var_r31->unk_08 + (12.5f * var_f28 * var_r31->unk_74); -// var_f30 = 2.4f + (6.0f * var_f31); -// var_r31->unk_18 = var_f30; -// var_r31->unk_1C = var_f30; -// var_r31->unk_20 = var_f30; -// var_r31->unk_57 = 96.0f * (1.0f - (var_f31 * var_f31)); -// } -// if (var_r30->unk_7C == 0) { -// var_r30->unk_60 = var_r30->unk_60 + 1; -// return; -// } -// return; -// case 2: -// fn_1_107BC(var_r30->unk_00); -// break; -// } -// } - -void fn_1_62BC(void *arg0) +void fn_1_4984(omObjData *object) { - // s16 sp8; + Vec sp8; + float var_f31; + s32 var_r27; + M438MainWork3 *var_r28; + M438MainWork3 *var_r30; + M438MainWork3 *var_r31; - // void *var_r31; - // void *var_r30; - - // var_r30 = arg0; - // sp8 = 0; - // switch (var_r30->unk_60) { - // case 0: - // var_r31 = var_r30->unk_3C; - // var_r31->unk_70 = 5.0f; - // var_r31->unk_6C *= -2.0f; - // var_r31->unk_74 *= -2.0f; - // var_r30->unk_60++; - - // case 1: - // var_r31 = var_r30->unk_3C; - // var_r31->unk_00 += var_r31->unk_6C; - // var_r31->unk_04 += var_r31->unk_70; - // var_r31->unk_08 += var_r31->unk_74; - // return; - // case 2: - // fn_1_107BC(var_r30->unk_00); - // return; - // } + var_r31 = object->data; + switch (lbl_1_bss_DBA) { + case 1: + if (lbl_1_bss_4 == 0) { + lbl_1_bss_4 = fn_1_10258(0x90, 1); + fn_1_11018(lbl_1_bss_4, 0, 0x45000A); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_6A3C; + fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, -80.0f, var_r31->unk_10.z); + fn_1_12100(lbl_1_bss_4, 4); + fn_1_124CC(lbl_1_bss_4, 1); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_7C = 0; + } + break; + case 2: + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_28.y -= -2.0416667f; + if (var_r31->unk_10.y >= -350.0f) { + HuAudFXPlay(0x6FA); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_7C = 1; + } + if (var_r31->unk_10.y > 0.0f) { + HuAudFXEmiterPlay(0x700, &var_r31->unk_10); + lbl_1_bss_DB2 = 0x78; + lbl_1_bss_DBA += 1; + var_r31->unk_28.z = 20.0f; + } + break; + case 3: + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_10.z += var_r31->unk_28.z; + var_r31->unk_28.y += -2.0416667f; + if (var_r31->unk_10.y < 0.0f) { + var_r31->unk_28.z -= 0.5f; + if (var_r31->unk_28.z < 0.0f) { + var_r31->unk_28.z = 0.0f; + } + var_r31->unk_10.y = 0.0f; + if (lbl_1_bss_8 == 0) { + HuAudFXPlay(0x6FE); + fn_1_28E4(1, 0x3C, 25.0f, 0.95f, 90.0f); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + omVibrate(var_r27, 0x36, 0xC, 0); + } + lbl_1_bss_4 = fn_1_10258(0x3C, 1); + fn_1_11018(lbl_1_bss_4, 0, 0x45000F); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; + fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, 50.0f + var_r31->unk_10.y, var_r31->unk_10.z); + fn_1_124CC(lbl_1_bss_4, 1); + lbl_1_bss_8++; + } + } + sp8 = var_r31->unk_10; + sp8.y += 120.00001f; + sp8.z -= 300.0f; + var_f31 = CZoom; + var_r30 = lbl_1_bss_DD8->data; + var_r30->unk_00 = 0; + var_r30->unk_148 = var_r30->unk_144 = 1.0f; + var_r30->unk_1C = var_r30->unk_04; + var_r30->unk_34.x = sp8.x; + var_r30->unk_34.y = sp8.y; + var_r30->unk_34.z = sp8.z; + var_r30->unk_28 = var_r30->unk_10; + var_r30->unk_40.x = CRot.x; + var_r30->unk_40.y = CRot.y; + var_r30->unk_40.z = CRot.z; + var_r30->unk_134 = var_r30->unk_130; + var_r30->unk_138 = var_f31; + break; + case 5: + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + object->func = fn_1_4F50; + object->work[0] = 10; + object->work[1] = 0; + break; + } + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); } -// void fn_1_63B0(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// double var_f27; -// s16 temp_r0_2; -// s32 var_r29; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; +void fn_1_4F50(omObjData *object) +{ + Mtx sp24; + Vec sp18; + float sp8[4]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f25; + s32 var_r26; + M438MainWork3 *var_r27; + s32 var_r28; + M438MainWork *var_r29; + M438MainWork3 *var_r31; -// var_r30 = arg0; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// temp_r0 = var_r31->unk_5C; -// switch (temp_r0) { -// case 0: -// if ((atan2d(var_r30->unk_80, var_r30->unk_84)) < 0.0) { -// var_f27 = -(atan2d(var_r30->unk_80, var_r30->unk_84)); -// } -// else { -// var_f27 = atan2d(var_r30->unk_80, var_r30->unk_84); -// } -// var_f29 = var_f27; -// if (var_f29 > 90.0f) { -// var_f29 = 180.0f - var_f29; -// } -// var_f28 = 40.0f * (0.1f + ((0.9f * var_f29) / 90.0f)); -// var_f31 = (0.5f * var_f28) + ((var_r30->unk_88 - var_f28) * (0.000015258789f * fn_1_7DB4())); -// temp_f0 = var_f31 * var_r30->unk_80; -// sp8 = temp_f0; -// temp_f0_2 = var_f31 * var_r30->unk_84; -// sp10 = temp_f0_2; -// var_r31->unk_00 = temp_f0; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = temp_f0_2; -// var_f31 = 0.0f; -// spC = 0.0f; -// loop_14: -// if (var_f31 < (var_r30->unk_8C - 40.0f)) { -// temp_f0_3 = spC + 0.8f; -// spC = temp_f0_3; -// var_f31 += temp_f0_3; -// goto loop_14; -// } -// var_r31->unk_6C = 0.0f; -// var_r31->unk_70 = spC + (1.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 0.0f; -// if ((fn_1_7DB4() & 7) != 0) { -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x40; -// var_r31->unk_55 = 0x10; -// var_r31->unk_56 = 4; -// var_r31->unk_57 = 0xFF; -// var_f30 = 3.75f + (1.75f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_60 = var_f30 * (0.1f + ((0.9f * var_f29) / 90.0f)); -// var_r31->unk_68 = var_f30; -// var_r31->unk_64 = var_f30; -// } -// else { -// var_r31->unk_33 = 0; -// var_r31->unk_54 = 0; -// var_r31->unk_55 = 0; -// var_r31->unk_56 = 0; -// var_r31->unk_57 = 0xFF; -// var_f30 = 0.25f + (0.25f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_64 = 1.5f * var_f30; -// var_r31->unk_68 = var_f30; -// var_r31->unk_60 = var_f30; -// } -// var_r31->unk_58->unk_24 = 0; -// var_r31->unk_78 = (60.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_5C = var_r31->unk_5C + 1; + var_r31 = object->data; + switch (lbl_1_bss_DBA) { + case 7: + switch (var_r31->unk_00) { + case 0: + var_r31->unk_34 = var_r31->unk_10; + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 8.0f, 0); + var_r31->unk_00++; + case 1: + var_r31->unk_34 = var_r31->unk_10; -// case 1: -// temp_r0_2 = var_r31->unk_78 - 1; -// var_r31->unk_78 = temp_r0_2; -// if (temp_r0_2 == 0) { -// var_r31->unk_58->unk_24 = 0x11; -// var_r31->unk_58->unk_28 = 0.5f; -// var_r31->unk_58->unk_2C = 0.0f; -// var_r31->unk_58->unk_00 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// if (var_r31->unk_04 < 0.0f) { -// var_r31->unk_04 = 0.0f; -// } -// var_r31->unk_60 = var_r31->unk_60 * 0.95f; -// var_r31->unk_64 = var_r31->unk_64 * 0.95f; -// var_r31->unk_68 = var_r31->unk_68 * 0.95f; -// var_r31->unk_70 = var_r31->unk_70 - 0.8f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// var_r31->unk_5C = 0; -// } -// break; -// } -// var_r31->unk_18 = var_r31->unk_60 * var_r30->unk_90; -// var_r31->unk_1C = var_r31->unk_64 * var_r30->unk_90; -// var_r31->unk_20 = var_r31->unk_68 * var_r30->unk_90; -// } -// } + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { + VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); + sp8[var_r26++] = atan2d(sp18.x, sp18.z); + } + } + var_r31->unk_1C.y += 18.0f + object->work[1]; + if (var_r31->unk_1C.y > 180.0f) { + var_r31->unk_1C.y -= 360.0f; + } + if (var_r31->unk_1C.y <= -180.0f) { + var_r31->unk_1C.y += 360.0f; + } -// void fn_1_6A3C(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float temp_f0_4; -// float var_f29; -// float var_f30; -// float var_f31; -// s16 temp_r0_2; -// s16 var_r29; -// s32 var_r27; -// s32 var_r28; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; + for (var_r28 = 0; var_r28 < var_r26; var_r28++) { + var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y); + if (var_f31 < 0.0f) { + var_f27 = -var_f31; + } + else { + var_f27 = var_f31; + } + if (var_f27 > (20.0f + object->work[1])) + continue; + object->work[0]--; + if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) + continue; + var_r31->unk_04.y = sp8[var_r28]; + var_r31->unk_1C.y = sp8[var_r28]; + var_r31->unk_28.y = 16.333334f; + var_r31->unk_04.z = 6.0 + (0.5 * object->work[1]); + var_r31->unk_34 = var_r31->unk_10; + var_r31->unk_40.x = 20.0f; + var_r31->unk_40.y = 0.0f; + var_r31->unk_02 = 30; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000002); + var_r31->unk_00++; + break; + } + break; + case 2: + var_r31->unk_40.y += 10.0f; + if (var_r31->unk_40.y > 90.0f) { + var_r31->unk_40.y = 0.0f; + } + var_f29 = cosd(var_r31->unk_40.y); + var_r31->unk_1C.x = var_r31->unk_40.x * var_f29; + var_r31->unk_10.x = var_r31->unk_34.x + ((50.0f * var_f29) * sind(var_r31->unk_1C.y)); + var_r31->unk_10.z = var_r31->unk_34.z + ((50.0f * var_f29) * cosd(var_r31->unk_1C.y)); + if (--var_r31->unk_02 == 0) { + HuAudFXEmiterPlay(0x700, &var_r31->unk_10); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + var_r31->unk_1C.x = 0.0f; + var_r31->unk_00++; + } + break; + case 3: + var_r31->unk_04.z += 0.5; + var_r31->unk_28.y += -3.0625f; + var_f28 = var_r31->unk_04.z + (0.8f * var_r31->unk_28.y); + var_r31->unk_28.x = var_f28 * sind(var_r31->unk_04.y); + var_r31->unk_28.z = var_f28 * cosd(var_r31->unk_04.y); + var_r31->unk_10.x += var_r31->unk_28.x; + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_10.z += var_r31->unk_28.z; + var_r31->unk_34 = var_r31->unk_10; + if (var_r31->unk_10.y < 0.0f) { + var_r31->unk_10.y = 0.0f; + var_r31->unk_28.y = 16.333334f; + } + sp18 = var_r31->unk_10; + sp18.y = 0.0f; + var_f30 = VECMag(&sp18); + if (var_f30 <= 700.0f) + break; + var_r31->unk_02 = 1; + if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) { + var_r31->unk_02 = 0x78; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { + omVibrate(var_r28, 0xC, 4, 2); + } + } + fn_1_28E4(0, 0x3C, 25.0f, 0.95f, 90.0f); + HuAudFXEmiterPlay(0x6FC, &var_r31->unk_10); + HuAudFXPlay(0x6FE); + } + fn_1_9634(&sp18); + var_r31->unk_10.x = 700.0f * sp18.x; + var_r31->unk_10.z = 700.0f * sp18.z; + var_r31->unk_40 = var_r31->unk_1C; + var_r31->unk_00++; + break; + case 4: + var_r31->unk_28.y += -3.0625f; + var_r31->unk_10.y += var_r31->unk_28.y; + if (var_r31->unk_10.y > 0.0f) + break; + var_r31->unk_10.y = 0.0f; + var_r31->unk_34 = var_r31->unk_10; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + var_r31->unk_40.y += 8.0f; + var_r31->unk_40.x = 10.0 * sind(var_r31->unk_40.y); + var_r31->unk_40.z = 10.0 * cosd(var_r31->unk_40.y); + mtxRot(sp24, 0.0f, 360.0f - var_r31->unk_04.y, var_r31->unk_40.z); + mtxRotCat(sp24, var_r31->unk_40.x, 0.0f, 0.0f); + fn_1_8164(sp24, &var_r31->unk_1C); + if (--var_r31->unk_02 == 0) { + var_r31->unk_1C.x = var_r31->unk_1C.z = 0.0f; + var_r31->unk_1C.y = var_r31->unk_04.y; + object->work[0] = 0.5f * (lbl_1_bss_DB4 / 60.0f); + object->work[1]++; + var_r31->unk_00 = 0; + } + break; + } + break; + case 8: + var_r31->unk_1C.x = var_r31->unk_1C.z = 0.0f; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + break; + case 9: + var_r31->unk_1C.y = fn_1_7EDC(var_r31->unk_1C.y, 0.0f, 0.9f); + break; + case 10: + if (var_r31->unk_04s == 0) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); + Hu3DMotionSet(object->model[0], object->motion[1]); + Hu3DMotionSpeedSet(object->model[0], 1.0f); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + var_r31->unk_04s = 1; + } + break; + } + if (lbl_1_bss_DBA == 7) { + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); + var_f30 = VECMag(&sp18); + if (var_f30 >= 200.0f || var_r29->unk_20 == 7) + continue; + omVibrate(var_r29->unk_00, 0xC, 4, 2); + var_r29->unk_07 |= 2; + var_r29->unk_0D = 0; + var_r29->unk_20 = 7; + var_r29->unk_28 = atan2d(sp18.x, sp18.z); + if (var_r29->unk_28 >= 360.0f) { + var_r29->unk_28 -= 360.0f; + } + if (fabs(fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C)) > 90.0) { + var_r29->unk_7C = 180.0f + var_r29->unk_28; + var_r29->unk_14 = 0; + } + else { + var_r29->unk_7C = var_r29->unk_28; + var_r29->unk_14 = 1; + } + var_r29->unk_24 = 10.0f; + var_r29->unk_88 = 53.083336f; + if (lbl_1_bss_DAA[var_r28] == 0) { + lbl_1_bss_DAA[var_r28] = lbl_1_bss_DA8--; + } + } + } + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); +} -// var_r30 = arg0; -// var_r31 = var_r30->unk_3C; -// var_r28 = 0; -// var_r27 = 0; -// loop_35: -// if (var_r27 < var_r30->unk_02) { -// if ((var_r30->unk_7C != 0) && (var_r31->unk_7A == 0)) { -// var_r31->unk_5C = 0; -// } -// temp_r0 = var_r31->unk_5C; -// switch (temp_r0) { -// case 0: -// if (var_r30->unk_7C != 0) { -// var_f30 = (180.0f * (0.000015258789f * fn_1_7DB4())) - 90.0f; -// var_f29 = 125.0f; -// temp_f0 = sind(var_f30); -// sp8 = temp_f0; -// temp_f0_2 = cosd(var_f30); -// sp10 = temp_f0_2; -// var_r31->unk_00 = 125.0f * temp_f0; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = 125.0f * temp_f0_2; -// spC = 25.0f; -// var_r31->unk_6C = 100.0f * (0.1f * temp_f0); -// var_r31->unk_70 = 25.0f + (2.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 100.0f * (0.1f * temp_f0_2); -// var_r31->unk_78 = (24.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_7A = 1; -// } -// else { -// var_f30 = (180.0f * (0.000015258789f * fn_1_7DB4())) - 90.0f; -// var_f29 = 125.0f * (0.000015258789f * fn_1_7DB4()); -// temp_f0_3 = sind(var_f30); -// sp8 = temp_f0_3; -// temp_f0_4 = cosd(var_f30); -// sp10 = temp_f0_4; -// var_r31->unk_00 = var_f29 * temp_f0_3; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = var_f29 * temp_f0_4; -// spC = 5.0f; -// var_r31->unk_6C = 100.0 * (0.015 * temp_f0_3); -// var_r31->unk_70 = 5.0f + (0.000015258789f * fn_1_7DB4()); -// var_r31->unk_74 = 100.0f * (0.015f * temp_f0_4); -// var_r31->unk_78 = (60.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_7A = 0; -// } -// var_r31->unk_38 = var_r31->unk_38 & 0xFFFFFFFB; -// if ((fn_1_7DB4() & 0xF) != 0) { -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x40; -// var_r31->unk_55 = 0x10; -// var_r31->unk_56 = 4; -// var_r31->unk_57 = 0xFF; -// var_f31 = 1.8f + (0.000015258789f * fn_1_7DB4()); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = var_f31; -// var_r31->unk_20 = var_f31; -// goto block_19; -// } -// if (var_r30->unk_7C != 0) { -// var_r31->unk_33 = 0; -// var_r31->unk_54 = 0; -// var_r31->unk_55 = 0; -// var_r31->unk_56 = 0; -// var_r31->unk_57 = 0xFF; -// var_f31 = 0.25f + (0.25f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = 1.5f * var_f31; -// var_r31->unk_20 = var_f31; -// block_19: -// var_r31->unk_58->unk_24 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// else { -// var_r29 = fn_1_10258(8, 1); -// fn_1_11018(var_r29, 0, 0x45000A); -// *(lbl_1_bss_DE4.unk_40 + ((var_r29 * 0xBC) + 0x30)) = fn_1_7300; -// fn_1_11890(var_r29, var_r30->unk_0C + var_r31->unk_00, var_r30->unk_10 + var_r31->unk_04, var_r30->unk_14 + var_r31->unk_08); -// fn_1_12100(var_r29, 4); -// fn_1_124CC(var_r29, 1); -// var_r31->unk_38 = var_r31->unk_38 | 4; -// } -// break; -// case 1: -// if (var_r31->unk_7A != 0) { -// var_r31->unk_70 = var_r31->unk_70 - 0.5f; -// } -// temp_r0_2 = var_r31->unk_78 - 1; -// var_r31->unk_78 = temp_r0_2; -// if (temp_r0_2 == 0) { -// var_r31->unk_58->unk_24 = 0x11; -// if (var_r31->unk_7A != 0) { -// var_r31->unk_58->unk_28 = 0.5f; -// } -// else { -// var_r31->unk_58->unk_28 = 0.5f; -// } -// var_r31->unk_58->unk_2C = 0.0f; -// var_r31->unk_58->unk_00 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// if (var_r31->unk_04 < 0.0f) { -// var_r31->unk_04 = 0.0f; -// } -// var_r31->unk_18 = var_r31->unk_18 * 0.95f; -// var_r31->unk_1C = var_r31->unk_1C * 0.95f; -// var_r31->unk_20 = var_r31->unk_20 * 0.95f; -// var_r31->unk_70 = var_r31->unk_70 - 1.5f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// if (var_r31->unk_7A != 0) { -// var_r31->unk_5C = 3; -// } -// else { -// var_r31->unk_5C = 0; -// } -// } -// break; -// case 3: -// var_r28++; -// break; -// } -// var_r27++; -// var_r31 += 0x98; -// goto loop_35; -// } -// if (var_r28 >= var_r30->unk_02) { -// fn_1_107BC(var_r30->unk_00); -// } -// } +void fn_1_5D4C(M438UnkStruct2 *arg0) +{ + s16 sp8; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + s32 var_r29; + M438UnkStruct *var_r31; -// void fn_1_7300(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float var_f29; -// float var_f30; -// float var_f31; -// s16 temp_r0_2; -// s32 var_r28; -// s32 var_r29; -// u8 temp_r0; -// u8 temp_r0_3; -// void *var_r30; -// void *var_r31; + sp8 = 0; + switch (arg0->unk_60) { /* irregular */ + case 0: + temp_f27 = 360.0f / arg0->unk_02; -// var_r30 = arg0; -// var_r31 = var_r30->unk_3C; -// temp_r0 = var_r30->unk_60; -// switch (temp_r0) { -// case 0: -// var_f31 = 0.01f; -// var_r30->unk_2C = 0.01f; -// var_r30->unk_28 = 0.01f; -// var_r30->unk_24 = 0.01f; -// var_r30->unk_7C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M438, 0x0B)); -// var_r30->unk_7E = (30.0f * (0.000015258789f * fn_1_7DB4())) + 0x1E; -// var_r29 = 0; -// loop_6: -// if (var_r29 < var_r30->unk_02) { -// var_r31->unk_38 = var_r31->unk_38 | 4; -// var_r29++; -// var_r31 += 0x98; -// goto loop_6; -// } -// var_r30->unk_60 = var_r30->unk_60 + 1; + var_r31 = &arg0->unk_3C[0]; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_6C.x = sind(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); + var_r31->unk_6C.y = 0.0f; + var_r31->unk_6C.z = cosd(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); + var_r31->unk_00.x = (40.0f * var_r31->unk_6C.x); + var_r31->unk_00.y = 6.0f; + var_r31->unk_00.z = (40.0f * var_r31->unk_6C.z); + temp_f29 = 0.01f * (100.0f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_54.r = (80.0f + 60.0f * temp_f29); + var_r31->unk_54.g = (64.0f + 60.0f * temp_f29); + var_r31->unk_54.b = (56.0f + 60.0f * temp_f29); + } + arg0->unk_7C = 0x30; + arg0->unk_60++; + case 1: + arg0->unk_7C--; + temp_f31 = (48.0f - arg0->unk_7C) / 48.0f; + temp_f28 = arg0->unk_7C / 48.0f; -// case 1: -// var_r30->unk_2C = var_r30->unk_2C + 0.008f; -// temp_f0 = var_r30->unk_2C; -// var_r30->unk_28 = temp_f0; -// var_r30->unk_24 = temp_f0; -// Hu3DModelPosSetV(var_r30->unk_7C, var_r30 + 0xC); -// Hu3DModelScaleSetV(var_r30->unk_7C, var_r30 + 0x24); -// temp_r0_2 = var_r30->unk_7E - 1; -// var_r30->unk_7E = temp_r0_2; -// if (temp_r0_2 == 0) { -// Hu3DModelKill(var_r30->unk_7C); -// var_r30->unk_7C = 0; -// var_r29 = 0; -// loop_11: -// if (var_r29 < var_r30->unk_02) { -// var_r31->unk_5C = 1; -// var_r29++; -// var_r31 += 0x98; -// goto loop_11; -// } -// var_r30->unk_80 = var_r30->unk_24; -// var_r30->unk_2C = 1.0f; -// var_r30->unk_28 = 1.0f; -// var_r30->unk_24 = 1.0f; -// var_r30->unk_60 = var_r30->unk_60 + 1; -// } -// break; -// } -// var_r28 = 0; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// temp_r0_3 = var_r31->unk_5C; -// switch (temp_r0_3) { -// case 1: -// var_r31->unk_38 = var_r31->unk_38 & 0xFFFFFFFB; -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x60; -// var_r31->unk_55 = 0x20; -// var_r31->unk_56 = 0x10; -// var_r31->unk_57 = 0xFF; -// var_f31 = 0.4f + (0.15f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = var_f31; -// var_r31->unk_20 = var_f31; -// var_f29 = 360.0f * (0.000015258789f * fn_1_7DB4()); -// var_f30 = 50.0f * var_r30->unk_80; -// temp_f0_2 = sind(var_f29); -// sp8 = temp_f0_2; -// temp_f0_3 = cosd(var_f29); -// sp10 = temp_f0_3; -// var_r31->unk_00 = var_f30 * temp_f0_2; -// var_r31->unk_04 = var_f30; -// var_r31->unk_08 = var_f30 * temp_f0_3; -// spC = 6.0f; -// var_r31->unk_6C = 100.0f * (0.015f * temp_f0_2); -// var_r31->unk_70 = 6.0f + (1.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 100.0f * (0.015f * temp_f0_3); -// var_r31->unk_58->unk_24 = 0x11; -// var_r31->unk_58->unk_28 = 0.75f; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// var_r31->unk_70 = var_r31->unk_70 - 0.75f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 3: -// var_r28++; -// break; -// } -// } -// if (var_r28 >= var_r30->unk_02) { -// fn_1_107BC(var_r30->unk_00); -// } -// if (lbl_1_bss_DBA == 2) { -// if (var_r30->unk_7C != 0) { -// Hu3DModelKill(var_r30->unk_7C); -// } -// fn_1_107BC(var_r30->unk_00); -// } -// } + var_r31 = arg0->unk_3C; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x += 12.5f * temp_f28 * var_r31->unk_6C.x; + var_r31->unk_00.z += 12.5f * temp_f28 * var_r31->unk_6C.z; + temp_f30 = 2.4f + (6.0f * temp_f31); + var_r31->unk_18.x = temp_f30; + var_r31->unk_18.y = temp_f30; + var_r31->unk_18.z = temp_f30; + var_r31->unk_54.a = (96.0f * (1.0f - (temp_f31 * temp_f31))); + } + if (arg0->unk_7C == 0) { + arg0->unk_60++; + } + break; + case 2: + fn_1_107BC(arg0->unk_00); + return; + } +} + +void fn_1_62BC(M438UnkStruct2 *arg0) +{ + s16 sp8; + + M438UnkStruct *var_r31; + + sp8 = 0; + switch (arg0->unk_60) { + case 0: + var_r31 = arg0->unk_3C; + var_r31->unk_6C.y = 5.0f; + var_r31->unk_6C.x *= -2.0f; + var_r31->unk_6C.z *= -2.0f; + arg0->unk_60++; + + case 1: + var_r31 = arg0->unk_3C; + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + return; + case 2: + fn_1_107BC(arg0->unk_00); + return; + } +} + +void fn_1_63B0(M438UnkStruct2 *arg0) +{ + Vec sp8; + M438UnkStruct *var_r31; + f32 var_f31; + f32 temp_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r29; + + var_r31 = arg0->unk_3C; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + switch (var_r31->unk_5C) { + case 0: + var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 ? -atan2d(arg0->unk_80, arg0->unk_84) : atan2d(arg0->unk_80, arg0->unk_84); + + if (var_f29 > 90.0f) { + var_f29 = 180.0f - var_f29; + } + temp_f28 = 40.0f * (0.1f + ((0.9f * var_f29) / 90.0f)); + var_f31 = (0.5f * temp_f28) + ((arg0->unk_88 - temp_f28) * ((1.0f / 65536.0f) * fn_1_7DB4())); + sp8.x = var_f31 * arg0->unk_80; + sp8.z = var_f31 * arg0->unk_84; + var_r31->unk_00.x = sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = sp8.z; + + for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) { + sp8.y += 0.8f; + } + var_r31->unk_6C.x = 0.0f; + var_r31->unk_6C.y = sp8.y + (1.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 0.0f; + if ((fn_1_7DB4() & 7) != 0) { + var_r31->unk_33 = 1; + var_r31->unk_54.r = 0x40; + var_r31->unk_54.g = 0x10; + var_r31->unk_54.b = 4; + var_r31->unk_54.a = 0xFF; + temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); + var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; + } + else { + var_r31->unk_33 = 0; + var_r31->unk_54.r = 0; + var_r31->unk_54.g = 0; + var_r31->unk_54.b = 0; + var_r31->unk_54.a = 0xFF; + temp_f30 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_60.y = (1.5f * temp_f30); + var_r31->unk_60.x = var_r31->unk_60.z = temp_f30; + } + var_r31->unk_58->unk_24 = 0; + var_r31->unk_78[0] = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1; + var_r31->unk_5C++; + case 1: + if (--var_r31->unk_78[0] == 0) { + var_r31->unk_58->unk_24 = 0x11U; + var_r31->unk_58->unk_28 = 0.5f; + var_r31->unk_58->unk_2C = 0.0f; + var_r31->unk_58->unk_00 = 0; + var_r31->unk_5C++; + } + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + if (var_r31->unk_00.y < 0.0f) { + var_r31->unk_00.y = 0.0f; + } + var_r31->unk_60.x *= 0.95f; + var_r31->unk_60.y *= 0.95f; + var_r31->unk_60.z *= 0.95f; + var_r31->unk_6C.y -= 0.8f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + var_r31->unk_5C = 0; + } + break; + } + var_r31->unk_18.x = var_r31->unk_60.x * arg0->unk_90; + var_r31->unk_18.y = var_r31->unk_60.y * arg0->unk_90; + var_r31->unk_18.z = var_r31->unk_60.z * arg0->unk_90; + } +} + +void fn_1_6A3C(M438UnkStruct2 *arg0) +{ + Vec sp8; + M438UnkStruct *var_r31; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = arg0->unk_3C; + var_r28 = 0; + + for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { + if ((arg0->unk_7C != 0) && (var_r31->unk_78[1] == 0)) { + var_r31->unk_5C = 0; + } + switch (var_r31->unk_5C) { + case 0: + if (arg0->unk_7C != 0) { + temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; + temp_f29 = 125.0f; + sp8.x = sind(temp_f30); + sp8.z = cosd(temp_f30); + var_r31->unk_00.x = temp_f29 * sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = temp_f29 * sp8.z; + sp8.y = 25.0f; + var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x); + var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); + var_r31->unk_78[0] = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_78[1] = 1; + } + else { + temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; + temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); + sp8.x = sind(temp_f30); + sp8.z = cosd(temp_f30); + var_r31->unk_00.x = temp_f29 * sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = temp_f29 * sp8.z; + sp8.y = 5.0f; + var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x)); + var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4()); + var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); + var_r31->unk_78[0] = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_78[1] = 0; + } + var_r31->unk_38 &= ~4; + if ((fn_1_7DB4() & 0xF) != 0) { + var_r31->unk_33 = 1; + var_r31->unk_54.r = 0x40; + var_r31->unk_54.g = 0x10; + var_r31->unk_54.b = 4; + var_r31->unk_54.a = 0xFF; + temp_f31 = 1.8f + ((1.0f / 65536.0f) * fn_1_7DB4()); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = temp_f31; + var_r31->unk_18.z = temp_f31; + } + else if (arg0->unk_7C != 0) { + var_r31->unk_33 = 0; + var_r31->unk_54.r = 0; + var_r31->unk_54.g = 0; + var_r31->unk_54.b = 0; + var_r31->unk_54.a = 0xFF; + temp_f31 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = 1.5f * temp_f31; + var_r31->unk_18.z = temp_f31; + } + else { + var_r29 = fn_1_10258(8, 1); + fn_1_11018(var_r29, 0, 0x45000A); + lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2 *))fn_1_7300; + fn_1_11890(var_r29, arg0->unk_0C.x + var_r31->unk_00.x, arg0->unk_0C.y + var_r31->unk_00.y, arg0->unk_0C.z + var_r31->unk_00.z); + fn_1_12100(var_r29, 4); + fn_1_124CC(var_r29, 1); + var_r31->unk_38 |= 4; + break; + } + var_r31->unk_58->unk_24 = 0; + var_r31->unk_5C++; + break; + case 1: + if (var_r31->unk_78[1] != 0) { + var_r31->unk_6C.y -= 0.5f; + } + if (--var_r31->unk_78[0] == 0) { + var_r31->unk_58->unk_24 = 0x11; + if (var_r31->unk_78[1] != 0) { + var_r31->unk_58->unk_28 = 0.5f; + } + else { + var_r31->unk_58->unk_28 = 0.5f; + } + var_r31->unk_58->unk_2C = 0.0f; + var_r31->unk_58->unk_00 = 0; + var_r31->unk_5C++; + } + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + if (var_r31->unk_00.y < 0.0f) { + var_r31->unk_00.y = 0.0f; + } + var_r31->unk_18.x *= 0.95f; + var_r31->unk_18.y *= 0.95f; + var_r31->unk_18.z *= 0.95f; + var_r31->unk_6C.y -= 1.5f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + if (var_r31->unk_78[1] != 0) { + var_r31->unk_5C = 3; + } + else { + var_r31->unk_5C = 0; + } + } + break; + case 3: + var_r28++; + break; + } + } + if (var_r28 >= arg0->unk_02) { + fn_1_107BC(arg0->unk_00); + } +} + +void fn_1_7300(M438UnkStruct2 *arg0) +{ + Vec sp8; + M438UnkStruct *var_r31; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + s32 var_r28; + s32 var_r29; + + var_r31 = arg0->unk_3C; + + switch (arg0->unk_60) { + case 0: + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f; + arg0->unk_7C = Hu3DModelCreateFile(0x45000B); + arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_38 |= 4; + } + arg0->unk_60++; + case 1: + arg0->unk_24.z += 0.008f; + + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z; + Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C); + Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24); + if (--arg0->unk_7E == 0) { + Hu3DModelKill(arg0->unk_7C); + arg0->unk_7C = 0; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_5C = 1; + } + arg0->unk_80 = arg0->unk_24.x; + + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f; + arg0->unk_60++; + } + break; + } + var_r28 = 0; + var_r31 = arg0->unk_3C; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + switch (var_r31->unk_5C) { + case 1: + var_r31->unk_38 &= ~4; + var_r31->unk_33 = 1; + var_r31->unk_54.r = 0x60; + var_r31->unk_54.g = 0x20; + var_r31->unk_54.b = 0x10; + var_r31->unk_54.a = 0xFF; + temp_f31 = 0.4f + (0.15f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = temp_f31; + var_r31->unk_18.z = temp_f31; + temp_f29 = 360.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); + temp_f30 = 50.0f * arg0->unk_80; + sp8.x = sind(temp_f29); + sp8.z = cosd(temp_f29); + var_r31->unk_00.x = temp_f30 * sp8.x; + var_r31->unk_00.y = temp_f30; + var_r31->unk_00.z = temp_f30 * sp8.z; + sp8.y = 6.0f; + var_r31->unk_6C.x = 100.0f * (0.015f * sp8.x); + var_r31->unk_6C.y = sp8.y + (1.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); + var_r31->unk_58->unk_24 = 0x11; + var_r31->unk_58->unk_28 = 0.75f; + var_r31->unk_5C++; + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + var_r31->unk_6C.y -= 0.75f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + var_r31->unk_5C++; + } + break; + case 3: + var_r28++; + break; + } + } + if (var_r28 >= arg0->unk_02) { + fn_1_107BC(arg0->unk_00); + } + if (lbl_1_bss_DBA == 2) { + if (arg0->unk_7C != 0) { + Hu3DModelKill(arg0->unk_7C); + } + fn_1_107BC(arg0->unk_00); + } +} void fn_1_7858(omObjData *object) { @@ -2577,7 +2341,6 @@ void fn_1_7DD8(s32 arg0, s32 *arg1) float fn_1_7EDC(float arg8, float arg9, float argA) { - float var_f1; float var_f31; if (arg8 > 180.0f) { @@ -2599,257 +2362,123 @@ float fn_1_7EDC(float arg8, float arg9, float argA) else if (var_f31 <= -180.0f) { var_f31 += 360.0f; } - var_f1 = arg9 + (var_f31 * argA); - if (var_f1 > 180.0f) { - return var_f1 - 360.0f; + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + arg8 -= 360.0f; } - if (var_f1 <= -180.0f) { - var_f1 += 360.0f; + else if (arg8 <= -180.0f) { + arg8 += 360.0f; } - return var_f1; + return arg8; } -// void fn_1_8044(Mtx arg0, float arg8, float arg9, float argA) -// { -// Mtx var_r31; -// float var_f29; -// float var_f30; -// float var_f31; +void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ + Mtx sp38; + Mtx sp8; -// var_r31 = arg0; -// var_f29 = arg8; -// var_f30 = arg9; -// var_f31 = argA; -// if (var_f31 != 0.0f) { -// PSMTXRotRad(var_r31, 0x5A, 0.017453292f * var_f31); -// } -// else { -// PSMTXIdentity(var_r31); -// } -// if (var_f29 != 0.0f) { -// PSMTXRotRad(&sp38[0], 0x58, 0.017453292f * var_f29); -// PSMTXConcat(&sp38[0], var_r31, var_r31); -// } -// if (var_f30 != 0.0f) { -// PSMTXRotRad(&sp8[0], 0x59, 0.017453292f * var_f30); -// PSMTXConcat(&sp8[0], var_r31, var_r31); -// } -// } + if (0.0f != argA) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (0.0f != arg8) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (0.0f != arg9) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} -// void fn_1_8164(float *arg0, Vec *arg1) -// { -// float sp8; -// Vec *var_r31; -// float *var_r30; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f30; -// double var_f31; +void fn_1_8164(Mtx arg0, Vec *arg1) +{ + f32 temp_f29; + f32 var_f28; -// var_r30 = arg0; -// var_r31 = arg1; -// var_r31->x = atan2d(var_r30->unk_18, var_r30->unk_28); -// if (var_r31->x < 0.0f) { -// var_r31->x += 360.0f; -// } -// var_r31->z = atan2d(var_r30->unk_04, var_r30->unk_00); -// if (var_r31->z < 0.0f) { -// var_r31->z += 360.0f; -// } -// var_f29 = -var_r30->unk_08; -// if ((1.0 - (var_f29 * var_f29)) < 0.0) { -// var_f30 = -(1.0 - (var_f29 * var_f29)); -// } -// else { -// var_f30 = 1.0 - (var_f29 * var_f29); -// } -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f27 = sp8; -// } -// else { -// var_f27 = var_f30; -// } -// var_f28 = var_f27; -// if ((var_r31->x > 90.0f) && (var_r31->x < 270.0f) && (var_r31->z > 90.0f) && (var_r31->z < 270.0f)) { -// var_r31->x = fmod(180.0f + var_r31->x, 360.0); -// var_r31->z = fmod(180.0f + var_r31->z, 360.0); -// var_f28 = -var_f28; -// } -// var_r31->y = atan2d(var_f29, var_f28); -// if (var_r31->y < 0.0f) { -// var_r31->y += 360.0f; -// } -// } + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + temp_f29 = -arg0[0][2]; + var_f28 = sqrtf(BOARD_FABS(1.0 - temp_f29 * temp_f29)); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(temp_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} -// void fn_1_8500(void *arg0, void *arg1) -// { -// float sp8; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f30; -// double var_f31; -// void *var_r30; -// void *var_r31; +void fn_1_8500(Mtx arg0, Vec *arg1) +{ + f32 temp_f29; + f32 var_f28; -// var_r31 = arg0; -// var_r30 = arg1; -// var_r30->unk_08 = atan2d(var_r31->unk_04, var_r31->unk_14); -// var_r30->unk_04 = atan2d(var_r31->unk_20, var_r31->unk_28); -// var_f29 = -var_r31->unk_24; -// if ((1.0 - (var_f29 * var_f29)) < 0.0) { -// var_f30 = -(1.0 - (var_f29 * var_f29)); -// } -// else { -// var_f30 = 1.0 - (var_f29 * var_f29); -// } -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f27 = var_f28; -// var_r30->unk_00 = atan2d(var_f29, var_f27); -// } + arg1->z = atan2d(arg0[0][1], arg0[1][1]); + arg1->y = atan2d(arg0[2][0], arg0[2][2]); + temp_f29 = -arg0[2][1]; + var_f28 = sqrtf(BOARD_FABS(1.0 - temp_f29 * temp_f29)); + arg1->x = atan2d(temp_f29, var_f28); +} -// double fn_1_8750(double arg8, float arg9, float argA, float argB) -// { -// double var_f30; -// double var_f31; +f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ + f32 temp_f31; + f32 var_f30; -// var_f31 = 1.0 - arg8; -// var_f31 = var_f31; -// var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); -// var_f30 = var_f30; -// return var_f30; -// } + temp_f31 = (1.0 - arg8); + var_f30 = ((temp_f31 * temp_f31) * arg9) + (temp_f31 * arg8 * argA * 2.0) + ((arg8 * arg8) * argB); + return var_f30; +} -// void fn_1_87C8(float *arg0, float *arg1, float *arg2, float *arg3, double arg8) -// { -// float *var_r3; -// float *var_r4; -// float *var_r5; -// float *var_r6; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f24; -// double var_f25; -// double var_f30; -// double var_f31; -// s32 var_r31; +void fn_1_87C8(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ + s32 var_r31; -// var_r3 = arg0; -// var_r4 = arg1; -// var_r5 = arg2; -// var_r6 = arg3; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// var_f27 = *var_r5; -// var_r5 += 4; -// var_f28 = *var_r4; -// var_r4 += 4; -// var_f29 = *var_r3; -// var_r3 += 4; -// var_f26 = var_f29; -// var_f31 = 1.0 - arg8; -// var_f31 = var_f31; -// var_f30 = (var_f27 * (arg8 * arg8)) + ((var_f29 * (var_f31 * var_f31)) + (2.0 * (var_f28 * (var_f31 * arg8)))); -// var_f30 = var_f30; -// var_f25 = var_f30; -// var_f24 = var_f25; -// *var_r6 = var_f24; -// var_r6 += 4; -// } -// } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++); + } +} -// double fn_1_88E4(float arg8, double arg9, double argA, float argB) -// { -// double var_f31; +f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ + f32 var_f31; -// var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); -// var_f31 = var_f31; -// return var_f31; -// } + var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB)); + return var_f31; +} -// void fn_1_895C(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) -// { -// float sp8; -// float *temp_r6; -// float *var_r3; -// float *var_r4; -// float *var_r5; -// float *var_r6; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f21; -// double var_f22; -// double var_f27; -// double var_f31; -// s32 var_r31; +void fn_1_895C(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ + f32 spC[3]; + f32 var_f29; + s32 var_r31; -// var_r3 = arg0; -// var_r4 = arg1; -// var_r5 = arg2; -// var_r6 = arg3; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// var_f24 = *var_r5; -// var_r5 += 4; -// var_f25 = *var_r4; -// var_r4 += 4; -// var_f26 = *var_r3; -// var_r3 += 4; -// var_f23 = var_f26; -// var_f27 = 2.0 * ((arg8 * var_f24) + (((arg8 - 1.0) * var_f26) + ((1.0 - (2.0 * arg8)) * var_f25))); -// var_f27 = var_f27; -// var_f22 = var_f27; -// var_f21 = var_f22; -// (&spC[0])[var_r31] = var_f21; -// } -// var_f30 = (sp14 * sp14) + ((spC[0] * spC[0]) + (sp10 * sp10)); -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f29 = var_f28; -// if (var_f29 != 0.0f) { -// var_f29 = 1.0 / var_f29; -// var_f29 = var_f29; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// *var_r6 = var_f29 * (&spC[0])[var_r31]; -// var_r6 += 4; -// } -// return; -// } -// *var_r6 = 0.0f; -// temp_r6 = var_r6 + 4; -// *temp_r6 = 0.0f; -// *(temp_r6 + 4) = 1.0f; -// } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_88E4(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[0] * spC[0]) + (spC[1] * spC[1]) + (spC[2] * spC[2])); + if (var_f29) { + var_f29 = (1.0 / var_f29); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3) { @@ -2890,7 +2519,7 @@ void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3) } } -float fn_1_8EEC(float *arg0, float *arg1, float *arg2, float arg8) +float fn_1_8EEC(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) { float var_f31; float var_f30; @@ -2967,7 +2596,7 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3) } } -void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4, float arg8) +void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4) { float sp48[16]; float sp8[16]; @@ -2982,361 +2611,195 @@ void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 sp48[var_r30] = arg2[var_r30][var_r29]; sp8[var_r30] = arg3[var_r30][var_r29]; } - arg0[var_r29] = fn_1_8EEC(arg1, sp48, sp8, arg8); + arg0[var_r29] = fn_1_8EEC(arg8, arg1, sp48, sp8, arg4); } } -// float fn_1_9634(Vec *arg0) -// { -// float sp8; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f31; +f32 fn_1_9634(Vec *arg0) +{ + f32 var_f30; + f32 var_f29; + var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + var_f29 = 1.0f / var_f30; + arg0->x *= var_f29; + arg0->y *= var_f29; + arg0->z *= var_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} -// var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f30 = var_f28; -// if (var_f30 != 0.0f) { -// var_f29 = 1.0f / var_f30; -// arg0->x *= var_f29; -// arg0->y *= var_f29; -// arg0->z *= var_f29; -// } -// else { -// arg0->z = 0.0f; -// arg0->y = 0.0f; -// arg0->x = 0.0f; -// } -// return var_f30; -// } +f32 fn_1_97CC(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } + else if (arg8 >= 1.0f) { + arg2->x = (arg0.x + arg1.x); + arg2->y = (arg0.y + arg1.y); + arg2->z = (arg0.z + arg1.z); + arg8 = 1.0f; + } + else { + arg2->x = (arg0.x + (arg8 * arg1.x)); + arg2->y = (arg0.y + (arg8 * arg1.y)); + arg2->z = (arg0.z + (arg8 * arg1.z)); + } + return arg8; +} -// float fn_1_97CC(void *arg0, void *arg1, void *arg2, float arg8) -// { -// if (arg8 <= 0.0f) { -// arg2->unk_00 = arg0->unk_00; -// arg2->unk_04 = arg0->unk_04; -// arg2->unk_08 = arg0->unk_08; -// return 0.0f; -// } -// if (arg8 >= 1.0f) { -// arg2->unk_00 = arg0->unk_00 + arg1->unk_00; -// arg2->unk_04 = arg0->unk_04 + arg1->unk_04; -// arg2->unk_08 = arg0->unk_08 + arg1->unk_08; -// return 1.0f; -// } -// arg2->unk_00 = arg0->unk_00 + (arg8 * arg1->unk_00); -// arg2->unk_04 = arg0->unk_04 + (arg8 * arg1->unk_04); -// arg2->unk_08 = arg0->unk_08 + (arg8 * arg1->unk_08); -// return arg8; -// } +f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) +{ + f32 temp_f30; + f32 var_f31; -// float fn_1_98A4(void *arg0, void *arg1, void *arg2) -// { -// float var_f30; -// float var_f31; + var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + temp_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (0.0f != temp_f30) { + var_f31 /= temp_f30; + } + return var_f31; +} -// var_f31 = (arg2->unk_08 * (arg1->unk_08 - arg0->unk_08)) -// + ((arg2->unk_00 * (arg1->unk_00 - arg0->unk_00)) + (arg2->unk_04 * (arg1->unk_04 - arg0->unk_04))); -// var_f30 = -((arg2->unk_08 * arg2->unk_08) + ((arg2->unk_00 * arg2->unk_00) + (arg2->unk_04 * arg2->unk_04))); -// if (var_f30 != 0.0f) { -// var_f31 /= var_f30; -// } -// return var_f31; -// } +f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + f32 var_f31; + f32 var_f30; + f32 temp_f29; -// float fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) -// { -// float sp4C; -// float sp48; -// float sp44; -// float sp40; -// float sp3C; -// float sp38; -// float sp34; -// float sp30; -// float sp2C; -// float sp28; -// float sp24; -// float sp20; -// float sp1C; -// float sp18; -// float sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f31 = fn_1_98A4(*arg0, *arg1, *arg2); + fn_1_97CC(*arg1, *arg2, &sp44, var_f31); + return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); +} -// if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { -// return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) -// + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); -// } -// sp38 = arg0->x; -// sp3C = arg0->y; -// sp40 = arg0->z; -// sp2C = arg1->x; -// sp30 = arg1->y; -// sp34 = arg1->z; -// sp20 = arg2->x; -// sp24 = arg2->y; -// sp28 = arg2->z; -// var_f30 = (sp28 * (sp34 - sp40)) + ((sp20 * (sp2C - sp38)) + (sp24 * (sp30 - sp3C))); -// var_f29 = -((sp28 * sp28) + ((sp20 * sp20) + (sp24 * sp24))); -// if (var_f29 != 0.0f) { -// var_f30 /= var_f29; -// } -// var_f27 = var_f30; -// var_f28 = var_f27; -// var_f31 = var_f28; -// sp8 = arg2->x; -// spC = arg2->y; -// sp10 = arg2->z; -// sp14 = arg1->x; -// sp18 = arg1->y; -// sp1C = arg1->z; -// if (var_f31 <= 0.0f) { -// sp44 = sp14; -// sp48 = sp18; -// sp4C = sp1C; -// var_f31 = 0.0f; -// } -// else if (var_f31 >= 1.0f) { -// sp44 = sp14 + sp8; -// sp48 = sp18 + spC; -// sp4C = sp1C + sp10; -// var_f31 = 1.0f; -// } -// else { -// sp44 = sp14 + (var_f31 * sp8); -// sp48 = sp18 + (var_f31 * spC); -// sp4C = sp1C + (var_f31 * sp10); -// } -// return ((arg0->z - sp4C) * (arg0->z - sp4C)) + (((arg0->x - sp44) * (arg0->x - sp44)) + ((arg0->y - sp48) * (arg0->y - sp48))); -// } +f32 fn_1_9C9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + f32 sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2C; + f32 sp28; + f32 sp24; + Vec sp18; + f32 sp14; + f32 sp10; + f32 spC; + f32 sp8; + f32 temp_f25; + f32 temp_f26; + f32 temp_f28; + f32 var_f24; + f32 var_f27; + f64 temp_f31; + f64 temp_f31_2; + f64 temp_f31_3; -// float fn_1_9C9C(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) -// { -// float sp44; -// float sp40; -// float sp3C; -// float sp38; -// float sp34; -// float sp30; -// float sp2C; -// float sp28; -// float sp24; -// float sp20; -// float sp1C; -// float sp18; -// float sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f22; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f31; + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f27 = fn_1_98A4(*arg0, *arg1, *arg2); + fn_1_97CC(*arg1, *arg2, arg3, var_f27); + arg4->x = (arg0->x - arg3->x); + arg4->y = (arg0->y - arg3->y); + arg4->z = (arg0->z - arg3->z); -// if (((arg2->unk_08 * arg2->unk_08) + ((arg2->unk_00 * arg2->unk_00) + (arg2->unk_04 * arg2->unk_04))) == 0.0f) { -// return ((arg0->unk_08 - arg1->unk_08) * (arg0->unk_08 - arg1->unk_08)) -// + (((arg0->unk_00 - arg1->unk_00) * (arg0->unk_00 - arg1->unk_00)) + ((arg0->unk_04 - arg1->unk_04) * (arg0->unk_04 - -// arg1->unk_04))); -// } -// sp3C = arg0->unk_00; -// sp40 = arg0->unk_04; -// sp44 = arg0->unk_08; -// sp30 = arg1->unk_00; -// sp34 = arg1->unk_04; -// sp38 = arg1->unk_08; -// sp24 = arg2->unk_00; -// sp28 = arg2->unk_04; -// sp2C = arg2->unk_08; -// var_f27 = (sp2C * (sp38 - sp44)) + ((sp24 * (sp30 - sp3C)) + (sp28 * (sp34 - sp40))); -// var_f25 = -((sp2C * sp2C) + ((sp24 * sp24) + (sp28 * sp28))); -// if (var_f25 != 0.0f) { -// var_f27 /= var_f25; -// } -// var_f22 = var_f27; -// var_f23 = var_f22; -// var_f30 = var_f23; -// spC = arg2->unk_00; -// sp10 = arg2->unk_04; -// sp14 = arg2->unk_08; -// sp18 = arg1->unk_00; -// sp1C = arg1->unk_04; -// sp20 = arg1->unk_08; -// if (var_f30 <= 0.0f) { -// arg3->unk_00 = sp18; -// arg3->unk_04 = sp1C; -// arg3->unk_08 = sp20; -// var_f30 = 0.0f; -// } -// else if (var_f30 >= 1.0f) { -// arg3->unk_00 = sp18 + spC; -// arg3->unk_04 = sp1C + sp10; -// arg3->unk_08 = sp20 + sp14; -// var_f30 = 1.0f; -// } -// else { -// arg3->unk_00 = sp18 + (var_f30 * spC); -// arg3->unk_04 = sp1C + (var_f30 * sp10); -// arg3->unk_08 = sp20 + (var_f30 * sp14); -// } -// arg4->unk_00 = arg0->unk_00 - arg3->unk_00; -// arg4->unk_04 = arg0->unk_04 - arg3->unk_04; -// arg4->unk_08 = arg0->unk_08 - arg3->unk_08; -// var_f28 = (arg4->unk_08 * arg4->unk_08) + ((arg4->unk_00 * arg4->unk_00) + (arg4->unk_04 * arg4->unk_04)); -// var_f29 = var_f28; -// if (var_f29 > 0.0f) { -// var_f31 = __frsqrte(var_f29); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// sp8 = var_f29 * var_f31; -// var_f24 = sp8; -// } -// else { -// var_f24 = var_f29; -// } -// var_f28 = var_f24; -// if (var_f28 != 0.0f) { -// var_f26 = 1.0f / var_f28; -// arg4->unk_00 = arg4->unk_00 * var_f26; -// arg4->unk_04 = arg4->unk_04 * var_f26; -// arg4->unk_08 = arg4->unk_08 * var_f26; -// } -// else { -// arg4->unk_08 = 0.0f; -// arg4->unk_04 = 0.0f; -// arg4->unk_00 = 0.0f; -// } -// return var_f28; -// } + return fn_1_9634(arg4); +} -// float fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) -// { -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r29; -// s32 var_r30; -// s32 var_r31; +f32 fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + f32 temp_f31; + f32 var_f30; + f32 var_f29; + f32 var_f28; + f32 var_f27; + f32 var_f26; + s32 var_r31; + s32 var_r30; + s32 var_r29; -// var_f30 = -1.0f; -// var_r31 = 0; -// if (arg3->unk_00 < 0.0f) { -// var_f25 = -arg3->unk_00; -// } -// else { -// var_f25 = arg3->unk_00; -// } -// var_f28 = var_f25; -// if (arg3->unk_04 < 0.0f) { -// var_f24 = -arg3->unk_04; -// } -// else { -// var_f24 = arg3->unk_04; -// } -// var_f27 = var_f24; -// if (arg3->unk_08 < 0.0f) { -// var_f23 = -arg3->unk_08; -// } -// else { -// var_f23 = arg3->unk_08; -// } -// var_f26 = var_f23; -// if (var_f28 >= var_f27) { -// if (var_f28 >= var_f26) { -// var_r30 = 1; -// } -// else { -// var_r30 = 0x100; -// } -// var_r31 = var_r30; -// } -// else { -// if (var_f27 >= var_f26) { -// var_r29 = 0x10; -// } -// else { -// var_r29 = 0x100; -// } -// var_r31 = var_r29; -// } -// if ((var_r31 & 3) != 0) { -// if ((arg1->x != 0.0f) || (arg1->z != 0.0f)) { -// var_f31 = (arg3->unk_00 * arg1->z) - (arg3->unk_08 * arg1->x); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_08 * (arg0->x - arg2->x)) - (arg3->unk_00 * (arg0->z - arg2->z))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_04 * arg1->x) - (arg3->unk_00 * arg1->y); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_00 * (arg0->y - arg2->y)) - (arg3->unk_04 * (arg0->x - arg2->x))) / var_f31; -// goto block_44; -// } -// if ((var_r31 & 0x30) != 0) { -// if ((arg1->x != 0.0f) || (arg1->y != 0.0f)) { -// var_f31 = (arg3->unk_04 * arg1->x) - (arg3->unk_00 * arg1->y); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_00 * (arg0->y - arg2->y)) - (arg3->unk_04 * (arg0->x - arg2->x))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_08 * arg1->y) - (arg3->unk_04 * arg1->z); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_04 * (arg0->z - arg2->z)) - (arg3->unk_08 * (arg0->y - arg2->y))) / var_f31; -// goto block_44; -// } -// if ((arg1->x != 0.0f) || (arg1->z != 0.0f)) { -// var_f31 = (arg3->unk_00 * arg1->z) - (arg3->unk_08 * arg1->x); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_08 * (arg0->x - arg2->x)) - (arg3->unk_00 * (arg0->z - arg2->z))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_08 * arg1->y) - (arg3->unk_04 * arg1->z); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_04 * (arg0->z - arg2->z)) - (arg3->unk_08 * (arg0->y - arg2->y))) / var_f31; -// block_44: -// return var_f29; -// } + var_f30 = -1.0f; + var_r31 = 0; + + var_f28 = BOARD_FABS(arg3->x); + var_f27 = BOARD_FABS(arg3->y); + var_f26 = BOARD_FABS(arg3->z); + if (var_f28 >= var_f27) { + if (var_f28 >= var_f26) { + var_r30 = 1; + } + else { + var_r30 = 0x100; + } + var_r31 = var_r30; + } + else { + if (var_f27 >= var_f26) { + var_r29 = 0x10; + } + else { + var_r29 = 0x100; + } + var_r31 = var_r29; + } + if ((var_r31 & 3) != 0) { + if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { + return var_f30; + } + var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; + } + else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + return var_f30; + } + else { + var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; + } + } + else if ((var_r31 & 0x30) != 0) { + if ((0.0f != arg1->x) || (0.0f != arg1->y)) { + if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + return var_f30; + } + var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + return var_f30; + } + else { + var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; + } + } + else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { + return var_f30; + } + var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + return var_f30; + } + else { + var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; + } + return var_f29; +} void fn_1_A60C(omObjData *object) { @@ -3347,330 +2810,363 @@ void fn_1_A60C(omObjData *object) object->func = fn_1_A688; } +u32 lbl_1_data_510 = 0x41C64E6D; + void fn_1_A688(omObjData *object) { } -// void fn_1_A68C(ModelData *model, Mtx matrix) -// { -// Vec sp14; -// Vec sp8; -// ? *var_r30; -// float var_f31; -// omObjData *var_r27; -// s32 var_r24; -// s32 var_r28; -// s32 var_r29; -// u8 *var_r26; -// void *var_r25; -// void *var_r31; +Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; +s32 lbl_1_data_520[25] = { + -0x62, + -0x61, + -0x60, + -0x5F, + -0x5E, + -0x32, + -0x31, + -0x30, + -0x2F, + -0x2E, + -0x2, + -0x1, + 0x0, + 0x1, + 0x2, + 0x2E, + 0x2F, + 0x30, + 0x31, + 0x32, + 0x5E, + 0x5F, + 0x60, + 0x61, + 0x62, +}; -// if (omPauseChk() == 0) { -// memset(lbl_1_bss_DBC->data, 0, 0x900); -// if (lbl_1_bss_DBA == 7) { -// for (var_r30 = &lbl_1_bss_298; var_r29 = 0; var_r30 < 0x30; var_r29++; var_r30 += 0x30) { -// if ((var_r30->unk_00 > 1) && (var_r30->unk_00 < 5)) { -// var_f31 = 0.0f; -// for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { -// VECScale(var_r30 + 0x24, &sp8, var_f31); -// VECAdd(var_r30 + 0x18, &sp8, &sp14); -// VECSubtract(&sp14, &lbl_1_data_514, &sp14); -// var_r24 = (0.028235294f * sp14.z) * 0x30; -// var_r25 = (0.028235294f * sp14) + var_r24; -// var_r25 += lbl_1_bss_DBC->data; -// for (var_r28 = 0; var_r28 < 0x19; var_r28++) { -// var_r26 = var_r25 + lbl_1_data_520[var_r28]; -// if (*var_r26 < lbl_1_data_584[var_r28]) { -// *var_r26 = lbl_1_data_584[var_r28]; -// } -// } -// } -// } -// } -// for (var_r29 = 0; var_r29 < 4; var_r29++) { -// if (lbl_1_bss_DC4[var_r29] != NULL) { -// var_r27 = lbl_1_bss_DC4[var_r29]; -// var_r31 = var_r27->data; -// if ((var_r31 != NULL) && (var_r31->unk_68 != 0)) { -// var_r31->unk_68 = 0; -// VECAdd(var_r31 + 0x6C, var_r31 + 0x4C, &sp14); -// var_r31->unk_64 = fn_1_AE18(var_r27->work[0], &sp14, var_r31 + 0x58); -// } -// } -// } -// } -// } -// } +u32 lbl_1_data_584[25] = { + 0x50, + 0x64, + 0x78, + 0x64, + 0x50, + 0x64, + 0x8C, + 0xA0, + 0x8C, + 0x64, + 0x78, + 0xA0, + 0xB4, + 0xA0, + 0x78, + 0x64, + 0x8C, + 0xA0, + 0x8C, + 0x64, + 0x50, + 0x64, + 0x78, + 0x64, + 0x50, +}; -// u16 fn_1_A8FC(Vec *arg0, float arg8) -// { -// s32 sp34; -// float sp30; -// s32 sp2C; -// Vec sp20; -// Vec sp14; -// float sp10; -// float spC; -// float sp8; -// Vec *var_r29; -// float var_f25; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// double var_f26; -// double var_f27; -// s32 var_r28; -// u16 var_r30; -// u8 temp_r0; -// void *var_r31; +#define getData(v, off) \ + &(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[(u32)(0.028235294f * (v.x - off))])[(u32)(0.028235294f * (v.z - off)) * 0x30] -// var_r29 = arg0; -// var_f25 = arg8; -// var_r30 = 0; -// var_r28 = 0; -// var_f28 = 100.0f * (4.5f - (2.0f * var_f25)); -// var_f31 = VECMag(var_r29); -// if (var_f31 > 280.0f) { -// if (var_f31 > 560.0f) { -// var_r28 = 1; -// VECNormalize(var_r29, &sp14); -// } -// var_f31 -= 280.0f; -// var_f31 *= 0.12987013f; -// if (var_f31 > 50.0f) { -// var_f31 = 500.0f; -// } -// var_r30 = var_f31; -// } -// if (lbl_1_bss_DBA == 7) { -// var_r31 = lbl_1_bss_DC0->data; -// sp2C = var_r31->unk_34; -// sp30 = var_r31->unk_38; -// sp34 = var_r31->unk_3C; -// sp30 = 0.0f; -// temp_r0 = var_r31->unk_00; -// if (temp_r0 < 4) { -// if (temp_r0 < 2) { -// goto block_18; -// } -// sp8 = sind(var_r31->unk_08); -// spC = 0.0f; -// sp10 = cosd(var_r31->unk_08); -// VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * var_f25))); -// var_f30 = fn_1_B440(var_r29, &sp2C, &sp20); -// if ((var_f30 > -0.2f) && (var_f30 < 1.0f)) { -// VECScale(&sp20, &sp20, var_f30); -// VECAdd(&sp2C, &sp20, &sp2C); -// VECSubtract(&sp2C, var_r29, &sp20); -// var_f31 = VECMag(&sp20); -// if (var_f31 < var_f28) { -// var_f29 = 0.0f; -// if (var_r28 != 0) { -// var_f29 = VECDotProduct(&sp14, &sp8); -// var_f27 = fabs(var_f29); -// var_f29 = 1.0 - var_f27; -// var_f29 = var_f29; -// } -// var_f31 = (1.0f / var_f28) * (var_f28 - var_f31); -// var_f31 = 0.5f * (var_f31 + (1.0f - ((1.0f - var_f31) * (1.0f - var_f31)))); -// var_f31 += (1.0f - var_f31) * var_f29; -// var_f31 = 100.0f + (50.0f * var_f31); -// var_f26 = fabs(var_f30); -// var_f30 = 0.5 + (0.5 * (1.0 - var_f26)); -// var_f30 = var_f30; -// var_f31 *= var_f30; -// if (var_f31 > 150.0f) { -// var_f31 = 150.0f; -// } -// var_r30 = var_r30 + var_f31; -// } -// } -// } -// else { -// block_18: -// VECSubtract(var_r29, &sp2C, &sp20); -// var_f31 = VECMag(&sp20); -// if (var_f31 < 600.0f) { -// var_f31 = 800.0f - var_f31; -// var_f31 = 20.0f + (0.1f * var_f31); -// if (var_f31 > 100.0f) { -// var_f31 = 100.0f; -// } -// var_r30 = var_r30 + var_f31; -// } -// } -// } -// return var_r30; -// } +void fn_1_A68C(ModelData *model, Mtx matrix) +{ + Vec sp14; + Vec sp8; + M438StructBss298 *var_r30; + f32 var_f31; + omObjData *temp_r27; + s32 var_r28; + s32 var_r29; + u8 *temp_r26; + u8 *var_r25; + M438MainWork *temp_r31; -// s32 fn_1_AE18(u32 arg0, Vec *arg1, Vec *arg2) -// { -// Vec sp4C; -// float sp48; -// float sp44; -// float sp40; -// Vec sp34; -// float sp30; -// float sp2C; -// s32 sp28; -// Vec sp1C; -// void *sp18; -// u32 sp14; -// u32 sp10; -// Vec *spC; -// u32 sp8; -// Vec *var_r20; -// float temp_r0; -// float temp_r3; -// float var_f22; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r18; -// s32 var_r23; -// s32 var_r26; -// s32 var_r28; -// s32 var_r30; -// u16 *var_r21; -// u16 *var_r27; -// u16 var_r31; -// u32 temp_r3_2; -// u32 var_r19; -// u32 var_r29; -// u8 *var_r24; -// void *var_r17; -// void *var_r22; -// void *var_r25; + if ((u8)omPauseChk() == 0) { + memset(lbl_1_bss_DBC->data, 0, 0x900); + if (lbl_1_bss_DBA == 7) { + var_r30 = lbl_1_bss_298; + for (var_r29 = 0; var_r29 < 0x30; var_r29++, var_r30++) { + if ((var_r30->unk_00 > 1U) && (var_r30->unk_00 < 5U)) { -// sp8 = arg0; -// spC = arg1; -// var_r20 = arg2; -// memset(lbl_1_bss_C, 0, 0x288); -// temp_r3 = arg1->x; -// sp40 = temp_r3; -// sp44 = arg1->y; -// temp_r0 = arg1->z; -// sp48 = temp_r0; -// temp_r3_2 = 0.028235294f * (sp40 - -850.0f); -// sp10 = temp_r3_2; -// sp14 = 0.028235294f * (sp48 - -850.0f); -// var_r17 = temp_r3_2 + (sp14 * 0x30); -// var_r17 += lbl_1_bss_DBC->data; -// sp44 = 0.0f; -// var_r20->x = temp_r3; -// var_r20->y = sp44; -// var_r20->z = temp_r0; -// var_r25 = lbl_1_bss_DC4[sp8]->data; -// var_f28 = var_r25->unk_3C; -// var_r19 = 0x2710; -// var_r18 = 0; -// for (var_r30 = 0; var_r30 < 9; var_r30++) { -// VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); -// sp18 = var_r17 + lbl_1_data_5E8[var_r30]; -// var_r21 = &lbl_1_bss_C[lbl_1_data_708[var_r30]] + 0x156; -// var_f31 = 0.0f; -// var_r29 = 0; -// var_r22 = sp18; -// sp28 = sp34; -// sp2C = sp34.y; -// sp30 = sp34.z; -// for (var_r23 = 0; var_r23 < 3; var_r23++) { -// for (var_r28 = 0; var_r28 < 9; var_r28++) { -// var_r24 = var_r22 + lbl_1_data_5E8[var_r28]; -// VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); -// if ((lbl_1_bss_DBC->data <= var_r24) && ((lbl_1_bss_DBC->data + 0x900) > var_r24)) { -// var_f27 = sp4C; -// var_f25 = fabs(var_f27); -// var_f24 = var_f25; -// if (var_f24 < 850.0) { -// var_f26 = sp4C.z; -// var_f23 = fabs(var_f26); -// var_f22 = var_f23; -// if (var_f22 < 850.0) { -// var_f31 += 1.0f; -// var_r27 = &var_r21[lbl_1_data_708[var_r28]]; -// if (*var_r27 == 0) { -// var_r31 = fn_1_A8FC(&sp4C, var_f28); -// var_r31 += *var_r24; -// var_f29 = 0.0f; -// if (var_r31 < 0x3C) { -// var_f29 = 0.016666668f * (0x3C - var_r31); -// } -// var_f29 = 80.0f + (100.0f * (2.5f * var_f29)); -// for (var_r26 = 0; var_r26 < 4; var_r26++) { -// if (var_r26 != sp8) { -// var_r25 = lbl_1_bss_DC4[var_r26]->data; -// VECSubtract(&sp4C, var_r25 + 0x6C, &sp1C); -// sp1C.y = 0.0f; -// var_f30 = VECMag(&sp1C); -// if (var_f30 < var_f29) { -// var_f30 = var_f29 - var_f30; -// var_f30 *= 40.0f / var_f29; -// var_r31 = var_r31 + var_f30; -// } -// } -// } -// var_r31++; -// *var_r27 = var_r31; -// } -// else { -// var_r31 = *var_r27; -// } -// var_r29 += var_r31; -// if ((var_r28 == 0) && (var_r23 == 0)) { -// var_r29 += var_r31 * 3; -// var_f31 += 3.0f; -// } -// } -// } -// } -// } -// VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); -// var_r22 += lbl_1_data_678[var_r30]; -// var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; -// var_f31 *= 2.0f; -// var_r29 = var_r29 * 2.0f; -// } -// if (var_f31 > 1.0f) { -// var_r29 = var_r29 / var_f31; -// } -// if (var_r19 > var_r29) { -// var_r18 = var_r30; -// var_r19 = var_r29; -// var_r20->x = sp34; -// var_r20->y = sp34.y; -// var_r20->z = sp34.z; -// } -// (&sp58[0])[var_r30] = var_r29; -// } -// if (var_r18 != 0) { -// return 1; -// } -// return 0; -// } + var_f31 = 0.0f; + for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { + VECScale(&var_r30->unk_24, &sp8, var_f31); + VECAdd(&var_r30->unk_18, &sp8, &sp14); + VECSubtract(&sp14, &lbl_1_data_514, &sp14); -// float fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2) -// { -// Vec sp10; -// Vec *spC; -// Vec *sp8; -// Vec *var_r31; -// float var_f30; -// float var_f31; + // @todo make this look nicer + // var_r25 = getData(sp14, 0); + var_r25 = getData(sp14, 0); + for (var_r28 = 0; var_r28 < 0x19; var_r28++) { + temp_r26 = &var_r25[lbl_1_data_520[var_r28]]; + if (temp_r26[0] < lbl_1_data_584[var_r28]) { + temp_r26[0] = lbl_1_data_584[var_r28]; + } + } + } + } + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((omObjData *)lbl_1_bss_DC4[var_r29]) { + temp_r27 = lbl_1_bss_DC4[var_r29]; + temp_r31 = temp_r27->data; + if ((temp_r31) && (temp_r31->unk_68 != 0)) { + temp_r31->unk_68 = 0; + VECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); + temp_r31->unk_64 = fn_1_AE18(temp_r27->work[0], temp_r31->unk_7C, &sp14, &temp_r31->unk_58); + } + } + } + } + } +} -// sp8 = arg0; -// spC = arg1; -// var_r31 = arg2; -// VECSubtract(spC, sp8, &sp10); -// var_f31 = VECDotProduct(&sp10, var_r31); -// var_f30 = -VECSquareMag(var_r31); -// if (var_f30 != 0.0f) { -// var_f31 /= var_f30; -// } -// return var_f31; -// } +u32 fn_1_A8FC(Vec *arg0, f32 arg8) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r28; + u32 var_r30; + M438MainWork4 *temp_r31; + + var_r30 = 0; + var_r28 = 0; + temp_f28 = 100.0f * (4.5f - (2.0f * arg8)); + var_f31 = VECMag(arg0); + if (var_f31 > 280.0f) { + if (var_f31 > 560.0f) { + var_r28 = 1; + VECNormalize(arg0, &sp14); + } + var_f31 -= 280.0f; + var_f31 *= 0.12987013f; + if (var_f31 > 50.0f) { + var_f31 = 500.0f; + } + var_r30 = var_f31; + } + if (lbl_1_bss_DBA == 7) { + temp_r31 = lbl_1_bss_DC0->data; + sp2C = temp_r31->unk_34; + sp2C.y = 0.0f; + switch (temp_r31->unk_00) { + case 2: + case 3: + sp8.x = sind(temp_r31->unk_08); + sp8.y = 0.0f; + sp8.z = cosd(temp_r31->unk_08); + VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); + var_f30 = fn_1_B440(arg0, &sp2C, &sp20); + if (var_f30 > -0.2f && var_f30 < 1.0f) { + VECScale(&sp20, &sp20, var_f30); + VECAdd(&sp2C, &sp20, &sp2C); + VECSubtract(&sp2C, arg0, &sp20); + var_f31 = VECMag(&sp20); + if (var_f31 < temp_f28) { + var_f29 = 0.0f; + if (var_r28 != 0) { + var_f29 = VECDotProduct(&sp14, &sp8); + var_f29 = 1.0 - fabs(var_f29); + } + var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31); + var_f31 = 0.5f * (var_f31 + (1.0f - ((1.0f - var_f31) * (1.0f - var_f31)))); + var_f31 += (1.0f - var_f31) * var_f29; + var_f31 = 100.0f + 50.0f * var_f31; + var_f30 = 0.5 + 0.5 * (1.0 - fabs(var_f30)); + var_f31 *= var_f30; + if (var_f31 > 150.0f) { + var_f31 = 150.0f; + } + var_r30 += var_f31; + } + } + break; + default: + VECSubtract(arg0, &sp2C, &sp20); + var_f31 = VECMag(&sp20); + if (var_f31 < 600.0f) { + var_f31 = 800.0f - var_f31; + var_f31 = 20.0f + (0.1f * var_f31); + if (var_f31 > 100.0f) { + var_f31 = 100.0f; + } + var_r30 += var_f31; + } + break; + } + } + return var_r30; +} + +s32 lbl_1_data_5E8[9] = { 0, -49, -48, -47, -1, 1, 0x2F, 0x30, 0x31 }; + +Vec lbl_1_data_60C[9] = { + { 0.0f, 0.0f, 0.0f }, + { -35.416668f, 0.0f, -35.416668f }, + { 0.0f, 0.0f, -35.416668f }, + { 35.416668f, 0.0f, -35.416668f }, + { -35.416668f, 0.0f, 0.0f }, + { 35.416668f, 0.0f, 0.0f }, + { -35.416668f, 0.0f, 35.416668f }, + { 0.0f, 0.0f, 35.416668f }, + { 35.416668f, 0.0f, 35.416668f }, +}; + +s32 lbl_1_data_678[9] = { 0, -98, -144, -94, -3, 3, 0x5E, 0x90, 0x62 }; + +Vec lbl_1_data_69C[9] = { + { 0.0f, 0.0f, 0.0f }, + { -70.833336f, 0.0f, -70.833336f }, + { 0.0f, 0.0f, -106.25f }, + { 70.833336f, 0.0f, -70.833336f }, + { -106.25f, 0.0f, 0.0f }, + { 106.25f, 0.0f, 0.0f }, + { -70.833336f, 0.0f, 70.833336f }, + { 0.0f, 0.0f, 106.25f }, + { 70.833336f, 0.0f, 70.833336f }, +}; + +s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 }; +s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 }; + +s32 fn_1_AE18(u32 arg0, f32 arg8, Vec *arg1, Vec *arg2) +{ + s32 sp58[9]; + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + u8 *sp18; + u32 sp14; + u32 sp10; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r31; + s32 var_r30; + u32 var_r29; + s32 var_r28; + u16 *temp_r27; + s32 var_r26; + M438MainWork *var_r25; + u8 *temp_r24; + s32 var_r23; + u8 *var_r22; + u16 *var_r21; + u32 var_r19; + u32 var_r18; + u8 *temp_r17; + + memset(lbl_1_bss_C, 0, 0x288); + sp40 = *arg1; + sp10 = 0.028235294f * (sp40.x - -850.0f); + sp14 = 0.028235294f * (sp40.z - -850.0f); + temp_r17 = &(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[sp10])[sp14 * 0x30]; + sp40.y = 0.0f; + *arg2 = sp40; + var_r25 = lbl_1_bss_DC4[arg0]->data; + temp_f28 = var_r25->unk_3C; + var_r19 = 0x2710; + var_r18 = 0; + + for (var_r30 = 0; var_r30 < 9; var_r30++) { + VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); + sp18 = temp_r17 + lbl_1_data_5E8[var_r30]; + (void)temp_r17; + var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB]; + var_f31 = 0.0f; + var_r29 = 0; + var_r22 = sp18; + sp28 = sp34; + + for (var_r23 = 0; var_r23 < 3; var_r23++) { + for (var_r28 = 0; var_r28 < 9; var_r28++) { + temp_r24 = var_r22 + lbl_1_data_5E8[var_r28]; + VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); + if ((lbl_1_bss_DBC->data <= temp_r24) + && (((u8 *)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { + var_f31++; + temp_r27 = &var_r21[lbl_1_data_708[var_r28]]; + if (*temp_r27 == 0) { + var_r31 = fn_1_A8FC(&sp4C, temp_f28); + var_r31 += *temp_r24; + var_f29 = 0.0f; + if (var_r31 < 0x3C) { + var_f29 = (1.0f / 60.0f) * (0x3C - var_r31); + } + var_f29 = 80.0f + (100.0f * (2.5f * var_f29)); + for (var_r26 = 0; var_r26 < 4; var_r26++) { + if (var_r26 != arg0) { + var_r25 = lbl_1_bss_DC4[var_r26]->data; + VECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); + sp1C.y = 0.0f; + var_f30 = VECMag(&sp1C); + if (var_f30 < var_f29) { + var_f30 = var_f29 - var_f30; + var_f30 *= (40.0f / var_f29); + var_r31 += var_f30; + } + } + } + *temp_r27 = ++var_r31; + } + else { + var_r31 = *temp_r27; + } + var_r29 += var_r31; + if ((var_r28 == 0) && (var_r23 == 0)) { + var_r29 += var_r31 * 3; + var_f31 += 3.0f; + } + } + } + VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); + var_r22 += lbl_1_data_678[var_r30]; + var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; + var_f31 *= 2.0f; + var_r29 *= 2.0f; + } + if (var_f31 > 1.0f) { + var_r29 /= var_f31; + } + if (var_r19 > var_r29) { + var_r18 = var_r30; + var_r19 = var_r29; + *arg2 = sp34; + } + sp58[var_r30] = var_r29; + } + if (var_r18 != 0) { + return 1; + } + return 0; +} + +f32 fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp10; + f32 temp_f30; + f32 var_f31; + + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + temp_f30 = -VECSquareMag(arg2); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index e69de29b..ea4ba2d0 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -0,0 +1,705 @@ +#include "REL/m438Dll.h" + +#include "ext_math.h" +#include "game/hsfanim.h" +#include "game/hsfmotion.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "string.h" + + +// STRUCT +typedef struct M438MapStruct { + s32 unk0; + s32 unk4; + s32 unk8; + Vec unkC; + f32 unk18; + f32 unk1C; + f32 unk20; +} M438MapStruct; + +typedef struct M438MapStruct2 { + s32 unk0; + s32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + f32 unk20; + Vec unk24; + Vec unk30; + Vec unk3C; + union { + M438MainWork4 *unk48; + HsfObject *unk48o; + }; +} M438MapStruct2; + +typedef struct M438MapStruct3 { + u32 unk0; + M438MapStruct2 unk4; + char unk4C[0x934]; + M438MapStruct unk984; +} M438MapStruct3; + +// BSS +omObjData *lbl_1_bss_108C[6]; +HsfanimStruct01 *lbl_1_bss_E34[0x96]; +s32 lbl_1_bss_E30; +s32 lbl_1_bss_E2C; +s32 lbl_1_bss_E28; + +// DATA +char *lbl_1_data_848[] = { "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", "iwa_s10", "iwa_s11", "iwa_s12", + "iwa_s13", "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", + "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", "iwa_s30", "iwa_s31", "iwa_s32" }; + +// PROTO +void fn_1_B54C(omObjData *); +void fn_1_BF20(omObjData *); +void fn_1_CAB0(f32); +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D57C(Vec *, f32); +void fn_1_E034(Mtx, Vec *); + +void fn_1_B4D8(Process *arg0) +{ + omObjData *var_r31; + + lbl_1_bss_E30 = 0; + var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C); + var_r31->work[0] = 0; +} + +void fn_1_B548(void) { } + +void fn_1_B54C(omObjData *arg0) +{ + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r30; + s32 var_r29; + HsfObject *var_r26; + s32 var_r27; + M438MapStruct2 *var_r28; + HsfanimStruct01 *var_r25; + M438MapStruct *var_r24; + M438MapStruct3 *temp_r23; + + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); + temp_r23 = arg0->data; + memset(temp_r23, 0, 0x108C); + arg0->model[0] = Hu3DModelCreateFile(0x450000); + Hu3DModelLayerSet(arg0->model[0], 0); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelShadowMapSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(0x450001); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DModelPosSet(arg0->model[1], 0.0f, -80.0f, 0.0f); + arg0->model[2] = Hu3DModelCreateFile(0x450002); + Hu3DModelLayerSet(arg0->model[2], 0); + Hu3DModelPosSet(arg0->model[2], 0.0f, -50.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[2], 0x40000001); + Hu3DMotionSpeedSet(arg0->model[2], 0.1f); + var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lavafall"); + Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -0.025000002f, 0.0f); + var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); + Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); + var_r29 = 0; + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); + arg0->model[3] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32); + arg0->model[4] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32); + arg0->model[5] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + for (var_r30 = 0; var_r30 < 0x95; var_r30++) { + for (var_r29 = 1; var_r29 < 0x96; var_r29++) { + if (frandmod(0x3E8) < 0x1C2) { + var_r25 = lbl_1_bss_E34[var_r30]; + lbl_1_bss_E34[var_r30] = lbl_1_bss_E34[var_r29]; + lbl_1_bss_E34[var_r29] = var_r25; + } + } + } + + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { + lbl_1_bss_E34[var_r30]->unk2C = 0.0f; + lbl_1_bss_E34[var_r30]->unk40.a = 0; + lbl_1_bss_E34[var_r30]->unk00 = 0; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); + arg0->model[6] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C8E8); + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) { + var_r25->unk2C = 0.0f; + var_r25->unk40.a = 0; + var_r25->unk00 = 0; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); + arg0->model[7] = var_r27; + Hu3DModelLayerSet(var_r27, 2); + Hu3DParticleBlendModeSet(var_r27, 1); + Hu3DParticleHookSet(var_r27, fn_1_D3FC); + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) { + var_r25->unk2C = 0.0f; + var_r25->unk40.a = 0; + var_r25->unk00 = 0; + } + var_r28 = &temp_r23->unk4; + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r28++) { + var_r28->unk0 = 1; + var_r28->unk4 = 0; + var_r28->unkC = var_r28->unk10 = 0.0f; + var_r28->unk14 = var_r28->unk18 = 0.0f; + var_r28->unk1C = var_r28->unk20 = 0.0f; + var_r26 = Hu3DModelObjPtrGet(arg0->model[0], lbl_1_data_848[var_r30]); + var_r28->unk48o = var_r26; + sp14.x = sp14.y = sp14.z = -100000.0f; + sp8.x = sp8.y = sp8.z = 100000.0f; + + for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) { + if (((Vec *)var_r26->data.vertex->data)[var_r29].x > sp14.x) { + sp14.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; + } + if (((Vec *)var_r26->data.vertex->data)[var_r29].y > sp14.y) { + sp14.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; + } + if (((Vec *)var_r26->data.vertex->data)[var_r29].z > sp14.z) { + sp14.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; + } + if (((Vec *)var_r26->data.vertex->data)[var_r29].x < sp8.x) { + sp8.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; + } + if (((Vec *)var_r26->data.vertex->data)[var_r29].y < sp8.y) { + sp8.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; + } + if (((Vec *)var_r26->data.vertex->data)[var_r29].z < sp8.z) { + sp8.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; + } + } + VECAdd(&sp14, &sp8, &sp20); + VECScale(&sp20, &sp20, 0.5f); + var_r28->unk24 = sp20; + var_r28->unk30 = var_r28->unk24; + var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z)); + if (var_r28->unk8 >= 360.0f) { + var_r28->unk8 -= 360.0f; + } + } + var_r27 = Hu3DModelCreateFile(0x45000B); + Hu3DModelLayerSet(var_r27, 2); + var_r24 = &temp_r23->unk984; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r24++) { + var_r24->unk0 = 0; + var_r24->unk8 = 0; + var_r24->unk18 = 0.0f; + var_r24->unk1C = var_r24->unk20 = 0.0f; + var_r24->unk4 = Hu3DModelLink(var_r27); + Hu3DModelLayerSet(var_r24->unk4, 2); + Hu3DModelAttrSet(var_r24->unk4, 1); + } + Hu3DModelKill(var_r27); + arg0->func = fn_1_BF20; +} + +Vec lbl_1_data_8D8[4][2] = { + { + { -967.0f, -80.0f, -312.0f }, + { -867.0f, -80.0f, -485.0f }, + }, + { + { -917.0f, -80.0f, -857.0f }, + { -817.0f, -80.0f, -1030.0f }, + }, + { + { 967.0f, -80.0f, -312.0f }, + { 867.0f, -80.0f, -485.0f }, + }, + { + { 917.0f, -80.0f, -857.0f }, + { 817.0f, -80.0f, -1030.0f }, + }, +}; + +void fn_1_BF20(omObjData *arg0) +{ + Mtx sp5C; + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + s32 var_r29; + M438MapStruct2 *var_r31; + M438MapStruct *var_r30; + M438MapStruct3 *temp_r28; + + temp_r28 = arg0->data; + temp_r28->unk0++; + var_r31 = &temp_r28->unk4; + + for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) { + if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) { + temp_f29 = var_r31->unk30.y; + VECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); + var_r31->unk3C.x *= 0.92f; + var_r31->unk3C.z *= 0.92f; + var_r31->unk3C.y += -0.27222225f; + if (temp_f29 > 0.0) { + if (var_r31->unk30.y <= 0.0) { + HuAudFXEmiterPlay(0x6FF, &var_r31->unk30); + } + } + var_r31->unkC += var_r31->unk10; + var_r31->unk14 += var_r31->unk18; + var_r31->unk1C += var_r31->unk20; + sp14.x = sind(90.0f + var_r31->unk8); + sp14.z = cosd(90.0f + var_r31->unk8); + sp14.y = 0.0f; + MTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); + sp14.x = sp14.z = 0.0f; + sp14.y = 1.0f; + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); + MTXConcat(sp2C, sp5C, sp5C); + sp14.x = sind(var_r31->unk8); + sp14.z = cosd(var_r31->unk8); + sp14.y = 0.0f; + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); + MTXConcat(sp2C, sp5C, sp5C); + fn_1_E034(sp5C, &sp20); + var_r31->unk48->unk_28.x = sp20.x; + var_r31->unk48->unk_28.y = sp20.y; + var_r31->unk48->unk_28.z = sp20.z; + MTXInverse(sp5C, sp5C); + MTXMultVec(sp5C, &var_r31->unk24, &sp8); + var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x); + var_r31->unk48->unk_1C.y = (var_r31->unk30.y - sp8.y); + var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z); + if (var_r31->unk30.y < -500.0f) { + var_r31->unk4 = 0; + } + } + } + if ((temp_r28->unk0 & 1) == 0) { + var_r30 = &temp_r28->unk984; + + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { + if (var_r30->unk0 != 0) + continue; + var_r30->unk0 = 1; + var_r30->unk18 = frandmod(0x168); + if (frandmod(0x64) < 0x14) { + var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8)); + var_r30->unkC.y = -80.0f; + var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f); + } + else { + temp_f31 = frandmod(0x168); + temp_f30 = 800.0f + (0.25f * frandmod(0x3E8)); + var_r30->unkC.x = (temp_f30 * sind(temp_f31)); + var_r30->unkC.y = -80.0f; + var_r30->unkC.z = (temp_f30 * cosd(temp_f31)); + } + var_r30->unk20 = (0.1f + (0.0005f * frandmod(0x3E8))); + var_r30->unk1C = 0.0f; + Hu3DModelAttrReset(var_r30->unk4, 1); + Hu3DModelPosSetV(var_r30->unk4, &var_r30->unkC); + Hu3DModelRotSet(var_r30->unk4, 0.0f, var_r30->unk18, 0.0f); + Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); + break; + } + } + var_r30 = &temp_r28->unk984; + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { + if (var_r30->unk0 != 0) { + var_r30->unk1C += 0.005f; + if (var_r30->unk1C > var_r30->unk20) { + var_r30->unk0 = 0; + Hu3DModelAttrSet(var_r30->unk4, 1); + fn_1_D57C(&Hu3DData[var_r30->unk4].pos, var_r30->unk20); + } + Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); + } + } + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + VECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); + temp_f31 = 0.001f * frandmod(0x3E8); + VECScale(&sp14, &sp14, temp_f31); + VECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); + VECScale(&sp8, &sp8, 0.98f); + fn_1_D57C(&sp8, 0.03f); + } + if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) { + HuAudFXPlay(0x6F9); + HuAudFXPlay(0x6FD); + lbl_1_bss_E30 = 1; + } +} + +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + u16 temp_r0; + + var_r31 = particle->unk_48; + + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + var_r31->unk08.y += -0.27222225f; + if (var_r31->unk00 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + u16 temp_r0; + + var_r31 = particle->unk_48; + + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.92f; + var_r31->unk08.z *= 0.92f; + var_r31->unk2C += 5.0f; + var_r31->unk40.a *= 0.99f; + if (var_r31->unk00 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_CAB0(f32 arg8) +{ + Vec sp8; + f32 temp_f31; + f32 temp_f30; + f32 temp_f28; + f32 temp_f27; + HsfanimStruct01 *var_r31; + s32 var_r30; + u32 var_r29; + + temp_f28 = 20.0f; + temp_f27 = 7.0f; + var_r29 = 0x19; + + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { + var_r31 = lbl_1_bss_E34[var_r30]; + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); + temp_f31 = arg8 + (temp_f31 * temp_f28); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; + var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; + var_r31->unk34.y = 0.2f * frandmod(0x3E8); + var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; + + temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); + var_r31->unk08.x = sp8.x * temp_f30; + var_r31->unk08.z = sp8.z * temp_f30; + var_r31->unk08.y = temp_f30 * ((0.0006f * frandmod(0x3E8)) - 0.2f); + + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 10.0f + frandmod(0x32); + var_r31->unk40.a = 0xFA; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + + var_r29--; + if (var_r29 < 1) + break; + } + } + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; + var_r29 = 0xF; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); + temp_f31 = arg8 + (temp_f31 * temp_f28); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; + var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; + var_r31->unk34.y = 0.2f * frandmod(0x3E8); + var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; + + temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); + var_r31->unk08.x = sp8.x * temp_f30; + var_r31->unk08.z = sp8.z * temp_f30; + var_r31->unk08.y = temp_f30 * -((0.00020000001f * frandmod(0x3E8)) + 0.05f); + + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 100.0f + frandmod(0x64); + var_r31->unk40.a = 0x50 + frandmod(0x50); + temp_f31 = frandmod(0x3E8) * 0.001f; + var_r31->unk40.r = (60.0f * temp_f31) + 80.0f; + var_r31->unk40.g = (60.0f * temp_f31) + 61.0f; + var_r31->unk40.b = (60.0f * temp_f31) + 54.0f; + + var_r29--; + if (var_r29 < 1) + break; + } + } +} + +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + u16 temp_r0; + + lbl_1_bss_E2C = 0; + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.y += -0.27222225f; + if (var_r31->unk00 < 12.0f) { + var_r31->unk40.a = (0.8f * var_r31->unk40.a); + } + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + lbl_1_bss_E2C++; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_D57C(Vec *arg0, f32 arg1) +{ + Vec sp8; + f32 temp_f31; + f32 temp_f29; + HsfanimStruct01 *var_r31; + s32 var_r30; + u32 var_r29; + + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; + var_r29 = (u32)(3.0f + (15.0f * arg1)); + + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); + var_r31->unk34 = *arg0; + var_r31->unk34.x += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); + var_r31->unk34.z += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); + + temp_f31 = frandmod(0x168); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f29 = 1.6666667f * (0.5f + (0.001f * frandmod(0x3E8))); + var_r31->unk08.x = sp8.x * temp_f29; + var_r31->unk08.z = sp8.z * temp_f29; + var_r31->unk08.y = 1.6666667f * ((2.0f * arg1) + (1.0f + (0.002f * frandmod(0x3E8)))); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = (20.0f + frandmod(0x14)); + var_r31->unk40.a = (frandmod(0x46) + 0x64); + + temp_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk40.r = 177.0f + (78.0f * temp_f31); + var_r31->unk40.g = 60.0f + (129.0f * temp_f31); + var_r31->unk40.b = 30.0f + (122.0f * temp_f31); + + var_r29--; + if (var_r29 < 1) + break; + } + } +} + +s32 fn_1_DA64(f32 arg8) +{ + M438MapStruct3 *var_r28; + s32 var_r29; + s32 var_r30; + M438MapStruct2 *var_r31; + float var_f31; + float var_f29; + + var_r28 = lbl_1_bss_108C[0]->data; + var_r29 = 0; + var_r31 = &var_r28->unk4; + + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + var_f31 = fn_1_E5A4(var_r31->unk8, arg8); + if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { + var_r31->unk0 = 0; + var_r31->unk4 = 1; + var_r31->unk30 = var_r31->unk24; + var_r31->unk3C.y = (1.6666667f * (2.0f + (0.002f * frandmod(0x3E8)))); + var_r31->unk3C.x = (1.6666667461395264f * (sind(var_r31->unk8) * (10.0f + (0.006f * frandmod(0x3E8))))); + var_r31->unk3C.z = (1.6666667461395264f * (cosd(var_r31->unk8) * (10.0f + (0.006f * frandmod(0x3E8))))); + var_r31->unkC = var_r31->unk14 = var_r31->unk1C = 0.0f; + var_r31->unk10 = (0.016666668f * (10.0f + (0.05f * frandmod(0x3E8)))); + var_r31->unk18 = (0.016666668f * (30.0f + (0.05f * frandmod(0x3E8)))); + var_r31->unk20 = (0.016666668f * (10.0f + (0.02f * frandmod(0x3E8)))); + if (frandmod(0x64) < 0x50) { + var_r31->unk10 *= -1.0f; + } + if (frandmod(0x64) < 0x32) { + var_r31->unk18 *= -1.0f; + } + if (frandmod(0x64) < 0x32) { + var_r31->unk20 *= -1.0f; + } + fn_1_CAB0(var_r31->unk8); + var_r29 = 1; + } + } + return var_r29; +} + +s32 fn_1_DEA0(f32 arg8) +{ + M438MapStruct3 *var_r28; + s32 var_r29; + s32 var_r30; + M438MapStruct2 *var_r31; + f32 var_f31; + + var_r28 = lbl_1_bss_108C[0]->data; + var_r29 = 0; + var_r31 = &var_r28->unk4; + + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + var_f31 = fn_1_E5A4(var_r31->unk8, arg8); + if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { + var_r29 = 1; + break; + } + } + return var_r29; +} + +f32 fn_1_DF70(f32 arg8, f32 arg9) +{ + f32 temp_f30; + f32 var_f31; + + temp_f30 = 360.0f; + var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + if (var_f31 < 0.0f) { + var_f31 += temp_f30; + + } + else if (var_f31 >= temp_f30) { + var_f31 -= temp_f30; + } + return var_f31; +} + +void fn_1_E034(Mtx arg0, Vec *arg1) +{ + f32 var_f26; + f32 temp_f25; + + arg1->x = fn_1_DF70(arg0[2][2], arg0[1][2]); + arg1->z = fn_1_DF70(arg0[0][0], arg0[0][1]); + temp_f25 = -arg0[0][2]; + var_f26 = sqrtf(fabs(1.0 - (temp_f25 * temp_f25))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f26 = -var_f26; + } + arg1->y = fn_1_DF70(var_f26, temp_f25); +} + +f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) +{ + f32 var_f31; + + var_f31 = fmodf((arg9 - arg8), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f31 = fmodf((arg8 + (argA * var_f31)), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +f32 fn_1_E5A4(f32 arg8, f32 arg9) +{ + f32 var_f31; + + var_f31 = fmodf((arg9 - arg8), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index 8e761bba..44c7927b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -21,6 +21,7 @@ #include "ext_math.h" #include "REL/m439data.h" +#include "version.h" typedef struct camera_params { float zoom; @@ -28,34 +29,12 @@ typedef struct camera_params { Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_741C[] = { { - 4775, - -2800, - 0, - -7700, - 343, - 20, - 0, - }, - { - 5000, - 0, - 0, - 0, - 290, - 0, - 0, - }, - { - 2800, - 0, - 0, - -7600, - 347, - 0, - 0, - }, - { 2800, 0, 0, -7600, 290, 0, 0 } }; +CameraViewParams lbl_1_data_741C[] = { + { VERSION_NTSC ? 4775.0f : 4500.0f, -2800.0f, 0.0f, -7700.0f, 343.0f, 20.0f, 0.0f }, + { 5000.0f, 0.f, 0.0f, 0.0f, 290.0f, 0.0f, 0.0f }, + { 2800.0f, 0.f, 0.0f, -7600.0f, 347.0f, 0.0f, 0.0f }, + { 2800.0f, 0.f, 0.0f, -7600.0f, 290.0f, 0.0f, 0.0f }, +}; typedef struct struct_data_748C { s32 unk0; @@ -162,9 +141,9 @@ void fn_1_408(omObjData *object); void fn_1_384(omObjData *object) { fn_1_364(0); - lbl_1_bss_14C = 60; + lbl_1_bss_14C = REFRESH_RATE; lbl_1_bss_12E = 60; - lbl_1_bss_12C = 60; + lbl_1_bss_12C = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); object->func = fn_1_408; } @@ -181,12 +160,12 @@ void fn_1_408(omObjData *object) { switch (fn_1_374()) { case 0: - if (lbl_1_bss_14C == 60) { + if (lbl_1_bss_14C == REFRESH_RATE) { HuAudFXPlay(1797); } if (--lbl_1_bss_14C == 0) { fn_1_364(1); - lbl_1_bss_14C = 120; + lbl_1_bss_14C = 2 * REFRESH_RATE; } break; @@ -227,7 +206,7 @@ void fn_1_408(omObjData *object) if (--lbl_1_bss_12C == 0) { lbl_1_bss_12E--; MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); - lbl_1_bss_12C = 60; + lbl_1_bss_12C = REFRESH_RATE; } if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { fn_1_364(6); @@ -243,7 +222,7 @@ void fn_1_408(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_32)) { fn_1_364(7); - lbl_1_bss_14C = 60; + lbl_1_bss_14C = REFRESH_RATE; } break; @@ -257,7 +236,7 @@ void fn_1_408(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_14C = 210; + lbl_1_bss_14C = 3.5f * REFRESH_RATE; } break; @@ -823,7 +802,7 @@ void fn_1_2C84(omObjData *object) if (fn_1_374() >= 6 && !temp_r31->unk0_field2) { temp_r31->unk0_field7 = 1; temp_r31->unk12 = 2; - temp_r31->unk3E = 120; + temp_r31->unk3E = 2 * REFRESH_RATE; object->func = fn_1_3C1C; return; } @@ -852,18 +831,18 @@ void fn_1_2C84(omObjData *object) if (temp_f26 > 72) { temp_f26 = 72; } - temp_f23 = (10.0f * temp_f26) / 72.0f; + temp_f23 = ((600.0f / REFRESH_RATE) * temp_f26) / 72.0f; temp_r31->unk20.x = temp_f31 * temp_f23; temp_r31->unk20.z = temp_f30 * temp_f23; temp_r31->unk14.y = temp_f23; object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); - if (temp_r31->unk14.y < 7.5f) { + if (temp_r31->unk14.y < (450.0f / REFRESH_RATE)) { temp_r28 = 1; - temp_f25 = temp_r31->unk14.y / 7.5f; + temp_f25 = temp_r31->unk14.y / (450.0f / REFRESH_RATE); } else { temp_r28 = 2; - temp_f25 = temp_r31->unk14.y / 10.0f; + temp_f25 = temp_r31->unk14.y / (600.0f / REFRESH_RATE); } } else { @@ -900,7 +879,7 @@ void fn_1_2C84(omObjData *object) temp_r31->unk50.z = object->trans.z; temp_r31->unk68.y = -2000; temp_r31->unk12 = 2; - temp_r31->unk3E = 12; + temp_r31->unk3E = 0.2f * REFRESH_RATE; temp_r23 = Hu3DData[object->model[2]].unk_120; temp_r23->unk_00 = 0; VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); @@ -933,7 +912,7 @@ void fn_1_2C84(omObjData *object) temp_r31->unk0_field4 = 01; if (temp_r29 > 1 && temp_r29 < 6) { temp_r31->unk12++; - temp_r31->unk3E = 30; + temp_r31->unk3E = 0.5f * REFRESH_RATE; temp_r31->unk48 = CenterM[temp_r31->unk2].z; temp_r31->unk4C = object->trans.z - 350.0f; temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1]; @@ -946,7 +925,7 @@ void fn_1_2C84(omObjData *object) if (--temp_r31->unk3E == 0) { temp_r31->unk12 = 0; } - CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f)); + CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / (0.5f * REFRESH_RATE))); temp_r28 = 0; temp_f25 = 1; break; @@ -957,7 +936,7 @@ void fn_1_2C84(omObjData *object) temp_r24 = temp_r27->data; switch (temp_r24->unk4) { case 1: - temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f); + temp_f28 = 1.0f - (temp_r24->unk24 / (1.5f * REFRESH_RATE)); object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x)); object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f); object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z)); @@ -978,7 +957,7 @@ void fn_1_2C84(omObjData *object) if (temp_r31->unk3E) { temp_r31->unk3E--; } - temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f); + temp_f28 = sind((temp_r31->unk3E / (0.5f * REFRESH_RATE)) * 90.0f); object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x)); object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y)); object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z)); @@ -1032,7 +1011,7 @@ void fn_1_3C1C(omObjData *object) switch (temp_r31->unk12) { case 0: if (object->trans.z > -7600.0f) { - object->trans.z -= 3.75f; + object->trans.z -= 225.0f / REFRESH_RATE; } else { temp_r31->unk12++; @@ -1113,11 +1092,11 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31)); temp_r31->unk34.y = 0; temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31)); - temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f); + temp_f30 = ((frand8() * (150.0f / REFRESH_RATE)) / 256.0f) + (100.0f / REFRESH_RATE); temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f); temp_r31->unk08.x = temp_f30 * sind(temp_f31); temp_r31->unk08.z = temp_f30 * cosd(temp_f31); - temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f; + temp_r31->unk08.y = (frand8() * (1000.0f / REFRESH_RATE)) / 256.0f; temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; } } @@ -1128,7 +1107,7 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) temp_r28++; } else { - temp_r31->unk08.y += -0.50000006f; + temp_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; // -3.0f / REFRESH_RATE temp_r31->unk34.x += temp_r31->unk08.x; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z; @@ -1193,7 +1172,7 @@ void fn_1_4AA8(omObjData *object) } Hu3DMotionSet(object->model[0], object->motion[0]); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); - object->trans.y = 500; + object->trans.y = 500.0f; object->scale.x = object->scale.y = object->scale.z = 0.25f; if (work->unk2 == 0) { object->trans.x = -1800; @@ -1202,7 +1181,7 @@ void fn_1_4AA8(omObjData *object) object->rot.y = -90; object->func = fn_1_4CC0; Hu3DMotionSpeedSet(object->model[0], 2.0f); - work->unk24 = 60; + work->unk24 = REFRESH_RATE; } else { object->func = fn_1_4F54; @@ -1218,11 +1197,11 @@ void fn_1_4CC0(omObjData *object) Work4AA8 *work = object->data; float pan; Vec pos2D; - if (42.0f == work->unk24) { + if ((VERSION_NTSC ? 42.0f : 35.0f) == work->unk24) { HuAudFXPlay(1795); } if (work->unk24 == 0) { - object->trans.x -= 25.0f; + object->trans.x -= 1500.0f / REFRESH_RATE; } else { if (--work->unk24 == 0) { @@ -1273,7 +1252,7 @@ void fn_1_4F54(omObjData *object) case 0: if (object->work[3]) { work->unk4++; - work->unk24 = work->unk26 = 90; + work->unk24 = work->unk26 = 1.5f * REFRESH_RATE; temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; object->trans.y = work->unk28.y = 2000; @@ -1301,11 +1280,11 @@ void fn_1_4F54(omObjData *object) if (--work->unk24 == 0) { work->unk0 = 1; work->unk4++; - work->unk24 = 90; + work->unk24 = 1.5f * REFRESH_RATE; work->unk10 = (200.0f - object->trans.y) / work->unk24; object->rot.x = 0; } - if (60.0f == work->unk24) { + if (1.0f * REFRESH_RATE == work->unk24) { HuAudFXPlay(1796); } break; @@ -1314,7 +1293,7 @@ void fn_1_4F54(omObjData *object) object->trans.y += work->unk10; if (--work->unk24 == 0) { work->unk4++; - work->unk24 = work->unk26 = 48; + work->unk24 = work->unk26 = 0.8f * REFRESH_RATE; work->unk28.x = object->trans.x; work->unk28.y = object->trans.y; work->unk28.z = object->trans.z; @@ -1350,7 +1329,7 @@ void fn_1_4F54(omObjData *object) object->work[3] = 0; Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } - if (work->unk24 == (int)(work->unk26 - 12.0f)) { + if (work->unk24 == (int)(work->unk26 - (0.2f * REFRESH_RATE))) { work->unk0 = 0; temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); temp_r28 = temp_r29[work->unk2]->data; @@ -1686,7 +1665,7 @@ void fn_1_6DEC(omObjData *object) switch (object->work[0]) { case 0: if (fn_1_374() <= 3) { - CRotM[0].y -= 10.0f / 60.0f; + CRotM[0].y -= 10.0f / REFRESH_RATE; } if (fn_1_374() == 3) { Hu3DCameraCreate(15); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index e200145c..85db113d 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -14,6 +14,7 @@ #include "math.h" #include "string.h" +#include "version.h" // bss omObjData *lbl_1_bss_6C; @@ -117,14 +118,14 @@ s32 fn_1_4A4(void) var_r31 = &lbl_1_data_78[0]; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = sind(90.0f * var_f31) * sind(90.0f * var_f31); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -144,14 +145,14 @@ s32 fn_1_6C8(void) var_r31 = &lbl_1_data_78[1]; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -173,7 +174,7 @@ void fn_1_8F0(omObjData *arg0) temp_r31->unk0 = 1; temp_r31->unk4 = -1; temp_r31->unk8 = -1; - temp_r31->unk6 = 0x12C; + temp_r31->unk6 = 5 * REFRESH_RATE; temp_r31->unkA = 0; temp_r31->unkC = -1; @@ -215,7 +216,7 @@ void fn_1_AE0(omObjData *arg0) break; case 3: if (temp_r31->unk8 != -1) { - MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + 0x3B) / 60)); + MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + REFRESH_RATE - 1) / REFRESH_RATE)); } if ((temp_r31->unkC < 0) && ((MGSeqStatGet(temp_r31->unk4) & 0x10) != 0)) { temp_r31->unkC = HuAudSeqPlay(0x49); @@ -226,7 +227,7 @@ void fn_1_AE0(omObjData *arg0) temp_f31 = (((rand8() << 8) | rand8()) % 361); Center.x = (lbl_1_data_78[1].center.x + (10.0 * sind(temp_f31))); Center.y = (lbl_1_data_78[1].center.y + (10.0 * cosd(temp_f31))); - if (temp_r31->unkA > 0x28) { + if (temp_r31->unkA > (2 * REFRESH_RATE / 3)) { temp_r31->unkA = 0; return; } @@ -265,7 +266,7 @@ u8 fn_1_E14(omObjData *arg0) lbl_1_bss_6++; break; case 1: - if (++lbl_1_bss_8 > 0x1E) { + if (++lbl_1_bss_8 > (s16)(0.5f * REFRESH_RATE_F)) { fn_1_F168(); lbl_1_bss_8 = 0; lbl_1_bss_6++; @@ -275,13 +276,13 @@ u8 fn_1_E14(omObjData *arg0) var_r31 = lbl_1_data_78; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -319,7 +320,7 @@ u8 fn_1_1138(omObjData *object) temp_r30->unk40 = temp_r30->unk34; } lbl_1_bss_8++; - var_f30 = lbl_1_bss_8 / 30.0f; + var_f30 = lbl_1_bss_8 / (0.5f * REFRESH_RATE_F); if (var_f30 >= 1.0f) { var_f30 = 1.0f; if (lbl_1_bss_B == 0) { @@ -331,13 +332,13 @@ u8 fn_1_1138(omObjData *object) var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 var_r28 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; var_r28 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -357,7 +358,7 @@ u8 fn_1_1138(omObjData *object) lbl_1_bss_8 = 0; break; case 2: - if (++lbl_1_bss_8 > 210.0f) { + if (++lbl_1_bss_8 > (3.5f * REFRESH_RATE)) { lbl_1_bss_6 = 0; return 1; } @@ -392,7 +393,7 @@ void fn_1_1768(void) temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 == -1) { - temp_r31->unk6 = 0x12C; + temp_r31->unk6 = 5 * REFRESH_RATE; temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1); } } @@ -627,8 +628,8 @@ void fn_1_2470(omObjData *arg0) Hu3DModelShadowMapSet(arg0->model[0]); for (var_r30 = 0; var_r30 < 5; var_r30++) { - temp_f31 = (450.0 * cos(M_PI * lbl_1_data_0[var_r30] / 180.0)); - var_f29 = (450.0 * sin(M_PI * lbl_1_data_0[var_r30] / 180.0)); + temp_f31 = 450.0 * cosd(lbl_1_data_0[var_r30]); + var_f29 = 450.0 * sind(lbl_1_data_0[var_r30]); Hu3DModelPosSet(arg0->model[var_r30 + 4], temp_f31, 0.0f, var_f29); var_f30 = 90.0f - lbl_1_data_0[var_r30]; Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, var_f30, 0.0f); @@ -639,7 +640,7 @@ void fn_1_2470(omObjData *arg0) temp_r29 = &Hu3DData[temp_r26]; temp_r28 = temp_r29->hsfData->root; lbl_1_bss_60 = temp_r28->data.childrenCount; - lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * 64); + lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * sizeof(unkStruct6)); OSReport("Koopa Object Count %d\n", temp_r29->hsfData->objectCnt); for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { @@ -695,7 +696,7 @@ void fn_1_2B04(omObjData *object) switch (lbl_1_data_E4[0]) { case 0: lbl_1_data_E8[0]++; - temp_f31 = lbl_1_data_E8[0] / 360.0f; + temp_f31 = lbl_1_data_E8[0] / (6 * REFRESH_RATE_F); if (temp_f31 > 1.0f) { temp_f31 = 1.0f; Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); @@ -704,7 +705,7 @@ void fn_1_2B04(omObjData *object) fn_1_4EEC(0x20, 0); return; } - temp_f31 = sin((M_PI * (90.0f * temp_f31)) / 180.0); + temp_f31 = sind(90.0f * temp_f31); temp_r31->center.y = (250.0f + (1750.0f * temp_f31)); } Hu3DModelPosSet(object->model[3], temp_r31->center.x, temp_r31->center.y, temp_r31->center.z); @@ -752,18 +753,18 @@ void fn_1_2D28(omObjData *object) break; case 0x1: lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 120.0f; + var_f31 = lbl_1_data_F0[0] / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_F0[0] = 0; - lbl_1_data_F0[1] = 0xF; + lbl_1_data_F0[1] = REFRESH_RATE / 4; lbl_1_data_EC[1] = (lbl_1_data_EC[0] + 1); lbl_1_data_EC[0] = 0x63; } - if (110.0f == lbl_1_data_F0[0]) { + if ((11 * REFRESH_RATE_F / 6) == lbl_1_data_F0[0]) { HuAudFXPlay(0x70A); } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->center.y = (2000.0f + (-1750.0f * var_f31)); break; case 0x2: @@ -771,11 +772,11 @@ void fn_1_2D28(omObjData *object) HuAudFXPlay(0x713); } lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 60.0f; + var_f31 = lbl_1_data_F0[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_F0[0] = 0; - lbl_1_data_F0[1] = 0xF; + lbl_1_data_F0[1] = REFRESH_RATE / 4; lbl_1_data_EC[1] = lbl_1_data_EC[0] + 1; lbl_1_data_EC[0] = 0x63; HuAudFXPlay(0x714); @@ -788,7 +789,7 @@ void fn_1_2D28(omObjData *object) if (lbl_1_data_F0[0] == 0) { HuAudFXPlay(0x711); } - if (++lbl_1_data_F0[0] > 12.0) { + if (++lbl_1_data_F0[0] > (0.2 * REFRESH_RATE)) { if (fn_1_4EA8(0x40) != 0) { fn_1_4EEC(0x40, 0); fn_1_F228(); @@ -801,7 +802,7 @@ void fn_1_2D28(omObjData *object) break; case 0x4: lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 360.0f; + var_f31 = lbl_1_data_F0[0] / (6 * REFRESH_RATE_F); if (var_f31 > 1.0f) { var_f31 = 1.0f; Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); @@ -810,7 +811,7 @@ void fn_1_2D28(omObjData *object) fn_1_4EEC(7, 2); return; } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->center.y = (250.0f + (1750.0f * var_f31)); break; case 0x63: @@ -1021,7 +1022,7 @@ void fn_1_46E0(omObjData *object) break; case 0x1: lbl_1_data_108[0]++; - var_f31 = lbl_1_data_108[0] / 60.0f; + var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_108[0] = 0; @@ -1029,7 +1030,7 @@ void fn_1_46E0(omObjData *object) fn_1_4EEC(0x18, 0x10); HuAudFXPlay(0x70F); } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->unk24 = (150.0f * var_f31); break; case 0x63: @@ -1083,18 +1084,18 @@ void fn_1_4B44(omObjData *object) switch (lbl_1_data_104[0]) { case 0: lbl_1_data_108[0]++; - var_f31 = lbl_1_data_108[0] / 60.0f; + var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_108[0] = 0; lbl_1_data_104[0]++; } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->unk24 = (150.0f + (-150.0f * var_f31)); break; case 1: lbl_1_data_108[0]++; - var_f31 = (lbl_1_data_108[0] / 30.0f); + var_f31 = (lbl_1_data_108[0] / (0.5f * REFRESH_RATE_F)); if (var_f31 >= 1.0f) { lbl_1_data_108[0] = 0; lbl_1_data_104[0] = 0; @@ -1275,7 +1276,7 @@ void fn_1_57B4(unkStruct6 *arg0) var_r31->unkB8.z *= 0.5f; } } - PSMTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); + MTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z); mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z); mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z); @@ -1287,21 +1288,21 @@ void fn_1_57B4(unkStruct6 *arg0) else { var_r29 = var_r31->unk18[var_r28]; } - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; } if ((arg0->unk2 & 2) != 0) { var_r29 = var_r31->unk1E; - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; } } if ((arg0->unk2 & 4) != 0) { - if (++arg0->unk3E > 0x50) { + if (++arg0->unk3E > (4 * REFRESH_RATE / 3)) { arg0->unk3C = ((arg0->unk3C - 10) < 0) ? 0 : arg0->unk3C - 10; } } @@ -1358,7 +1359,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r22 = NULL; } var_r25 = &arg1->data.base; - PSMTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); + MTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); mtxRotCat(sp68, var_r25->rot.x, var_r25->rot.y, var_r25->rot.z); mtxTransCat(sp68, var_r25->pos.x, var_r25->pos.y, var_r25->pos.z); @@ -1374,7 +1375,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r27 = arg2->unk24[var_r30].unk18[var_r28]; var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; } - PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); + MTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); arg2->unkC[var_r27] = sp38; sp44[var_r28] = arg2->unkC[var_r27]; arg2->unk14[var_r27] = arg2->unk18[var_r23]; @@ -1859,7 +1860,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) temp_r27(temp_r31); } GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp14); + MTXInvXpose(arg1, sp14); GXLoadNrmMtxImm(sp14, 0); fn_1_8AC4(arg1); sp10.r = (temp_r31->unk28->unkB[0] * arg0->unk_58.x); @@ -1874,11 +1875,11 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) GXSetChanMatColor(GX_COLOR0A0, sp10); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->unkC, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->unkC, 12); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->unk14, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->unk14, 12); lbl_1_bss_C = temp_r31->unk3C; if (temp_r31->unk28->unk34 == 0) { GXSetNumTevStages(1); @@ -1892,7 +1893,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) } else { GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8); temp_r29 = &temp_r31->unk2C[temp_r31->unk28->unk38[0]]; fn_1_7D60(temp_r29->unk80, temp_r29, 0); @@ -1973,7 +1974,7 @@ void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - PSMTXCopy(lbl_1_bss_30, sp10); + MTXCopy(lbl_1_bss_30, sp10); mtxScaleCat(sp10, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4); var_r31++; @@ -2049,31 +2050,31 @@ void fn_1_8AC4(Mtx arg0) var_r29 = &Hu3DGlobalLight[0]; sp34 = var_r29->unk_28; if ((var_r29->unk_00 & 0x8000) != 0) { - PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); + MTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } var_f30 = VECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; OSf32tos16(&var_f30, &temp_r31); if (temp_r31 == -0x2710) { - PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); + MTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); return; } C_VECHalfAngle(&sp34, &sp10, &sp28); sp28.x = -sp28.x; sp28.y = -sp28.y; sp28.z = -sp28.z; - PSMTXInvXpose(arg0, sp70); + MTXInvXpose(arg0, sp70); if (temp_r31 == 0x2710) { - PSMTXIdentity(sp40); + MTXIdentity(sp40); } else { VECCrossProduct(&sp28, &sp10, &sp1C); var_f29 = acosf(VECDotProduct(&sp10, &sp28)); - PSMTXRotAxisRad(sp40, &sp1C, var_f29); + MTXRotAxisRad(sp40, &sp1C, var_f29); } - PSMTXConcat(sp40, sp70, spA0); - PSMTXTrans(sp40, 0.5f, 0.5f, 0.0f); - PSMTXConcat(sp40, spA0, lbl_1_bss_30); + MTXConcat(sp40, sp70, spA0); + MTXTrans(sp40, 0.5f, 0.5f, 0.0f); + MTXConcat(sp40, spA0, lbl_1_bss_30); } void fn_1_8D1C(void) @@ -2096,7 +2097,7 @@ void fn_1_8D1C(void) if (var_r30 == 5) { C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); GXSetProjection(sp60, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp30); + MTXIdentity(sp30); GXLoadPosMtxImm(sp30, 0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -2490,9 +2491,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) } else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk54, var_r31++); VECAdd(&sp14, &var_r29->unk54, var_r31++); VECAdd(&sp20, &var_r29->unk54, var_r31++); @@ -2599,7 +2600,7 @@ void fn_1_A390(ModelData *arg0, Mtx arg1) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetNumTevStages(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 5e94301f..5eb6cb5c 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -8,7 +8,11 @@ #include "game/pad.h" #include "math.h" #include "string.h" +#include "version.h" +#ifdef __MWERKS__ +#include "game/audio.h" +#endif // bss omObjData *lbl_1_bss_C0[4]; @@ -78,7 +82,7 @@ void fn_1_AEE4(omObjData *arg0) temp_r31->unk30.x = temp_r31->unk30.y = temp_r31->unk30.z = 0.0f; temp_r31->unk3C.y = 90.0f; temp_r31->unkC = 0; - temp_r31->unkE = 0x78; + temp_r31->unkE = 2 * REFRESH_RATE_F; temp_r31->unk10 = temp_r31->unk12 = temp_r31->unk14 = 0; if (temp_r31->unk8 == 5) { var_f31 = 350.0f; @@ -173,7 +177,7 @@ void fn_1_B3A4(omObjData *arg0) var_r31->unk18.y = 0.0f; var_r31->unk18.z = var_r31->unk24.z + (lbl_1_bss_88[var_r28].z - var_r31->unk24.z) * var_f31; var_r31->unk14++; - var_f31 = var_r31->unk14 / 20.0f; + var_f31 = var_r31->unk14 / (REFRESH_RATE_F / 3.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -181,7 +185,7 @@ void fn_1_B3A4(omObjData *arg0) break; case 7: var_r31->unkC++; - var_f31 = (f32)var_r31->unkC / 40.0f; + var_f31 = (f32)var_r31->unkC / (2.0f * REFRESH_RATE_F / 3); if (var_f31 >= 1.0f) { var_f31 = 1.0f; var_r31->unkC = 0; @@ -239,7 +243,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) switch (lbl_1_bss_74) { case 0: - lbl_1_data_250 -= 0.5f; + lbl_1_data_250 -= (REFRESH_RATE_F / 120); if (lbl_1_data_250 <= 45.0f) { lbl_1_data_250 = 45.0f; lbl_1_bss_74++; @@ -249,7 +253,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (700.0 * sind(lbl_1_data_250)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -258,14 +262,14 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) return; case 1: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } var_f30 = 225.0f; arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68)); arg1->unkC++; - var_f31 = arg1->unkC / 50.0f; + var_f31 = arg1->unkC / (5.0f * REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; @@ -294,7 +298,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) } break; case 2: - lbl_1_data_250++; + lbl_1_data_250 += REFRESH_RATE_F / 60.0f; if (lbl_1_data_250 >= lbl_1_data_0[arg1->unk60]) { lbl_1_data_250 = lbl_1_data_0[arg1->unk60]; lbl_1_bss_74++; @@ -304,12 +308,12 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (arg1->unk5C * sind(lbl_1_data_250)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } arg1->unkC++; - var_f31 = arg1->unkC / 10.0f; + var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f); if (var_f31 < 1.0f) { arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68)); } @@ -320,7 +324,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) return; case 3: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; @@ -332,7 +336,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk30.y = fn_1_927C(arg1->unk6C, var_f30, var_f31); return; case 4: - if (++arg1->unkC > 15) { + if (++arg1->unkC > (REFRESH_RATE / 4)) { lbl_1_bss_74++; } break; @@ -443,7 +447,7 @@ void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1) if (var_f30 < 5.0f) { if (arg1->unk5A != 0) { arg1->unk56++; - var_f31 = arg1->unk56 / 40.0f; + var_f31 = arg1->unk56 / (2.0f * REFRESH_RATE_F / 3.0f); if (var_f31 > 1.0f) { var_f31 = 1.0f; arg1->unk5A = 0; @@ -523,7 +527,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) } } if ((arg1->unk48 & 1) != 0) { - arg1->unk68 -= 1.0f; + arg1->unk68 -= REFRESH_RATE_F / 60.0f; if ((var_r30 != -1) && (lbl_1_data_0[var_r30] > arg1->unk68)) { arg1->unk68 = lbl_1_data_0[var_r30]; arg1->unk4A = var_r30; @@ -531,7 +535,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) } } else if ((arg1->unk48 & 2) != 0) { - arg1->unk68++; + arg1->unk68 += REFRESH_RATE_F / 60.0f; if ((var_r30 != -1) && (lbl_1_data_0[var_r30] < arg1->unk68)) { arg1->unk68 = lbl_1_data_0[var_r30]; arg1->unk4A = var_r30; @@ -545,7 +549,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) arg1->unk48 = arg1->unk48 & ~4; var_f26 = (arg1->unk18.x - arg1->unk24.x); var_f25 = (arg1->unk18.z - arg1->unk24.z); - var_f29 = (180.0 * (atan2(var_f26, var_f25) / M_PI)); + var_f29 = atan2d(var_f26, var_f25); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -659,7 +663,7 @@ void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2) f32 var_f30; f32 var_f31; - var_f28 = 10.0f; + var_f28 = REFRESH_RATE_F / 6.0f; arg0->unk6C = arg1; arg0->unk70 = arg2; var_f31 = ABS(arg1 - arg2); @@ -702,7 +706,7 @@ void fn_1_D34C(omObjData *arg0, unkObjStruct *arg1) arg1->unk6C = 0.0f; arg1->unk48 = 0; lbl_1_data_14[arg1->unk4A] = 0; - if (fn_1_17CC() < 270.0f) { + if (fn_1_17CC() < (4.5f * REFRESH_RATE)) { fn_1_1708(); } fn_1_F4D4(arg1, 15, 4); @@ -793,7 +797,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) } break; case 1: - if (++arg1->unkC > 0xA) { + if (++arg1->unkC > (REFRESH_RATE / 6)) { arg1->unkC = 0; Hu3DMotionSpeedSet(arg0->model[0], 2.0f); if ((arg1->unk6C - arg1->unk68) > 0.0f) { @@ -808,7 +812,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) break; case 2: arg1->unkC++; - var_f31 = arg1->unkC / 30.0f; + var_f31 = arg1->unkC / (0.5f * REFRESH_RATE_F); arg1->unk18.x = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * cosd(lbl_1_data_0[arg1->unk4A])); arg1->unk18.z = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * sind(lbl_1_data_0[arg1->unk4A])); if (var_f31 >= 1.0f) { @@ -825,7 +829,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) arg1->unk30.y = fn_1_927C(arg1->unk68, arg1->unk6C, var_f31); break; case 3: - if (++arg1->unkC > 0x3C) { + if (++arg1->unkC > (s32)REFRESH_RATE_F) { if (fn_1_4E54(arg1->unk4A) == 0) { fn_1_4EEC(7U, 3U); } @@ -852,7 +856,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) break; } if (fn_1_17F4() >= 0) { - if (fn_1_17CC() < 270.0f) { + if (fn_1_17CC() < (4.5f * REFRESH_RATE)) { fn_1_1708(); return; } @@ -874,7 +878,11 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) switch (arg1->unk60) { case 0: lbl_1_bss_84 = lbl_1_data_0[arg1->unk4A]; +#if VERSION_NTSC Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); +#else + Hu3DMotionSet(arg0->model[0], arg0->motion[4]); +#endif HuAudCharVoicePlay(arg1->unk8, 0x125); arg1->unk60++; break; @@ -898,7 +906,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) } break; case 2: - lbl_1_bss_84++; + lbl_1_bss_84 += REFRESH_RATE_F / 60.0f; if (lbl_1_bss_84 >= 135.0f) { lbl_1_bss_84 = 135.0f; arg1->unkE = arg1->unk10 = 0; @@ -910,12 +918,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (arg1->unk5C * sind(lbl_1_bss_84)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } arg1->unkC++; - var_f31 = arg1->unkC / 10.0f; + var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -924,14 +932,14 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) break; case 3: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } var_f30 = 315.0f; arg1->unk30.y = arg1->unk6C + (var_f31 * (var_f30 - arg1->unk6C)); arg1->unk10++; - var_f31 = arg1->unk10 / 50.0f; + var_f31 = arg1->unk10 / (5.0f * REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = arg1->unk10 = 0; @@ -939,8 +947,8 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk60++; } var_f29 = arg1->unk5C + ((700.0f - arg1->unk5C) * var_f31); - arg1->unk18.x = (var_f29 * cos(2.356194490192345)); // atan2(1.0, -1.0) - arg1->unk18.z = (var_f29 * sin(2.356194490192345)); + arg1->unk18.x = var_f29 * cosd(135); + arg1->unk18.z = var_f29 * sind(135); var_f29 = 0.3f; var_f28 = 0.6f; if (var_f31 >= var_f29) { @@ -953,12 +961,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) } break; case 4: - lbl_1_bss_84 -= 0.5f; + lbl_1_bss_84 -= REFRESH_RATE_F / 120; if (lbl_1_bss_84 <= 110.0f) { lbl_1_bss_84 = 110.0f; arg1->unk60 = 0; arg1->unkC = 0; - arg1->unkE = (3 - lbl_1_data_1D8) * 0x1E; + arg1->unkE = (3 - lbl_1_data_1D8) * (s32)(0.5f * REFRESH_RATE_F); arg1->unk14 = 0; arg1->unk3C.y = 90.0f; fn_1_F4D4(arg1, 15, 1); @@ -968,12 +976,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (700.0 * sind(lbl_1_bss_84)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } arg1->unk10++; - var_f31 = arg1->unk10 / 10.0f; + var_f31 = arg1->unk10 / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -1015,7 +1023,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk24.z = (1050.0 * sind(var_f31)); } arg1->unk30.y = 0.0f; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); arg1->unk60++; if (lbl_1_data_1D8 == 0) { fn_1_18E0(); @@ -1025,7 +1033,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) case 2: arg1->unkC++; arg1->unk68 += 40.0f; - var_f31 = arg1->unkC / 90.0f; + var_f31 = arg1->unkC / (1.5f * REFRESH_RATE_F); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unk60++; @@ -1034,7 +1042,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.y = fn_1_93D0(lbl_1_bss_78.y, 1400.0f + lbl_1_bss_78.y, 0.0f, var_f31); arg1->unk18.z = lbl_1_bss_78.z + (var_f31 * (arg1->unk24.z - lbl_1_bss_78.x)); arg1->unk30.x = 180.0f * var_f31; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); break; case 3: fn_1_F4D4(arg1, 15, 8); @@ -1165,7 +1173,7 @@ void fn_1_F228(void) temp_r31->unkA--; temp_r31->unk24 = temp_r31->unk18; temp_r31->unkC = 0; - temp_r31->unkE = 0x1E; + temp_r31->unkE = (s32)(0.5f * REFRESH_RATE_F); temp_r31->unk14 = 0; fn_1_F4D4(temp_r31, 15, 1); } diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 10409258..bc0d7e77 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -21,6 +21,7 @@ #include "game/sprite.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -402,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -871,7 +872,7 @@ void fn_1_3404(Work53E8 *arg0) } arg0->unk94 = 1; arg0->unk8C = arg0->unk0[1] + ((frandf() * arg0->unk0[1]) / 2); - temp_f25 = 1.0f - (lbl_1_bss_1A4 / 3600.0f); + temp_f25 = 1.0f - (lbl_1_bss_1A4 / (60.0f * REFRESH_RATE)); if (0.25f < temp_f25) { arg0->unk8C *= arg0->unk90 / (arg0->unk0[2] * temp_f25); } @@ -1490,7 +1491,7 @@ void fn_1_5C04(omObjData *object) if (2.0f > temp_f23) { temp_r31->unk24.x--; if (0.0f > temp_r31->unk24.x) { - temp_r31->unk24.x = 60.0f; + temp_r31->unk24.x = 1.0f * REFRESH_RATE; if (frandmod(100) > 50) { temp_r31->unk24.y = (frandf() * 220.0f) + 80.0f; } @@ -1618,7 +1619,7 @@ void fn_1_74F4(s32 arg0) work->unk18.z = 0; work->unk38 = 0; work->unk18.y = 2; - work->unk24.x = (frandf() * 180.0f) + 180.0f; + work->unk24.x = (frandf() * (3.0f * REFRESH_RATE)) + (3.0f * REFRESH_RATE); if (arg0) { work->unk18.y = 3; work->unk18.x = 180.0f - (frandf() * 120.0f); @@ -1820,7 +1821,7 @@ void fn_1_8D58(omObjData *object) WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_AA4C; } - lbl_1_bss_24 += (1.0f / 60.0f); + lbl_1_bss_24 += (1.0f / REFRESH_RATE); if (360.0f <= lbl_1_bss_24) { lbl_1_bss_24 -= 360.0f; } @@ -1849,8 +1850,8 @@ void fn_1_8D58(omObjData *object) case 1002: lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28 / 180.0f, &lbl_1_data_40); - if (180.0f <= lbl_1_bss_28) { + fn_1_13DC(lbl_1_bss_28 / (3.0f * REFRESH_RATE), &lbl_1_data_40); + if ((3.0f * REFRESH_RATE) <= lbl_1_bss_28) { object->work[0]++; fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); } @@ -1868,19 +1869,19 @@ void fn_1_8D58(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_19E)) { object->work[0]++; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / 60); + lbl_1_bss_1A4 = 60 * REFRESH_RATE; + lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / REFRESH_RATE); lbl_1_bss_19E = -1; } } break; case 1004: - MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + 59) / 60); + MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_1A4--; if (lbl_1_bss_1A4 < 0) { object->work[0] = 1005; - lbl_1_bss_1A4 = 3600; + lbl_1_bss_1A4 = 60 * REFRESH_RATE; lbl_1_bss_28 = 0; } break; @@ -1912,9 +1913,9 @@ void fn_1_8D58(omObjData *object) case 1006: lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28 / 120.0f, &lbl_1_data_64); - if (120.0f <= lbl_1_bss_28) { - lbl_1_bss_28 = 120.0f; + fn_1_13DC(lbl_1_bss_28 / (2.0f * REFRESH_RATE), &lbl_1_data_64); + if ((2.0f * REFRESH_RATE) <= lbl_1_bss_28) { + lbl_1_bss_28 = 2.0f * REFRESH_RATE; for (i = 0; i < 4; i++) { float temp; if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index b6e60e1e..53dd649a 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -1,3 +1,4 @@ +#include "version.h" #define HUSPR_USE_OLD_DEFS #include "ext_math.h" #include "game/audio.h" @@ -213,6 +214,9 @@ M442StructBssC084 lbl_1_bss_C084[11][11]; M442StructBssC05C lbl_1_bss_C05C[2]; M442StructBss5C lbl_1_bss_5C[0x400]; float lbl_1_bss_20[0xF]; +#if VERSION_PAL +s32 lbl_1_bss_20_pal; +#endif Vec lbl_1_bss_14; s16 lbl_1_bss_12; s16 lbl_1_bss_10; @@ -268,9 +272,9 @@ u32 fn_1_384(void) void fn_1_394(omObjData *object) { lbl_1_bss_11F30 = 0; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; lbl_1_bss_11F1C = 60; - lbl_1_bss_11F1A = 60; + lbl_1_bss_11F1A = REFRESH_RATE; lbl_1_bss_11F18 = -1; lbl_1_bss_11F16 = 0; lbl_1_bss_11EE8 = 0; @@ -286,19 +290,19 @@ void fn_1_448(omObjData *object) switch (lbl_1_bss_11F30) { case 0: - if (lbl_1_bss_11F24 == 60) { + if (lbl_1_bss_11F24 == REFRESH_RATE) { HuAudFXPlay(0x71B); HuAudFXPlay(0x71F); } if (--lbl_1_bss_11F24 == 0) { lbl_1_bss_11F30 = 1; - lbl_1_bss_11F24 = 0x78; + lbl_1_bss_11F24 = 2 * REFRESH_RATE; } break; case 1: if (--lbl_1_bss_11F24 == 0) { lbl_1_bss_11F30 = 2; - lbl_1_bss_11F24 = 0x78; + lbl_1_bss_11F24 = 2 * REFRESH_RATE; } break; case 2: @@ -320,7 +324,7 @@ void fn_1_448(omObjData *object) if (--lbl_1_bss_11F1A == 0) { lbl_1_bss_11F1C -= 1; MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_11F1C); - lbl_1_bss_11F1A = 0x3C; + lbl_1_bss_11F1A = REFRESH_RATE; } if (lbl_1_bss_11F1C == 0 || lbl_1_bss_11EE4 == 0) { lbl_1_bss_11F30 = 5; @@ -337,13 +341,13 @@ void fn_1_448(omObjData *object) if (GWMGRecordGet(4) < lbl_1_bss_11EE8) { GWMGRecordSet(4, lbl_1_bss_11EE8); lbl_1_bss_11F30 = 6; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; lbl_1_bss_12 = MGSeqCreate(0xE, lbl_1_bss_11EE8); fn_1_94AC(1); } else { lbl_1_bss_11F30 = 9; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; } mgRecordExtra = lbl_1_bss_11EE8; } @@ -351,7 +355,7 @@ void fn_1_448(omObjData *object) case 6: if (MGSeqStatGet(lbl_1_bss_12) == 0) { lbl_1_bss_11F30 = 9; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; } break; case 9: @@ -363,7 +367,7 @@ void fn_1_448(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_11F24 = 0xD2; + lbl_1_bss_11F24 = 3.5f * REFRESH_RATE; } break; case 11: @@ -410,6 +414,10 @@ void fn_1_A90(Process *arg0) lbl_1_bss_11F28[0] = lbl_1_bss_11F28[1] = lbl_1_bss_11F28[2] = lbl_1_bss_11F28[3] = -1; lbl_1_bss_11F20 = 0; +#if VERSION_PAL + lbl_1_bss_20_pal = fn_1_90FC(); +#endif + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].iscom != 1) { break; @@ -495,7 +503,11 @@ void fn_1_E88(omObjData *object) memset(var_r30, 0, sizeof(M442MainWork)); var_r30->unk_02 = lbl_1_bss_11F20++; var_r30->unk_04 = GWPlayerCfg[var_r30->unk_02].pad_idx; +#if VERSION_NTSC var_r30->unk_0C = fn_1_90FC(); +#else + var_r30->unk_0C = lbl_1_bss_20_pal; +#endif var_r26 = GWPlayerCfg[var_r30->unk_02].character; var_r30->unk_10 = var_r26; var_r30->unk_12 = GWPlayerCfg[var_r30->unk_02].diff; @@ -740,7 +752,7 @@ void fn_1_1230(omObjData *object) var_r30->unk_06 = var_f29 * sind(var_r30->unk_18); var_r30->unk_07 = var_f29 * -cosd(var_r30->unk_18); - if (++var_r30->unk_7C > 300) { + if (++var_r30->unk_7C > 5 * REFRESH_RATE) { var_r30->unk_00_field2 = 1; var_r30->unk_7C = 0; } @@ -863,18 +875,18 @@ void fn_1_2254(omObjData *object) if (var_f27 > 72.0f) { var_f27 = 72.0f; } - var_f26 = (10.0f * var_f27) / 72.0f; + var_f26 = ((VERSION_NTSC ? 10.0f : 12.0f) * var_f27) / 72.0f; var_r31->unk_24.x = var_f31 * var_f26; var_r31->unk_24.z = var_f30 * var_f26; var_r31->unk_1C = var_f26; object->rot.y = fn_1_85E8(object->rot.y, atan2d(var_r31->unk_24.x, var_r31->unk_24.z), 0.5f); - if (var_r31->unk_1C < 7.5f) { + if (var_r31->unk_1C < (450.0f / REFRESH_RATE)) { var_r29 = 1; - var_f28 = var_r31->unk_1C / 7.5f; + var_f28 = var_r31->unk_1C / (450.0f / REFRESH_RATE); } else { var_r29 = 2; - var_f28 = var_r31->unk_1C / 10.0f; + var_f28 = var_r31->unk_1C / (VERSION_NTSC ? 10.0f : 12.0f); } } else { @@ -935,7 +947,7 @@ void fn_1_2254(omObjData *object) } if ((var_r31->unk_48 >= 0) && (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C < 3)) { lbl_1_bss_C9F8[var_r31->unk_48].unk_0C += 1; - lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 120; + lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 2 * REFRESH_RATE; HuAudFXPlay(0x71C); if (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C == 3) { var_r31->unk_00_field2 = 1; @@ -998,21 +1010,27 @@ void fn_1_2254(omObjData *object) } switch (var_r31->unk_40) { case 0: - var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % 15)) / 15.0f)); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 0xC, 0xC, 0); + var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 4))) / (float)(REFRESH_RATE / 4))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 0xC, 0xC, 0); + } } break; case 1: - var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % 30)) / 30.0f))); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 0xC, 4, 2); + var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 2))) / (0.5f * REFRESH_RATE)))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 0xC, 4, 2); + } } break; case 2: - var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % 60)) / 60.0f))); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 12, 6, 6); + var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % REFRESH_RATE)) / (1.0f * REFRESH_RATE)))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 12, 6, 6); + } } break; } @@ -1273,7 +1291,7 @@ void fn_1_3C20(omObjData *object) Hu3DMotionOverlayReset(object->model[0]); Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); - var_r30->unk_3C = 10; + var_r30->unk_3C = REFRESH_RATE / 5.5; object->func = fn_1_3C94; } @@ -1414,7 +1432,7 @@ void fn_1_4444(s32 arg0) lbl_1_bss_5C[arg0].unk_04 = 0.0f; lbl_1_bss_5C[arg0].unk_08 = 100.0f * (18.0f * ((frand() & 0x1FF) - 256.0f)) / 256; lbl_1_bss_5C[arg0].unk_0C = lbl_1_bss_5C[arg0].unk_00; - lbl_1_bss_5C[arg0].unk_10 = 0.41666666f + (1.6666666f * (frand() & 0xFF) / 256); + lbl_1_bss_5C[arg0].unk_10 = (25.0f / REFRESH_RATE) + ((100.0f / REFRESH_RATE) * (frand() & 0xFF) / 256); lbl_1_bss_5C[arg0].unk_18 = lbl_1_bss_5C[arg0].unk_1A = (frand() & 0x3F) + 0x20; lbl_1_bss_5C[arg0].unk_1C = 0.1f + (0.9f * (frand() & 0xFF) / 256); lbl_1_bss_5C[arg0].unk_20 = 360.0f * (frand() & 0xFF) / 256; @@ -1471,7 +1489,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) var_r29 = Hu3DCamera; C_MTXOrtho(sp100, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp100, GX_ORTHOGRAPHIC); - PSMTXIdentity(spD0); + MTXIdentity(spD0); GXLoadPosMtxImm(spD0, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1511,7 +1529,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far); GXSetProjection(sp40, GX_PERSPECTIVE); - PSMTXInverse(mtx, spA0); + MTXInverse(mtx, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f; PSMTXReorder(spA0, sp70); PSMTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4); @@ -1567,7 +1585,7 @@ void fn_1_54C8(ModelData *model, Mtx mtx) fn_1_8520(&lbl_1_bss_C05C[1], 0); C_MTXOrtho(sp5C, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp5C, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp2C); + MTXIdentity(sp2C); GXLoadPosMtxImm(sp2C, 0); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); GXSetNumTexGens(2); @@ -1716,9 +1734,9 @@ void fn_1_5EDC(ModelData *model, float (*mtx)[4]) s32 var_r30; var_r31 = model->unk_120; - PSMTXInverse(mtx, spC); + MTXInverse(mtx, spC); spC[0][3] = spC[1][3] = spC[2][3] = 0.0f; - PSMTXConcat(mtx, &spC[0], mtx); + MTXConcat(mtx, &spC[0], mtx); GXLoadPosMtxImm(mtx, 0); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetNumTexGens(1); @@ -1965,7 +1983,7 @@ void fn_1_72C4(omObjData *object) Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); var_r31->unk_02 = 1; var_r31->unk_18 = 0.0f; - var_r31->unk_0C = 60; + var_r31->unk_0C = REFRESH_RATE; } break; case 1: @@ -1973,7 +1991,7 @@ void fn_1_72C4(omObjData *object) var_r31->unk_18 += 0.05f; } var_r31->unk_02 = 2; - var_r31->unk_0C = var_r31->unk_0E = 45; + var_r31->unk_0C = var_r31->unk_0E = 0.75 * REFRESH_RATE; var_r31->unk_10 = HuAudFXPlay(lbl_1_data_23C[var_r31->unk_14]); break; case 2: @@ -2070,11 +2088,11 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk34.x = 100.0 * (0.20000000298023224 * sind(var_f31)); var_r31->unk34.y = 0.0f; var_r31->unk34.z = 100.0 * (0.20000000298023224 * cosd(var_f31)); - var_f30 = 1.6666666f + (2.5f * (frand() & 0xFF) / 256); + var_f30 = (100.0f / REFRESH_RATE) + ((150.0f / REFRESH_RATE) * (frand() & 0xFF) / 256); var_f31 = 360.0f * (frand() & 0xFF) / 256; var_r31->unk08.x = var_f30 * sind(var_f31); var_r31->unk08.z = var_f30 * cosd(var_f31); - var_r31->unk08.y = 16.666666f * (frand() & 0xFF) / 256; + var_r31->unk08.y = (1000.0f / REFRESH_RATE) * (frand() & 0xFF) / 256; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; } } @@ -2085,7 +2103,7 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix) var_r28++; } else { - var_r31->unk08.y += -0.50000006f; + var_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.y += var_r31->unk08.y; var_r31->unk34.z += var_r31->unk08.z; @@ -2210,7 +2228,7 @@ void fn_1_8988(omObjData *arg0) case 1: fn_1_8738(0, 1, sind((90.0f * lbl_1_data_250[0]))); if (lbl_1_data_250[0] < 1.0f) { - lbl_1_data_250[0] += 0.016666668f; + lbl_1_data_250[0] += 1.0f / REFRESH_RATE; if (lbl_1_data_250[0] > 1.0f) { lbl_1_data_250[0] = 1.0f; return; @@ -2222,7 +2240,7 @@ void fn_1_8988(omObjData *arg0) case 2: fn_1_8738(1, 2, 1.0 - cosd((90.0f * lbl_1_data_250[1]))); if (lbl_1_data_250[1] < 1.0f) { - lbl_1_data_250[1] += 0.016666668f; + lbl_1_data_250[1] += 1.0f / REFRESH_RATE; if (lbl_1_data_250[1] > 1.0f) { lbl_1_data_250[1] = 1.0f; return; diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index 5b22d7c6..acf8f914 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -495,15 +495,15 @@ void fn_1_1D8C(omObjData *object) lbl_1_bss_4 = HuAudSStreamPlay(0xB); } var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]]; - PSVECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); Center.x = sp8.x; Center.y = sp8.y; Center.z = sp8.z; - PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); CRot.x = sp8.x; CRot.y = sp8.y; CRot.z = 0.0f; @@ -922,7 +922,7 @@ void fn_1_3D78(ModelData *arg0, Mtx arg1) { Mtx spC; - PSMTXIdentity(spC); + MTXIdentity(spC); GXLoadPosMtxImm(spC, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1094,13 +1094,13 @@ void fn_1_4444(Vec *arg0, Vec *arg1) Vec sp10; float var_f30; - PSVECSubtract(arg1, arg0, &sp10); + VECSubtract(arg1, arg0, &sp10); Center = *arg1; var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z); CRot.x = atan2d(sp10.y, sqrtf(var_f30)); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -1116,13 +1116,13 @@ void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z); CRot.x = atan2d(sp24.y, sqrtf(var_f30)); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_488C(float arg8, float arg9, float argA) diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c index 48aef505..d79414dc 100644 --- a/src/REL/m443Dll/map.c +++ b/src/REL/m443Dll/map.c @@ -132,11 +132,11 @@ void fn_1_4D14(omObjData *object) var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]); mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); sp8.z = var_r30->unk_34; - PSMTXMultVec(sp5C, &sp8, &sp14); - PSVECAdd(&var_r30->unk_1C, &sp14, &sp20); + MTXMultVec(sp5C, &sp8, &sp14); + VECAdd(&var_r30->unk_1C, &sp14, &sp20); sp2C[var_r29].y += var_f31; - PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14); - PSVECAdd(&sp20, &sp14, &sp20); + MTXMultVec(sp5C, &sp2C[var_r29], &sp14); + VECAdd(&sp20, &sp14, &sp20); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20); Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index a55b2d0c..9ed45b12 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -355,8 +355,8 @@ void fn_1_5BD4(omObjData *object) var_f30 = 0.0f; } var_f30 = var_f30 * var_f30; - sp8.x = 320.0 + (160.0 * (var_f31 * cos(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); - sp8.y = 240.0 + (120.0 * (var_f31 * sin(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); + sp8.x = 320.0 + 160.0 * (var_f31 * cosd(450.0f * var_f31 + 90.0f * object->work[0])); + sp8.y = 240.0 + 120.0 * (var_f31 * sind(450.0f * var_f31 + 90.0f * object->work[0])); temp_r31->unk100->unk_44 = sp8.x + (var_f30 * (temp_r31->unk100->unk_78 - sp8.x)); temp_r31->unk100->unk_48 = sp8.y + (var_f30 * (temp_r31->unk100->unk_7C - sp8.y)); temp_r31->unk100->unk_40 = 0.01f + ((temp_r31->unk100->unk_80 - 0.01f) * var_f31); @@ -382,7 +382,7 @@ void fn_1_5BD4(omObjData *object) break; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); @@ -428,11 +428,11 @@ void fn_1_6458(omObjData *object) var_r29 = 1; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if ((fn_1_42E4() == 3) && (var_r29 != 0)) { fn_1_43AC(object->work[0]); temp_r31->unk108 = 0; @@ -451,11 +451,11 @@ void fn_1_6674(omObjData *object) temp_r31->unk14 = 0; temp_r31->unk18 = 0.0f; fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if (fn_1_42E4() == 5) { temp_r31->unk1C = 0; temp_r31->unk34 = 0; @@ -468,7 +468,7 @@ void fn_1_6750(omObjData *object) M443DllWorkStruct *temp_r31; temp_r31 = object->data; - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); switch (temp_r31->unk34) { @@ -673,9 +673,9 @@ void fn_1_7130(omObjData *object) for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { temp_r30 = lbl_1_bss_90[var_r28]->data; - PSVECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); + VECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); @@ -685,10 +685,10 @@ void fn_1_7130(omObjData *object) sp8.x = (frandmod(0x3E8) - 0x1F4); sp8.z = (frandmod(0x3E8) - 0x1F4); } - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); - PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); + VECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); } } } @@ -1138,15 +1138,15 @@ void fn_1_8E34(s32 arg0) var_r31 = temp_r30->unk_48; for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.z -= 0.3f; var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.98f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = var_r31->unk40.a * 0.9f; } - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -1166,7 +1166,7 @@ static inline f32 isEven(u32 arg) } } -void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3) +void fn_1_8FFC(u32 arg0, Vec *arg1, f32 arg2, f32 arg3) { f32 temp_f31; f32 var_f29; @@ -1183,10 +1183,10 @@ void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3) var_r31 = temp_r29->unk_48; for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) { - if (var_r31->unk00_s16 != 0) + if (var_r31->unk00 != 0) continue; - var_r31->unk00_s16 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); + var_r31->unk00 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); var_f29 = isEven(var_r27); temp_f31 = 0.030000001f * frandmod(0x3E8); var_r31->unk34.x = arg1->x + var_f29 * (70.0f + (0.07f * frandmod(0x3E8))); diff --git a/src/REL/m444dll/datalist.c b/src/REL/m444dll/datalist.c index 3b4fbbaf..6d2e69f2 100644 --- a/src/REL/m444dll/datalist.c +++ b/src/REL/m444dll/datalist.c @@ -1,5 +1,9 @@ #include "REL/m444dll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s16 lbl_1_bss_199C2[90]; s16 lbl_1_bss_1990E[90]; s16 lbl_1_bss_1990A[2]; @@ -177,4 +181,4 @@ void fn_1_D950(void) espKill(lbl_1_bss_1990A[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 12db5f84..27ef0821 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -128,6 +128,9 @@ void ObjectSetup(void) lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC); omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290); Hu3DBGColorSet(0, 0, 0); +#if VERSION_JP + GWGameStat.language = 0; +#endif HuWinInit(1); BoardStatusCreate(); } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index 167aee6e..a455a9f4 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -20,8 +20,10 @@ #include "REL/m444dll.h" #include "ext_math.h" +#include "version.h" #include "math.h" + s16 lbl_1_bss_198F0[5][2]; Vec lbl_1_bss_D8F0[4096]; Vec lbl_1_bss_18F0[4096]; @@ -844,7 +846,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) if (temp_f31 < 0.0f) { temp_f28 -= temp_f31; temp_f31 = ABS(temp_f31); -#if VERSION > 0 +#if VERSION_REV1 if (temp_f31 == 0.0) { sp1C.x = sp1C.y = sp1C.z = 0.0f; break; @@ -886,7 +888,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } } temp_f31 = VECMag(arg1); -#if VERSION > 0 +#if VERSION_REV1 if (VECMag(&sp1C) == 0.0) { sp1C.x = 0.0f; sp1C.y = 1.0f; @@ -912,7 +914,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) break; } if (temp_f30 < 20.0f -#if VERSION > 0 +#if VERSION_REV1 && !(temp_f30 < 0.000001) #endif ) { @@ -925,7 +927,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } if (temp_r30 == lbl_1_data_3A4[arg2]) { arg1->y += 0.3; -#if VERSION > 0 +#if VERSION_REV1 if (VECMag((Vec *)&arg1) < 0.000001) { arg1->y += 0.3; } diff --git a/src/REL/m444dll/shadow.c b/src/REL/m444dll/shadow.c index 676458bf..9351f3e6 100644 --- a/src/REL/m444dll/shadow.c +++ b/src/REL/m444dll/shadow.c @@ -49,8 +49,8 @@ void fn_1_D9F4(s16 arg0) sp10.y = 1.0f; C_MTXLookAt(sp34, &sp28, &sp10, &sp1C); GXLoadPosMtxImm(sp34, 0); - sp28.x = 1.2000000476837158 * (10000.0 * -sin(var_r31->fov / 2)); - sp28.y = 0.8333333134651184 * (10000.0 * -sin(var_r31->fov / 2)); + sp28.x = 1.2f * (10000.0 * -sin(var_r31->fov / 2)); + sp28.y = (2.5f / 3) * (10000.0 * -sin(var_r31->fov / 2)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(-sp28.x, -sp28.y, -10000.0f); GXPosition3f32(sp28.x, -sp28.y, -10000.0f); diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 67dbe9d3..831d1e69 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -1408,7 +1408,7 @@ void fn_1_557C(void) for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { - HuSprAttrReset(lbl_1_bss_588[i].unk04, j, 4); + HuSprAttrReset(lbl_1_bss_588[i].unk04, j, HUSPR_ATTR_DISPOFF); } } } @@ -1420,7 +1420,7 @@ void fn_1_55F0(void) for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { - HuSprAttrSet(lbl_1_bss_588[i].unk04, j, 4); + HuSprAttrSet(lbl_1_bss_588[i].unk04, j, HUSPR_ATTR_DISPOFF); } } } @@ -1429,7 +1429,7 @@ void fn_1_5664(UnkM445Struct_02 *arg0, s32 arg1) { HuSprBankSet(arg0->unk04, 3, arg1 % 10); HuSprBankSet(arg0->unk04, 4, arg1 / 10); - HuSprAttrReset(arg0->unk04, 4, 4); + HuSprAttrReset(arg0->unk04, 4, HUSPR_ATTR_DISPOFF); } void fn_1_5700(UnkM445Struct_02 *arg0) diff --git a/src/REL/m446Dll/camera.c b/src/REL/m446Dll/camera.c index ef322bf3..8a49a82f 100644 --- a/src/REL/m446Dll/camera.c +++ b/src/REL/m446Dll/camera.c @@ -51,7 +51,7 @@ void fn_1_68DC(void) { f32 temp_f31; if (lbl_1_bss_38 != 0) { - temp_f31 = sin((M_PI * (90.0f * lbl_1_bss_40)) / 180.0); + temp_f31 = sind(90.0f * lbl_1_bss_40); temp_f31 *= temp_f31; lbl_1_bss_8C.x = lbl_1_bss_54.x + (temp_f31 * (lbl_1_bss_70.x - lbl_1_bss_54.x)); lbl_1_bss_8C.y = lbl_1_bss_54.y + (temp_f31 * (lbl_1_bss_70.y - lbl_1_bss_54.y)); @@ -138,4 +138,4 @@ void fn_1_709C(void) { print8(0x20, 0x84, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.x, lbl_1_bss_8C.y, lbl_1_bss_8C.z); print8(0x20, 0x94, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_80.x, lbl_1_bss_80.y, lbl_1_bss_80.z); print8(0x20, 0xA4, 1.5f, "ZOOM : %.2f", lbl_1_bss_7C); -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 28b943a1..fa45170f 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -1,7 +1,7 @@ #include "REL/m446Dll.h" #include "game/hsfman.h" -#include "math.h" +#include "ext_math.h" // data m446Func4 lbl_1_data_150[3] = { NULL, fn_1_2AA8, fn_1_2DA8 }; @@ -229,7 +229,7 @@ void fn_1_20D4(void) temp_r31->unk7C--; } else { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk80)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk80); temp_r31->unk10.x = temp_r31->unk1C.x + (temp_f31 * (temp_r31->unk28.x - temp_r31->unk1C.x)); temp_r31->unk10.y = temp_r31->unk1C.y + (temp_f31 * (temp_r31->unk28.y - temp_r31->unk1C.y)); temp_r31->unk10.z = temp_r31->unk1C.z + (temp_f31 * (temp_r31->unk28.z - temp_r31->unk1C.z)); @@ -243,7 +243,7 @@ void fn_1_20D4(void) } } if (temp_r31->unk74 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk88)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk88); temp_r31->unk34.x = (temp_r31->unk40.x + (temp_f31 * (temp_r31->unk4C.x - temp_r31->unk40.x))); temp_r31->unk34.y = (temp_r31->unk40.y + (temp_f31 * (temp_r31->unk4C.y - temp_r31->unk40.y))); temp_r31->unk34.z = (temp_r31->unk40.z + (temp_f31 * (temp_r31->unk4C.z - temp_r31->unk40.z))); @@ -256,7 +256,7 @@ void fn_1_20D4(void) } } if (temp_r31->unk78 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk90)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk90); temp_r31->unk58 = (temp_r31->unk5C + (temp_f31 * (temp_r31->unk60 - temp_r31->unk5C))); temp_r31->unk90 = (temp_r31->unk90 + temp_r31->unk94); if (temp_r31->unk90 >= 1.0f) { diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 088e6f9f..c57da258 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -2,7 +2,7 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "math.h" +#include "ext_math.h" // bss unkStruct3 *lbl_1_bss_98; @@ -42,7 +42,7 @@ void fn_1_7350(void) do { temp_r31 = var_r30->unk0; if (temp_r31->field00_bit1 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk4C)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk4C); temp_f31 *= temp_f31; temp_r31->unk20.x = (temp_r31->unk2C.x + (temp_f31 * (temp_r31->unk38.x - temp_r31->unk2C.x))); temp_r31->unk20.y = (temp_r31->unk2C.y + (temp_f31 * (temp_r31->unk38.y - temp_r31->unk2C.y))); diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 619176ae..ecf62fa9 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -6,7 +6,7 @@ #include "game/hsfmotion.h" #include "game/objsub.h" #include "game/pad.h" -#include "math.h" +#include "ext_math.h" // cursor.c extern unkStruct7 *m446CursorCreate(s32); @@ -122,7 +122,7 @@ void fn_1_487C(void) lbl_1_data_2DC[temp_r31->unk18](temp_r31); } if (temp_r31->unkB4 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unkC0)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unkC0); temp_f31 *= temp_f31; temp_r31->unk48.x = (temp_r31->unk9C.x + (temp_f31 * (temp_r31->unkA8.x - temp_r31->unk9C.x))); temp_r31->unk48.y = (temp_r31->unk9C.y + (temp_f31 * (temp_r31->unkA8.y - temp_r31->unk9C.y))); @@ -136,7 +136,7 @@ void fn_1_487C(void) } } if (temp_r31->unk98 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unkB8)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unkB8); temp_f31 *= temp_f31; temp_r31->unk54.x = (temp_r31->unk80.x + (temp_f31 * (temp_r31->unk8C.x - temp_r31->unk80.x))); temp_r31->unk54.y = (temp_r31->unk80.y + (temp_f31 * (temp_r31->unk8C.y - temp_r31->unk80.y))); diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index f1de1c13..ea79e3b9 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -240,7 +240,7 @@ s32 fn_1_4088(unkStruct6 *arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4 **arg4, s arg0->unk68 = 0x1E; } if ((arg0->unk68 > 0) && (arg5 == 0)) { - arg0->unk68 = (arg0->unk68 - 1); + arg0->unk68--; } else { var_r28 = (arg0->unk64 / 7) < (arg0->unk60 / 7); diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c index fcd1280b..335a8091 100755 --- a/src/REL/m447dll/block.c +++ b/src/REL/m447dll/block.c @@ -161,13 +161,13 @@ void fn_1_9374(UnkM447Struct_01 *arg0) Mtx sp8; temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; - PSMTXIdentity(temp_r30->unk_F0); - PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXIdentity(temp_r30->unk_F0); + MTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); Hu3DModelPosSet(arg0->unk58[arg0->unk00], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[20], arg0->unk10.x, arg0->unk10.y - 100.0f, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[21], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z + 120.0f * arg0->unk54); @@ -391,7 +391,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_00 == 0) { particle->unk_00 = 1; for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = i * 5; + var_r31->unk00 = i * 5; var_r31->unk02 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.r = sp8.r; @@ -401,7 +401,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix) } } for (i = 0, var_r27 = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 > 0 && --var_r31->unk00_s16 > 0) { + if (var_r31->unk00 > 0 && --var_r31->unk00 > 0) { continue; } if (var_r31->unk02 == 0 && temp_r29->unk04 == 5 && temp_r29->unk10.z > -700.0f) { diff --git a/src/REL/m447dll/stage.c b/src/REL/m447dll/stage.c index b0ac0d86..f1a456fa 100755 --- a/src/REL/m447dll/stage.c +++ b/src/REL/m447dll/stage.c @@ -444,7 +444,7 @@ void fn_1_2DAC(ModelData *model, ParticleData *particle, Mtx matrix) } } for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 < 0) { + if (var_r31->unk00 < 0) { continue; } var_r31->unk34.x += var_r31->unk08.x; diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 8309a194..961f27be 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -20,6 +20,7 @@ #include "dolphin.h" #include "ext_math.h" +#include "version.h" typedef struct { /* 0x00 */ s32 unk00; @@ -200,7 +201,7 @@ void fn_1_4FC(ModelData *model, Mtx matrix) GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); GXSetProjection(sp98, GX_ORTHOGRAPHIC); - PSMTXIdentity(spC8); + MTXIdentity(spC8); GXLoadPosMtxImm(spC8, GX_PNMTX0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -219,11 +220,11 @@ void fn_1_4FC(ModelData *model, Mtx matrix) GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); for (i = 0; i < 0; i++) { s32 sp84[5] = { 0, 1, 1, 0, 1 }; float sp70[5] = { 1.0f, 2.0f, 2.5f, 0.0f, 0.0f }; @@ -453,8 +454,8 @@ void fn_1_1338(omObjData *arg0) sp178 = lbl_1_rodata_100; sp178.x = var_f20; sp178.z = -sp118; - PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp184, &sp178, &sp178); + MTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp184, &sp178, &sp178); var_f20 = sp178.x; sp118 = -sp178.z; } @@ -1431,7 +1432,7 @@ void fn_1_7148(omObjData *arg0) case 1005: lbl_1_bss_84++; if (lbl_1_data_19A != -1) { - MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + 59) / 60); + MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_0--; if (lbl_1_bss_0 <= -30) { MGSeqParamSet(lbl_1_data_19A, 2, -1); @@ -1497,7 +1498,7 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_34 == 0) { var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = i * 2 + 100; + var_r31->unk00 = i * 2 + 100; var_r31->unk40.a = 0; var_r31->unk2C = 0.0f; } @@ -1510,8 +1511,8 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) } var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 == 100) { - var_r31->unk00_s16 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00_s16; + if (var_r31->unk00 == 100) { + var_r31->unk00 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00; var_r31->unk34.x = lbl_1_data_1DC[0] + 75.0 * (rand8() / 255.0); var_r31->unk34.y = lbl_1_data_1DC[1] + 75.0 * (rand8() / 255.0); var_r31->unk34.z = lbl_1_data_1DC[2] + 75.0 * (rand8() / 255.0); @@ -1522,14 +1523,14 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk30 = 0.785f; var_r31->unk2C = 40.0f; } - if (var_r31->unk00_s16 <= 100) { + if (var_r31->unk00 <= 100) { var_r31->unk34.y -= 3.0f; - var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); + var_r31->unk2C = ((var_r31->unk00 > 50) ? (var_r31->unk00 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); } - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { var_r31->unk2C = 0.0f; } - var_r31->unk00_s16 -= (var_r31->unk00_s16 > 0); + var_r31->unk00 -= (var_r31->unk00 > 0); } } diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c new file mode 100644 index 00000000..02d13d79 --- /dev/null +++ b/src/REL/m449Dll/main.c @@ -0,0 +1,2014 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/pad.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/hsfex.h" +#endif + +s32 rand8(void); + +typedef struct UnkCameraStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkCameraStruct; /* size = 0x18 */ + +typedef struct M449DllUnkStruct { + /* 0x00 */ s32 unk_00[4]; + /* 0x10 */ s32 unk_10[4]; +} M449DllUnkStruct; /* size = 0x20 */ + +typedef struct M449DllWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + float unk_3C; + float unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + s32 unk_50; + s32 unk_54; + float unk_58; + float unk_5C; + float unk_60[4]; + float unk_70[4]; + float unk_80[4]; + float unk_90[4]; + float unk_A0[4]; + float unk_B0[4]; + float unk_C0[4]; + float unk_D0[4]; + float unk_E0[4]; + s32 unk_F0[4]; + s32 unk_100[4]; + s32 unk_110[4]; + s32 unk_120[4]; + s32 unk_130[4]; + s32 unk_140[4]; + s32 unk_150[4]; + float unk_160[4]; + float unk_170[4]; + s32 unk_180[4]; + s32 unk_190; + float unk_194[4]; + float unk_1A4[4]; + s32 unk_1B4[4]; + s32 unk_1C4[4]; + char unk1D4[0x30]; + s32 unk_204; + s32 unk_208; + s32 unk_20C; + s32 unk_210; + s32 unk_214; +} M449DllWork; /* size = 0x218 */ + +typedef struct UnkBss64Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ float unk_04[2]; +} UnkBss64Struct; /* size = 0x0C */ + +void fn_1_9A38(omObjData *arg0); + +s32 lbl_1_data_0[0x12] = { + 0x50001A, + 0x500019, + 0x500016, + 0x500016, + 0x500016, + 0x500017, + 0x500017, + 0x500017, + 0x610000, + 0x50001A, + 0x500019, + 0x500016, + 0x500016, + 0x500016, + 0x500017, + 0x500017, + 0x500017, + 0x610000, +}; +s32 lbl_1_data_48[0x12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +s32 lbl_1_data_90[4] + = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x500000, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x85) }; +s32 lbl_1_data_A0[4] = { 0x50001C, 0x50001E, 0x50001D, 0x50001F }; +u8 lbl_1_data_B0[0x38] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 + +}; +char lbl_1_data_E8[4][20] = { + "m432_00-a00", + "m432_00-b00", + "m432_00-player00", + "m432_00-player01", +}; +char lbl_1_data_138[4][20] = { + "m449_01a-a00", + "m449_01a-a1", + "m449_01a-a2", + "m449_01a-a3", +}; +char lbl_1_data_188[4][20] = { + "m449_01a-b00", + "m449_01a-b1", + "m449_01a-b2", + "m449_01a-b3", +}; +char lbl_1_data_1D8[4][20] = { + "m449_01a-c00", + "m449_01a-c1", + "m449_01a-c2", + "m449_01a-c3", +}; +s16 lbl_1_data_228 = -1; +s16 lbl_1_data_22A = -1; +s32 lbl_1_data_22C = -1; +s32 lbl_1_data_230[3] = { -1, -1, -1 }; +s32 lbl_1_data_23C[0xA] = { + 0, + 1, + 0xC2B40000, + 0, + 0x44034000, + 0x43340000, + 0x42B40000, + 0, + 0x44034000, + 0x43340000, +}; + +UnkBss64Struct lbl_1_bss_64[12]; +omObjData *lbl_1_bss_60; +omObjData *lbl_1_bss_5C; +omObjData *lbl_1_bss_58; +omObjData *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +s32 lbl_1_bss_4C; +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; +s32 lbl_1_bss_3C; +Process *lbl_1_bss_38; +s32 lbl_1_bss_34; +s32 lbl_1_bss_30; +s32 lbl_1_bss_2C; +float lbl_1_bss_28; +float lbl_1_bss_24; +float lbl_1_bss_20; +s32 lbl_1_bss_1C; +float lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +static const s32 lbl_1_rodata_10[4] = { 0x8C, 0x6E, 0x3C, 0 }; + +void fn_1_A0(void) +{ + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + Center.x = lbl_1_bss_54->trans.x; + Center.y = lbl_1_bss_54->trans.y; + Center.z = lbl_1_bss_54->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += (30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; +} + +void fn_1_3F8(s32 arg0, Mtx sp8) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + + GXLoadPosMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetZMode(1, GX_LEQUAL, 1); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0x12); + GXPosition3f32(0.0f, 0.0f, 0.0f); + GXColor4u8(0xFF, 0xFF, 0x00, 0xFF); + for (var_r31 = 0; var_r31 < 0x11; var_r31++) { + var_f30 = (var_r30 == 0 ? 1 : -1) * (75.0 * cosd((360.0 * (var_r31 / 16.0)))); + var_f31 = 75.0 * sind((360.0 * (var_r31 / 16.0))); + GXPosition3f32(var_f31, var_r30 * 10, var_f30); + GXColor4u8(0xFF, 0xFF, 0x00, 0xFF); + } + } +} + +void fn_1_758(omObjData *var_r29) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + + M449DllWork *var_r31; + s32 var_r30; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + ModelData *var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + ModelData *var_r19; + s32 var_r18; + s32 var_r17; + + Vec sp3C4[3]; + Vec sp394[4]; + Mtx sp364; + Mtx sp334; + Mtx sp304; + Vec sp2D8; + Vec sp2CC; + Vec sp2C0; + Vec sp2B4; + Vec sp2A8; + void *sp238; + s32 sp234; + s32 sp230; + float sp22C; + float sp228; + float sp224; + s32 sp220; + float sp21C; + float sp218; + s32 sp214; + float sp210; + float sp20C; + float sp208; + s32 sp204; + s32 sp200; + s32 sp1FC; + float sp1F8; + s32 sp1F4; + float sp1F0; + float sp1EC; + float sp1E8; + float sp1E4; + float sp1E0; + float sp1DC; + float sp1D8; + float sp1D4; + float sp1D0; + float sp1CC; + float sp1C8; + float sp1C4; + float sp1C0; + float sp1BC; + float sp1B8; + float sp1B4; + float sp1B0; + float sp1AC; + float sp1A8; + float sp1A4; + float sp1A0; + float sp19C; + float sp198; + float sp194; + float sp190; + float sp18C; + float sp188; + float sp184; + float sp180; + float sp17C; + float sp178; + float sp174; + float sp170; + float sp16C; + float sp168; + float sp164; + s32 sp160; + float sp15C; + float sp158; + s32 sp154; + float sp150; + float sp14C; + float sp148; + float sp144; + float sp140; + float sp13C; + float sp138; + float sp134; + float sp130; + float sp12C; + float sp128; + float sp124; + + { + s32 sp568[4][4][3] = { + { + { 2, 5, 5 }, + { 2, 7, 11 }, + { 0, 4, 7 }, + { 0, 7, 8 }, + }, + { + { 1, 6, 3 }, + { 1, 1, 2 }, + { 8, 2, 3 }, + { 8, 12, 16 }, + }, + { + { 3, 5, 5 }, + { 1, 6, 13 }, + { 1, 3, 4 }, + { 3, 8, 12 }, + }, + { + { 2, 3, 4 }, + { 1, 2, 3 }, + { 0, 1, 3 }, + { 2, 3, 3 }, + }, + }; + s32 sp4A8[4][4][3] = { + { + { 0, 44, 23 }, + { 32, -64, -29 }, + { 0, 52, -60 }, + { 0, -51, 56 }, + }, + { + { -29, 28, -52 }, + { 32, 31, -22 }, + { 0, 20, -49 }, + { 0, 0, 0 }, + }, + { + { 56, 59, -37 }, + { -36, 33, 47 }, + { 27, 39, 28 }, + { 55, -31, 0 }, + }, + { + { -52, -61, 31 }, + { 42, -55, 30 }, + { 0, 22, -24 }, + { -48, 25, 61 }, + }, + }; + + s32 sp3E8[4][4][3] = { + { + { 0, -44, 23 }, + { -32, 64, 29 }, + { 0, -52, -60 }, + { 0, -51, -56 }, + }, + { + { -29, 28, 52 }, + { 32, -31, -22 }, + { 0, 20, 49 }, + { 0, 0, 0 }, + }, + { + { -56, 59, -37 }, + { 36, 33, -47 }, + { -27, 39, -28 }, + { -55, -31, 0 }, + }, + { + { 52, -61, -31 }, + { -42, 55, -30 }, + { 0, -22, -24 }, + { 48, 25, -61 }, + }, + }; + var_r31 = var_r29->data; + sp238 = (&lbl_1_bss_54)[1 - var_r29->work[0]]->data; + var_f29 = 0.0f; + var_f28 = 0.0f; + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp2D8); + for (var_r30 = 0; var_r30 < (lbl_1_data_230[var_r31->unk_190] == 2 ? 2 : 3); var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 4], lbl_1_data_188[var_r30], &sp3C4[var_r30]); + sp3C4[var_r30].x -= sp2D8.x; + sp3C4[var_r30].y -= sp2D8.y; + sp3C4[var_r30].z -= sp2D8.z; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 4], lbl_1_data_1D8[var_r30], &sp394[var_r30]); + sp394[var_r30].x -= sp2D8.x; + sp394[var_r30].y -= sp2D8.y; + sp394[var_r30].z -= sp2D8.z; + } + switch (var_r31->unk_4C) { + case 0: + if (lbl_1_bss_48 == 0x3EC) { + var_r31->unk_4C = 1; + var_r31->unk_14 = var_r31->unk_204 % 4; + var_r31->unk_14 = var_r31->unk_1C = var_r31->unk_30 = var_r31->unk_34 = var_r31->unk_38 = 0; + var_r31->unk_18 = -1; + var_r31->unk_3C = var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 0; + var_r31->unk_208 = var_r31->unk_0C == -1 ? 1 : 0; + if (var_r31->unk_0C == -1) { + var_r17 = lbl_1_data_23C[var_r31->unk_00]; + var_r31->unk_204 = sp568[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + var_r31->unk_20C = sp4A8[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + var_r31->unk_210 = sp3E8[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_90[var_r30] = var_r31->unk_A0[var_r30] = var_r31->unk_B0[var_r30] = var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = var_r31->unk_100[var_r30] = var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] + = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + var_r31->unk_160[var_r30] = var_r31->unk_170[var_r30] = var_r31->unk_150[var_r30] = 0; + } + } + break; + case 1: + if (lbl_1_bss_30 != -1) { + var_r31->unk_4C = 3; + if ((lbl_1_bss_30 == var_r31->unk_00) && (var_r31->unk_F0[0] != 0) && (var_r31->unk_F0[1] != 0) && (var_r31->unk_F0[2] != 0) + && (var_r31->unk_F0[3] != 0)) { + var_r31->unk_54 = 0x1E; + HuAudFXPlay(9); + } + } + else if ((var_r31->unk_190 < 2) && (var_r31->unk_F0[0] != 0) && (var_r31->unk_F0[1] != 0) && (var_r31->unk_F0[2] != 0) + && (var_r31->unk_F0[3] != 0)) { + if (lbl_1_bss_64[3].unk_00 < 2) { + lbl_1_bss_64[3].unk_04[lbl_1_bss_64[3].unk_00] = 0.0f; + lbl_1_bss_64[3].unk_00++; + } + var_r31->unk_4C = 2; + var_r31->unk_50 = 0; + Hu3DMotionSpeedSet(var_r29->model[var_r31->unk_190 + 1], -1.0f); + var_r31->unk_14 = var_r31->unk_1C = var_r31->unk_30 = var_r31->unk_34 = var_r31->unk_38 = 0; + var_r31->unk_18 = -1; + var_r31->unk_3C = var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 0; + var_r31->unk_208 = var_r31->unk_0C == -1 ? 1 : 0; + if (var_r31->unk_0C == -1) { + sp234 = (var_r31->unk_190 + lbl_1_data_23C[var_r31->unk_00] + 1) % 3; + var_r31->unk_204 = sp568[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + var_r31->unk_20C = sp4A8[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + var_r31->unk_210 = sp3E8[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_90[var_r30] = var_r31->unk_A0[var_r30] = var_r31->unk_B0[var_r30] = var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = var_r31->unk_100[var_r30] = var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] + = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + var_r31->unk_160[var_r30] = var_r31->unk_170[var_r30] = var_r31->unk_150[var_r30] = 0; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp230 = -1; + sp22C = 10000.0f; + Hu3DModelObjPosGet(var_r29->model[4], lbl_1_data_138[var_r30], &sp2CC); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp228 = sp2CC.x - var_r31->unk_60[var_r28]; + sp224 = sp2CC.z - var_r31->unk_80[var_r28]; + if ((var_r31->unk_F0[var_r28] == 0) && (sqrtf((sp228 * sp228) + (sp224 * sp224)) < sp22C)) { + sp230 = var_r28; + sp22C = sqrtf((sp228 * sp228) + (sp224 * sp224)); + } + } + var_r31->unk_1B4[sp230] = var_r30; + var_r31->unk_F0[sp230] = 1; + var_r31->unk_194[var_r30] = var_r31->unk_60[var_r30]; + var_r31->unk_1A4[var_r30] = var_r31->unk_80[var_r30]; + } + var_r31->unk_F0[0] = var_r31->unk_F0[1] = var_r31->unk_F0[2] = var_r31->unk_F0[3] = 0; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp220 = var_r30 + 7; + var_r19 = &Hu3DData[var_r29->model[var_r30 + 0xC]]; + Hu3DModelPosSet(var_r29->model[sp220], var_r19->pos.x, 0.0f, var_r19->pos.z); + Hu3DModelAttrReset(var_r29->model[sp220], HU3D_ATTR_DISPOFF); + Hu3DParticleCntSet(var_r29->model[sp220], 0); + } + if (lbl_1_bss_30 == -1) { + var_r31->unk_54 = 0x1E; + HuAudFXPlay(9); + } + } + break; + case 2: + var_r31->unk_50++; + if (var_r31->unk_50 == 0xA) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelAttrSet(var_r29->model[var_r30 + 0xC], HU3D_ATTR_DISPOFF); + } + } + if (var_r31->unk_50 <= 0x3C) { + sp21C = var_r31->unk_50 / 60.0; + for (var_r30 = 0; var_r30 < 4; var_r30++) { } + } + var_r31->unk_50 == 0x3C; + if ((var_r31->unk_50 >= 0) && (var_r31->unk_50 <= 0x3C)) { + sp218 = var_r31->unk_50 / 60.0; + var_f21 = 0.5 + (-0.5 * cosd((180.0f * sp218))); + var_f21 = sp218 < 0.75 ? 0 : 1; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 5], lbl_1_data_138[var_r30], &sp2C0); + var_r31->unk_60[var_r30] = (var_f21 * (sp2C0.x - sp2D8.x)) + (var_r31->unk_194[var_r30] * (1.0f - var_f21)); + var_r31->unk_80[var_r30] = (var_f21 * (sp2C0.z - sp2D8.z)) + (var_r31->unk_1A4[var_r30] * (1.0f - var_f21)); + var_r31->unk_70[var_r30] = 300.0 * sind((180.0f * sp218)); + var_r31->unk_70[var_r30] = -25.0f * (1.0f - var_f21); + } + } + if (var_r31->unk_50 == 0x3C) { + Hu3DMotionSpeedSet(var_r29->model[var_r31->unk_190 + 1], 1.0f); + Hu3DModelAttrSet(var_r29->model[var_r31->unk_190 + 1], HU3D_ATTR_DISPOFF); + var_r31->unk_190++; + Hu3DModelAttrReset(var_r29->model[var_r31->unk_190 + 1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r29->model[var_r31->unk_190 + 1], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(var_r29->model[var_r31->unk_190 + 1], 0.0f); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp214 = var_r30 + 7; + var_r24 = &Hu3DData[var_r29->model[var_r30 + 0xC]]; + Hu3DModelPosSet(var_r29->model[sp214], var_r24->pos.x, var_r24->pos.y, var_r24->pos.z); + Hu3DModelAttrReset(var_r29->model[sp214], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r29->model[var_r30 + 0xC], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(var_r29->model[var_r30 + 0xC], 0.0f, 0.0f, 0.0f); + Hu3DParticleCntSet(var_r29->model[sp214], 0); + } + } + if ((var_r31->unk_50 >= 0x3E) && (var_r31->unk_50 <= 0x78)) { + sp210 = (var_r31->unk_50 - 0x3E) / 58.0; + sp20C = sp210 < 0.25 ? (sp210 / 0.25) : 1.0; + sp20C = var_r31->unk_50 < 0x46 ? 0 : 1; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelScaleSet(var_r29->model[var_r30 + 0xC], sp20C, sp20C, sp20C); + } + } + if (var_r31->unk_50 == 0x78) { + var_r31->unk_4C = 1; + var_r31->unk_50 = 0; + } + break; + case 3: + break; + } + if (var_r31->unk_54 > 0) { + var_f26 = 1.0 - ((var_r31->unk_54 - 1) / 30.0); + sp204 = var_r31->unk_190 + 5 + (var_r31->unk_00 * 9); + var_f26 = (0.5 * var_f26) + (0.5 * (1.0f - ((1.0f - var_f26) * (1.0f - var_f26)))); + sp208 = var_f26 < 0.75 ? (var_f26 / 0.75) : 1.0; + var_f26 = 1.0f - ((1.0f - var_f26) * (1.0f - var_f26)); + sp208 = 1.0f - ((1.0f - sp208) * (1.0f - sp208)); + if (var_r31->unk_54 == 0x1E) { + espDispOn(lbl_1_data_48[sp204]); + espDispOff(lbl_1_data_48[var_r31->unk_190 + 2 + (var_r31->unk_00 * 9)]); + } + espTPLvlSet(lbl_1_data_48[sp204], sp208); + espScaleSet(lbl_1_data_48[sp204], 4.0f - (3.0f * var_f26), 4.0f - (3.0f * var_f26)); + var_r31->unk_54--; + } + if (var_r31->unk_4C == 1) { + if (var_r31->unk_0C != -1) { + var_f29 = HuPadStkX[var_r31->unk_0C]; + var_f28 = HuPadStkY[var_r31->unk_0C]; + var_f29 /= 40.0f; + var_f28 /= 40.0f; + } + else if (var_r31->unk_208 != 0) { + var_f29 = 3.0f * -var_r31->unk_58; + var_f28 = -3.0f * -var_r31->unk_5C; + } + else if ((var_r31->unk_0C == -1) && ((var_r31->unk_20C != 0) || (var_r31->unk_210 != 0))) { + var_f29 = var_r31->unk_20C < 0 ? -1 : (var_r31->unk_20C > 0 ? 1 : 0); + var_f28 = var_r31->unk_210 < 0 ? -1 : (var_r31->unk_210 > 0 ? 1 : 0); + var_r31->unk_20C = var_r31->unk_20C + (var_r31->unk_20C < 0 ? 1 : (var_r31->unk_20C > 0 ? -1 : 0)); + var_r31->unk_210 = var_r31->unk_210 + (var_r31->unk_210 < 0 ? 1 : (var_r31->unk_210 > 0 ? -1 : 0)); + } + else if ((var_r31->unk_F0[0] == 0) || (var_r31->unk_F0[1] == 0) || (((var_r31->unk_F0[2] == 0) != 0)) || (var_r31->unk_F0[3] == 0)) { + if (var_r31->unk_F0[var_r31->unk_14] != 0) { + var_r23 = -1; + sp1FC = var_r31->unk_F0[3] + (var_r31->unk_F0[0] + var_r31->unk_F0[1] + var_r31->unk_F0[2]); + for (sp200 = 0; sp200 <= (sp1FC == 1 ? ((var_r31->unk_204 / 4) % 3) : (sp1FC == 2 ? (((var_r31->unk_204 / 4) / 3) % 2) : 0)); + sp200++) { + for (var_r23++; var_r31->unk_F0[var_r23] != 0; var_r23++) { } + } + var_r31->unk_14 = var_r23; + } + var_r25 = var_r31->unk_14; + if (var_r25 != -1) { + var_f30 = var_r31->unk_60[var_r25] + var_r31->unk_90[var_r25]; + var_f31 = var_r31->unk_80[var_r25] + var_r31->unk_B0[var_r25]; + var_r22 = -1; + sp1F8 = -1.0f; + sp1F4 = var_r31->unk_1C; + if (var_r31->unk_100[var_r31->unk_18] != 0) { + var_r31->unk_1C = 0; + var_r31->unk_18 = -1; + } + if (var_r31->unk_1C != 0) { + for (var_r26 = 0; var_r26 < 4; var_r26++) { + sp1F0 = var_r31->unk_60[var_r26] + var_r31->unk_90[var_r26]; + sp1EC = var_r31->unk_80[var_r26] + var_r31->unk_B0[var_r26]; + if (var_r31->unk_F0[var_r26] == 0) { + if (var_r31->unk_28 != 0.0f && !(var_r31->unk_28 < 0.0f ? (sp1F0 < var_r31->unk_20) : (sp1F0 > var_r31->unk_20))) { } + else { + if (var_r31->unk_2C != 0.0f + && !(var_r31->unk_2C < 0.0f ? (sp1EC < var_r31->unk_24) : (sp1EC > var_r31->unk_24))) { } + else { + var_r31->unk_1C = 0; + var_r31->unk_14 = var_r26; + var_r25 = var_r26; + var_f30 = sp1F0; + var_f31 = sp1EC; + } + } + } + } + } + switch (lbl_1_data_230[var_r31->unk_190]) { + case 0: + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 == 1) && (var_f31 > 0.0f) && (var_f30 < 0.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 == 1) && (var_f31 > 100.0f) && (var_f30 < 150.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_1C == 0) && (sp1F4 == 1)) { + var_r31->unk_1C = 2; + var_r31->unk_24 = -50.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = -1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_f30 < -100.0f) && (var_f31 < -120.0f)) { + var_r31->unk_1C = 3; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0) && (var_f30 < 0.0f) + && (var_f31 < 0.0f)) { + var_r31->unk_1C = 4; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0) && (sp1F4 == 3)) { + var_r31->unk_1C = 5; + var_r31->unk_20 = 190.0f; + var_r31->unk_24 = 190.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_1C == 0) && (sp1F4 == 5) && (var_r31->unk_18 == 3)) { + var_r31->unk_1C = 6; + var_r31->unk_20 = 0.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 0.0f; + } + break; + case 1: + if ((var_r31->unk_18 == 3) && (var_f31 > 75.0f) && ((var_f30 < -150.0f) || (var_f30 > 150.0f))) { + var_r31->unk_1C = 1; + var_r31->unk_24 = 75.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = -1.0f; + } + if ((var_r31->unk_100[1] != 0) && (var_f31 < -120.0f) && (var_f30 > 100.0f)) { + var_r31->unk_1C = 2; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_18 == 2) && (var_r31->unk_100[0] != 0) && (var_f31 < -120.0f) && (var_f30 < -120.0f)) { + var_r31->unk_1C = 3; + if (var_f30 < var_f31) { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = -80.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_24 = -150.0f; + var_r31->unk_20 = -80.0f; + var_r31->unk_2C = -1.0f; + var_r31->unk_28 = 1.0f; + } + } + break; + case 2: + if ((var_r31->unk_100[3] != 0) && (var_f31 > 100.0f) && (var_f30 < -75.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = -75.0f; + var_r31->unk_24 = 175.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[3] != 0) && (var_f31 < -50.0f) && (var_f30 < -150.0f)) { + var_r31->unk_1C = 2; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = -25.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_18 == 2) && (var_r31->unk_100[2] != 0) && ((var_f30 + var_f31) > 300.0f)) { + var_r31->unk_1C = 3; + if (var_f30 > var_f31) { + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 80.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = -1.0f; + } + else { + var_r31->unk_24 = 200.0f; + var_r31->unk_20 = 80.0f; + var_r31->unk_2C = 1.0f; + var_r31->unk_28 = -1.0f; + } + } + if ((var_r31->unk_18 == 1) && (var_r31->unk_100[2] != 0) && ((var_f30 - var_f31) > 300.0f)) { + var_r31->unk_1C = 4; + if (var_f30 > -var_f31) { + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = -80.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_24 = -200.0f; + var_r31->unk_20 = 80.0f; + var_r31->unk_2C = -1.0f; + var_r31->unk_28 = -1.0f; + } + } + break; + case 3: + if ((var_f31 > 200.0f) && (var_f30 > 200.0f) && (var_r31->unk_18 != 3)) { + var_r31->unk_1C = 2; + if (var_r31->unk_18 == 2) { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = -150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = -1.0f; + } + } + if ((var_f31 > 0.0f) && (var_f30 > 0.0f) && (!(var_f30 < 100.0f) || !(var_f31 < 100.0f)) && (var_r31->unk_18 != 3) + && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 200.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 > 200.0f) && (var_f30 < -200.0f) && (var_r31->unk_18 != 2)) { + var_r31->unk_1C = 4; + if (var_r31->unk_18 == 3) { + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = -150.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = -1.0f; + } + } + if ((var_f31 > 0.0f) && (var_f30 < 0.0f) && (var_r31->unk_18 != 2) && (var_r31->unk_1C == 0) + && ((var_r31->unk_100[0] != 0) || (var_r31->unk_18 == 3))) { + var_r31->unk_1C = 3; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = 200.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_f30 > 200.0f) && (var_r31->unk_18 == 3) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 9; + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 0.0; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_f30 < -200.0f) && (var_r31->unk_18 == 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 8; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 7; + var_r31->unk_24 = -200.0f; + var_r31->unk_2C = -1.0f; + if (var_r31->unk_18 == 3) { + var_r31->unk_20 = 200.0f; + var_r31->unk_28 = 1.0f; + } + else { + var_r31->unk_20 = -200.0f; + var_r31->unk_28 = -1.0f; + } + } + if ((var_f31 < 0.0f) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 6; + var_r31->unk_24 = -200.0f; + var_r31->unk_28 = 0.0; + var_r31->unk_2C = -1.0f; + } + if ((var_f31 < -175.0f) && (var_f30 > 175.0f) && ((var_r31->unk_18 == 0) || (var_r31->unk_18 == 2)) + && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 0xA; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = -200.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = -1.0f; + } + break; + } + if (var_r31->unk_18 == -1) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r31->unk_100[var_r30] == 0) + && ((sp1E8 = sp394[var_r30].x - var_r31->unk_60[var_r25], sp1E4 = sp394[var_r30].z - var_r31->unk_80[var_r25], + ((var_r22 == -1) != 0)) + || (((sp1E8 * sp1E8) + (sp1E4 * sp1E4)) < sp1F8))) { + var_r22 = var_r30; + sp1F8 = (sp1E8 * sp1E8) + (sp1E4 * sp1E4); + } + } + if (var_r22 != -1) { + var_r31->unk_18 = var_r22; + } + } + else { + var_r22 = var_r31->unk_18; + } + if ((var_r31->unk_18 != -1) && (var_r31->unk_1C == 0)) { + if (((var_r31->unk_58 < -0.95) || (var_r31->unk_58 > 0.95)) && ((var_r31->unk_5C < -0.95) || (var_r31->unk_5C > 0.95)) + && (var_r31->unk_34 > 0xF) && (var_r31->unk_38 < 0x3C)) { + var_f29 = var_f30 < sp394[var_r31->unk_18].x ? 1 : (var_f30 > sp394[var_r31->unk_18].x ? -1 : 0); + var_f28 = var_f31 < sp394[var_r31->unk_18].z ? 1 : (var_f31 > sp394[var_r31->unk_18].z ? -1 : 0); + } + else { + var_f29 = var_f30 < sp394[var_r31->unk_18].x ? 1 : (var_f30 > sp394[var_r31->unk_18].x ? -1 : 0); + var_f28 = var_f31 < sp394[var_r31->unk_18].z ? 1 : (var_f31 > sp394[var_r31->unk_18].z ? -1 : 0); + } + } + else if (var_r31->unk_1C != 0) { + if (var_r31->unk_28 != 0.0f && !(var_r31->unk_28 < 0.0f ? (var_f30 < var_r31->unk_20) : (var_f30 > var_r31->unk_20))) { + var_f29 = var_r31->unk_28 < 0.0f ? (var_f30 > var_r31->unk_20 ? -1 : 0) : (var_f30 < var_r31->unk_20 ? 1 : 0); + } + else { + var_f29 = var_r31->unk_58 < -0.1 ? 1.0f : (var_r31->unk_58 > 0.1 ? -1.0f : (-10.0f * var_r31->unk_58)); + } + if (var_r31->unk_2C != 0.0f && (var_r31->unk_2C < 0.0f ? (var_f31 < var_r31->unk_24) : (var_f31 > var_r31->unk_24)) == 0) { + var_f28 = var_r31->unk_2C < 0.0f ? (var_f31 > var_r31->unk_24 ? -1 : 0) : (var_f31 < var_r31->unk_24 ? 1 : 0); + } + else { + var_f28 = var_r31->unk_5C < -0.1 ? 1.0f : (var_r31->unk_5C > 0.1 ? -1.0f : (-10.0f * var_r31->unk_5C)); + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp1E0 = var_r31->unk_60[var_r30] - var_r31->unk_160[var_r30]; + sp1DC = var_r31->unk_80[var_r30] - var_r31->unk_170[var_r30]; + if (((sp1E0 * sp1E0) + (sp1DC * sp1DC)) < 9.0f) { + var_r31->unk_150[var_r30]++; + } + else { + var_r31->unk_160[var_r30] = var_r31->unk_60[var_r30]; + var_r31->unk_170[var_r30] = var_r31->unk_80[var_r30]; + var_r31->unk_150[var_r30] = 0; + } + } + if (var_r31->unk_44 <= 0) { + var_r31->unk_3C = var_f29; + var_r31->unk_40 = var_f28; + var_r31->unk_44 = var_r31->unk_48; + var_r31->unk_48 -= (var_r31->unk_48 >= (var_r31->unk_48 / 10) ? (var_r31->unk_48 / 10) : 0); + } + else { + var_f29 = var_r31->unk_3C; + var_f28 = var_r31->unk_40; + var_r31->unk_44--; + } + var_f29 *= 0.5; + var_f28 *= -0.5; + } + } + if (((var_f29 * var_f29) + (var_f28 * var_f28)) > 1.0f) { + sp1D8 = sqrt((var_f29 * var_f29) + (var_f28 * var_f28)); + var_f29 *= 1.0f / sp1D8; + var_f28 *= 1.0f / sp1D8; + } + if ((((var_f29 * var_f29) + (var_f28 * var_f28)) < 0.0625) && (var_r31->unk_208 == 0)) { + var_f29 = 0.0f; + var_f28 = 0.0f; + } + } + sp1D4 = var_r31->unk_58; + sp1D0 = var_r31->unk_5C; + var_r31->unk_58 = var_r31->unk_58 + (var_f29 / 3.0f); + var_r31->unk_58 = var_r31->unk_58 < -1.0f ? -1.0f : (var_r31->unk_58 > 1.0f ? 1.0f : var_r31->unk_58); + var_r31->unk_5C = var_r31->unk_5C + (-var_f28 / 3.0f); + var_r31->unk_5C = var_r31->unk_5C < -1.0f ? -1.0f : (var_r31->unk_5C > 1.0f ? 1.0f : var_r31->unk_5C); + var_r31->unk_208 = ((var_r31->unk_58 == 0.0f) && (var_r31->unk_5C == 0.0f)) ? 0 : var_r31->unk_208; + if ((lbl_1_bss_48 == 0x3EC) && ((sp1D4 != var_r31->unk_58) || (sp1D0 != var_r31->unk_5C))) { + if (var_r31->unk_214 == -1) { + var_r31->unk_214 = HuAudFXPlay(0x7A6); + } + } + else { + if (var_r31->unk_214 != -1) { + HuAudFXStop(var_r31->unk_214); + } + var_r31->unk_214 = -1; + } + if (lbl_1_bss_48 >= 0x3ED) { + sp1CC = 0.666f; + sp1C8 = 0.9f; + var_r31->unk_5C = var_r31->unk_5C > sp1CC + ? ((var_r31->unk_5C * sp1C8) + (sp1CC * (1.0f - sp1C8))) + : (var_r31->unk_5C < -sp1CC ? ((var_r31->unk_5C * sp1C8) - (sp1CC * (1.0f - sp1C8))) : var_r31->unk_5C); + } + if (var_r31->unk_4C != 2) { + for (var_r18 = 0; var_r18 < 2; var_r18++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + if (var_r31->unk_F0[var_r30] == 0) { + var_r31->unk_90[var_r30] += 0.13888888888888887 * var_r31->unk_58 * (var_r31->unk_208 != 0 ? 0 : 1) + * (var_r31->unk_70[var_r30] >= 0.0f ? 1.0f : (1.0f - (var_r31->unk_70[var_r30] / -25.0f))); + var_r31->unk_B0[var_r30] += 0.13888888888888887 * var_r31->unk_5C * (var_r31->unk_208 != 0 ? 0 : 1) + * (var_r31->unk_70[var_r30] >= 0.0f ? 1.0f : (1.0f - (var_r31->unk_70[var_r30] / -25.0f))); + var_r31->unk_70[var_r30] += var_r31->unk_A0[var_r30]; + var_r31->unk_38 += var_r31->unk_38 < 0x8000; + var_f27 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + sp1C4 = var_r31->unk_90[var_r30]; + sp1C0 = var_r31->unk_B0[var_r30]; + if (var_f27 > 0.0f) { + if (var_f27 > 7.59375) { + var_r31->unk_90[var_r30] *= 7.5 / var_f27; + var_r31->unk_B0[var_r30] *= 7.5 / var_f27; + } + else { + var_r31->unk_90[var_r30] *= (var_f27 < 0.09375 ? 0.0 : (var_f27 - 0.09375)) / var_f27; + var_r31->unk_B0[var_r30] *= (var_f27 < 0.09375 ? 0.0 : (var_f27 - 0.09375)) / var_f27; + } + } + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_f27 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp1BC = var_r31->unk_60[var_r30] - var_r31->unk_60[var_r28]; + sp1B8 = var_r31->unk_80[var_r30] - var_r31->unk_80[var_r28]; + var_f24 = sqrtf((sp1BC * sp1BC) + (sp1B8 * sp1B8)); + if ((var_r30 != var_r28) && (var_r31->unk_F0[var_r28] == 0) && (var_f24 > 0.0f) && (var_f24 < 62.5)) { + var_f20 = sp1BC / var_f24; + var_f19 = sp1B8 / var_f24; + sp1B4 = var_r31->unk_90[var_r30]; + sp1B0 = var_r31->unk_B0[var_r30]; + var_f18 = (var_r31->unk_90[var_r30] + var_r31->unk_90[var_r28]) / 2.0; + sp1A4 = (var_r31->unk_B0[var_r30] + var_r31->unk_B0[var_r28]) / 2.0; + sp1AC = (var_f20 * -(var_r31->unk_90[var_r30] - var_f18)) - (var_f19 * (var_r31->unk_B0[var_r30] - sp1A4)); + sp1A8 = (-var_f20 * -(var_r31->unk_90[var_r28] - var_f18)) - (-var_f19 * (var_r31->unk_B0[var_r28] - sp1A4)); + var_r31->unk_60[var_r30] += var_f20 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_80[var_r30] += var_f19 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_60[var_r28] -= var_f20 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_80[var_r28] -= var_f19 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_90[var_r30] = var_f18 + (0.75 * ((var_r31->unk_90[var_r30] - var_f18) + (2.0f * var_f20 * sp1AC))); + var_r31->unk_B0[var_r30] = sp1A4 + (0.75 * ((var_r31->unk_B0[var_r30] - sp1A4) + (2.0f * var_f19 * sp1AC))); + var_r31->unk_90[var_r28] = var_f18 + (0.75 * ((var_r31->unk_90[var_r28] - var_f18) + (2.0f * -var_f20 * sp1A8))); + var_r31->unk_B0[var_r28] = sp1A4 + (0.75 * ((var_r31->unk_B0[var_r28] - sp1A4) + (2.0f * -var_f19 * sp1A8))); + var_r31->unk_110[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (var_r31->unk_1C4[var_r28] > 0xF) && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + var_r31->unk_1C4[var_r28] = 0; + } + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp1A0 = var_r31->unk_60[var_r30] - var_r31->unk_60[var_r28]; + sp19C = var_r31->unk_80[var_r30] - var_r31->unk_80[var_r28]; + sp198 = sqrtf((sp1A0 * sp1A0) + (sp19C * sp19C)); + if ((var_r31->unk_F0[var_r28] != 0) && (var_f27 > 0.0f)) { + if (sp198 < 62.5) { + sp194 = sp1A0 / sp198; + sp190 = sp19C / sp198; + sp18C = var_r31->unk_90[var_r30]; + sp188 = var_r31->unk_B0[var_r30]; + sp184 = (-sp18C * sp194) - (sp188 * sp190); + var_r31->unk_60[var_r30] += sp194 * (0.1 + (62.5 - sp198)); + var_r31->unk_80[var_r30] += sp190 * (0.1 + (62.5 - sp198)); + var_r31->unk_90[var_r30] = 0.75 * (sp18C + (2.0f * sp194 * sp184)); + var_r31->unk_B0[var_r30] = 0.75 * (sp188 + (2.0f * sp190 * sp184)); + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_r31->unk_34 = var_r31->unk_30 == (var_r28 + 1) ? (var_r31->unk_34 + 1) : 1; + var_r31->unk_30 = var_r28 + 1; + var_r31->unk_38 = 0; + var_r31->unk_120[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (var_r31->unk_1C4[var_r28] > 0xF) && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + var_r31->unk_1C4[var_r28] = 0; + } + } + } + for (var_r28 = 0; var_r28 < (lbl_1_data_230[var_r31->unk_190] == 2 ? 2 : 3); var_r28++) { + sp180 = var_r31->unk_60[var_r30] - sp3C4[var_r28].x; + sp17C = var_r31->unk_80[var_r30] - sp3C4[var_r28].z; + sp178 = sqrtf((sp180 * sp180) + (sp17C * sp17C)); + if ((sp178 > 0.0f) && (sp178 < 62.5)) { + sp174 = sp180 / sp178; + sp170 = sp17C / sp178; + sp16C = var_r31->unk_90[var_r30]; + sp168 = var_r31->unk_B0[var_r30]; + sp164 = (-sp16C * sp174) - (sp168 * sp170); + var_r31->unk_60[var_r30] += sp174 * (0.1 + (62.5 - sp178)); + var_r31->unk_80[var_r30] += sp170 * (0.1 + (62.5 - sp178)); + var_r31->unk_90[var_r30] = 0.75 * (sp16C + (2.0f * sp174 * sp164)); + var_r31->unk_B0[var_r30] = 0.75 * (sp168 + (2.0f * sp170 * sp164)); + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_r31->unk_34 = var_r31->unk_30 == (var_r28 + 5) ? (var_r31->unk_34 + 1) : 1; + var_r31->unk_30 = var_r28 + 5; + var_r31->unk_38 = 0; + var_r31->unk_130[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + } + if (((var_r31->unk_60[var_r30] - 37.5) < -250.0) || ((37.5 + var_r31->unk_60[var_r30]) > 250.0)) { + var_r31->unk_60[var_r30] = (var_r31->unk_60[var_r30] - 37.5) < -250.0 ? -212.5 : 212.5; + var_r31->unk_90[var_r30] *= -0.75; + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + if (((var_r31->unk_80[var_r30] - 37.5) < -250.0) || ((37.5 + var_r31->unk_80[var_r30]) > 250.0)) { + var_r31->unk_80[var_r30] = (var_r31->unk_80[var_r30] - 37.5) < -250.0 ? -212.5 : 212.5; + var_r31->unk_B0[var_r30] *= -0.75; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + var_r21 = 0; + for (var_r21 = 0; var_r21 < 0x10; var_r21++) { + var_r31->unk_1C4[var_r21]++; + } + sp160 = 0; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp15C = var_r31->unk_60[var_r30] - sp394[var_r28].x; + sp158 = ((sp15C == 0.0f) && (var_r31->unk_80[var_r30] == sp394[var_r28].z)) + ? 1e-10 + : (var_r31->unk_80[var_r30] - sp394[var_r28].z); + var_f23 = sqrtf((sp15C * sp15C) + (sp158 * sp158)); + sp154 = 0; + for (var_r20 = 0; var_r20 < 4; var_r20++) { + if (((var_r31->unk_110[var_r30] & (1 << var_r20)) != 0) && (var_r31->unk_130[var_r20] != 0)) { + sp154 = 1; + } + } + if ((var_r31->unk_0C != -1) && (lbl_1_data_230[var_r31->unk_190] == 1) && (var_r28 == 3)) { + if (var_r31->unk_180[var_r30] > 0) { + var_f23 = 1000.0f; + var_r31->unk_180[var_r30]--; + } + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if ((var_r31->unk_00 == 0) && ((HuPadBtn[0] & PAD_BUTTON_B) != 0)) { + OSReport("%d | %d\n%d | %d\n%f,%f\n%f,%f\n", var_r31->unk_110[var_r30], 1 << var_r27, + var_r31->unk_110[var_r27], 1 << var_r30, var_r31->unk_60[var_r30], var_r31->unk_80[var_r30], + var_r31->unk_60[var_r27], var_r31->unk_80[var_r27]); + } + if ((((var_r31->unk_110[var_r30] & (1 << var_r27)) != 0) || ((var_r31->unk_110[var_r27] & (1 << var_r30)) != 0)) + && (var_r31->unk_80[var_r27] > var_r31->unk_80[var_r30]) && (var_r31->unk_60[var_r30] < 100.0f) + && (var_r31->unk_60[var_r30] > -100.0f) && (var_r31->unk_80[var_r30] > 150.0f) + && (var_r31->unk_60[var_r27] < 100.0f) && (var_r31->unk_60[var_r27] > -100.0f) + && (var_r31->unk_80[var_r27] > 150.0f)) { + var_f23 = 1000.0f; + var_r31->unk_180[var_r30] = 3; + } + } + } + if ((sp154 == 0) && (var_f23 < 37.5)) { + sp150 = sp15C / var_f23; + sp14C = sp158 / var_f23; + sp148 = 37.5 * sind((90.0 * (-var_r31->unk_70[var_r30] / 37.5))); + sp144 = var_r31->unk_70[var_r30] <= -37.5 ? 90.0 : (asind(1.0 + (var_r31->unk_70[var_r30] / 37.5))); + var_r31->unk_140[var_r30] = 1 << var_r28; + sp140 = sqrtf((var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30]) + + ((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + + (var_r31->unk_A0[var_r30] * var_r31->unk_A0[var_r30]))); + sp13C = sqrtf( + (var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + sp138 = atan2d(var_r31->unk_A0[var_r30], sp13C); + var_r31->unk_90[var_r30] -= 0.375 * sp150; + var_r31->unk_B0[var_r30] -= 0.375 * sp14C; + var_r31->unk_60[var_r30] -= 0.375 * sp150; + var_r31->unk_80[var_r30] -= 0.375 * sp14C; + if (var_r31->unk_70[var_r30] < (-25.0 * sind((90.0 * (1.0 - (var_f23 / 37.5)))))) { + var_r31->unk_70[var_r30] = -25.0 * sind((90.0 * (1.0 - (var_f23 / 37.5)))); + } + if ((var_r31->unk_70[var_r30] <= -24.5) && (var_f23 < 0.75)) { + var_r31->unk_70[var_r30] = -25.0f; + var_r31->unk_A0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = 1; + var_r31->unk_100[var_r28] = 1; + var_r31->unk_48 = lbl_1_rodata_10[var_r31->unk_10]; + if (lbl_1_bss_64[2].unk_00 < 2) { + lbl_1_bss_64[2].unk_04[lbl_1_bss_64[2].unk_00] = 0.0f; + lbl_1_bss_64[2].unk_00++; + } + omVibrate(var_r31->unk_04, 0xC, 6, 6); + } + } + else { + sp160++; + } + if (var_r28 == 3) { + if ((sp160 == 4) && (var_r31->unk_70[var_r30] < 0.0f)) { + var_r31->unk_70[var_r30] = 0.0f; + var_r31->unk_A0[var_r30] *= -0.0; + } + else { + var_r31->unk_A0[var_r30] += -0.1875; + } + } + } + sp134 = atan2d(sp1C4, sp1C0); + sp130 = atan2d(var_r31->unk_90[var_r30], var_r31->unk_B0[var_r30]); + var_f22 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + var_f25 = sp130 - sp134; + var_f25 += var_f25 < -180.0f ? 0x168 : (var_f25 > 180.0f ? -0x168 : 0); + var_f25 += var_f25 < -180.0f ? 0x168 : (var_f25 > 180.0f ? -0x168 : 0); + var_f22 = var_f22 <= (1.03125 * sqrt(0.03858024691358024)) ? 0.0f : var_f22; + var_r31->unk_D0[var_r30] + -= (2.625 * ((var_f22 * (var_f25 < -90.0f ? -1.0 : (var_f25 > 90.0f ? 1.0 : (var_f25 / 90.0)))) / 3.75)); + var_r31->unk_D0[var_r30] = var_r31->unk_D0[var_r30] >= 7.875 ? 7.875 : var_r31->unk_D0[var_r30]; + var_r31->unk_C0[var_r30] += var_r31->unk_D0[var_r30]; + var_r31->unk_C0[var_r30] += var_r31->unk_C0[var_r30] < -180.0f ? 0xB4 : (var_r31->unk_C0[var_r30] > 180.0f ? -0xB4 : 0); + if (fabs(var_f22) < fabs(var_r31->unk_E0[var_r30])) { + var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] == 0.0f ? 0.0f : ((var_r31->unk_D0[var_r30] * var_f22) / var_r31->unk_E0[var_r30]); + } + var_r31->unk_E0[var_r30] = var_f22; + } + } + } + } + Hu3DModelRotSet(var_r29->model[var_r31->unk_190 + 1], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); + Hu3DModelRotSet(var_r29->model[11], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -(var_r31->unk_58)); + if (lbl_1_bss_48 == 0x3EB) { + sp12C = var_r29->rot.y; + sp128 = 180.0 + ((8.0f * var_r31->unk_58) * (0.125 + ((0.6 + var_r31->unk_5C) / 0.875))); + var_r29->rot.y = (3.0f + sp12C) < sp128 ? (3.0f + sp12C) : ((sp12C - 3.0f) > sp128 ? (sp12C - 3.0f) : sp128); + if (lbl_1_bss_4C == 0xA) { + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[1], 39.0 * (0.5 + (0.5 * var_r31->unk_5C)), 20.0f, HU3D_MOTATTR_PAUSE); + } + } + else if (lbl_1_bss_48 == 0x3EC) { + omSetRot(var_r29, 0.0f, 180.0 + ((8.0f * var_r31->unk_58) * (0.125 + ((0.6 + var_r31->unk_5C) / 0.875))), 0.0f); + Hu3DMotionTimeSet(var_r29->model[0], 39.0 * (0.5 + (0.5 * var_r31->unk_5C))); + } + else if (lbl_1_bss_48 == 0x3ED) { + if (lbl_1_bss_4C == 1) { + Hu3DModelAttrReset(var_r29->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[0], 0.0f, 12.0f, HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_4C >= 0x19) { + var_r29->rot.y *= 0.8; + } + } + else if (lbl_1_bss_48 >= 0x3EE) { + var_r29->rot.y = 0.0f; + if ((lbl_1_bss_4C == 1) && (lbl_1_bss_48 == 0x3EE)) { + if ((var_r31->unk_00 != lbl_1_bss_30) && (var_r31->unk_08 != -1)) { + s32 sp2E4[8] = { 0x121, 0x161, 0x1A1, 0x1E1, 0x221, 0x261, 0x2A1, 0x2E1 }; + HuAudFXPlay(sp2E4[var_r31->unk_08]); + } + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[var_r31->unk_00 == lbl_1_bss_30 ? 2 : 3], 0.0f, 8.0f, + ((var_r31->unk_00 == lbl_1_bss_30) && (var_r31->unk_08 == -1)) ? 0x40000001 : 0); + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_18 = var_r31->unk_C0[var_r30]; + lbl_1_bss_18 = lbl_1_bss_18 < -180.0f ? (360.0f + lbl_1_bss_18) : (lbl_1_bss_18 > 180.0f ? (lbl_1_bss_18 - 360.0f) : lbl_1_bss_18); + sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0 + ? -90.175 + : ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18); + MTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); + MTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); + MTXConcat(sp364, sp304, sp364); + MTXRotRad(sp304, 0x79, 0.017453292f * sp124); + MTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); + MTXConcat(sp334, sp304, sp334); + MTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); + MTXConcat(sp304, sp334, sp334); + Hu3DMtxRotGet(sp334, &sp2A8); + sp2B4.x = var_r31->unk_60[var_r30]; + sp2B4.y = var_r31->unk_70[var_r30]; + sp2B4.z = var_r31->unk_80[var_r30]; + MTXMultVec(sp364, &sp2B4, &sp2B4); + Hu3DModelPosSet(var_r29->model[var_r30 + 0xC], sp2D8.x + sp2B4.x, sp2D8.y + sp2B4.y, sp2D8.z + sp2B4.z); + Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); + Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], sp2A8.x, sp2A8.y, sp2A8.z); + } + } +} + +s32 lbl_1_data_284 = -1; +float lbl_1_data_288 = 700.0f; +float lbl_1_data_28C = 314.0f; +float lbl_1_data_290 = -100.0f; +float lbl_1_data_294 = -30.0f; + +void fn_1_6850(omObjData *object) +{ + M449DllWork *sp20[2]; + s32 sp1C; + s32 sp18; + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp20[var_r31] = (&lbl_1_bss_54)[var_r31]->data; + } + lbl_1_bss_4++; + if (lbl_1_bss_48 == 0x3EC) { + lbl_1_bss_14++; + } + var_r27 = 0; + var_r26 = 0; + var_r25 = 0; + var_r24 = 0; + if ((sp20[0]->unk_190 == 2) && (sp20[0]->unk_F0[0] != 0)) { + var_r24 = 1; + } + if ((var_r24 != 0) && (sp20[0]->unk_F0[1] != 0)) { + var_r25 = 1; + } + if ((var_r25 != 0) && (sp20[0]->unk_F0[2] != 0)) { + var_r26 = 1; + } + if ((var_r26 != 0) && (sp20[0]->unk_F0[3] != 0)) { + var_r27 = 1; + } + var_r30 = var_r27; + var_r23 = 0; + var_r22 = 0; + var_r21 = 0; + var_r20 = 0; + if ((sp20[1]->unk_190 == 2) && (sp20[1]->unk_F0[0] != 0)) { + var_r20 = 1; + } + if ((var_r20 != 0) && (sp20[1]->unk_F0[1] != 0)) { + var_r21 = 1; + } + if ((var_r21 != 0) && (sp20[1]->unk_F0[2] != 0)) { + var_r22 = 1; + } + if ((var_r22 != 0) && (sp20[1]->unk_F0[3] != 0)) { + var_r23 = 1; + } + var_r29 = var_r23; + lbl_1_bss_30 = lbl_1_bss_30 == -1 ? ((var_r30 != 0) && (var_r29 != 0) ? (rand8() % 2) : (var_r30 != 0 ? 0 : (var_r29 != 0 ? 1 : lbl_1_bss_30))) + : lbl_1_bss_30; + lbl_1_bss_30 = ((lbl_1_bss_30 == -1) && (lbl_1_bss_14 >= 0x4650)) != 0 + ? (sp20[0]->unk_190 > sp20[1]->unk_190 ? 0 : (sp20[0]->unk_190 < sp20[1]->unk_190 ? 1 : 4)) + : lbl_1_bss_30; + var_r28 = lbl_1_data_284; + { + UnkCameraStruct sp28[4] = { + { 2500.0f, 0.0f, 0.0f, -100.0f, -40.0f, 0.0f }, + { 700.0f, 0.0f, 0.0f, -750.0f, -30.0f, 0.0f }, + { 775.0f, -350.0f, -27.0f, 400.0f, -25.0f, -7.0f }, + { 775.0f, 350.0f, -27.0f, 400.0f, -25.0f, 7.0f }, + }; + if (lbl_1_data_284 == -1) { + lbl_1_data_284 = 1; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if ((lbl_1_bss_48 == 0x3E9) && (lbl_1_data_284 == 1)) { + lbl_1_data_284 = 0; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 0.0f; + } + if ((lbl_1_bss_48 == 0x3EE) && (lbl_1_bss_4C == 1) && (lbl_1_bss_30 == 0)) { + lbl_1_data_284 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if ((lbl_1_bss_48 == 0x3EE) && (lbl_1_bss_4C == 1) && (lbl_1_bss_30 == 1) && (sp20[1]->unk_08 != -1)) { + lbl_1_data_284 = 3; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if ((var_r28 != lbl_1_data_284) && (var_r28 != -1)) { + lbl_1_data_288 = CZoom; + lbl_1_data_28C = Center.y; + lbl_1_data_290 = Center.z; + lbl_1_data_294 = CRot.x; + } + if (lbl_1_bss_20 <= 1.0f) { + if (lbl_1_bss_1C == 0) { + lbl_1_bss_20 = 1.0 - (0.95 * (1.0f - lbl_1_bss_20)); + var_f31 = lbl_1_bss_20; + } + else { + lbl_1_bss_20 += 0.008333333333333333; + lbl_1_bss_20 = lbl_1_bss_20 > 1.0f ? 1.0f : lbl_1_bss_20; + var_f31 = 0.5 + (-0.5 * cosd((180.0f * lbl_1_bss_20))); + } + lbl_1_bss_20 = lbl_1_bss_20 > 1.0f ? 1.0f : lbl_1_bss_20; + CZoom = (var_f31 * sp28[lbl_1_data_284].unk_00) + (lbl_1_data_288 * (1.0f - var_f31)); + Center.x = (var_f31 * sp28[lbl_1_data_284].unk_04) + (lbl_1_bss_24 * (1.0f - var_f31)); + Center.y = (var_f31 * sp28[lbl_1_data_284].unk_08) + (lbl_1_data_28C * (1.0f - var_f31)); + Center.z = (var_f31 * sp28[lbl_1_data_284].unk_0C) + (lbl_1_data_290 * (1.0f - var_f31)); + CRot.x = (var_f31 * sp28[lbl_1_data_284].unk_10) + (lbl_1_data_294 * (1.0f - var_f31)); + CRot.y = (var_f31 * sp28[lbl_1_data_284].unk_14) + (lbl_1_bss_28 * (1.0f - var_f31)); + } + } +} + +static const u32 lbl_1_rodata_580[6] = { 0x2C0003, 0x2C0004, 0x2C0005, 0x2C0006, 0x2C0007, 0 }; + +void fn_1_71A8(void) +{ + M449DllWork *sp8[2]; + + s16 var_r31; + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + u32 var_r26; + + var_r29 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp8[var_r30] = (&lbl_1_bss_54)[var_r30]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyReset(); + var_r31 = HuWinExCreateStyled(-10000.0f, 60.0f, 0x118, 0x78, -1, 1); + HuWinExAnimIn(var_r31); + HuWinBGTPLvlSet(var_r31, 0.8f); + HuWinMesSpeedSet(var_r31, 1); + HuWinDisablePlayerSet( + var_r31, 0xF & ((sp8[0]->unk_0C != -1) ? ~(1 << sp8[0]->unk_0C) : 0xF) & ((sp8[1]->unk_0C != -1) ? ~(1 << sp8[1]->unk_0C) : 0xF)); + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0001); + if (((sp8[0]->unk_0C == -1) || (sp8[0]->unk_08 == -1)) && ((sp8[1]->unk_0C == -1) || (sp8[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + } + HuWinMesWait(var_r31); + if ((sp8[0]->unk_0C != -1) || (sp8[1]->unk_0C != -1)) { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0002); + if ((sp8[0]->unk_0C == -1) && (sp8[1]->unk_0C == -1)) { + HuPrcSleep(0x3C); + var_r29 = 1; + } + else { + var_r29 = HuWinChoiceGet(var_r31, 0); + } + } + else { + var_r29 = 1; + } + if (var_r29 == 0) { + var_r30 = 0; + while ((var_r26 = lbl_1_rodata_580[var_r30++]) != 0) { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, var_r26); + if ((sp8[0]->unk_0C == -1 || sp8[0]->unk_08 == -1) && (sp8[1]->unk_0C == -1 || sp8[1]->unk_08 == -1)) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(var_r31); + } + } + else { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0008); + if (((sp8[0]->unk_0C == -1) || (sp8[0]->unk_08 == -1)) && ((sp8[1]->unk_0C == -1) || (sp8[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(var_r31); + } + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_7544(omObjData *var_r29) +{ + M449DllWork *spC[2]; + s32 sp8; + + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + s32 sp14[12] = { 0x7A2, 0x7A3, 0x7A4, 0x7A5, 0, 0, 0, 0, 0, 0, 0, 0 }; + if (lbl_1_bss_64[var_r31].unk_00 > 3) { + lbl_1_bss_64[var_r31].unk_00 = 3; + } + if ((lbl_1_bss_64[var_r31].unk_00 > 0) && (var_r31 != 1)) { + sp8 = HuAudFXPlay(sp14[var_r31]); + lbl_1_bss_64[var_r31].unk_00--; + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_54)[var_r31]->data; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + var_r29->func = fn_1_9A38; + } + switch (lbl_1_bss_48) { + case 0x3E8: + if (WipeStatGet() == 0) { + lbl_1_bss_48++; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3E9: + lbl_1_bss_4C++; + if (lbl_1_bss_4C > 0x78) { + lbl_1_bss_48++; + if ((spC[0]->unk_08 != -1) && (spC[1]->unk_08 != -1)) { + lbl_1_bss_48++; + } + lbl_1_bss_44 = 0; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EA: + lbl_1_bss_4C++; + if (lbl_1_bss_4C == 1) { + HuPrcChildCreate(fn_1_71A8, 0x64, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + if (lbl_1_data_22C == -1) { + lbl_1_data_22C = HuAudSeqPlay(0x3D); + return; + } + } + else if (lbl_1_bss_10 == 0) { + lbl_1_bss_48++; + if (lbl_1_data_22C != -1) { + HuAudSeqFadeOut(lbl_1_data_22C, 0x3E8); + lbl_1_data_22C = -1; + } + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EB: + lbl_1_bss_4C++; + if ((lbl_1_bss_4C == 5) && (lbl_1_data_228 < 0)) { + lbl_1_data_228 = MGSeqCreate(3, 0); + } + if ((lbl_1_bss_4C >= 5) && (lbl_1_data_22C == -1) && ((MGSeqStatGet(lbl_1_data_228) & 0x10) != 0)) { + lbl_1_data_22C = HuAudSeqPlay(0x3E); + } + if ((lbl_1_bss_4C >= 5) && (MGSeqStatGet(lbl_1_data_228) == 0) && (lbl_1_data_228 >= 0)) { + for (var_r30 = 0; var_r30 < 0x12; var_r30++) { + if (((var_r30 % 9) < 5) || ((var_r30 % 9) > 7)) { + espDispOn(lbl_1_data_48[var_r30]); + } + } + lbl_1_bss_48++; + lbl_1_data_228 = -1; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EC: + lbl_1_bss_4C++; + if (lbl_1_bss_14 == 0x3F48) { + lbl_1_data_22A = MGSeqCreate(1, 0x1E, -1, -1); + } + if (lbl_1_data_22A != -1) { + MGSeqParamSet(lbl_1_data_22A, 1, (0x468B - lbl_1_bss_14) / 60); + } + if (lbl_1_bss_30 != -1) { + lbl_1_bss_48 = 0x3ED; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3ED: + lbl_1_bss_4C++; + if ((lbl_1_data_228 < 0) && (lbl_1_bss_4C == 1)) { + if (lbl_1_data_22A != -1) { + MGSeqParamSet(lbl_1_data_22A, 2, -1); + } + lbl_1_data_228 = MGSeqCreate(3, 1); + if (lbl_1_data_22C != -1) { + HuAudSeqFadeOut(lbl_1_data_22C, 0x64); + lbl_1_data_22C = -1; + return; + } + } + else if (MGSeqStatGet(lbl_1_data_228) == 0) { + lbl_1_bss_48++; + lbl_1_bss_4C = 0; + if (lbl_1_bss_30 == 4) { + lbl_1_bss_30 = spC[0]->unk_08 == -1 ? 0 : (spC[1]->unk_08 == -1 ? 1 : lbl_1_bss_30); + return; + } + } + break; + case 0x3EE: + lbl_1_bss_4C++; + if (lbl_1_bss_4C == 1) { + if (lbl_1_bss_30 != 4) { + if (spC[lbl_1_bss_30]->unk_08 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(3); + } + GWPlayerCoinWinSet(spC[lbl_1_bss_30]->unk_04, 10); + } + else if (lbl_1_bss_30 == 4) { + HuAudSStreamPlay(4); + } + } + if ((210.0f + (lbl_1_bss_30 == 4 ? 0x1E : 0)) < lbl_1_bss_4C) { + lbl_1_data_228 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r29->func = fn_1_9A38; + } + break; + } +} + +void fn_1_7ECC(omObjData *var_r31) +{ + var_r31->model[0] = Hu3DModelCreateFile(0x500008); + Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowMapSet(var_r31->model[0]); + var_r31->model[1] = Hu3DModelCreateFile(0x500009); + var_r31->model[2] = Hu3DModelCreateFile(0x50000A); + Hu3DModelAttrSet(var_r31->model[2], HU3D_MOTATTR_LOOP); + var_r31->func = fn_1_6850; +} + +void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f31; + float var_f30; + float var_f29; + + HsfanimStruct01 *var_r31; + s16 var_r29; + + if (particle->unk_34 == 0) { + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_34 >= 0xFF) { + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0xFF; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 == 1) { + var_f31 = ((frand() & 0xFF) * 0x168) >> 8; + var_f30 = 0.5 + (1.5 * (rand8() / 256.0)); + var_r31->unk08.x = 2.5 * (var_f30 * sind(var_f31)); + var_r31->unk08.y = 4.5 * (var_f30 * cosd(var_f31)); + var_r31->unk08.y *= var_r31->unk08.y < 0.0f ? -0.5 : 1.0; + var_r31->unk08.x = (12.0 * (rand8() / 255.0)) - 6.0; + var_r31->unk08.y = 12.0 * (rand8() / 255.0); + var_r31->unk08.z = (rand8() / 255.0) - 0.5; + var_r31->unk34.x = 2.0f * var_r31->unk08.x; + var_r31->unk34.y = 10.0f + (2.0f * var_r31->unk08.y); + var_r31->unk34.z = 50.0f + (2.0f * var_r31->unk08.z); + var_r31->unk40.r = 0xFF; + var_r31->unk40.g = 0xFF; + var_r31->unk40.b = 0xFF; + var_r31->unk40.a = 0xFF; + var_r31->unk2C = 50.0f; + } + if (var_r31->unk00 < 0xF0) { + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.9f; + var_r31->unk08.z *= 0.9f; + var_r31->unk08.y *= 0.9f; + var_r31->unk40.a = (var_r31->unk40.a * 0xB) / 12; + var_r31->unk2C += 1.01f; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + if (var_r31->unk40.a == 0) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31->unk00 += var_r31->unk00 < 0x8000; + if (var_r31->unk00 >= 0xF0) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_8538(omObjData *var_r30) +{ + Vec sp60; + Vec sp54; + void *sp48; + + M449DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + M449DllWork *var_r25; + s32 var_r24; + s32 var_r23; + + var_r26 = -1; + var_r24 = -1; + var_r31 = var_r30->data; + sp48 = (&lbl_1_bss_54)[1 - var_r30->work[0]]->data; + memset(var_r31, 0, sizeof(M449DllWork)); + var_r31->unk_00 = var_r30->work[0]; + if ((GWPlayerCfg->character == 0xC) || (GWPlayerCfg[1].character == 0xC) || (GWPlayerCfg[2].character == 0xC) + || (GWPlayerCfg[3].character == 0xC)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (GWPlayerCfg[var_r29].character == 0xC) { + var_r26 = var_r29; + } + } + var_r24 = GWPlayerCfg[var_r26].group == 0 ? 1 : 0; + if (var_r31->unk_00 == 0) { + var_r31->unk_04 = var_r24; + var_r23 = var_r26; + } + else { + var_r31->unk_04 = var_r26; + var_r23 = var_r24; + } + } + else { + var_r31->unk_04 = GWPlayerCfg[0].group == var_r31->unk_00 + ? 0 + : (GWPlayerCfg[1].group == var_r31->unk_00 + ? 1 + : (GWPlayerCfg[2].group == var_r31->unk_00 ? 2 : (GWPlayerCfg[3].group == var_r31->unk_00 ? 3 : 4))); + var_r23 = GWPlayerCfg->group == (1 - var_r31->unk_00) + ? 0 + : (GWPlayerCfg[1].group == (1 - var_r31->unk_00) + ? 1 + : (GWPlayerCfg[2].group == (1 - var_r31->unk_00) ? 2 : (GWPlayerCfg[3].group == (1 - var_r31->unk_00) ? 3 : 4))); + } + if (var_r31->unk_04 == 4) { + OSReport("m448:wrong player group\n"); + var_r31->unk_04 = var_r31->unk_00; + } + var_r31->unk_08 = ((var_r26 != -1) && (var_r31->unk_00 == 1)) != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].character; + var_r31->unk_0C = ((var_r31->unk_08 == -1) || (GWPlayerCfg[var_r31->unk_04].iscom != 0)) != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].pad_idx; + var_r31->unk_10 = var_r31->unk_0C != -1 ? 0 : GWPlayerCfg[var_r31->unk_04].diff; + var_r31->unk_18 = -1; + var_r31->unk_1C = 0; + var_r31->unk_48 = lbl_1_rodata_10[var_r31->unk_10]; + var_r31->unk_4C = 0; + var_r31->unk_214 = -1; + if (var_r31->unk_08 != -1) { + var_r30->model[0] = CharModelCreate(var_r31->unk_08, 1); + } + else { + var_r30->model[0] = Hu3DModelCreateFile(0x50001B); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00 + 2], &sp54); + omSetTra(var_r30, sp54.x, sp54.y, sp54.z); + if (var_r30->trans.x == -360.0f) { + var_r30->trans.x = -350.0f; + } + omSetRot(var_r30, 0.0f, (var_r31->unk_00 * 0xB4) + 0x5A, 0.0f); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r31->unk_08 != -1) { + var_r30->motion[var_r29] + = CharModelMotionCreate(var_r31->unk_08, lbl_1_data_90[var_r29] + (lbl_1_data_B0[var_r29] != 0 ? var_r31->unk_08 : 0)); + } + else { + var_r30->motion[var_r29] = Hu3DJointMotionFile(var_r30->model[0], lbl_1_data_A0[var_r29]); + } + } + Hu3DMotionSet(var_r30->model[0], var_r30->motion[0]); + Hu3DMotionTimeSet(var_r30->model[0], 20.0f); + Hu3DModelAttrSet(var_r30->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30->model[0]); + CharModelVoiceEnableSet(var_r31->unk_08, var_r30->motion[3], 0); + lbl_1_data_23C[var_r31->unk_00] = var_r31->unk_00 == 0 ? (rand8() % 3) : ((lbl_1_data_23C[0] + ((rand8() % 2)) + 1) % 3); + if (var_r31->unk_00 == 0) { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + M449DllUnkStruct sp6C = { + { 0x0050000B, 0x0050000D, 0x0050000F, 0x00500011 }, + { 0x0050000C, 0x0050000E, 0x00500010, 0x00500012 }, + }; + do { + while (TRUE) { + var_r27 = rand8() % 4; + if (lbl_1_data_230[0] == var_r27) { + continue; + } + if (lbl_1_data_230[1] == var_r27) { + continue; + } + break; + } + } while (lbl_1_data_230[2] == var_r27); + lbl_1_data_230[var_r29] = var_r27; + var_r30->model[var_r29 + 1] = Hu3DModelCreateFile(sp6C.unk_00[var_r27]); + var_r30->model[var_r29 + 4] = Hu3DModelCreateFile(sp6C.unk_10[var_r27]); + } + var_r30->model[11] = Hu3DModelCreateFile(0x500013); + } + else { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + var_r30->model[var_r29 + 1] = Hu3DModelLink(lbl_1_bss_54->model[var_r29 + 1]); + var_r30->model[var_r29 + 4] = Hu3DModelLink(lbl_1_bss_54->model[var_r29 + 4]); + } + var_r30->model[11] = Hu3DModelLink(lbl_1_bss_54->model[11]); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp54); + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (var_r29 != 0) { + Hu3DModelAttrSet(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(var_r30->model[var_r29 + 1], sp54.x, sp54.y, sp54.z); + Hu3DModelPosSet(var_r30->model[var_r29 + 4], sp54.x, sp54.y, sp54.z); + Hu3DModelShadowSet(var_r30->model[var_r29 + 1]); + } + Hu3DModelPosSet(var_r30->model[11], sp54.x, sp54.y, sp54.z); + Hu3DModelShadowSet(var_r30->model[11]); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 == 0) { + var_r30->model[var_r29 + 0xC] = Hu3DModelCreateFile(var_r31->unk_00 == 0 ? 0x500014 : 0x500015); + } + else { + var_r30->model[var_r29 + 0xC] = Hu3DModelLink(var_r30->model[12]); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp54); + Hu3DModelObjPosGet(var_r30->model[4], lbl_1_data_138[var_r29], &sp60); + var_r31->unk_60[var_r29] = sp60.x - sp54.x; + var_r31->unk_80[var_r29] = sp60.z - sp54.z; + var_r31->unk_90[var_r29] = var_r31->unk_B0[var_r29] = 0.0f; + Hu3DModelPosSet(var_r30->model[var_r29 + 0xC], sp60.x, sp60.y, sp60.z); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r28 = var_r29 + 7; + Hu3DModelObjPosGet(var_r30->model[4], lbl_1_data_138[var_r29], &sp60); + var_r30->model[var_r28] = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)), 0x32); + Hu3DModelPosSet(var_r30->model[var_r28], 2000.0f, -2000.0f, -2000.0f); + Hu3DModelScaleSet(var_r30->model[var_r28], 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30->model[var_r28], 3); + Hu3DModelAttrReset(var_r30->model[var_r28], HU3D_ATTR_DISPOFF); + Hu3DParticleColSet(var_r30->model[var_r28], 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30->model[var_r28], 5.0f); + Hu3DParticleHookSet(var_r30->model[var_r28], fn_1_7F94); + Hu3DParticleCntSet(var_r30->model[var_r28], 0xFF); + } + if (var_r31->unk_00 == 1) { + for (var_r29 = 0; var_r29 < 0x12; var_r29++) { + s32 sp4C[2] = { 0x64, 0x1E5 }; + s32 spD4[0x12] = { 0, 0, -14, 16, 46, -14, 16, 46, -50, 0, 0, -14, 16, 46, -14, 16, 46, -50 }; + s32 sp8C[0x12] = { 0, 0, -2, -2, -2, -2, -2, -2, 0, 0, 0, -2, -2, -2, -2, -2, -2, 0 }; + if ((lbl_1_data_0[var_r29] + 0xFF9F0000) == 0) { + var_r25 = (&lbl_1_bss_54)[var_r29 == 8 ? 0 : (var_r29 == 0x11 ? 1 : 0)]->data; + lbl_1_data_48[var_r29] = espEntry(var_r25->unk_08 == -1 ? 0x500018 : (var_r25->unk_08 + lbl_1_data_0[var_r29]), 0, 0); + } + else { + lbl_1_data_48[var_r29] = espEntry(lbl_1_data_0[var_r29], 0, 0); + } + espDrawNoSet(lbl_1_data_48[var_r29], 0); + espAttrSet(lbl_1_data_48[var_r29], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_48[var_r29], 0); + espPriSet(lbl_1_data_48[var_r29], 0x80 - var_r29); + espPosSet(lbl_1_data_48[var_r29], spD4[var_r29] + sp4C[var_r29 < 9 ? 0 : 1], sp8C[var_r29] + 0x46); + if ((var_r29 >= 9 ? (var_r29 - 9) : var_r29) != 0) { + (void)var_r29; + continue; + } + else { + espTPLvlSet(lbl_1_data_48[var_r29], 0.5f); + espColorSet(lbl_1_data_48[var_r29], 0, 0, 0); + } + } + } + var_r30->func = fn_1_758; +} + +void fn_1_94F8(omObjData *var_r31) +{ + lbl_1_bss_48 = 0x3E8; + lbl_1_bss_4C = 0; + lbl_1_bss_40 = 0; + lbl_1_bss_3C = 0; + if (lbl_1_bss_64[0].unk_00 < 2) { + lbl_1_bss_64[0].unk_04[lbl_1_bss_64[0].unk_00] = 0.0f; + lbl_1_bss_64[0].unk_00++; + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + var_r31->func = fn_1_7544; +} + +void ObjectSetup(void) +{ + s32 var_r31; + omObjData *var_r30; + + OSReport("******* M449 ObjectSetup *********\n"); + lbl_1_bss_38 = omInitObjMan(0x258, 0x2000); + omGameSysInit(lbl_1_bss_38); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 2500.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -40.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { -0.5850064f, -0.788462f, 0.1545085f }; + Vec sp24; + Vec sp18; + Vec spC; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + lbl_1_bss_34 = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_34, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_34); + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(6.0f, 9000.0f, 11500.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_228 = -1; + lbl_1_bss_30 = -1; + HuWinInit(1); + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_38, 0x64, 3, 0, 1, fn_1_7ECC); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = (&lbl_1_bss_54)[var_r31] = omAddObjEx(lbl_1_bss_38, 0x65, 0x14, 4, 0, fn_1_8538); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M449DllWork), MEMORY_DEFAULT_NUM); + var_r30->work[0] = var_r31; + } + lbl_1_bss_5C = omAddObjEx(lbl_1_bss_38, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_60 = omAddObjEx(lbl_1_bss_38, 0x67, 0, 0, -1, fn_1_94F8); +} + +void fn_1_9A38(omObjData *arg0) +{ + void *sp8; + s32 var_r31; + + if (WipeStatGet() == 0) { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp8 = (&lbl_1_bss_54)[var_r31]->data; + } + if (lbl_1_data_228 >= 0) { + MGSeqKill(lbl_1_data_228); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index cca17e4b..4610c4b3 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -34,6 +34,7 @@ #include "game/window.h" #include "string.h" +#include "version.h" #ifndef __MWERKS__ #include "game/audio.h" @@ -242,20 +243,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -835,6 +836,12 @@ s32 lbl_1_bss_8; s32 lbl_1_bss_4; s32 lbl_1_bss_0; +#if VERSION_NTSC +#define _1606_BY_REFRESH_RATE 26.766666f +#else +#define _1606_BY_REFRESH_RATE 32.120003f +#endif + void fn_1_23B4(WorkPlayerOld *player) { s32 i; @@ -1018,7 +1025,7 @@ void fn_1_2E34(WorkPlayerOld *player) player->unk_3C |= 0x100; player->unk_A4 = 0; if (!(player2->unk_3C & 0x100)) { - player->unk_84.y = 26.766666f; + player->unk_84.y = _1606_BY_REFRESH_RATE; } } if (state == 3) { @@ -1122,7 +1129,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - fn_1_2BD0(player, 26.766666f, 1.0f); + fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -1137,14 +1144,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) player->unk_A4 = 0; } else { - player->unk_84.y += 3.65f; + player->unk_84.y += 219.0f / REFRESH_RATE; } } else { player->unk_A4 = 0; } } - player->unk_84.y += -2.4333334f; + player->unk_84.y += -146.0f / REFRESH_RATE; if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { player->unk_38 = 3; player->unk_84.y = 0; @@ -1271,7 +1278,7 @@ void fn_1_40C0(WorkPlayerOld *player) if (player->unk_3C & 0x2000) { player->unk_84.y = 0; } - temp_f28 = 0; + temp_f28 = 0.0f; if (50.0f < ABS(player->unk_84.y)) { player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1); } @@ -2019,25 +2026,25 @@ s32 lbl_1_data_18C[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; s32 lbl_1_data_1AC[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; s32 lbl_1_data_1CC[4] = { 0x3E, 0x65, 0x3F, 0x66 }; UnkData204Struct lbl_1_data_1DC[5] = { - { 510.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, - { 300.0f, 1 }, + { 8.5f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, { 0.0f, 0 }, }; UnkData204Struct lbl_1_data_204[6] = { - { 210.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, + { 3.5f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, { 0.0f, 0 }, }; Vec2f lbl_1_data_234[4] = { - { 300.0f, 300.0f }, - { 300.0f, 240.0f }, - { 300.0f, 210.0f }, - { 300.0f, 180.0f }, + { 5.0f * REFRESH_RATE, 5.0f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 4.0f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 3.5f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 3.0f * REFRESH_RATE }, }; float lbl_1_data_254[5] = { 0.4f, 0.35f, 0.3f, 0.25f, 0.2f }; float lbl_1_data_268[5] = { 0.45f, 0.4f, 0.35f, 0.3f, 0.25f }; @@ -2381,9 +2388,9 @@ void fn_1_8500(void) HuPrcVSleep(); } HuAudFXPlay(0x3B); - fn_1_A968(4, 8.0f, 0, 0, 60.0f); - fn_1_E1A8(0, 9, 8.0f, 0, 7, 60.0f); - fn_1_E1A8(1, 9, 8.0f, 0, 7, 60.0f); + fn_1_A968(4, 8.0f, 0, 0, REFRESH_RATE); + fn_1_E1A8(0, 9, 8.0f, 0, 7, REFRESH_RATE); + fn_1_E1A8(1, 9, 8.0f, 0, 7, REFRESH_RATE); fn_1_7B90(var_r31, 0x2D0004); fn_1_7C14(var_r31, -1); HuAudFXPlay(0x3C); @@ -2786,7 +2793,7 @@ void fn_1_AAB0(UnkM450Struct3 *arg0, Vec2f *arg1, s32 arg2) float var_f31 = 1.0f; if (arg2 != 0) { var_f31 = arg0->unk_F4; - if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 0xE10) { + if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 60 * REFRESH_RATE) { arg0->unk_F4 = arg0->unk_F4 - 0.1f; if (0.0f > arg0->unk_F4) { arg0->unk_F4 = 0.0f; @@ -2916,7 +2923,7 @@ void fn_1_AD58(omObjData *object) } break; case 0xBBE: - fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f); if (lbl_1_bss_1A4->work[0] >= 0x40B) { var_r31->unk_150++; var_r31->unk_E0 = 0.0f; @@ -3048,7 +3055,7 @@ void fn_1_AD58(omObjData *object) fn_1_19A10(&var_r31->unk_00, &spE4); fn_1_40C0(&var_r31->unk_00); var_r31->unk_E0 += 1.0f; - spC8 = (60.0f * (3.0f + lbl_1_data_A0C[1].unk_14)); + spC8 = (REFRESH_RATE * (3.0f + lbl_1_data_A0C[1].unk_14)); if (spC8 < var_r31->unk_E0) { var_r31->unk_150++; var_r31->unk_154 &= ~0x70; @@ -3115,7 +3122,7 @@ void fn_1_AD58(omObjData *object) Hu3DMotionTimeSet(object->model[0], 50.0f); } var_r31->unk_E0 += 1.0f; - if (180.0f < var_r31->unk_E0) { + if (3 * REFRESH_RATE < var_r31->unk_E0) { var_r31->unk_150 = 0xBC6; var_r31->unk_E0 = 0.0f; var_r31->unk_154 |= 0x20; @@ -3154,7 +3161,7 @@ void fn_1_AD58(omObjData *object) fn_1_19A10(&var_r31->unk_00, &spE4); fn_1_40C0(&var_r31->unk_00); var_r31->unk_E0 += 1.0f; - if (180.0f < var_r31->unk_E0) { + if (3 * REFRESH_RATE < var_r31->unk_E0) { var_r31->unk_150 = 0xBC6; var_r31->unk_E0 = 0.0f; var_r31->unk_154 |= 0x20; @@ -3660,7 +3667,7 @@ void fn_1_ED4C(omObjData *object) } break; case 0xFA8: - fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f); if (lbl_1_bss_1A4->work[0] >= 0x3F9) { var_r31->unk_150 = var_r31->unk_150 + 1; var_r31->unk_E0 = 0.0f; @@ -3867,7 +3874,7 @@ void fn_1_11D5C(omObjData *object) UnkM450Struct3 *var_r31; s32 var_r29; - s32 var_r27; + s32 var_r27; // ! - uninitialized s32 *var_r26; (void)var_r27; @@ -4038,7 +4045,7 @@ void fn_1_12688(omObjData *object) if (object->work[0] != 0) { if (lbl_1_bss_1A4->work[0] <= 0x3EB) { object->work[0] = object->work[0] - (3.0f - (lbl_1_bss_128 / 120.0f)); - if (object->work[0] > 0x258) { + if (object->work[0] > 10 * REFRESH_RATE) { object->work[0] = 1; } } @@ -4055,7 +4062,7 @@ void fn_1_12688(omObjData *object) } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { - object->work[0] = frandmod(0x258); + object->work[0] = frandmod(10 * REFRESH_RATE); Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } @@ -4063,7 +4070,7 @@ void fn_1_12688(omObjData *object) void fn_1_1291C(omObjData *object) { - object->work[0] = frandmod(0x258); + object->work[0] = frandmod(10 * REFRESH_RATE); omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22)); @@ -4312,27 +4319,27 @@ UnkDataA0CStruct lbl_1_data_A0C[2] = { { 0x00510067, DATA_MAKE_NUM(DATADIR_M450, 0x66), DATA_MAKE_NUM(DATADIR_M450, 0x69), DATA_MAKE_NUM(DATADIR_M450, 0x6A), 5, 5, NULL }, }; UnkDataA80Struct lbl_1_data_A80[9] = { - { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 0.6f, 300.0f }, -2, 0 }, + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, }; UnkDataA80Struct lbl_1_data_C58[0xA] = { - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -1.2f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -1.2f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 1.2f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 1.2f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 1.2f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -72.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 72.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, }; char *lbl_1_data_E68[5] = { "m450m01-from1to2", @@ -4403,7 +4410,7 @@ s32 lbl_1_data_F00[0x17] = { }; s32 lbl_1_data_F5C[4] = { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) }; -s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 }; +s32 lbl_1_data_F6C[6] = { 0, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 300 * REFRESH_RATE }; float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; float *lbl_1_data_FAC[6] = { NULL, lbl_1_data_F84, NULL, lbl_1_data_F98, NULL, NULL }; @@ -4502,7 +4509,7 @@ void fn_1_12A1C(omObjData *object) } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { - object->work[0] = frandmod(0xB4); + object->work[0] = frandmod(3 * REFRESH_RATE); Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } @@ -4513,7 +4520,7 @@ void fn_1_12B80(omObjData *object) s32 var_r30; s16 var_r29; - object->work[0] = frandmod(0xB4); + object->work[0] = frandmod(3 * REFRESH_RATE); omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); @@ -4813,7 +4820,7 @@ void fn_1_13F28(omObjData *object) } if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_10C < 3) { var_r31->unk_14 += 1.0f; - if (1200.0f < var_r31->unk_14) { + if (20 * REFRESH_RATE < var_r31->unk_14) { var_r31->unk_1C = 0; fn_1_1B510(var_r29); } @@ -6012,7 +6019,7 @@ void fn_1_19CE0(omObjData *object) var_r31->unk_FC &= ~0x3000; var_r31->unk_FC &= ~0x30000; var_r31->unk_FC &= ~0x300000; - var_r31->unk_100 = 0x78; + var_r31->unk_100 = 2 * REFRESH_RATE; var_r31->unk_F8 = 0.0f; var_r31->unk_00.unk_3C &= ~0x210; } @@ -6567,7 +6574,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x10; var_r31->unk_00.unk_3C |= 0x210; - fn_1_2BD0(&var_r31->unk_00, 48.179996f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 48.179995f : 57.816f, 0.0f); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0); if (fn_1_125C0(0, 1) <= 0) { var_r31->unk_FC |= 0x80000; @@ -6615,7 +6622,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) var_r31->unk_FC |= 0x100000; var_r31->unk_00.unk_3C |= 0x200; var_r31->unk_00.unk_3C &= ~0x10; - var_f31 = 40.15f; + var_f31 = VERSION_NTSC ? 40.15f : 48.180005f; if (var_r31->unk_FC & 4) { var_f31 = var_f31 / 2; } @@ -6690,7 +6697,7 @@ void fn_1_1E150(omObjData *var_r29) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x800000; var_r31->unk_118 = 0x7EB; - fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f); Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]); Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF); fn_1_125C0(0, 0); @@ -7074,7 +7081,7 @@ void fn_1_20170(omObjData *var_r30) break; case 0x7E9: if (lbl_1_bss_1A4->work[0] >= 0x417) { - if (100.0f < lbl_1_bss_128) { + if ((VERSION_NTSC ? 100.0f : 80.0f) < lbl_1_bss_128) { var_r31->unk_118++; GWPlayerCoinWinSet(lbl_1_bss_120, 10); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[21], 0.0f, 8.0f, 0); @@ -7092,14 +7099,13 @@ void fn_1_20170(omObjData *var_r30) break; case 0x7EB: if (var_r31->unk_FC & 0x800000) { - // inline? var_r29 = var_r31; - var_r29->unk_00.unk_84.y += -2.4333334f; + var_r29->unk_00.unk_84.y += -146.0f / REFRESH_RATE; var_r29->unk_00.unk_6C.y += var_r29->unk_00.unk_84.y; var_r29->unk_00.unk_A8 = MapPos( var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC); if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) { - fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f); } var_f31 = var_r29->unk_00.unk_6C.x; var_f30 = var_r29->unk_00.unk_6C.z; @@ -7367,12 +7373,12 @@ void fn_1_24620(omObjData *var_r31) case 0x40D: case 0x415: if (lbl_1_bss_2FC >= 0) { - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 0x3B) / 60); + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE); } else { sp120 = 0; if ((lbl_1_bss_118 == 2) || (lbl_1_bss_118 == 4) || (lbl_1_bss_118 == 5)) { - if (lbl_1_bss_304 < 0x708) { + if (lbl_1_bss_304 < 30 * REFRESH_RATE) { sp120 = 1; } } @@ -7380,7 +7386,7 @@ void fn_1_24620(omObjData *var_r31) sp120 = 1; } if (sp120 != 0) { - lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / 60, -1, -1); + lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / REFRESH_RATE, -1, -1); } } lbl_1_bss_304--; @@ -7390,7 +7396,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x3F4: - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x3F5: lbl_1_bss_128 += 1.0f; @@ -7413,7 +7419,7 @@ void fn_1_24620(omObjData *var_r31) omVibrate(lbl_1_bss_120, 0xC, 6, 6); lbl_1_bss_128 += 1.0f; Hu3DModelPosSet(lbl_1_bss_1A0->model[6], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); - if (120.0f < lbl_1_bss_128) { + if (2 * REFRESH_RATE < lbl_1_bss_128) { var_r31->work[0] += 1; fn_1_6CB0(fn_1_9074, 2); HuAudFXPlay(0x7BB); @@ -7433,7 +7439,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x3FC: - var_f31 = lbl_1_bss_128 / 120.0f; + var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE); if (1.0f < var_f31) { var_f31 = 1.0f; } @@ -7442,7 +7448,7 @@ void fn_1_24620(omObjData *var_r31) Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31); - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x3FD: case 0x3FE: @@ -7493,7 +7499,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x406: - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x407: lbl_1_bss_128 += 1.0f; @@ -7516,7 +7522,7 @@ void fn_1_24620(omObjData *var_r31) omVibrate(lbl_1_bss_120, 0xC, 6, 6); lbl_1_bss_128 += 1.0f; Hu3DModelPosSet(lbl_1_bss_1A0->model[17], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); - if (120.0f < lbl_1_bss_128) { + if (2 * REFRESH_RATE < lbl_1_bss_128) { var_r31->work[0] += 1; fn_1_6CB0(fn_1_9824, 4); HuAudFXPlay(0x7BB); @@ -7536,7 +7542,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x40E: - var_f31 = lbl_1_bss_128 / 120.0f; + var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE); if (1.0f < var_f31) { var_f31 = 1.0f; } @@ -7545,7 +7551,7 @@ void fn_1_24620(omObjData *var_r31) Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31); - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x40F: lbl_1_bss_20 = -1; @@ -7598,7 +7604,7 @@ void fn_1_24620(omObjData *var_r31) lbl_1_bss_128 += 1.0f; break; case 0x417: - fn_1_23CA0(var_r31, 0.0f, 120.0f); + fn_1_23CA0(var_r31, 0.0f, 2 * REFRESH_RATE); break; case 0x418: lbl_1_bss_128 += 1.0f; diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 05d6adaa..4f55107a 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -872,11 +872,11 @@ void fn_1_2A34(Bss348Data *arg0, s32 arg1, s32 arg2) temp_r30->scale.y = temp_r31->scale.y; temp_r30->scale.z = 0.8f * temp_r31->scale.z; if (arg2 == 0) { - HuSprAttrReset(arg0->unkA, 0, 1); + HuSprAttrReset(arg0->unkA, 0, HUSPR_ATTR_NOANIM); HuSprGrpScaleSet(arg0->unkA, 1, 1); } else { - HuSprAttrReset(arg0->unkA, 0, 64); + HuSprAttrReset(arg0->unkA, 0, HUSPR_ATTR_REVERSE); } } diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 2c8f9116..9db313c7 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -87,7 +87,7 @@ typedef struct M453DllWork2 { M453DllUnkStruct unk_5C; u8 unk_9C; s32 unk_A0; -} M453DllWork2; /* size 0xA4 */ +} M453DllWork2; /* size 0xA4 */ // same as Unkm403Struct_01 void fn_1_440(omObjData *object); void fn_1_460(omObjData *object); @@ -941,8 +941,8 @@ void fn_1_23E0(omObjData *object) case 4: var_r24 = fn_1_82AC(sp38); for (var_r30 = 0; var_r30 < var_r24; var_r30++) { - PSVECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); - sp20[var_r30] = PSVECMag(&sp8); + VECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); + sp20[var_r30] = VECMag(&sp8); } for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) { for (var_r29 = var_r30 + 1; var_r29 < var_r24; var_r29++) { @@ -1144,14 +1144,14 @@ s32 fn_1_36DC(void) for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { var_r27 = lbl_1_bss_3C[var_r29]->data; if (var_r27->unk_07 != 0) { - PSVECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 80.0f) { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_f30 = 0.0001f + (0.5f * (80.0f - var_f31)); - PSVECScale(&sp8, &sp8, var_f30); - PSVECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); - PSVECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); + VECScale(&sp8, &sp8, var_f30); + VECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); + VECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); var_r28->unk_0E++; var_r27->unk_0E++; var_r26++; @@ -1164,7 +1164,7 @@ s32 fn_1_36DC(void) var_r25 = lbl_1_bss_3C[var_r30]; var_r31 = var_r25->data; if (var_r31->unk_07 != 0) { - PSVECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); + VECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); if (var_r31->unk_2C.x > 660.0f) { var_r31->unk_2C.x = 660.0f; } @@ -1237,8 +1237,8 @@ void fn_1_3BB4(Vec *arg0, Vec *arg1) var_r30 = fn_1_844C(sp18); var_f31 = 2000.0f; for (var_r31 = 0; var_r31 < var_r30; var_r31++) { - PSVECSubtract(&sp18[var_r31], arg0, &spC); - var_f30 = PSVECMag(&spC); + VECSubtract(&sp18[var_r31], arg0, &spC); + var_f30 = VECMag(&spC); if (!(var_f30 >= var_f31)) { var_f31 = var_f30; *arg1 = sp18[var_r31]; @@ -1403,18 +1403,18 @@ void fn_1_4574(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + MTXRotRad(arg0, 0x5A, 0.017453292f * argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, 0.017453292f * arg8); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, 0.017453292f * arg9); + MTXConcat(sp8, arg0, arg0); } } // TODO figue out type of arg0 @@ -1570,8 +1570,8 @@ void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3) arg0[0] = 0.0f; for (var_r30 = 1; var_r30 < arg3; var_r30++) { - PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); - arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < arg3; var_r30++) { @@ -1630,20 +1630,7 @@ void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*a sp48[var_r30] = arg2[var_r30][var_r29]; sp8[var_r30] = arg3[var_r30][var_r29]; } - var_f30 = arg8; - var_r31 = var_f30; - var_f30 -= var_r31; - var_f31 = arg1[var_r31 + 1] - arg1[var_r31]; - var_f29 = var_f31 * var_f30; - var_f28 = sp48[var_r31] - + (var_f29 - * ((var_f29 * ((3.0f * sp8[var_r31]) + ((var_f29 * (sp8[var_r31 + 1] - sp8[var_r31])) / var_f31))) - + (((sp48[var_r31 + 1] - sp48[var_r31]) / var_f31) - (var_f31 * ((2.0f * sp8[var_r31]) + sp8[var_r31 + 1]))))); - if (var_f31 == 0.0f) { - var_f28 = sp48[var_r31]; - } - var_f27 = var_f28; - arg0[var_r29] = var_f27; + arg0[var_r29] = fn_1_513C(arg8, arg1, sp48, sp8, 3); } } diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 86a363d1..6771a755 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -514,12 +514,12 @@ void fn_1_6EB4(omObjData *object) Mtx sp8; s32 var_r30; - PSMTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp8, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (var_r30 = 0; var_r30 < 6; var_r30++) { - PSMTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(object->model[var_r30 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -685,12 +685,12 @@ void fn_1_73C4(omObjData *object) break; } } - PSMTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp8, sp38, sp8); + MTXConcat(sp8, sp38, sp8); for (var_r28 = 0; var_r28 < 6; var_r28++) { - PSMTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); - PSMTXConcat(sp8, sp38, sp38); + MTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); + MTXConcat(sp8, sp38, sp38); Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]); Hu3DModelRotSet(object->model[var_r28 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -825,16 +825,16 @@ s32 fn_1_7CE0(float arg8, float arg9, Vec *arg0) var_r28 -= 6; fn_1_7BB0(var_r27, &sp10); sp10 = lbl_1_data_A88[var_r27]; - PSMTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); + MTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[var_r28]; var_r23 = lbl_1_data_B14[var_r28]; for (var_r24 = 0; var_r24 < var_r23; var_r24++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg0->x = sp1C[0][3]; arg0->y = sp1C[1][3]; arg0->z = sp1C[2][3]; @@ -930,17 +930,17 @@ s32 fn_1_844C(Vec *arg0) var_r30 = lbl_1_bss_A4[lbl_1_bss_9C]; var_r27 = var_r30->data; var_r23 = fn_1_8250(var_r27, sp8); - PSMTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); + MTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (var_r29 = 0; var_r29 < var_r23; var_r29++) { fn_1_7BB0(sp8[var_r29], arg0); var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6; arg0->x += lbl_1_data_B2C[var_r26].x; arg0->y += lbl_1_data_B2C[var_r26].y; arg0->z += lbl_1_data_B2C[var_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; @@ -991,7 +991,7 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) { return 0; } - PSVECSubtract(arg0, &var_r28->trans, &sp3C); + VECSubtract(arg0, &var_r28->trans, &sp3C); sp3C.z = sp3C.z / cosd(var_r28->rot.x); var_f24 = arg0->z; var_f25 = arg0->x; @@ -1002,29 +1002,29 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) } var_r24 -= 6; sp48 = lbl_1_data_A88[var_r19]; - PSVECSubtract(&sp3C, &sp48, &sp3C); + VECSubtract(&sp3C, &sp48, &sp3C); var_r30 = lbl_1_data_B74[var_r24][0]; var_r29 = lbl_1_data_B74[var_r24][1]; var_r21 = lbl_1_data_BA4[var_r24]; for (var_r31 = 0; var_r31 < var_r21; var_r31++) { var_r27 = (var_r31 + 1) % var_r21; - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); var_f30 = (((sp3C.z * sp24.z) + (((sp3C.y * sp24.y) + ((sp3C.x * sp24.x) - (sp24.x * var_r30[var_r31].x))) - (sp24.y * var_r30[var_r31].y))) - (sp24.z * var_r30[var_r31].z)) @@ -1032,9 +1032,9 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r30[var_r31].x + (var_f30 * sp24.x); sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y); sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f28 = PSVECMag(&spC); - PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); + VECSubtract(&sp30, &sp3C, &spC); + var_f28 = VECMag(&spC); + VECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); var_f29 = (((sp3C.z * sp18.z) + (((sp3C.y * sp18.y) + ((sp3C.x * sp18.x) - (sp18.x * var_r29[var_r31].x))) - (sp18.y * var_r29[var_r31].y))) - (sp18.z * var_r29[var_r31].z)) @@ -1042,8 +1042,8 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r29[var_r31].x + (var_f29 * sp18.x); sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y); sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f27 = PSVECMag(&spC); + VECSubtract(&sp30, &sp3C, &spC); + var_f27 = VECMag(&spC); if (var_f28 == 0.0f) { var_f31 = var_f30; } diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 2a2c634a..36c27f42 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -3,7 +3,6 @@ #include "game/object.h" #include "game/objsub.h" - #include "game/hsfmotion.h" #include "game/pad.h" @@ -15,10 +14,13 @@ #include "game/minigame_seq.h" #include "game/wipe.h" - #include "ext_math.h" #include "math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct camera_view_params { float zoom; Vec pos; @@ -69,7 +71,7 @@ void ObjectSetup(void) lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; - PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(light); Hu3DGLightStaticSet(light, 1); @@ -329,15 +331,15 @@ s32 fn_1_C90(void) s32 fn_1_3214(void); u32 lbl_1_data_E0[5][2] = { - 0x5F0000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0, 0x540024, 1, 0x54001C, 1, - 0x5F0017, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0, - 0x5F0018, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0, }; diff --git a/src/REL/m455Dll/stage.c b/src/REL/m455Dll/stage.c index c7873251..ff708c84 100644 --- a/src/REL/m455Dll/stage.c +++ b/src/REL/m455Dll/stage.c @@ -1096,7 +1096,7 @@ void fn_1_6A6C(omObjData *object) HsfanimStruct01 *data = particleP->unk_48; s32 j; for(j=0; junk_30; j++, data++) { - if(++data->unk00_s16 > data->unk02) { + if(++data->unk00 > data->unk02) { s32 alpha = data->unk40.a-1; if(alpha < 0) { data->unk2C = 0; @@ -1163,7 +1163,7 @@ s32 fn_1_6CB0(Vec *arg0, float arg1) temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); - temp_r30->unk00_s16 = 0; + temp_r30->unk00 = 0; temp_r30->unk02 = ((s32)frand()%16)+45; temp_r30->unk30 = (s32)frand()%360; temp_r30->unk2C = 145; @@ -1280,10 +1280,10 @@ void fn_1_76B0(omObjData *object) if(temp_r30->unk2C <= 0.0f) { continue; } - if(++temp_r30->unk00_s16 > 360) { - temp_r30->unk00_s16 -= 360; + if(++temp_r30->unk00 > 360) { + temp_r30->unk00 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00); temp_r30->unk34.y += temp_r30->unk08.y; if(temp_r30->unk34.y >= 0.0f) { fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); @@ -1322,7 +1322,7 @@ s32 fn_1_79C8(Vec *pos, float scale) temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; - temp_r31->unk00_s16 = (s32)frand()%360; + temp_r31->unk00 = (s32)frand()%360; temp_r31->unk2C = 20*scale; return i; } @@ -1804,4 +1804,4 @@ float fn_1_9F18(float start, float end, float max) } return angle; -} \ No newline at end of file +} diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c new file mode 100644 index 00000000..97e8ffb5 --- /dev/null +++ b/src/REL/m456Dll/main.c @@ -0,0 +1,969 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m456Dll.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M456DllMainWork { + struct { + u8 unk_00_field0 : 1; + u8 unk_00_field1 : 1; + u8 unk_00_field2 : 1; + u8 unk_00_field3 : 1; + }; + s16 unk_02; + s16 unk_04; + s8 unk_06; + s8 unk_07; + u16 unk_08; + u16 unk_0A; + s32 unk_0C; + s32 unk_10; + s16 unk_14; + s16 unk_16; + s16 unk_18; + s16 unk_1A; + char unk1C[4]; + s32 unk_20; + s32 unk_24; + s16 unk_28; + s16 unk_2A; + s16 unk_2C; + s16 unk_2E; + s16 unk_30; +} M456DllMainWork; /* size = 0x34 */ + +typedef struct M456DllData0Struct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; +} M456DllData0Struct; /* size = 0x1C */ + +typedef struct M456DllData1B0Struct { + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; +} M456DllData1B0Struct; /* size = 0x08 */ + +typedef struct M456DllDataE4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ u32 unk_04; +} M456DllDataE4Struct; /* size = 0x08 */ + +typedef struct M456DllBss18Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + float unk_0C; + float unk_10; + s32 unk_14; + s32 unk_18; + float unk_1C; + s16 unk_20[0x10]; +} M456DllBss18Struct; /* size 0x40 */ + +void fn_1_1304(omObjData *object); +void fn_1_2040(omObjData *object); +float fn_1_2090(float arg8, float arg9, float argA); +void fn_1_2194(Process *process); +void fn_1_21F8(s32 arg0, s32 arg1, float arg8); +void fn_1_2448(omObjData *object); +void fn_1_2918(Process *process); +void fn_1_2AC4(omObjData *object); +void fn_1_3C0(omObjData *object); +void fn_1_498(omObjData *); +void fn_1_BE4(omObjData *); +void fn_1_C40(Process *process); +void fn_1_CC4(void); +s32 fn_1_D2C(void); +s32 fn_1_F4C(void); +void fn_1_FD0(omObjData *object); + +M456DllData0Struct lbl_1_data_0[2] = { + { 500.0f, 0.0f, 1000.0f, 0.0f, 40.0f, 0.0f, 0.0f }, + { 1985.0f, 0.0f, 100.0f, 100.0f, -13.0f, 0.0f, 0.0f }, +}; +Vec lbl_1_data_38 = { 700.0f, 2500.0f, -700.0f }; +Vec lbl_1_data_44 = { 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_50 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_54 = { 200.0f, 15000.0f, -200.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; + +omObjData *lbl_1_bss_8C; +omObjData *lbl_1_bss_88; +omObjData *lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_70[4]; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s16 lbl_1_bss_62; +s16 lbl_1_bss_60; +u32 lbl_1_bss_5C; +u32 lbl_1_bss_58; +M456DllBss18Struct lbl_1_bss_18; +u32 lbl_1_bss_14; +Vec lbl_1_bss_8; +s16 lbl_1_bss_6; +s16 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Process *var_r31; + CameraData *var_r30; + s16 var_r29; + + var_r30 = Hu3DCamera; + OSReport("******* M456ObjectSetup *********\n"); + var_r31 = omInitObjMan(0x32, 0x2000); + omGameSysInit(var_r31); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_88 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; + lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; + lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); + Hu3DGLightInfinitytSet(var_r29); + Hu3DGLightStaticSet(var_r29, 1); + Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far); + Hu3DShadowTPLvlSet(0.7f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44); + HuAudSndGrpSet(0x4E); + lbl_1_bss_84 = omAddObjEx(var_r31, 0, 0, 0, -1, fn_1_3C0); + fn_1_2194(var_r31); + fn_1_C40(var_r31); + fn_1_2DF4(var_r31); + lbl_1_bss_5C = GWMGRecordGet(0xA); + if (lbl_1_bss_5C == 0) { + lbl_1_bss_5C = 5 * REFRESH_RATE; + } + lbl_1_bss_58 = 0; + fn_1_2918(var_r31); + lbl_1_bss_18.unk_14 = lbl_1_bss_5C; + lbl_1_bss_18.unk_00 = 1; + lbl_1_bss_18.unk_0C = 536.0f; +} + +s32 lbl_1_data_90 = -1; +s32 lbl_1_data_94 = -1; + +void fn_1_3A0(u32 arg0) +{ + lbl_1_bss_80 = arg0; +} + +s32 fn_1_3B0(void) +{ + return lbl_1_bss_80; +} + +void fn_1_3C0(omObjData *object) +{ + CameraData *var_r31 = Hu3DCamera; + fn_1_3A0(0); + lbl_1_bss_6C = REFRESH_RATE; + lbl_1_bss_70[0] = lbl_1_bss_70[1] = lbl_1_bss_70[2] = lbl_1_bss_70[3] = -1; + lbl_1_bss_62 = 5; + lbl_1_bss_60 = REFRESH_RATE; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + var_r31->fov = 30.0f; + object->func = fn_1_498; +} + +void fn_1_498(omObjData *object) +{ + s16 sp8[4]; + + s32 var_r31; + omObjData **var_r29; + M456DllMainWork *var_r28; + + switch (fn_1_3B0()) { + case 0: + if (lbl_1_data_94 < 0) { + lbl_1_data_94 = HuAudFXPlay(0x7D1); + } + if (--lbl_1_bss_6C == 0) { + fn_1_3A0(1); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + break; + case 1: + if (--lbl_1_bss_6C == 0) { + fn_1_3A0(2); + lbl_1_bss_6 = MGSeqCreate(3, 0); + } + break; + case 2: + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + fn_1_3A0(3); + lbl_1_bss_4 = MGSeqCreate(1, 5, -1, -1); + } + if ((lbl_1_data_90 < 0) && ((MGSeqStatGet(lbl_1_bss_6) & 0x10) != 0)) { + lbl_1_data_90 = HuAudSeqPlay(0x43); + } + break; + case 3: + if (--lbl_1_bss_60 == 0) { + lbl_1_bss_62--; + MGSeqParamSet(lbl_1_bss_4, 1, lbl_1_bss_62); + lbl_1_bss_60 = REFRESH_RATE; + } + if (lbl_1_bss_62 == 0) { + lbl_1_bss_64 = fn_1_D2C(); + if (lbl_1_bss_64 == 0) { + fn_1_3A0(5); + lbl_1_bss_6 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_90, 0x64); + } + else { + fn_1_3A0(4); + HuAudFXPlay(0x11); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + } + break; + case 4: + if (lbl_1_bss_4 >= 0) { + MGSeqParamSet(lbl_1_bss_4, 2, -1); + lbl_1_bss_4 = -1; + } + if (lbl_1_bss_6C != 0) { + lbl_1_bss_6C--; + } + else if (lbl_1_bss_18.unk_18 < lbl_1_bss_14) { + lbl_1_bss_18.unk_18++; + } + if (fn_1_F4C() != 0) { + fn_1_3A0(5); + lbl_1_bss_6 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_90, 0x64); + } + break; + case 5: + if (lbl_1_bss_4 >= 0) { + MGSeqParamSet(lbl_1_bss_4, 2, -1); + lbl_1_bss_4 = -1; + } + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + if (lbl_1_bss_58 == 0) { + fn_1_3A0(9); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + else { + fn_1_3A0(6); + lbl_1_bss_6 = MGSeqCreate(0xE, lbl_1_bss_58); + GWMGRecordSet(0xA, lbl_1_bss_58); + lbl_1_bss_18.unk_04 = 1; + lbl_1_bss_18.unk_14 = lbl_1_bss_18.unk_18; + } + } + break; + case 6: + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + fn_1_3A0(9); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + break; + case 9: + if (lbl_1_bss_6C != 0) { + lbl_1_bss_6C--; + } + if (lbl_1_bss_6C == 0) { + if (fn_1_F4C() != 0) { + fn_1_3A0(0xB); + if (lbl_1_bss_64 != 0) { + var_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < lbl_1_bss_64; var_r31++) { + var_r28 = var_r29[lbl_1_bss_70[var_r31]]->data; + sp8[var_r31] = var_r28->unk_14; + GWPlayerCoinWinSet(lbl_1_bss_70[var_r31], 10); + } + for (; var_r31 < 4; var_r31++) { + sp8[var_r31] = -1; + } + lbl_1_bss_6 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], sp8[3]); + HuAudSStreamPlay(1); + } + else { + lbl_1_bss_6 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + lbl_1_bss_6C = 3.5 * REFRESH_RATE; + } + } + break; + case 11: + if (--lbl_1_bss_6C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + HuAudFXStop(lbl_1_data_94); + object->func = fn_1_BE4; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + object->func = fn_1_BE4; + } +} + +void fn_1_BE4(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_CC4(); + fn_1_2F3C(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M456Exit *********\n"); + } +} + +void fn_1_C40(Process *process) +{ + s32 var_r31; + + lbl_1_bss_68 = 0; + omMakeGroupEx(process, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + omAddObjEx(process, 5, 0xA, 0x32, 0, fn_1_FD0); + } +} + +void fn_1_CC4(void) +{ + s32 var_r31; + omObjData **var_r30; + + var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + if (var_r30 != NULL) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_2040(var_r30[var_r31]); + } + } +} + +s32 fn_1_D2C(void) +{ + s32 sp8[4]; + + s32 var_r31; + M456DllMainWork *var_r30; + s32 var_r29; + u32 var_r28; + omObjData **var_r27; + + var_r29 = 0; + var_r28 = 0; + var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = var_r27[var_r31]->data; + if ((var_r30->unk_30 != 0) && (var_r30->unk_30 < 5)) { + var_r30->unk_30 = 5; + } + if (var_r30->unk_30 > var_r28) { + var_r28 = var_r30->unk_30; + var_r29 = 0; + sp8[var_r29++] = var_r31; + } + else if (var_r30->unk_30 == var_r28) { + sp8[var_r29++] = var_r31; + } + } + if (var_r28 == 0) { + lbl_1_bss_70[var_r31] = -1; + return 0; + } + lbl_1_bss_14 = (var_r28 * REFRESH_RATE) / 5; + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + if (GWPlayerCfg[sp8[var_r31]].iscom == 0) { + break; + } + } + if (var_r31 < var_r29) { + if (lbl_1_bss_14 > lbl_1_bss_5C) { + lbl_1_bss_58 = lbl_1_bss_14; + } + if (lbl_1_bss_14 >= 7.5f * REFRESH_RATE) { + GWGameStat.present[0x33] = 1; + } + } + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + lbl_1_bss_70[var_r31] = sp8[var_r31]; + } + return var_r29; +} + +s32 fn_1_F4C(void) +{ + s32 var_r31; + omObjData **var_r30; + M456DllMainWork *var_r29; + + var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = var_r30[var_r31]->data; + if (var_r29->unk_00_field2 == 0) { + return 0; + } + } + return 1; +} + +M456DllDataE4Struct lbl_1_data_E4[0xA] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x1C), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x24), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x2C), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x34), 1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x3C), 1 }, +}; +Vec lbl_1_data_134[4] = { + { -300.0f, 0.0f, 0.0f }, + { -100.0f, 0.0f, 0.0f }, + { 100.0f, 0.0f, 0.0f }, + { 300.0f, 0.0f, 0.0f }, +}; +float lbl_1_data_164[8] = { -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f }; +u16 lbl_1_data_184[2] = { 0x40, 0x20 }; + +void fn_1_FD0(omObjData *object) +{ + M456DllMainWork *var_r31; + u32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M456DllMainWork), MEMORY_DEFAULT_NUM); + object->data = var_r31; + memset(var_r31, 0, sizeof(M456DllMainWork)); + var_r31->unk_02 = lbl_1_bss_68++; + var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx; + var_r27 = GWGameStat.rumble; + var_r31->unk_10 = var_r27; + var_r28 = GWPlayerCfg[var_r31->unk_02].character; + var_r31->unk_14 = var_r28; + var_r31->unk_16 = GWPlayerCfg[var_r31->unk_02].diff; + var_r31->unk_18 = GWPlayerCfg[var_r31->unk_02].group; + var_r31->unk_0C = -1; + object->model[0] = CharModelCreate(var_r28, 8); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelCameraSet(object->model[0], 1); + var_r31->unk_20 = 0; + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (lbl_1_data_E4[var_r29].unk_04 == 0) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, lbl_1_data_E4[var_r29].unk_00); + } + else { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, var_r31->unk_14 + lbl_1_data_E4[var_r29].unk_00); + } + } + Hu3DMotionSet(object->model[0], object->motion[var_r31->unk_20]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + CharModelVoiceEnableSet(var_r31->unk_14, object->motion[5], 0); + CharModelVoiceEnableSet(var_r31->unk_14, object->motion[6], 0); + var_r31->unk_2E = REFRESH_RATE; + object->trans.x = lbl_1_data_134[var_r31->unk_02].x; + object->trans.y = lbl_1_data_134[var_r31->unk_02].y; + object->trans.z = lbl_1_data_134[var_r31->unk_02].z; + object->rot.y = 0.0f; + CharModelDataClose(var_r31->unk_14); + object->func = fn_1_1304; +} + +#if VERSION_PAL +#define fn_1_1288_COND (((var_r31->unk_16 + 4) * 60) / 50.0f) +#else +#define fn_1_1288_COND (var_r31->unk_16 + 4) +#endif + +void fn_1_1288(omObjData *object) +{ + M456DllMainWork *var_r31 = object->data; + + if ((frand() & 0x3F) < fn_1_1288_COND) { + if (var_r31->unk_0C <= 0) { + var_r31->unk_0A |= 0x40; + return; + } + var_r31->unk_0A |= 0x20; + } +} + +void fn_1_1304(omObjData *var_r30) +{ + Vec sp14; + Vec sp8; + float var_f31; + + M456DllMainWork *var_r31; + s32 var_r29; + u32 var_r28; + void *var_r27; + s32 var_r26; + omObjData **var_r25; + s32 var_r24; + + var_r31 = var_r30->data; + var_r29 = var_r31->unk_20; + var_r28 = var_r31->unk_24; + if (var_r31->unk_00_field0 == 0) { + var_r30->trans.y = fn_1_63AC(); + } + if (fn_1_3B0() < 3) { + return; + } + switch (var_r31->unk_1A) { + case 0: + if (fn_1_3B0() == 5) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + return; + } + if (fn_1_3B0() == 4) { + if (var_r31->unk_30 != 0) { + var_r31->unk_1A = 1; + var_r31->unk_28 = REFRESH_RATE; + } + else { + var_r31->unk_1A = 6; + var_r31->unk_00_field2 = 1; + } + return; + } + if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { + var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; + var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; + var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; + var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04] & 0xFFFF9FFF; + } + else { + var_r31->unk_08 = var_r31->unk_0A = 0; + var_r31->unk_06 = var_r31->unk_07 = 0; + fn_1_1288(var_r30); + } + if (var_r31->unk_2C != 0) { + if (--var_r31->unk_2C == 0) { + var_r29 = 0; + var_r28 = 0x40000001; + } + } + if ((var_r31->unk_0A & 0x60) != 0) { + if (var_r31->unk_0C < 0) { + var_r31->unk_0C = (var_r31->unk_0A & 0x40) ? 0 : 1; + } + if (((var_r31->unk_0A & lbl_1_data_184[var_r31->unk_0C]) != 0) && ((var_r31->unk_0A & ~lbl_1_data_184[var_r31->unk_0C]) == 0)) { + var_r31->unk_30++; + var_r31->unk_2C = var_r31->unk_2E; + var_r29 = 1; + var_r28 = 0x40000001; + var_r31->unk_0C ^= 1; + } + } + break; + case 1: + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field0 = 1; + var_r31->unk_1A = 2; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE; + } + var_r29 = 2; + var_r28 = 0; + break; + case 2: + var_r29 = 3; + var_r28 = 0; + if (var_r31->unk_28 < (var_r31->unk_2A - 0xF)) { + var_f31 = (float)var_r31->unk_28 / (var_r31->unk_2A - 0xF); + var_r30->trans.y = -300.0 * cosd((270.0f * var_f31)); + var_r30->trans.z = 400.0f + (-400.0f * var_f31); + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.35f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + fn_1_7F78(); + HuAudFXPlay(0x7D2); + } + } + if (--var_r31->unk_28 == 0) { + var_r30->trans.y = -300.0f; + var_r30->trans.z = 400.0f; + var_r31->unk_1A = 3; + var_r31->unk_28 = (var_r31->unk_30 * REFRESH_RATE) / 5; + for (var_r26 = 0; var_r26 < lbl_1_bss_64; var_r26++) { + if (var_r31->unk_02 == lbl_1_bss_70[var_r26]) { + break; + } + } + if (var_r26 < lbl_1_bss_64) { + var_r31->unk_00_field3 = 1; + var_r31->unk_28 -= VERSION_PAL ? 16.5f : 19.800001f; + } + else { + var_r31->unk_28 -= 0.8f * REFRESH_RATE; + } + var_r31->unk_2A = var_r31->unk_28; + } + break; + case 3: + var_r29 = 5; + var_r28 = 0x40000001; + if (var_r31->unk_28 < 1.0f * REFRESH_RATE) { + if ((frand() & 3) == 0) { + sp14.x = var_r30->trans.x; + sp14.y = 100.0f + var_r30->trans.y; + sp14.z = var_r30->trans.z; + fn_1_74F8(&sp14, -1.0f); + } + } + else if ((frand() & 0xF) == 0) { + sp14.x = var_r30->trans.x; + sp14.y = 100.0f + var_r30->trans.y; + sp14.z = var_r30->trans.z; + fn_1_74F8(&sp14, -1.0f); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field1 = 0; + if (var_r31->unk_00_field3 == 0) { + var_r31->unk_1A = 4; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE / 1.25; + } + else { + var_r31->unk_1A = 5; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE; + } + } + break; + case 4: + var_r29 = 4; + var_r28 = 0x40000001; + var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A; + var_r30->trans.y = -300.0 * sind((90.0f * var_f31)); + if ((frand() & 3) == 0) { + fn_1_74F8(&var_r30->trans, -1.0f); + } + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.2f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + HuAudFXPlay(0x7D3); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + var_r30->trans.y = lbl_1_data_164[var_r31->unk_14]; + } + break; + case 5: + var_r29 = 6; + var_r28 = 0; + var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A; + var_r30->trans.y = -300.0 * -sind((270.0f * var_f31)); + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.7f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, 5.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + HuAudFXPlay(0x7D3); + HuAudCharVoicePlay(var_r31->unk_14, 0x125); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + var_r30->trans.y = lbl_1_data_164[var_r31->unk_14]; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + } + break; + case 6: + if (var_r31->unk_00_field0 == 0) { + var_r29 = 0; + } + else { + var_r29 = 5; + } + var_r28 = 0x40000001; + if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) { + var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + VECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); + var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f); + } + if (fn_1_3B0() == 0xB) { + var_r31->unk_1A = 7; + if (var_r31->unk_00_field3 != 0) { + Hu3DMotionOverlaySet(var_r30->model[0], var_r30->motion[9]); + HuAudCharVoicePlay(var_r31->unk_14, 0x124); + } + } + break; + case 7: + if (var_r31->unk_00_field3 != 0) { + var_r29 = 5; + var_r28 = 0x40000001; + if (73.0f <= Hu3DMotionOverlayTimeGet(var_r30->model[0])) { + Hu3DMotionOverlayTimeSet(var_r30->model[0], 35.0f); + Hu3DModelAttrReset(var_r30->model[0], HU3D_MOTATTR_OVL_PAUSE); + } + } + else if (var_r31->unk_00_field0 == 0) { + var_r29 = 8; + var_r28 = 0; + } + break; + } + if ((var_r31->unk_00_field0 != 0) && (var_r31->unk_1A >= 6) && (var_r31->unk_1A <= 7) && ((frand() & 0x3F) == 0)) { + fn_1_61C8(&var_r30->trans, 0.3f, -1.0f, -1); + } + if ((var_r29 != var_r31->unk_20) || (var_r28 != var_r31->unk_24)) { + var_r31->unk_20 = var_r29; + var_r31->unk_24 = var_r28; + CharModelMotionShiftSet(var_r31->unk_14, var_r30->motion[var_r31->unk_20], 0.0f, 8.0f, var_r28); + } +} + +void fn_1_2040(omObjData *object) +{ + M456DllMainWork *sp8 = object->data; + if (object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } +} + +float fn_1_2090(float var_f29, float sp8, float spC) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(sp8 - var_f29, 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f30 = fmod(var_f29 + (spC * var_f31), 360.0); + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_2194(Process *process) +{ + fn_1_21F8(0, 0, 0.0f); + lbl_1_bss_8C = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_2448); +} + +void fn_1_21F8(s32 arg0, s32 arg1, float arg8) +{ + CZoom = lbl_1_data_0[arg0].unk_00 + (arg8 * (lbl_1_data_0[arg1].unk_00 - lbl_1_data_0[arg0].unk_00)); + Center.x = lbl_1_data_0[arg0].unk_04 + (arg8 * (lbl_1_data_0[arg1].unk_04 - lbl_1_data_0[arg0].unk_04)); + Center.y = lbl_1_data_0[arg0].unk_08 + (arg8 * (lbl_1_data_0[arg1].unk_08 - lbl_1_data_0[arg0].unk_08)); + Center.z = lbl_1_data_0[arg0].unk_0C + (arg8 * (lbl_1_data_0[arg1].unk_0C - lbl_1_data_0[arg0].unk_0C)); + CRot.x = lbl_1_data_0[arg0].unk_10 + (arg8 * (lbl_1_data_0[arg1].unk_10 - lbl_1_data_0[arg0].unk_10)); + CRot.y = lbl_1_data_0[arg0].unk_14 + (arg8 * (lbl_1_data_0[arg1].unk_14 - lbl_1_data_0[arg0].unk_14)); + CRot.z = lbl_1_data_0[arg0].unk_18 + (arg8 * (lbl_1_data_0[arg1].unk_18 - lbl_1_data_0[arg0].unk_18)); +} + +float lbl_1_data_1A8[2] = { 0.0f, 0.0f }; + +void fn_1_2448(omObjData *object) +{ + CameraData *sp8 = Hu3DCamera; + + switch (fn_1_3B0()) { + case 1: + fn_1_21F8(0, 1, sind((90.0f * lbl_1_data_1A8[0]))); + if (lbl_1_data_1A8[0] < 1.0f) { + lbl_1_data_1A8[0] += 1.0f / REFRESH_RATE; + if (lbl_1_data_1A8[0] > 1.0f) { + lbl_1_data_1A8[0] = 1.0f; + break; + } + } + break; + case 4: + case 5: + case 6: + case 7: + break; + case 8: + fn_1_21F8(1, 1, 0.0f); + break; + case 9: + break; + } +} + +M456DllData1B0Struct lbl_1_data_1B0[0x10] = { + { DATA_MAKE_NUM(DATADIR_M456, 0x44), 0x10E }, + { 0x610037, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, +}; + +Vec2f lbl_1_data_230[0x17] = { + { 0.0f, 0.0f }, + { -52.0f, -9.0f }, + { 53.0f, -8.0f }, + { 35.0f, -8.0f }, + { 9.0f, -8.0f }, + { -9.0f, -8.0f }, + { -31.0f, -8.0f }, + { 23.0f, -8.0f }, + { -17.0f, -8.0f }, + { 53.0f, 8.0f }, + { 35.0f, 8.0f }, + { 9.0f, 8.0f }, + { -9.0f, 8.0f }, + { -31.0f, 8.0f }, + { 23.0f, 8.0f }, + { -17.0f, 8.0f }, + { 355.0f, 0.0f }, + { 0.0f, 0.0f }, + { 275.0f, 128.0f }, + { 950.0f, 6.0f }, + { 0.0f, 0.0f }, + { 0.0f, 190.0f }, + { 0.0f, 550.0f }, +}; + +void fn_1_2918(Process *sp8) +{ + M456DllBss18Struct *var_r31; + s32 var_r30; + omObjData *var_r29; + + var_r29 = omAddObjEx(sp8, 0x7FD9, 0, 0, -1, fn_1_2AC4); + var_r31 = &lbl_1_bss_18; + var_r29->data = var_r31; + memset(var_r31, 0, sizeof(M456DllBss18Struct)); + var_r31->unk_14 = 60 * REFRESH_RATE; + var_r31->unk_0C = 320.0f; + var_r31->unk_10 = 64.0f; + var_r31->unk_1C = 1.0f; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r31->unk_20[var_r30] = -1; + if (lbl_1_data_1B0[var_r30].unk_00 != 0) { + var_r31->unk_20[var_r30] = espEntry(lbl_1_data_1B0[var_r30].unk_00, lbl_1_data_1B0[var_r30].unk_04, 0); + espAttrSet(var_r31->unk_20[var_r30], HUSPR_ATTR_LINEAR); + espDispOff(var_r31->unk_20[var_r30]); + } + } + espColorSet(var_r31->unk_20[0], 0, 0, 0); + espTPLvlSet(var_r31->unk_20[0], 0.699999988079071); + espBankSet(var_r31->unk_20[7], 0xB); + espBankSet(var_r31->unk_20[8], 0xA); + espBankSet(var_r31->unk_20[14], 0xB); + espBankSet(var_r31->unk_20[15], 0xA); +} + +void fn_1_2AC4(omObjData *var_r26) +{ + u32 sp8[3]; + + M456DllBss18Struct *var_r31; + s32 var_r30; + u32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = var_r26->data; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (var_r31->unk_20[var_r30] >= 0) { + if (var_r31->unk_00 == 0) { + espDispOff(var_r31->unk_20[var_r30]); + } + else { + espDispOn(var_r31->unk_20[var_r30]); + espPosSet( + var_r31->unk_20[var_r30], 0.9f * (var_r31->unk_0C + lbl_1_data_230[var_r30].x), var_r31->unk_10 + lbl_1_data_230[var_r30].y); + } + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r30 != 0) { + var_r29 = var_r31->unk_18; + var_r27 = 9; + } + else { + var_r29 = var_r31->unk_14; + var_r27 = 2; + } + sp8[0] = var_r29 % REFRESH_RATE; + var_r29 = (var_r29 - sp8[0]) / REFRESH_RATE; +#if VERSION_PAL + sp8[0] = 100.0f * (sp8[0] / (float)REFRESH_RATE); +#else + sp8[0] = 100.0f * (1.0f / REFRESH_RATE * sp8[0]); +#endif + sp8[1] = var_r29 % 60; + var_r29 = (var_r29 - sp8[1]) / 60; + sp8[2] = var_r29; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] % 10); + if (var_r28 < 2) { + espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] / 10); + } + } + } + if (var_r31->unk_04 != 0) { + if (var_r31->unk_08 == 0) { + if ((var_r31->unk_1C += 0.02f) >= 1.2f) { + var_r31->unk_1C = 1.2f; + var_r31->unk_08 = 1; + } + } + else { + if ((var_r31->unk_1C -= 0.04f) <= 1.0f) { + var_r31->unk_1C = 1.0f; + var_r31->unk_08 = 0; + } + } + for (var_r30 = 1; var_r30 < 9; var_r30++) { + espScaleSet(var_r31->unk_20[var_r30], var_r31->unk_1C, var_r31->unk_1C); + } + } +} diff --git a/src/REL/m456Dll/stage.c b/src/REL/m456Dll/stage.c index a90d1b95..8e13a6cf 100644 --- a/src/REL/m456Dll/stage.c +++ b/src/REL/m456Dll/stage.c @@ -1,24 +1,28 @@ +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/hsfanim.h" #include "game/hsfmotion.h" #include "game/pad.h" -#include "game/wipe.h" -#include "game/frand.h" #include "game/audio.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/sprite.h" +#include "game/wipe.h" #include "REL/m456Dll.h" #include "ext_math.h" #include "math.h" +#include "version.h" + +#if !VERSION_PAL +#include "game/frand.h" +#endif Process *lbl_1_bss_B8; omObjData *lbl_1_bss_B4; @@ -154,7 +158,7 @@ omObjData *fn_1_2FAC(void) s32 id; ModelData *modelP; s32 i; - + work->unkA40 = 0; work->unkA44 = 0; work->unkA48 = 0; @@ -162,7 +166,7 @@ omObjData *fn_1_2FAC(void) work->unkA50 = 0; work->unkA54 = 0; work->unkA58 = 0; - + object->model[0] = id = Hu3DHookFuncCreate(fn_1_4994); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 5); @@ -196,52 +200,52 @@ omObjData *fn_1_2FAC(void) GXPosition2f32(-0.5f, 0.5f); GXTexCoord2f32(0, 1); work2->unkA18 = GXEndDisplayList(); - for(i=0; i<26; i++) { + for (i = 0; i < 26; i++) { work2->unk874[i][0] = 0; work2->unk874[i][1] = 0; work2->unk944[i][0] = 0; work2->unk944[i][1] = 0; } - + object->model[3] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 5)); Hu3DModelPosSet(id, 0, 0, -5000); Hu3DModelScaleSet(id, 2, 2, 2); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 1); id = Hu3DTexScrollCreate(object->model[3], "S3TCsk"); - Hu3DTexScrollPosMoveSet(id, -0.00009166667f, 0, 0); + Hu3DTexScrollPosMoveSet(id, VERSION_PAL ? -0.00010999999f : -0.00009166667f, 0, 0); id = Hu3DTexScrollCreate(object->model[3], "pa_sk3"); - Hu3DTexScrollPosMoveSet(id, -0.00020833335f, 0, 0); - + Hu3DTexScrollPosMoveSet(id, VERSION_PAL ? -0.00025f : -0.00020833335f, 0, 0); + object->model[4] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 6)); Hu3DModelPosSet(id, 0, 0, -3000); Hu3DModelScaleSet(id, 1.2f, 1.2f, 1.2f); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 1); - + object->model[8] = id = Hu3DHookFuncCreate(fn_1_44DC); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 2); modelP = &Hu3DData[id]; modelP->unk_120 = work; - + object->model[10] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 0)); Hu3DModelPosSet(id, 0, 0, 0); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 3); Hu3DModelShadowMapSet(object->model[10]); - for(i=0; i<4; i++) { - - object->model[i+11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 1)); - Hu3DModelCameraSet(object->model[i+11], HU3D_CAM0); - Hu3DModelLayerSet(object->model[i+11], 3); - Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); - Hu3DModelAttrSet(object->model[i+11], HU3D_MOTATTR_SHAPE_LOOP); - Hu3DMotionShapeTimeSet(object->model[i+11], (0.25*i)*Hu3DMotionShapeMaxTimeGet(object->model[i+11])); + for (i = 0; i < 4; i++) { + + object->model[i + 11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 1)); + Hu3DModelCameraSet(object->model[i + 11], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i + 11], 3); + Hu3DModelPosSet(object->model[i + 11], lbl_1_data_2E8[i].x, lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + Hu3DModelAttrSet(object->model[i + 11], HU3D_MOTATTR_SHAPE_LOOP); + Hu3DMotionShapeTimeSet(object->model[i + 11], (0.25 * i) * Hu3DMotionShapeMaxTimeGet(object->model[i + 11])); } modelP = &Hu3DData[object->model[0]]; workUnk4 = &work2->unk4[0]; - for(i=0; i<4; i++, workUnk4++) { + for (i = 0; i < 4; i++, workUnk4++) { workUnk4->unkC = lbl_1_data_31C[i].unk0; workUnk4->unk10 = lbl_1_data_31C[i].unk4; workUnk4->unk14 = lbl_1_data_31C[i].unk8; @@ -252,13 +256,13 @@ omObjData *fn_1_2FAC(void) memset(workUnk4->unk0, 0, workUnk4->unk4); DCFlushRange(workUnk4->unk0, workUnk4->unk4); } - for(i=0; i<64; i++, workUnk74++) { + for (i = 0; i < 64; i++, workUnk74++) { workUnk74->unk0.x = workUnk74->unk0.y = workUnk74->unk0.z = 0; workUnk74->unkC.x = 0; workUnk74->unkC.y = 0; workUnk74->unkC.z = 1; - workUnk74->unk18 = 0.016666668f; - workUnk74->unk1C = 60; + workUnk74->unk18 = 1.0f / REFRESH_RATE; + workUnk74->unk1C = REFRESH_RATE; workUnk74->unk1E = 0; } return object; @@ -271,21 +275,21 @@ void fn_1_390C(omObjData *object) Work2FAC *work = object->data; Work2FAC *work2 = work; s32 i; - if((work->unkA50 = work->unkA50+(0.007874016f*((s32)frand() & 0x7F)*3.0f)) > 360) { + if ((work->unkA50 = work->unkA50 + (0.007874016f * ((s32)frand() & 0x7F) * 3.0f)) > 360) { work->unkA50 -= 360; } - work->unkA44 = (25+work->unkA40)+(5.0*sind(work->unkA50)); + work->unkA44 = (25 + work->unkA40) + (5.0 * sind(work->unkA50)); Hu3DModelPosSet(object->model[10], 0, work->unkA44, 0); - for(i=0; i<4; i++) { - Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, work->unkA44+lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + for (i = 0; i < 4; i++) { + Hu3DModelPosSet(object->model[i + 11], lbl_1_data_2E8[i].x, work->unkA44 + lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); } - work->unkA54 += 0.001f; - work->unkA58 += 0.001f; + work->unkA54 += VERSION_PAL ? 0.0012f : 0.001f; // 0.06f / REFRESH_RATE + work->unkA58 += VERSION_PAL ? 0.0012f : 0.001f; work->unkA48++; work->unkA4C++; - if(work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { - float time = 1-((work->unkA4C-60.0f)/21.0f); - if(time < 0.0f) { + if (work->unkA4C >= (float)REFRESH_RATE && work->unkA4C <= (VERSION_PAL ? 67.5f : 81.0f)) { + float time = 1 - ((work->unkA4C - (float)REFRESH_RATE) / (VERSION_PAL ? 17.5f : 21.0f)); + if (time < 0.0f) { time = 0.0f; } fn_1_97FC(time); @@ -309,147 +313,31 @@ void fn_1_3C34(omObjData *object) GXColor lbl_1_data_37A = { 255, 255, 255, 32 }; GXColor lbl_1_data_37E = { 255, 255, 255, 10 }; GXColor lbl_1_data_382 = { 0, 126, 126, 255 }; -Vec lbl_1_data_388[4] = { - -1000, 50, 1000, - -1000, 50, -1000, - 1000, 50, -1000, - 1000, 50, 1000 -}; +Vec lbl_1_data_388[4] = { -1000, 50, 1000, -1000, 50, -1000, 1000, 50, -1000, 1000, 50, 1000 }; -Vec lbl_1_data_3B8[26] = { - -1500, 0, 1000, - -1400, 0, 1000, - 0, 0, 1000, - 1400, 0, 1000, - 1500, 0, 1000, - -1500, 0, -500, - -1400, 0, -500, - 0, 0, -500, - 1400, 0, -500, - 1500, 0, -500, - -1500, 0, -2000, - -1400, 0, -2000, - 0, 0, -2000, - 1400, 0, -2000, - 1500, 0, -2000, - -1500, 0, -5000, - -1400, 0, -5000, - 0, 0, -5000, - 1400, 0, -5000, - 1500, 0, -5000, - -2000, 0, -500, - -2500, 0, -2000, - -3000, 0, -5000, - 2000, 0, -500, - 2500, 0, -2000, - 3000, 0, -5000 -}; +Vec lbl_1_data_3B8[26] = { -1500, 0, 1000, -1400, 0, 1000, 0, 0, 1000, 1400, 0, 1000, 1500, 0, 1000, -1500, 0, -500, -1400, 0, -500, 0, 0, -500, 1400, + 0, -500, 1500, 0, -500, -1500, 0, -2000, -1400, 0, -2000, 0, 0, -2000, 1400, 0, -2000, 1500, 0, -2000, -1500, 0, -5000, -1400, 0, -5000, 0, 0, + -5000, 1400, 0, -5000, 1500, 0, -5000, -2000, 0, -500, -2500, 0, -2000, -3000, 0, -5000, 2000, 0, -500, 2500, 0, -2000, 3000, 0, -5000 }; -GXColor lbl_1_data_4F0[26] = { - { 96, 128, 255, 255 }, - { 128, 160, 255, 32 }, - { 128, 160, 255, 32 }, - { 128, 160, 255, 32 }, - { 96, 128, 255, 255 }, - { 24, 48, 255, 255 }, - { 96, 128, 255, 32 }, - { 128, 160, 255, 32 }, - { 96, 128, 255, 32 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 96, 128, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 } -}; +GXColor lbl_1_data_4F0[26] = { { 96, 128, 255, 255 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, { 96, 128, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 32 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, { 96, 128, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 } }; -float lbl_1_data_558[26][2] = { - 0, 1, - 0.033333335, 1, - 0.5, 1, - 0.96666664, 1, - 1, 1, - 0, 0.5, - 0.033333335, 0.5, - 0.5, 0.5, - 0.96666664, 0.5, - 1, 0.5, - 0, 0, - 0.033333335, 0, - 0.5, 0, - 0.96666664, 0, - 1, 0, - 0, 0, - 0.033333335, 0, - 0.5, 0, - 0.96666664, 0, - 1, 0, - -0.15, 0.5, - -0.33, 0, - -0.49, 0, - 1.15, 0.5, - 1.33, 0, - 1.49, 0 -}; +float lbl_1_data_558[26][2] + = { 0, 1, 0.033333335, 1, 0.5, 1, 0.96666664, 1, 1, 1, 0, 0.5, 0.033333335, 0.5, 0.5, 0.5, 0.96666664, 0.5, 1, 0.5, 0, 0, 0.033333335, 0, 0.5, 0, + 0.96666664, 0, 1, 0, 0, 0, 0.033333335, 0, 0.5, 0, 0.96666664, 0, 1, 0, -0.15, 0.5, -0.33, 0, -0.49, 0, 1.15, 0.5, 1.33, 0, 1.49, 0 }; -float lbl_1_data_628[26][2] = { - 0, 30, - 0.5, 30, - 7.5, 30, - 14.5, 30, - 15, 30, - 0, 15, - 0.5, 15, - 7.5, 15, - 14.5, 15, - 15, 15, - 0, 7.5, - 0.5, 7.5, - 7.5, 7.5, - 14.5, 7.5, - 15, 7.5, - 0, 0, - 0.5, 0, - 7.5, 0, - 14.5, 0, - 15, 0, - -2.25, 15, - -4.9500003, 7.5, - -7.3500004, 0, - 17.25, 15, - 19.95, 7.5, - 22.35, 0 -}; +float lbl_1_data_628[26][2] = { 0, 30, 0.5, 30, 7.5, 30, 14.5, 30, 15, 30, 0, 15, 0.5, 15, 7.5, 15, 14.5, 15, 15, 15, 0, 7.5, 0.5, 7.5, 7.5, 7.5, + 14.5, 7.5, 15, 7.5, 0, 0, 0.5, 0, 7.5, 0, 14.5, 0, 15, 0, -2.25, 15, -4.9500003, 7.5, -7.3500004, 0, 17.25, 15, 19.95, 7.5, 22.35, 0 }; -float lbl_1_data_6F8[2][3] = { - 0, 0, 0.5, - 0, 0.5, 0 -}; +float lbl_1_data_6F8[2][3] = { 0, 0, 0.5, 0, 0.5, 0 }; GXColor lbl_1_data_710 = { 80, 80, 80, 80 }; -Vec lbl_1_data_714[9] = { - -1500, 0, -5000, - 0, 0, -5000, - 1500, 0, -5000, - -1500, 0, -3000, - 0, 0, -3000, - 1500, 0, -3000, - -1500, 0, 1000, - 0, 0, 1000, - 1500, 0, 1000 -}; +Vec lbl_1_data_714[9] + = { -1500, 0, -5000, 0, 0, -5000, 1500, 0, -5000, -1500, 0, -3000, 0, 0, -3000, 1500, 0, -3000, -1500, 0, 1000, 0, 0, 1000, 1500, 0, 1000 }; GXColor lbl_1_data_780[9] = { { 255, 255, 255, 0 }, @@ -509,11 +397,11 @@ void fn_1_3CB0(ModelData *model, Mtx matrix) GXPosition2u16(0, 0); GXTexCoord2f32(work->unkA54, work->unkA58); GXPosition2u16(400, 0); - GXTexCoord2f32(work->unkA54+7, work->unkA58); + GXTexCoord2f32(work->unkA54 + 7, work->unkA58); GXPosition2u16(400, 400); - GXTexCoord2f32(work->unkA54+7, work->unkA58+7); + GXTexCoord2f32(work->unkA54 + 7, work->unkA58 + 7); GXPosition2u16(0, 400); - GXTexCoord2f32(work->unkA54, work->unkA58+7); + GXTexCoord2f32(work->unkA54, work->unkA58 + 7); GXEnd(); GXSetNumTexGens(1); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); @@ -532,22 +420,22 @@ void fn_1_3CB0(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); workUnk74 = &work2->unk74[0]; - for(i=0; i<64; i++, workUnk74++) { + for (i = 0; i < 64; i++, workUnk74++) { float scale; float accel; - if(workUnk74->unk1E == 0) { + if (workUnk74->unk1E == 0) { continue; } - scale = 128*(workUnk74->unkC.x*(0.2f+cosd(workUnk74->unk1E*workUnk74->unk18*90.0f))); - accel = workUnk74->unk1E*workUnk74->unk18; - lbl_1_data_37A.a = workUnk74->unkC.z*sind((accel*accel)*90.0f)*255.0; + scale = 128 * (workUnk74->unkC.x * (0.2f + cosd(workUnk74->unk1E * workUnk74->unk18 * 90.0f))); + accel = workUnk74->unk1E * workUnk74->unk18; + lbl_1_data_37A.a = workUnk74->unkC.z * sind((accel * accel) * 90.0f) * 255.0; GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_37A); - MTXScale(modelview, 0.5f*scale, 0.5f*scale, 1.0f); + MTXScale(modelview, 0.5f * scale, 0.5f * scale, 1.0f); mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); - mtxTransCat(modelview, 400*(workUnk74->unk0.x+1500)/3000, 400*(workUnk74->unk0.z - -2000)/3000, 0); + mtxTransCat(modelview, 400 * (workUnk74->unk0.x + 1500) / 3000, 400 * (workUnk74->unk0.z - -2000) / 3000, 0); GXLoadPosMtxImm(modelview, GX_PNMTX0); GXCallDisplayList(work2->unkA14, work2->unkA18); - if(!omPauseChk()) { + if (!omPauseChk()) { workUnk74->unk1E--; } } @@ -600,11 +488,11 @@ void fn_1_464C(ModelData *model, Mtx matrix) Mtx projCamera; s16 lightMask; s16 i; - + fn_1_5BB8(workUnk4, 0); GXLoadPosMtxImm(matrix, GX_PNMTX0); fov = cameraP->fov; - if(fov <= 0.0f) { + if (fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -632,7 +520,7 @@ void fn_1_464C(ModelData *model, Mtx matrix) GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetArray(GX_VA_POS, lbl_1_data_388, sizeof(Vec)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GXPosition1x16(i); } GXEnd(); @@ -641,7 +529,7 @@ void fn_1_464C(ModelData *model, Mtx matrix) workUnk4 = &work2->unk4[2]; fn_1_60C4(0, workUnk4, 0, 0, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GXPosition1x16(i); } GXEnd(); @@ -668,7 +556,7 @@ void fn_1_4994(ModelData *model, Mtx matrix) MTXInvXpose(matrix, invXPose); GXLoadNrmMtxImm(invXPose, GX_PNMTX0); fov = cameraP->fov; - if(fov <= 0.0f) { + if (fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -710,53 +598,55 @@ void fn_1_4994(ModelData *model, Mtx matrix) GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetIndTexMtx(GX_ITM_1, lbl_1_data_6F8, -1); - for(i=0; i<26; i++) { - work2->unk944[i][0] -= 0.007874016f*((s32)frand() & 0x7F)*0.005f; - work2->unk944[i][1] += 0.007874016f*((s32)frand() & 0x7F)*0.005f; - work2->unk874[i][0] = work2->unk944[i][0]+lbl_1_data_628[i][0]; - work2->unk874[i][1] = work2->unk944[i][1]+lbl_1_data_628[i][1]; + for (i = 0; i < 26; i++) { + work2->unk944[i][0] -= 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; + work2->unk944[i][1] += 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; + work2->unk874[i][0] = work2->unk944[i][0] + lbl_1_data_628[i][0]; + work2->unk874[i][1] = work2->unk944[i][1] + lbl_1_data_628[i][1]; } DCFlushRange(&work2->unk874[0][0], sizeof(work2->unk874)); GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - + GXSetArray(GX_VA_POS, lbl_1_data_3B8, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, lbl_1_data_4F0, sizeof(GXColor)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float)*2); + GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float) * 2); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float) * 2); GXBegin(GX_QUADS, GX_VTXFMT0, 48); - for(i=0; i<12; i++) { + for (i = 0; i < 12; i++) { s16 index; - if(i == 4) { + if (i == 4) { index = 12; - } else if(i == 9) { + } + else if (i == 9) { index = 13; - } else { + } + else { index = i; } - GXPosition1x16(index+0); - GXColor1x16(index+0); - GXTexCoord1x16(index+0); - GXTexCoord1x16(index+0); - GXPosition1x16(index+5); - GXColor1x16(index+5); - GXTexCoord1x16(index+5); - GXTexCoord1x16(index+5); - GXPosition1x16(index+6); - GXColor1x16(index+6); - GXTexCoord1x16(index+6); - GXTexCoord1x16(index+6); - GXPosition1x16(index+1); - GXColor1x16(index+1); - GXTexCoord1x16(index+1); - GXTexCoord1x16(index+1); + GXPosition1x16(index + 0); + GXColor1x16(index + 0); + GXTexCoord1x16(index + 0); + GXTexCoord1x16(index + 0); + GXPosition1x16(index + 5); + GXColor1x16(index + 5); + GXTexCoord1x16(index + 5); + GXTexCoord1x16(index + 5); + GXPosition1x16(index + 6); + GXColor1x16(index + 6); + GXTexCoord1x16(index + 6); + GXTexCoord1x16(index + 6); + GXPosition1x16(index + 1); + GXColor1x16(index + 1); + GXTexCoord1x16(index + 1); + GXTexCoord1x16(index + 1); } GXEnd(); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); @@ -853,18 +743,18 @@ void fn_1_54D0(ModelData *model, Mtx matrix) HuSprTexLoad(work->unkA1C[1], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f*scale; + x = 0.004f * scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48%1024)/(512.0f*x), 0, 1.2499999f*(work->unkA48%400)); + MTXTrans(temp, (work->unkA48 % 1024) / (512.0f * x), 0, 1.2499999f * (work->unkA48 % 400)); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX0); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f*scale; + x = 0.004f * scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48%300)/(150.0f*x), 0, 0); + MTXTrans(temp, (work->unkA48 % 300) / (150.0f * x), 0, 0); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX1, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX1); @@ -928,8 +818,8 @@ void fn_1_5BB8(Work2FACUnk4 *arg0, s32 arg1) void fn_1_5C74(Work2FACUnk4 *fbWork, float x1, float y1, float scale) { - float x2 = x1+(fbWork->unk14*scale); - float y2 = y1+(fbWork->unk18*scale); + float x2 = x1 + (fbWork->unk14 * scale); + float y2 = y1 + (fbWork->unk18 * scale); Mtx44 proj; Mtx modelview; GXTexObj texObj; @@ -973,9 +863,10 @@ void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL { GXTexObj texObj; GXInitTexObj(&texObj, arg1->unk0, arg1->unk14, arg1->unk18, GX_TF_RGB565, arg2, arg2, FALSE); - if(arg4) { + if (arg4) { GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { + } + else { GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&texObj, arg0); @@ -987,47 +878,51 @@ s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3) Work2FAC *work2; Work2FACUnk74 *workUnk74; s32 i; - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return -1; } work = lbl_1_bss_B4->data; work2 = work; workUnk74 = &work->unk74[0]; - for(i=0; i<64; i++, workUnk74++) { - if(workUnk74->unk1E == 0) { + for (i = 0; i < 64; i++, workUnk74++) { + if (workUnk74->unk1E == 0) { break; } } - if(i >= 64) { + if (i >= 64) { return -1; } workUnk74->unk0 = *arg0; - if(arg1 < 0.0f) { + if (arg1 < 0.0f) { workUnk74->unkC.x = 1; - } else { + } + else { workUnk74->unkC.x = arg1; } - if(arg2 < 0.0f) { + if (arg2 < 0.0f) { workUnk74->unkC.z = 1; - } else { + } + else { workUnk74->unkC.z = arg2; } - if(arg3 < 0) { - workUnk74->unk1C = 60; - } else { + if (arg3 < 0) { + workUnk74->unk1C = REFRESH_RATE; + } + else { workUnk74->unk1C = arg3; } - workUnk74->unkC.y = (s32)frand()%360; + workUnk74->unkC.y = (s32)frand() % 360; workUnk74->unk1E = workUnk74->unk1C; - workUnk74->unk18 = 1.0f/workUnk74->unk1C; + workUnk74->unk18 = 1.0f / workUnk74->unk1C; return i; } float fn_1_63AC(void) { - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return 0; - } else { + } + else { Work2FAC *work = lbl_1_bss_B4->data; return work->unkA44; } @@ -1035,9 +930,10 @@ float fn_1_63AC(void) float fn_1_63F8(void) { - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return 0; - } else { + } + else { Work2FAC *work = lbl_1_bss_B4->data; return work->unkA40; } @@ -1061,10 +957,10 @@ void fn_1_6444(omObjData *object) Work6914 *work; s32 i; AnimData *anim; - work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914)*8, MEMORY_DEFAULT_NUM); - memset(work, 0, sizeof(Work6914)*8); + work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914) * 8, MEMORY_DEFAULT_NUM); + memset(work, 0, sizeof(Work6914) * 8); anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); - for(i=0; i<8; i++, work++) { + for (i = 0; i < 8; i++, work++) { work->unk10 = anim; work->unk0 = i; work->unk4 = Hu3DParticleCreate(work->unk10, 32); @@ -1085,21 +981,22 @@ void fn_1_659C(omObjData *object) { Work6914 *work = object->data; s32 i; - for(i=0; i<8; i++, work++) { - if(work->unk8 == 0) { + for (i = 0; i < 8; i++, work++) { + if (work->unk8 == 0) { continue; } - if(work->unkC > 1) { + if (work->unkC > 1) { ModelData *modelP = &Hu3DData[work->unk4]; ParticleData *particleP = modelP->unk_120; HsfanimStruct01 *data = particleP->unk_48; s32 j; - for(j=0; junk_30; j++, data++) { - if(++data->unk00_s16 > data->unk02) { - s32 alpha = data->unk40.a-1; - if(alpha < 0) { + for (j = 0; j < particleP->unk_30; j++, data++) { + if (++data->unk00 > data->unk02) { + s32 alpha = data->unk40.a - 1; + if (alpha < 0) { data->unk2C = 0; - } else { + } + else { data->unk40.a = alpha; } } @@ -1110,10 +1007,11 @@ void fn_1_659C(omObjData *object) data->unk08.y -= 0.3103333379576603; } } - if(++work->unkC > 90.0f) { + if (++work->unkC > (1.5f * REFRESH_RATE)) { Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); work->unk8 = 0; - } else { + } + else { Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); @@ -1136,13 +1034,13 @@ s32 fn_1_67E0(Vec *arg0, float arg1) ModelData *temp_r27; ParticleData *temp_r28; HsfanimStruct01 *temp_r30; - - for(i=0; i<8; i++, work++) { - if(work->unk8 == 0) { + + for (i = 0; i < 8; i++, work++) { + if (work->unk8 == 0) { break; } } - if(i >= 8) { + if (i >= 8) { return -1; } Hu3DModelAttrReset(work->unk4, HU3D_ATTR_DISPOFF); @@ -1152,29 +1050,29 @@ s32 fn_1_67E0(Vec *arg0, float arg1) temp_r28 = temp_r27->unk_120; temp_r28->unk_2C = 1; temp_r30 = temp_r28->unk_48; - for(i=0; iunk_30; i++, temp_r30++) { - float temp_f30 = ((s32)frand()%20)+90; - float temp_f29 = (s32)frand()%360; + for (i = 0; i < temp_r28->unk_30; i++, temp_r30++) { + float temp_f30 = ((s32)frand() % 20) + 90; + float temp_f29 = (s32)frand() % 360; float temp_f26 = sind(temp_f30); float temp_f28 = cosd(temp_f30); - float temp_f25 = 0.75f+0.15f*(0.007874016f*((s32)frand() & 0x7F)); + float temp_f25 = 0.75f + 0.15f * (0.007874016f * ((s32)frand() & 0x7F)); float temp_f31 = 0.15f; - temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); - temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); - temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); - temp_r30->unk00_s16 = 0; - temp_r30->unk02 = ((s32)frand()%16)+45; - temp_r30->unk30 = (s32)frand()%360; - temp_r30->unk2C = 145; - temp_r30->unk34.x = 0.05f*(((s32)frand() & 0x7F)-64); - temp_r30->unk34.y = 0.65f*(((s32)frand() & 0x7F)-64); - temp_r30->unk34.z = 0.05f*(((s32)frand() & 0x7F)-64); - temp_r30->unk40.r = ((s32)frand()%64)+192; - temp_r30->unk40.g = ((s32)frand()%64)+192; - temp_r30->unk40.b = ((s32)frand()%64)+192; + temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29)))); + temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29)))); + temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25); + temp_r30->unk00 = 0; + temp_r30->unk02 = ((s32)frand() % 16) + 45; + temp_r30->unk30 = (s32)frand() % 360; + temp_r30->unk2C = 145.0f; + temp_r30->unk34.x = 0.05f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk34.y = 0.65f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk34.z = 0.05f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk40.r = ((s32)frand() % 64) + 192; + temp_r30->unk40.g = ((s32)frand() % 64) + 192; + temp_r30->unk40.b = ((s32)frand() % 64) + 192; temp_r30->unk40.a = 64; } - if(arg1 < 0.0f) { + if (arg1 < 0.0f) { arg1 = 1.0f; } work->unk14 = *arg0; @@ -1191,16 +1089,16 @@ void fn_1_6E98(omObjData *object); void fn_1_6DB0(omObjData *object) { s32 i; - for(i=0; imdlcnt; i++) { - if(i == 0) { + for (i = 0; i < object->mdlcnt; i++) { + if (i == 0) { object->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 9)); - } else { + } + else { object->model[i] = Hu3DModelLink(object->model[0]); } Hu3DModelCameraSet(object->model[i], HU3D_CAM0); Hu3DModelLayerSet(object->model[i], 6); Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); - } object->stat |= 0x100; object->func = fn_1_6E98; @@ -1209,31 +1107,28 @@ void fn_1_6DB0(omObjData *object) void fn_1_6E98(omObjData *object) { s32 i; - for(i=0; imdlcnt; i++) { + for (i = 0; i < object->mdlcnt; i++) { ModelData *modelP = &Hu3DData[object->model[i]]; - if(!(modelP->attr & HU3D_ATTR_DISPOFF)) { - if(Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { - Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); - } + if (!(modelP->attr & HU3D_ATTR_DISPOFF)) { + if (Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } } } } -void fn_1_6F60(omObjData *object) -{ - -} +void fn_1_6F60(omObjData *object) { } s32 fn_1_6F64(Vec *pos, float scale) { s32 i; - for(i=0; imdlcnt; i++) { + for (i = 0; i < lbl_1_bss_AC->mdlcnt; i++) { ModelData *modelP = &Hu3DData[lbl_1_bss_AC->model[i]]; - if(modelP->attr & HU3D_ATTR_DISPOFF) { + if (modelP->attr & HU3D_ATTR_DISPOFF) { break; } } - if(i >= lbl_1_bss_AC->mdlcnt) { + if (i >= lbl_1_bss_AC->mdlcnt) { return -1; } Hu3DMotionTimeSet(lbl_1_bss_AC->model[i], 0); @@ -1253,7 +1148,7 @@ void fn_1_70F0(omObjData *object) s32 i; ModelData *modelP; AnimData *anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); - + object->data = anim; object->model[0] = Hu3DParticleCreate(anim, 64); Hu3DModelCameraSet(object->model[0], HU3D_CAM0); @@ -1263,7 +1158,7 @@ void fn_1_70F0(omObjData *object) temp_r30 = modelP->unk_120; temp_r29 = temp_r30->unk_48; temp_r30->unk_2C = 1; - for(i=0; iunk_30; i++, temp_r29++) { + for (i = 0; i < temp_r30->unk_30; i++, temp_r29++) { temp_r29->unk2C = 0; } object->func = fn_1_71E0; @@ -1275,20 +1170,19 @@ void fn_1_71E0(omObjData *object) ParticleData *temp_r29 = modelP->unk_120; HsfanimStruct01 *temp_r30 = temp_r29->unk_48; s32 i; - for(i=0; iunk_30; i++, temp_r30++) { - if(temp_r30->unk2C <= 0.0f) { + for (i = 0; i < temp_r29->unk_30; i++, temp_r30++) { + if (temp_r30->unk2C <= 0.0f) { continue; } - if(++temp_r30->unk00_s16 > 360) { - temp_r30->unk00_s16 -= 360; + if (++temp_r30->unk00 > 360) { + temp_r30->unk00 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00); temp_r30->unk34.y += temp_r30->unk08.y; - if(temp_r30->unk34.y >= 0.0f) { - fn_1_61C8(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); + if (temp_r30->unk34.y >= 0.0f) { + fn_1_61C8(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, REFRESH_RATE / 4); temp_r30->unk2C = 0; } - } } @@ -1306,27 +1200,32 @@ s32 fn_1_74F8(Vec *pos, float scale) ModelData *modelP = &Hu3DData[lbl_1_bss_A8->model[0]]; ParticleData *temp_r30 = modelP->unk_120; HsfanimStruct01 *temp_r31 = temp_r30->unk_48; - for(i=0; iunk_30; i++, temp_r31++) { - if(temp_r31->unk2C <= 0.0f) { + for (i = 0; i < temp_r30->unk_30; i++, temp_r31++) { + if (temp_r31->unk2C <= 0.0f) { break; } } - if(i >= temp_r30->unk_30) { + if (i >= temp_r30->unk_30) { return -1; } - if(scale <= 0.0f) { + if (scale <= 0.0f) { scale = 1.0f; } temp_r31->unk34 = *pos; - temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; - temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); - temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; - temp_r31->unk00_s16 = (s32)frand()%360; - temp_r31->unk2C = 20*scale; +#if VERSION_PAL + temp_r31->unk08.x = (1.2f * (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F))))) * 0.5f; + temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F)))) * 1.2f; + temp_r31->unk08.y = (1.2f * (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F))))) * 2.0f; +#else + temp_r31->unk08.x = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 0.5f; + temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))); + temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f; +#endif + temp_r31->unk00 = (s32)frand() % 360; + temp_r31->unk2C = 20 * scale; return i; } - typedef struct work7C48 { s32 unk0; s32 unk4; @@ -1341,24 +1240,25 @@ void fn_1_7B50(omObjData *object); void fn_1_7778(omObjData *object) { - Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48)*8, MEMORY_DEFAULT_NUM); + Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48) * 8, MEMORY_DEFAULT_NUM); Work7C48 *workP = workBase; s32 i; - memset(workP, 0, 8*sizeof(Work7C48)); - for(i=0; i<8; i++, workP++) { - switch(i) { + memset(workP, 0, 8 * sizeof(Work7C48)); + for (i = 0; i < 8; i++, workP++) { + switch (i) { case 0: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 3)); break; - + case 1: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 4)); break; - + default: - if(i & 0x1) { + if (i & 0x1) { workP->unk0 = Hu3DModelLink(workBase[0].unk0); - } else { + } + else { workP->unk0 = Hu3DModelLink(workBase[1].unk0); } break; @@ -1369,11 +1269,11 @@ void fn_1_7778(omObjData *object) workP->unk8 = 0; workP->unkC = 2; workP->unk10 = (s32)frand() % 360; - workP->unk14.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk14.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk14.y = -250+(100*(0.3f*i)); - workP->unk20.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk14.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk14.y = -250 + (100 * (0.3f * i)); + workP->unk20.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); @@ -1387,60 +1287,67 @@ void fn_1_7B50(omObjData *object) { Work7C48 *workP = object->data; s32 i; - for(i=0; i<8; i++, workP++) { + for (i = 0; i < 8; i++, workP++) { float dx; float dz; float vel; float angle; - if(workP->unk4 == 0) { - vel = 1+(0.5*sind((workP->unk8*5)%180)); - } else { + if (workP->unk4 == 0) { + vel = 1 + (0.5 * sind((workP->unk8 * 5) % 180)); + } + else { vel = 3; } - workP->unk14.x += vel*(workP->unkC*sind(workP->unk10)); - workP->unk14.z += vel*(workP->unkC*cosd(workP->unk10)); - dx = workP->unk20.x-workP->unk14.x; - dz = workP->unk20.z-workP->unk14.z; + // TODO replace with 60.0 / REFRESH_RATE +#if VERSION_PAL + workP->unk14.x += (1.2000000476837158 * (vel * (workP->unkC * sind(workP->unk10)))); + workP->unk14.z += (1.2000000476837158 * (vel * (workP->unkC * cosd(workP->unk10)))); +#else + workP->unk14.x += vel * (workP->unkC * sind(workP->unk10)); + workP->unk14.z += vel * (workP->unkC * cosd(workP->unk10)); +#endif + dx = workP->unk20.x - workP->unk14.x; + dz = workP->unk20.z - workP->unk14.z; angle = atan2d(dx, dz); workP->unk10 = fn_1_9A18(angle, workP->unk10, 3.5f); - if((dx*dx)+(dz*dz) < 10000.0f) { - if(workP->unk4 == 0) { - workP->unk20.x = 2000*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk20.z = 700*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + if ((dx * dx) + (dz * dz) < 10000.0f) { + if (workP->unk4 == 0) { + workP->unk20.x = 2000 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 700 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; - } else { - if(workP->unk14.x < 0.0f) { + } + else { + if (workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } else { + } + else { workP->unk20.x = 2500; } - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; } } Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); - workP->unk8 += frand()&0x3; + workP->unk8 += frand() & 0x3; } } -void fn_1_7F74(omObjData *object) -{ - -} +void fn_1_7F74(omObjData *object) { } void fn_1_7F78(void) { Work7C48 *workP = lbl_1_bss_A4->data; s32 i; - for(i=0; i<8; i++, workP++) { + for (i = 0; i < 8; i++, workP++) { workP->unk4 = 1; - if(workP->unk14.x < 0.0f) { + if (workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } else { + } + else { workP->unk20.x = 2500; } - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; } } @@ -1466,10 +1373,10 @@ void fn_1_8078(omObjData *object, Work891C *workP) s32 num = workP[0].unk6; float ofsZ = -2000; s32 i; - for(i=0; iunk0, workP->unk8.x, workP->unk8.y, workP->unk8.z+ofsZ); + Hu3DModelPosSet(workP->unk0, workP->unk8.x, workP->unk8.y, workP->unk8.z + ofsZ); modelMtx = &Hu3DData[workP->unk0].unk_F0; MTXRotDeg(*modelMtx, 'Y', workP->unk28); MTXRotDeg(rotZ, 'Z', workP->unk38); @@ -1485,20 +1392,19 @@ void fn_1_817C(omObjData *object) Work891C *workP = object->data; s32 num = workP[0].unk6; s32 i; - for(i=0; iunk14, &workP->unk8, &diff); workP->unk2C = atan2d(diff.x, diff.z); - workP->unk28 = fn_1_8890(workP->unk28, workP->unk2C+workP->unk3C, 0.08f); - workP->unk24 += 0.05f*(600.0f-workP->unk24); - workP->unk20 += 0.2f*(workP->unk24-workP->unk20); - workP->unk8.x += (workP->unk20*0.016666668f)*sind(workP->unk28); - workP->unk8.z += (workP->unk20*0.016666668f)*cosd(workP->unk28); - workP->unk30 += workP->unk20*0.016666668f; + workP->unk28 = fn_1_8890(workP->unk28, workP->unk2C + workP->unk3C, 0.08f); + workP->unk24 += 0.05f * (600.0f - workP->unk24); + workP->unk20 += 0.2f * (workP->unk24 - workP->unk20); + workP->unk8.x += (workP->unk20 * (1.0f / REFRESH_RATE)) * sind(workP->unk28); + workP->unk8.z += (workP->unk20 * (1.0f / REFRESH_RATE)) * cosd(workP->unk28); + workP->unk30 += workP->unk20 * (1.0f / REFRESH_RATE); } fn_1_8078(object, object->data); - } void fn_1_841C(omObjData *object) @@ -1511,31 +1417,31 @@ void fn_1_841C(omObjData *object) float angle; float ofsZ; s32 i; - object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num*sizeof(Work891C), MEMORY_DEFAULT_NUM); - memset(workBase, 0, num*sizeof(Work891C)); + object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num * sizeof(Work891C), MEMORY_DEFAULT_NUM); + memset(workBase, 0, num * sizeof(Work891C)); modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 8)); ofsZ = 1500; work = workBase; - for(i=0; iunk0 = Hu3DModelLink(modelId); Hu3DModelLayerSet(work->unk0, 6); Hu3DModelCameraSet(work->unk0, 1); Hu3DModelScaleSet(work->unk0, 7, 7, 7); - work->unk14.x = ((s32)frandmod(1000)*4.0f)-2000; - work->unk14.z = ((s32)frandmod(1000))-500.0f; - work->unk14.y = ((s32)frandmod(1000)*0.8f)+300; + work->unk14.x = ((s32)frandmod(1000) * 4.0f) - 2000; + work->unk14.z = ((s32)frandmod(1000)) - 500.0f; + work->unk14.y = ((s32)frandmod(1000) * 0.8f) + 300; angle = (s32)frandmod(360); - radius = ((s32)frandmod(250))+200.0f; - work->unk8.x = radius*sind(angle); + radius = ((s32)frandmod(250)) + 200.0f; + work->unk8.x = radius * sind(angle); work->unk8.y = 0; - work->unk8.z = radius*cosd(angle); + work->unk8.z = radius * cosd(angle); VECAdd(&work->unk14, &work->unk8, &work->unk8); - work->unk38 = 60-((6.0f/55.0f)*radius); + work->unk38 = 60 - ((6.0f / 55.0f) * radius); work->unk28 = (s32)frandmod(360); - work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f+((s32)frandmod(50)*0.1f)) : (70.0f-((s32)frandmod(50)*0.1f)); - if(work->unk3C < 0.0f) { + work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f + ((s32)frandmod(50) * 0.1f)) : (70.0f - ((s32)frandmod(50) * 0.1f)); + if (work->unk3C < 0.0f) { work->unk38 = -work->unk38; } work->unk30 = 1; @@ -1549,15 +1455,15 @@ void fn_1_841C(omObjData *object) float fn_1_8890(float start, float end, float weight) { - float angle = fmodf(end-start, 360); - if(angle < 0.0f) { + float angle = fmodf(end - start, 360); + if (angle < 0.0f) { angle += 360.0f; } - if(angle > 180.0f) { + if (angle > 180.0f) { angle -= 360.0f; } - angle = fmodf(start+(weight*angle), 360); - if(angle < 0.0f) { + angle = fmodf(start + (weight * angle), 360); + if (angle < 0.0f) { angle += 360.0f; } return angle; @@ -1585,8 +1491,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 0; workP->unk10[1] = modelId = Hu3DParticleCreate(workP->unk0[3], 10); Hu3DModelLayerSet(modelId, 6); @@ -1594,8 +1500,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 1; workP->unk10[2] = modelId = Hu3DParticleCreate(workP->unk0[2], 4); Hu3DModelLayerSet(modelId, 6); @@ -1603,8 +1509,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 2; workP->unk10[3] = modelId = Hu3DParticleCreate(workP->unk0[1], 6); Hu3DModelLayerSet(modelId, 6); @@ -1612,8 +1518,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 3; } @@ -1626,19 +1532,9 @@ void fn_1_8C68(void) HuSprAnimKill(workP->unk0[3]); } -float lbl_1_data_7B0[4] = { - 1000, - 200, - 600, - 1200 -}; +float lbl_1_data_7B0[4] = { 1000, 200, 600, 1200 }; -float lbl_1_data_7C0[4] = { - 1, - 0.6, - 0.3, - 0.425 -}; +float lbl_1_data_7C0[4] = { 1, 0.6, 0.3, 0.425 }; void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) { @@ -1659,34 +1555,37 @@ void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) float temp_f29; float temp_f23; s32 i; - switch(newWorkP[2]) { + switch (newWorkP[2]) { case 0: temp_r31 = particle->unk_48; - if(newWorkP[1]) { + if (newWorkP[1]) { sp18.x = 2000; sp18.y = -300; sp18.z = 500; - temp_f29 = 1/VECMagPoint(sp18.x, sp18.y, sp18.z); + temp_f29 = 1 / VECMagPoint(sp18.x, sp18.y, sp18.z); sp18.x *= temp_f29; sp18.y *= temp_f29; sp18.z *= temp_f29; - temp_f23 = 3200.0f/particle->unk_30; - for(i=0; iunk_30; i++, temp_r31++) { - temp_f26 = 500.0+((temp_f23*i)+((0.25f*temp_f23)*((float)((s32)frand() & 0xFFFF)*0.0000152587890625))); - temp_f25 = temp_f26/3200; + temp_f23 = 3200.0f / particle->unk_30; + for (i = 0; i < particle->unk_30; i++, temp_r31++) { + temp_f26 = 500.0 + ((temp_f23 * i) + ((0.25f * temp_f23) * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625))); + temp_f25 = temp_f26 / 3200; temp_r31->unk14.x = temp_f26; - temp_r31->unk34.x = 1000+(temp_f26*sp18.x); - temp_r31->unk34.y = 4800+(temp_f26*sp18.y); - temp_r31->unk34.z = -3500+(temp_f26*sp18.z); - temp_r31->unk2C = ((0.7f*(temp_f25*temp_f25))+0.3f)*(lbl_1_data_7B0[newWorkP[1]]*(0.7f+(0.3f*((float)((s32)frand() & 0xFFFF)*0.0000152587890625)))); - temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*160.0)+32; - temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*96.0)+32; - temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*128.0)+32; - temp_r31->unk40.a = (255*lbl_1_data_7C0[newWorkP[1]]*(1.0-(0.4*temp_f25)))-(s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*16.0); + temp_r31->unk34.x = 1000 + (temp_f26 * sp18.x); + temp_r31->unk34.y = 4800 + (temp_f26 * sp18.y); + temp_r31->unk34.z = -3500 + (temp_f26 * sp18.z); + temp_r31->unk2C = ((0.7f * (temp_f25 * temp_f25)) + 0.3f) + * (lbl_1_data_7B0[newWorkP[1]] * (0.7f + (0.3f * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625)))); + temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 160.0) + 32; + temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 96.0) + 32; + temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 128.0) + 32; + temp_r31->unk40.a = (255 * lbl_1_data_7C0[newWorkP[1]] * (1.0 - (0.4 * temp_f25))) + - (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 16.0); temp_r31->unk14.z = temp_r31->unk40.a; } newWorkP[2]++; - } else { + } + else { temp_r31->unk34.x = 1000; temp_r31->unk34.y = 4800; temp_r31->unk34.z = -3500; @@ -1695,46 +1594,46 @@ void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) break; case 1: - sp3C.x = sind(rot.y)*cosd(rot.x); + sp3C.x = sind(rot.y) * cosd(rot.x); sp3C.y = -sind(rot.x); - sp3C.z = cosd(rot.y)*cosd(rot.x); - sp30.x = 1000-(pos.x+(1.25f*(sp3C.x*zoom))); - sp30.y = 4800-(pos.y+(sp3C.y*zoom)); - sp30.z = -3500-(pos.z+(1.25f*(sp3C.z*zoom))); - temp_f29 = 1/VECMagPoint(sp30.x, sp30.y, sp30.z); + sp3C.z = cosd(rot.y) * cosd(rot.x); + sp30.x = 1000 - (pos.x + (1.25f * (sp3C.x * zoom))); + sp30.y = 4800 - (pos.y + (sp3C.y * zoom)); + sp30.z = -3500 - (pos.z + (1.25f * (sp3C.z * zoom))); + temp_f29 = 1 / VECMagPoint(sp30.x, sp30.y, sp30.z); sp30.x *= temp_f29; sp30.y *= temp_f29; sp30.z *= temp_f29; - temp_f29 = -((-sp30.x*-sp3C.x)+(-sp30.y*-sp3C.y)+(-sp30.z*-sp3C.z)); - sp24.x = -sp3C.x+((-2.0f*sp30.x)*temp_f29); - sp24.y = -sp3C.y+((-2.0f*sp30.y)*temp_f29); - sp24.z = -sp3C.z+((-2.0f*sp30.z)*temp_f29); + temp_f29 = -((-sp30.x * -sp3C.x) + (-sp30.y * -sp3C.y) + (-sp30.z * -sp3C.z)); + sp24.x = -sp3C.x + ((-2.0f * sp30.x) * temp_f29); + sp24.y = -sp3C.y + ((-2.0f * sp30.y) * temp_f29); + sp24.z = -sp3C.z + ((-2.0f * sp30.z) * temp_f29); temp_r31 = particle->unk_48; - for(i=0; iunk_30; i++, temp_r31++) { - temp_r31->unk34.x = 1000+(sp24.x*temp_r31->unk14.x); - temp_r31->unk34.y = 4800+(sp24.y*temp_r31->unk14.x); - temp_r31->unk34.z = -3500+(sp24.z*temp_r31->unk14.x); - temp_r31->unk40.a = temp_r31->unk14.z*workP->unk20.y; + for (i = 0; i < particle->unk_30; i++, temp_r31++) { + temp_r31->unk34.x = 1000 + (sp24.x * temp_r31->unk14.x); + temp_r31->unk34.y = 4800 + (sp24.y * temp_r31->unk14.x); + temp_r31->unk34.z = -3500 + (sp24.z * temp_r31->unk14.x); + temp_r31->unk40.a = temp_r31->unk14.z * workP->unk20.y; } break; } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_97FC(float arg0) { StructBss90 *workP = lbl_1_bss_90; workP->unk20.y = arg0; - if(workP->unk20.y > 1.0f) { + if (workP->unk20.y > 1.0f) { workP->unk20.y = 1.0f; } - if(workP->unk20.y <= 0.0f) { + if (workP->unk20.y <= 0.0f) { Hu3DModelAttrSet(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[3], HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrReset(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[2], HU3D_ATTR_DISPOFF); @@ -1745,20 +1644,23 @@ void fn_1_97FC(float arg0) float fn_1_9900(float start, float end) { float angleDiff; - if(start >= 360.0f) { + if (start >= 360.0f) { start -= 360.0f; - } else if(start < 0.0f) { + } + else if (start < 0.0f) { start += 360.0f; } - if(end >= 360.0f) { + if (end >= 360.0f) { end -= 360.0f; - } else if(end < 0.0f) { + } + else if (end < 0.0f) { end += 360.0f; } - angleDiff = start-end; - if(angleDiff <= -180.0f) { + angleDiff = start - end; + if (angleDiff <= -180.0f) { angleDiff += 360.0f; - } else if(angleDiff >= 180.0f) { + } + else if (angleDiff >= 180.0f) { angleDiff -= 360.0f; } return angleDiff; @@ -1768,38 +1670,44 @@ float fn_1_9A18(float start, float end, float max) { float angle; float diff; - - if(start >= 360.0) { + + if (start >= 360.0) { start -= 360.0; - } else if(start < 0.0) { + } + else if (start < 0.0) { start += 360.0; } - if(end >= 360.0) { + if (end >= 360.0) { end -= 360.0; - } else if(end < 0.0) { + } + else if (end < 0.0) { end += 360.0; } - diff = 360.0+(start-end); - if(fabs(diff) >= 360.0) { + diff = 360.0 + (start - end); + if (fabs(diff) >= 360.0) { diff = fmod(diff, 360.0); } - if(diff < 180.0) { - if(diff <= max) { + if (diff < 180.0) { + if (diff <= max) { angle = diff; - } else { + } + else { angle = max; } - } else if(360.0-diff <= max) { - angle = -(360.0-diff); - } else { + } + else if (360.0 - diff <= max) { + angle = -(360.0 - diff); + } + else { angle = -max; } angle += end; - if(angle >= 360.0) { + if (angle >= 360.0) { angle -= 360.0; - } else if(angle < 0.0) { + } + else if (angle < 0.0) { angle += 360.0; } - + return angle; -} \ No newline at end of file +} diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c new file mode 100755 index 00000000..4e570c51 --- /dev/null +++ b/src/REL/m457Dll/main.c @@ -0,0 +1,1691 @@ +#include "dolphin/pad.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "ext_math.h" +#include "version.h" + +s32 rand8(void); + +#define MSM_SE_BOWSER_LAUGH 0x3A +#define MSM_SE_BOWSER_HOWL 0x3E +#define MSM_SE_KOOPA_KID_DROP 0x5B +#define MSM_SE_PLAYER_DROP 0x33D +#define MSM_SE_WIND 0x6D7 +#define MSM_SE_INVINCIBILITY 0x7E6 + +#define MSM_MUS_BACKGROUND 0x4D + +#define MODEL_ID_PLAYER_PLAYER 0 + +#define MODEL_ID_GAME_SKY 0 +#define MODEL_ID_GAME_RING 1 +#define MODEL_ID_GAME_MUSHROOM 2 +#define MODEL_ID_GAME_INVINCE_SHINING 3 +#define MODEL_ID_GAME_INVINCE_SPARKS 4 +#define MODEL_ID_GAME_KOOPA_KID 5 +#define MODEL_ID_GAME_WAR_FAN 6 + +#define CHARACTER_BOWSER -1 +#define PAD_IDX_COM -1 + +#define PLAYER_STATE_INITIAL_ADVANCE 2 // TODO is this right? +#define PLAYER_STATE_FALLING 16 + +#define PREV_TRIG_L 0 +#define PREV_TRIG_R 1 + +typedef struct PlayerData { + /* 0x00 */ s32 group; + /* 0x04 */ s32 player; + /* 0x08 */ s32 character; + /* 0x0C */ s32 padIdx; + /* 0x10 */ s32 diff; + /* 0x14 */ s32 state; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 invinceTime; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 stamina; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 prevTrig; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ float unk48; + /* 0x4C */ s32 unk4C; +} PlayerData; // Size 0x50 + +typedef struct StructBss78 { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss78; // Size 0x10 + +typedef struct StructData28C { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; +} StructData28C; // Size 0x18 + +typedef struct SparkData { + /* 0x00 */ float scale; + /* 0x04 */ float xOffset; + /* 0x08 */ float yOffset; +} SparkData; // Size 0x0C + +static void M457Exit(omObjData *object); + +static StructBss78 lbl_1_bss_78[5]; +static omObjData *mainObj; +static omObjData *omViewObj; +static omObjData *playerObj[2]; +static omObjData *gameObj; +static s32 lbl_1_bss_60; +static s32 gameState; +static char lbl_1_bss_58[4]; // unused +static s32 lbl_1_bss_54; +static s32 lbl_1_bss_50; +static Process *objman; +static s32 lightId; +static s32 lbl_1_bss_44; +static s32 lbl_1_bss_40; +static s32 lbl_1_bss_3C; +static char lbl_1_bss_38[4]; // unused +static float lbl_1_bss_34; +static float lbl_1_bss_30; +static float lbl_1_bss_2C; +static float lbl_1_bss_28; +static s32 lbl_1_bss_24; +static s32 lbl_1_bss_20; +static s32 lbl_1_bss_1C; +static s32 lbl_1_bss_18; +static BOOL againstBrowserF; +static s32 m457MesEndF; +static char lbl_1_bss_8[8]; // unused +static s32 lbl_1_bss_4; +static char lbl_1_bss_0[4]; // unused + +s32 sprDataNumTbl[] = { DATA_MAKE_NUM(DATADIR_M457, 23), DATA_MAKE_NUM(DATADIR_M457, 22), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_M457, 23), DATA_MAKE_NUM(DATADIR_M457, 22), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_M457, 27), DATA_MAKE_NUM(DATADIR_M457, 28), DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25) }; + +s32 sprIdTbl[23] = { 0 }; + +s32 lbl_1_data_B8[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 112), DATA_MAKE_NUM(DATADIR_MARIOMOT, 111), DATA_MAKE_NUM(DATADIR_M457, 8), DATA_MAKE_NUM(DATADIR_M457, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 12), DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; + +u32 lbl_1_data_E8[] = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 }; + +u32 lbl_1_data_118[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M457, 31), + DATA_MAKE_NUM(DATADIR_M457, 32), DATA_MAKE_NUM(DATADIR_M457, 33), DATA_MAKE_NUM(DATADIR_M457, 34), DATA_MAKE_NUM(DATADIR_M457, 35), + DATA_MAKE_NUM(DATADIR_M457, 36), DATA_MAKE_NUM(DATADIR_M457, 37), DATA_MAKE_NUM(DATADIR_M457, 29), DATA_MAKE_NUM(DATADIR_M457, 30) }; + +u8 lbl_1_data_148[12] = { 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_154[12] = { 8, 0, 0, 8, 5, 8, 4, 2, 2, 8, 8, 8 }; +s32 lbl_1_data_184[12] = { 0 }; + +float lbl_1_data_1B4[9][3] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 20.0f, 60.0f, 20.0f }, { 20.0f, 70.0f, 20.0f }, { 20.0f, 20.0f, 20.0f }, + { 50.0f, -70.0f, 0.0f }, { 20.0f, 60.0f, 20.0f }, { 100.0f, 0.0f, 50.0f }, { -70.0f, -70.0f, -70.0f } }; + +SparkData sparkDataTbl[9] = { { 1.5f, 45.0f, 270.0f }, { 1.7f, 45.0f, 270.0f }, { 1.8f, 45.0f, 270.0f }, { 1.6f, 45.0f, 270.0f }, + { 1.7f, 5.0f, 270.0f }, { 2.0f, -85.0f, 295.0f }, { 1.8f, 45.0f, 270.0f }, { 2.0f, 40.0f, 330.0f }, { 2.25f, -30.0f, 300.0f } }; + +StructData28C lbl_1_data_28C = { 0 }; + +s16 lbl_1_data_2A4 = -1; +s16 lbl_1_data_2A6 = -1; +s32 backgroundMusNo = -1; +s32 windSeNo = -1; +s16 lbl_1_data_2B0 = -1; +s32 invincibilitySeNo = -1; +s32 lbl_1_data_2B8 = 10 * REFRESH_RATE; + +static void CameraPrintDebug(void) +{ + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_Y) != 0) - ((HuPadBtn[0] & PAD_BUTTON_X) != 0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(64, 392, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(64, 408, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(64, 424, 1.0f, "%f", CZoom); +} + +static void M457PlayerExec(omObjData *object) +{ + PlayerData *playerData = object->data; + PlayerData *opponentData = playerObj[1 - object->work[0]]->data; + float unused = 0.0f; + float unused2 = 0.0f; + float unused3 = 0.0f; + s32 unused4 = 0; + s16 var_r29 = -1; + s16 var_r26 = -1; + s16 var_r22 = -1; + BOOL aPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_BUTTON_A) > 0); + BOOL rPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_TRIGGER_R) > 0); + BOOL lPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_TRIGGER_L) > 0); + s32 i; + + if (playerData->padIdx == PAD_IDX_COM) { + playerData->unk3C--; + if (playerData->unk3C <= 0) { + if (playerData->state == 1) { + aPressedF = TRUE; + } + else { + rPressedF = lPressedF = TRUE; + } + if (playerData->state >= 8 || (playerData->state >= 3 && playerData->unk18 >= 10)) { + switch (playerData->diff) { + case 0: + playerData->unk3C = rand8() % 14 + 4 + (playerData->state != 8 ? 28 - playerData->unk18 : 0); + break; + case 1: + playerData->unk3C = rand8() % 9 + 4 + (playerData->state != 8 ? 28 - playerData->unk18 : 0); + break; + case 2: + playerData->unk3C = rand8() % 10 + 12 + + ((playerData->state != 8 && playerData->unk18 >= 9 && playerData->unk18 <= 13) ? 13 - playerData->unk18 : 0); + break; + case 3: + playerData->unk3C = rand8() % 5 + 4 + + ((playerData->state != 8 && playerData->unk18 >= 2 && playerData->unk18 <= 17) ? 17 - playerData->unk18 : 0); + if (opponentData->invinceTime > 0 || playerData->state == 7) { + // don't waste stamina + lPressedF = rPressedF = 0; + } + break; + } + } + } + } + if (playerData->prevTrig == PREV_TRIG_L) { + lPressedF = FALSE; + } + if (playerData->prevTrig == PREV_TRIG_R) { + rPressedF = FALSE; + } + if (playerData->unk20 > 0) { + aPressedF = FALSE; + playerData->unk20--; + } + else if (aPressedF) { + playerData->unk20 = 20; + } + if (playerData->unk24 > 0) { + lPressedF = FALSE; + playerData->unk24--; + } + else if (lPressedF) { + playerData->unk24 = 6; + } + if (playerData->unk28 > 0) { + rPressedF = FALSE; + playerData->unk28--; + } + else if (rPressedF) { + playerData->unk28 = 6; + } + if (gameState == 1008 && playerData->state >= 8 && playerData->state <= 14) { + s32 prevStamina = playerData->stamina; + if (lPressedF) { + playerData->stamina -= 7; + } + if (rPressedF) { + playerData->stamina -= 7; + } + if (prevStamina > 0 && playerData->stamina <= 0) { + // cap at -1 + playerData->stamina = -1; + playerData->unk4C = 1; + } + } + if (lbl_1_bss_20 == 0 && gameState == 1008 && playerData->state >= 7 && playerData->state <= 14 && (lPressedF || rPressedF)) { + playerData->prevTrig = lPressedF ? PREV_TRIG_L : rPressedF ? PREV_TRIG_R : PREV_TRIG_L; + } + if (playerData->group == 0) { + playerObj[0]->trans.x -= playerData->unk48; + playerObj[1]->trans.x -= opponentData->unk48; + } + switch (gameState) { + case 1001: + if (lbl_1_bss_60 == 0) { + Hu3DModelAttrReset(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_60 <= 30) { + if (playerData->character == CHARACTER_BOWSER) { + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], 138.0f); + } + object->trans.y = 2400.0 * (1.0 - lbl_1_bss_60 / 30.0); + } + if (playerData->character != CHARACTER_BOWSER && lbl_1_bss_60 == 30) { + var_r29 = 2; + } + if (lbl_1_bss_60 == 40 && playerData->character != CHARACTER_BOWSER) { + var_r29 = 0; + } + if (lbl_1_bss_60 == 45 && playerData->character == CHARACTER_BOWSER) { + var_r29 = 0; + Hu3DMotionShiftSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29], lbl_1_data_184[var_r29], 35.0f, HU3D_MOTATTR_LOOP); + playerData->unk40 = var_r29; + } + if (lbl_1_bss_60 == 30) { + lbl_1_data_28C.unk04 += 50; + } + if (lbl_1_bss_60 == 30) { + HuAudFXPlay(MSM_SE_PLAYER_DROP); + } + break; + case 1005: + if (lbl_1_bss_60 == 0) { + var_r29 = 3; + } + if (lbl_1_bss_60 == (s32)((21.0f / 18) * REFRESH_RATE)) { + var_r29 = 4; + } + break; + case 1006: + if (lbl_1_bss_60 == 5) { + var_r29 = 5; + } + break; + case 1010: + if (lbl_1_bss_44 == playerData->group && lbl_1_bss_60 >= 15) { + if (lbl_1_bss_60 == 15) { + playerData->state = 0; + playerData->unk18 = 0; + if (playerData->character == CHARACTER_BOWSER) { + HuAudFXPlay(MSM_SE_BOWSER_LAUGH); + } + } + var_r29 = 10; + if (object->rot.y > 180.0f) { + object->rot.y -= 360.0f; + } + object->rot.y *= 0.9; + } + if (lbl_1_bss_44 == 2 && lbl_1_bss_60 >= 15) { + if (lbl_1_bss_60 == 15) { + playerData->state = 0; + playerData->unk18 = 0; + } + var_r29 = 11; + if (object->rot.y > 180.0f) { + object->rot.y -= 360.0f; + } + object->rot.y *= 0.9; + } + break; + } + playerData->unk18 += (playerData->unk18 < 0x10000); + if (playerData->state == 3 || playerData->state == 5) { + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if ((playerData->state == 3 && playerData->unk18 == 23) || (playerData->state == 5 && playerData->unk18 == 15)) { + float spFC[2]; + HuWinMesMaxSizeGet(1, spFC, MAKE_MESSID(48, 35)); + if (lbl_1_data_2B0 == -1) { + lbl_1_data_2B0 = HuWinCreate(-10000.0f, 400.0f, spFC[0], spFC[1], 1); + } + HuWinBGTPLvlSet(lbl_1_data_2B0, 0.0f); + HuWinMesSpeedSet(lbl_1_data_2B0, 0); + HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 35)); + } + } + switch (playerData->state) { + case 0: + if (gameState == 1008) { + playerData->state = 1; + playerData->unk18 = 0; + } + break; + case 1: + if (playerData->unk18 == 1 && playerData->padIdx == PAD_IDX_COM) { + switch (playerData->diff) { + case 0: + playerData->unk3C = rand8() % 5 + 15; + break; + case 1: + playerData->unk3C = rand8() % 5 + 12; + break; + case 2: + playerData->unk3C = rand8() % 5 + 10; + break; + case 3: + playerData->unk3C = rand8() % 4 + 9; + break; + } + } + // initial advance + if (aPressedF) { + playerData->state = PLAYER_STATE_INITIAL_ADVANCE; + playerData->unk18 = 0; + var_r29 = 6; + object->trans.x += (playerData->group == 0) ? ((rand8() % 2) * 2 - 1) : 0; + } + break; + case PLAYER_STATE_INITIAL_ADVANCE: + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + break; + case 3: + object->trans.x += 4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 4: + if (playerData->unk18 == 1) { + var_r29 = 7; + } + object->trans.x += -4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 5: + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 15) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 6: + if (playerData->unk18 == 1) { + var_r29 = 8; + } + object->trans.x += -8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 7) { + playerData->state = 8; + playerData->unk18 = 0; + var_r26 = 7; + var_r29 = 4; + } + if (playerData->unk18 >= 15) { + playerData->state = 8; + playerData->unk18 = 0; + } + break; + case 8: + if (playerData->stamina == 0) { + var_r26 = 0; + playerData->state = 7; + playerData->unk18 = 1; + playerData->unk34 = 0; + } + else { + if (!lPressedF && !rPressedF) { + break; + } + playerData->state = 9; + playerData->unk18 = 0; + var_r26 = 3; + var_r22 = (playerData->prevTrig == PREV_TRIG_L ? 0 : 11) + 5; + var_r29 = 6; + if (lbl_1_bss_20 == 1) { + playerData->prevTrig = lPressedF ? PREV_TRIG_L : rPressedF ? PREV_TRIG_R : PREV_TRIG_L; + } + break; + } + /* fallthrough */ + case 7: + if (playerData->unk18 == 1) { + s32 noStaminaSeIdTbl[] = { 0x12A, 0x16A, 0x1AA, 0x1EA, 0x22A, 0x26A, 0x2AA, 0x2EA, 0x03B }; + HuAudFXPlay(noStaminaSeIdTbl[playerData->character == CHARACTER_BOWSER ? 8 : playerData->character]); + var_r29 = 9; + playerData->unk4C = 0; + } + if (playerData->stamina > 0) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 9: + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 12: + if (playerData->unk18 == 7) { + var_r26 = 0; + var_r22 = 7; + var_r29 = 7; + } + if (playerData->unk18 == 15) { + var_r26 = 5; + var_r29 = 4; + } + if (playerData->unk18 >= 20) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 10: + object->trans.x += 4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 11: + object->trans.x += -4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 == 1) { + var_r29 = 7; + } + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 13: + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + var_r29 = 4; + } + break; + case 14: + object->trans.x += -8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 == 1) { + var_r29 = 8; + } + if (playerData->unk18 == 11) { + var_r26 = 11; + var_r29 = 4; + } + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; + } + if (playerData->unk34 < 8) { + playerData->unk34 = 8; + } + break; + case 15: + if (playerData->unk18 == 1 && playerData->invinceTime > 4) { + playerData->invinceTime = 4; + } + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if (playerData->unk18 == 7) { + var_r29 = 4; + var_r26 = 20; + } + if (playerData->unk18 == REFRESH_RATE) { + lbl_1_bss_44 = playerData->group; + playerData->invinceTime = 0; + } + break; + case PLAYER_STATE_FALLING: + // make the player fall down in the correct direction + object->trans.x += -39.130432f * (playerData->group == 0 ? 1 : -1); + object->trans.y += 39.130432f; + if (playerData->unk18 == 1) { + s32 fallSeIdTbl[] = { 0x123, 0x163, 0x1A3, 0x1E3, 0x223, 0x263, 0x2A3, 0x2E3, 0x03C }; + HuAudFXPlay(fallSeIdTbl[playerData->character == CHARACTER_BOWSER ? 8 : playerData->character]); + var_r29 = 8; + var_r26 = 0; + var_r22 = 6; + } + object->rot.z = (playerData->group == 0) ? -20 : 20; + break; + case 17: + if (playerData->unk18 == 1 && playerData->invinceTime > 4) { + playerData->invinceTime = 4; + } + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if (playerData->unk18 == 7) { + var_r29 = 0; + var_r26 = 10; + } + if (playerData->unk18 >= 7 && playerData->unk18 < 17) { + object->trans.x += (playerData->group == 0 ? -1 : 1) * 2; + } + if (playerData->unk18 == REFRESH_RATE) { + lbl_1_bss_44 = 2; + playerData->invinceTime = 0; + } + break; + } + switch (playerData->state) { + case 12: + if (playerData->group == 0) { + break; + } + /* fallthrough */ + case 3: + case 5: + case 10: + case 13: { + Vec sp104; + s32 temp_r21; + char *var_r18; + + s32 temp_r19 = Hu3DMotionTimeGet(object->model[MODEL_ID_PLAYER_PLAYER]); + if ((opponentData->state != 4 && opponentData->state != 6) || opponentData->unk18 != 1) { + if ((temp_r19 + 1) % 11 != 0 || (playerData->state == 12 && temp_r19 + 1 > 11)) { + break; + } + } + temp_r21 = ((temp_r19 + 1) / 11 - 1) % 2; + { + char sp1D8[][50] = { "g000mN-itemhook_R", "g000mN-itemhook_L" }; + + if (playerData->character != CHARACTER_BOWSER) { + var_r18 = CharModelHookNameGet(playerData->character, 1, (temp_r21 % 2 == 0) ? 0 : 1); + } + else { + var_r18 = (temp_r21 % 2 == 0) ? sp1D8[0] : sp1D8[1]; + } + } + Hu3DModelObjPosGet(object->model[MODEL_ID_PLAYER_PLAYER], var_r18, &sp104); + Hu3DModelPosSet(gameObj->model[temp_r21 + 7], sp104.x + (playerData->group == 0 ? 1 : -1) * 50, sp104.y, 75.0f + sp104.z); + Hu3DMotionTimeSet(gameObj->model[temp_r21 + 7], 2.0f); + Hu3DModelAttrReset(gameObj->model[temp_r21 + 7], 1); + if (lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00 < 3) { + lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0] + .unk04[lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00] + = 0.0f; + lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00++; + } + // bounds check + if (fabs(playerObj[1 - playerData->group]->trans.x) >= 800.0 && (opponentData->state == 11 || opponentData->state == 14)) { + playerData->state = 15; + opponentData->state = PLAYER_STATE_FALLING; + playerData->unk18 = opponentData->unk18 = 0; + if (lbl_1_bss_78[4].unk00 < 3) { + lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; + lbl_1_bss_78[4].unk00++; + } + if (backgroundMusNo != -1) { + HuAudSeqFadeOut(backgroundMusNo, 100); + backgroundMusNo = -1; + } + } + } break; + } + playerData->unk34++; + if (playerData->state != PLAYER_STATE_FALLING && playerData->state != 15 && playerData->state != 17 && gameState == 1008 + && playerData->unk34 >= 30 && (playerData->unk34 - 30) % 30 == 0) { + // regen stamina + playerData->stamina += (playerData->unk4C == 0 || playerData->state == 7) ? 10 : 0; + } + // apply invincibility to stamina and cap it + playerData->stamina = (playerData->invinceTime > 0 || playerData->stamina >= 100) ? 100 : (playerData->stamina < 0) ? 0 : playerData->stamina; + for (i = 0; i < 5; i++) { + float scale = (playerData->stamina >= i * 20 + 20) ? 1.0 : (playerData->stamina <= i * 20) ? 0.0 : (playerData->stamina - i * 20) / 20.0; + espScaleSet(sprIdTbl[i + (playerData->group == 0 ? 2 : 10)], scale, scale); + if (playerData->invinceTime > 0) { + // stamina bar mushroom start positions/offsets + s32 posXTbl[] = { 106, 469 }; + s32 posYTbl[] = { 78, 78 }; + s32 ofsXTbl[] = { 0, 0, -33, -9, 15, 39, 63, -68, 0, 0, -33, -9, 15, 39, 63, -68 }; // second half is unused + s32 ofsYTbl[] = { 0, 0, -1, -1, -1, -1, -1, -2, 0, 0, -1, -1, -1, -1, -1, -2 }; + + // make the mushrooms in the stamina bar glow + espPosSet(sprIdTbl[i + 18], posXTbl[playerData->group] + ofsXTbl[i + 2], posYTbl[playerData->group] + ofsYTbl[i + 2]); + espScaleSet(sprIdTbl[i + 18], (playerData->invinceTime % 4 == 0) ? 1.1 : 1.0, (playerData->invinceTime % 4 == 0) ? 1.1 : 1.0); + espTPLvlSet(sprIdTbl[i + 18], (playerData->invinceTime % 4 < 2) ? 1.0 : (var_r22 % 4 == 2) ? 0.5 : 0.0); + espDispOn(sprIdTbl[i + 18]); + } + else if (opponentData->invinceTime == 0) { + espDispOff(sprIdTbl[i + 18]); + } + } + if (playerData->invinceTime > 0) { + s32 sp20 = (playerData->character != CHARACTER_BOWSER) ? playerData->character : 8; + // make the player shine + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], + object->trans.x + sparkDataTbl[sp20].xOffset * (playerData->group == 0 ? 1 : -1), object->trans.y + sparkDataTbl[sp20].yOffset, + 150.0f + object->trans.z); + Hu3DModelScaleSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], 0.75 * sparkDataTbl[sp20].scale, 0.75 * sparkDataTbl[sp20].scale, + 0.75 * sparkDataTbl[sp20].scale); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], 1); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_ZCMP_OFF); + // add sparks + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], + object->trans.x + sparkDataTbl[sp20].xOffset * (playerData->group == 0 ? 1 : -1), object->trans.y + sparkDataTbl[sp20].yOffset, + 150.0f + object->trans.z); + Hu3DModelScaleSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], 0.75 * sparkDataTbl[sp20].scale, 0.75 * sparkDataTbl[sp20].scale, + 0.75 * sparkDataTbl[sp20].scale); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], 1); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_ZCMP_OFF); + playerData->invinceTime--; + if (playerData->invinceTime == 0) { + HuAudFXStop(invincibilitySeNo); + } + } + else if (opponentData->invinceTime == 0) { + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_DISPOFF); + } + if (playerData->unk44 >= 0) { + var_r29 = playerData->unk44; + } + if (var_r29 >= 0 && var_r29 != playerData->unk40) { + if (var_r26 == 0) { + Hu3DMotionSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29]); + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], (var_r22 == -1) ? 0 : var_r22); + } + else { + Hu3DMotionShiftSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29], (var_r22 != -1) ? var_r22 : lbl_1_data_184[var_r29], + (var_r26 != -1) ? var_r26 : lbl_1_data_154[var_r29], lbl_1_data_148[var_r29] ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + } + playerData->unk40 = var_r29; + } + if (playerData->group == 1) { + ModelData *playerModel = &Hu3DData[object->model[MODEL_ID_PLAYER_PLAYER]]; + } +} + +s32 lbl_1_data_33C = -1; +float lbl_1_data_340 = 3500.0f; +float lbl_1_data_344 = 100.0f; +float lbl_1_data_348 = -59.0f; + +static void M457GameExec(omObjData *object) +{ + PlayerData *sp158[2]; + omObjData *sp150[2]; + PlayerData *sp148[2]; + s32 sp140[2]; + omObjData *playerObjLocal[2]; + PlayerData *playerData[2]; + ModelData *temp_r24; + ModelData *temp_r27; + ModelData *mushroomModel; + ModelData *temp_r29; + float spAC; + float spA8; + float spA4; + float temp_f20; + float var_f19; + float temp_f24; + float temp_f23; + float temp_f22; + float var_f21; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f28; + float temp_f29; + float var_f31; + s32 invinciblePlayerId; + s32 var_r26; + s32 var_r25; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 i; + + for (i = 0; i < 2; i++) { + sp158[i] = playerObj[i]->data; + } + lbl_1_bss_4++; + switch (gameState) { + case 1003: + temp_f27 = 1800.0 * (1.0 - lbl_1_bss_60 / 30.0); + temp_f27 = (temp_f27 < 0.0f) ? 0.0f : temp_f27; + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, temp_f27, 0.0f); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_60 == 31) { + HuAudFXPlay(MSM_SE_KOOPA_KID_DROP); + } + if (lbl_1_bss_60 >= 31 && lbl_1_bss_60 <= 38) { + temp_f24 = 1.0 - (lbl_1_bss_60 - 31) / 7.0; + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 25.0 * (temp_f24 * 0.5 + temp_f24 * temp_f24 * 0.5), 0.0f, 0.0f); + } + break; + case 1002: + if (lbl_1_bss_60 == 0) { + lbl_1_bss_3C = 0; + } + if (lbl_1_bss_60 == (VERSION_NTSC ? 20 : 15)) { + espAttrReset(sprIdTbl[16], HUSPR_ATTR_DISPOFF); + } + if ((lbl_1_bss_60 >= (VERSION_NTSC ? 20 : 15) && lbl_1_bss_60 <= REFRESH_RATE - 10) + || (lbl_1_bss_60 >= 3 * REFRESH_RATE && lbl_1_bss_60 <= (s32)(3.5 * REFRESH_RATE))) { + spAC = (lbl_1_bss_60 <= 120) ? (lbl_1_bss_60 - (VERSION_NTSC ? 20 : 15)) / (0.5 * REFRESH_RATE) + : (1.0 - (lbl_1_bss_60 - 3 * REFRESH_RATE) / (0.5 * REFRESH_RATE)); + espTPLvlSet(sprIdTbl[16], spAC); + } + if (lbl_1_bss_60 == (s32)(3.5 * REFRESH_RATE)) { + espAttrSet(sprIdTbl[16], HUSPR_ATTR_DISPOFF); + } + break; + case 1006: + if (lbl_1_bss_60 == 0) { + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[2]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_60 == 15) { + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_PAUSE); + } + break; + case 1008: + if (lbl_1_bss_60 == 1) { + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_PAUSE); + for (i = 0; i < 16; i++) { + espDispOn(sprIdTbl[i]); + } + } +#if VERSION_NTSC + if (lbl_1_bss_60 <= 25) { + temp_f28 = lbl_1_bss_60 / 25.0; + temp_f26 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28) * (1.0f - temp_f28); + temp_f26 = 0.25 + 1.375 * temp_f26; + temp_f23 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28); + temp_f23 = 2.0f * (1.0f - temp_f28); + espAttrReset(sprIdTbl[17], HU3D_ATTR_SHADOW); +#if VERSION_ENG + espScaleSet(sprIdTbl[17], 0.85 * temp_f26, 0.85 * temp_f26); +#else + espScaleSet(sprIdTbl[17], temp_f26, temp_f26); +#endif + espTPLvlSet(sprIdTbl[17], (temp_f23 > 1.0f) ? 1.0f : temp_f23); + } + else { + espAttrSet(sprIdTbl[17], HUSPR_ATTR_DISPOFF); + } +#endif + for (i = 0; i < 2; i++) { + sp150[i] = playerObj[i]; + sp148[i] = playerObj[i]->data; + } + for (i = 0; i < 2; i++) { + sp140[i] = (sp148[1 - i]->invinceTime > 0) ? 2 + : (sp148[i]->state == 8) ? 2 + : (sp148[i]->state == 1) ? 1 + : (sp148[i]->state == 9) ? (sp148[i]->unk18 >= 0 ? 3 : 2) + : (sp148[i]->state == 2) ? 4 + : (sp148[i]->state == 7) ? 0 + : -1; + } + if (sp140[0] >= 0 && sp140[1] >= 0 && fabs(sp150[0]->trans.x - sp150[1]->trans.x) < 300.0) { + sp150[0]->trans.x = (sp148[0]->invinceTime > 0) ? sp150[0]->trans.x + : (sp148[1]->invinceTime > 0) ? (sp150[1]->trans.x - 300.0f) + : ((sp150[0]->trans.x + sp150[1]->trans.x) / 2.0 - 150.0); + sp150[0]->trans.x = (sp150[0]->trans.x >= 650.0) ? 650.0 : (sp150[0]->trans.x <= -950.0) ? -950.0 : sp150[0]->trans.x; + sp150[1]->trans.x = sp150[0]->trans.x + 300.0f; + if (sp140[0] >= 3 || sp140[1] >= 3) { + var_r26 = (sp140[0] >= 3) ? 0 : 1; + var_r25 = 1 - var_r26; + switch (sp140[var_r25]) { + case 4: + if (sp150[var_r26]->trans.x * (var_r26 == 0 ? 1 : -1) < sp150[var_r25]->trans.x * (var_r25 == 0 ? 1 : -1)) { + var_r26 = 1 - var_r26; + var_r25 = 1 - var_r25; + } + sp148[var_r26]->state = 3; + sp148[var_r25]->state = 4; + break; + case 1: + sp148[var_r26]->state = 5; + sp148[var_r25]->state = 6; + break; + case 3: + sp148[var_r26]->state = 12; + sp148[var_r25]->state = 12; + break; + case 2: + sp148[var_r26]->state = 10; + sp148[var_r25]->state = 11; + break; + case 0: + sp148[var_r26]->state = 13; + sp148[var_r25]->state = 14; + break; + } + sp148[0]->unk18 = sp148[1]->unk18 = 0; + } + } + /* fallthrough */ + case 1009: + if (gameState != 1008 && lbl_1_bss_40 == 0) { + break; + } + for (i = 0; i < 2; i++) { + playerObjLocal[i] = playerObj[i]; + playerData[i] = playerObj[i]->data; + } + switch (lbl_1_bss_18) { + case 0: + if (lbl_1_bss_40 == 0 && lbl_1_bss_18 == 0 && (playerObjLocal[0]->trans.x > -150.0f || playerObjLocal[1]->trans.x < 150.0f)) { + lbl_1_bss_18 = (-playerObjLocal[0]->trans.x < playerObjLocal[1]->trans.x ? 1 : 2); + Hu3DModelPosSet(gameObj->model[9], 0.0f, 100.0f, 0.0f); + Hu3DMotionTimeSet(gameObj->model[9], 0.0f); + Hu3DModelAttrReset(gameObj->model[9], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_78[4].unk00 < 3) { + lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; + lbl_1_bss_78[4].unk00++; + } + } + if (lbl_1_bss_18 == 0) { + break; + } + /* fallthrough */ + case 1: + case 2: + temp_r27 = &Hu3DData[object->model[MODEL_ID_GAME_KOOPA_KID]]; + temp_r27->rot.y += (lbl_1_bss_18 == 1 ? 18 : -18); + temp_r27->rot.z = (lbl_1_bss_18 == 1 ? -20 : 20); + temp_r27->pos.x += 5.130000000000001 * (lbl_1_bss_18 == 1 ? 1 : -1); + temp_r27->pos.y += 47.0; + temp_r27->pos.z += -20.0f; + if (temp_r27->pos.y > 1800.0f) { + lbl_1_bss_18 += 2; + } + break; + } + switch (lbl_1_bss_1C) { + case 0: + case 2: + lbl_1_data_2B8 -= (lbl_1_bss_18 >= 3 && playerData[0]->state < 16 && playerData[1]->state < 16); + if (lbl_1_data_2B8 != 0) { + break; + } + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[MODEL_ID_GAME_MUSHROOM], + (lbl_1_bss_1C == 0) ? 0.0 : (2.0 * ((rand8() % 256) / 255.0 - 0.5) * 400.0), 1500.0f, 0.0f); + lbl_1_bss_1C = 1; + /* fallthrough */ + case 1: + mushroomModel = &Hu3DData[object->model[MODEL_ID_GAME_MUSHROOM]]; + // descend mushroom + mushroomModel->pos.y -= 10.0f; + if (mushroomModel->pos.y <= 225.0f) { + float playerDistsToMushroom[] = { 100000000.0f, 100000000.0f }; + // make sure it doesn't fall through the ring + mushroomModel->pos.y = (mushroomModel->pos.y < 100.0f) ? 100.0f : mushroomModel->pos.y; + for (i = 0; i < 2; i++) { + if (fabs(playerObjLocal[i]->trans.x + (i == 0 ? 40 : -40) - mushroomModel->pos.x) < 180.0) { + playerDistsToMushroom[i] = fabs(playerObjLocal[i]->trans.x + (i == 0 ? 40 : -40) - mushroomModel->pos.x); + } + } + if (playerDistsToMushroom[0] != playerDistsToMushroom[1]) { + invinciblePlayerId = (playerDistsToMushroom[0] < playerDistsToMushroom[1]) ? 0 : 1; + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + lbl_1_bss_1C = 2; + lbl_1_data_2B8 = 10 * REFRESH_RATE; + playerData[invinciblePlayerId]->invinceTime = 5 * REFRESH_RATE; + playerData[invinciblePlayerId]->unk4C = 0; + if (lbl_1_bss_78[3].unk00 < 3) { + lbl_1_bss_78[3].unk04[lbl_1_bss_78[3].unk00] = 0.0f; + lbl_1_bss_78[3].unk00++; + } + invincibilitySeNo = HuAudFXPlay(MSM_SE_INVINCIBILITY); + } + } + if (playerData[0]->state >= 16 || playerData[1]->state >= 16 || lbl_1_bss_40 != 0) { + lbl_1_bss_1C = 3; + lbl_1_data_2B8 = 0; + } + if (lbl_1_bss_1C == 1) { + break; + } + /* fallthrough */ + case 3: + lbl_1_data_2B8++; + if (lbl_1_data_2B8 < REFRESH_RATE && lbl_1_data_2B8 % 2 == 0) { + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + } + break; + } + break; + } + switch (gameState) { + case 1009: + if (lbl_1_bss_40 == 0) { + if (lbl_1_bss_60 <= 30) { + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, (30 - lbl_1_bss_60) * 50 * 0.94, 0.0f); + Hu3DModelRotSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, 0.0f, lbl_1_bss_18 == 3 ? -20 : 20); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_60 == 30) { + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_60 == 30) { + HuAudFXPlay(MSM_SE_KOOPA_KID_DROP); + } + if (lbl_1_bss_60 >= 30 && lbl_1_bss_60 <= 37) { + temp_f22 = 1.0 - (lbl_1_bss_60 - 30) / 7.0; + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 25.0 * (temp_f22 * 0.5 + temp_f22 * temp_f22 * 0.5), 0.0f, 0.0f); + } + } + else if (lbl_1_bss_18 == 0) { + Hu3DMotionSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + } + break; + case 1010: + if (lbl_1_bss_40 == 0) { + if (lbl_1_bss_60 == 1) { + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[3]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + } + temp_r24 = &Hu3DData[object->model[MODEL_ID_GAME_KOOPA_KID]]; + temp_f20 = (playerObj[lbl_1_bss_44]->trans.x < 0.0f) ? -90 : 90; + temp_r24->rot.y = temp_f20 + 0.8 * (temp_r24->rot.y - temp_f20); + } + break; + } + var_r22 = lbl_1_data_33C; + { + float sp160[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2100.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; + + if (lbl_1_bss_44 != -1 && lbl_1_bss_40 == 0) { + sp160[2][1] = playerObj[lbl_1_bss_44]->trans.x; + } + if (lbl_1_data_33C == -1) { + lbl_1_data_33C = 0; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if (lbl_1_data_33C == 0) { + lbl_1_data_33C = 1; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 0.5f; + } + if (gameState == 1010 && lbl_1_bss_44 != 2 && lbl_1_bss_60 >= 15 && lbl_1_data_33C == 1) { + lbl_1_data_33C = 2; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if (var_r22 != lbl_1_data_33C && var_r22 != -1) { + lbl_1_data_340 = CZoom; + lbl_1_data_344 = Center.y; + lbl_1_bss_30 = Center.z; + lbl_1_data_348 = CRot.x; + lbl_1_bss_34 = CRot.y; + } + if (lbl_1_bss_28 <= 1.0f) { + if (lbl_1_bss_24 == 0) { + lbl_1_bss_28 = 1.0 - 0.95 * (1.0f - lbl_1_bss_28); + var_f31 = lbl_1_bss_28; + } + else { + lbl_1_bss_28 += 0.008333333333333333; + lbl_1_bss_28 = (lbl_1_bss_28 > 1.0f) ? 1.0f : lbl_1_bss_28; + var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_28); + } + lbl_1_bss_28 = (lbl_1_bss_28 > 1.0f) ? 1.0f : lbl_1_bss_28; + CZoom = var_f31 * sp160[lbl_1_data_33C][0] + lbl_1_data_340 * (1.0f - var_f31); + Center.x = var_f31 * sp160[lbl_1_data_33C][1] + lbl_1_bss_2C * (1.0f - var_f31); + Center.y = var_f31 * sp160[lbl_1_data_33C][2] + lbl_1_data_344 * (1.0f - var_f31); + Center.z = var_f31 * sp160[lbl_1_data_33C][3] + lbl_1_bss_30 * (1.0f - var_f31); + CRot.x = var_f31 * sp160[lbl_1_data_33C][4] + lbl_1_data_348 * (1.0f - var_f31); + CRot.y = var_f31 * sp160[lbl_1_data_33C][5] + lbl_1_bss_34 * (1.0f - var_f31); + } + } + if (gameState == 1001) { + var_f21 = 0.0f; + temp_f25 = 0.0f; + if (lbl_1_data_28C.unk00 % 2 >= 0) { + lbl_1_data_28C.unk08 = lbl_1_data_28C.unk10; + lbl_1_data_28C.unk0C = lbl_1_data_28C.unk14; + do { + lbl_1_data_28C.unk10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_28C.unk14 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_28C.unk10 = 0.0f; + temp_f29 = (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) * (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) + + (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C) * (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C); + } while (sqrtf(temp_f29) < 0.75); + } + var_f21 = lbl_1_data_28C.unk08; + temp_f25 = lbl_1_data_28C.unk0C; + var_f21 *= lbl_1_data_28C.unk04 * 2; + temp_f25 *= lbl_1_data_28C.unk04 * 2; + lbl_1_data_28C.unk00 = !lbl_1_data_28C.unk00; + lbl_1_data_28C.unk04 = (lbl_1_data_28C.unk04 > 24) ? 23 : (lbl_1_data_28C.unk04 - 1 > 0) ? (lbl_1_data_28C.unk04 - 1) : 0; + Center.x = 0.0f; + Center.y = 100.0f + temp_f25; + } + if (gameState >= 1008) { + for (i = 0; i < 2; i++) { + temp_r29 = &Hu3DData[playerObj[i]->model[MODEL_ID_PLAYER_PLAYER]]; + var_r21 = (sp158[i]->character != CHARACTER_BOWSER) ? sp158[i]->character : 8; + var_r20 = (temp_r29->unk_08 == playerObj[i]->motion[4]) ? 0 + : (temp_r29->unk_08 == playerObj[i]->motion[6]) ? 1 + : (temp_r29->unk_08 == playerObj[i]->motion[7]) ? 2 + : -1; + var_r19 = (temp_r29->unk_0C == playerObj[i]->motion[4]) ? 0 + : (temp_r29->unk_0C == playerObj[i]->motion[6]) ? 1 + : (temp_r29->unk_0C == playerObj[i]->motion[7]) ? 2 + : -1; + spA8 = (var_r20 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r20]; + spA4 = (var_r19 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r19]; + var_f19 = (temp_r29->unk_0C == -1) ? 0.0f : (temp_r29->unk_80 == 0.0f) ? 1.0f : (temp_r29->unk_7C / temp_r29->unk_80); + sp158[i]->unk48 = (i == 0 ? 1 : -1) * (spA8 * (1.0f - var_f19) + spA4 * var_f19); + playerObj[i]->trans.x += sp158[i]->unk48; + Hu3DModelPosSet(playerObj[i]->model[MODEL_ID_PLAYER_PLAYER], playerObj[i]->trans.x, playerObj[i]->trans.y, playerObj[i]->trans.z); + } + } +} + +static void WrestleMesMain(void) +{ + PlayerData *playerData[2]; + s16 unk; + s16 window; + s32 i; + + unk = 0; + for (i = 0; i < 2; i++) { + playerData[i] = playerObj[i]->data; + } + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, REFRESH_RATE); + HuWinComKeyReset(); + window = HuWinExCreateStyled(36.0f, 344.0f, 504, 96, 6, 0); + HuWinBGTPLvlSet(window, 0.8f); + HuWinMesSpeedSet(window, 1); + HuWinExAnimIn(window); + HuWinDisablePlayerSet(window, + 0xF & ((playerData[0]->padIdx != PAD_IDX_COM) ? ~(1 << playerData[0]->padIdx) : 0xF) + & ((playerData[1]->padIdx != PAD_IDX_COM) ? ~(1 << playerData[1]->padIdx) : 0xF)); + HuWinMesSet(window, MAKE_MESSID(48, 31)); + if ((playerData[0]->padIdx == PAD_IDX_COM || playerData[0]->character == CHARACTER_BOWSER) + && (playerData[1]->padIdx == PAD_IDX_COM || playerData[1]->character == CHARACTER_BOWSER)) { + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 48 : REFRESH_RATE); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 90 : REFRESH_RATE); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 72 : REFRESH_RATE); + } + HuWinMesWait(window); + HuWinExAnimOut(window); + HuWinExCleanup(window); + m457MesEndF = 0; + HuPrcEnd(); +} + +static void ShoveMesMain(void) +{ + float var_f31; + s16 temp_r31; + WindowData *temp_r30; + PlayerData *spC[2]; +#if VERSION_PAL + float var_f30; + double var_f29; + double var_f28; + float sp14[2]; + float spC_2[2]; + WindowData *var_r29; +#endif + s32 var_r28; + s16 sp8; + s32 var_r26; + s32 i; + + sp8 = 0; + for (i = 0; i < 2; i++) { + spC[i] = playerObj[i]->data; + } + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, REFRESH_RATE); + HuWinComKeyReset(); +#if VERSION_NTSC + temp_r31 = HuWinCreate(215.0f, 100.0f, 130, 37, 1); +#else + HuWinMesMaxSizeGet(1, sp14, MAKE_MESSID(48, 32)); + temp_r31 = HuWinCreate(-10000.0f, 100.0f, sp14[0], 0x25, 1); +#endif + HuSprColorSet(winData[temp_r31].group, 0, 0xFF, 0xFF, 0xCC); + HuWinBGTPLvlSet(temp_r31, 0.9f); + temp_r30 = &winData[temp_r31]; +#if VERSION_PAL + var_f29 = temp_r30->pos_x; +#endif + temp_r30->mess_color = 0; + temp_r30->mess_shadow_color = 9; + temp_r30->attr |= 0x80; + for (var_r28 = 15, var_f31 = 0.0f; var_r28 != 0; var_r28--, var_f31 += 2.0f / 30) { + HuWinScaleSet(temp_r31, 1.0f, 1.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31))); +#if VERSION_NTSC + HuWinPosSet(temp_r31, 215.0f, 100.0 + 37.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31)) / -4.0); +#else + HuWinPosSet(temp_r31, var_f29, 100.0 + 37.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31)) / -4.0); +#endif + HuPrcVSleep(); + } + HuWinScaleSet(temp_r31, 1.0f, 1.0f); + HuWinMesSet(temp_r31, MAKE_MESSID(48, 32)); + HuPrcSleep(REFRESH_RATE); + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); +#if VERSION_PAL + temp_r31 = 0; +#endif + m457MesEndF = 0; +#if VERSION_PAL + while (gameState != 1008) { + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, spC_2, MAKE_MESSID(48, 33)); + temp_r31 = HuWinCreate(-10000.0f, 100.0f, spC_2[0], spC_2[1], 1); + HuSprColorSet(winData[temp_r31].group, 0, 0xFF, 0xFF, 0xCC); + HuWinBGTPLvlSet(temp_r31, 0.9f); + var_r29 = &winData[temp_r31]; + var_f28 = var_r29->pos_x; + var_r29->mess_color = 0; + var_r29->mess_shadow_color = 9; + var_r29->attr |= 0x80; + for (var_r26 = 5, var_f30 = 0.0f; var_r26 != 0; var_r26--, var_f30 += 0.2f) { + HuWinScaleSet(temp_r31, 1.0f, (double)(1.0f - ((1.0f - var_f30) * (1.0f - var_f30)))); + HuWinPosSet(temp_r31, var_f28, 100.0 + (((double)spC_2[1] * (1.0f - ((1.0f - var_f30) * (1.0f - var_f30)))) / -4.0)); + HuPrcVSleep(); + } + HuWinScaleSet(temp_r31, 1.0f, 1.0f); + HuWinMesSet(temp_r31, MAKE_MESSID(48, 33)); + HuWinMesSpeedSet(temp_r31, 0); + HuPrcSleep(0x32); + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); + temp_r31 = 0; +#endif + HuPrcEnd(); +} + +static void M457Main(omObjData *object) +{ + PlayerData *playerData[2]; + float spC[2]; + s32 sp8; + s32 i; + + for (i = 0; i < 5; i++) { + s32 shoveSeIdTbl[] = { 0x7E1, 0x7E2, 0x7E3, 0x7E4, 0x7E5 }; + + if (lbl_1_bss_78[i].unk00 > 3) { + lbl_1_bss_78[i].unk00 = 3; + } + if (lbl_1_bss_78[i].unk00 > 0) { + sp8 = HuAudFXPlay(shoveSeIdTbl[i]); + lbl_1_bss_78[i].unk00--; + } + } + for (i = 0; i < 2; i++) { + playerData[i] = playerObj[i]->data; + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = M457Exit; + } + switch (gameState) { + case 1000: + if (WipeStatGet() == 0) { + gameState++; + lbl_1_bss_60 = 0; + } + break; + case 1001: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 60) { + gameState = (againstBrowserF ? 1002 : 1003); + lbl_1_bss_60 = 0; + } + break; + case 1002: + lbl_1_bss_60++; + if (lbl_1_bss_60 > (s32)(3.5 * REFRESH_RATE)) { + gameState++; + lbl_1_bss_60 = 0; + } + break; + case 1003: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 60) { + gameState = (againstBrowserF ? 1004 : 1005); + lbl_1_bss_60 = 0; + } + break; + case 1004: + if (lbl_1_bss_60 == 0) { + HuPrcChildCreate(WrestleMesMain, 100, 0x2000, 0, HuPrcCurrentGet()); + m457MesEndF = 1; + lbl_1_bss_60++; + } + else if (m457MesEndF == 0) { + lbl_1_bss_60++; + if (playerData[0]->state == 0) { + gameState++; + lbl_1_bss_60 = 0; + } + } + break; + case 1005: + lbl_1_bss_60++; + if (lbl_1_bss_60 == (VERSION_NTSC ? 180 : 128)) { + gameState++; + lbl_1_bss_60 = 0; + } + break; + case 1006: + if (lbl_1_bss_60 == 0) { + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(48, 34)); + lbl_1_data_2B0 = HuWinCreate(-10000.0f, 400.0f, spC[0], spC[1], 1); + HuWinBGTPLvlSet(lbl_1_data_2B0, 0.0f); + HuWinMesSpeedSet(lbl_1_data_2B0, 0); + HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 34)); + HuPrcChildCreate(ShoveMesMain, 100, 0x2000, 0, HuPrcCurrentGet()); + m457MesEndF = 1; + lbl_1_bss_60++; + } + else if (m457MesEndF == 0) { + lbl_1_bss_60++; + if (playerData[0]->state == 0) { + gameState++; + lbl_1_bss_60 = rand8() * (REFRESH_RATE / 2) % 5 + REFRESH_RATE; + } + } + else { + lbl_1_bss_60++; + } + break; + case 1007: + lbl_1_bss_60 -= 1; + if (lbl_1_bss_60 <= 0) { + gameState++; + lbl_1_bss_60 = 0; +#if VERSION_NTSC + HuAudFXPlay(MSM_SE_BOWSER_HOWL); +#endif + } + break; + case 1008: + lbl_1_bss_60++; + if (lbl_1_bss_44 != -1) { + gameState = 1009; + lbl_1_bss_60 = 0; + break; + } + if (lbl_1_data_2A6 == -1 && lbl_1_bss_60 >= 270 * REFRESH_RATE && playerData[0]->state < 16 && playerData[1]->state < 16) { + lbl_1_data_2A6 = MGSeqTimerCreate(30); + } + if (lbl_1_data_2A6 == -1) { + break; + } + if (playerData[0]->state < 16 && playerData[1]->state < 16) { + MGSeqParamSet(lbl_1_data_2A6, 1, (301 * REFRESH_RATE - 1 - lbl_1_bss_60) / REFRESH_RATE); + if (lbl_1_bss_60 > 300 * REFRESH_RATE) { + MGSeqParamSet(lbl_1_data_2A6, 2, -1); + lbl_1_data_2A6 = -1; + } + } + if (lbl_1_bss_60 > 300 * REFRESH_RATE && playerData[0]->state < 16 && playerData[1]->state < 16) { + gameState = 1009; + lbl_1_bss_60 = 0; + lbl_1_bss_40 = 1; + playerData[0]->state = playerData[1]->state = 17; + playerData[0]->unk18 = playerData[1]->unk18 = 0; + MGSeqFinishCreate(); + if (backgroundMusNo != -1) { + HuAudSeqFadeOut(backgroundMusNo, 100); + backgroundMusNo = -1; + } + } + break; + case 1009: + if (lbl_1_bss_60 == 1 && lbl_1_data_2A6 != -1) { + MGSeqParamSet(lbl_1_data_2A6, 2, -1); + lbl_1_data_2A6 = -1; + } + lbl_1_bss_60++; + if (lbl_1_bss_60 >= 2 * REFRESH_RATE) { + gameState++; + lbl_1_bss_60 = 0; + } + break; + case 1010: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 15) { + if (lbl_1_bss_44 != 2) { + if (playerData[lbl_1_bss_44]->character != CHARACTER_BOWSER) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(3); + } + if (againstBrowserF) { + if (lbl_1_bss_44 == 0) { + _SetFlag(FLAG_ID_MAKE(1, 7)); + } + } + else { + GWPlayerCoinWinSet(playerData[lbl_1_bss_44]->player, 10); + } + } + else if (lbl_1_bss_44 == 2) { + HuAudSStreamPlay(4); + } + } + if ((VERSION_NTSC ? 225.0f : 190.0f) < lbl_1_bss_60) { + if (windSeNo != -1) { + HuAudFXStop(windSeNo); + windSeNo = -1; + } + lbl_1_data_2A4 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = M457Exit; + } + break; + } +} + +static void M457GameSetup(omObjData *object) +{ + s32 i; + + for (i = 0; i < 2; i++) { + PlayerData *playerData[2]; + playerData[i] = playerObj[i]->data; + } + object->model[MODEL_ID_GAME_KOOPA_KID] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 14)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + object->model[MODEL_ID_GAME_WAR_FAN] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 38)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_WAR_FAN], HU3D_MOTATTR_LOOP); + Hu3DModelHookSet(object->model[MODEL_ID_GAME_KOOPA_KID], "g007m0-itemhook_r", object->model[MODEL_ID_GAME_WAR_FAN]); + Hu3DModelPosSet(object->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 15.0f, 0.0f, 0.0f); + object->motion[0] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 39)); + object->motion[1] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 40)); + object->motion[2] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 41)); + object->motion[3] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 42)); + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_WAR_FAN], 2); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_KOOPA_KID], 2); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(object->model[MODEL_ID_GAME_WAR_FAN]); + Hu3DModelShadowSet(object->model[MODEL_ID_GAME_KOOPA_KID]); + object->model[MODEL_ID_GAME_SKY] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 16)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_SKY], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[MODEL_ID_GAME_SKY], 0.1f); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_SKY], 1); + object->model[MODEL_ID_GAME_RING] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 17)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_RING], HU3D_MOTATTR_LOOP); + Hu3DModelShadowMapSet(object->model[MODEL_ID_GAME_RING]); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_RING], 1); + Hu3DModelScaleSet(object->model[MODEL_ID_GAME_RING], 1.0f, 1.0f, 1.0f); + object->model[MODEL_ID_GAME_MUSHROOM] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 21)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_MUSHROOM], 2); + object->model[MODEL_ID_GAME_INVINCE_SHINING] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 19)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], 2); + object->model[MODEL_ID_GAME_INVINCE_SPARKS] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 20)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], 4); + for (i = 0; i < 3; i++) { + object->model[i + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 18)); + Hu3DModelLayerSet(object->model[i + 7], 4); + Hu3DModelAttrSet(object->model[i + 7], HU3D_ATTR_DISPOFF); + } + for (i = 0; i < 16; i++) { + s32 sp10[] = { 106, 469 }; + s32 sp8[] = { 78, 78 }; + s32 sp60[] = { 0, 0, -33, -9, 15, 39, 63, -68, 0, 0, -33, -9, 15, 39, 63, -68 }; + s32 sp20[] = { 0, 0, -1, -1, -1, -1, -1, -2, 0, 0, -1, -1, -1, -1, -1, -2 }; + + if (sprDataNumTbl[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { + PlayerData *player = playerObj[i == 7 ? 0 : 1]->data; + sprIdTbl[i] + = espEntry((player->character == CHARACTER_BOWSER) ? DATA_MAKE_NUM(DATADIR_M457, 26) : (sprDataNumTbl[i] + player->character), 0, 0); + } + else { + sprIdTbl[i] = espEntry(sprDataNumTbl[i], 0, 0); + } + espDrawNoSet(sprIdTbl[i], 0); + espDispOff(sprIdTbl[i]); + espAttrSet(sprIdTbl[i], HUSPR_ATTR_NOANIM); + espBankSet(sprIdTbl[i], 0); + espPriSet(sprIdTbl[i], 128 - i); + espPosSet(sprIdTbl[i], sp60[i] + sp10[i < 8 ? 0 : 1], sp20[i] + sp8[i < 8 ? 0 : 1]); + if ((i >= 8 ? i - 8 : i) != 0) { + (void)1; // Required to match. + } + else { + espTPLvlSet(sprIdTbl[i], 0.5f); + espColorSet(sprIdTbl[i], 0, 0, 0); + } + } + for (i = 16; i < 23; i++) { + s32 temp_r28 = i - 16; + s32 spFC[23] = { 288, 288 }; + s32 spA0[23] = { 240, 240 }; + + sprIdTbl[i] = espEntry(sprDataNumTbl[i], 0, 0); + espDrawNoSet(sprIdTbl[i], 0); + espAttrSet(sprIdTbl[i], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(sprIdTbl[i], 0); + espPriSet(sprIdTbl[i], 128 - i); + espPosSet(sprIdTbl[i], spFC[temp_r28], spA0[temp_r28]); + espTPLvlSet(sprIdTbl[i], 1.0f); + } + object->func = M457GameExec; +} + +static void M457PlayerSetup(omObjData *object) +{ + s32 opponentPlayerGroup; + PlayerData *playerData; + PlayerData *opponentData; + s32 i; + + playerData = object->data; + opponentData = playerObj[1 - object->work[0]]->data; + memset(playerData, 0, sizeof(*playerData)); + playerData->group = object->work[0]; + playerData->player = (GWPlayerCfg[0].group == playerData->group) ? 0 + : (GWPlayerCfg[1].group == playerData->group) ? 1 + : (GWPlayerCfg[2].group == playerData->group) ? 2 + : (GWPlayerCfg[3].group == playerData->group) ? 3 + : 4; + opponentPlayerGroup = (GWPlayerCfg[0].group == 1 - playerData->group) ? 0 + : (GWPlayerCfg[1].group == 1 - playerData->group) ? 1 + : (GWPlayerCfg[2].group == 1 - playerData->group) ? 2 + : (GWPlayerCfg[3].group == 1 - playerData->group) ? 3 + : 4; + if (playerData->player == 4) { + OSReport("m457:wrong player group\n"); + playerData->player = playerData->group; + } + if (playerData->group == 1 && againstBrowserF) { + playerData->character = -1; + playerData->padIdx = PAD_IDX_COM; + playerData->player = -1; + playerData->diff = 1; + } + else { + playerData->character = GWPlayerCfg[playerData->player].character; + playerData->padIdx = (playerData->character == CHARACTER_BOWSER || GWPlayerCfg[playerData->player].iscom) + ? PAD_IDX_COM + : GWPlayerCfg[playerData->player].pad_idx; + playerData->diff = (playerData->padIdx != PAD_IDX_COM) ? 0 : GWPlayerCfg[playerData->player].diff; + } + playerData->state = 0; + playerData->stamina = 100; + playerData->unk34 = 0; + playerData->prevTrig = -1; + playerData->unk2C = -1; + playerData->unk3C = 10000; + playerData->unk40 = 1; + playerData->unk44 = -1; + if (playerData->character != CHARACTER_BOWSER) { + object->model[MODEL_ID_PLAYER_PLAYER] = CharModelCreate(playerData->character, 1); + } + else { + object->model[MODEL_ID_PLAYER_PLAYER] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + } + omSetTra(object, 0.0f, playerData->group == 0 ? 0 : 300, 0.0f); + if (playerData->character != CHARACTER_BOWSER) { + omSetSca(object, 2.5f, 2.5f, 2.5f); + } + else { + omSetSca(object, 2.0f, 2.0f, 2.0f); + } + for (i = 0; i < 12; i++) { + if (playerData->character != CHARACTER_BOWSER) { + object->motion[i] = CharModelMotionCreate(playerData->character, lbl_1_data_B8[i] + (lbl_1_data_E8[i] != 0 ? playerData->character : 0)); + } + else if (lbl_1_data_118[i] != 0) { + object->motion[i] = Hu3DJointMotionFile(object->model[MODEL_ID_PLAYER_PLAYER], lbl_1_data_118[i]); + } + } + Hu3DMotionSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[playerData->unk40]); + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], 10.0f); + Hu3DModelAttrReset(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(object->model[MODEL_ID_PLAYER_PLAYER]); + Hu3DModelAttrSet(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_PLAYER_PLAYER], 3); + CharModelLayerSetAll2(4); + object->rot.y = playerData->group * 180 + 90; + object->trans.x = (playerData->group == 0 ? -1 : 1) * 300; + object->func = M457PlayerExec; +} + +static void M457Setup(omObjData *object) +{ + gameState = 1000; + lbl_1_bss_60 = 0; + lbl_1_bss_54 = 0; + lbl_1_bss_50 = 0; + if (backgroundMusNo == -1) { + backgroundMusNo = HuAudSeqPlay(MSM_MUS_BACKGROUND); + } + windSeNo = HuAudFXPlay(MSM_SE_WIND); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = M457Main; +} + +void ObjectSetup(void) +{ + omObjData *object; + s32 i; + + OSReport("******* M457 ObjectSetup *********\n"); + objman = omInitObjMan(600, 0x2000); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec pos = { 0.0f, 0.0f, 0.0f }; + Vec destination = { 0.25f, -0.75f, -0.45f }; + GXColor color = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lightId = Hu3DGLightCreateV(&pos, &destination, &color); + } + Hu3DGLightStaticSet(lightId, 1); + Hu3DGLightInfinitytSet(lightId); + { + Vec camPos; + Vec camUp; + Vec camTarget; + + camPos.x = 0.0f; + camPos.y = 10000.0f; + camPos.z = 0.0f; + camUp.x = 0.0f; + camUp.y = 1.0f; + camUp.z = 0.0f; + camTarget.x = 0.0f; + camTarget.y = 0.0f; + camTarget.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&camPos, &camUp, &camTarget); + } + Hu3DShadowSizeSet(224); + lbl_1_data_2A4 = -1; + lbl_1_bss_44 = -1; + againstBrowserF = _CheckFlag(FLAG_ID_MAKE(1, 0)) != 0; + HuWinInit(1); + gameObj = omAddObjEx(objman, 101, 10, 4, 1, M457GameSetup); + for (i = 0; i < 2; i++) { + object = playerObj[i] = omAddObjEx(objman, 100, 1, 12, 0, M457PlayerSetup); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(PlayerData), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + omViewObj = omAddObjEx(objman, 0x7FDA, 0, 0, -1, omOutView); + mainObj = omAddObjEx(objman, 103, 0, 0, -1, M457Setup); +} + +static void M457Exit(omObjData *object) +{ + PlayerData *playerData; + s32 i; + + if (WipeStatGet() == 0) { + for (i = 0; i < 2; i++) { + playerData = playerObj[i]->data; + } + if (lbl_1_data_2A4 >= 0) { + MGSeqKill(lbl_1_data_2A4); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c new file mode 100644 index 00000000..3b261cd0 --- /dev/null +++ b/src/REL/m458Dll/main.c @@ -0,0 +1,1531 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "game/frand.h" + +extern s32 rand8(void); + +typedef struct UnkCameraStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkCameraStruct; /* size = 0x18 */ + +typedef struct UnkBssCCStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ float unk_04[3]; +} UnkBssCCStruct; /* size = 0x10 */ + +typedef struct UnkBss28CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ s32 unk_0C; +} UnkBss28CStruct; /* size = 0x10 */ + +typedef struct UnkData114Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkData114Struct; /* size = 0x18 */ + +typedef struct M458DllWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + s32 unk_24; + float unk_28; + float unk_2C; + char unk30[4]; + float unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; +} M458DllWork; /* size = 0x44 */ + +s16 fn_1_4BE8(); +void fn_1_6D9C(omObjData *arg0); + +s32 lbl_1_data_0[2] = { 0x570025, 0x570026 }; +s32 lbl_1_data_8[2] = { 0, 0 }; +s32 lbl_1_data_10[0xA] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2F), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A), + 0x570000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), +}; +u32 lbl_1_data_38[0xA] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }; +u32 lbl_1_data_60[0xA] = { 0x30008, 0, 0, 0x3000A, 0, 0, 0x57002A, 0x570028, 0x570029, 0x570027 }; +u8 lbl_1_data_88[0xA] = { 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }; +u8 lbl_1_data_92[0xA] = { 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_9C[0xA] = { 8, 8, 8, 0, 0, 0, 8, 8, 8, 8 }; +s32 lbl_1_data_C4[0xA] = { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 }; +s32 lbl_1_data_EC[0xA] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }; +UnkData114Struct lbl_1_data_114 = { 0, 0, 0.0f, 0.0f, 0.0f, 0.0f }; +s16 lbl_1_data_12C = -1; +s16 lbl_1_data_12E = -1; +s32 lbl_1_data_130 = -1; +s32 lbl_1_data_134 = -1; +s16 lbl_1_data_138[0x12] = { + -1, + 0, + -0x3D4C, + 0, + 0, + 0, + 0x4403, + 0x4000, + 0x4334, + 0, + 0x42B4, + 0, + 0, + 0, + 0x4403, + 0x4000, + 0x4334, + 0, +}; +s32 lbl_1_data_15C = -1; + +UnkBss28CStruct lbl_1_bss_28C[9]; +UnkBssCCStruct lbl_1_bss_CC[0x1C]; +omObjData *lbl_1_bss_C8; +omObjData *lbl_1_bss_C4; +omObjData *lbl_1_bss_C0; +omObjData *lbl_1_bss_BC; +omObjData *lbl_1_bss_B8; +s32 lbl_1_bss_B4; +s32 lbl_1_bss_B0; +s32 lbl_1_bss_AC; +s32 lbl_1_bss_A8; +s32 lbl_1_bss_A4; +Process *lbl_1_bss_A0; +s32 lbl_1_bss_9C; +s32 lbl_1_bss_98; +s32 lbl_1_bss_94; +s32 lbl_1_bss_90; +s32 lbl_1_bss_8C; +HsfanimStruct00 lbl_1_bss_3C; +float lbl_1_bss_38; +float lbl_1_bss_34; +float lbl_1_bss_30; +float lbl_1_bss_2C; +float lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s16 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void fn_1_A0(void) +{ + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + Center.x = lbl_1_bss_BC->trans.x; + Center.y = lbl_1_bss_BC->trans.y; + Center.z = lbl_1_bss_BC->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += (30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(0x40, 0x188, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(0x40, 0x198, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(0x40, 0x1A8, 1.0f, "%f", CZoom); +} + +s32 lbl_1_data_16C = -1; + +void fn_1_4C8(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + + M458DllWork *var_r31; + ModelData *var_r29; + s16 var_r28; + M458DllWork *var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + ModelData *var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + Mtx sp1E0; + float sp1A8[2]; + float sp1A0[2]; + s32 spD0; + s32 spCC; + s32 spC8; + s32 spC4; + s32 spC0; + float spBC; + s32 spB8; + ModelData *spB4; + float spB0; + float spAC; + s32 spA8; + s32 spA4; + + var_r31 = object->data; + var_r27 = (&lbl_1_bss_BC)[1 - object->work[0]]->data; + var_f23 = 0.0f; + var_f22 = 0.0f; + var_f28 = 0.0f; + var_r22 = 0; + var_r28 = -1; + var_r31->unk_2C = var_r31->unk_34 = 0.0f; + if ((lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3F1 : 0x3F2)) && (var_r31->unk_18 == 3) && (var_r31->unk_1C >= 0x168)) { + if (var_r31->unk_1C == 0x168) { + var_r31->unk_14 = rand8() % 15; + } + if (var_r31->unk_0C != -1) { + var_r22 = (HuPadBtnDown[var_r31->unk_0C] & 0x100) != 0 ? 1 : 0; + } + else { + var_r31->unk_14 += var_r31->unk_14 < 0x10000; + if (var_r31->unk_14 == 0x1E) { + var_r22 = 1; + } + } + } + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3ED : 0x3EF)) { + var_r25 = 0; + var_r24 = 0; + if (var_r31->unk_0C != -1) { + var_r25 = HuPadStkX[var_r31->unk_0C] < -0x14 ? -1 : (HuPadStkX[var_r31->unk_0C] > 0x14 ? 1 : 0); + var_r24 = -HuPadStkY[var_r31->unk_0C] < -0x14 ? -1 : (-HuPadStkY[var_r31->unk_0C] > 0x14 ? 1 : 0); + var_r22 = (HuPadBtnDown[var_r31->unk_0C] & 0x100) != 0 ? 1 : 0; + } + else { + var_r31->unk_14 += var_r31->unk_14 < 0x10000; + if (var_r31->unk_14 == 0x1E) { + lbl_1_bss_94 = rand8() % (var_r31->unk_00 + 2); + lbl_1_bss_90 = rand8() % (var_r31->unk_00 + 2); + } + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) { + var_r25 = lbl_1_bss_94 > 0 ? (var_r31->unk_00 == 0 ? (((rand8() % 2) * 2) - 1) : -1) : 0; + lbl_1_bss_94 -= lbl_1_bss_94 > 0; + } + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) { + var_r24 = lbl_1_bss_90 > 0 ? (var_r31->unk_00 == 0 ? (((rand8() % 2) * 2) - 1) : -1) : 0; + lbl_1_bss_90 -= lbl_1_bss_90 > 0; + } + if ((var_r31->unk_14 >= 0x2D) && ((var_r31->unk_14 % 30) == 0xF) && (lbl_1_bss_94 == 0) && (lbl_1_bss_90 == 0)) { + var_r22 = 1; + } + } + if (lbl_1_bss_B4 >= 0x32) { + var_r25 = var_r24 = 0; + } + if (var_r31->unk_00 == 1) { + spC4 = 0; + spC0 = 0; + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) { + var_r17 = spD0 = object->trans.x < -250.0 ? -1 : (object->trans.x > 250.0 ? 1 : 0); + } + else { + var_r17 = (object->trans.x < 0.0f ? -1 : 0); + spD0 = var_r17 + 1; + } + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) { + spCC = spC8 = object->trans.z < -250.0 ? -1 : (object->trans.z > 250.0 ? 1 : 0); + } + else { + spCC = object->trans.z < 0.0f ? -1 : 0; + spC8 = spCC + 1; + } + for (var_r21 = var_r17; var_r21 <= spD0; var_r21++) { + for (var_r20 = spCC; var_r20 <= spC8; var_r20++) { + if (var_r27->unk_38 == 1 + var_r21 + var_r25 + (1 + var_r20 + var_r24) * 3) { + var_r25 = var_r24 = 0; + } + if (var_r27->unk_38 == 1 + var_r21 + var_r25 + (var_r20 + 1) * 3) { + var_r25 = 0; + } + if (var_r27->unk_38 == 1 + var_r21 + (1 + var_r20 + var_r24) * 3) { + var_r24 = 0; + } + } + } + } + if ((var_r25 * ((500.0 * var_r31->unk_3C) - object->trans.x)) < 0.0) { + var_r31->unk_3C = var_r31->unk_3C + var_r25; + } + if ((fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) && (var_r25 != 0) && ((var_r31->unk_3C + var_r25) >= -1) + && ((var_r31->unk_3C + var_r25) <= 1)) { + var_r31->unk_3C = var_r31->unk_3C + var_r25; + } + var_f23 = (((500.0 * var_r31->unk_3C) - object->trans.x) / 0.25) / 1.75; + if ((var_r24 * ((500.0 * var_r31->unk_40) - object->trans.z)) < 0.0) { + var_r31->unk_40 = var_r31->unk_40 + var_r24; + } + if ((fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) && (var_r24 != 0) && ((var_r31->unk_40 + var_r24) >= -1) + && ((var_r31->unk_40 + var_r24) <= 1)) { + var_r31->unk_40 = var_r31->unk_40 + var_r24; + } + var_f22 = (((500.0 * var_r31->unk_40) - object->trans.z) / -0.25) / 1.75; + } + if (((var_r31->unk_00 != 1) || (var_r31->unk_08 != -1)) && (var_r31->unk_18 == 0)) { + if ((lbl_1_bss_B0 > (var_r31->unk_00 == 0 ? 0x3E9 : 0x3EE)) && (lbl_1_bss_B0 < 0x3F3)) { + var_f31 = 0.25 * var_f23; + var_f30 = 0.25 * -var_f22; + { + Vec sp1B0 = { 0.0f, 0.0f, 0.0f }; + sp1B0.x = var_f31; + sp1B0.z = var_f30; + MTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); + MTXMultVec(sp1E0, &sp1B0, &sp1B0); + var_f31 = sp1B0.x; + var_f30 = sp1B0.z; + } + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 >= 0.5f) { + if (var_f28 < 10.0f) { + var_r31->unk_2C = var_f31; + var_r31->unk_34 += var_f30; + } + else { + var_f31 = var_f31 / var_f28; + var_f30 = var_f30 / var_f28; + var_f28 = 10.0f; + var_r31->unk_2C = var_f31 * var_f28; + var_r31->unk_34 = var_f30 * var_f28; + } + var_r31->unk_28 = var_f28; + object->rot.y = atan2d(var_r31->unk_2C, var_r31->unk_34); + if (var_r31->unk_28 >= 8.0f) { + var_r28 = 2; + } + else { + var_r28 = 2; + } + } + else { + var_r28 = 0; + } + } + } + object->trans.x += 1.75f * var_r31->unk_2C; + object->trans.z += 1.75f * var_r31->unk_34; + switch (lbl_1_bss_B0) { + case 0x3E9: + case 0x3EE: + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3E9 : 0x3EE)) { + if (lbl_1_bss_B4 == 0) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if (var_r31->unk_00 == 0) { + object->trans.x = 0.0f; + object->trans.z = 0.0f; + } + else if (var_r31->unk_08 != -1) { + var_r31->unk_3C = -2; + for (var_r18 = 2; var_r18 >= 0; var_r18--) { + for (var_r19 = 2; var_r19 >= 0; var_r19--) { + if (var_r27->unk_38 != (var_r18 + (var_r19 * 3))) { + var_r31->unk_3C = var_r19 - 1; + var_r31->unk_40 = var_r18 - 1; + object->trans.x = 500.0 * var_r31->unk_3C; + object->trans.z = 500.0 * var_r31->unk_40; + break; + } + } + if (var_r31->unk_3C != -2) { + break; + } + } + } + else { + do { + var_r31->unk_38 = rand8() % 9; + } while (var_r27->unk_38 == var_r31->unk_38); + var_r31->unk_3C = (var_r31->unk_38 % 3) - 1; + var_r31->unk_40 = (var_r31->unk_38 / 3) - 1; + object->trans.x = 500.0 * var_r31->unk_3C; + object->trans.z = 500.0 * var_r31->unk_40; + } + } + if (lbl_1_bss_B4 <= 0x1E) { + if (var_r31->unk_08 == -1) { + Hu3DMotionTimeSet(object->model[0], 138.0f); + } + object->trans.y = 2400.0 * (1.0 - (lbl_1_bss_B4 / 30.0)); + } + if ((var_r31->unk_08 != -1) && (lbl_1_bss_B4 == 0x1E)) { + var_r28 = 4; + } + if (lbl_1_bss_B4 == ((var_r31->unk_08 != -1 ? 0xA : 0x3C) + 0x1E)) { + var_r28 = 0; + } + if (lbl_1_bss_B4 == 0x1E) { + lbl_1_data_114.unk_04 += 0x32; + } + if (lbl_1_bss_B4 == 0x1E) { + HuAudFXPlay(0x33D); + } + } + break; + case 0x3EB: + if ((lbl_1_bss_B4 == 0) && (var_r31->unk_00 == 0)) { + var_r31->unk_18 = 1; + var_r31->unk_1C = 0; + } + break; + case 0x3ED: + case 0x3EF: + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3ED : 0x3EF)) { + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_0 = 0x12C; + lbl_1_data_12E = MGSeqCreate(1, 0xA, -1, -1); + HuWinMesMaxSizeGet(1, sp1A8, 0x280019); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp1A8[0], sp1A8[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, 0x280019); + } + if (lbl_1_data_12E != -1) { + MGSeqParamSet(lbl_1_data_12E, 1, (lbl_1_bss_0 + 0x3A) / 60); + } + lbl_1_bss_0--; + if ((var_r22 != 0) || (lbl_1_bss_0 == 0)) { + lbl_1_bss_B4 = 0x32; + MGSeqKill(lbl_1_data_12E); + lbl_1_data_12E = -1; + HuWinExCleanup(lbl_1_bss_C); + } + if (lbl_1_bss_B4 == 0x32) { + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 1.0) { + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 1.0) { + lbl_1_bss_B4 = 0x3C; + object->rot.y = 0.0f; + var_r31->unk_38 = 1 + var_r31->unk_3C + ((var_r31->unk_40 + 1) * 3); + } + } + } + } + break; + case 0x3F1: + case 0x3F2: + if ((lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3F1 : 0x3F2)) && (lbl_1_bss_B4 == 0) && (var_r31->unk_08 != -1)) { + HuWinMesMaxSizeGet(1, sp1A0, 0x300025); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp1A0[0], sp1A0[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, 0x300025); + } + break; + case 0x3F3: + if (lbl_1_bss_98 != var_r31->unk_00) { + if (lbl_1_bss_B4 == 1) { + var_r28 = 7; + } + if (lbl_1_bss_B4 == 0x78) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + if (lbl_1_bss_CC[0].unk_00 < 3) { + lbl_1_bss_CC[0].unk_04[lbl_1_bss_CC[0].unk_00] = 0.0f; + lbl_1_bss_CC[0].unk_00++; + } + } + if (lbl_1_bss_B4 == 0x99) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_B4 == 0xB7) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + } + if ((lbl_1_bss_B4 == 0xBC) && (lbl_1_bss_CC[1].unk_00 < 3)) { + lbl_1_bss_CC[1].unk_04[lbl_1_bss_CC[1].unk_00] = 0.0f; + lbl_1_bss_CC[1].unk_00++; + } + if (lbl_1_bss_B4 == 0xD2) { + var_r28 = 8; + espAttrReset(lbl_1_data_8[1], HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00 < 3) { + lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2] + .unk_04[lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00] + = 0.0f; + lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00++; + } + if (lbl_1_data_130 != -1) { + HuAudSeqFadeOut(lbl_1_data_130, 0x64); + lbl_1_data_130 = -1; + } + } + if ((lbl_1_bss_B4 >= 0xD2) && (lbl_1_bss_B4 <= 0xD6)) { + s32 sp1BC[9] = { 0, -12, -36, 0, 0, -12, -36, -48, 0 }; + spBC = (lbl_1_bss_B4 - 0xD2) / 4.0; + var_f26 = (lbl_1_bss_B4 - 0xD2) / 4.0; + var_f26 = var_f26 > 1.0f ? 1.0f : var_f26; + espPosSet(lbl_1_data_8[1], 290.0f, (64.0f * (1.0f - spBC)) + (sp1BC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8)] + 0x8C)); + espScaleSet(lbl_1_data_8[1], var_f26, var_f26); + } + if (lbl_1_bss_B4 == 0x10E) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + espAttrSet(lbl_1_data_8[1], HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_B4 == 0x122) { + spB8 = HuAudFXPlay((var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 0x800); + HuAudFXFadeOut(spB8, 0x9C4); + } + if (lbl_1_bss_B4 >= 0x13B) { + object->trans.y -= 77.0f; + } + } + else if ((lbl_1_bss_B4 == 0x3C) && (lbl_1_data_138[0] != -1)) { + Hu3DParManKill(lbl_1_data_138[0]); + lbl_1_data_138[0] = -1; + } + break; + case 0x3F4: + if (var_r31->unk_00 == lbl_1_bss_98) { + if ((lbl_1_bss_B4 == 1) && (var_r31->unk_08 == -1)) { + HuAudFXPlay(0x3A); + } + var_r28 = 9; + } + break; + } + switch (var_r31->unk_18) { + case 0: + var_r31->unk_1C++; + break; + case 1: + var_r31->unk_1C++; + if (var_r31->unk_1C <= 0x3C) { + var_r28 = 5; + object->rot.y = -180.0 * (var_r31->unk_1C / 60.0); + } + else { + Hu3DMotionTimeSet(object->model[0], 120.0f); + var_r28 = 0; + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + } + break; + case 2: + var_r31->unk_1C++; + break; + case 3: + if (var_r31->unk_1C == 0) { + lbl_1_data_15C = 6; + } + if (var_r31->unk_1C < 0x168) { + var_r23 = &Hu3DData[lbl_1_bss_B8->model[3]]; + if (var_r31->unk_1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[3], object->trans.x, 625.0f + object->trans.y, object->trans.z); + Hu3DModelScaleSet(lbl_1_bss_B8->model[3], 0.1f, 0.1f, 0.1f); + Hu3DModelTPLvlSet(lbl_1_bss_B8->model[3], 1.0f); + lbl_1_bss_1C = 0; + HuAudFXPlay(0x7F4); + lbl_1_data_16C = HuAudFXPlay(0x7F3); + } + var_r23->rot.y = lbl_1_bss_1C % 360; + lbl_1_bss_1C += 0x19; + if (var_r31->unk_1C < 0xB4) { + var_f20 = 0.0f; + var_f21 = 1.0f; + } + else { + var_f20 = 1.0f; + var_f21 = 0.5f; + } + var_r23->scale.x = var_f20 + (var_f21 * sind((float)(var_r31->unk_1C % 180))); + var_r23->scale.y = var_r23->scale.z = var_r23->scale.x; + if (var_r31->unk_1C < 0xB4) { + var_r31->unk_1C += 6; + } + else { + var_r31->unk_1C = var_r31->unk_1C + 0x12; + } + if (var_r31->unk_1C >= 0x168) { + var_r31->unk_1C = 0x168; + Hu3DModelRotSet(lbl_1_bss_B8->model[3], 0.0f, 0.0f, 0.0f); + } + } + else { + spB4 = &Hu3DData[lbl_1_bss_B8->model[3]]; + var_r31->unk_1C = var_r31->unk_1C + 4; + if (var_r31->unk_1C > 0x2D0) { + var_r31->unk_1C -= 0x168; + } + spB4->pos.y += (0.20000000298023224 * sind((var_r31->unk_1C - 0x168))); + if (var_r22 != 0) { + lbl_1_bss_B4 = 0x32; + var_r31->unk_18 = 4; + var_r31->unk_1C = 0; + var_r28 = 6; + } + } + break; + case 4: + var_r31->unk_1C++; + if (var_r31->unk_1C >= 0x1B) { + var_r29 = &Hu3DData[lbl_1_bss_B8->model[3]]; + var_r26 = var_r31->unk_1C - 0x1B; + if (var_r26 == 0) { + if (var_r31->unk_04 != -1) { + omVibrate(var_r31->unk_04, 0xC, 4, 2); + } + HuWinExCleanup(lbl_1_bss_C); + lbl_1_data_15C = -1; + if (lbl_1_data_16C != -1) { + HuAudFXStop(lbl_1_data_16C); + lbl_1_data_16C = -1; + } + HuAudFXPlay(0x7F5); + } + if (var_r26 == 8) { + if (lbl_1_data_138[0] == -1) { + lbl_1_data_138[0] = fn_1_4BE8(); + Hu3DParManPosSet(lbl_1_data_138[0], var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + } + Hu3DModelAttrSet(lbl_1_bss_B8->model[3], HU3D_ATTR_DISPOFF); + } + else if (var_r26 > 8) { + if (var_r31->unk_20 == 6) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { + var_r28 = 0; + } + } + if (var_r26 <= 0x1C) { + var_f27 = (var_r26 - 8) / 10.0; + spB0 = ((var_r26 - 8) * 0x12); + var_f27 = var_f27 > 1.0f ? 2.5 : 2.5 * var_f27; + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + Hu3DModelScaleSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_f27, var_f27, var_f27); + } + if ((var_r26 >= 0x2D) && (var_r26 <= 0x41)) { + var_f25 = (var_r26 - 0x2D) / 5.0; + spAC = (var_r26 - 0x2D) * 0x12; + var_f25 = var_f25 > 1.0f ? 1.0f : var_f25; + var_f25 = 0.0; + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_r29->pos.x, var_r29->pos.y - (30.0f * var_f25), var_r29->pos.z); + var_r31->unk_1C += 5; + } + if (var_r26 == 0x62) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + lbl_1_bss_18 = lbl_1_bss_18 >= 9 ? var_r27->unk_38 : lbl_1_bss_18; + if (lbl_1_bss_18 == var_r27->unk_38) { + lbl_1_bss_98 = var_r31->unk_00; + } + else if (lbl_1_bss_18 == var_r31->unk_38) { + lbl_1_bss_98 = var_r27->unk_00; + } + var_r31->unk_18 = lbl_1_bss_98 == -1 ? 5 : 0; + var_r31->unk_1C = 0; + } + } + else { + if (var_r26 < 4) { + var_r29->pos.y += 10.0f + (0.5f * var_r26); + var_r29->scale.x += 0.10000000149011612 * sind((4.0f * var_r26)); + var_r29->scale.y = var_r29->scale.z = var_r29->scale.x; + } + else { + var_f24 = (0xFF - (var_r26 << 5)); + var_f24 = var_f24 * 0.003921569f; // 1 / 255 + Hu3DModelTPLvlSet(lbl_1_bss_B8->model[3], var_f24); + } + var_r29->pos.y += -0.49f * var_r26 * var_r26; + } + } + break; + case 5: + if (var_r31->unk_1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + lbl_1_bss_28C[lbl_1_bss_18].unk_0C = 0; + if (lbl_1_bss_CC[0].unk_00 < 3) { + lbl_1_bss_CC[0].unk_04[lbl_1_bss_CC->unk_00] = 0.0f; + lbl_1_bss_CC[0].unk_00++; + } + } + var_r31->unk_1C++; + if ((var_r31->unk_1C == 0x3C) && (*lbl_1_data_138 != -1)) { + Hu3DParManKill(*lbl_1_data_138); + lbl_1_data_138[0] = -1; + } + if (var_r31->unk_1C == 0x21) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + } + if (var_r31->unk_1C == 0x3F) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + } + if ((var_r31->unk_1C == 0x44) && (lbl_1_bss_CC[1].unk_00 < 3)) { + lbl_1_bss_CC[1].unk_04[lbl_1_bss_CC[1].unk_00] = 0.0f; + lbl_1_bss_CC[1].unk_00++; + } + if (var_r31->unk_1C == 0x82) { + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + } + break; + } + if (((var_r31->unk_18 == 3) || (var_r31->unk_18 == 4)) && (lbl_1_data_15C >= 0)) { + lbl_1_data_15C++; + if (lbl_1_data_15C >= 6) { + spA4 = lbl_1_bss_18; + for (spA8 = 0; spA8 < 0x32; spA8++) { + do { + lbl_1_bss_18 = rand8() % 11; + } while ((lbl_1_bss_18 >= 9 && lbl_1_bss_18 == var_r31->unk_00 + 9) || (lbl_1_bss_18 < 9 && lbl_1_bss_28C[lbl_1_bss_18].unk_0C == 0)); + if (spA4 != lbl_1_bss_18) { + break; + } + } + spA4 = lbl_1_bss_18 >= 9 ? (var_r27->unk_08 == -1 ? 0x11 : (var_r27->unk_08 + 9)) : lbl_1_bss_18; + lbl_1_data_15C = 0; + Hu3DMotionTimeSet(lbl_1_bss_B8->model[3], 0.5 + spA4); + } + } + if (var_r31->unk_24 >= 0) { + var_r28 = var_r31->unk_24; + } + if ((var_r28 >= 0) && (var_r28 != var_r31->unk_20)) { + Hu3DMotionShiftSet(object->model[0], object->motion[var_r28], lbl_1_data_C4[var_r28], + (var_r31->unk_08 != -1 ? lbl_1_data_9C[var_r28] : lbl_1_data_EC[var_r28]), + (var_r28 == 8 ? 0x40000002 + : (var_r31->unk_08 != -1 ? lbl_1_data_88[var_r28] : lbl_1_data_92[var_r28]) != 0 ? 0 + : 0x40000001)); + var_r31->unk_20 = var_r28; + } +} + +s32 lbl_1_data_1A0 = -1; +float lbl_1_data_1A4 = 3500.0f; +float lbl_1_data_1A8 = 100.0f; +float lbl_1_data_1AC = -59.0f; + +void fn_1_350C(omObjData *var_r27) +{ + M458DllWork *spC[2]; + float var_f31; + float var_f29; + float var_f27; + float var_f26; + float var_f25; + float var_f19; + + s32 var_r31; + s32 var_r30; + ModelData *var_r29; + ModelData *var_r28; + ModelData *var_r26; + s32 var_r25; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_BC)[var_r31]->data; + } + lbl_1_bss_4++; + switch (lbl_1_bss_B0) { + case 0x3EA: + if (lbl_1_bss_B4 <= 0x77) { + var_f27 = lbl_1_bss_B4 / 119.0; + var_f27 = var_f27 > 1.0f ? 1.0f : var_f27; + Hu3DModelPosSet(lbl_1_bss_B8->model[2], 0.0f, 100.0f + (-1500.0f * (1.0f - var_f27)), -950.0f); + Hu3DModelAttrReset(lbl_1_bss_B8->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_B8->model[2], HU3D_ATTR_DISPOFF); + } + break; + case 0x3EB: + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_8C = 0; + } + if (lbl_1_bss_B4 == 0x14) { + espAttrReset(lbl_1_data_8[0], HUSPR_ATTR_DISPOFF); + } + if (((lbl_1_bss_B4 >= 0x14) && (lbl_1_bss_B4 <= 0x32)) || ((lbl_1_bss_B4 >= 0xB4) && (lbl_1_bss_B4 <= 0xD2))) { + var_f19 = lbl_1_bss_B4 <= 0x78 ? ((lbl_1_bss_B4 - 0x14) / 30.0) : (1.0 - ((lbl_1_bss_B4 - 0xB4) / 30.0)); + espTPLvlSet(lbl_1_data_8[0], var_f19); + } + if (lbl_1_bss_B4 == 0xD2) { + espAttrSet(lbl_1_data_8[0], HUSPR_ATTR_DISPOFF); + } + case 0x3EC: + case 0x3ED: + lbl_1_bss_8C++; + lbl_1_bss_8C %= 0x168; + if (lbl_1_bss_14 != 0) { + Hu3DModelPosSet(lbl_1_bss_B8->model[2], 0.0f, 100.0 + (25.0 * sind((360.0 * ((lbl_1_bss_8C % 360) / 360.0)))), -950.0f); + } + break; + case 0x3EE: + if (lbl_1_bss_14 != 0) { + var_r26 = &Hu3DData[lbl_1_bss_B8->model[2]]; + if (lbl_1_bss_B4 >= 7) { + var_r26->pos.y += 12.5; + } + if (lbl_1_bss_B4 == 0) { + Hu3DMotionShiftSet(var_r27->model[1], var_r27->motion[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + else { + var_r29 = &Hu3DData[lbl_1_bss_B8->model[spC[0]->unk_38 + 4]]; + if (lbl_1_bss_20 == 0) { + lbl_1_bss_20 = 1; + HuAudFXPlay(0x7F6); + } + if (lbl_1_bss_B4 == 1) { + lbl_1_bss_28C[spC[0]->unk_38].unk_08 = 83.333336f; + } + var_r29->pos.y = (0.9 * var_r29->pos.y) + (0.1 * lbl_1_bss_28C[spC[0]->unk_38].unk_08); + lbl_1_bss_BC->trans.y = var_r29->pos.y - -16.666666666666668; + } + break; + case 0x3F0: + Hu3DModelAttrSet(lbl_1_bss_B8->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_B8->model[2], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_B4 <= 0x3C) { + var_f29 = lbl_1_bss_B4 / 60.0; + var_f29 = var_f29; + var_f29 = 1.0f - ((1.0f - var_f29) * (1.0f - var_f29)); + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_28C[spC[0]->unk_38].unk_08 = -16.666666f; + } + for (var_r31 = 0; var_r31 < 9; var_r31++) { + var_r28 = &Hu3DData[lbl_1_bss_B8->model[var_r31 + 4]]; + Hu3DModelPosSet(lbl_1_bss_B8->model[var_r31 + 4], (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_00 - 1), + (0.9 * var_r28->pos.y) + (0.1 * lbl_1_bss_28C[spC[0]->unk_38].unk_08), + (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_04 - 1)); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r31 == spC[var_r30]->unk_38) { + (&lbl_1_bss_BC)[var_r30]->trans.x = (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_00 - 1); + (&lbl_1_bss_BC)[var_r30]->trans.y = var_r28->pos.y - -16.666666666666668; + (&lbl_1_bss_BC)[var_r30]->trans.z = (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_04 - 1); + } + } + } + } + break; + } + var_r25 = lbl_1_data_1A0; + { + UnkCameraStruct sp14[6] = { + { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, + { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, + { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + }; + + if (lbl_1_bss_98 != -1) { + sp14[3].unk_04 = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.x; + sp14[3].unk_0C = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.z; + sp14[4].unk_04 = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.x; + sp14[4].unk_0C = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.z; + sp14[5].unk_04 = (&lbl_1_bss_BC)[lbl_1_bss_98]->trans.x; + sp14[5].unk_0C = (&lbl_1_bss_BC)[lbl_1_bss_98]->trans.z; + } + if (lbl_1_data_1A0 == -1) { + lbl_1_data_1A0 = 0; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if (lbl_1_data_1A0 == 0) { + lbl_1_data_1A0 = 1; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 0.5f; + } + if ((lbl_1_bss_B0 == 0x3F0) && (lbl_1_bss_B4 >= 1) && (lbl_1_data_1A0 == 1)) { + lbl_1_data_1A0 = 2; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((lbl_1_bss_B0 == 0x3F3) && (lbl_1_data_1A0 == 2)) { + lbl_1_data_1A0 = 3; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((lbl_1_bss_B0 == 0x3F3) && (lbl_1_bss_B4 >= 0x12C) && (lbl_1_data_1A0 == 3)) { + lbl_1_data_1A0 = 4; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if ((lbl_1_bss_B0 == 0x3F4) && (lbl_1_data_1A0 == 4)) { + lbl_1_data_1A0 = 5; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((var_r25 != lbl_1_data_1A0) && (var_r25 != -1)) { + lbl_1_data_1A4 = CZoom; + lbl_1_data_1A8 = Center.y; + lbl_1_bss_30 = Center.z; + lbl_1_data_1AC = CRot.x; + lbl_1_bss_34 = CRot.y; + } + if (lbl_1_bss_28 <= 1.0f) { + if (lbl_1_bss_24 == 0) { + lbl_1_bss_28 = 1.0 - (0.95 * (1.0f - lbl_1_bss_28)); + var_f31 = lbl_1_bss_28; + } + else { + lbl_1_bss_28 += 0.008333333333333333; + lbl_1_bss_28 = lbl_1_bss_28 > 1.0f ? 1.0f : lbl_1_bss_28; + var_f31 = 0.5 + (-0.5 * cosd((180.0f * lbl_1_bss_28))); + var_f31 = var_f31; + } + lbl_1_bss_28 = lbl_1_bss_28 > 1.0f ? 1.0f : lbl_1_bss_28; + CZoom = (var_f31 * sp14[lbl_1_data_1A0].unk_00) + (lbl_1_data_1A4 * (1.0f - var_f31)); + Center.x = (var_f31 * sp14[lbl_1_data_1A0].unk_04) + (lbl_1_bss_2C * (1.0f - var_f31)); + Center.y = (var_f31 * sp14[lbl_1_data_1A0].unk_08) + (lbl_1_data_1A8 * (1.0f - var_f31)); + Center.z = (var_f31 * sp14[lbl_1_data_1A0].unk_0C) + (lbl_1_bss_30 * (1.0f - var_f31)); + CRot.x = (var_f31 * sp14[lbl_1_data_1A0].unk_10) + (lbl_1_data_1AC * (1.0f - var_f31)); + CRot.y = (var_f31 * sp14[lbl_1_data_1A0].unk_14) + (lbl_1_bss_34 * (1.0f - var_f31)); + } + } + if ((lbl_1_bss_B0 == 0x3E9) || (lbl_1_bss_B0 == 0x3EE)) { + var_f25 = 0.0f; + var_f26 = 0.0f; + if ((lbl_1_data_114.unk_00 % 2) >= 0) { + lbl_1_data_114.unk_08 = lbl_1_data_114.unk_10; + lbl_1_data_114.unk_0C = lbl_1_data_114.unk_14; + do { + lbl_1_data_114.unk_10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_114.unk_14 = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_data_114.unk_10 = 0.0f; + } while (sqrtf(((lbl_1_data_114.unk_10 - lbl_1_data_114.unk_08) * (lbl_1_data_114.unk_10 - lbl_1_data_114.unk_08)) + + ((lbl_1_data_114.unk_14 - lbl_1_data_114.unk_0C) * (lbl_1_data_114.unk_14 - lbl_1_data_114.unk_0C))) + < 0.75); + } + var_f25 = lbl_1_data_114.unk_08; + var_f26 = lbl_1_data_114.unk_0C; + var_f25 *= lbl_1_data_114.unk_04 * 2; + var_f26 *= lbl_1_data_114.unk_04 * 2; + lbl_1_data_114.unk_00 = !lbl_1_data_114.unk_00; + lbl_1_data_114.unk_04 = (lbl_1_data_114.unk_04 > 24) ? 23 : (lbl_1_data_114.unk_04 - 1 > 0) ? (lbl_1_data_114.unk_04 - 1) : 0; + Center.x = 0.0f; + Center.y = 100.0f + var_f26; + } +} + +const HsfanimStruct00 lbl_1_rodata_2A0 = { + 0x0096, + { 0x00, 0x00 }, + 50.0f, + 0.0f, + 65.0f, + { 0.0f, -0.195f, 0.0f }, + 100.0f, + 0.99f, + 40.0f, + 0.999f, + 4, + { + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + }, +}; + +s16 fn_1_4BE8(void) +{ + s16 var_r31; + s16 var_r30; + AnimData *var_r29; + void *var_r28; + + HsfanimStruct00 sp8 = lbl_1_rodata_2A0; + lbl_1_bss_3C = sp8; + var_r28 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuSprAnimRead(var_r28); + var_r31 = Hu3DParManCreate(var_r29, 0x64, &lbl_1_bss_3C); + Hu3DParManAttrSet(var_r31, 0x108); + Hu3DParManRotSet(var_r31, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r31, 0.0f, 0.4f, 0.2f); + var_r30 = Hu3DParManModelIDGet(var_r31); + Hu3DModelLayerSet(var_r30, 2); + Hu3DParticleBlendModeSet(var_r30, 0); + return var_r31; +} + +void fn_1_4D44(void) +{ + M458DllWork *spC[2]; + s16 sp8; + s16 var_r31; + s32 var_r30; + WindowData *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + sp8 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + spC[var_r30] = (&lbl_1_bss_BC)[var_r30]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyReset(); + var_r31 = HuWinExCreateStyled(36.0f, 344.0f, 0x1F8, 0x60, 6, 0); + var_r29 = &winData[var_r31]; + if (spC[1]->unk_0C != -1) { + var_r28 = 1 << spC[1]->unk_0C; + } + else { + if (spC[1]->unk_08 != -1) { + var_r27 = 1 << GWPlayerCfg[spC[1]->unk_04].pad_idx; + } + else { + var_r27 = 0; + } + var_r28 = var_r27; + } + if (spC[0]->unk_0C != -1) { + var_r26 = 1 << spC[0]->unk_0C; + } + else { + if (spC[0]->unk_08 != -1) { + var_r25 = 1 << GWPlayerCfg[spC[0]->unk_04].pad_idx; + } + else { + var_r25 = 0; + } + var_r26 = var_r25; + } + var_r29->active_pad = var_r26 | var_r28; + OSReport("%d\n", var_r29->active_pad); + HuWinBGTPLvlSet(var_r31, 0.8f); + HuWinMesSpeedSet(var_r31, 1); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, 0x300024); + if (((spC[0]->unk_0C == -1) || (spC[0]->unk_08 == -1)) && ((spC[1]->unk_0C == -1) || (spC[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + } + HuWinMesWait(var_r31); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_5014(omObjData *var_r30) +{ + M458DllWork *spC[2]; + s32 sp8; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x1C; var_r31++) { + s32 sp14[] = { + 0x7F1, + 0x7F2, + 0x7F7, + 0x7F8, + 0x7F9, + 0x7FA, + 0x7FB, + 0x7FC, + 0x7FD, + 0x7FE, + 0x7FF, + 0x800, + 0x801, + 0x802, + 0x803, + 0x804, + 0x7FB, + 0x7FC, + 0x7FD, + 0x7FE, + 0x7FF, + 0x800, + 0x801, + 0x802, + 0x803, + 0x804, + 0x7FB, + 0x7FC, + }; + if (lbl_1_bss_CC[var_r31].unk_00 > 3) { + lbl_1_bss_CC[var_r31].unk_00 = 3; + } + if (lbl_1_bss_CC[var_r31].unk_00 > 0) { + sp8 = HuAudFXPlay(sp14[var_r31]); + lbl_1_bss_CC[var_r31].unk_00--; + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_BC)[var_r31]->data; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + var_r30->func = fn_1_6D9C; + } + switch (lbl_1_bss_B0) { + case 0x3E8: + if (WipeStatGet() == 0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + if (lbl_1_data_138[0] != -1) { + Hu3DParManKill(*lbl_1_data_138); + lbl_1_data_138[0] = -1; + } + } + default: + break; + case 0x3E9: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == ((lbl_1_bss_14 == 0 ? 0x1E : 0) + 0x3C)) { + lbl_1_bss_B0 = lbl_1_bss_14 != 0 ? 0x3EA : 0x3ED; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EA: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 0x78) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EB: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 > 0xD2) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EC: + if (lbl_1_bss_B4 == 0) { + HuPrcChildCreate(fn_1_4D44, 0x64, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + lbl_1_bss_B4++; + break; + } + if (lbl_1_bss_10 == 0) { + lbl_1_bss_B4++; + if (spC[0]->unk_18 == 0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + } + break; + case 0x3ED: + lbl_1_bss_B4 += lbl_1_bss_B4 < 0x1E; + if (lbl_1_bss_B4 >= 0x3C) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EE: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == ((spC[1]->unk_08 == -1 ? 0x78 : 0x3C) + (lbl_1_bss_14 == 0 ? 0x1E : 0))) { + lbl_1_bss_B0++; + if (spC[1]->unk_08 == -1) { + lbl_1_bss_B0++; + } + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EF: + lbl_1_bss_B4 += lbl_1_bss_B4 < 0x1E; + if (lbl_1_bss_B4 >= 0x3C) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F0: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 0x5A) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F1: + case 0x3F2: + if (lbl_1_bss_B4 == 0) { + spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_18 = 3; + spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_1C = 0; + } + lbl_1_bss_B4++; + if (spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_18 == 0) { + if (lbl_1_bss_98 != -1) { + lbl_1_bss_B0 = 0x3F3; + } + else { + lbl_1_bss_B0 = lbl_1_bss_B0 == 0x3F1 ? 0x3F2 : 0x3F1; + } + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F3: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 >= 0x1E0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F4: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 1) { + if (lbl_1_bss_98 != 4) { + if (spC[lbl_1_bss_98]->unk_08 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(3); + } + if (lbl_1_bss_14 != 0) { + if (lbl_1_bss_98 == 0) { + _SetFlag(0x10007); + } + } + else { + GWPlayerCoinWinSet(spC[lbl_1_bss_98]->unk_04, 10); + } + } + else { + lbl_1_bss_98 == 4; + } + } + if (210.0f < lbl_1_bss_B4) { + if (lbl_1_data_134 != -1) { + HuAudFXStop(lbl_1_data_134); + lbl_1_data_134 = -1; + } + lbl_1_data_12C = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r30->func = fn_1_6D9C; + } + break; + } +} + +s32 lbl_1_data_1E8[0xB] = { + 0x570013, + 0x570014, + 0x570015, + 0x570016, + 0x570017, + 0x570018, + 0x570019, + 0x57001A, + 0x57001B, + 0x57001C, + 0x57001D, +}; + +void fn_1_59DC(omObjData *object) +{ + M458DllWork *sp18[2]; + + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + void *var_r26; + AnimData *var_r25; + s16 var_r24; + s16 var_r23; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp18[var_r30] = (&lbl_1_bss_BC)[var_r30]->data; + } + object->model[1] = Hu3DModelCreateFile(0x3000E); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + object->model[2] = Hu3DModelCreateFile(0x30000); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); + Hu3DModelHookSet(object->model[2], "minik01", object->model[1]); + Hu3DModelPosSet(object->model[2], 0.0f, -750.0f, -700.0f); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + object->motion[0] = Hu3DJointMotionFile(object->model[1], 0x3000F); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x30012); + Hu3DMotionSet(object->model[1], object->motion[0]); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelLayerSet(object->model[1], 1); + object->model[0] = Hu3DModelCreateFile(0x570008); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[0], 0.1f); + object->model[3] = Hu3DModelCreateFile(0x570009); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelPosSet(object->model[3], 0.0f, 400.0f, 0.0f); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + for (var_r30 = 0; var_r30 < 9; var_r30++) { + object->model[var_r30 + 4] = Hu3DModelCreateFile(var_r30 + 0x57000A); + lbl_1_bss_28C[var_r30].unk_00 = var_r30 % 3; + lbl_1_bss_28C[var_r30].unk_04 = var_r30 / 3; + lbl_1_bss_28C[var_r30].unk_08 = 0.0f; + lbl_1_bss_28C[var_r30].unk_0C = 1; + Hu3DModelPosSet( + lbl_1_bss_B8->model[var_r30 + 4], 500.0 * (lbl_1_bss_28C[var_r30].unk_00 - 1), -16.666666f, 500.0 * (lbl_1_bss_28C[var_r30].unk_04 - 1)); + Hu3DModelScaleSet(lbl_1_bss_B8->model[var_r30 + 4], 1.6666666f, 1.6666666f, 1.6666666f); + Hu3DModelAttrSet(object->model[var_r30 + 4], HU3D_MOTATTR_PAUSE); + Hu3DModelShadowMapSet(object->model[var_r30 + 4]); + Hu3DModelLayerSet(object->model[var_r30 + 4], 1); + } + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + if ((var_r30 == 9) || (var_r30 == 0xA)) { + if (sp18[var_r30 - 9]->unk_08 != -1) { + var_r27 = sp18[var_r30 - 9]->unk_08 + 0x57001C; + } + else { + var_r27 = 0x570024; + } + lbl_1_data_1E8[var_r30] = var_r27; + } + object->model[var_r30 + 0xD] = Hu3DModelCreateFile(lbl_1_data_1E8[var_r30]); + Hu3DMotionTimeSet(object->model[var_r30 + 0xD], 10.0f); + Hu3DMotionSpeedSet(object->model[var_r30 + 0xD], 0.0f); + Hu3DModelAttrSet(object->model[var_r30 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[var_r30 + 0xD], 1); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + s32 sp10[2] = { 0x120, 0x122 }; + s32 sp8[2] = { 0xF0, 0x8C }; + lbl_1_data_8[var_r30] = espEntry(lbl_1_data_0[var_r30], 0, 0); + espDrawNoSet(lbl_1_data_8[var_r30], 0); + espAttrSet(lbl_1_data_8[var_r30], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_8[var_r30], 0); + espPriSet(lbl_1_data_8[var_r30], 0x80 - var_r30); + espPosSet(lbl_1_data_8[var_r30], sp10[var_r30], sp8[var_r30]); + espTPLvlSet(lbl_1_data_8[var_r30], 1.0f); + } + { + HsfanimStruct00 sp20 = lbl_1_rodata_2A0; + lbl_1_bss_3C = sp20; + } + var_r26 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r25 = HuSprAnimRead(var_r26); + var_r29 = Hu3DParManCreate(var_r25, 0x64, &lbl_1_bss_3C); + Hu3DParManAttrSet(var_r29, 0x108); + Hu3DParManRotSet(var_r29, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r29, 0.0f, 0.4f, 0.2f); + var_r28 = Hu3DParManModelIDGet(var_r29); + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleBlendModeSet(var_r28, 0); + var_r24 = var_r29; + var_r23 = var_r24; + lbl_1_data_138[0] = var_r23; + Hu3DParManPosSet(lbl_1_data_138[0], 10000.0f, -10000.0f, 10000.0f); + object->func = fn_1_350C; +} + +void fn_1_6314(omObjData *object) +{ + s32 sp10; + void *spC; + M458DllWork *work; + s32 var_r29; + + work = object->data; + spC = (&lbl_1_bss_BC)[1 - object->work[0]]->data; + memset(work, 0, sizeof(M458DllWork)); + work->unk_00 = object->work[0]; + work->unk_04 = GWPlayerCfg->group == work->unk_00 + ? 0 + : (GWPlayerCfg[1].group == work->unk_00 ? 1 : (GWPlayerCfg[2].group == work->unk_00 ? 2 : (GWPlayerCfg[3].group == work->unk_00 ? 3 : 4))); + sp10 = GWPlayerCfg->group == (1 - work->unk_00) + ? 0 + : (GWPlayerCfg[1].group == (1 - work->unk_00) + ? 1 + : (GWPlayerCfg[2].group == (1 - work->unk_00) ? 2 : (GWPlayerCfg[3].group == (1 - work->unk_00) ? 3 : 4))); + if (work->unk_04 == 4) { + OSReport("m458:wrong player group\n"); + work->unk_04 = work->unk_00; + } + if ((work->unk_00 == 1) && (lbl_1_bss_14 != 0)) { + work->unk_08 = -1; + work->unk_0C = -1; + work->unk_04 = -1; + work->unk_10 = 0; + } + else { + work->unk_08 = GWPlayerCfg[work->unk_04].character; + work->unk_0C = ((work->unk_08 == -1) || (GWPlayerCfg[work->unk_04].iscom != 0)) ? -1 : GWPlayerCfg[work->unk_04].pad_idx; + work->unk_10 = work->unk_0C != -1 ? 0 : GWPlayerCfg[work->unk_04].diff; + } + work->unk_18 = 0; + work->unk_20 = 3; + work->unk_24 = -1; + if (work->unk_08 != -1) { + object->model[0] = CharModelCreate(work->unk_08, 1); + } + else { + object->model[0] = Hu3DModelCreateFile(0x30007); + } + omSetTra(object, 0.0f, work->unk_00 == 0 ? 0 : 0x12C, 0.0f); + if (work->unk_08 != -1) { + omSetSca(object, 2.5f, 2.5f, 2.5f); + } + else { + omSetSca(object, 2.0f, 2.0f, 2.0f); + } + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (work->unk_08 != -1) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_08, lbl_1_data_10[var_r29] + (lbl_1_data_38[var_r29] != 0 ? work->unk_08 : 0)); + } + else if (lbl_1_data_60[var_r29] != 0) { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], lbl_1_data_60[var_r29]); + } + } + Hu3DMotionSet(object->model[0], object->motion[work->unk_20]); + Hu3DMotionTimeSet(object->model[0], 10.0f); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[0], 1); + CharModelLayerSetAll2(1); + object->func = fn_1_4C8; +} + +void fn_1_685C(omObjData *object) +{ + lbl_1_bss_B0 = 0x3E8; + lbl_1_bss_B4 = 0.0f; + lbl_1_bss_A8 = 0; + lbl_1_bss_A4 = 0; + if (lbl_1_data_130 == -1) { + lbl_1_data_130 = HuAudSeqPlay(0x4D); + } + lbl_1_data_134 = HuAudFXPlay(0x6D7); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_5014; +} + +void ObjectSetup(void) +{ + s32 i; + omObjData *object; + + OSReport("******* M458 ObjectSetup *********\n"); + lbl_1_bss_A0 = omInitObjMan(0x258, 0x2000); + omGameSysInit(lbl_1_bss_A0); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { 0.25f, -0.75f, -0.45f }; + GXColor sp8 = { 255, 255, 255, 255 }; + lbl_1_bss_9C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_9C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_9C); + } + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_12C = -1; + lbl_1_bss_98 = -1; + lbl_1_bss_14 = _CheckFlag(0x10000) != 0; + HuWinInit(1); + lbl_1_bss_B8 = omAddObjEx(lbl_1_bss_A0, 0x65, 0x18, 2, 1, fn_1_59DC); + for (i = 0; i < 2; i++) { + object = (&lbl_1_bss_BC)[i] = omAddObjEx(lbl_1_bss_A0, 0x64, 0xB, 0xA, 0, fn_1_6314); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M458DllWork), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + lbl_1_bss_C4 = omAddObjEx(lbl_1_bss_A0, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_C8 = omAddObjEx(lbl_1_bss_A0, 0x67, 0, 0, -1, fn_1_685C); +} + +void fn_1_6D9C(omObjData *object) +{ + if (lbl_1_data_138[0] != -1) { + Hu3DParManKill(lbl_1_data_138[0]); + lbl_1_data_138[0] = -1; + } + if (WipeStatGet() == 0) { + s32 i; + for (i = 0; i < 2; i++) { + void *sp8 = (&lbl_1_bss_BC)[i]->data; + } + if (lbl_1_data_12C >= 0) { + MGSeqKill(lbl_1_data_12C); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/REL/m459dll/main.c b/src/REL/m459dll/main.c new file mode 100644 index 00000000..c8c96218 --- /dev/null +++ b/src/REL/m459dll/main.c @@ -0,0 +1,2138 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" + +// #ifndef __MWERKS__ +#include "game/frand.h" +// #endif + +typedef struct M459DllBss18Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s16 unk_04[8]; + /* 0x14 */ s16 unk_14[8]; + /* 0x24 */ u8 unk_24[2]; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; +} M459DllBss18Struct; /* size = 0x30 */ + +typedef struct M459DllBss4CStruct { + /* 0x00 */ s16 unk_00[6]; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; +} M459DllBss4CStruct; /* size = 0x18 */ + +typedef struct M459DllBss64Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s16 unk_08; +} M459DllBss64Struct; /* size = 0xC */ + +typedef struct M459DllBss70Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x08 */ s32 unk_08; +} M459DllBss70Struct; /* size = 0xC */ + +typedef struct M459DllBss7CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ u32 unk_08; + /* 0x0C */ s16 unk_0C[2]; +} M459DllBss7CStruct; /* size = 0x10 */ + +typedef struct M459DllBssCCStruct { + /* 0x000 */ s32 unk_00; + /* 0x004 */ s32 unk_04; + /* 0x008 */ s32 unk_08; + /* 0x00C */ Vec unk_0C; + /* 0x018 */ float unk_18; + /* 0x01C */ float unk_1C; + /* 0x020 */ float unk_20; + /* 0x024 */ char pad_24[0x4]; + /* 0x028 */ s32 unk_28[5]; + /* 0x03C */ s32 unk_3C[5]; + /* 0x050 */ float unk_50; + /* 0x054 */ float unk_54; + /* 0x058 */ float unk_58; + /* 0x05C */ float unk_5C; + /* 0x060 */ s16 unk_60; + /* 0x062 */ s16 unk_62[0xC]; + /* 0x07A */ s16 unk_7A[0xC][6]; + /* 0x10A */ s16 unk_10A[2]; + /* 0x10E */ char pad_10E[2]; +} M459DllBssCCStruct; /* size = 0x110 */ + +typedef struct M459DllBss61CStruct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x24 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ float unk_34; + /* 0x38 */ float unk_38; + /* 0x3C */ char unk3C[0xC]; + /* 0x48 */ Vec unk_48; + /* 0x54 */ Vec unk_54; + /* 0x60 */ char unk60[0xC]; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; + /* 0x74 */ float unk_74; + /* 0x78 */ float unk_78; +} M459DllBss61CStruct; /* size = 0x7C */ + +typedef struct M459DllData70Struct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ GXColor unk_18; +} M459DllData70Struct; /* size = 0x1C */ + +void fn_1_11DC(float arg8, float arg9, float argA); +void fn_1_1204(float arg8, float arg9, float argA); +void fn_1_122C(void); +void fn_1_14B8(void); +void fn_1_19B4(M459DllBssCCStruct *arg0); +void fn_1_1A00(M459DllBssCCStruct *arg0); +void fn_1_1D8(void); +void fn_1_1FDC(M459DllBssCCStruct *arg0); +void fn_1_2044(M459DllBssCCStruct *arg0); +void fn_1_21AC(M459DllBssCCStruct *arg0); +void fn_1_23AC(M459DllBssCCStruct *arg0); +void fn_1_25C8(M459DllBssCCStruct *arg0); +void fn_1_27C8(M459DllBssCCStruct *arg0); +void fn_1_2930(M459DllBssCCStruct *arg0); +void fn_1_2B24(M459DllBssCCStruct *arg0); +void fn_1_2F18(M459DllBssCCStruct *arg0); +void fn_1_3004(M459DllBssCCStruct *arg0); +void fn_1_338C(M459DllBssCCStruct *arg0, float arg8); +void fn_1_3700(M459DllBssCCStruct *arg0); +void fn_1_4160(M459DllBssCCStruct *arg0); +float fn_1_4210(float arg8, float arg9, float argA); +void fn_1_4314(s32 arg0, u32 arg1); +void fn_1_4530(void); +void fn_1_45EC(void); +void fn_1_4764(void); +void fn_1_47E4(void); +void fn_1_4850(void); +void fn_1_48E4(void); +void fn_1_4A74(void); +void fn_1_4B68(void); +void fn_1_4C1C(void); +void fn_1_4CD0(void); +s32 fn_1_4E54(void); +void fn_1_4E64(s32 arg0); +void fn_1_4E98(void); +void fn_1_4EAC(void); +void fn_1_4F8C(s32 arg0); +s32 fn_1_4FAC(void); +void fn_1_4FC8(void); +void fn_1_52D8(s32 arg0); +s32 fn_1_52F0(void); +s32 fn_1_5300(void); +s32 fn_1_5310(void); +void fn_1_535C(void); +void fn_1_5490(void); +void fn_1_556C(M459DllBss18Struct *arg0); +void fn_1_55B0(M459DllBss18Struct *arg0); +void fn_1_5A78(M459DllBss18Struct *arg0); +void fn_1_5E3C(M459DllBss18Struct *arg0); +void fn_1_5EAC(void); +void fn_1_5F40(M459DllBss7CStruct *arg0); +void fn_1_5F84(M459DllBss7CStruct *arg0); +void fn_1_6198(M459DllBss7CStruct *arg0); +void fn_1_640(void); +void fn_1_6458(M459DllBss7CStruct *arg0); +void fn_1_73C(void); +void fn_1_E78(void); + +Process *lbl_1_bss_6E4; +Process *lbl_1_bss_698[0x13]; +M459DllBss61CStruct lbl_1_bss_61C; +M459DllBssCCStruct lbl_1_bss_CC[5]; +M459DllBss7CStruct lbl_1_bss_7C[5]; +M459DllBss70Struct lbl_1_bss_70; +M459DllBss64Struct lbl_1_bss_64; +M459DllBss4CStruct lbl_1_bss_4C; +s16 lbl_1_bss_48[1]; +M459DllBss18Struct lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +u8 lbl_1_bss_2; +s16 lbl_1_bss_0; + +static const s32 lbl_1_rodata_10[0xC] = { + DATA_MAKE_NUM(DATADIR_M459, 0x05), + DATA_MAKE_NUM(DATADIR_M459, 0x03), + DATA_MAKE_NUM(DATADIR_M459, 0x04), + DATA_MAKE_NUM(DATADIR_M459, 0x01), + DATA_MAKE_NUM(DATADIR_M459, 0x02), + DATA_MAKE_NUM(DATADIR_M459, 0x05), + DATA_MAKE_NUM(DATADIR_M459, 0x03), + DATA_MAKE_NUM(DATADIR_M459, 0x04), + DATA_MAKE_NUM(DATADIR_M459, 0x01), + DATA_MAKE_NUM(DATADIR_M459, 0x02), + DATA_MAKE_NUM(DATADIR_M459, 0x0E), + DATA_MAKE_NUM(DATADIR_M459, 0x0F), +}; +static const s32 lbl_1_rodata_40[5][6] = { + { + DATA_MAKE_NUM(DATADIR_M459, 0x28), + DATA_MAKE_NUM(DATADIR_M459, 0x29), + DATA_MAKE_NUM(DATADIR_M459, 0x2A), + DATA_MAKE_NUM(DATADIR_M459, 0x2C), + DATA_MAKE_NUM(DATADIR_M459, 0x2B), + DATA_MAKE_NUM(DATADIR_M459, 0x2D), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x1C), + DATA_MAKE_NUM(DATADIR_M459, 0x1D), + DATA_MAKE_NUM(DATADIR_M459, 0x1E), + DATA_MAKE_NUM(DATADIR_M459, 0x20), + DATA_MAKE_NUM(DATADIR_M459, 0x1F), + DATA_MAKE_NUM(DATADIR_M459, 0x21), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x22), + DATA_MAKE_NUM(DATADIR_M459, 0x23), + DATA_MAKE_NUM(DATADIR_M459, 0x24), + DATA_MAKE_NUM(DATADIR_M459, 0x26), + DATA_MAKE_NUM(DATADIR_M459, 0x25), + DATA_MAKE_NUM(DATADIR_M459, 0x27), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x10), + DATA_MAKE_NUM(DATADIR_M459, 0x11), + DATA_MAKE_NUM(DATADIR_M459, 0x12), + DATA_MAKE_NUM(DATADIR_M459, 0x14), + DATA_MAKE_NUM(DATADIR_M459, 0x13), + DATA_MAKE_NUM(DATADIR_M459, 0x15), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x16), + DATA_MAKE_NUM(DATADIR_M459, 0x17), + DATA_MAKE_NUM(DATADIR_M459, 0x18), + DATA_MAKE_NUM(DATADIR_M459, 0x1A), + DATA_MAKE_NUM(DATADIR_M459, 0x19), + DATA_MAKE_NUM(DATADIR_M459, 0x1B), + }, +}; +static const s32 lbl_1_rodata_B8[2] = { DATA_MAKE_NUM(DATADIR_M459, 0x3C), DATA_MAKE_NUM(DATADIR_M459, 0x3D) }; +static const s32 lbl_1_rodata_C0[2] = { DATA_MAKE_NUM(DATADIR_M459, 0x3A), DATA_MAKE_NUM(DATADIR_M459, 0x3B) }; +static const s32 lbl_1_rodata_C8[6] = { + DATA_MAKE_NUM(DATADIR_M459, 0x30), + DATA_MAKE_NUM(DATADIR_M459, 0x30), + DATA_MAKE_NUM(DATADIR_M459, 0x2F), + DATA_MAKE_NUM(DATADIR_M459, 0x2F), + DATA_MAKE_NUM(DATADIR_M459, 0x31), + DATA_MAKE_NUM(DATADIR_M459, 0x2E), +}; +static const s32 lbl_1_rodata_E0[1] = { DATA_MAKE_NUM(DATADIR_M459, 0x00) }; +static const s32 lbl_1_rodata_E4[8] = { + DATA_MAKE_NUM(DATADIR_M459, 0x06), + DATA_MAKE_NUM(DATADIR_M459, 0x07), + DATA_MAKE_NUM(DATADIR_M459, 0x08), + DATA_MAKE_NUM(DATADIR_M459, 0x09), + DATA_MAKE_NUM(DATADIR_M459, 0x0A), + DATA_MAKE_NUM(DATADIR_M459, 0x0B), + DATA_MAKE_NUM(DATADIR_M459, 0x0C), + DATA_MAKE_NUM(DATADIR_M459, 0x0D), +}; +static const s32 lbl_1_rodata_104[8] = { + DATA_MAKE_NUM(DATADIR_M459, 0x32), + DATA_MAKE_NUM(DATADIR_M459, 0x33), + DATA_MAKE_NUM(DATADIR_M459, 0x34), + DATA_MAKE_NUM(DATADIR_M459, 0x35), + DATA_MAKE_NUM(DATADIR_M459, 0x36), + DATA_MAKE_NUM(DATADIR_M459, 0x37), + DATA_MAKE_NUM(DATADIR_M459, 0x38), + DATA_MAKE_NUM(DATADIR_M459, 0x39), +}; +static const s32 lbl_1_rodata_124[0x63] = { 0x14, 0x13, 0x12, 0x11, 0x10, 0xF, 0xE, 0xD, 0xC, 0xB, 0xA, 9, 8, 7, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; + +static const s32 lbl_1_rodata_2B0[4] = {0x80000000, 0x40000000, 0x20000000, 0x10000000}; + +void ObjectSetup(void) +{ + s32 var_r31; + u32 var_r30; + + lbl_1_bss_6E4 = omInitObjMan(1, 0x2000); + omGameSysInit(lbl_1_bss_6E4); + fn_1_1D8(); + var_r30 = HuPadRumbleGet(); + if ((var_r30 & 0x80000000) != 0) { + lbl_1_bss_8 = GWGameStat.rumble; + } + else { + lbl_1_bss_8 = 0; + } + lbl_1_bss_4 = 0; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + lbl_1_bss_698[var_r31] = NULL; + } + lbl_1_bss_698[0] = HuPrcChildCreate(fn_1_640, 0x100, 0x1000, 0, lbl_1_bss_6E4); + lbl_1_bss_698[1] = HuPrcChildCreate(fn_1_73C, 0x101, 0x3000, 0, lbl_1_bss_6E4); +} + +void fn_1_1D8(void) +{ + M459DllBssCCStruct *var_r29; + s32 var_r31; + s32 var_r30; + M459DllBss18Struct *var_r28; + s16 *var_r27; + s32 var_r26; + s16 *var_r25; + M459DllBss7CStruct *var_r24; + + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r29 = &lbl_1_bss_CC[var_r30]; + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + if ((var_r31 >= 5) && (var_r31 <= 9)) { + var_r29->unk_62[var_r31] = Hu3DModelLink(var_r29->unk_62[var_r31 - 5]); + } + else { + var_r29->unk_62[var_r31] = Hu3DModelCreateFile(lbl_1_rodata_10[var_r31]); + } + if ((var_r31 >= 0) && (var_r31 <= 4)) { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 2); + } + else if ((var_r31 >= 5) && (var_r31 <= 9)) { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 0); + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_CULL_FRONT); + } + else { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 3); + } + if (var_r31 == 0xA) { + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_ZWRITE_OFF); + } + if ((var_r31 >= 0) && (var_r31 <= 4)) { + Hu3DModelShadowSet(var_r29->unk_62[var_r31]); + } + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_DISPOFF); + } + for (var_r26 = 0; var_r26 < 5; var_r26++) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_r29->unk_7A[var_r26][var_r31] = Hu3DJointMotionFile(var_r29->unk_62[var_r26], lbl_1_rodata_40[var_r26][var_r31]); + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29->unk_10A[var_r31] = espEntry(lbl_1_rodata_B8[var_r31], 0, 0); + espDispOff(var_r29->unk_10A[var_r31]); + } + } + CharModelLayerSetAll(3); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r24 = &lbl_1_bss_7C[var_r30]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r24->unk_0C[var_r31] = espEntry(lbl_1_rodata_C0[var_r31], 0, 0); + espDispOff(var_r24->unk_0C[var_r31]); + } + } + var_r25 = lbl_1_bss_4C.unk_00; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + var_r25[var_r30] = espEntry(lbl_1_rodata_C8[var_r30], 0, 0); + } + espColorSet(var_r25[5], 0, 0, 0); + var_r27 = lbl_1_bss_48; + for (var_r30 = 0; var_r30 < 1; var_r30++) { + var_r27[var_r30] = Hu3DModelCreateFile(lbl_1_rodata_E0[var_r30]); + Hu3DModelLayerSet(var_r27[var_r30], 1); + Hu3DModelShadowMapSet(var_r27[var_r30]); + } + var_r28 = &lbl_1_bss_18; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r28->unk_14[var_r30] = Hu3DModelCreateFile(lbl_1_rodata_E4[var_r30]); + Hu3DModelLayerSet(var_r28->unk_14[var_r30], 2); + Hu3DModelAttrSet(var_r28->unk_14[var_r30], HU3D_ATTR_ZWRITE_OFF); + Hu3DModelAttrSet(var_r28->unk_14[var_r30], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r28->unk_04[var_r30] = espEntry(lbl_1_rodata_104[var_r30], 0, 0); + espDispOff(var_r28->unk_04[var_r30]); + } +} + +void fn_1_640(void) +{ + s32 var_r31; + + while (omSysExitReq == 0) { + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuAudFadeOut(0x3E8); + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + if ((var_r31 != 0) && lbl_1_bss_698[var_r31]) { + HuPrcKill(lbl_1_bss_698[var_r31]); + lbl_1_bss_698[var_r31] = NULL; + } + } + HuPrcVSleep(); + omOvlReturnEx(1, 1); + HuPrcEnd(); + lbl_1_bss_698[0] = NULL; +} + +void fn_1_73C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + lbl_1_bss_698[2] = HuPrcChildCreate(fn_1_E78, 0xFF, 0x1000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_698[var_r31 + 3] = HuPrcChildCreate(fn_1_14B8, 0x102, 0x3000, 0, HuPrcCurrentGet()); + *((s32 *)&lbl_1_bss_698[var_r31 + 3]->user_data) = var_r31; + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_698[var_r31 + 8] = HuPrcChildCreate(fn_1_5EAC, 0x105, 0x1000, 0, HuPrcCurrentGet()); + *((s32 *)&lbl_1_bss_698[var_r31 + 8]->user_data) = var_r31; + } + lbl_1_bss_698[0x11] = HuPrcChildCreate(fn_1_5490, 0x103, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_4314(var_r31, frandmod(5)); + } + lbl_1_bss_698[0xD] = HuPrcChildCreate(fn_1_4CD0, 0x200, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0xE] = HuPrcChildCreate(fn_1_4EAC, 0x103, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0xF] = HuPrcChildCreate(fn_1_4FC8, 0x104, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0x10] = HuPrcChildCreate(fn_1_535C, 0x110, 0x2000, 0, HuPrcCurrentGet()); + HuPrcVSleep(); + fn_1_1204(0.0f, 90.0f, -400.0f); + fn_1_11DC(0.0f, 300.0f, 1100.0f); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4530, 0x100, 0x4000, 0, HuPrcCurrentGet()); + + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + while (TRUE) { + lbl_1_bss_10 = frandmod(5); + var_r29 = frandmod(5); + var_r30 = frandmod(5); + if (var_r29 == var_r30) { + var_r30 = (var_r30 + 1) % 5; + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_10) { + lbl_1_bss_7C[var_r31].unk_08 = var_r29; + } + } + lbl_1_bss_7C[lbl_1_bss_10].unk_08 = var_r30; + if (fn_1_52F0() > 0) { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_4314(var_r31, frandmod(5)); + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4C1C, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4764, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + } + var_r28 = lbl_1_rodata_124[fn_1_52F0()] * 0x3C; + fn_1_4E64(var_r28); + lbl_1_bss_18.unk_00 = 1; + while (TRUE) { + if ((lbl_1_bss_18.unk_00 == 0) || (fn_1_4E54() <= 0)) { + break; + } + HuPrcVSleep(); + } + fn_1_4E98(); + if (lbl_1_bss_18.unk_00 != 0) { + lbl_1_bss_18.unk_00 = 2; + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4A74, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + } + else { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_47E4, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + if (lbl_1_bss_14 == lbl_1_bss_10) { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4850, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + goto label; + } + else { + + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_48E4, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + if(0) { + label: + fn_1_52D8(1); + if (fn_1_52F0() != 0x63) { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4B68, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + continue; + } + } + } + } + break; + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_45EC, 0x100, 0x4000, 0, HuPrcCurrentGet()); + + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + mgRecordExtra = fn_1_52F0(); + omSysExitReq = 1; + HuPrcEnd(); + lbl_1_bss_698[1] = NULL; + lbl_1_bss_698[1] = NULL; +} + +void fn_1_E78(void) +{ + float sp8; + float var_f31; + M459DllBss61CStruct *var_r31; + + var_r31 = &lbl_1_bss_61C; + var_r31->unk_00.x = 0.0f; + var_r31->unk_00.y = 300.0f; + var_r31->unk_00.z = 1100.0f; + var_r31->unk_0C.x = 90.0f; + var_r31->unk_0C.y = -400.0f; + var_r31->unk_0C.z = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 1.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_74 = 1.0f; + var_r31->unk_6C = 1.0f; + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 30.0f, 10.0f, 8000.0f, 1.2f); + while (TRUE) { + fn_1_122C(); + if (var_r31->unk_6C < 1.0f) { + var_f31 = sind((90.0f * var_r31->unk_6C)); + var_r31->unk_00.x = var_r31->unk_24 + (var_f31 * (var_r31->unk_48.x - var_r31->unk_24)); + var_r31->unk_00.y = var_r31->unk_28 + (var_f31 * (var_r31->unk_48.y - var_r31->unk_28)); + var_r31->unk_00.z = var_r31->unk_2C + (var_f31 * (var_r31->unk_48.z - var_r31->unk_2C)); + if ((var_r31->unk_6C += var_r31->unk_70) >= 1.0f) { + var_r31->unk_00 = var_r31->unk_48; + } + } + if (var_r31->unk_74 < 1.0f) { + var_f31 = sind((90.0f * var_r31->unk_74)); + var_r31->unk_0C.x = var_r31->unk_30 + (var_f31 * (var_r31->unk_54.x - var_r31->unk_30)); + var_r31->unk_0C.y = var_r31->unk_34 + (var_f31 * (var_r31->unk_54.y - var_r31->unk_34)); + var_r31->unk_0C.z = var_r31->unk_38 + (var_f31 * (var_r31->unk_54.z - var_r31->unk_38)); + if ((var_r31->unk_74 += var_r31->unk_78) >= 1.0f) { + var_r31->unk_0C = var_r31->unk_54; + } + } + Hu3DCameraPosSet(1, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z, var_r31->unk_18, var_r31->unk_1C, var_r31->unk_20, + var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + HuPrcVSleep(); + } +} + +void fn_1_11DC(float arg8, float arg9, float argA) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + var_r31->unk_00.x = arg8; + var_r31->unk_00.y = arg9; + var_r31->unk_00.z = argA; +} + +void fn_1_1204(float arg8, float arg9, float argA) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + var_r31->unk_0C.x = arg8; + var_r31->unk_0C.y = arg9; + var_r31->unk_0C.z = argA; +} + +void fn_1_122C(void) +{ + M459DllBss61CStruct *var_r31; + + if (lbl_1_bss_4 != 0) { + var_r31 = &lbl_1_bss_61C; + var_r31->unk_0C.x += (0.25f * HuPadStkX[0]); + var_r31->unk_0C.y += (0.25f * HuPadStkY[0]); + var_r31->unk_00.z += (0.25f * HuPadTrigL[0]); + var_r31->unk_00.z -= (0.25f * HuPadTrigR[0]); + var_r31->unk_00.x += (0.25f * HuPadSubStkX[0]); + var_r31->unk_00.y += (0.25f * HuPadSubStkY[0]); + } +} + +void fn_1_142C(void) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + print8(0x20, 0x40, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + print8(0x20, 0x50, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); +} + +static const u8 lbl_1_rodata_31C[8] = { 9, 0xE, 0xC, 0xA, 0xB }; + +void fn_1_14B8(void) +{ + M459DllBssCCStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = (s32)HuPrcCurrentGet()->user_data; + var_r31 = &lbl_1_bss_CC[var_r29]; + var_r31->unk_00 = var_r29; + var_r31->unk_04 = 0; + var_r31->unk_0C.x = -260.0f + (130.0f * var_r29); + var_r31->unk_0C.y = 0.0f; + var_r31->unk_0C.z = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_50 = 0.0f; + var_r31->unk_54 = 0.0f; + var_r31->unk_58 = 0.0f; + Hu3DMotionSet(var_r31->unk_62[var_r31->unk_08], var_r31->unk_7A[var_r31->unk_08][var_r31->unk_60 = 0]); + Hu3DModelAttrSet(var_r31->unk_62[var_r31->unk_08], HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r31->unk_28[var_r30] = CharModelEffectNpcInit(var_r31->unk_62[var_r30], var_r31->unk_7A[var_r30][2], 1, lbl_1_rodata_31C[var_r30]); + var_r31->unk_3C[var_r30] = CharModelEffectNpcInit(var_r31->unk_62[var_r30], var_r31->unk_7A[var_r30][1], 0, lbl_1_rodata_31C[var_r30]); + } + while (TRUE) { + switch (var_r31->unk_04) { + case 0: + fn_1_19B4(var_r31); + break; + case 1: + fn_1_1A00(var_r31); + break; + case 3: + fn_1_1FDC(var_r31); + lbl_1_bss_7C[var_r31->unk_00].unk_04 = 3; + break; + case 4: + fn_1_2044(var_r31); + break; + case 5: + fn_1_21AC(var_r31); + break; + case 6: + fn_1_23AC(var_r31); + break; + case 7: + fn_1_27C8(var_r31); + break; + case 8: + fn_1_2930(var_r31); + break; + case 9: + fn_1_2B24(var_r31); + break; + case 10: + fn_1_3004(var_r31); + break; + case 11: + fn_1_2F18(var_r31); + break; + case 12: + fn_1_25C8(var_r31); + break; + case 13: + fn_1_3700(var_r31); + break; + } + } +} + +void fn_1_1778(M459DllBssCCStruct *arg0, s16 arg1, float arg8, float arg9, u32 arg2) +{ + Hu3DMotionShiftSet(arg0->unk_62[arg0->unk_08], arg0->unk_7A[arg0->unk_08][arg0->unk_60 = arg1], arg8, arg9, arg2); + Hu3DMotionShiftSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_7A[arg0->unk_08][arg1], arg8, arg9, arg2); + Hu3DModelScaleSet(arg0->unk_62[arg0->unk_08 + 5], 1.0f, -1.0f, 1.0f); +} + +void fn_1_189C(M459DllBssCCStruct *arg0, s16 arg1, u32 arg2) +{ + Hu3DMotionSet(arg0->unk_62[arg0->unk_08], arg0->unk_7A[arg0->unk_08][arg0->unk_60 = arg1]); + Hu3DMotionSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_7A[arg0->unk_08][arg1]); + Hu3DModelScaleSet(arg0->unk_62[arg0->unk_08 + 5], 1.0f, -1.0f, 1.0f); + Hu3DModelAttrSet(arg0->unk_62[arg0->unk_08], arg2); + Hu3DModelAttrSet(arg0->unk_62[arg0->unk_08 + 5], arg2); +} + +void fn_1_19B4(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + do { + var_r30 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +static const s32 lbl_1_rodata_330[5] = { 0x36, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_1A00(M459DllBssCCStruct *var_r31) +{ + Vec sp8; + float var_f31; + + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + if (var_r31->unk_00 == 0) { + HuAudFXPlay(0x30D); + } + var_r29 = var_r31->unk_62[10]; + Hu3DModelAttrReset(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + Hu3DModelTPLvlSet(var_r29, 1.0f); + sp8 = var_r31->unk_0C; + for (var_r30 = 0; var_r30 < 0x28; var_r30++) { + var_f31 = sind((2.25f * var_r30)); + sp8.y = 170.0f + (350.0f - (350.0f * var_f31)); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r27 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r27) { + return; + } + } + if (var_r31->unk_00 == 0) { + HuAudFXPlay(0x312); + HuAudFXPlay(0x314); + } + for (var_r30 = 0; var_r30 < 0x14; var_r30++) { + var_f31 = sind((4.5f * var_r30)); + var_f31 = 1.0f - var_f31; + Hu3DModelScaleSet(var_r29, var_f31, var_f31, var_f31); + Hu3DModelTPLvlSet(var_r29, var_f31); + sp8.y = 170.0f - (2.0f * var_r30); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r26 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r26) { + return; + } + } + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + HuAudFXPlay(lbl_1_rodata_330[var_r31->unk_08]); + var_r28 = var_r31->unk_10A[0]; + sp8 = var_r31->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r28, sp8.x, sp8.y); + espTPLvlSet(var_r28, 1.0f); + espDispOn(var_r28); + fn_1_1778(var_r31, 3, 0.0f, 8.0f, HU3D_ATTR_NONE); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + var_r25 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r25) { + return; + } + } + fn_1_1778(var_r31, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r28, 1.0f - (0.1f * var_r30)); + var_r24 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r24) { + return; + } + } + espDispOff(var_r28); + lbl_1_bss_CC[var_r31->unk_00].unk_04 = 0; +} + +void fn_1_1FDC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + + lbl_1_bss_7C[arg0->unk_00].unk_04 = 1; + do { + var_r30 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +void fn_1_2044(M459DllBssCCStruct *var_r31) +{ + Vec sp8; + + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = var_r31->unk_10A[0]; + sp8 = var_r31->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espTPLvlSet(var_r29, 1.0f); + espDispOn(var_r29); + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + var_r28 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r28) { + return; + } + } + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r29, 1.0f - (0.1f * var_r30)); + var_r27 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + lbl_1_bss_CC[var_r31->unk_00].unk_04 = 0; +} + +void fn_1_21AC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = -0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_36C[5] = { 0x38, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_23AC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = -0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + HuAudFXPlay(lbl_1_rodata_36C[arg0->unk_08]); + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_25C8(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_27C8(M459DllBssCCStruct *arg0) +{ + Vec sp8; + + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = arg0->unk_10A[1]; + sp8 = arg0->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espTPLvlSet(var_r29, 1.0f); + espDispOn(var_r29); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r29, 1.0f - (0.1f * var_r30)); + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_380[5] = { 0x38, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_2930(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + for (var_r30 = 0; var_r30 < 0xF; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.2f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + HuAudFXPlay(lbl_1_rodata_380[arg0->unk_08]); + fn_1_1778(arg0, 5, 0.0f, 8.0f, HU3D_ATTR_NONE); + for (var_r30 = 0; var_r30 < 0x8C; var_r30++) { + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_398[5] = { 0x39, 0x43, 0x46, 0x40, 0x4B }; + +void fn_1_2B24(M459DllBssCCStruct *arg0) +{ + Vec sp8; + + s16 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r30 = arg0->unk_62[11]; + sp8 = arg0->unk_0C; + sp8.y = 80.0f; + sp8.z = -50.0f; + Hu3DModelPosSet(var_r30, sp8.x, sp8.y, sp8.z); + Hu3DMotionTimeSet(var_r30, 0.0f); + Hu3DModelAttrReset(var_r30, HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 0x1E; var_r29++) { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + HuAudFXPlay(lbl_1_rodata_398[arg0->unk_08]); + fn_1_1778(arg0, 4, 0.0f, 8.0f, HU3D_ATTR_NONE); + while (Hu3DMotionEndCheck(arg0->unk_62[arg0->unk_08]) == 0) { + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + + if (arg0->unk_08 == 4) { + fn_1_189C(arg0, 0, HU3D_MOTATTR_LOOP); + } + else { + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_2F18(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r30 = 0; var_r30 < (arg0->unk_00 * 8); var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + while (TRUE) { + arg0->unk_50 = -8.0f; + fn_1_338C(arg0, 0.2f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 == var_r28) { + if (arg0->unk_0C.x < -600.0f) { + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; + break; + } + } + else { + break; + } + } +} + +void fn_1_3004(M459DllBssCCStruct *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + arg0->unk_0C.x = 600.0f; + arg0->unk_0C.z = 0.0f; + arg0->unk_0C.y = 0.0f; + var_f31 = -260.0f + (130.0f * arg0->unk_00); + for (var_r30 = 0; var_r30 < (arg0->unk_00 * 0x1E); var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } +loop_1: + arg0->unk_50 = -8.0f; + fn_1_338C(arg0, 0.2f); + if (arg0->unk_0C.x < var_f31) { + arg0->unk_0C.x = var_f31; + } + else { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + goto loop_1; + } + fn_1_1778(arg0, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 < 0xF; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.2f); + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + arg0->unk_1C = 0.0f; + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_338C(M459DllBssCCStruct *arg0, float arg8) +{ + float spC; + float var_f31; + float var_f30; + float var_f29; + s16 var_r30; + + var_r30 = 0; + arg0->unk_5C = sqrtf((arg0->unk_50 * arg0->unk_50) + (arg0->unk_58 * arg0->unk_58)); + if (0.0001f <= arg0->unk_5C) { + if (10.0f <= arg0->unk_5C) { + arg0->unk_50 /= arg0->unk_5C; + arg0->unk_58 /= arg0->unk_5C; + arg0->unk_5C = 10.0f; + arg0->unk_50 = 10.0f * arg0->unk_50; + arg0->unk_58 = 10.0f * arg0->unk_58; + } + arg0->unk_1C = fn_1_4210(arg0->unk_1C, atan2d(arg0->unk_50, arg0->unk_58), arg8); + if (8.0f <= arg0->unk_5C) { + var_r30 = 2; + } + else { + var_r30 = 1; + } + } + arg0->unk_0C.x += arg0->unk_50; + arg0->unk_0C.z += arg0->unk_58; + if (arg0->unk_60 != var_r30) { + fn_1_1778(arg0, var_r30, 0.0f, 4.0f, HU3D_MOTATTR_LOOP); + } + arg0->unk_50 = 0.0f; + arg0->unk_58 = 0.0f; +} + +void fn_1_3700(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.4f); + var_r25 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r25) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.4f); + var_r24 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r24) { + return; + } + } + } + fn_1_1778(arg0, 4, 0.0f, 8.0f, HU3D_ATTR_NONE); + while (Hu3DMotionEndCheck(arg0->unk_62[arg0->unk_08]) == 0) { + var_r23 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r23) { + return; + } + } + if (arg0->unk_08 == 4) { + fn_1_189C(arg0, 0, HU3D_MOTATTR_LOOP); + } + else { + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_4160(M459DllBssCCStruct *arg0) +{ + Hu3DModelPosSet(arg0->unk_62[arg0->unk_08], arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + Hu3DModelPosSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + Hu3DModelRotSet(arg0->unk_62[arg0->unk_08], arg0->unk_18, arg0->unk_1C, arg0->unk_20); + Hu3DModelRotSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_18, arg0->unk_1C, arg0->unk_20); +} + +float fn_1_4210(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg9 - arg8, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg8 + (var_f31 * argA), 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_4314(s32 arg0, u32 arg1) +{ + M459DllBssCCStruct *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_CC[arg0]; + var_r31->unk_08 = arg1; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + if (var_r30 != var_r31->unk_08) { + Hu3DModelAttrSet(var_r31->unk_62[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_62[var_r30 + 5], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(var_r31->unk_62[var_r30], 0.0f, 0.0f, -1000.0f); + Hu3DModelPosSet(var_r31->unk_62[var_r30 + 5], 0.0f, 0.0f, -1000.0f); + } + Hu3DModelAttrReset(var_r31->unk_62[var_r31->unk_08], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_62[var_r31->unk_08 + 5], HU3D_ATTR_DISPOFF); + fn_1_1778(var_r31, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); +} + +void fn_1_4530(void) +{ + s32 var_r31; + + HuPrcSleep(0x3C); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 1; + } + while (lbl_1_bss_CC->unk_04 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_0 = HuAudSeqPlay(0x43); + fn_1_4F8C(0); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_45EC(void) +{ + s32 var_r31; + s32 var_r30; + s16 var_r29; + s32 var_r28; + + HuAudSeqFadeOut(lbl_1_bss_0, 0x64); + HuAudFXPlay(0x814); + var_r28 = fn_1_5300(); + if (fn_1_52F0() > var_r28) { + fn_1_4F8C(1); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + var_r30 = fn_1_52F0(); + GWMGRecordSet(0xB, var_r30); + var_r29 = MGSeqCreate(0xE, var_r30); + HuAudFXPlay(0x26); + fn_1_5310(); + while (MGSeqStatGet(var_r29) != 0) { + HuPrcVSleep(); + } + } + else { + fn_1_4F8C(1); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + } + HuAudSStreamPlay(3); + if (fn_1_52F0() >= 0x63) { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xD; + } + while (lbl_1_bss_CC[var_r31].unk_04 == 0xD) { + HuPrcVSleep(); + } + } + HuPrcSleep(0xD2); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4764(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 1; + } + while (lbl_1_bss_CC->unk_04 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_47E4(void) +{ + HuPrcSleep(0x1E); + HuAudFXPlay(0x30D); + lbl_1_bss_18.unk_00 = 3; + while (lbl_1_bss_18.unk_00 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4850(void) +{ + HuAudFXPlay(9); + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 9; + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 9) { + HuPrcVSleep(); + } + HuPrcSleep(8); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_48E4(void) +{ + s32 var_r31; + + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 7; + HuPrcSleep(0x1E); + lbl_1_bss_CC[lbl_1_bss_10].unk_04 = 8; + HuPrcSleep(0x50); + lbl_1_bss_C = lbl_1_bss_10; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if ((var_r31 != lbl_1_bss_10) && (var_r31 != lbl_1_bss_14)) { + lbl_1_bss_CC[var_r31].unk_04 = 6; + } + } + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 7) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 5; + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 5) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4A74(void) +{ + s32 var_r31; + + lbl_1_bss_CC[lbl_1_bss_10].unk_04 = 8; + HuPrcSleep(0x6E); + lbl_1_bss_C = lbl_1_bss_10; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_10) { + lbl_1_bss_CC[var_r31].unk_04 = 5; + } + } + while (lbl_1_bss_CC[lbl_1_bss_10].unk_04 != 8) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4B68(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xB; + } + while (TRUE) { + var_r30 = 0; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (lbl_1_bss_CC[var_r31].unk_04 != 0) { + var_r30++; + } + } + if (var_r30 != 0) { + HuPrcVSleep(); + } + else { + break; + } + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4C1C(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xA; + } + while (TRUE) { + var_r30 = 0; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (lbl_1_bss_CC[var_r31].unk_04 != 0) { + var_r30++; + } + } + if (var_r30 != 0) { + HuPrcVSleep(); + } + else { + break; + } + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4CD0(void) +{ + M459DllBss70Struct *var_r31; + + var_r31 = &lbl_1_bss_70; + var_r31->unk_00 = 0; + var_r31->unk_08 = 0; + var_r31->unk_04 = -1; + while (TRUE) { + switch (var_r31->unk_00) { + case 4: + case 0: + break; + case 1: + if (var_r31->unk_04 == -1) { + var_r31->unk_04 = MGSeqCreate(1, var_r31->unk_08 / 60, -1, -1); + } + var_r31->unk_00 = 2; + break; + case 3: + if (var_r31->unk_04 != -1) { + MGSeqParamSet(var_r31->unk_04, 2, -1); + var_r31->unk_04 = -1; + } + var_r31->unk_00 = 0; + break; + case 2: + if ((var_r31->unk_04 != -1) && (var_r31->unk_08 > 0)) { + if (--var_r31->unk_08 <= 0) { + var_r31->unk_08 = 0; + var_r31->unk_00 = 3; + } + if ((var_r31->unk_08 % 60) == 0) { + MGSeqParamSet(var_r31->unk_04, 1, var_r31->unk_08 / 60); + } + } + break; + } + HuPrcVSleep(); + } +} + +s32 fn_1_4E54(void) +{ + return lbl_1_bss_70.unk_08; +} + +void fn_1_4E64(s32 arg0) +{ + lbl_1_bss_70.unk_08 = arg0; + lbl_1_bss_70.unk_00 = 1; +} + +void fn_1_4E84(void) +{ + lbl_1_bss_70.unk_00 = 4; +} + +void fn_1_4E98(void) +{ + lbl_1_bss_70.unk_00 = 3; +} + +void fn_1_4EAC(void) +{ + M459DllBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_00 = 0; + var_r31->unk_08 = -1; + while (TRUE) { + switch (var_r31->unk_00) { + case 0: + break; + case 2: + if (var_r31->unk_08 == -1) { + switch (var_r31->unk_04) { + case 0: + var_r31->unk_08 = MGSeqCreate(3, 0); + break; + case 1: + var_r31->unk_08 = MGSeqCreate(3, 1); + break; + } + } + var_r31->unk_00 = 1; + break; + case 1: + if (MGSeqStatGet(var_r31->unk_08) == 0) { + MGSeqKill(var_r31->unk_08); + var_r31->unk_08 = -1; + var_r31->unk_00 = 0; + } + break; + } + HuPrcVSleep(); + } +} + +void fn_1_4F8C(s32 arg0) +{ + lbl_1_bss_64.unk_00 = 2; + lbl_1_bss_64.unk_04 = arg0; +} + +s32 fn_1_4FAC(void) +{ + return lbl_1_bss_64.unk_00 != 0; +} + +void fn_1_4FC8(void) +{ + float var_f31; + M459DllBss4CStruct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = &lbl_1_bss_4C; + var_r31->unk_0C = 0; + var_r31->unk_10 = (s16)GWMGRecordGet(0xB); + var_r31->unk_14 = 0; + espPosSet(var_r31->unk_00[5], 508.0f, 64.0f); + espPosSet(var_r31->unk_00[4], 488.0f, 56.0f); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + espPosSet(var_r31->unk_00[var_r30 + 2], (var_r30 * 0x10) + 0x1FC, 57.0f); + espPosSet(var_r31->unk_00[var_r30], (var_r30 * 0x10) + 0x1FC, 75.0f); + } + espTPLvlSet(var_r31->unk_00[5], 0.5f); + espPriSet(var_r31->unk_00[5], 0x65); + espPriSet(var_r31->unk_00[4], 0x64); + espPriSet(var_r31->unk_00[2], 0x64); + espPriSet(var_r31->unk_00[3], 0x64); + espPriSet(var_r31->unk_00[0], 0x64); + espPriSet(var_r31->unk_00[1], 0x64); + var_f31 = 1.0f; + while (TRUE) { + if (var_r31->unk_14 != 0) { + if (var_r28 != 0) { + var_f31 += 0.02; + var_f31 = var_f31; + if (var_f31 >= 1.2f) { + var_f31 = 1.2f; + var_r28 = 0; + } + } + else { + var_f31 -= 0.02; + var_f31 = var_f31; + if (var_f31 <= 1.0f) { + var_f31 = 1.0f; + var_r28 = 1; + } + } + espScaleSet(var_r31->unk_00[4], var_f31, var_f31); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + espScaleSet(var_r31->unk_00[var_r30 + 2], var_f31, var_f31); + } + } + var_r29 = var_r31->unk_0C; + espBankSet(var_r31->unk_00[0], var_r29 / 10); + var_r29 = var_r29 % 10; + espBankSet(var_r31->unk_00[1], var_r29); + var_r29 = var_r31->unk_10; + espBankSet(var_r31->unk_00[2], var_r29 / 10); + var_r29 = var_r29 % 10; + espBankSet(var_r31->unk_00[3], var_r29); + HuPrcVSleep(); + } +} + +void fn_1_52D8(s32 arg0) +{ + lbl_1_bss_4C.unk_0C += arg0; +} + +s32 fn_1_52F0(void) +{ + return lbl_1_bss_4C.unk_0C; +} + +s32 fn_1_5300(void) +{ + return lbl_1_bss_4C.unk_10; +} + +s32 fn_1_5310(void) +{ + if (lbl_1_bss_4C.unk_10 < lbl_1_bss_4C.unk_0C) { + lbl_1_bss_4C.unk_10 = lbl_1_bss_4C.unk_0C; + lbl_1_bss_4C.unk_14 = 1; + } +} + +M459DllData70Struct lbl_1_data_70 = { { 0.0f, 300.0f, 0.0f }, { 0.0f, -300.0f, -600.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }; + +void fn_1_535C(void) +{ + LightData *sp8; + s16 *var_r31; + + var_r31 = lbl_1_bss_48; + Hu3DLighInit(); + var_r31[1] = Hu3DGLightCreateV(&lbl_1_data_70.unk_00, &lbl_1_data_70.unk_0C, &lbl_1_data_70.unk_18); + Hu3DGLightInfinitytSet(var_r31[1]); + sp8 = &Hu3DGlobalLight[var_r31[1]]; + { + Vec sp24 = { 0.0f, 3000.0f, 1.0f }; + Vec sp18 = { 0.0f, 1.0f, 0.0f }; + Vec spC = { 0.0f, 0.0f, 0.0f }; + Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); + Hu3DShadowTPLvlSet(0.45f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowTPLvlSet(0.3f); + Hu3DModelAttrSet(var_r31[0], HU3D_MOTATTR_LOOP); + while (TRUE) { + HuPrcVSleep(); + } +} + +static const s32 lbl_1_rodata_458[6][3]; + +void fn_1_5490(void) +{ + M459DllBss18Struct *var_r31; + + var_r31 = &lbl_1_bss_18; + var_r31->unk_00 = 0; + var_r31->unk_24[0] = GWPlayerCfg->pad_idx; + var_r31->unk_24[1] = GWPlayerCfg->character; + var_r31->unk_28 = GWPlayerCfg->iscom; + var_r31->unk_2C = 0x14; + lbl_1_bss_14 = 0; + lbl_1_bss_2 = var_r31->unk_24[0]; + while (TRUE) { + switch (var_r31->unk_00) { + case 0: + fn_1_556C(var_r31); + continue; + case 1: + fn_1_55B0(var_r31); + continue; + case 2: + break; + case 3: + fn_1_5A78(var_r31); + continue; + default: + continue; + } + fn_1_5E3C(var_r31); + } +} + +void fn_1_556C(M459DllBss18Struct *arg0) +{ + s32 var_r30; + + do { + var_r30 = arg0->unk_00; + HuPrcVSleep(); + } while (arg0->unk_00 == var_r30); +} + +void fn_1_55B0(M459DllBss18Struct *var_r31) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + + u8 var_r30; + s16 var_r29; + s32 var_r28; + u16 var_r27; + s32 var_r26; + M459DllBssCCStruct *var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + lbl_1_bss_14 = 0; + var_r28 = -1; + var_r29 = var_r31->unk_04[var_r31->unk_24[1]]; + espDispOn(var_r29); + var_r23 = 0; + while(1) { + var_r30 = 0; + var_r27 = 0; + if (var_r31->unk_28 != 0) { + if (var_r31->unk_2C <= 0) { + var_r20 = lbl_1_bss_70.unk_08; + if ((var_r20 > 0xB4) && (var_r23 == 0)) { + var_r24 = frandmod(0xA); + if (var_r24 >= 5) { + var_r30 |= 1; + } + else if (var_r24 > 1) { + var_r30 |= 2; + } + else { + var_r23 = 1; + } + } + else { + if (lbl_1_bss_14 > lbl_1_bss_10) { + var_r30 |= 1; + } + else if (lbl_1_bss_14 < lbl_1_bss_10) { + var_r30 |= 2; + } + if (lbl_1_bss_14 == lbl_1_bss_10) { + var_r27 |= 0x100; + } + } + var_r31->unk_2C = 0x1E; + } + else { + var_r31->unk_2C--; + } + } + else { + var_r30 = HuPadDStkRep[var_r31->unk_24[0]]; + var_r27 = HuPadBtnDown[var_r31->unk_24[0]]; + } + if (var_r28 != -1) { + if ((var_r27 & 0x100) != 0) { + HuAudFXPlay(2); + break; + } + else { + if ((var_r30 & 1) != 0) { + if (--lbl_1_bss_14 < 0) { + lbl_1_bss_14 = 4; + } + HuAudFXPlay(0); + } + else if ((var_r30 & 2) != 0) { + if (++lbl_1_bss_14 >= 5) { + lbl_1_bss_14 = 0; + } + HuAudFXPlay(0); + } + goto block_30; + } + } + else { + block_30: + if (var_r28 != lbl_1_bss_14) { + var_r25 = &lbl_1_bss_CC[lbl_1_bss_14]; + sp14 = sp20; + sp20 = var_r25->unk_0C; + sp20.y = 40.0f; + espPriSet(var_r29, 0x32); + if (var_r28 == -1) { + sp14 = sp20; + } + else { + lbl_1_bss_7C[var_r28].unk_04 = 3; + } + for (var_r26 = 0; var_r26 <= 4; var_r26++) { + var_f31 = sind((90.0f * (0.25f * var_r26))); + var_f31 *= var_f31 * var_f31; + sp8.x = sp14.x + (var_f31 * (sp20.x - sp14.x)); + sp8.y = sp14.y + (var_f31 * (sp20.y - sp14.y)); + sp8.z = sp14.z + (var_f31 * (sp20.z - sp14.z)); + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + var_r22 = var_r31->unk_00; + HuPrcVSleep(); + if (var_r31->unk_00 != var_r22) { + return; + } + } + espPosSet(var_r29, sp8.x, sp8.y); + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 1; + } + var_r28 = lbl_1_bss_14; + var_r21 = var_r31->unk_00; + HuPrcVSleep(); + if (var_r31->unk_00 != var_r21) { + return; + } + } + } + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; + espDispOff(var_r29); + lbl_1_bss_18.unk_00 = 0; +} + +void fn_1_5A78(M459DllBss18Struct *arg0) +{ + Vec sp8; + float var_f31; + + s32 var_r31; + s16 var_r29; + M459DllBssCCStruct *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r28 = &lbl_1_bss_CC[lbl_1_bss_14]; + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 4; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + var_r27 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r27) { + return; + } + } + var_r29 = arg0->unk_14[arg0->unk_24[1]]; + Hu3DModelAttrReset(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelTPLvlSet(var_r29, 1.0f); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + sp8 = var_r28->unk_0C; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + var_f31 = sind((1.5000001f * var_r31)); + sp8.y = 170.0f + (350.0f - (350.0f * var_f31)); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r26 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r26) { + return; + } + } + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { + var_f31 = sind((4.5f * var_r31)); + var_f31 = 1.0f - var_f31; + Hu3DModelScaleSet(var_r29, var_f31, var_f31, var_f31); + Hu3DModelTPLvlSet(var_r29, var_f31); + Hu3DModelRotSet(var_r29, 0.0f, 540.0f * var_f31, 0.0f); + sp8.y = 170.0f - (2.0f * var_r31); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r25 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r25) { + return; + } + } + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + lbl_1_bss_C = lbl_1_bss_14; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_14) { + lbl_1_bss_CC[var_r31].unk_04 = 5; + } + } + for (var_r31 = 0; var_r31 < 0x78; var_r31++) { + var_r24 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r24) { + return; + } + } + lbl_1_bss_18.unk_00 = 0; +} + +void fn_1_5E3C(M459DllBss18Struct *arg0) +{ + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; + espDispOff(arg0->unk_04[arg0->unk_24[1]]); + lbl_1_bss_18.unk_00 = 0; +} + +void fn_1_5EAC(void) +{ + M459DllBss7CStruct *var_r31; + s32 var_r30; + + var_r30 = (s32)HuPrcCurrentGet()->user_data; + var_r31 = &lbl_1_bss_7C[var_r30]; + var_r31->unk_00 = var_r30; + var_r31->unk_04 = 0; + while (TRUE) { + switch (var_r31->unk_04) { + case 0: + fn_1_5F40(var_r31); + break; + case 1: + fn_1_5F84(var_r31); + break; + case 2: + fn_1_6198(var_r31); + break; + case 3: + fn_1_6458(var_r31); + break; + } + + } +} + +void fn_1_5F40(M459DllBss7CStruct *arg0) +{ + s32 var_r30; + + do { + var_r30 = arg0->unk_04; + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +void fn_1_5F84(M459DllBss7CStruct *arg0) +{ + Vec sp8; + float var_f31; + + M459DllBssCCStruct *var_r27; + s16 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r26; + + var_r29 = arg0->unk_0C[1]; + var_r30 = arg0->unk_0C[0]; + var_r27 = &lbl_1_bss_CC[arg0->unk_00]; + sp8 = var_r27->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espPosSet(var_r30, sp8.x, sp8.y); + espScaleSet(var_r30, 0.0f, 0.0f); + espPriSet(var_r29, 0x32); + espPriSet(var_r30, 0x31); + if (lbl_1_bss_8 == 0) { + espScaleSet(var_r29, 1.0f, 1.0f); + espScaleSet(var_r30, 0.5f, 0.5f); + espDispOn(var_r29); + espDispOn(var_r30); + } + var_f31 = 0.0f; + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + espTPLvlSet(var_r29, var_f31); + espTPLvlSet(var_r30, var_f31); + var_f31 = 0.08f * var_r28; + var_r26 = arg0->unk_04; + HuPrcVSleep(); + if (arg0->unk_04 != var_r26) { + return; + } + } + espTPLvlSet(var_r29, 0.8f); + espTPLvlSet(var_r30, 0.8f); + lbl_1_bss_7C[arg0->unk_00].unk_04 = 2; +} + +static const s32 lbl_1_rodata_458[6][3] = { + { 0, 0xF, 0xF }, + { 1, 0xA, 0xA }, + { 1, 0x14, 5 }, + { 2, 0x14, 0xA }, + { 2, 5, 0xA }, + { 0x3F000000, 0x3F000000, 0x3F000000 }, +}; + +void fn_1_6198(M459DllBss7CStruct *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r28 = var_r31->unk_0C[0]; + var_r27 = lbl_1_rodata_458[var_r31->unk_08][0]; + var_r29 = lbl_1_rodata_458[var_r31->unk_08][1]; + var_r26 = lbl_1_rodata_458[var_r31->unk_08][2]; + while (TRUE) { + if (lbl_1_bss_8 != 0) { + switch (var_r27) { + case 0: + omVibrate(0, var_r29, 6, 6); + break; + case 1: + omVibrate(0, var_r29, 4, 2); + break; + case 2: + omVibrate(0, var_r29, 0xC, 0); + break; + } + } + switch (var_r27) { + case 0: + var_f30 = 0.4f; + break; + case 1: + var_f30 = 0.55f; + break; + case 2: + var_f30 = 0.7f; + break; + } + for (var_r30 = 0; var_r30 < var_r29; var_r30++) { + var_f31 = var_r30 * (var_f30 * (1.0f / var_r29)); + var_f31 += 0.5f; + espScaleSet(var_r28, var_f31, var_f31); + var_r25 = var_r31->unk_04; + HuPrcVSleep(); + if (var_r31->unk_04 != var_r25) { + return; + } + } + + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + var_f31 = var_f30 - (var_r30 * (var_f30 * (1.0f / var_r26))); + var_f31 += 0.5f; + espScaleSet(var_r28, var_f31, var_f31); + var_r24 = var_r31->unk_04; + HuPrcVSleep(); + if (var_r31->unk_04 != var_r24) { + return; + } + } + } +} + +void fn_1_6458(M459DllBss7CStruct *arg0) +{ + float var_f31; + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + + var_r29 = arg0->unk_0C[1]; + var_r28 = arg0->unk_0C[0]; + if (lbl_1_bss_8 != 0) { + HuPadRumbleStop(lbl_1_bss_2); + } + var_f31 = 0.8f; + for (var_r30 = 0; var_r30 < 0xA; var_r30++) { + espTPLvlSet(var_r29, var_f31); + espTPLvlSet(var_r28, var_f31); + var_f31 = 0.8f - (0.08f * var_r30); + var_r27 = arg0->unk_04; + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + espDispOff(var_r28); + lbl_1_bss_7C[arg0->unk_00].unk_04 = 0; +} diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c new file mode 100644 index 00000000..52ca989b --- /dev/null +++ b/src/REL/m460Dll/main.c @@ -0,0 +1,1015 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M460DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 unk_20; + u32 unk_24; + s32 unk_28; + u32 unk_2C; + s32 unk_30; + char unk34[0x4]; + u32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + u32 unk_50; + s32 unk_54[4]; + s32 unk_64[4]; + s32 unk_74; + s32 unk_78; + s32 unk_7C; + s32 unk_80; + char unk84[4]; + s32 unk_88; + u32 unk_8C; + u32 unk_90; + s32 unk_94; +} M460DllWork; /* size = 0x98 */ + +void fn_1_11EC(omObjData *object); +void fn_1_1548(omObjData *object); +void fn_1_197C(omObjData *object); +void fn_1_201C(omObjData *object); +omObjFunc fn_1_24F4(Process *arg1, omObjData *object); +void fn_1_2564(omObjData *object); +omObjFunc fn_1_2D64(Process *process, omObjData *object); +void fn_1_2D70(omObjData *object); +void fn_1_32CC(Process *process); +void fn_1_337C(omObjData *object); +void fn_1_35F0(omObjData *object); +void fn_1_3618(omObjData *object); +void fn_1_3BC0(ModelData *model, Mtx mtx); +M460DllCameraStruct *fn_1_3E90(s32 arg0); +M460DllCameraStruct *fn_1_3F2C(s32 arg0); +void fn_1_42BC(u32 arg0); +s32 fn_1_4358(void); +void fn_1_4C8(omObjData *object); +void fn_1_7FC(omObjData *object); +void fn_1_948(omObjData *object); +void fn_1_D7C(omObjData *object); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C[3] = { + { 0.0f, 442.0f, -927.00006f }, + { 0.0f, 442.0f, -927.00006f }, + { 0.0f, 325.0f, -600.0f }, +}; +Vec lbl_1_data_70[3] = { + { 4.5f, 0.0f, 450.0f }, + { 4.5f, 0.0f, 450.0f }, + { 9.75f, 0.0f, 1275.0f }, +}; +float lbl_1_data_94[3] = { 70.0f, 70.0f, 41.5f }; +float lbl_1_data_A0[3] = { 0.0f, 0.016666668f, 0.0f }; +s32 lbl_1_data_AC[3] = { -0x3C, 0x3C, 0 }; +GXColor lbl_1_data_B8 = { 0, 0, 0, 0 }; + +Process *lbl_1_bss_30; +// M460DllWork2 +omObjData *lbl_1_bss_2C; +omObjData *lbl_1_bss_28; +// M460DllWork2 +omObjData *lbl_1_bss_24; +s16 lbl_1_bss_20; +s16 lbl_1_bss_1A[3]; +s16 lbl_1_bss_18; +s16 lbl_1_bss_16; +s16 lbl_1_bss_14; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Mtx sp2C; + Process *var_r31; + LightData *var_r30; + + Vec sp20 = { 0.0f, 0.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, -1.0f }; + Vec sp8; + + lbl_1_bss_C = 0; + HuAudSndGrpSet(0x53); + HuAudFXListnerSetEX(&sp20, &sp14, 10000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); + lbl_1_bss_8 = lbl_1_bss_4 = -1; + lbl_1_bss_20 = -1; + lbl_1_bss_0 = 1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_1A[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_1A[0]); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_1A[0]]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 160.0f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 4200.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); + Hu3DGLightPosAimSetV(lbl_1_bss_1A[0], &lbl_1_data_28, &lbl_1_data_40); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_18 = lbl_1_bss_16 = lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_30 = var_r31; + omGameSysInit(var_r31); + fn_1_32CC(var_r31); + lbl_1_bss_2C = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_4C8); + fn_1_67B4(var_r31); + fn_1_49A0(var_r31); +} + +void fn_1_4C8(omObjData *var_r30) +{ + M460DllWork *work; + + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M460DllWork), MEMORY_DEFAULT_NUM); + work = var_r30->data; + memset(work, 0, sizeof(M460DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_4C = 0; + work->unk_50 = 0; + work->unk_08 = 0; + work->unk_88 = 0; + work->unk_74 = work->unk_78 = work->unk_7C = work->unk_80 = -1; + work->unk_8C = 0; + work->unk_94 = 0; + work->unk_30 = 0; + work->unk_30 = GWMGRecordGet(0xC); + work->unk_28 = (work->unk_30 >> 0x10) & 0xFF; + work->unk_24 = (work->unk_30 >> 0x18) & 0xFF; + work->unk_30 = (u16)work->unk_30; + fn_1_8CAC(lbl_1_bss_30, work->unk_30); + var_r30->func = fn_1_948; +} + +void fn_1_5F0(omObjData *var_r29) +{ + Vec sp14; + Vec sp8; + M460DllCameraStruct *var_r31; + M460DllWork *work; + + work = var_r29->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_50++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_7FC(var_r29); + } + var_r31 = fn_1_3F2C(1); + sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp8.y = -(-sind(var_r31->unk_28.x)); + sp8.z = -(cosd(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp14.x = var_r31->unk_1C.x - (sp8.x * var_r31->unk_34); + sp14.y = var_r31->unk_1C.y - (sp8.y * var_r31->unk_34); + sp14.z = var_r31->unk_1C.z - (sp8.z * var_r31->unk_34); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_7FC(omObjData *object) +{ + M460DllWork *work = object->data; + + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_0 = 1; + fn_1_8FAC(0); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_24F4(lbl_1_bss_30, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1548; + break; + case 2: + work->unk_00 = 3; + work->unk_50 = 0; + object->func = fn_1_2D64(lbl_1_bss_30, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_D7C; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_11EC; + } + work->unk_04 = 0; + } +} + +void fn_1_948(omObjData *object) +{ + fn_1_5F0(object); + fn_1_7FC(object); +} + +void fn_1_D7C(omObjData *object) +{ + M460DllWork *work = object->data; + fn_1_5F0(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + work->unk_08 = 0; + fn_1_7FC(object); + } +} + +void fn_1_11EC(omObjData *object) +{ + fn_1_5F0(object); + if (WipeStatGet() == 0) { + fn_1_4BE4(); + fn_1_6814(); + fn_1_8F38(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1548(omObjData *object) +{ + M460DllWork *work = object->data; + fn_1_5F0(object); + switch (work->unk_14) { + case 0: + work->unk_1C = 0x3C; + work->unk_20 = 0x3C; + lbl_1_bss_18 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_18, 320.0f, 240.0f); + work->unk_14 = 1; + work->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_8 < 0) && ((MGSeqStatGet(lbl_1_bss_18) & 0x10) != 0)) { + lbl_1_bss_8 = HuAudSeqPlay(0x49); + } + if (MGSeqStatGet(lbl_1_bss_18) == 0) { + work->unk_2C = 0; + work->unk_44 = 0; + if (work->unk_08 == 0) { + work->unk_18 = 0; + object->func = fn_1_197C; + } + } + break; + } +} + +void fn_1_197C(omObjData *object) +{ + M460DllWork *work = object->data; + s32 var_r26 = 0; + s32 sp8 = 0; + fn_1_5F0(object); + switch (work->unk_14) { + case 1: + if (WipeStatGet() == 0) { + work->unk_38 = 3; + work->unk_3C = 0; + work->unk_40 = 0; + work->unk_1C = 0x3C; + work->unk_20 = 0x3C; + work->unk_14 = 2; + work->unk_18 = 0; + } + break; + case 2: + if (work->unk_38 == 3) { + if ((--work->unk_20) == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C == 0) { + work->unk_44 = 1; + fn_1_42BC(frandmod(2)); + } + } + if ((lbl_1_bss_16 < 0) && (work->unk_1C < 0xA)) { + lbl_1_bss_16 = MGSeqCreate(1, work->unk_1C, -1, -1); + } + MGSeqParamSet(lbl_1_bss_16, 1, work->unk_1C); + } + else { + if (lbl_1_bss_16 >= 0) { + MGSeqParamSet(lbl_1_bss_16, 2, -1); + lbl_1_bss_16 = -1; + } + if (frandmod(0x3E8) < 0x1F4) { + work->unk_44 = 1; + } + if (work->unk_2C >= 0x1E) { + work->unk_44 = 1; + } + if (work->unk_44 != 0) { + work->unk_44 = 1; + work->unk_88 = 1; + } + work->unk_14 = 3; + work->unk_18 = 0; + } + break; + case 3: + if (fn_1_4358() != 0) { + if (work->unk_44 != 0) { + var_r26 = 1; + } + else if (work->unk_18 > 60.0f) { + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); + WipeColorSet(0, 0, 0); + } + work->unk_14 = 4; + work->unk_18 = 0; + } + } + else { + work->unk_18 = 0; + } + break; + case 4: + if (WipeStatGet() == 0) { + work->unk_2C++; + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x1E); + } + work->unk_14 = 1; + work->unk_18 = 0; + } + break; + } + if (var_r26 != 0) { + lbl_1_bss_14 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_bss_8, 0x64); + work->unk_24++; + if (work->unk_24 > 0xFF) { + work->unk_24 = 0xFF; + } + if (work->unk_2C > work->unk_30) { + work->unk_28 = work->unk_24; + work->unk_30 = work->unk_2C; + work->unk_48 = 1; + GWMGRecordSet(0xC, work->unk_30); + } + mgRecordExtra = work->unk_2C; + work->unk_14 = 5; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_201C; + } + } +} + +void fn_1_201C(omObjData *object) +{ + M460DllWork *work = object->data; + + if (lbl_1_bss_16 >= 0) { + MGSeqParamSet(lbl_1_bss_16, 2, -1); + lbl_1_bss_16 = -1; + } + fn_1_5F0(object); + if (MGSeqStatGet(lbl_1_bss_14) == 0) { + if (work->unk_48 != 0) { + fn_1_8FAC(1); + lbl_1_bss_12 = MGSeqCreate(0xE, work->unk_30); + work->unk_48 = 0; + } + work->unk_14 = 6; + work->unk_18 = 0; + fn_1_7FC(object); + } +} + +omObjFunc fn_1_24F4(Process *process, omObjData *object) +{ + M460DllCameraStruct *var_r31; + + object->work[0] = object->work[1] = 0; + fn_1_3E68(1); + var_r31 = fn_1_3E90(1); + var_r31->unk_84 = 1.0f; + var_r31->unk_94 = 0; + return fn_1_2564; +} + +void fn_1_2564(omObjData *object) +{ + Vec sp20; + M460DllCameraStruct *var_r26; + M460DllWork *work; + s32 var_r24; + float var_f31; + + work = object->data; + fn_1_5F0(object); + object->work[0]++; + var_f31 = lbl_1_data_AC[object->work[1]]; + var_r24 = 1; + if (var_f31 < 0.0f) { + var_r24 = 0; + var_f31 *= -1.0f; + } + var_f31 = object->work[0] / var_f31; + VECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + Center.x = sp20.x; + Center.y = sp20.y; + Center.z = sp20.z; + VECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + CRot.x = sp20.x; + CRot.y = sp20.y; + CRot.z = 0.0f; + CZoom = sp20.z; + var_r26 = fn_1_3E90(1); + var_r26->unk_1C = Center; + var_r26->unk_28 = CRot; + var_r26->unk_34 = CZoom; + var_r26->unk_10 = lbl_1_data_94[object->work[1]] + (var_f31 * (lbl_1_data_94[object->work[1] + var_r24] - lbl_1_data_94[object->work[1]])); + if (var_f31 >= 1.0f) { + object->work[0] = 0; + object->work[1]++; + if (lbl_1_data_A0[object->work[1]] > 0.0f) { + fn_1_8BA0(lbl_1_data_A0[object->work[1]]); + } + if (lbl_1_data_AC[object->work[1]] == 0) { + work->unk_0C = 2; + fn_1_7FC(object); + } + else if (lbl_1_data_AC[object->work[1] + 1] == 0) { + work->unk_0C = 1; + } + } +} + +omObjFunc fn_1_2D64(Process *process, omObjData *object) +{ + return fn_1_2D70; +} + +void fn_1_2D70(omObjData *object) +{ + M460DllWork *work = object->data; + s32 var_r23 = 1; + fn_1_5F0(object); + if (lbl_1_bss_12 >= 0) { + if (MGSeqStatGet(lbl_1_bss_12) != 0) { + var_r23 = 0; + } + else { + lbl_1_bss_12 = -1; + } + } + if (work->unk_8C != 1) { + var_r23 = 0; + } + if (var_r23 != 0) { + work->unk_4C = 1; + if (lbl_1_bss_4 < 0) { + lbl_1_bss_4 = HuAudSStreamPlay(4); + } + if (work->unk_50 >= 210.0f) { + work->unk_4C = 2; + fn_1_7FC(object); + } + } + else { + work->unk_50 = 0; + } +} + +void fn_1_32CC(Process *process) +{ + Hu3DCameraCreate(0x1F); + lbl_1_bss_28 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_28->work[0] = 5; + lbl_1_bss_24 = omAddObjEx(process, 0xC, 1, 0, -1, fn_1_337C); + lbl_1_bss_24->work[0] = 0; +} + +void fn_1_337C(omObjData *object) +{ + UnkM460DllStruct sp1C[5] = { + { 320.0f, 240.0f, 640.0f, 480.0f }, + { 160.0f, 120.0f, 320.0f, 240.0f }, + { 160.0f, 360.0f, 320.0f, 240.0f }, + { 480.0f, 120.0f, 320.0f, 240.0f }, + { 480.0f, 360.0f, 320.0f, 240.0f }, + }; + s32 sp8[5] = { 1, 2, 4, 8, 16 }; + M460DllCameraStruct *var_r31; + s32 var_r29; + M460DllCameraStruct *var_r28; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M460DllCameraStruct), MEMORY_DEFAULT_NUM); + var_r28 = object->data; + memset(var_r28, 0, 10 * sizeof(M460DllCameraStruct)); + object->model[0] = Hu3DHookFuncCreate(fn_1_3BC0); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelCameraSet(object->model[0], 0x1E); + for (var_r31 = var_r28, var_r29 = 0; var_r29 < 5; var_r29++, var_r31++) { + var_r31->unk_00 = 0; + var_r31->unk_04 = var_r29 * 0x64; + var_r31->unk_10 = 41.5f; + var_r31->unk_14 = 100.0f; + var_r31->unk_18 = 5500.0f; + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 0.0f; + var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.x = -15.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_34 = 1000.0f; + var_r31->unk_40 = 1.0f; + var_r31->unk_44.unk_00 = sp1C[var_r29].unk_00; + var_r31->unk_44.unk_04 = sp1C[var_r29].unk_04; + var_r31->unk_44.unk_08 = sp1C[var_r29].unk_08; + var_r31->unk_44.unk_0C = sp1C[var_r29].unk_0C; + var_r31->unk_3C = var_r31->unk_0C = sp8[var_r29]; + var_r31->unk_08 = var_r29; + var_r31->unk_38 = var_r29; + } + var_r31 = var_r28; + var_r31->unk_00 = 1; + object->work[1] = object->work[2] = 0; + object->work[0]++; + fn_1_3618(object); + object->func = fn_1_35F0; +} + +void fn_1_35F0(omObjData *object) +{ + fn_1_3618(object); +} + +void fn_1_3618(omObjData *var_r28) +{ + float var_f31; + M460DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M460DllCameraStruct *var_r27; + u32 var_r26; + u32 var_r25; + s32 var_r24; + u32 var_r23; + u32 var_r22; + u32 var_r21; + + var_r27 = var_r28->data; + { + s32 sp40[4] = { 2, 4, 8, 16 }; + u32 sp30[4]; + s32 sp20[4]; + float sp10[4]; + float sp8[2]; + var_r24 = 0; + var_r26 = 0; + memcpy(&var_r27[5], var_r27, 5 * sizeof(M460DllCameraStruct)); + var_r28->work[1] = var_r28->work[2]; + switch (var_r28->work[1]) { + case 0: + break; + case 1: + var_r26 |= 1; + break; + case 2: + var_r26 |= 1; + case 3: + var_r24 = 1; + case 4: + var_r26 |= 0x1E; + break; + } + if (var_r24 != 0) { + Hu3DModelAttrReset(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp30[var_r30] = var_r27[var_r30 + 6].unk_04; + sp20[var_r30] = var_r30; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + if ((var_r30 != var_r29) && (sp30[var_r30] > sp30[var_r29])) { + var_r25 = sp30[var_r30]; + sp30[var_r30] = sp30[var_r29]; + sp30[var_r29] = var_r25; + var_r25 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_r25; + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27[sp20[var_r30] + 6].unk_3C = sp40[var_r30]; + var_r27[sp20[var_r30] + 6].unk_38 = var_r30 + 1; + } + + for (var_r31 = &var_r27[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_00 == 0) || ((var_r26 & var_r31->unk_0C) == 0)) { + Hu3DCamera[var_r31->unk_38].fov = -1.0f; + } + else { + var_f31 = 1.2f * ((var_r31->unk_44.unk_08 / 640.0f) / (var_r31->unk_44.unk_0C / 480.0f)); + sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; + sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; + Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); + Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], + sp10[3], 0.0f, 1.0f); + sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); + sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); + sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); + sp8[1] = var_r31->unk_44.unk_04 + (0.5f * sp10[3]); + if (sp10[0] < 0.0f) { + sp10[0] = 0.0f; + } + if (sp10[1] < 0.0f) { + sp10[1] = 0.0f; + } + if (sp8[0] > 640.0f) { + sp8[0] = 640.0f; + } + if (sp8[1] > 480.0f) { + sp8[1] = 480.0f; + } + sp8[0] -= sp10[0]; + sp8[1] -= sp10[1]; + var_r21 = sp8[1]; + var_r22 = sp8[0]; + var_r23 = sp10[1]; + Hu3DCameraScissorSet(var_r31->unk_3C, sp10[0], var_r23, var_r22, var_r21); + var_r29 = var_r31->unk_38; + CenterM[var_r29].x = var_r31->unk_1C.x; + CenterM[var_r29].y = var_r31->unk_1C.y; + CenterM[var_r29].z = var_r31->unk_1C.z; + CRotM[var_r29].x = var_r31->unk_28.x; + CRotM[var_r29].y = var_r31->unk_28.y; + CRotM[var_r29].z = var_r31->unk_28.z; + CZoomM[var_r29] = var_r31->unk_34; + } + } + } +} + +void fn_1_3BC0(ModelData *model, Mtx mtx) +{ + Mtx sp3C; + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + + DCStoreRange(&lbl_1_data_B8, 4); + C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f); + GXSetProjection(spC, GX_PERSPECTIVE); + MTXIdentity(sp3C); + GXLoadPosMtxImm(sp3C, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_B8); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 2530.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_3E68(u32 arg0) +{ + lbl_1_bss_24->work[2] = arg0; +} + +u32 fn_1_3E7C(void) +{ + return lbl_1_bss_24->work[1]; +} + +M460DllCameraStruct *fn_1_3E90(s32 arg0) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + M460DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_24->data; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M460:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M460DllCameraStruct *fn_1_3F2C(s32 arg0) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + M460DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_24->data; + for (var_r31 = &var_r29[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M460:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M460DllCameraStruct *fn_1_3FC8(u32 arg0) +{ + M460DllCameraStruct *var_r31 = lbl_1_bss_24->data; + if (arg0 >= 5) { + OSReport("M460:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0]; +} + +M460DllCameraStruct *fn_1_4030(u32 arg0) +{ + M460DllCameraStruct *var_r31 = lbl_1_bss_24->data; + if (arg0 >= 5) { + OSReport("M460:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0 + 5]; +} + +void fn_1_409C(s32 arg0, s32 arg1) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M460DllCameraStruct *var_r28; + M460DllCameraStruct *var_r27; + + var_r29 = 0; + if (arg0 >= 0) { + var_r27 = lbl_1_bss_24->data; + var_r28 = &var_r27[5]; + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg1) != 0) { + var_r29 |= var_r31->unk_3C; + } + } + Hu3DModelCameraSet(arg0, var_r29); + } +} + +s32 fn_1_4134(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_00; +} + +u32 fn_1_414C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_0C; +} + +u32 fn_1_4164(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_14; +} + +s32 fn_1_417C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_4C; +} + +s32 fn_1_4194(void) +{ + return 1; +} + +s32 fn_1_419C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_88; +} + +void fn_1_41B4(s32 arg0, s32 arg1, s32 arg2) +{ + M460DllWork *work = lbl_1_bss_2C->data; + work->unk_64[arg0 &= 3] = arg1; + work->unk_54[arg0] = arg2; +} + +void fn_1_41F4(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_8C |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_4224(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_90 |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_4254(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_94 |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_4284(void) +{ + return MGSeqStatGet(lbl_1_bss_14) == 0; +} + +void fn_1_42BC(u32 arg0) +{ + M460DllWork *work = lbl_1_bss_2C->data; + if (work->unk_38 == 3) { + work->unk_38 = arg0; + } +} + +s32 fn_1_42F0(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_38; +} + +void fn_1_4308(void) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_3C = 1; +} + +s32 fn_1_4324(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_3C; +} + +void fn_1_433C(void) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_40 = 1; +} + +s32 fn_1_4358(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_40; +} + +u32 fn_1_4370(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_2C; +} + +void fn_1_4388(Vec *sp8, Vec *var_r31) +{ + Vec sp10; + float var_f30; + float var_f29; + + VECSubtract(var_r31, sp8, &sp10); + Center = *var_r31; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = VECMag(&sp10); +} + +void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + VECSubtract(&sp30, &sp3C, &sp24); + Center = sp30; + CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); + CRot.y = atan2d(-sp24.x, -sp24.z); + CRot.z = 0.0f; + CZoom = VECMag(&sp24); +} + +float fn_1_47D0(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_48EC(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c new file mode 100644 index 00000000..15fa7f53 --- /dev/null +++ b/src/REL/m460Dll/map.c @@ -0,0 +1,547 @@ +#include "datadir_enum.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct UnkM460MapWork { + s32 unk_00; + u32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + char unk20[4]; + u32 unk_24; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + float unk_34; + float unk_38; + Vec unk_3C; + Vec unk_48; + HsfObject *unk_54; + u32 unk_58; + void *unk_5C; +} UnkM460MapWork; /* size = 0x60 */ + +void fn_1_6818(omObjData *object); +void fn_1_6C00(omObjData *object); +void fn_1_73F8(omObjData *object); +u32 fn_1_76C4(u32 arg0, u32 arg1); +void fn_1_7724(ModelData *model, Mtx mtx); +void fn_1_7790(ModelData *model, Mtx mtx); +void fn_1_7B94(s32 arg0); +void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2); + +float lbl_1_data_1E8[8][8] = { + { 0.0f, 325.0f, -387.0f, -8.25f, 15.0f, 0.0f, 1208.0f, 38.65f }, + { 0.0f, 325.0f, -387.0f, -8.25f, -15.0f, 0.0f, 1208.0f, 38.65f }, + { 0.0f, 325.0f, -700.0f, -45.0f, 18.0f, 0.0f, 1500.0f, 41.5f }, + { 0.0f, 325.0f, -700.0f, -45.0f, 0.0f, 0.0f, 1500.0f, 41.5f }, + { 0.0f, 325.0f, -700.0f, -45.0f, -18.0f, 0.0f, 925.0f, 68.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, 28.5f, 0.0f, 833.0f, 61.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, 0.0f, 0.0f, 833.0f, 61.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, -28.5f, 0.0f, 833.0f, 61.0f }, +}; +float lbl_1_data_2E8[2][8] = { + { -250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f }, + { 250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f }, +}; +s32 lbl_1_data_328[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x00), DATA_MAKE_NUM(DATADIR_M460, 0x01), DATA_MAKE_NUM(DATADIR_M460, 0x02) }; +s32 lbl_1_data_334[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x03), DATA_MAKE_NUM(DATADIR_M460, 0x04), DATA_MAKE_NUM(DATADIR_M460, 0x05) }; +s32 lbl_1_data_340[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x06), DATA_MAKE_NUM(DATADIR_M460, 0x07), DATA_MAKE_NUM(DATADIR_M460, 0x08) }; +s32 lbl_1_data_34C[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x09), DATA_MAKE_NUM(DATADIR_M460, 0x0A) }; +s32 lbl_1_data_354[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x0B), DATA_MAKE_NUM(DATADIR_M460, 0x0C) }; + +// UnkM460MapWork +omObjData *lbl_1_bss_48; + +void fn_1_67B4(Process *process) +{ + omObjData *var_r31 = omAddObjEx(process, 0x1E, 0x10, 0, -1, fn_1_6818); + lbl_1_bss_48 = var_r31; + var_r31->work[0] = 0; +} + +void fn_1_6814(void) { } + +void fn_1_6818(omObjData *object) +{ + s32 var_r31; + s32 var_r30; + UnkM460MapWork *var_r28; + HsfanimStruct01 *var_r27; + + var_r28 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460MapWork), MEMORY_DEFAULT_NUM); + memset(var_r28, 0, sizeof(UnkM460MapWork)); + omSetTra(object, 0.0f, 0.0f, 0.0f); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_328[var_r31]); + object->model[var_r31] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_334[var_r31]); + object->model[var_r31 + 3] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_340[var_r31]); + object->model[var_r31 + 6] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_34C[var_r31]); + object->model[var_r31 + 9] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_354[var_r31]); + object->model[var_r31 + 0xB] = var_r30; + Hu3DModelLayerSet(var_r30, 3); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + var_r28->unk_08 = 8; + fn_1_73F8(object); + var_r30 = Hu3DHookFuncCreate(fn_1_7724); + object->model[13] = var_r30; + Hu3DModelCameraSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 7); + var_r30 = Hu3DHookFuncCreate(fn_1_7790); + object->model[14] = var_r30; + Hu3DModelCameraSet(var_r30, 2); + Hu3DModelLayerSet(var_r30, 7); + var_r28->unk_58 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r28->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28->unk_58, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r28->unk_5C, var_r28->unk_58); + var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M460, 0x23)), 0x100); + object->model[15] = var_r30; + Hu3DModelLayerSet(var_r30, 4); + for (var_r27 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, var_r31 = 0; var_r31 < 0x100; var_r31++, var_r27++) { + var_r27->unk2C = 0.0f; + var_r27->unk40.a = 0; + var_r27->unk00 = 0; + } + DCStoreRange(((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, 0x4400); + var_r28->unk_28 = 1; + var_r28->unk_2C = -1; + object->func = fn_1_6C00; +} + +void fn_1_6C00(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r30; + M460DllCameraStruct *var_r28; + u32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = object->data; + var_r30 = fn_1_3E90(1); + var_r28 = fn_1_3E90(2); + switch (fn_1_4164()) { + case 1: + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + var_r31->unk_24 = 0; + if (var_r31->unk_00 != 0) { + fn_1_73F8(object); + var_r31->unk_00 = 0; + } + break; + case 3: + var_r27 = fn_1_42F0(); + Hu3DMotionSpeedSet(object->model[var_r27 + 9], 1.5f); + if (var_r31->unk_18 == 0) { + if (fn_1_4324() != 0) { + var_r31->unk_18 = 1; + if (var_r27 == 0) { + var_r31->unk_2C = object->model[var_r31->unk_14 + 3]; + var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_l"); + } + else if (var_r27 == 1) { + var_r31->unk_2C = object->model[var_r31->unk_10 + 6]; + var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_r"); + } + var_r31->unk_28 = 0; + var_r31->unk_30 = 0; + Hu3DModelAttrReset(object->model[var_r27 + 0xB], HU3D_ATTR_DISPOFF); + } + } + else if (var_r31->unk_28 != 0) { + fn_1_433C(); + var_r30->unk_10 -= 0.116666675f; + } + if (var_r31->unk_1C == 0) { + var_r31->unk_24++; + if (var_r31->unk_24 > 102.0f) { + var_r31->unk_1C = 1; + fn_1_8BA0(0.041666668f); + var_r30->unk_1C.x = lbl_1_data_2E8[var_r27][0]; + var_r30->unk_1C.y = lbl_1_data_2E8[var_r27][1]; + var_r30->unk_1C.z = lbl_1_data_2E8[var_r27][2]; + var_r30->unk_28.x = lbl_1_data_2E8[var_r27][3]; + var_r30->unk_28.y = lbl_1_data_2E8[var_r27][4]; + var_r30->unk_28.z = lbl_1_data_2E8[var_r27][5]; + var_r30->unk_34 = lbl_1_data_2E8[var_r27][6]; + var_r30->unk_10 = lbl_1_data_2E8[var_r27][7]; + } + } + break; + case 4: + var_r30->unk_10 -= 0.116666675f; + var_r31->unk_00 = 1; + break; + } + if ((var_r31->unk_28 == 0) && (var_r31->unk_2C >= 0)) { + if (var_r31->unk_30 == 0) { + var_r31->unk_34 = 0.0f; + var_r31->unk_38 = 0.0f; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r31->unk_48 = var_r31->unk_3C; + var_r31->unk_38 = 2.9166667f; + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = 10.0f + var_r31->unk_54->data.base.pos.y; + sp14.z = 20.0f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 0); + } + HuAudFXPlay(0x818); + } + if (var_r31->unk_30 < 24.0f) { + var_r31->unk_38 *= 0.93f; + } + else { + var_f31 = 3.888889f; + var_r31->unk_38 = var_r31->unk_38 + (0.033333335f * var_f31); + if (var_r31->unk_38 > var_f31) { + var_r31->unk_38 = var_f31; + } + } + var_r26 = 0.5f + (0.2f * var_r31->unk_34); + var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_38; + if (var_r31->unk_34 >= 350.0f) { + var_r31->unk_34 = 350.0f; + var_r31->unk_28 = 1; + HuAudFXPlay(0x819); + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f; + sp14.z = 10.0f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 2); + } + } + var_r25 = 0.5f + (0.2f * var_r31->unk_34); + if (var_r26 != var_r25) { + var_r31->unk_48.x = 100.0f * ((0.00003f * frandmod(0x3E8)) - 0.015f); + var_r31->unk_48.y = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f); + var_r31->unk_48.z = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f); + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f; + sp14.z = 15.000001f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 1); + } + } + VECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); + VECScale(&sp8, &sp8, 0.4f); + VECAdd(&var_r31->unk_3C, &sp8, &sp14); + sp14.y += var_r31->unk_34; + Hu3DModelPosSetV(var_r31->unk_2C, &sp14); + var_r31->unk_30++; + } + fn_1_7B94(object->model[15]); + if (var_r28->unk_00 != 0) { + var_r28->unk_90 = var_r28->unk_90 + var_r28->unk_8C; + if (var_r28->unk_90 > 1.0f) { + var_r28->unk_00 = 0; + var_r28->unk_90 = 1.0f; + fn_1_3E68(1); + } + } +} + +Vec lbl_1_data_36C = { 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_378 = { 0, 0, 0, 0x80 }; + +void fn_1_73F8(omObjData *object) +{ + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r29; + u32 var_r28; + + var_r31 = object->data; + Hu3DModelAttrSet(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[12], HU3D_ATTR_DISPOFF); + if (var_r31->unk_04 != 0) { + var_r31->unk_0C = fn_1_76C4(3, var_r31->unk_0C); + var_r31->unk_14 = fn_1_76C4(3, var_r31->unk_14); + var_r31->unk_10 = fn_1_76C4(3, var_r31->unk_10); + var_r29 = fn_1_3E90(1); + var_r28 = var_r31->unk_08 = fn_1_76C4(8, var_r31->unk_08); + var_r29->unk_1C.x = lbl_1_data_1E8[var_r28][0]; + var_r29->unk_1C.y = lbl_1_data_1E8[var_r28][1]; + var_r29->unk_1C.z = lbl_1_data_1E8[var_r28][2]; + var_r29->unk_28.x = lbl_1_data_1E8[var_r28][3]; + var_r29->unk_28.y = lbl_1_data_1E8[var_r28][4]; + var_r29->unk_28.z = lbl_1_data_1E8[var_r28][5]; + var_r29->unk_34 = lbl_1_data_1E8[var_r28][6]; + var_r29->unk_10 = lbl_1_data_1E8[var_r28][7]; + } + Hu3DMotionTimeSet(object->model[9], 0.0f); + Hu3DMotionSpeedSet(object->model[9], 0.0f); + Hu3DMotionTimeSet(object->model[10], 0.0f); + Hu3DMotionSpeedSet(object->model[10], 0.0f); + Hu3DModelAttrReset(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF); + Hu3DModelPosSetV(object->model[var_r31->unk_14 + 3], &lbl_1_data_36C); + Hu3DModelPosSetV(object->model[var_r31->unk_10 + 6], &lbl_1_data_36C); + var_r31->unk_04++; +} + +u32 fn_1_76C4(u32 arg0, u32 arg8) +{ + u32 var_r31 = frandmod(arg0); + if (var_r31 == arg8) { + var_r31++; + } + var_r31 %= arg0; + return var_r31; +} + +void fn_1_7724(ModelData *model, Mtx mtx) +{ + UnkM460MapWork *var_r31 = lbl_1_bss_48->data; + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(var_r31->unk_5C, 0); + GXPixModeSync(); +} + +void fn_1_7790(ModelData *model, Mtx mtx) +{ + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + float var_f31; + float var_f30; + float var_f29; + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r30; + + var_r31 = lbl_1_bss_48->data; + var_r30 = fn_1_3F2C(2); + lbl_1_data_378.a = 255.0f * var_r30->unk_90; + DCStoreRange(&lbl_1_data_378, 4); + C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f); + GXSetProjection(sp2C, GX_PERSPECTIVE); + MTXIdentity(sp5C); + GXLoadPosMtxImm(sp5C, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&spC, var_r31->unk_5C, 0x280, 0x1E0, 5, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&spC, GX_TEXMAP0); + C_MTXLightPerspective(sp2C, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + GXLoadTexMtxImm(sp2C, 0x1E, GX_MTX3x4); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, 0, 0x7D); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_378); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(0, GX_LEQUAL, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 2530.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_7B94(s32 arg0) +{ + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + + var_r30 = Hu3DData[arg0].unk_120; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + switch (var_r31->unk02) { + case 0: + var_r31->unk2C += 1.0f; + var_r31->unk20 *= 0.99f; + var_r31->unk08.y += 0.019444447f; + break; + case 1: + var_r31->unk2C += 2.0f; + var_r31->unk20 *= 0.98f; + break; + case 2: + var_r31->unk2C += 1.0f; + var_r31->unk20 *= 0.995f; + break; + } + if (var_r31->unk00 < 12.0f) { + var_r31->unk20 = 0.9f * var_r31->unk20; + } + var_r31->unk40.a = var_r31->unk20; + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * 0x44); +} + +void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) +{ + Vec sp1C; + float var_f31; + + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r28; + u32 var_r27; + + GXColor spC = { 0xA2, 0x97, 0x7B, 0x80 }; + GXColor sp8 = { 0xE7, 0xDD, 0xC0, 0xFF }; + s32 sp10[3] = { 0x00000032, 4, 0x00000046 }; + + var_r30 = Hu3DData[object->model[15]].unk_120; + if (arg2 > 2) { + arg2 = 1; + } + var_r27 = sp10[arg2]; + for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + if (var_r31->unk00 == 0) { + var_r31->unk02 = arg2; + sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); + sp1C.y = 0.0f; + sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); + VECAdd(&sp1C, arg1, &var_r31->unk34); + var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); + switch (arg2) { + case 0: + var_r31->unk00 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f); + var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8))); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 30.0f + (30.0f * var_f31); + var_r31->unk40.a = 40.0f + (40.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + case 1: + sp1C.x = 100.0f * (1.1f + (0.00020000001f * frandmod(0x3E8))); + sp1C.y = 100.0f * (0.2f + (0.0005f * frandmod(0x3E8))); + if (frandmod(0x3E8) < 0x1F4) { + sp1C.x *= -1.0f; + } + VECAdd(&sp1C, arg1, &var_r31->unk34); + var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); + var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * (0.05f + (0.000100000005f * frandmod(0x3E8))); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 20.0f + (30.0f * var_f31); + var_r31->unk40.a = 8.0f + (13.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + case 2: + var_r31->unk00 = 60.0f * (0.9f + (0.00080000004f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f); + var_r31->unk08.y = -1.6666667f * (0.1f + (0.0007f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 40.0f + (60.0f * var_f31); + var_r31->unk40.a = 8.0f + (10.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + } + var_r31->unk20 = var_r31->unk40.a; + var_r27--; + if (var_r27 < 1) { + break; + } + } + } + + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_8BA0(float arg8) +{ + M460DllCameraStruct *var_r31; + M460DllCameraStruct *var_r30; + + var_r30 = fn_1_3E90(1); + var_r31 = fn_1_3E90(2); + var_r31->unk_00 = 1; + var_r31->unk_1C = var_r30->unk_1C; + var_r31->unk_28 = var_r30->unk_28; + var_r31->unk_34 = var_r30->unk_34; + var_r31->unk_10 = var_r30->unk_10; + var_r31->unk_44 = var_r30->unk_44; + var_r31->unk_40 = var_r30->unk_40; + var_r31->unk_8C = arg8; + var_r31->unk_90 = 0.0f; + fn_1_3E68(2); +} + +s32 fn_1_8C78(void) +{ + M460DllCameraStruct *var_r31 = fn_1_3E90(2); + return var_r31->unk_00; +} diff --git a/src/REL/m460Dll/player.c b/src/REL/m460Dll/player.c new file mode 100644 index 00000000..ccb4b58e --- /dev/null +++ b/src/REL/m460Dll/player.c @@ -0,0 +1,658 @@ +#include "datadir_enum.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct UnkData110Struct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} UnkData110Struct; /* size = 0x14 */ + +typedef struct UnkM460DllPlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + float unk_1C; + float unk_20; + s32 unk_24; + s32 unk_28; + u16 unk_2C; + s32 unk_30; + char unk34[0x4]; + s16 unk_38; + char unk3A[6]; + s32 unk_40; + float unk_44; + float unk_48; + float unk_4C; + float unk_50; + float unk_54; + s32 unk_58; + float unk_5C; + Vec unk_60; + Vec unk_6C; + Vec unk_78; + s32 unk_84; +} UnkM460DllPlayerWork; /* size = 0x88 */ + +void fn_1_4C08(omObjData *object); +void fn_1_4F6C(omObjData *object); +void fn_1_5168(omObjData *object); +void fn_1_55EC(omObjData *object); +void fn_1_57D8(omObjData *object); +s32 fn_1_58C8(omObjData *object, float arg8, float arg9); +void fn_1_5A14(omObjData *object); +void fn_1_5C88(omObjData *object); +void fn_1_5CE0(omObjData *object, u32 arg1); +s32 fn_1_5E6C(omObjData *object); +void fn_1_60B0(omObjData *object); +void fn_1_61F4(omObjData *object); + +u32 lbl_1_data_F0[8] = { 0, 2, 3, 0x590015, 0x59000D, 0x17, 0x18, 0x1A }; +struct UnkData110Struct lbl_1_data_110[8] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 4, 0.2f, 0.0f, -1.0f, 0 }, + { 5, 0.2f, 0.0f, -1.0f, 0 }, + { 6, 0.2f, 0.0f, -1.0f, 0 }, + { 7, 0.2f, 0.0f, -1.0f, 0x40000001 }, +}; + +omObjData *lbl_1_bss_40[1]; +omObjData *lbl_1_bss_3C; +s32 lbl_1_bss_38[1]; + +void fn_1_49A0(Process *process) +{ + u32 spC[1]; + u32 sp8[1]; + + s16 var_r31; + s16 var_r30; + u32 var_r29; + omObjData *var_r27; + + for (var_r31 = 0; var_r31 < 1; var_r31++) { + spC[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 0; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 1; var_r30++) { + if (spC[var_r31] > spC[var_r30]) { + var_r29 = spC[var_r31]; + spC[var_r31] = spC[var_r30]; + spC[var_r30] = var_r29; + var_r29 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r29; + } + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + lbl_1_bss_38[sp8[var_r31]] = var_r31; + } + omMakeGroupEx(process, 0, 1); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 1; var_r31++) { + var_r27 = lbl_1_bss_40[var_r31] = omAddObjEx(process, 0x28, 1, 8, 0, fn_1_4C08); + var_r27->work[0] = var_r31; + } + lbl_1_bss_3C = omAddObjEx(process, 0x28, 1, 5, -1, fn_1_60B0); +} + +void fn_1_4BE4(void) +{ + CharModelKill(-1); +} + +void fn_1_4C08(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + float sp8[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + Vec sp18[4] = { + { 0.0f, 0.0f, 300.0f }, + { -450.0f, 0.0f, -50.0f }, + { 0.0f, 0.0f, -350.0f }, + { 450.0f, 0.0f, -50.0f }, + }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllPlayerWork), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + memset(var_r31, 0, sizeof(UnkM460DllPlayerWork)); + object->stat |= 0x100; + var_r31->unk_00 = GWPlayerCfg[object->work[0]].character; + var_r31->unk_08 = lbl_1_bss_38[object->work[0]]; + fn_1_41B4(object->work[0], var_r31->unk_08, var_r31->unk_00); + var_r31->unk_54 = sp8[GWPlayerCfg[object->work[0]].diff & 3]; + var_r31->unk_24 = GWPlayerCfg[object->work[0]].iscom; + object->model[0] = CharModelCreate(var_r31->unk_00, 2); + Hu3DModelLayerSet(object->model[0], 1); + CharModelLayerSetAll(2); + Hu3DModelShadowSet(object->model[0]); + for (var_r29 = 0; var_r29 < 8; var_r29++) { + if (lbl_1_data_F0[var_r29] < 0x10000) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_00, lbl_1_data_F0[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r31->unk_00 + lbl_1_data_F0[var_r29]); + } + } + CharModelMotionDataClose(var_r31->unk_00); + CharModelEffectNpcInitSilent(object->model[0], object->motion[3], 1); + object->trans.x = var_r31->unk_60.x = sp18[var_r31->unk_08].x; + object->trans.y = var_r31->unk_60.y = sp18[var_r31->unk_08].y; + object->trans.z = var_r31->unk_60.z = sp18[var_r31->unk_08].z; + var_r31->unk_44 = var_r31->unk_48 = 0.0f; + var_r31->unk_4C = 0.0f; + var_r31->unk_50 = 0.02f; + var_r31->unk_5C = 50.0f; + var_r31->unk_58 = 0; + var_r31->unk_2C = 0; + var_r31->unk_04 = -1; + fn_1_5CE0(object, 0); + var_r31->unk_84 = -1; + object->func = fn_1_4F6C; +} + +void fn_1_4F6C(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + var_r31 = object->data; + var_r31->unk_14 = var_r31->unk_18 = 0; + var_r31->unk_0C = var_r31->unk_10 = 0; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + switch (var_r31->unk_2C) { + case 0: + var_r31->unk_44 = var_r31->unk_48 = 180.0f; + var_r31->unk_60.x = 0.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -450.0f; + fn_1_5CE0(object, 7); + var_r31->unk_2C = 1; + var_r31->unk_30 = 0; + break; + case 1: + if (fn_1_414C() == 1) { + var_r31->unk_60.x = 0.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -100.0f; + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = -450.0f; + var_r31->unk_2C = 2; + var_r31->unk_30 = 0; + } + break; + case 2: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + var_r31->unk_2C = 3; + var_r31->unk_30 = 0; + } + break; + } + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if (fn_1_414C() == 2) { + var_r31->unk_2C = 0; + object->func = fn_1_5168; + } +} + +void fn_1_5168(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + u32 var_r28; + s32 var_r27; + + var_r31 = object->data; + var_r27 = 0; + { + Vec sp20[2] = { + { -250.0f, 0.0f, -900.0f }, + { 250.0f, 0.0f, -900.0f }, + }; + + Vec sp8[2] = { + { -250.0f, 0.0f, -1400.0f }, + { 250.0f, 0.0f, -1400.0f }, + }; + var_r31->unk_14 = var_r31->unk_18 = 0; + var_r31->unk_0C = var_r31->unk_10 = 0; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + if (fn_1_4164() == 2) { + if (var_r31->unk_24 != 0) { + fn_1_5C88(object); + } + else { + if (HuPadTrigL[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) { + var_r31->unk_14 = 1; + } + if (HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) { + var_r31->unk_18 = 1; + } + } + } + switch (var_r31->unk_2C) { + case 0: + if (fn_1_4370() != 0) { + var_r31->unk_60.x = -140.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -150.0f; + } + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = -450.0f; + var_r31->unk_40 = 3; + var_r31->unk_2C = 4; + case 4: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + if ((var_r29 != 0) && (fn_1_4164() == 2)) { + var_r31->unk_48 = 180.0f; + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 5; + } + break; + case 5: + var_r29 = 0; + fn_1_5A14(object); + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + var_r29 = 1; + } + var_r28 = fn_1_42F0(); + if (var_r28 == 3) { + if (var_r29 != 0) { + if (var_r31->unk_14 != 0) { + var_r28 = 0; + } + else if (var_r31->unk_18 != 0) { + var_r28 = 1; + } + if (var_r28 != 3) { + fn_1_42BC(var_r28); + } + } + } + else { + var_r31->unk_40 = var_r28; + var_r31->unk_78 = sp20[var_r31->unk_40]; + var_r31->unk_2C = 6; + } + break; + case 6: + var_r29 = fn_1_58C8(object, 1.0f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + fn_1_4308(); + var_r31->unk_48 = 180.0f; + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 7; + } + break; + case 7: + fn_1_5A14(object); + if (fn_1_4358() != 0) { + if (fn_1_419C() == 0) { + var_r31->unk_78 = sp8[var_r31->unk_40]; + var_r31->unk_2C = 8; + } + else { + var_r27 = 1; + } + } + break; + case 8: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + + default: + if (fn_1_4164() == 1) { + var_r31->unk_2C = 0; + } + var_r27 = 1; + break; + } + } + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if ((fn_1_4164() == 5) && (var_r27 != 0)) { + var_r31->unk_2C = 0; + object->func = fn_1_55EC; + } +} + +void fn_1_55EC(omObjData *object) +{ + Vec sp8; + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + var_r31 = object->data; + var_r29 = 0; + switch (var_r31->unk_2C) { + case 0: + fn_1_41F4(object->work[0]); + fn_1_5CE0(object, 4); + sp8 = var_r31->unk_60; + sp8.y += 160.0f; + var_r31->unk_2C = 9; + break; + case 9: + if (fn_1_5E6C(object) != 0) { + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = 500.0f; + fn_1_4224(object->work[0]); + HuAudCharVoicePlay(var_r31->unk_00, 0x128); + var_r31->unk_28 = 1; + var_r31->unk_2C = 0xA; + } + break; + case 10: + var_r29 = fn_1_58C8(object, 1.0f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 0xB; + } + break; + case 11: + fn_1_5CE0(object, 0); + break; + } + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if (var_r31->unk_84 >= 0) { + sp8 = var_r31->unk_60; + sp8.y += 160.0f; + HuAudFXEmiterUpDate(var_r31->unk_84, &sp8); + } +} + +void fn_1_57D8(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31 = object->data; + var_r31->unk_38++; + var_r31->unk_30++; + object->trans.x = var_r31->unk_60.x; + object->trans.y = var_r31->unk_60.y; + object->trans.z = var_r31->unk_60.z; + var_r31->unk_4C = var_r31->unk_4C + var_r31->unk_50; + if (var_r31->unk_4C > 0.45f) { + var_r31->unk_4C = 0.45f; + } + var_r31->unk_44 = fn_1_47D0(var_r31->unk_44, var_r31->unk_48, var_r31->unk_4C); + object->rot.y = var_r31->unk_44; + Hu3DModelPosSetV(object->model[0], &var_r31->unk_60); + Hu3DModelRotSet(object->model[0], 0.0f, var_r31->unk_44, 0.0f); +} + +s32 fn_1_58C8(omObjData *object, float arg8, float arg9) +{ + Vec spC; + float var_f31; + UnkM460DllPlayerWork *var_r31; + s32 var_r30; + + var_r31 = object->data; + var_r30 = 0; + VECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); + spC.y = 0.0f; + var_f31 = VECMag(&spC); + if (var_f31 < arg9) { + var_f31 = 0.0f; + var_r30 = 1; + } + else { + if (VECMag(&spC) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + var_r31->unk_1C = atan2d(spC.x, spC.z); + var_r31->unk_20 = var_f31; + if (var_r31->unk_20 > arg8) { + var_r31->unk_20 = arg8; + } + return var_r30; +} + +void fn_1_5A14(omObjData *object) +{ + float var_f31; + float var_f30; + + UnkM460DllPlayerWork *var_r31 = object->data; + if (var_r31->unk_20 > 0.0f) { + var_r31->unk_48 = var_r31->unk_1C; + } + if (var_r31->unk_20 > 0.05f) { + // 1 / REFRESH_RATE? + var_r31->unk_6C.x = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * sind(var_r31->unk_1C))); + var_r31->unk_6C.z = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * cosd(var_r31->unk_1C))); + if (var_r31->unk_28 != 0) { + var_r31->unk_6C.x *= 1.5f; + var_r31->unk_6C.z *= 1.5f; + } + var_r31->unk_4C = 0.2f; + var_r31->unk_50 = 0.0f; + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + var_f31 = 0.5f; + if (var_r31->unk_04 == 2) { + var_f31 = 0.45f; + } + if (var_r31->unk_20 > var_f31) { + if (var_r31->unk_28 != 0) { + fn_1_5CE0(object, 3); + } + else { + fn_1_5CE0(object, 2); + } + var_f30 = var_r31->unk_20; + } + else { + fn_1_5CE0(object, 1); + var_f30 = var_r31->unk_20 / var_f31; + } + CharModelMotionSpeedSet(var_r31->unk_00, var_f30); + } + } + else { + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + fn_1_5CE0(object, 0); + } + } +} + +void fn_1_5C88(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31 = object->data; + if (frandmod(0x3E8) < 0x1F4) { + var_r31->unk_14 = 1; + return; + } + var_r31->unk_18 = 1; +} + +void fn_1_5CE0(omObjData *object, u32 arg1) +{ + UnkM460DllPlayerWork *var_r30 = object->data; + if ((var_r30->unk_04 != arg1) && (arg1 < 8)) { + float var_f31 = 60.0f * lbl_1_data_110[arg1].unk_04; + if (var_r30->unk_04 < 0) { + var_f31 = 0.0f; + } + var_r30->unk_04 = arg1; + CharModelMotionShiftSet( + var_r30->unk_00, object->motion[lbl_1_data_110[arg1].unk_00], 60.0f * lbl_1_data_110[arg1].unk_08, var_f31, lbl_1_data_110[arg1].unk_10); + if (lbl_1_data_110[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_110[arg1].unk_08, 60.0f * lbl_1_data_110[arg1].unk_0C); + } + } +} + +s32 fn_1_5E6C(omObjData *object) +{ + M460DllCameraStruct *var_r31 = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(var_r31->unk_00) != 0) && (CharModelMotionShiftIDGet(var_r31->unk_00) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_5EE0(omObjData *object, u32 arg1) +{ + s32 var_r27 = 0; + if (fn_1_5E6C(object)) { + fn_1_5CE0(object, arg1); + var_r27 = 1; + } + return var_r27; +} + +s32 lbl_1_data_1D4[5] = { + DATA_MAKE_NUM(DATADIR_M460, 0x1E), + DATA_MAKE_NUM(DATADIR_M460, 0x1F), + DATA_MAKE_NUM(DATADIR_M460, 0x20), + DATA_MAKE_NUM(DATADIR_M460, 0x21), + DATA_MAKE_NUM(DATADIR_M460, 0x22), +}; + +void fn_1_60B0(omObjData *object) +{ + s32 var_r30; + s32 var_r29; + + omSetTra(object, 0.0f, 0.0f, 0.0f); + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M460, 0x1D)); + object->model[0] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + object->motion[var_r29] = Hu3DJointMotionFile(var_r30, lbl_1_data_1D4[var_r29]); + } + CharModelEffectNpcInitSilent(var_r30, object->motion[1], 0); + CharModelEffectNpcInitSilent(var_r30, object->motion[2], 1); + CharModelEffectNpcInitSilent(var_r30, object->motion[3], 1); + object->work[1] = 0; + object->func = fn_1_61F4; +} + +void fn_1_61F4(omObjData *object) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + + Vec sp1C[2] = { + { -250.0f, 0.0f, -2200.0f }, + { 250.0f, 0.0f, -2200.0f }, + }; + Vec sp10; + s32 sp8[2] = { 6, 21 }; + switch (object->work[1]) { + case 0: + if ((fn_1_4164() == 3) && (fn_1_419C() != 0) && (fn_1_4324() != 0)) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); + var_r30 = fn_1_42F0(); + object->trans.x = sp1C[var_r30].x; + object->trans.y = sp1C[var_r30].y; + object->trans.z = sp1C[var_r30].z; + object->rot.y = 0.0f; + object->work[1] = 1; + object->work[2] = 0; + } + break; + case 1: + object->work[2]++; + if (object->work[2] > 18.0f) { + Hu3DMotionShiftSet(object->model[0], object->motion[2], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); + object->work[1] = 2; + } + break; + case 2: + sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x; + sp10.y = 0.0f; + sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z; + object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f); + object->trans.z += 6.666667f; + if (fn_1_4358() != 0) { + HuAudFXPlay(0x3C); + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); + object->work[1] = 3; + object->work[3] = 0x3C; + } + break; + case 3: + Hu3DMotionSpeedSet(object->model[0], 0.9f); + var_r29 = Hu3DMotionTimeGet(object->model[0]); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r29 == sp8[var_r30]) { + var_f30 = 2.1166666f * object->work[3]; + HuAudFXPlayVol(0x6B, var_f30); + } + } + sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x; + sp10.y = 0.0f; + sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z; + object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f); + if (object->trans.z < -900.0f) { + // depending on refresh rate? + object->trans.z += 11.666667f; + } + else { + var_f31 = VECMag(&sp10); + if (var_f31 < 20.0f) { + var_f31 = 0.0f; + } + else { + if (VECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + var_f31 *= 11.666667f; + } + object->trans.x = object->trans.x + (var_f31 * sind(object->rot.y)); + object->trans.z = object->trans.z + (var_f31 * cosd(object->rot.y)); + } + if ((object->trans.z > 450.0f) && (object->work[3] != 0)) { + object->work[3]--; + } + break; + } +} diff --git a/src/REL/m460Dll/score.c b/src/REL/m460Dll/score.c new file mode 100644 index 00000000..357c2d8c --- /dev/null +++ b/src/REL/m460Dll/score.c @@ -0,0 +1,183 @@ +#include "datadir_enum.h" +#include "game/data.h" + +#include "REL/m460Dll.h" +#include "game/memory.h" + +#include "game/esprite.h" +#ifndef __MWERKS__ +#endif + +typedef struct UnkM460DllScoreWork { + s32 unk_00; + s32 unk_04; + s16 unk_08; + s16 unk_0A; + s16 unk_0C[6]; + s32 unk_18; + float unk_1C; +} UnkM460DllScoreWork; /* size = 0x20 */ + +typedef void (*UnkM460DllScoreFunc)(void); + +void fn_1_9020(s32 arg0); +void fn_1_9050(omObjData *object); +void fn_1_916C(void); +void fn_1_91E4(void); +void fn_1_9270(void); + +UnkM460DllScoreFunc lbl_1_data_380[3] = { fn_1_916C, fn_1_91E4, fn_1_9270 }; + +Process *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +// ? lbl_1_rodata_3D0; + +void fn_1_8CAC(Process *process, s16 arg1) +{ + UnkM460DllScoreWork *var_r31; + u32 var_r30; + + lbl_1_bss_54 = process; + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_54, 0x800, 0, 0, 7, fn_1_9050); + lbl_1_bss_50->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllScoreWork), MEMORY_DEFAULT_NUM); + var_r31 = lbl_1_bss_50->data; + var_r31->unk_08 = arg1; + var_r31->unk_0A = 0; + var_r31->unk_0C[4] = espEntry(0x590024, 2, 0); + espColorSet(var_r31->unk_0C[4], 0, 0, 0); + espTPLvlSet(var_r31->unk_0C[4], 0.5f); + espPosSet(var_r31->unk_0C[4], 508.0f, 64.0f); + var_r31->unk_0C[5] = espEntry(0x610037, 1, 0); + espPosSet(var_r31->unk_0C[5], 490.0f, 56.0f); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0); + espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1FE, 56.0f); + espDispOff(var_r31->unk_0C[var_r30]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30 + 2] = espEntry(0x610031, 1, 0); + espPosSet(var_r31->unk_0C[var_r30 + 2], (var_r30 * 0x10) + 0x1FE, 74.0f); + } + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + HuDataDirClose(DATA_MAKE_NUM(DATADIR_MGCONST, 0)); + fn_1_9020(0); +} + +void fn_1_8F38(void) +{ + s32 var_r31; + UnkM460DllScoreWork *var_r30 = lbl_1_bss_50->data; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + espKill(var_r30->unk_0C[var_r31]); + } + HuMemDirectFree(lbl_1_bss_50->data); +} + +void fn_1_8FAC(s32 arg0) +{ + s32 sp8; + s32 var_r3; + + switch (arg0) { + case 0: + fn_1_9020(1); + break; + case 1: + fn_1_9020(2); + break; + } +} + +void fn_1_8FFC(void) +{ + fn_1_9020(0); +} + +void fn_1_9020(s32 arg0) +{ + UnkM460DllScoreWork *var_r31; + + var_r31 = lbl_1_bss_50->data; + var_r31->unk_00 = arg0; + var_r31->unk_04 = 0; +} + +void fn_1_9050(omObjData *arg0) +{ + UnkM460DllScoreWork *var_r31; + s16 var_r30; + + var_r31 = lbl_1_bss_50->data; + lbl_1_data_380[var_r31->unk_00](); + var_r30 = var_r31->unk_08; + espBankSet(var_r31->unk_0C[0], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[1], var_r30); + var_r30 = var_r31->unk_0A; + espBankSet(var_r31->unk_0C[2], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[3], var_r30); +} + +void fn_1_916C(void) +{ + UnkM460DllScoreWork *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04++; + } +} + +void fn_1_91E4(void) +{ + UnkM460DllScoreWork *var_r31; + s16 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOn(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04++; + } + var_r31->unk_0A = fn_1_4370(); +} + +void fn_1_9270(void) +{ + UnkM460DllScoreWork *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + var_r31->unk_18 = 0; + var_r31->unk_1C = 1.0f; + if (var_r31->unk_0A > var_r31->unk_08) { + var_r31->unk_08 = var_r31->unk_0A; + } + var_r31->unk_04++; + } + if (var_r31->unk_18 == 0) { + if ((var_r31->unk_1C += 0.02f) >= 1.2f) { + var_r31->unk_1C = 1.2f; + var_r31->unk_18 = 1; + } + } + else { + if ((var_r31->unk_1C -= 0.04f) <= 1.0f) { + var_r31->unk_1C = 1.0f; + var_r31->unk_18 = 0; + } + } + for (var_r30 = 0; var_r30 <= 1; var_r30++) { + espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_1C, var_r31->unk_1C); + } + espScaleSet(var_r31->unk_0C[5], var_r31->unk_1C, var_r31->unk_1C); +} diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index f94c9831..1c4b57cc 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -1,11 +1,11 @@ #include "REL/executor.h" #include "game/chrman.h" #include "game/frand.h" +#include "game/gamework.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" -#include "game/gamework.h" #include "game/gamework_data.h" @@ -23,6 +23,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/audio.h" +#endif + #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -223,20 +227,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -403,9 +407,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -544,27 +548,19 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_10[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; +s32 lbl_1_data_10[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -float lbl_1_data_30[10] = { - 70, 70, 70, 70, 70, 70, 70, 70, 70, 100 -}; +float lbl_1_data_30[10] = { 70, 70, 70, 70, 70, 70, 70, 70, 70, 100 }; -float lbl_1_data_58[10] = { - 150, 170, 190, 170, 160, 150, 180, 200, 150, 200 -}; +float lbl_1_data_58[10] = { 150, 170, 190, 170, 160, 150, 180, 200, 150, 200 }; void fn_1_23B4(WorkPlayerOld *player) { s32 i; - for(i=0; i<8; i++) { - if(player->unk44 == player->unk14[i]) { + for (i = 0; i < 8; i++) { + if (player->unk44 == player->unk14[i]) { player->unk40 = lbl_1_data_10[i]; return; } @@ -580,7 +576,7 @@ void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, pointA.y += aYOfs; pointB.y += bYOfs; dist = VECDistance(&pointA, &pointB); - if(*minDist > dist) { + if (*minDist > dist) { *minDist = dist; *state = stateNew; } @@ -588,11 +584,11 @@ void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, void fn_1_24F8(WorkPlayerOld *player1, WorkPlayerOld *player2, float *minDist, s32 *state) { - *minDist = 10*(player1->unkBC+player2->unkBC); + *minDist = 10 * (player1->unkBC + player2->unkBC); fn_1_2418(minDist, state, 0, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkBC); - fn_1_2418(minDist, state, 1, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); - fn_1_2418(minDist, state, 2, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); - fn_1_2418(minDist, state, 3, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkBC); + fn_1_2418(minDist, state, 1, &player1->unk6C, player1->unkC0 - player1->unkBC, &player2->unk6C, player2->unkC0 - player2->unkBC); + fn_1_2418(minDist, state, 2, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkC0 - player2->unkBC); + fn_1_2418(minDist, state, 3, &player1->unk6C, player1->unkC0 - player1->unkBC, &player2->unk6C, player2->unkBC); } s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) @@ -600,29 +596,30 @@ s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) Vec dir; Vec dir2; float dist; - + player->unk3C |= 0x1; - player->unk90.x = player->unk20/4.0f; - player->unk90.z = -(float)player->unk24/4.0f; - if(player->unk90.x != 0.0f || player->unk90.z != 0.0f) { + player->unk90.x = player->unk20 / 4.0f; + player->unk90.z = -(float)player->unk24 / 4.0f; + if (player->unk90.x != 0.0f || player->unk90.z != 0.0f) { return; } VECSubtract(&player->unk6C, &player2->unk6C, &dir); dist = VECMagXZ(&dir); - if(0.0f == dist) { + if (0.0f == dist) { dir.x = 0; dir.z = -1; - } else { + } + else { dir.x /= dist; dir.z /= dist; } VECSubtract(&player->unk6C, &player->unk78, &dir2); dist = VECMagXZ(&dir2); - if(5 > dist) { + if (5 > dist) { dist = 5; } - player->unk90.x = dir.x*dist; - player->unk90.z = dir.z*dist; + player->unk90.x = dir.x * dist; + player->unk90.z = dir.z * dist; } void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) @@ -630,7 +627,7 @@ void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) player->unk38 = 1; player->unk84.y = arg1; player->unkA4 = arg2; - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { player->unk3C &= ~0x2; } } @@ -709,45 +706,46 @@ void fn_1_2E34(WorkPlayerOld *player) BOOL addTime; s32 i; player->unk3C &= ~0x100; - if(player->unk3C & 0x8) { + if (player->unk3C & 0x8) { return; } - if(NULL == lbl_1_bss_A8) { + if (NULL == lbl_1_bss_A8) { return; } addTime = FALSE; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { WorkPlayerOld *player2 = lbl_1_bss_A8(i); BOOL fixPos; float minDist; s32 state; - if(player == player2) { - continue; + if (player == player2) { + continue; } - if(player2->unk3C & 0x8) { + if (player2->unk3C & 0x8) { continue; } fixPos = FALSE; fn_1_24F8(player, player2, &minDist, &state); - if(minDist < player->unkBC+player2->unkBC) { - if(state < 2) { + if (minDist < player->unkBC + player2->unkBC) { + if (state < 2) { fixPos = TRUE; - if(player->unk38 == 1) { + if (player->unk38 == 1) { fn_1_2824(player, player2); } - } else { - if(state == 2 && player->unk38 == 1) { + } + else { + if (state == 2 && player->unk38 == 1) { fn_1_2824(player, player2); player->unk3C |= 0x100; player->unkA4 = 0; - if(!(player2->unk3C & 0x100)) { + if (!(player2->unk3C & 0x100)) { player->unk84.y = 26.766666f; } } - if(state == 3) { + if (state == 3) { fixPos = TRUE; - if(player->unk38 == 1) { - if(0.0f < player->unk84.y) { + if (player->unk38 == 1) { + if (0.0f < player->unk84.y) { player->unk84.y = 0.0f; } player->unkA4 = 0; @@ -755,24 +753,26 @@ void fn_1_2E34(WorkPlayerOld *player) } } } - if(fixPos) { + if (fixPos) { Vec dir; addTime = TRUE; VECSubtract(&player->unk6C, &player2->unk6C, &dir); - if(0.0f == minDist) { + if (0.0f == minDist) { dir.x = 0; dir.z = -1; - } else { + } + else { dir.x /= minDist; dir.z /= minDist; } - player->unk6C.x = player2->unk6C.x+(dir.x*(player->unkBC+player2->unkBC)); - player->unk6C.z = player2->unk6C.z+(dir.z*(player->unkBC+player2->unkBC)); + player->unk6C.x = player2->unk6C.x + (dir.x * (player->unkBC + player2->unkBC)); + player->unk6C.z = player2->unk6C.z + (dir.z * (player->unkBC + player2->unkBC)); } } - if(addTime) { + if (addTime) { player->unk4C++; - } else { + } + else { player->unk4C = 0; } } @@ -783,62 +783,63 @@ float fn_1_39C4(WorkPlayerOld *player, float arg2) s32 i; AddX = 0; AddZ = 0; - if(NULL != player->unk68) { - for(pos=player->unk68, i=0; iunk64; i++, pos += 2) { + if (NULL != player->unk68) { + for (pos = player->unk68, i = 0; i < player->unk64; i++, pos += 2) { int num = 0; - if(pos[0].x == pos[1].x || pos[0].x > player->unk6C.x || pos[1].x < player->unk6C.x) { + if (pos[0].x == pos[1].x || pos[0].x > player->unk6C.x || pos[1].x < player->unk6C.x) { num++; } - if(pos[0].y == pos[1].y || pos[0].y > player->unk6C.y || pos[1].y < player->unk6C.y) { + if (pos[0].y == pos[1].y || pos[0].y > player->unk6C.y || pos[1].y < player->unk6C.y) { num++; } - if(pos[0].z == pos[1].z || pos[0].z > player->unk6C.z || pos[1].z < player->unk6C.z) { + if (pos[0].z == pos[1].z || pos[0].z > player->unk6C.z || pos[1].z < player->unk6C.z) { num++; } - if(num == 3) { - if(pos[0].x != pos[1].x) { - if(pos[0].x > player->unk6C.x) { - player->unk6C.x = pos[0].x+player->unkBC; + if (num == 3) { + if (pos[0].x != pos[1].x) { + if (pos[0].x > player->unk6C.x) { + player->unk6C.x = pos[0].x + player->unkBC; } - if(pos[1].x < player->unk6C.x) { - player->unk6C.x = pos[1].x-player->unkBC; + if (pos[1].x < player->unk6C.x) { + player->unk6C.x = pos[1].x - player->unkBC; } } - if(pos[0].y != pos[1].y) { - if(pos[0].y > player->unk6C.y) { + if (pos[0].y != pos[1].y) { + if (pos[0].y > player->unk6C.y) { player->unk6C.y = pos[0].y; } - if(pos[1].y < player->unk6C.y) { + if (pos[1].y < player->unk6C.y) { player->unk6C.y = pos[1].y; } } - if(pos[0].z != pos[1].z) { - if(pos[0].z > player->unk6C.z) { - player->unk6C.z = pos[0].z+player->unkBC; + if (pos[0].z != pos[1].z) { + if (pos[0].z > player->unk6C.z) { + player->unk6C.z = pos[0].z + player->unkBC; } - if(pos[1].z < player->unk6C.z) { - player->unk6C.z = pos[1].z-player->unkBC; + if (pos[1].z < player->unk6C.z) { + player->unk6C.z = pos[1].z - player->unkBC; } } } } } - return ABS(AddX)+ABS(AddZ); + return ABS(AddX) + ABS(AddZ); } void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) { *motAttr = HU3D_MOTATTR_LOOP; *state = 0; - if(0.5f <= player->unkA0) { - if(7.0f <= player->unkA0) { + if (0.5f <= player->unkA0) { + if (7.0f <= player->unkA0) { *state = 2; - } else { + } + else { *state = 1; } } - - if(player->unk14[3] >= 0 && (player->unk28 & 0x100)) { + + if (player->unk14[3] >= 0 && (player->unk28 & 0x100)) { fn_1_2BD0(player, 26.766666f, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; @@ -847,20 +848,22 @@ void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(0.0f < player->unkA4) { - if(player->unk2C & 0x100) { + if (0.0f < player->unkA4) { + if (player->unk2C & 0x100) { player->unkA4++; - if(4.0f < player->unkA4) { + if (4.0f < player->unkA4) { player->unkA4 = 0; - } else { + } + else { player->unk84.y += 3.65f; } - } else { + } + else { player->unkA4 = 0; } } player->unk84.y += -2.4333334f; - if(player->unk14[5] >= 0 && (player->unk28 & 0x140)) { + if (player->unk14[5] >= 0 && (player->unk28 & 0x140)) { player->unk38 = 3; player->unk84.y = 0.0f; player->unk3C &= ~0x3; @@ -872,13 +875,14 @@ void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if((player->unk3C & 0x1000) || Hu3DMotionEndCheck(player->unk0->model[0])) { + if ((player->unk3C & 0x1000) || Hu3DMotionEndCheck(player->unk0->model[0])) { player->unk3C &= ~0x3; - if(player->unk40 == 6) { + if (player->unk40 == 6) { player->unk38 = 4; *motAttr = HU3D_MOTATTR_NONE; *state = 7; - } else { + } + else { player->unk38 = 0; *motAttr = HU3D_MOTATTR_LOOP; *state = 0; @@ -888,15 +892,14 @@ void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3F18(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + if (Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { fn_1_2BD0(player, 0.0f, 0.0f); } } - void fn_1_3FB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + if (Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { player->unk3C &= ~0x4; player->unk38 = 0; *motAttr = HU3D_MOTATTR_LOOP; @@ -913,17 +916,18 @@ void fn_1_4054(WorkPlayerOld *player) float temp_f22; Vec *pos; BOOL temp_r27; - if(player->unk3C & 0x1) { + if (player->unk3C & 0x1) { player->unk84.x = player->unk90.x; player->unk84.z = player->unk90.z; - } else { - player->unk84.x = player->unk20/4.0f; - player->unk84.z = -(float)player->unk24/4.0f; - if(player->unk38 == 1 && 0.0f == player->unk84.x && 0.0f == player->unk84.z) { - player->unk84.x = 0.98f*(player->unk6C.x-player->unk78.x); - player->unk84.z = 0.98f*(player->unk6C.z-player->unk78.z); + } + else { + player->unk84.x = player->unk20 / 4.0f; + player->unk84.z = -(float)player->unk24 / 4.0f; + if (player->unk38 == 1 && 0.0f == player->unk84.x && 0.0f == player->unk84.z) { + player->unk84.x = 0.98f * (player->unk6C.x - player->unk78.x); + player->unk84.z = 0.98f * (player->unk6C.z - player->unk78.z); } - if(player->unk3C & 0x14) { + if (player->unk3C & 0x14) { player->unk84.x = 0; player->unk84.z = 0; player->unk28 = 0; @@ -931,15 +935,16 @@ void fn_1_4054(WorkPlayerOld *player) } player->unk78 = player->unk6C; player->unkA0 = VECMagXZ(&player->unk84); - if(0.5f <= player->unkA0) { - if(10.0f <= player->unkA0) { + if (0.5f <= player->unkA0) { + if (10.0f <= player->unkA0) { player->unk84.x /= player->unkA0; player->unk84.z /= player->unkA0; player->unkA0 = 10; - player->unk84.x = 10*player->unk84.x; - player->unk84.z = 10*player->unk84.z; + player->unk84.x = 10 * player->unk84.x; + player->unk84.z = 10 * player->unk84.z; } - } else { + } + else { player->unk84.x = 0; player->unk84.z = 0; player->unkA0 = 0; @@ -947,134 +952,137 @@ void fn_1_4054(WorkPlayerOld *player) player->unk84.x *= player->unkB8; player->unk84.z *= player->unkB8; player->unkA0 *= player->unkB8; - if(player->unk3C & 0x800) { + if (player->unk3C & 0x800) { player->unk28 |= 0x100; player->unk2C |= 0x100; - if(player->unk38 == 1) { - if(0.0f == player->unkA4) { + if (player->unk38 == 1) { + if (0.0f == player->unkA4) { player->unk3C &= ~0x800; } } } - switch(player->unk38) { + switch (player->unk38) { case 0: fn_1_3C74(player, &state, &motAttr); break; - + case 1: fn_1_3D4C(player, &state, &motAttr); break; - + case 2: fn_1_3E60(player, &state, &motAttr); break; - + case 3: fn_1_3F18(player, &state, &motAttr); break; - + case 4: fn_1_3FB8(player, &state, &motAttr); break; - + default: OSReport("*** player action error(%d)!!\n", player->unk38); break; } - if(player->unk3C & 0x2000) { + if (player->unk3C & 0x2000) { player->unk84.y = 0; } temp_f28 = 0; - if(50.0f < ABS(player->unk84.y)) { - player->unk84.y = 50.0f*((0.0f > player->unk84.y) ? -1 : 1); + if (50.0f < ABS(player->unk84.y)) { + player->unk84.y = 50.0f * ((0.0f > player->unk84.y) ? -1 : 1); } - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { Mtx rotMtx; - MTXRotDeg(rotMtx, 'y', player->unk50[2].x-player->unk60); + MTXRotDeg(rotMtx, 'y', player->unk50[2].x - player->unk60); MTXMultVec(rotMtx, &player->unk54, &player->unk54); VECAdd(&player->unk54, &player->unk50[0], &player->unk6C); - player->unk9C += player->unk50[2].x-player->unk60; + player->unk9C += player->unk50[2].x - player->unk60; } temp_f22 = player->unk6C.y; VECAdd(&player->unk6C, &player->unk84, &player->unk6C); - if((player->unk3C & 0x1) == 0 && (0.0f != player->unk84.x || 0.0f != player->unk84.z)) { - player->unk9C = fn_1_1E20(player->unk9C, atan2d(player->unk84.x, player->unk84.z), 0.4f*player->unkB8); + if ((player->unk3C & 0x1) == 0 && (0.0f != player->unk84.x || 0.0f != player->unk84.z)) { + player->unk9C = fn_1_1E20(player->unk9C, atan2d(player->unk84.x, player->unk84.z), 0.4f * player->unkB8); } temp_f28 += fn_1_39C4(player, temp_f22); - if(nMap == 0) { + if (nMap == 0) { player->unkA8 = lbl_1_bss_A4; - } else { + } + else { player->unkA8 = MapPos(player->unk6C.x, player->unk6C.y, player->unk6C.z, player->unkC0, &player->unkAC); } temp_r27 = FALSE; - if(NULL != player->unk8) { + if (NULL != player->unk8) { pos = player->unk8(player->unk0); - if(NULL != pos) { - if(player->unkA8 < pos[1].y) { + if (NULL != pos) { + if (player->unkA8 < pos[1].y) { temp_r27 = TRUE; player->unk50 = pos; player->unkA8 = pos[1].y; } } } - if(!temp_r27 && (player->unk3C & 0x2)) { + if (!temp_r27 && (player->unk3C & 0x2)) { player->unk3C &= ~0x2; } - if(player->unk38 == 1 && player->unkA8 >= player->unk6C.y) { + if (player->unk38 == 1 && player->unkA8 >= player->unk6C.y) { player->unk38 = 2; player->unk3C &= ~0x3; player->unk6C.y = player->unkA8; player->unk84.y = 0; motAttr = HU3D_MOTATTR_NONE; state = 4; - if(player->unk40 == 5) { + if (player->unk40 == 5) { state = 6; - if(NULL != player->unk10) { + if (NULL != player->unk10) { player->unk10(player->unk0); } - if(player->unk18 < 4) { + if (player->unk18 < 4) { omVibrate(player->unk18, 12, 4, 2); } } - if(player->unk3C & 0x200) { + if (player->unk3C & 0x200) { state = -1; - if(NULL != player->unkC) { + if (NULL != player->unkC) { player->unkC(player->unk0); } } - if(temp_r27) { + if (temp_r27) { player->unk3C |= 0x2; } } - temp_f23 = player->unk6C.y-player->unkA8; - if(player->unk38 == 0 && 10.0f < temp_f23) { - if(!(player->unk3C & 0x2000) && (player->unk3C & 0x400)) { + temp_f23 = player->unk6C.y - player->unkA8; + if (player->unk38 == 0 && 10.0f < temp_f23) { + if (!(player->unk3C & 0x2000) && (player->unk3C & 0x400)) { player->unk3C |= 0x800; } - } else if(temp_r27) { - if(!(player->unk3C & 0x2)) { + } + else if (temp_r27) { + if (!(player->unk3C & 0x2)) { player->unk6C.y = player->unkA8; player->unk3C |= 0x2; } } fn_1_2E34(player); - if(NULL != player->unk4) { + if (NULL != player->unk4) { player->unk4(player->unk0); } temp_f28 += fn_1_39C4(player, player->unk6C.y); - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { player->unk60 = player->unk50[2].x; VECSubtract(&player->unk6C, &player->unk50[0], &player->unk54); } - if(0.0f != temp_f28) { + if (0.0f != temp_f28) { player->unk48++; - } else { + } + else { player->unk48 = 0; } - if(state >= 0 && player->unk40 != state) { + if (state >= 0 && player->unk40 != state) { player->unk40 = state; player->unk44 = player->unk14[player->unk40]; - if(player->unk44 >= 0 && !(player->unk3C & 0x20)) { + if (player->unk44 >= 0 && !(player->unk3C & 0x20)) { Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, motAttr); } } @@ -1091,17 +1099,19 @@ void fn_1_4E1C(WorkPlayerOld *player, s32 motNo) player->unk84.y = 0; player->unk84.z = 0; fn_1_23B4(player); - if(player->unk40 == 3) { - Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + if (player->unk40 == 3) { + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); - Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); - } else if(player->unk40 == 5) { + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0]) - 1); + } + else if (player->unk40 == 5) { player->unk38 = 3; player->unk3C |= 0x4; - Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); - Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); - } else { + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0]) - 1); + } + else { Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1131,93 +1141,83 @@ Vec lbl_1_data_E8 = { -1500, 4000, 1500 }; Vec lbl_1_data_F4 = { 1.5, -4, -1.5 }; GXColor lbl_1_data_100 = { 255, 255, 255, 255 }; - Vec lbl_1_data_104 = { -1500, 4000, 1500 }; Vec lbl_1_data_110 = { 0, 0, 0 }; Vec lbl_1_data_11C = { 0, 1, 0 }; s32 lbl_1_data_128[8][5] = { - 0x005F0000, 0x005F0002, 0x005F0003, 0x005F0014, 0x005F0017, - 0x001A0000, 0x001A0002, 0x001A0003, 0x001A0014, 0x001A0017, - 0x006D0000, 0x006D0002, 0x006D0003, 0x006D0014, 0x006D0017, - 0x008A0000, 0x008A0002, 0x008A0003, 0x008A0014, 0x008A0017, - 0x00850000, 0x00850002, 0x00850003, 0x00850014, 0x00850017, - 0x00110000, 0x00110002, 0x00110003, 0x00110014, 0x00110017, - 0x000D0000, 0x000D0002, 0x000D0003, 0x000D0014, 0x000D0017, - 0x00810000, 0x00810002, 0x00810003, 0x00810014, 0x00810017 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x14), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x14), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x14), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), }; -s32 lbl_1_data_1C8[3] = { - 0x005A0002, - 0x005A0003, - 0x005A0008 -}; +s32 lbl_1_data_1C8[3] = { DATA_MAKE_NUM(DATADIR_M461, 0x02), DATA_MAKE_NUM(DATADIR_M461, 0x03), DATA_MAKE_NUM(DATADIR_M461, 0x08) }; -s32 lbl_1_data_1D4[4] = { - 0x005A0004, - 0x005A0005, - 0x005A0006, - 0x005A0007 -}; +s32 lbl_1_data_1D4[4] + = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; -float lbl_1_data_1E4[3] = { - 0.3f, - 0.5f, - 0.9f -}; +float lbl_1_data_1E4[3] = { 0.3f, 0.5f, 0.9f }; -float lbl_1_data_1F0[10][2] = { - 0, 60, - 1860, 60, - 3660, 50, - 5460, 50, - 7260, 40, - 9060, 40, - 10860, 30, - 12660, 20, - 14460, 10, - -1, 10 -}; +float lbl_1_data_1F0[10][2] = { 0, 60, 1860, 60, 3660, 50, 5460, 50, 7260, 40, 9060, 40, 10860, 30, 12660, 20, 14460, 10, -1, 10 }; -Vec lbl_1_data_240[3] = { - { 0, 0, 2800 }, - { 2800, 0, 0 }, - { -2800, 0, 0 } -}; +Vec lbl_1_data_240[3] = { { 0, 0, 2800 }, { 2800, 0, 0 }, { -2800, 0, 0 } }; -s32 lbl_1_data_264[3] = { - 70, 30, 0 -}; +s32 lbl_1_data_264[3] = { 70, 30, 0 }; typedef struct data270_struct { Vec unk0; float unkC; } Data270Struct; -Data270Struct lbl_1_data_270[8] = { - {{ 200, 0, 1400 }, 180 }, - {{ -200, 0, 1400 }, 180 }, - {{ 200, 0, -1400 }, 0 }, - {{ -200, 0, -1400 }, 0 }, - {{ 1400, 0, 200 }, 270 }, - {{ 1400, 0, -200 }, 270 }, - {{ -1400, 0, 200 }, 90 }, - {{ -1400, 0, -200}, 90 } -}; +Data270Struct lbl_1_data_270[8] = { { { 200, 0, 1400 }, 180 }, { { -200, 0, 1400 }, 180 }, { { 200, 0, -1400 }, 0 }, { { -200, 0, -1400 }, 0 }, + { { 1400, 0, 200 }, 270 }, { { 1400, 0, -200 }, 270 }, { { -1400, 0, 200 }, 90 }, { { -1400, 0, -200 }, 90 } }; -Vec lbl_1_data_2F0[4] = { - { 600, 0, 600 }, - { 600, 0, -600 }, - { -600, 0, 600 }, - { -600, 0, -600 } -}; +Vec lbl_1_data_2F0[4] = { { 600, 0, 600 }, { 600, 0, -600 }, { -600, 0, 600 }, { -600, 0, -600 } }; void fn_1_512C(void) { - if(HuPadBtn[0] & PAD_BUTTON_X) { + if (HuPadBtn[0] & PAD_BUTTON_X) { lbl_1_bss_200 = 35999; } - print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d %d/%d %02x", lbl_1_bss_204, lbl_1_bss_A0->work[0], lbl_1_bss_1FA, lbl_1_bss_20, lbl_1_bss_24, lbl_1_bss_28); + print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d %d/%d %02x", lbl_1_bss_204, lbl_1_bss_A0->work[0], lbl_1_bss_1FA, lbl_1_bss_20, lbl_1_bss_24, + lbl_1_bss_28); print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); @@ -1257,14 +1257,16 @@ typedef struct work_bomhei { void fn_1_5438(Vec *pos) { float dist = VECDistance(pos, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0); - if(2000 < dist) { + if (2000 < dist) { return; } - if(1000 < dist) { + if (1000 < dist) { omVibrate(lbl_1_bss_18, 12, 6, 6); - } else if(300 < dist) { + } + else if (300 < dist) { omVibrate(lbl_1_bss_18, 12, 4, 2); - } else { + } + else { omVibrate(lbl_1_bss_18, 12, 12, 0); } } @@ -1272,40 +1274,40 @@ void fn_1_5438(Vec *pos) BOOL fn_1_5528(Vec *pos, float offset) { BOOL result = FALSE; - float ofs = 700-offset; + float ofs = 700 - offset; Mtx rotMtx; - - if(ofs < pos->x) { + + if (ofs < pos->x) { pos->x = ofs; } - if(ofs < pos->z) { + if (ofs < pos->z) { pos->z = ofs; } - if(-ofs > pos->x) { + if (-ofs > pos->x) { pos->x = -ofs; } - if(-ofs > pos->z) { + if (-ofs > pos->z) { pos->z = -ofs; } - if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + if (ofs == ABS(pos->x) || ofs == ABS(pos->z)) { result = TRUE; } MTXRotDeg(rotMtx, 'Y', 45); MTXMultVec(rotMtx, pos, pos); - ofs = (550*sqrtf(2))-offset; - if(ofs < pos->x) { + ofs = (550 * sqrtf(2)) - offset; + if (ofs < pos->x) { pos->x = ofs; } - if(ofs < pos->z) { + if (ofs < pos->z) { pos->z = ofs; } - if(-ofs > pos->x) { + if (-ofs > pos->x) { pos->x = -ofs; } - if(-ofs > pos->z) { + if (-ofs > pos->z) { pos->z = -ofs; } - if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + if (ofs == ABS(pos->x) || ofs == ABS(pos->z)) { result = TRUE; } MTXRotDeg(rotMtx, 'Y', -45); @@ -1315,19 +1317,20 @@ BOOL fn_1_5528(Vec *pos, float offset) void fn_1_5894(Vec *pos1, Vec *pos2, float radius1, float radius2) { - float dx = pos1->x-pos2->x; - float dz = pos1->z-pos2->z; - float dist = sqrtf((dx*dx)+(dz*dz)); - if(radius1+radius2 > dist) { - if(0.0f == dist) { + float dx = pos1->x - pos2->x; + float dz = pos1->z - pos2->z; + float dist = sqrtf((dx * dx) + (dz * dz)); + if (radius1 + radius2 > dist) { + if (0.0f == dist) { dx = 0; dz = -1; - } else { + } + else { dx /= dist; dz /= dist; } - pos1->x = pos2->x+(dx*(radius1+radius2)); - pos1->z = pos2->z+(dz*(radius1+radius2)); + pos1->x = pos2->x + (dx * (radius1 + radius2)); + pos1->z = pos2->z + (dz * (radius1 + radius2)); } } @@ -1338,9 +1341,9 @@ void fn_1_5A7C(WorkPlayer *player, omObjData *obj) player->unk58 = 2002; Hu3DMotionShiftSet(obj->model[0], obj->motion[3], 0, 8, HU3D_MOTATTR_NONE); distMin = 100000; - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { float dist = VECDistance(&lbl_1_data_240[i], &player->unk0); - if(distMin > dist) { + if (distMin > dist) { distMin = dist; player->unk3C = lbl_1_data_240[i]; } @@ -1359,45 +1362,47 @@ void fn_1_5BF4(WorkPlayer *player, omObjData *obj) player->unkC.x = 0; player->unkC.y = 0; player->unkC.z = 0; - player->unkC.x = player->unk4C/4.0f; - player->unkC.z = -(float)player->unk50/4.0f; + player->unkC.x = player->unk4C / 4.0f; + player->unkC.z = -(float)player->unk50 / 4.0f; action = 0; player->unk18.z = VECMagXZ(&player->unkC); - if(0.5f <= player->unk18.z) { - if(10.0f <= player->unk18.z) { + if (0.5f <= player->unk18.z) { + if (10.0f <= player->unk18.z) { player->unkC.x /= player->unk18.z; player->unkC.z /= player->unk18.z; player->unk18.z = 10; - player->unkC.x = 10*player->unkC.x; - player->unkC.z = 10*player->unkC.z; + player->unkC.x = 10 * player->unkC.x; + player->unkC.z = 10 * player->unkC.z; } player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(player->unkC.x, player->unkC.z), 0.4f); - if(7.0f <= player->unk18.z) { + if (7.0f <= player->unk18.z) { action = 2; - } else { + } + else { action = 1; } } VECAdd(&player->unk0, &player->unkC, &player->unk0); fn_1_5528(&player->unk0, 70); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { WorkBomhei *bomhei; - if(NULL == lbl_1_bss_4C[i]) { + if (NULL == lbl_1_bss_4C[i]) { continue; } bomhei = lbl_1_bss_4C[i]->data; - if(bomhei->unk34 == 3004 && 30 > Hu3DMotionTimeGet(lbl_1_bss_4C[i]->model[2])) { - float dx = player->unk0.x-bomhei->unk0.x; - float dz = player->unk0.z-bomhei->unk0.z; - if(200 > sqrtf((dx*dx)+(dz*dz))) { + if (bomhei->unk34 == 3004 && 30 > Hu3DMotionTimeGet(lbl_1_bss_4C[i]->model[2])) { + float dx = player->unk0.x - bomhei->unk0.x; + float dz = player->unk0.z - bomhei->unk0.z; + if (200 > sqrtf((dx * dx) + (dz * dz))) { lbl_1_bss_14 = 1; } - } else { + } + else { fn_1_5894(&player->unk0, &bomhei->unk0, 70, 70); } } fn_1_5528(&player->unk0, 70); - if(player->unk54 != action) { + if (player->unk54 != action) { player->unk54 = action; Hu3DMotionShiftSet(obj->model[0], obj->motion[player->unk54], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1409,73 +1414,74 @@ void fn_1_6A00(omObjData *obj) float dx; float dz; float dist; - switch(player->unk58) { + switch (player->unk58) { case 2000: - if(lbl_1_bss_A0->work[0] >= 1004) { + if (lbl_1_bss_A0->work[0] >= 1004) { player->unk58++; } break; - + case 2001: player->unk4C = HuPadStkX[player->unk60]; player->unk50 = HuPadStkY[player->unk60]; fn_1_5BF4(player, obj); - if(lbl_1_bss_A0->work[0] >= 1005) { - if(lbl_1_bss_14) { + if (lbl_1_bss_A0->work[0] >= 1005) { + if (lbl_1_bss_14) { fn_1_5A7C(player, obj); - } else { + } + else { player->unk58 = 2003; Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); } } break; - + case 2002: - dx = player->unk3C.x-player->unk0.x; - dz = player->unk3C.z-player->unk0.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(player->unk48 < dist) { - dx = player->unk48*(dx/dist); - dz = player->unk48*(dz/dist); + dx = player->unk3C.x - player->unk0.x; + dz = player->unk3C.z - player->unk0.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (player->unk48 < dist) { + dx = player->unk48 * (dx / dist); + dz = player->unk48 * (dz / dist); } player->unk18.x -= player->unk48; - if(0.0f > player->unk18.x) { + if (0.0f > player->unk18.x) { player->unk18.x += 360; } - player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(dx, dz)+180.0, 0.4f); + player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(dx, dz) + 180.0, 0.4f); player->unk0.x += dx; player->unk0.z += dz; - dist = VECDistance(&player->unk3C, &player->unk0)/VECDistance(&player->unk3C, &player->unk30); - player->unk0.y = 500*sind(dist*180); + dist = VECDistance(&player->unk3C, &player->unk0) / VECDistance(&player->unk3C, &player->unk30); + player->unk0.y = 500 * sind(dist * 180); player->unk48 *= 1.05f; - if(lbl_1_bss_10 >= 0) { + if (lbl_1_bss_10 >= 0) { HuAudFXEmiterUpDate(lbl_1_bss_10, &player->unk0); } - if(lbl_1_bss_C >= 0) { + if (lbl_1_bss_C >= 0) { HuAudFXEmiterUpDate(lbl_1_bss_C, &player->unk0); } fn_1_5438(&player->unk24); - if(lbl_1_bss_A0->work[0] >= 1007) { + if (lbl_1_bss_A0->work[0] >= 1007) { player->unk58 = 2005; HuAudSStreamPlay(4); } break; - + case 2003: - if(lbl_1_bss_A0->work[0] >= 1007) { + if (lbl_1_bss_A0->work[0] >= 1007) { player->unk58 = 2004; HuAudSStreamPlay(1); Hu3DMotionShiftSet(obj->model[0], obj->motion[4], 0, 8, HU3D_MOTATTR_NONE); } break; - + case 2004: player->unk18.y = fn_1_1E20(player->unk18.y, 0, 0.4f); break; - + case 2005: break; - + default: OSReport("*** player mode error(%d)!!\n", player->unk58); break; @@ -1496,7 +1502,7 @@ void fn_1_7328(omObjData *obj) player->unk54 = 0; obj->model[0] = CharModelCreate(lbl_1_data_0[player->unk5C], 2); CharModelStepTypeSet(lbl_1_data_0[player->unk5C], 0); - for(i=0; i<5; i++) { + for (i = 0; i < 5; i++) { obj->motion[i] = CharModelMotionCreate(lbl_1_data_0[player->unk5C], lbl_1_data_128[player->unk5C][i]); CharModelMotionSet(lbl_1_data_0[player->unk5C], obj->motion[i]); } @@ -1523,8 +1529,8 @@ void fn_1_75B0(WorkBomhei *bomhei, omObjData *obj) float *data1F0; bomhei->unk34 = 3003; bomhei->unk24 = 10; - for(data1F0=&lbl_1_data_1F0[0][0]; 0.0f<=data1F0[0]; data1F0 += 2) { - if(data1F0[0] <= lbl_1_bss_200) { + for (data1F0 = &lbl_1_data_1F0[0][0]; 0.0f <= data1F0[0]; data1F0 += 2) { + if (data1F0[0] <= lbl_1_bss_200) { bomhei->unk24 = data1F0[1]; } } @@ -1537,20 +1543,20 @@ void fn_1_75B0(WorkBomhei *bomhei, omObjData *obj) BOOL fn_1_76CC(WorkBomhei *bomhei) { - if(bomhei->unk34 == 3002) { - if(fn_1_5528(&bomhei->unk0, 70)) { + if (bomhei->unk34 == 3002) { + if (fn_1_5528(&bomhei->unk0, 70)) { return TRUE; } - } else { - float ofs = 700-70; - - if(ofs > bomhei->unk0.x && -ofs < bomhei->unk0.x) { - if(ofs > bomhei->unk0.z && -ofs < bomhei->unk0.z) { - if(bomhei->unk28 >= 0) { + } + else { + float ofs = 700 - 70; + + if (ofs > bomhei->unk0.x && -ofs < bomhei->unk0.x) { + if (ofs > bomhei->unk0.z && -ofs < bomhei->unk0.z) { + if (bomhei->unk28 >= 0) { lbl_1_bss_28 = lbl_1_bss_28 & ~(u32)(1 << bomhei->unk28); bomhei->unk28 = -1; } - } } } @@ -1559,35 +1565,36 @@ BOOL fn_1_76CC(WorkBomhei *bomhei) void fn_1_7AD8(WorkBomhei *bomhei, omObjData *obj) { - float radius = 10*lbl_1_data_1E4[bomhei->unk30]; + float radius = 10 * lbl_1_data_1E4[bomhei->unk30]; Vec playerOfs; Vec angle; - + s32 i; s32 state; BOOL temp_r25; - + angle.x = bomhei->unkC.y; - if(bomhei->unk34 == 3002) { - switch(bomhei->unk30) { + if (bomhei->unk34 == 3002) { + switch (bomhei->unk30) { case 0: bomhei->unk18.x--; - if(0.0f > bomhei->unk18.x) { + if (0.0f > bomhei->unk18.x) { radius = 0; - if(-bomhei->unk18.y > bomhei->unk18.x) { - bomhei->unk18.y = frandmod(120)+120; - bomhei->unk18.x = frandmod(120)+120; + if (-bomhei->unk18.y > bomhei->unk18.x) { + bomhei->unk18.y = frandmod(120) + 120; + bomhei->unk18.x = frandmod(120) + 120; } - } else { + } + else { bomhei->unk18.z--; - if(0.0f > bomhei->unk18.z) { - bomhei->unk18.z = frandmod(120)+120; - bomhei->unkC.z = frandf()*360; + if (0.0f > bomhei->unk18.z) { + bomhei->unk18.z = frandmod(120) + 120; + bomhei->unkC.z = frandf() * 360; } } angle.x = bomhei->unkC.z; break; - + case 1: case 2: VECSubtract(&((WorkPlayer *)lbl_1_bss_9C->data)->unk0, &bomhei->unk0, &playerOfs); @@ -1596,49 +1603,50 @@ void fn_1_7AD8(WorkBomhei *bomhei, omObjData *obj) } } bomhei->unkC.y = fn_1_1E20(bomhei->unkC.y, angle.x, 0.05f); - angle.z = radius*sind(bomhei->unkC.y); - angle.y = radius*cosd(bomhei->unkC.y); + angle.z = radius * sind(bomhei->unkC.y); + angle.y = radius * cosd(bomhei->unkC.y); bomhei->unk0.x += angle.z; bomhei->unk0.z += angle.y; - if(0.0f < radius) { + if (0.0f < radius) { bomhei->unkC.x = fn_1_1E20(bomhei->unkC.x, atan2d(angle.z, angle.y), 0.2f); } state = 0; - if(0.5f <= radius) { - if(7.0f <= radius) { + if (0.5f <= radius) { + if (7.0f <= radius) { state = 2; - } else { + } + else { state = 1; } } temp_r25 = FALSE; - if(fn_1_76CC(bomhei)) { + if (fn_1_76CC(bomhei)) { temp_r25 = TRUE; } fn_1_5894(&bomhei->unk0, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0, 70, 70); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { WorkBomhei *bomhei2; - if(NULL == lbl_1_bss_4C[i]) { + if (NULL == lbl_1_bss_4C[i]) { continue; } - if(obj == lbl_1_bss_4C[i]) { + if (obj == lbl_1_bss_4C[i]) { continue; } bomhei2 = lbl_1_bss_4C[i]->data; - if(bomhei2->unk34 != 3004) { + if (bomhei2->unk34 != 3004) { fn_1_5894(&bomhei->unk0, &bomhei2->unk0, 70, 70); } } - if(fn_1_76CC(bomhei)) { + if (fn_1_76CC(bomhei)) { temp_r25 = TRUE; } - if(temp_r25 && bomhei->unk30 == 0) { - float radius = frandf()*350; - float angle2 = frandf()*360; - bomhei->unkC.z = atan2d((radius*sind(angle2))-bomhei->unk0.x, (radius*cosd(angle2))-bomhei->unk0.z); - bomhei->unk18.z = frandmod(120)+120; + if (temp_r25 && bomhei->unk30 == 0) { + float radius = frandf() * 350; + float angle2 = frandf() * 360; + bomhei->unkC.z = atan2d((radius * sind(angle2)) - bomhei->unk0.x, (radius * cosd(angle2)) - bomhei->unk0.z); + bomhei->unk18.z = frandmod(120) + 120; } - if(bomhei->unk2C != state) { + if (bomhei->unk2C != state) { bomhei->unk2C = state; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk2C], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1650,61 +1658,61 @@ void fn_1_8D08(omObjData *obj) { WorkBomhei *bomhei = obj->data; s32 i; - switch(bomhei->unk34) { + switch (bomhei->unk34) { case 3000: - if(lbl_1_bss_A0->work[0] >= 1004) { + if (lbl_1_bss_A0->work[0] >= 1004) { bomhei->unk34 = 3002; } break; - + case 3001: fn_1_7AD8(bomhei, obj); - if(bomhei->unk28 < 0) { + if (bomhei->unk28 < 0) { bomhei->unk34 = 3002; } break; - + case 3002: fn_1_7AD8(bomhei, obj); bomhei->unk24--; - if(0.0f > bomhei->unk24) { + if (0.0f > bomhei->unk24) { fn_1_75B0(bomhei, obj); } break; - + case 3003: bomhei->unk24--; - if(0.0f > bomhei->unk24) { + if (0.0f > bomhei->unk24) { bomhei->unk34++; Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(obj->model[2], HU3D_MOTATTR_PAUSE|HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[2], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(obj->model[2], HU3D_ATTR_DISPOFF); HuAudFXEmiterPlay(2082, &bomhei->unk0); fn_1_5438(&bomhei->unk0); } break; - + case 3004: - if(Hu3DMotionEndCheck(obj->model[2])) { + if (Hu3DMotionEndCheck(obj->model[2])) { fn_1_9724(obj); return; } break; - + case 3005: break; - + default: OSReport("*** bomhei mode error(%d)!!\n", bomhei->unk34); break; } - if(bomhei->unk34 != 3004 && lbl_1_bss_A0->work[0] >= 1005) { + if (bomhei->unk34 != 3004 && lbl_1_bss_A0->work[0] >= 1005) { bomhei->unk34 = 3005; Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); } omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); omSetRot(obj, 0, bomhei->unkC.x, 0); - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelPosSet(obj->model[i], bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); Hu3DModelRotSet(obj->model[i], 0, bomhei->unkC.x, 0); } @@ -1718,27 +1726,30 @@ void fn_1_9164(omObjData *obj) omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); omSetRot(obj, 0, bomhei->unkC.x, 0); modelId = fn_1_AC(0x1000); - if(modelId < 0) { + if (modelId < 0) { obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); - } else { + } + else { obj->model[0] = modelId; } modelId = fn_1_AC(0x2000); - if(modelId < 0) { + if (modelId < 0) { obj->model[1] = Hu3DModelLink(lbl_1_bss_3C[1]); - } else { + } + else { obj->model[1] = modelId; } modelId = fn_1_AC(0x3000); - if(modelId < 0) { + if (modelId < 0) { obj->model[2] = Hu3DModelLink(lbl_1_bss_3C[2]); - } else { + } + else { obj->model[2] = modelId; } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { obj->motion[i] = lbl_1_bss_2C[i]; } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[i], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(obj->model[i], HU3D_MOTATTR_PAUSE); @@ -1750,8 +1761,8 @@ void fn_1_9164(omObjData *obj) Hu3DModelLayerSet(obj->model[2], 4); Hu3DModelShadowSet(obj->model[0]); Hu3DModelShadowSet(obj->model[1]); - for(i=0; i<20; i++) { - if(NULL == lbl_1_bss_4C[i]) { + for (i = 0; i < 20; i++) { + if (NULL == lbl_1_bss_4C[i]) { lbl_1_bss_4C[i] = obj; break; } @@ -1777,10 +1788,10 @@ void fn_1_956C(Vec *pos, float rotY, s32 type, s32 mode, s32 time) bomhei->unk28 = time; bomhei->unkC.y = bomhei->unkC.x; bomhei->unkC.z = bomhei->unkC.x; - bomhei->unk18.x = frandmod(120)+120; - bomhei->unk18.y = frandmod(120)+120; - bomhei->unk18.z = frandmod(120)+120; - bomhei->unk24 = frandmod(300)+180; + bomhei->unk18.x = frandmod(120) + 120; + bomhei->unk18.y = frandmod(120) + 120; + bomhei->unk18.z = frandmod(120) + 120; + bomhei->unk24 = frandmod(300) + 180; bomhei->unk2C = 0; } @@ -1788,15 +1799,15 @@ void fn_1_9724(omObjData *obj) { s32 i; lbl_1_bss_20--; - for(i=0; i<20; i++) { - if(obj == lbl_1_bss_4C[i]) { + for (i = 0; i < 20; i++) { + if (obj == lbl_1_bss_4C[i]) { lbl_1_bss_4C[i] = NULL; break; } } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); - fn_1_24((i*4096)+4096, obj->model[i]); + fn_1_24((i * 4096) + 4096, obj->model[i]); } omDelObjEx(lbl_1_bss_238, obj); } @@ -1819,50 +1830,50 @@ typedef struct work_bomhei2 { void fn_1_9854(void) { - if(lbl_1_bss_200 % 900 == 0) { - if(++lbl_1_bss_24 >= 20) { + if (lbl_1_bss_200 % 900 == 0) { + if (++lbl_1_bss_24 >= 20) { lbl_1_bss_24 = 20; } } - if(lbl_1_bss_200 % 1800 == 0) { - if(lbl_1_data_264[2] < 40) { + if (lbl_1_bss_200 % 1800 == 0) { + if (lbl_1_data_264[2] < 40) { lbl_1_data_264[2] += 10; - if(lbl_1_data_264[2] > 100) { + if (lbl_1_data_264[2] > 100) { lbl_1_data_264[2] = 100; } lbl_1_data_264[1] -= 5; - if(lbl_1_data_264[1] < 0) { + if (lbl_1_data_264[1] < 0) { lbl_1_data_264[1] = 0; lbl_1_data_264[0] -= 5; } lbl_1_data_264[0] -= 5; - if(lbl_1_data_264[0] < 0) { + if (lbl_1_data_264[0] < 0) { lbl_1_data_264[0] = 0; } } } - if(lbl_1_bss_24 > lbl_1_bss_20) { + if (lbl_1_bss_24 > lbl_1_bss_20) { Data270Struct *data270 = NULL; s32 bitNum = frandmod(8); s32 i; - for(i=0; i<8; i++) { - if(((1 << bitNum) & lbl_1_bss_28) == 0) { + for (i = 0; i < 8; i++) { + if (((1 << bitNum) & lbl_1_bss_28) == 0) { data270 = &lbl_1_data_270[bitNum]; lbl_1_bss_28 |= (1 << bitNum); (void)i; break; } bitNum++; - if(bitNum >= 8) { + if (bitNum >= 8) { bitNum -= 8; } } - if(NULL != data270) { + if (NULL != data270) { s32 type = 2; s32 chance = frandmod(100); Vec pos; - for(i=0; i<3; i++) { - if(lbl_1_data_264[i] > chance) { + for (i = 0; i < 3; i++) { + if (lbl_1_data_264[i] > chance) { type = i; break; } @@ -1893,12 +1904,13 @@ WorkBomhei2 *fn_1_9CAC(omObjFunc func, s32 prio) bomhei->unk8.y = 10; bomhei->unk8.z = 0; modelId = fn_1_AC(0x1000); - if(modelId < 0) { + if (modelId < 0) { obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); - } else { + } + else { obj->model[0] = modelId; } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { obj->motion[i] = lbl_1_bss_2C[i]; } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); @@ -1920,27 +1932,27 @@ void fn_1_9EF4(omObjData *obj) float vel = 3; float dx; float dz; - + s32 state; - switch(bomhei->unk44) { + switch (bomhei->unk44) { case 0: - if(bomhei->unk3C != 1) { + if (bomhei->unk3C != 1) { bomhei->unk3C = 1; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } - dx = bomhei->unk14.x-bomhei->unk8.x; - dz = bomhei->unk14.z-bomhei->unk8.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(vel < dist) { - dx = vel*(dx/dist); - dz = vel*(dz/dist); + dx = bomhei->unk14.x - bomhei->unk8.x; + dz = bomhei->unk14.z - bomhei->unk8.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (vel < dist) { + dx = vel * (dx / dist); + dz = vel * (dz / dist); } bomhei->unk8.x += dx; bomhei->unk8.z += dz; bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(dx, dz), 0.4f); bomhei->unk30 = bomhei->unk2C; - if(vel > dist) { - switch(bomhei->unk40) { + if (vel > dist) { + switch (bomhei->unk40) { case 1: case 2: bomhei->unk44 = 1; @@ -1948,30 +1960,29 @@ void fn_1_9EF4(omObjData *obj) bomhei->unk3C = 0; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); break; - + default: bomhei->unk44 = 3; break; } } break; - + case 1: - bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(parent->unk8.x-bomhei->unk8.x, parent->unk8.z-bomhei->unk8.z), 0.05f); + bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(parent->unk8.x - bomhei->unk8.x, parent->unk8.z - bomhei->unk8.z), 0.05f); bomhei->unk30 = bomhei->unk2C; - parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(bomhei->unk8.x-parent->unk8.x, bomhei->unk8.z-parent->unk8.z), 0.05f); + parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(bomhei->unk8.x - parent->unk8.x, bomhei->unk8.z - parent->unk8.z), 0.05f); parent->unk30 = parent->unk2C; bomhei->unk34++; - if(180.0f < bomhei->unk34) { + if (180.0f < bomhei->unk34) { bomhei->unk44 = 3; - if(bomhei->unk40 == 2) { + if (bomhei->unk40 == 2) { bomhei->unk44 = 2; } } break; - - case 2: - { + + case 2: { Vec temp = parent->unk8; float tempAngle = parent->unk2C; parent->unk20 = parent->unk8; @@ -1982,40 +1993,39 @@ void fn_1_9EF4(omObjData *obj) bomhei->unk30 = tempAngle; bomhei->unk34 = 0; bomhei->unk44 = 3; - } - break; - + } break; + case 3: - bomhei->unk30 = fn_1_1E20(bomhei->unk30, atan2d(bomhei->unk20.x-bomhei->unk14.x, bomhei->unk20.z-bomhei->unk14.z), 0.2f); + bomhei->unk30 = fn_1_1E20(bomhei->unk30, atan2d(bomhei->unk20.x - bomhei->unk14.x, bomhei->unk20.z - bomhei->unk14.z), 0.2f); bomhei->unk2C = bomhei->unk30; - bomhei->unk8.x += vel*sind(bomhei->unk30); - bomhei->unk8.z += vel*cosd(bomhei->unk30); - if(bomhei->unk3C != 1) { + bomhei->unk8.x += vel * sind(bomhei->unk30); + bomhei->unk8.z += vel * cosd(bomhei->unk30); + if (bomhei->unk3C != 1) { bomhei->unk3C = 1; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(-parent->unk8.x, -parent->unk8.z), 0.05f); bomhei->unk34++; - if(bomhei->unk40 == 2 && 60.0f < bomhei->unk34) { - dx = parent->unk20.x-parent->unk8.x; - dz = parent->unk20.z-parent->unk8.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(vel < dist) { - dx = vel*(dx/dist); - dz = vel*(dz/dist); + if (bomhei->unk40 == 2 && 60.0f < bomhei->unk34) { + dx = parent->unk20.x - parent->unk8.x; + dz = parent->unk20.z - parent->unk8.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (vel < dist) { + dx = vel * (dx / dist); + dz = vel * (dz / dist); } parent->unk8.x += dx; parent->unk8.z += dz; state = 0; - if(0.0f < dist) { + if (0.0f < dist) { state = 1; } - if(state != parent->unk3C) { + if (state != parent->unk3C) { parent->unk3C = state; Hu3DMotionShiftSet(parent->unk0->model[0], parent->unk0->motion[parent->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } } - if(1750 < VECMagXZ(&bomhei->unk8)) { + if (1750 < VECMagXZ(&bomhei->unk8)) { parent->unk4 = NULL; Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); fn_1_24(0x1000, obj->model[0]); @@ -2026,9 +2036,9 @@ void fn_1_9EF4(omObjData *obj) } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); omSetRot(obj, 0, bomhei->unk2C, 0); - if(bomhei->unk38) { + if (bomhei->unk38) { bomhei->unk38 = 0; - Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0]) * frandf()); Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); } } @@ -2037,43 +2047,44 @@ s32 fn_1_ADDC(WorkBomhei2 *parent, WorkBomhei2 *bomhei) { parent->unk4 = bomhei->unk0; bomhei->unk4 = parent->unk0; - bomhei->unk40 = frandmod(3); + bomhei->unk40 = frandmod(3); bomhei->unk44 = 0; - bomhei->unk14.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk14.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); - if(lbl_1_bss_204 & 0x1) { - bomhei->unk8.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk8.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); - bomhei->unk20.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk20.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); - } else { - bomhei->unk8.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk8.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); - bomhei->unk20.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk20.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk14.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk14.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + if (lbl_1_bss_204 & 0x1) { + bomhei->unk8.x = 1400.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 1400.0f * ((0 > parent->unk8.z) ? -1 : 1); } - bomhei->unk2C = atan2d(bomhei->unk14.x-bomhei->unk8.x, bomhei->unk14.z-bomhei->unk8.z); + else { + bomhei->unk8.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 1400.0f * ((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 1400.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + } + bomhei->unk2C = atan2d(bomhei->unk14.x - bomhei->unk8.x, bomhei->unk14.z - bomhei->unk8.z); bomhei->unk30 = bomhei->unk2C; } void fn_1_B234(omObjData *obj) { WorkBomhei2 *bomhei = obj->data; - if(NULL == bomhei->unk4) { + if (NULL == bomhei->unk4) { bomhei->unk2C = atan2d(-bomhei->unk8.x, -bomhei->unk8.z); bomhei->unk48--; - if(0.0f > bomhei->unk48) { + if (0.0f > bomhei->unk48) { WorkBomhei2 *bomheiNew; - bomhei->unk48 = frandmod(1200)+300; + bomhei->unk48 = frandmod(1200) + 300; bomheiNew = fn_1_9CAC(fn_1_9EF4, 102); fn_1_ADDC(bomhei, bomheiNew); } } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); omSetRot(obj, 0, bomhei->unk2C, 0); - if(bomhei->unk38) { + if (bomhei->unk38) { bomhei->unk38 = 0; - Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0]) * frandf()); Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); } } @@ -2082,15 +2093,15 @@ void fn_1_D70C(omObjData *obj); void fn_1_BA2C(omObjData *obj) { - if(omSysExitReq) { + if (omSysExitReq) { fn_1_1F58(-1); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); obj->func = fn_1_D70C; } lbl_1_bss_204++; - switch(obj->work[0]) { + switch (obj->work[0]) { case 1000: - if(!WipeStatGet()) { + if (!WipeStatGet()) { Vec dir; obj->work[0]++; lbl_1_bss_1C = 0; @@ -2100,61 +2111,63 @@ void fn_1_BA2C(omObjData *obj) VECNormalize(&dir, &dir); HuAudFXListnerSetEX(&lbl_1_bss_220, &dir, 14000.0, 36000.0, 1000.0, 300.0, 300.0); } - + break; - + case 1001: lbl_1_bss_1C++; - if(30.0f < lbl_1_bss_1C) { + if (30.0f < lbl_1_bss_1C) { obj->work[0]++; lbl_1_bss_1C = 0; } break; - + case 1002: lbl_1_bss_1C++; - fn_1_13DC(lbl_1_bss_1C/120, &lbl_1_data_D0); - if(120.0f <= lbl_1_bss_1C) { + fn_1_13DC(lbl_1_bss_1C / 120, &lbl_1_data_D0); + if (120.0f <= lbl_1_bss_1C) { obj->work[0]++; lbl_1_bss_1C = 0; fn_1_1350(&lbl_1_data_C4, &lbl_1_data_D0, &lbl_1_data_DC); } break; - + case 1003: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqStartCreate(); - } else { - if(lbl_1_bss_1F4 < 0 && (MGSeqStatGet(lbl_1_bss_1FA) & 0x10)) { + } + else { + if (lbl_1_bss_1F4 < 0 && (MGSeqStatGet(lbl_1_bss_1FA) & 0x10)) { fn_1_1F24(70); } - if(MGSeqStatGet(lbl_1_bss_1FA) == 0) { + if (MGSeqStatGet(lbl_1_bss_1FA) == 0) { obj->work[0]++; lbl_1_bss_1FA = -1; } } break; - + case 1004: lbl_1_bss_200++; fn_1_580(lbl_1_bss_1AC, 0, lbl_1_bss_200); - if(lbl_1_bss_14 || 35999 <= lbl_1_bss_200) { + if (lbl_1_bss_14 || 35999 <= lbl_1_bss_200) { obj->work[0] = 1005; lbl_1_bss_1C = 0; } fn_1_9854(); break; - + case 1005: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqFinishCreate(); fn_1_1F58(100); mgRecordExtra = lbl_1_bss_200; - } else { + } + else { lbl_1_bss_1C++; - if(60.0f < lbl_1_bss_1C && !MGSeqStatGet(lbl_1_bss_1FA)) { + if (60.0f < lbl_1_bss_1C && !MGSeqStatGet(lbl_1_bss_1FA)) { obj->work[0] = 1007; - if(lbl_1_bss_1FC < lbl_1_bss_200) { + if (lbl_1_bss_1FC < lbl_1_bss_200) { obj->work[0] = 1006; fn_1_798(13); } @@ -2163,29 +2176,30 @@ void fn_1_BA2C(omObjData *obj) } } break; - + case 1006: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqRecordCreate(lbl_1_bss_1FC); - } else { - if(!MGSeqStatGet(lbl_1_bss_1FA)) { + } + else { + if (!MGSeqStatGet(lbl_1_bss_1FA)) { obj->work[0]++; lbl_1_bss_1C = 0; lbl_1_bss_1FA = -1; } } break; - + case 1007: lbl_1_bss_1C++; - if(210.0f < lbl_1_bss_1C) { + if (210.0f < lbl_1_bss_1C) { fn_1_1F58(-1); lbl_1_bss_1FA = -1; WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); obj->func = fn_1_D70C; } break; - + default: OSReport("*** main mode error(%d)!!\n", obj->work[0]); break; @@ -2196,23 +2210,23 @@ void fn_1_BA2C(omObjData *obj) void fn_1_C970(omObjData *obj) { s32 i; - obj->model[0] = Hu3DModelCreateFile(0x5A0000); - Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + obj->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x00)); + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(obj->model[0], 0); Hu3DModelShadowMapSet(obj->model[0]); omSetTra(obj, 0, 0, 0); omSetRot(obj, 0, 0, 0); - obj->model[1] = Hu3DModelCreateFile(0x5A0001); - Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + obj->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x01)); + Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(obj->model[1], 1); Hu3DModelShadowSet(obj->model[1]); Hu3DModelPosSet(obj->model[1], 0, 0, 0); Hu3DModelRotSet(obj->model[1], 0, 0, 0); - fn_1_B4C(64, 0x5A0009); + fn_1_B4C(64, DATA_MAKE_NUM(DATADIR_M461, 0x09)); fn_1_9EC(); - for(i=0; i<2; i++) { + for (i = 0; i < 2; i++) { Hu3DModelAttrReset(obj->model[i], HU3D_ATTR_DISPOFF); } HuAudFXPlay(2085); @@ -2254,45 +2268,45 @@ void ObjectSetup(void) Hu3DShadowTPLvlSet(0.5f); Hu3DShadowPosSet(&lbl_1_data_104, &lbl_1_data_11C, &lbl_1_data_110); fn_1_0(); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { s32 modelId; lbl_1_bss_4C[i] = NULL; - modelId = Hu3DModelCreateFile(0x5A0008); + modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x08)); Hu3DModelAttrSet(modelId, HU3D_ATTR_DISPOFF); fn_1_24(12288, modelId); } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { lbl_1_bss_3C[i] = Hu3DModelCreateFile(lbl_1_data_1C8[i]); - Hu3DModelAttrSet(lbl_1_bss_3C[i], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_3C[i], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { lbl_1_bss_2C[i] = Hu3DJointMotionFile(lbl_1_bss_3C[0], lbl_1_data_1D4[i]); } lbl_1_bss_28 = 0; lbl_1_bss_20 = 0; lbl_1_bss_24 = 10; - angle = 360.0f*frandf(); + angle = 360.0f * frandf(); radiusPrev = -1; - for(i=0; iunk8 = lbl_1_data_2F0[i]; bomhei2->unk2C = atan2d(-bomhei2->unk8.x, -bomhei2->unk8.z); - bomhei2->unk48 = frandmod(1200)+300; + bomhei2->unk48 = frandmod(1200) + 300; } lbl_1_bss_9C = omAddObjEx(lbl_1_bss_238, 100, 1, 5, -1, fn_1_7328); lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_238, 104, 2, 0, -1, fn_1_C970); @@ -2303,18 +2317,18 @@ void ObjectSetup(void) void fn_1_D70C(omObjData *obj) { s32 i; - if(WipeStatGet()) { + if (WipeStatGet()) { return; } - if(lbl_1_bss_1FA >= 0) { + if (lbl_1_bss_1FA >= 0) { MGSeqKill(lbl_1_bss_1FA); } - if(lbl_1_bss_1F8 >= 0) { + if (lbl_1_bss_1F8 >= 0) { MGSeqKill(lbl_1_bss_1F8); } MGSeqKillAll(); HuAudAllStop(); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); } omOvlReturnEx(1, 1); diff --git a/src/REL/m462Dll/main.c b/src/REL/m462Dll/main.c new file mode 100755 index 00000000..4b10f621 --- /dev/null +++ b/src/REL/m462Dll/main.c @@ -0,0 +1,1697 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06[8]; + /* 0x16 */ s16 unk16[4]; + /* 0x1E */ s16 unk1E; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ char unk38[4]; + /* 0x3C */ s32 unk3C; + /* 0x40 */ char unk40[4]; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ Vec unk4C; + /* 0x58 */ float unk58; + /* 0x5C */ float unk5C; + /* 0x60 */ Vec unk60; + /* 0x6C */ float unk6C; + /* 0x70 */ float unk70; + /* 0x74 */ float unk74; + /* 0x78 */ Vec unk78; + /* 0x84 */ float unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; + /* 0x94 */ float unk94; +} StructBss340; // Size 0x98 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04[3]; + /* 0x0A */ char unk0A[2]; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ Vec unk14; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; +} StructBss70; // Size 0x48 + +void fn_1_4A0(void); +float fn_1_14B4(float arg0); +void fn_1_174C(void); +void fn_1_17A0(s32 arg0, s32 arg1); +void fn_1_44D8(void); +void fn_1_4BC4(void); +void fn_1_69C0(void); +void fn_1_7D40(void); +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_7DA0(void); +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4); + +s16 lbl_1_bss_3EA; +s16 lbl_1_bss_3E8; +s32 lbl_1_bss_3E4; +s32 lbl_1_bss_3E0; +s32 lbl_1_bss_3DC; +s32 lbl_1_bss_3D8; +StructBss340 lbl_1_bss_340[1]; +StructBss70 lbl_1_bss_70[10]; +StructBss70 lbl_1_bss_28; +omObjData *lbl_1_bss_24; +Vec lbl_1_bss_18; +Vec lbl_1_bss_C; +Vec lbl_1_bss_0; + +s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; + +Vec lbl_1_data_30[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; + +Vec lbl_1_data_90[] = { { -900.0f, 143.0f, -1020.0f }, { -677.0f, 143.0f, -1020.0f }, { 900.0f, 0.0f, -1150.0f }, { -307.0f, 182.0f, -1575.0f } }; + +s32 lbl_1_data_C0[][5] = { { 50, 80, 90, 95, 100 }, { 5, 55, 85, 95, 100 }, { 0, 5, 55, 90, 100 } }; + +float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f }; + +void ObjectSetup(void) +{ + Process *temp_r3; + + temp_r3 = omInitObjMan(50, 0x2000); + omGameSysInit(temp_r3); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_24 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_24->work[0] = 1; + CRotM->x = -26.0f; + CRotM->y = 0.0f; + CRotM->z = 0.0f; + CenterM->x = 0.0f; + CenterM->y = 0.0f; + CenterM->z = -295.0f; + CZoomM[0] = 3030.0f; + Hu3DLighInit(); + lbl_1_bss_3EA = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 255, 50, 0); + Hu3DGLightPosAimSet(lbl_1_bss_3EA, -2500.0f, 3535.5f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_3EA); + lbl_1_bss_18.x = -2500.0f; + lbl_1_bss_18.y = 3535.5f; + lbl_1_bss_18.z = 2500.0f; + lbl_1_bss_C.x = lbl_1_bss_C.z = 0.0f; + lbl_1_bss_C.y = 1.0f; + lbl_1_bss_0.x = 0.0f; + lbl_1_bss_0.y = 0.0f; + lbl_1_bss_0.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_bss_18, &lbl_1_bss_C, &lbl_1_bss_0); + Hu3DBGColorSet(0, 0, 0); + fn_1_4A0(); + HuPrcChildCreate(fn_1_7DA0, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); +} + +void fn_1_4A0(void) +{ + float temp_f31; + float temp_f30; + void *var_r27; + StructBss340 *temp_r31; + StructBss70 *temp_r29; + Process *var_r25; + AnimData *var_r24; + AnimData *spC[4]; + s16 var_r30; + s16 var_r23; + s16 sp8; + s32 i; + s32 j; + + lbl_1_bss_3E0 = 0; + lbl_1_bss_3D8 = 0; + HuAudSndGrpSet(0x2C); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 0), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + lbl_1_bss_3E8 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + i = 0; + temp_r31 = &lbl_1_bss_340[i]; + temp_r31->unk20 = i; + temp_r31->unk24 = i; + temp_r31->unk28 = GWPlayerCfg[i].pad_idx; + temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 1); + CharModelLayerSetAll(2); + temp_r31->unk78.x = lbl_1_data_30[GWPlayerCfg[i].character].x; + temp_r31->unk78.y = lbl_1_data_30[GWPlayerCfg[i].character].y; + temp_r31->unk78.z = lbl_1_data_30[GWPlayerCfg[i].character].z; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk78.x, temp_r31->unk78.y, temp_r31->unk78.z); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 1), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk00 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(temp_r31->unk00, 1); + temp_r31->unk60.x = temp_r31->unk60.z = 0.0f; + temp_r31->unk60.y = 180.0f; + temp_r31->unk4C.x = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk4C.z = 0.0f; + temp_r31->unk60.y = fn_1_14B4(temp_r31->unk60.y + 180.0f); + temp_r31->unk94 = temp_r31->unk60.y; + temp_r31->unk84 = 200.0f; + temp_r31->unk88 = 6.75f; + temp_r31->unk8C = 1.0f; + temp_r31->unk90 = 1.0f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + Hu3DModelShadowSet(temp_r31->unk00); + Hu3DModelHookSet(temp_r31->unk00, "itemhook_c", temp_r31->unk02); + for (j = 0; j < 4; j++) { + temp_r31->unk16[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], lbl_1_data_20[j]); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk16[0]); + CharModelMotionTimeSet(lbl_1_data_0[GWPlayerCfg[i].character], 60.0f); + CharModelVoiceEnableSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk16[2], 0); + for (j = 0; j < 8; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 2 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk06[j] = Hu3DJointMotion(temp_r31->unk00, var_r27); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 10), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk04 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_69C0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_545C); + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_594C); + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_5DE4); + HuDataDirClose(DATADIR_EFFECT); + for (i = 0; i < 10; i++) { + temp_r29 = &lbl_1_bss_70[i]; + temp_r29->unk30 = 50.0f; + do { + temp_f31 = 1380.0f * frandf() - 690.0f; + temp_f30 = 1380.0f * frandf() - 690.0f; + } while (fn_1_1880(temp_f31, temp_f30, 50.0f, i, -1) != 0); + temp_r29->unk24 = temp_f31; + temp_r29->unk14.x = temp_f31; + temp_r29->unk14.y = 0.0f; + temp_r29->unk28 = temp_f30; + temp_r29->unk14.z = temp_f30; + } + for (i = 0; i < 10; i++) { + temp_r29 = &lbl_1_bss_70[i]; + if (i == 0) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + var_r23 = var_r30; + } + else { + var_r30 = Hu3DModelLink(var_r23); + } + temp_r29->unk00 = var_r30; + temp_r29->unk0C = i; + temp_r29->unk30 = 50.0f; + temp_r29->unk10 = 0; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, temp_r29->unk14.x, temp_r29->unk14.y, temp_r29->unk14.z); + temp_r29->unk20 = 0.0f; + temp_r29->unk34 = 6.75f * lbl_1_data_FC[0]; + for (j = 0; j < 3; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 13 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r29->unk04[j] = Hu3DJointMotion(var_r30, var_r27); + } + Hu3DMotionSet(var_r30, temp_r29->unk04[1]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 11), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + sp8 = var_r30; + temp_r29->unk02 = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r30, 3); + var_r25 = HuPrcChildCreate(fn_1_4BC4, 0x1000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r29; + } + for (i = 0; i < 2; i++) { + var_r30 = Hu3DModelLink(var_r23); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 16), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27)); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, lbl_1_data_90[i].x, lbl_1_data_90[i].y, lbl_1_data_90[i].z); + if (i != 0) { + Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 2.0f); + } + } + var_r30 = Hu3DModelLink(var_r23); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 19), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27)); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, lbl_1_data_90[3].x, lbl_1_data_90[3].y, lbl_1_data_90[3].z); + Hu3DMotionSpeedSet(var_r30, 0.7f); + temp_r29 = &lbl_1_bss_28; + var_r30 = Hu3DModelLink(var_r23); + temp_r29->unk00 = var_r30; + for (j = 0; j < 2; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 17 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r29->unk04[j] = Hu3DJointMotion(var_r30, var_r27); + } + Hu3DMotionSet(var_r30, temp_r29->unk04[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + temp_r29->unk14.x = lbl_1_data_90[2].x; + temp_r29->unk14.y = lbl_1_data_90[2].y; + temp_r29->unk14.z = lbl_1_data_90[2].z; + Hu3DModelPosSet(var_r30, temp_r29->unk14.x, temp_r29->unk14.y, temp_r29->unk14.z); + var_r25 = HuPrcChildCreate(fn_1_44D8, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r29; + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 44), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[0] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 55), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[1] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 48), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[2] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 49), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[3] = HuSprAnimRead(var_r27); + lbl_1_bss_3DC = HuSprGrpCreate(6); + var_r30 = HuSprCreate(spC[0], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 0, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 0, 0.0f, 0.0f); + HuSprTPLvlSet(lbl_1_bss_3DC, 0, 0.5f); + HuSprColorSet(lbl_1_bss_3DC, 0, 0, 0, 0); + var_r30 = HuSprCreate(spC[1], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 1, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 1, -19.0f, -9.0f); + var_r30 = HuSprCreate(spC[2], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 2, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 2, 20.0f, -8.0f); + var_r30 = HuSprCreate(spC[2], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 3, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 3, 2.0f, -8.0f); + var_r30 = HuSprCreate(spC[3], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 4, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 4, 20.0f, 8.0f); + var_r30 = HuSprCreate(spC[3], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 5, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 5, 2.0f, 8.0f); + HuSprGrpPosSet(lbl_1_bss_3DC, 511.0f, 61.0f); + fn_1_17A0(lbl_1_bss_3D8, 0); + fn_1_17A0(GWMGRecordGet(14), 1); + fn_1_174C(); + HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +float fn_1_14B4(float arg0) +{ + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +float fn_1_1534(float arg0, float arg1) +{ + float var_f31; + + if (arg0 > 750.0f - arg1) { + var_f31 = 750.0f; + } + else if (arg0 < -(750.0f - arg1)) { + var_f31 = 750.0f; + } + else { + var_f31 = 750.0f; + } + return var_f31; +} + +float fn_1_15B4(float arg0, float arg1) +{ + return fn_1_1534(arg0, arg1); +} + +void fn_1_1634(void) +{ + float var_f31; + float temp_f30; + s32 i; + + var_f31 = 0.0f; + while (TRUE) { + var_f31 += 16.0f; + temp_f30 = 1.0 + 0.2f * sind(var_f31); + for (i = 0; i < 3; i++) { + HuSprScaleSet(lbl_1_bss_3DC, i + 1, temp_f30, temp_f30); + } + HuPrcVSleep(); + } +} + +void fn_1_16F8(void) +{ + s32 i; + + for (i = 0; i < 6; i++) { + HuSprAttrReset(lbl_1_bss_3DC, i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_174C(void) +{ + s32 i; + + for (i = 0; i < 6; i++) { + HuSprAttrSet(lbl_1_bss_3DC, i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_17A0(s32 arg0, s32 arg1) +{ + s32 var_r31; + + if (arg1 != 0) { + var_r31 = 2; + } + else { + var_r31 = 4; + } + HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10); + HuSprBankSet(lbl_1_bss_3DC, var_r31 + 1, arg0 / 10); + HuSprAttrReset(lbl_1_bss_3DC, var_r31 + 1, HUSPR_ATTR_DISPOFF); +} + +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ + Vec sp34; + Vec sp28; + Vec sp1C; + s32 i; + StructBss70 *temp_r30; + StructBss340 *var_r29; + + if (arg3 > 10) { + arg3 = 10; + } + HuSetVecF(&sp34, arg0, 0.0, arg1); + for (i = 0; i < arg3; i++) { + if (arg4 == i) { + continue; + } + temp_r30 = &lbl_1_bss_70[i]; + HuSetVecF(&sp28, temp_r30->unk14.x, 0.0, temp_r30->unk14.z); + HuSubVecF(&sp1C, &sp34, &sp28); + if (VECMagXZ(&sp1C) < temp_r30->unk30 + arg2) { + break; + } + } + if (i < arg3) { + return 1; + } + var_r29 = &lbl_1_bss_340[0]; + HuSetVecF(&sp28, var_r29->unk4C.x, 0.0, var_r29->unk4C.z); + HuSubVecF(&sp1C, &sp34, &sp28); + if (VECMagXZ(&sp1C) < var_r29->unk84 + arg2) { + return 1; + } + return 0; +} + +s32 fn_1_1BD4(StructBss70 *arg0) +{ + float var_f31; + float var_f30; + s32 var_r31; + + var_r31 = 0; + var_f31 = fn_1_1534(arg0->unk14.z, arg0->unk30); + var_f30 = fn_1_1534(arg0->unk14.x, arg0->unk30); + if (arg0->unk14.x > var_f31 - arg0->unk30) { + var_r31 = 1; + arg0->unk14.x = var_f31 - arg0->unk30; + } + if (arg0->unk14.x < -(var_f31 - arg0->unk30)) { + var_r31 = 1; + arg0->unk14.x = -(var_f31 - arg0->unk30); + } + if (arg0->unk14.z > var_f30 - arg0->unk30) { + var_r31 = 1; + arg0->unk14.z = var_f30 - arg0->unk30; + } + if (arg0->unk14.z < -(var_f30 - arg0->unk30)) { + var_r31 = 1; + arg0->unk14.z = -(var_f30 - arg0->unk30); + } + return var_r31; +} + +void fn_1_1E10(StructBss70 *arg0) +{ + Vec sp104; + Vec spF8; + Vec spEC; + float temp_f21; + float temp_f20; + float var_f19; + float var_f26; + float spC4; + float spC0; + float spBC; + float spB8; + float spB4; + float spB0; + float spAC; + float spA0; + StructBss70 *var_r30; + StructBss70 *temp_r28; + s32 temp_r19; + s32 var_r21; + s32 i; + + if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) == 0) { + return; + } + var_f19 = fn_1_14B4(atan2d(arg0->unk14.x - arg0->unk24, arg0->unk14.z - arg0->unk28)); + temp_f21 = spB8 = arg0->unk24; + temp_f20 = spB4 = arg0->unk28; + spAC = 1.0f; + for (var_r21 = 1.0f + arg0->unk34 / spAC; var_r21 != 0; var_r21--) { + temp_f21 += spAC * sind(var_f19); + temp_f20 += spAC * cosd(var_f19); + HuSetVecF(&sp104, temp_f21, arg0->unk14.y, temp_f20); + for (i = 0; i < 10; i++) { + if (i == arg0->unk0C) { + continue; + } + var_r30 = &lbl_1_bss_70[i]; + HuSetVecF(&spF8, var_r30->unk14.x, var_r30->unk14.y, var_r30->unk14.z); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXYZ(&spEC) < arg0->unk30 + var_r30->unk30) { + break; + } + } + if (i < 10) { + break; + } + if (fn_1_1BD4(arg0)) { + goto block_end; + } + spB8 = temp_f21; + spB4 = temp_f20; + } + var_f19 = fn_1_14B4(atan2d(arg0->unk14.x - arg0->unk24, arg0->unk14.z - arg0->unk28)); + var_f26 = fn_1_14B4(atan2d(var_r30->unk14.x - arg0->unk24, var_r30->unk14.z - arg0->unk28)); + spC0 = var_f19 - var_f26; + if (spC0 > 0.0f) { + spBC = -0.5f; + } + else { + spBC = 0.5f; + } + if (ABS_INV(var_f19 - var_f26) > 180.0f) { + spBC = -spBC; + } + var_f26 = fn_1_14B4(atan2d(arg0->unk24 - var_r30->unk14.x, arg0->unk28 - var_r30->unk14.z)); + spB0 = 0.8f * arg0->unk34; + temp_r19 = var_r30->unk0C; + spC4 = arg0->unk30 + var_r30->unk30 + 1.0f; + while (TRUE) { + temp_f21 = var_r30->unk14.x + spC4 * sind(var_f26); + temp_f20 = var_r30->unk14.z + spC4 * cosd(var_f26); + HuSetVecF(&sp104, temp_f21, 0.0, temp_f20); + for (i = 0; i < 10; i++) { + if (i == arg0->unk0C || i == temp_r19) { + continue; + } + temp_r28 = &lbl_1_bss_70[i]; + HuSetVecF(&spF8, temp_r28->unk14.x, 0.0, temp_r28->unk14.z); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXZ(&spEC) < arg0->unk30 + temp_r28->unk30) { + break; + } + } + if (i < 10 || fn_1_1BD4(arg0)) { + break; + } + spB8 = temp_f21; + spB4 = temp_f20; + HuSetVecF(&sp104, arg0->unk24, 0.0, arg0->unk28); + HuSetVecF(&spF8, temp_f21, 0.0, temp_f20); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXZ(&spEC) > spB0) { + break; + } + var_f26 += spBC; + } +block_end: + arg0->unk14.x = spB8; + arg0->unk14.z = spB4; +} + +void fn_1_2FDC(StructBss70 *arg0) +{ + Vec spF0; + Vec spE4; + Vec spD8; + s32 i; + StructBss340 *var_r30; + StructBss70 *temp_r25; + float var_f31; + s32 var_r23; + s32 var_r20; + s32 spAC[2]; + + var_r30 = &lbl_1_bss_340[0]; + arg0->unk24 = arg0->unk14.x; + arg0->unk28 = arg0->unk14.z; + switch (arg0->unk38) { + case 0: + var_r20 = 0; + HuSetVecF(&spF0, var_r30->unk4C.x, 0.0, var_r30->unk4C.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < var_r30->unk84 + arg0->unk30 + 100.0f) { + var_r20 = 80; + } + if (frandmod(100) < var_r20) { + var_f31 = fn_1_14B4(atan2d(arg0->unk14.x - var_r30->unk4C.x, arg0->unk14.z - var_r30->unk4C.z)); + var_f31 += 30.0f * frandf() - 60.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } + else if (ABS_INV(arg0->unk14.x) > 550.0f) { + var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0)); + var_f31 += 10.0f * frandf() - 20.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } + else if (frandmod(3) != 0) { + for (i = 0, var_r23 = 0; i < 10; i++) { + if (i == arg0->unk0C) { + continue; + } + temp_r25 = &lbl_1_bss_70[i]; + HuSetVecF(&spF0, temp_r25->unk14.x, 0.0, temp_r25->unk14.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < 150.0f) { + spAC[var_r23++] = arg0->unk0C; + if (var_r23 >= 2) { + break; + } + } + } + if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) { + temp_r25 = &lbl_1_bss_70[spAC[0]]; + var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); + } + else { + var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z)); + var_f31 += 30.0f * frandf() - 60.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } + } + else { + var_f31 = 360.0f * frandf(); + arg0->unk20 = var_f31; + } + arg0->unk40 = arg0->unk14.x + 100.0 * sind(var_f31); + arg0->unk44 = arg0->unk14.z + 100.0 * cosd(var_f31); + arg0->unk38 = 10; + arg0->unk3C = 60; + break; + case 10: + if (arg0->unk3C-- == 0) { + arg0->unk38 = 0; + } + if (arg0->unk3C < 50) { + HuSetVecF(&spF0, var_r30->unk4C.x, 0.0, var_r30->unk4C.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < var_r30->unk84 + arg0->unk30 + 100.0f) { + arg0->unk38 = 0; + } + } + HuSetVecF(&spF0, arg0->unk40, 0.0, arg0->unk44); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) > 10.0f) { + var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); + arg0->unk14.x += arg0->unk34 * sind(var_f31); + arg0->unk14.z += arg0->unk34 * cosd(var_f31); + if (fn_1_1BD4(arg0)) { } + if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) { + arg0->unk14.x = arg0->unk24; + arg0->unk14.z = arg0->unk28; + arg0->unk38 = 100; + arg0->unk3C = 0; + } + } + else { + arg0->unk38 = 100; + arg0->unk3C = 0; + } + break; + case 100: + if (arg0->unk3C == 0) { + arg0->unk38 = 0; + } + arg0->unk3C--; + break; + } +} + +void fn_1_44D8(void) +{ + StructBss70 *temp_r31; + float temp_f30; + float var_f31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_f30 = temp_r31->unk14.x; + while (TRUE) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[0]); + for (i = 0, var_f31 = 0.0f; i < 60; i++) { + temp_r31->unk14.x = temp_f30 - 300.0 * sind(var_f31); + var_f31 += 1.5f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + HuPrcSleep(30); + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + for (i = 0, var_f31 = 90.0f; i < 60; i++) { + temp_r31->unk14.x = temp_f30 - 300.0 * sind(var_f31); + var_f31 -= 1.5f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + HuPrcSleep(30); + } +} + +void fn_1_4644(StructBss70 *arg0) +{ + float temp_f26; + float temp_f25; + float var_f27; + float var_f24; + float temp_f23; + s32 i; + + do { + temp_f26 = 5.0f; + if (frandmod(2) != 0) { + arg0->unk14.x = -700.0f + temp_f26; + arg0->unk20 = 90.0f; + var_f27 = -700.0f + temp_f26 - 500.0f; + var_f24 = 8.333333f; + } + else { + arg0->unk14.x = 700.0f - temp_f26; + arg0->unk20 = 270.0f; + var_f27 = 700.0f - temp_f26 + 500.0f; + var_f24 = -8.333333f; + } + arg0->unk14.y = 0.0f; + temp_f23 = 550.0f; + temp_f25 = temp_f23 * frandf() * 2.0f - temp_f23; + arg0->unk14.z = temp_f25; + arg0->unk24 = arg0->unk14.x; + arg0->unk28 = arg0->unk14.z; + } while (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0); + Hu3DMotionSet(arg0->unk00, arg0->unk04[2]); + Hu3DModelRotSet(arg0->unk00, 0.0f, arg0->unk20, 0.0f); + for (i = 0; i < 60; i++) { + var_f27 += var_f24; + Hu3DModelPosSet(arg0->unk00, var_f27, 0.0f, temp_f25); + if (lbl_1_bss_3E4 >= 4) { + break; + } + HuPrcVSleep(); + } + if (lbl_1_bss_3E4 >= 4) { + arg0->unk14.x = var_f27; + arg0->unk14.z = temp_f25; + } + Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z); +} + +void fn_1_4BC4(void) +{ + s32 spC; + float sp8; + float temp_f23; + float var_f27; + float var_f28; + float var_f30; + float var_f29; + StructBss70 *temp_r31; + StructBss340 *var_r28; + StructBss340 *var_r30; + s32 temp_r27; + s32 temp_r24; + s32 var_r26; + s32 var_r25; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk10 = 0; +loop_1: + temp_r27 = lbl_1_bss_3E0 / 60; + var_r25 = 0; + if (temp_r27 > 10) { + var_r25 = 1; + } + if (temp_r27 > 20) { + var_r25 = 2; + } + temp_r27 = frandmod(100); + for (i = 0; i < 5; i++) { + if (lbl_1_data_C0[var_r25][i] > temp_r27) { + break; + } + } + if (i > 4) { + while (TRUE) + ; + } + temp_r31->unk34 = 6.75f * lbl_1_data_FC[i]; + temp_r31->unk38 = 0; + while (TRUE) { + switch (temp_r31->unk10) { + case 2: + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + fn_1_4644(temp_r31); + temp_r31->unk10 = 0; + if (FALSE) { + default: + fn_1_2FDC(temp_r31); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk20, 0.0f); + if (lbl_1_bss_3E4 < 4) { + HuPrcVSleep(); + break; + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[0]); + HuPrcSleep(60); + var_r28 = &lbl_1_bss_340[0]; + if (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) { + if (temp_r31->unk14.x > 0.0f) { + var_f30 = 10.0f; + } + else { + var_f30 = -10.0f; + } + } + else { + if (var_r28->unk4C.x > temp_r31->unk14.x) { + var_f30 = -10.0f; + } + else { + var_f30 = 10.0f; + } + } + if (var_f30 > 0.0f) { + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f); + } + else { + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + while (ABS_INV(temp_r31->unk14.x) < 1500.0f) { + temp_r31->unk14.x += var_f30; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + while (TRUE) { + HuPrcVSleep(); + } + break; + case 3: + lbl_1_bss_3D8++; + if (lbl_1_bss_3D8 > 99) { + lbl_1_bss_3D8 = 99; + } + temp_r24 = lbl_1_bss_3D8; + var_r26 = 4; + HuSprBankSet(lbl_1_bss_3DC, var_r26, temp_r24 % 10); + HuSprBankSet(lbl_1_bss_3DC, var_r26 + 1, temp_r24 / 10); + HuSprAttrReset(lbl_1_bss_3DC, var_r26 + 1, HUSPR_ATTR_DISPOFF); + omVibrate(0, 12, 6, 6); + HuAudFXPlay(0x45); + HuAudFXPlay(0x5EE); + var_r30 = &lbl_1_bss_340[0]; + temp_r31->unk2C = fn_1_14B4(atan2d(temp_r31->unk14.x - var_r30->unk4C.x, temp_r31->unk14.z - var_r30->unk4C.z)); + Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, + var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); + i = 0; + var_f29 = temp_r31->unk14.x; + var_f28 = temp_r31->unk14.z; + while (TRUE) { + var_f29 += 30.0 * sind(var_r30->unk94); + var_f28 += 30.0 * cosd(var_r30->unk94); + if (ABS_INV(var_f29) > 1500.0f || var_f28 > 1300.0f || var_f28 < -2000.0f) { + break; + } + i++; + } + sp8 = temp_r31->unk14.y; + var_f27 = 0.0f; + temp_f23 = 180.0f / i; + spC = 0; + for (; i != 0; i--) { + temp_r31->unk14.x += 30.0 * sind(temp_r31->unk2C); + temp_r31->unk14.y = 400.0 * sind(var_f27); + temp_r31->unk14.z += 30.0 * cosd(temp_r31->unk2C); + var_f27 += temp_f23; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, -1000.0f, temp_r31->unk14.z); + temp_r31->unk10 = 2; + Hu3DModelAttrSet(temp_r31->unk02, HU3D_ATTR_DISPOFF); + goto loop_1; + } + } +} + +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; + float var_f30; + float var_f31; + float temp_f29; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 1)) { + continue; + } + for (j = 0, var_f30 = 0.0f; j < 16; j++, var_f30 += 22.5f) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + var_f31 = var_f30; + temp_f29 = 125.0f + 70.0f * frandf(); + var_r31->unk34.x = temp_r28->unk6C + temp_f29 * sind(var_f31); + var_r31->unk34.y = temp_r28->unk70 + 50.0f * frandf(); + var_r31->unk34.z = temp_r28->unk74 + temp_f29 * cosd(var_f31); + var_r31->unk08.x = 5.0 * sind(var_f31); + var_r31->unk08.y = 9.0f + 2.0f * frandf(); + var_r31->unk08.z = 5.0 * cosd(var_f31); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 80.0f + 20.0f * frandf(); + var_r31->unk14.y = 15.0f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + } + temp_r28->unk30 &= ~1; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + continue; + } + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + if (var_r31->unk08.y > 0.1f) { + var_r31->unk08.y -= 0.2f; + } + if (var_r31->unk08.y < 0.0f) { + var_r31->unk08.y = 0.0f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 1.5f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 2)) { + continue; + } + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk6C + temp_f31; + var_r31->unk34.y = temp_r28->unk70 + 50.0f; + var_r31->unk34.z = temp_r28->unk74 + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk30 &= ~2; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { + continue; + } + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 4)) { + continue; + } + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk6C + temp_f31; + var_r31->unk34.y = temp_r28->unk70 + 50.0f; + var_r31->unk34.z = temp_r28->unk74 + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk30 &= ~4; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { + continue; + } + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +s8 fn_1_627C(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk28]) : (var_r30 = HuPadStkX[temp_r31->unk28]); + return var_r30; +} + +u8 fn_1_62F0(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk28]) : (var_r30 = HuPadTrigL[temp_r31->unk28]); + return var_r30; +} + +u16 fn_1_636C(s32 arg0) +{ + StructBss340 *temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + var_r30 = HuPadBtnDown[temp_r31->unk28]; + return var_r30; +} + +u16 fn_1_63B4(s32 arg0) +{ + StructBss340 *temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + var_r30 = HuPadBtn[temp_r31->unk28]; + return var_r30; +} + +s32 fn_1_63FC(StructBss340 *arg0) +{ + Vec sp24; + Vec sp18; + Vec spC; + StructBss70 *temp_r31; + s32 var_r28; + s32 i; + + var_r28 = -1; + HuSetVecF(&sp24, arg0->unk4C.x, arg0->unk4C.y, arg0->unk4C.z); + for (i = 0; i < 10; i++) { + temp_r31 = &lbl_1_bss_70[i]; + HuSetVecF(&sp18, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuSubVecF(&spC, &sp24, &sp18); + if (VECMagXYZ(&spC) < arg0->unk84 + temp_r31->unk30) { + temp_r31->unk10 = 3; + var_r28 = i; + } + } + return var_r28; +} + +s32 fn_1_65D0(StructBss340 *arg0) +{ + float var_f31; + float var_f30; + s32 sp8; // ! - uninitialized + + var_f31 = fn_1_1534(arg0->unk4C.z, arg0->unk84); + var_f30 = fn_1_1534(arg0->unk4C.x, arg0->unk84); + if (arg0->unk4C.x > var_f31 - arg0->unk84) { + arg0->unk4C.x = var_f31 - arg0->unk84; + } + if (arg0->unk4C.x < -(var_f31 - arg0->unk84)) { + arg0->unk4C.x = -(var_f31 - arg0->unk84); + } + if (arg0->unk4C.z > var_f30 - arg0->unk84) { + arg0->unk4C.z = var_f30 - arg0->unk84; + } + if (arg0->unk4C.z < -(var_f30 - arg0->unk84)) { + arg0->unk4C.z = -(var_f30 - arg0->unk84); + } + return sp8; +} + +float fn_1_67F0(float arg0, float arg1, float arg2) +{ + float var_f30; + float var_f31; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_68F4(void) +{ + StructBss340 *temp_r31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + for (i = 0; i < 20; i++) { + temp_r31->unk78.z -= 4.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk78.x, temp_r31->unk78.y, temp_r31->unk78.z); + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_6964(StructBss340 *arg0) +{ + return (arg0->unk2C == 4 || arg0->unk2C == 5 || arg0->unk2C == 6); +} + +void fn_1_69C0(void) +{ + float var_f23; + float var_f27; + float var_f26; + StructBss340 *temp_r31; + s16 var_r29; + s32 var_r24; + s32 var_r23; + Process *var_r22; + s32 var_r26; + s32 var_r25; + s32 var_r28; + s32 spA4; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk2C = 0; + temp_r31->unk48 = 0; + temp_r31->unk30 = 0; + while (lbl_1_bss_3E4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_3E4 = 2; + while (lbl_1_bss_3E4 == 2) { + HuPrcVSleep(); + } + var_r29 = -1; + while (TRUE) { + temp_r31->unk58 = temp_r31->unk4C.x; + temp_r31->unk5C = temp_r31->unk4C.z; + if (temp_r31->unk16[4] != 0) { + break; + } + switch (temp_r31->unk2C) { + case 8: + if (temp_r31->unk3C != 0) { + temp_r31->unk3C--; + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk2C = 0; + } + break; + case 4: + omVibrate(temp_r31->unk20, 12, 4, 2); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + temp_r31->unk3C = 90; + temp_r31->unk44 = 30; + temp_r31->unk2C = 5; + break; + case 5: + if (temp_r31->unk44-- == 0) { + temp_r31->unk6C = temp_r31->unk4C.x; + temp_r31->unk70 = temp_r31->unk4C.y; + temp_r31->unk74 = temp_r31->unk4C.z; + temp_r31->unk30 |= 1; + } + if (temp_r31->unk3C != 0) { + temp_r31->unk3C--; + } + else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk2C = 6; + } + break; + case 6: + if (Hu3DMotionEndCheck(temp_r31->unk00) == TRUE) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + temp_r31->unk2C = 0; + } + break; + default: + if (fn_1_627C(temp_r31->unk20, 0) > 20) { + temp_r31->unk94 -= temp_r31->unk90; + if (temp_r31->unk94 < 0.0f) { + temp_r31->unk94 += 360.0f; + } + temp_r31->unk60.y = temp_r31->unk94; + } + if (fn_1_627C(temp_r31->unk20, 0) < -20) { + temp_r31->unk94 += temp_r31->unk90; + if (temp_r31->unk94 > 360.0f) { + temp_r31->unk94 -= 360.0f; + } + temp_r31->unk60.y = temp_r31->unk94; + } + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + temp_r31->unk4C.x += temp_r31->unk88 * sind(temp_r31->unk94); + temp_r31->unk4C.z += temp_r31->unk88 * cosd(temp_r31->unk94); + } + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_B) { + temp_r31->unk4C.x -= temp_r31->unk88 * sind(temp_r31->unk94); + temp_r31->unk4C.z -= temp_r31->unk88 * cosd(temp_r31->unk94); + } + if (fn_1_63B4(temp_r31->unk20) & (PAD_BUTTON_A | PAD_BUTTON_B)) { + if (temp_r31->unk34 != 1) { + if (temp_r31->unk2C != 2) { + temp_r31->unk2C = 2; + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } + else { + if (temp_r31->unk2C != 3) { + temp_r31->unk2C = 3; + temp_r31->unk48 = 0; + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } + if (temp_r31->unk34 != 1) { + var_r24 = 8; + var_r23 = 32; + } + else { + var_r24 = 7; + var_r23 = 22; + } + if (temp_r31->unk48 == var_r24) { + HuAudFXPlay(0x5E0); + } + if (temp_r31->unk48 == var_r23) { + HuAudFXPlay(0x5E0); + } + temp_r31->unk48++; + if (temp_r31->unk34 != 1) { + if (temp_r31->unk48 >= 50) { + temp_r31->unk48 -= 50; + } + } + else { + if (temp_r31->unk48 >= 30) { + temp_r31->unk48 -= 30; + } + } + } + else { + if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) { + if (temp_r31->unk2C != 0) { + temp_r31->unk2C = 0; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } + else { + if (temp_r31->unk2C != 1) { + temp_r31->unk2C = 1; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.5f); + var_r29 = HuAudFXPlay(0x5EB); + } + } + } + if (fn_1_63FC(temp_r31) != -1) { } + if ((spA4 = fn_1_65D0(temp_r31)) != -1) { } + break; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + HuPrcVSleep(); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + if (lbl_1_bss_3D8 == 0) { + HuAudFXPlay(0x5EA); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(90); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(temp_r31->unk04, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuAudFXPlay(0x5E3); + HuPrcSleep(15); + HuPrcSleep(30); + temp_r31->unk6C = temp_r31->unk4C.x; + temp_r31->unk70 = temp_r31->unk4C.y; + temp_r31->unk74 = temp_r31->unk4C.z; + temp_r31->unk30 |= 2; + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk20].character], temp_r31->unk16[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DModelHookReset(temp_r31->unk00); + Hu3DModelShadowSet(temp_r31->unk02); + var_f27 = 50.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk4C.x, temp_r31->unk4C.y + var_f27, temp_r31->unk4C.z); + HuPrcSleep(60); + for (var_r26 = 0, var_r25 = 0; var_r26 < 90; var_r26++) { + if (var_r25 & 1) { + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + } + var_r25++; + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + for (var_r28 = 0, var_f23 = 1.0f; var_r28 < 30; var_r28++) { + var_f23 -= 0.033333335f; + Hu3DModelTPLvlSet(temp_r31->unk00, var_f23); + if (var_f27 > 0.0f) { + var_f27 -= 5.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk4C.x, temp_r31->unk4C.y + var_f27, temp_r31->unk4C.z); + } + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); + HuAudSStreamPlay(4); + HuPrcSleep(180); + } + else { + var_f26 = temp_r31->unk90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + if (fn_1_14B4(temp_r31->unk60.y) != 0.0f) { + var_r28 = (360.0f - fn_1_14B4(temp_r31->unk60.y)) / var_f26; + if (temp_r31->unk60.y < 180.0f) { + var_r28 = temp_r31->unk60.y / var_f26; + var_f26 = -var_f26; + } + for (; var_r28 != 0; var_r28--) { + temp_r31->unk60.y += var_f26; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + HuPrcVSleep(); + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, 0.0f, temp_r31->unk60.z); + } + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + while (lbl_1_bss_3E4 < 5) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + var_r22 = HuPrcChildCreate(fn_1_68F4, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + var_r22->user_data = temp_r31; + HuAudPlayerVoicePlay(temp_r31->unk20, 0x122); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk20].character], temp_r31->unk16[2], 0.0f, 2.0f, HU3D_MOTATTR_NONE); + temp_r31->unk2C = 10; + HuPrcSleep(180); + } + lbl_1_bss_3E4 = 6; + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7D3C(void) { } + +void fn_1_7D40(void) +{ + while (TRUE) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_7DA0(void) +{ + s16 temp_r31; + s16 var_r30; + s16 temp_r26; + s32 var_r24; + s32 i; + + lbl_1_bss_3E4 = 0; + lbl_1_bss_3E4 = 1; + while (lbl_1_bss_3E4 == 1) { + HuPrcVSleep(); + } + var_r24 = HuAudSeqPlay(0x46); + temp_r31 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + fn_1_16F8(); + var_r30 = 1859; + temp_r26 = MGSeqTimerCreate(var_r30 / 60); + lbl_1_bss_3E4 = 3; + while (TRUE) { + if (var_r30 < 59) { + break; + } + MGSeqParamSet(temp_r26, 1, var_r30-- / 60); + lbl_1_bss_3E0++; + HuPrcVSleep(); + } + for (i = 0; i < 1; i++) { + lbl_1_bss_340[i].unk1E = 1; + } + lbl_1_bss_3E4 = 4; + HuAudSeqFadeOut(var_r24, 6); + MGSeqParamSet(temp_r26, 2, -1); + temp_r31 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + mgRecordExtra = lbl_1_bss_3D8; + if (GWMGRecordGet(14) < lbl_1_bss_3D8) { + GWMGRecordSet(14, lbl_1_bss_3D8); + temp_r31 = MGSeqRecordCreate(lbl_1_bss_3D8); + HuPrcChildCreate(fn_1_1634, 0x1000, 0x1000, 0, HuPrcCurrentGet()); + fn_1_17A0(lbl_1_bss_3D8, 1); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + lbl_1_bss_3E4 = 5; + } + else { + lbl_1_bss_3E4 = 5; + } + while (lbl_1_bss_3E4 < 6) { + HuPrcVSleep(); + } + HuPrcSleep(30); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } +} diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c new file mode 100755 index 00000000..159940f0 --- /dev/null +++ b/src/REL/m463Dll/main.c @@ -0,0 +1,1388 @@ +// Panel Panic 9 Player + +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ s32 unk0C; +} StructBss51C; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss35C; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 player; + /* 0x00 */ s32 playerCfg; + /* 0x08 */ s32 character; + /* 0x0C */ s32 padIdx; + /* 0x10 */ s32 diff; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ float unk28; + /* 0x2C */ Vec unk2C; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x48 */ s32 unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ s16 parMan; + /* 0x58 */ s32 parManTimer; + /* 0x5C */ s32 unk5C; +} M463PlayerData; // Size 0x60 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; +} StructData134; // Size 0x18 + +s16 fn_1_4474(void); +void fn_1_659C(omObjData *arg0); + +StructBss51C lbl_1_bss_51C[9]; +StructBss35C lbl_1_bss_35C[28]; +omObjData *lbl_1_bss_358; +omObjData *lbl_1_bss_354; +omObjData *playerObjs[9]; +omObjData *lbl_1_bss_32C; +HsfanimStruct00 lbl_1_bss_5C[9]; +s32 lbl_1_bss_58; +s32 lbl_1_bss_54; +s32 lbl_1_bss_50; //// TODO: setup enum when what this is gets figured out +char lbl_1_bss_4C[4]; // unused +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +Process *lbl_1_bss_40; +s32 lbl_1_bss_3C; +s32 lbl_1_bss_38; +s32 lbl_1_bss_34; +char lbl_1_bss_30[4]; // unused +float lbl_1_bss_2C; +float lbl_1_bss_28; +float lbl_1_bss_24; +float lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +char lbl_1_bss_E[6]; // unused +s16 lbl_1_bss_C; +char lbl_1_bss_8[4]; // unused +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +s32 lbl_1_data_0[9] = { DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38) }; + +s32 lbl_1_data_24[9] = { 0 }; + +s32 lbl_1_data_48[9] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 47), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_M458, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), +}; + +u32 lbl_1_data_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 }; + +u32 lbl_1_data_90[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), 0, 0, DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M458, 42), + DATA_MAKE_NUM(DATADIR_M458, 40), DATA_MAKE_NUM(DATADIR_M458, 41), DATA_MAKE_NUM(DATADIR_M458, 39) }; + +u8 lbl_1_data_B4[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; +u8 lbl_1_data_BD[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_C8[9] = { 8, 8, 8, 0, 0, 8, 8, 8, 8 }; +s32 lbl_1_data_EC[9] = { 0, 0, 0, 0, 3, 0, 0, 0, 0 }; +s32 lbl_1_data_110[9] = { 8, 8, 8, 8, 8, 8, 8, 8, 8 }; + +StructData134 lbl_1_data_134 = { 0 }; + +s16 lbl_1_data_14C = -1; +s16 lbl_1_data_14E = -1; +s32 lbl_1_data_150 = -1; +s32 lbl_1_data_154 = -1; + +// unused +float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f }; + +void fn_1_A0(void) +{ + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + Center.x = playerObjs[0]->trans.x; + Center.y = playerObjs[0]->trans.y; + Center.z = playerObjs[0]->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += 30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(64, 392, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(64, 408, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(64, 424, 1.0f, "%f", CZoom); +} + +s32 lbl_1_data_184 = -1; + +void fn_1_4C8(omObjData *object) +{ + ModelData *model; + ModelData *model2; + float temp_f31; + float temp_f30; + float var_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + M463PlayerData *data; + s16 var_r28; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r23; + s32 var_r22; + M463PlayerData *iPlayerData; + s32 var_r20; + s32 var_r19; + M463PlayerData *temp_r18; + s32 player; + float sp180[2]; + s32 spE0; + s32 spDC; + s32 spD8; + s32 spD4; + s32 spD0; + s32 spCC; + s32 spC8; + M463PlayerData *spC4; + s32 spC0; + s32 spBC; + M463PlayerData *spB8; + s32 spB4; + u32 spB0; + float spAC; + s32 spA8; + s32 spA4; + s32 spA0; + M463PlayerData *sp9C; + ModelData *sp98; + float sp94; + float sp90; + s32 sp8C; + s32 sp88; + + data = object->data; + var_f23 = 0.0f; + var_f22 = 0.0f; + var_f28 = 0.0f; + var_r22 = 0; + var_r28 = -1; + data->unk2C.x = data->unk2C.z = 0.0f; + if (lbl_1_bss_50 == 1005 && data->unk18 == 3 && data->unk1C >= 360) { + if (data->unk1C == 360) { + data->unk14 = rand8() % 15; + } + if (data->padIdx != -1) { + var_r22 = (HuPadBtnDown[data->padIdx] & PAD_BUTTON_A) ? 1 : 0; + } + else { + data->unk14 += (data->unk14 < 0x10000); + if (data->unk14 == 30) { + var_r22 = 1; + } + } + } + if (data->player < 4 && lbl_1_bss_50 == 1002) { + var_r26 = 0; + var_r25 = 0; + if (data->padIdx != -1) { + var_r26 = (HuPadStkX[data->padIdx] < -20) ? -1 : (HuPadStkX[data->padIdx] > 20) ? 1 : 0; + var_r25 = (-HuPadStkY[data->padIdx] < -20) ? -1 : (-HuPadStkY[data->padIdx] > 20) ? 1 : 0; + var_r22 = (HuPadBtnDown[data->padIdx] & PAD_BUTTON_A) ? 1 : 0; + } + else { + if (lbl_1_bss_54 == 1) { + data->unk14 = rand8() % 64 + 30; + } + data->unk14 -= (data->unk14 > 0); + if (data->unk14 == 1) { + var_r26 = (data->unk3C > 0 ? -1 : 1) * (rand8() % 2); + var_r25 = (data->unk40 > 0 ? -1 : 1) * (rand8() % 2); + } + if (data->unk14 == 0) { + var_r22 = (rand8() % 64 == 1) ? 1 : 0; + } + } + if (lbl_1_bss_54 >= 50 || data->unk50 != 0) { + var_r26 = var_r25 = 0; + } + for (player = 0; player < 4; player++) { + iPlayerData = playerObjs[player]->data; + spD0 = 0; + spCC = 0; + if (player != data->player) { + if (fabs(500.0 * data->unk3C - object->trans.x) < 10.0) { + spE0 = spDC = (object->trans.x < -250.0) ? -1 : (object->trans.x > 250.0) ? 1 : 0; + } + else { + spE0 = (object->trans.x < 0.0f) ? -1 : 0; + spDC = spE0 + 1; + } + if (fabs(500.0 * data->unk40 - object->trans.z) < 10.0) { + spD8 = spD4 = (object->trans.z < -250.0) ? -1 : (object->trans.z > 250.0) ? 1 : 0; + } + else { + spD8 = (object->trans.z < 0.0f) ? -1 : 0; + spD4 = spD8 + 1; + } + for (var_r20 = spE0; var_r20 <= spDC; var_r20++) { + for (var_r19 = spD8; var_r19 <= spD4; var_r19++) { + if (iPlayerData->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19 + var_r25) * 3) { + var_r26 = var_r25 = 0; + } + if (iPlayerData->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19) * 3) { + var_r26 = 0; + } + if (iPlayerData->unk38 == (1 + var_r20) + (1 + var_r19 + var_r25) * 3) { + var_r25 = 0; + } + } + } + } + } + if (var_r26 * (500.0 * data->unk3C - object->trans.x) < 0.0) { + data->unk3C += var_r26; + } + if (fabs(500.0 * data->unk3C - object->trans.x) < 10.0 && var_r26 != 0 && data->unk3C + var_r26 >= -1 + && data->unk3C + var_r26 <= 1) { + data->unk3C += var_r26; + } + var_f23 = ((500.0 * data->unk3C - object->trans.x) / 0.25) / 1.75; + if (var_r25 * (500.0 * data->unk40 - object->trans.z) < 0.0) { + data->unk40 += var_r25; + } + if (fabs(500.0 * data->unk40 - object->trans.z) < 10.0 && var_r25 != 0 && data->unk40 + var_r25 >= -1 + && data->unk40 + var_r25 <= 1) { + data->unk40 += var_r25; + } + var_f22 = ((500.0 * data->unk40 - object->trans.z) / -0.25) / 1.75; + data->unk38 = (data->unk3C + 1) + (data->unk40 + 1) * 3; + } + if (data->unk18 == 0) { + if (lbl_1_bss_50 > (data->player < 4 ? 1001 : 1003) && lbl_1_bss_50 < 1006) { + temp_f31 = 0.25 * var_f23; + temp_f30 = 0.25 * -var_f22; + { + Vec sp1A0 = { 0.0f, 0.0f, 0.0f }; + Mtx sp1D0; + + sp1A0.x = temp_f31; + sp1A0.z = temp_f30; + MTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp1D0, &sp1A0, &sp1A0); + temp_f31 = sp1A0.x; + temp_f30 = sp1A0.z; + var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f28 >= 0.5f) { + if (var_f28 < 10.0f) { + data->unk2C.x = temp_f31; + data->unk2C.z += temp_f30; + } + else { + temp_f31 /= var_f28; + temp_f30 /= var_f28; + var_f28 = 10.0f; + data->unk2C.x = temp_f31 * var_f28; + data->unk2C.z = temp_f30 * var_f28; + } + data->unk28 = var_f28; + object->rot.y = atan2d(data->unk2C.x, data->unk2C.z); + if (data->unk28 >= 8.0f) { + var_r28 = 2; + } + else { + var_r28 = 2; + } + } + else { + var_r28 = 0; + } + } + } + } + object->trans.x += 1.75f * data->unk2C.x; + object->trans.z += 1.75f * data->unk2C.z; + switch (lbl_1_bss_50) { + case 1001: + case 1003: + if (lbl_1_bss_50 != (data->player < 4 ? 1001 : 1003)) { + break; + } + if (lbl_1_bss_54 == 0) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if (data->player < 4) { + data->unk38 = (data->player == 0) ? 0 : (data->player == 1) ? 2 : (data->player == 2) ? 6 : 8; + data->unk3C = data->unk38 % 3 - 1; + data->unk40 = data->unk38 / 3 - 1; + object->trans.x = 500.0 * data->unk3C; + object->trans.z = 500.0 * data->unk40; + } + else { + do { + data->unk38 = rand8() % 9; + for (spC8 = 0; spC8 < data->player; spC8++) { + spC4 = playerObjs[spC8]->data; + if (data->unk38 == spC4->unk38) { + break; + } + } + } while (spC8 != data->player); + data->unk3C = data->unk38 % 3 - 1; + data->unk40 = data->unk38 / 3 - 1; + object->trans.x = 500.0 * data->unk3C; + object->trans.z = 500.0 * data->unk40; + } + } + if (lbl_1_bss_54 <= 30) { + if (data->character == -1) { + Hu3DMotionTimeSet(object->model[0], 138.0f); + } + object->trans.y = 2400.0 * (1.0 - lbl_1_bss_54 / 30.0); + } + if (data->character != -1 && lbl_1_bss_54 == 30) { + var_r28 = 4; + } + if (lbl_1_bss_54 == (data->character != -1 ? 10 : 60) + 30) { + var_r28 = 0; + } + if (lbl_1_bss_54 == 30) { + lbl_1_data_134.unk04 += 50; + } + if (lbl_1_bss_54 == 30 && (data->player == 0 || data->player == 4)) { + HuAudFXPlay(0x33D); + } + break; + case 1002: + if (lbl_1_bss_54 != 0 && data->player < 4 && (var_r22 != 0 || lbl_1_bss_0 == 0) && data->unk50 == 0) { + data->unk50 = 1; + lbl_1_bss_14++; + lbl_1_bss_51C[data->unk38].unk08 = 83.333336f; + } + if (data->player != 0) { + break; + } + if (lbl_1_bss_54 == 0) { + lbl_1_bss_0 = 300; + lbl_1_data_14E = MGSeqTimerCreate(10); + HuWinMesMaxSizeGet(1, sp180, MAKE_MESSID(40, 25)); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp180[0], sp180[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, MAKE_MESSID(40, 25)); + } + lbl_1_bss_0--; + if (lbl_1_data_14E != -1) { + MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); + } + if (lbl_1_bss_14 >= 4) { + lbl_1_bss_54 = 50; + MGSeqParamSet(lbl_1_data_14E, 2, -1); + lbl_1_data_14E = -1; + HuWinExCleanup(lbl_1_bss_C); + } + if (lbl_1_bss_54 == 50) { + for (var_r23 = 0; var_r23 < 4; var_r23++) { + temp_r18 = playerObjs[var_r23]->data; + if (!(fabs(500.0 * temp_r18->unk3C - playerObjs[var_r23]->trans.x) < 1.0) + || !(fabs(500.0 * temp_r18->unk40 - playerObjs[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) { + break; + } + } + if (var_r23 == 4) { + lbl_1_bss_54 = 60; + } + } + break; + case 1005: + if (data->unk5C != 0) { + if (object->trans.y < -15000.0f) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + else { + object->trans.y -= 77.0f; + } + } + break; + case 1006: + if (lbl_1_bss_54 <= 1) { + Hu3DModelAttrSet(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + lbl_1_bss_51C[data->unk44].unk0C = 0; + } + if (lbl_1_bss_51C[data->unk38].unk0C != 0 || data->unk5C != 0) { + break; + } + if (lbl_1_bss_54 == 120) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 153) { + Hu3DModelAttrSet(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 183) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 210) { + spBC = 0; + for (spC0 = 0; spC0 < 9; spC0++) { + spB8 = playerObjs[spC0]->data; + spBC += (lbl_1_bss_51C[spB8->unk38].unk0C == 0 && spB8->unk5C == 0); + } + var_r28 = 7; + HuAudFXPlayVol(0x7F7 + (data->character != -1 ? data->character : 8), 1651 / (spBC + 12)); + } + if (lbl_1_bss_54 >= 210 && lbl_1_bss_54 <= 214) { + s32 sp1AC[] = { 0, -12, -36, 0, 0, -12, -36, -48, 0 }; + float sp194[] = { 150.0f, 175.0f, 205.0f }; + float sp188[] = { 100.0f, 170.0f, 260.0f }; + + spB4 = data->unk38 % 3 - 1; + spB0 = data->unk38 / 3; + spAC = (lbl_1_bss_54 - 210) / 4.0; + temp_f26 = (lbl_1_bss_54 - 210) / 4.0; + temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; + espAttrReset(lbl_1_data_24[data->unk38], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_data_24[data->unk38], 290.0f + spB4 * sp194[spB0], + sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[data->character != -1 ? data->character : 8])); + espScaleSet(lbl_1_data_24[data->unk38], 0.5 * temp_f26, 0.5 * temp_f26); + } + if (lbl_1_bss_54 == 270) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + espAttrSet(lbl_1_data_24[data->unk38], HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_54 == 290) { + spA0 = 0; + for (spA4 = 0; spA4 < 9; spA4++) { + sp9C = playerObjs[spA4]->data; + spA0 += (lbl_1_bss_51C[sp9C->unk38].unk0C == 0 && sp9C->unk5C == 0); + } + spA8 = HuAudFXPlayVol(0x800 + (data->character != -1 ? data->character : 8), 1651 / (spA0 + 12)); + HuAudFXFadeOut(spA8, 0x9C4); + } + if (lbl_1_bss_54 >= 315) { + object->trans.y -= 77.0f; + } + break; + case 1007: + if (data->player == lbl_1_bss_38) { + var_r28 = 8; + if (data->player >= 4 && data->character != -1 && lbl_1_bss_54 == 1) { + HuAudFXPlay(0x809 + data->character); + } + if (data->character == -1 && lbl_1_bss_54 == 1) { + HuAudFXPlay(0x3A); + } + } + else if (object->trans.y < -40000.0f) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + else { + object->trans.y -= 77.0f; + } + break; + } + switch (data->unk18) { + case 0: + data->unk1C++; + break; + case 1: + data->unk1C++; + if (data->unk1C <= 60) { + object->rot.y = -180.0 * (data->unk1C / 60.0); + } + else { + Hu3DMotionTimeSet(object->model[0], 120.0f); + var_r28 = 0; + data->unk18 = 0; + data->unk1C = 0; + } + break; + case 2: + data->unk1C++; + break; + case 3: + if (data->unk1C == 0) { + data->unk48 = 6; + data->unk4C = 0; + } + if (data->unk1C < 360) { + model = &Hu3DData[object->model[1]]; + if (data->unk1C == 0) { + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y + 625.0f, object->trans.z); + Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); + Hu3DModelTPLvlSet(object->model[1], 1.0f); + data->unk4C = 0; + if (lbl_1_bss_18 == 0) { + HuAudFXPlay(0x7F4); + lbl_1_data_184 = HuAudFXPlay(0x7F3); + } + lbl_1_bss_18++; + } + model->rot.y = data->unk4C % 360; + data->unk4C += 25; + if (data->unk1C < 180) { + var_f20 = 0.0f; + var_f21 = 1.0f; + } + else { + var_f20 = 1.0f; + var_f21 = 0.5f; + } + model->scale.x = var_f20 + var_f21 * sind((float)(data->unk1C % 180)); + model->scale.y = model->scale.z = model->scale.x; + if (data->unk1C < 180) { + data->unk1C += 6; + } + else { + data->unk1C += 18; + } + if (data->unk1C >= 360) { + data->unk1C = 360; + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, 0.0f); + } + } + else { + sp98 = &Hu3DData[object->model[1]]; + data->unk1C += 4; + if (data->unk1C > 720) { + data->unk1C -= 360; + } + sp98->pos.y += 0.2f * sind(data->unk1C - 360); + if (var_r22 != 0 || lbl_1_bss_0 == 0) { + lbl_1_bss_54 = 50; + data->unk18 = 4; + data->unk1C = 0; + var_r28 = 5; + } + } + break; + case 4: + data->unk1C++; + if (data->unk1C < 27) { + break; + } + model2 = &Hu3DData[object->model[1]]; + temp_r27 = data->unk1C - 27; + if (temp_r27 == 0) { + if (data->playerCfg != -1) { + omVibrate(data->playerCfg, 12, 4, 2); + } + data->unk48 = -1; + lbl_1_bss_18--; + if (lbl_1_bss_18 == 0 && lbl_1_data_184 != -1) { + HuAudFXStop(lbl_1_data_184); + lbl_1_data_184 = -1; + } + HuAudFXPlay(0x7F5); + } + if (temp_r27 == 8) { + if (data->parMan == -1) { + lbl_1_bss_58 = data->player; + data->parMan = fn_1_4474(); + Hu3DParManPosSet(data->parMan, model2->pos.x, model2->pos.y, model2->pos.z); + data->parManTimer = 150; + } + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + } + else if (temp_r27 > 8) { + if (data->unk20 == 5) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { + var_r28 = 0; + } + } + if (temp_r27 <= 28) { + temp_f27 = (temp_r27 - 8) / 10.0; + sp94 = (temp_r27 - 8) * 18; + temp_f27 = (temp_f27 > 1.0f) ? 2.5 : (2.5 * temp_f27); + Hu3DModelAttrReset(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[data->unk44 + 2], model2->pos.x, model2->pos.y, model2->pos.z); + Hu3DModelScaleSet(object->model[data->unk44 + 2], temp_f27, temp_f27, temp_f27); + } + if (temp_r27 >= 45 && temp_r27 <= 65) { + temp_f25 = (temp_r27 - 45) / 5.0; + sp90 = (temp_r27 - 45) * 18; + temp_f25 = (temp_f25 > 1.0f) ? 1.0f : temp_f25; + temp_f25 = 0.0f; + Hu3DModelAttrReset(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[data->unk44 + 2], model2->pos.x, model2->pos.y - 30.0f * temp_f25, model2->pos.z); + data->unk1C += 5; + } + if (temp_r27 == 158) { + data->unk18 = 0; + data->unk1C = 0; + } + } + else { + if (temp_r27 < 4) { + model2->pos.y += 10.0f + 0.5f * temp_r27; + model2->scale.x += 0.1f * sind(4.0f * temp_r27); + model2->scale.y = model2->scale.z = model2->scale.x; + } + else { + var_f24 = 255 - (temp_r27 << 5); + var_f24 = var_f24 * (1.0f / 255); + Hu3DModelTPLvlSet(object->model[1], var_f24); + } + model2->pos.y += -0.49f * temp_r27 * temp_r27; + } + break; + case 5: + if (data->unk1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); + lbl_1_bss_51C[data->unk44].unk0C = 0; + if (lbl_1_bss_35C->unk00 < 3) { + lbl_1_bss_35C->unk04[lbl_1_bss_35C->unk00] = 0.0f; + lbl_1_bss_35C->unk00++; + } + } + data->unk1C++; + if (data->unk1C == 60 && data->parMan != -1) { + Hu3DParManKill(data->parMan); + data->parMan = -1; + } + if (data->unk1C == 33) { + Hu3DModelAttrSet(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); + } + if (data->unk1C == 63) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); + } + if (data->unk1C == 68 && lbl_1_bss_35C[1].unk00 < 3) { + lbl_1_bss_35C[1].unk04[lbl_1_bss_35C[1].unk00] = 0.0f; + lbl_1_bss_35C[1].unk00++; + } + if (data->unk1C == 130) { + data->unk18 = 0; + data->unk1C = 0; + } + break; + } + if ((data->unk18 == 3 || data->unk18 == 4) && data->unk48 >= 0) { + data->unk48++; + if (data->unk48 >= 6) { + sp88 = data->unk44; + for (sp8C = 0; sp8C < 50; sp8C++) { + do { + data->unk44 = rand8() % 9; + if (data->unk44 >= 9) { + break; + } + } while (lbl_1_bss_51C[data->unk44].unk0C == 0); + if (sp88 != data->unk44) { + break; + } + } + sp88 = data->unk44; + data->unk48 = 0; + Hu3DMotionTimeSet(object->model[1], 0.5 + sp88); + } + } + if (data->unk24 >= 0) { + var_r28 = data->unk24; + } + if (var_r28 >= 0 && var_r28 != data->unk20) { + Hu3DMotionShiftSet(object->model[0], object->motion[var_r28], lbl_1_data_EC[var_r28], + (data->character != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], + (var_r28 == 7) ? HU3D_MOTATTR_PAUSE + : (data->character != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 + : HU3D_MOTATTR_LOOP); + data->unk20 = var_r28; + } + data->parManTimer -= (data->parManTimer > -1); + if (data->parManTimer == 0) { + if (data->parMan != -1) { + Hu3DParManKill(data->parMan); + data->parMan = -1; + } + data->parManTimer = -1; + } +} + +s32 lbl_1_data_1A4[4] = { 0 }; +s32 lbl_1_data_1B4 = -1; +float lbl_1_data_1B8 = 3500.0f; +float lbl_1_data_1BC = 100.0f; +float lbl_1_data_1C0 = -59.0f; + +static inline void fn3264_unkInline(void) { + float var_f31; + s32 var_r26 = lbl_1_data_1B4; + float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; + + if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { + sp30[5][1] = playerObjs[lbl_1_bss_38]->trans.x; + sp30[5][3] = playerObjs[lbl_1_bss_38]->trans.z; + } + if (lbl_1_data_1B4 == -1) { + lbl_1_data_1B4 = 0; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_data_1B4 == 0) { + lbl_1_data_1B4 = 1; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 0.5f; + } + if (lbl_1_bss_50 == 1004 && lbl_1_bss_54 >= 1 && lbl_1_data_1B4 == 1) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1006 && lbl_1_bss_54 >= 270 && lbl_1_data_1B4 == 2) { + lbl_1_data_1B4 = 4; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_bss_50 == 1005 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1007 && lbl_1_bss_38 != 9 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 5; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (var_r26 != lbl_1_data_1B4 && var_r26 != -1) { + lbl_1_data_1B8 = CZoom; + lbl_1_data_1BC = Center.y; + lbl_1_bss_28 = Center.z; + lbl_1_data_1C0 = CRot.x; + lbl_1_bss_2C = CRot.y; + } + if (lbl_1_bss_20 <= 1.0f) { + if (lbl_1_bss_1C == 0) { + lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); + var_f31 = lbl_1_bss_20; + } + else { + lbl_1_bss_20 += 0.008333333333333333; + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); + } + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + CZoom = var_f31 * sp30[lbl_1_data_1B4][0] + lbl_1_data_1B8 * (1.0f - var_f31); + Center.x = var_f31 * sp30[lbl_1_data_1B4][1] + lbl_1_bss_24 * (1.0f - var_f31); + Center.y = var_f31 * sp30[lbl_1_data_1B4][2] + lbl_1_data_1BC * (1.0f - var_f31); + Center.z = var_f31 * sp30[lbl_1_data_1B4][3] + lbl_1_bss_28 * (1.0f - var_f31); + CRot.x = var_f31 * sp30[lbl_1_data_1B4][4] + lbl_1_data_1C0 * (1.0f - var_f31); + CRot.y = var_f31 * sp30[lbl_1_data_1B4][5] + lbl_1_bss_2C * (1.0f - var_f31); + } +} + +void fn_1_3264(omObjData *arg0) +{ + float temp_f29; + float temp_f26; + float temp_f27; + float temp_f28; + M463PlayerData *spC[9]; + ModelData *temp_r29; + ModelData *temp_r28; + s32 var_r27; + s32 i; + s32 j; + + for (i = 0; i < 9; i++) { + spC[i] = playerObjs[i]->data; + } + lbl_1_bss_4++; + switch (lbl_1_bss_50) { + case 1002: + lbl_1_bss_34++; + lbl_1_bss_34 %= 360; + /* fallthrough */ + case 1003: + var_r27 = 0; + for (i = 0; i < 4; i++) { + if (spC[i]->unk50 == 0 || spC[i]->unk20 != 0) { + continue; + } + temp_r29 = &Hu3DData[lbl_1_bss_32C->model[spC[i]->unk38 + 1]]; + if (var_r27 == 0 && lbl_1_data_1A4[i] == 0) { + lbl_1_data_1A4[i] = 1; + var_r27 = 1; + HuAudFXPlay(0x7F6); + } + temp_r29->pos.y = 0.9 * temp_r29->pos.y + 0.1 * lbl_1_bss_51C[spC[i]->unk38].unk08; + playerObjs[i]->trans.y = temp_r29->pos.y - -16.666666666666668; + playerObjs[i]->rot.y = 0.0f; + } + break; + case 1004: + if (lbl_1_bss_54 <= 60) { + temp_f29 = lbl_1_bss_54 / 60.0; + temp_f29 = 1.0f - (1.0f - temp_f29) * (1.0f - temp_f29); + if (lbl_1_bss_54 == 0) { + lbl_1_bss_51C[spC[0]->unk38].unk08 = -16.666666f; + } + for (i = 0; i < 9; i++) { + temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]]; + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), + 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); + for (j = 0; j < 9; j++) { + if (i == spC[j]->unk38) { + playerObjs[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); + playerObjs[j]->trans.y = temp_r28->pos.y - -16.666666666666668; + playerObjs[j]->trans.z = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1); + } + } + } + } + break; + } + fn3264_unkInline(); + if (lbl_1_bss_50 == 1001 || lbl_1_bss_50 == 1003) { + temp_f26 = 0.0f; + temp_f27 = 0.0f; + if (lbl_1_data_134.unk00 % 2 >= 0) { + lbl_1_data_134.unk08 = lbl_1_data_134.unk10; + lbl_1_data_134.unk0C = lbl_1_data_134.unk14; + do { + lbl_1_data_134.unk10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_134.unk14 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_134.unk10 = 0.0f; + temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); + } while (sqrtf(temp_f28) < 0.75); + } + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; + temp_f26 = lbl_1_data_134.unk08; + temp_f27 = lbl_1_data_134.unk0C; + temp_f26 *= lbl_1_data_134.unk04 * 2; + temp_f27 *= lbl_1_data_134.unk04 * 2; + lbl_1_data_134.unk00 = !lbl_1_data_134.unk00; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; + Center.x = 0.0f; + Center.y = 100.0f + temp_f27; + } +} + +s16 fn_1_4474(void) +{ + AnimData *var_r29; + void *var_r28; + s16 var_r31; + s16 var_r30; + HsfanimStruct00 sp8 = { 0x96, { 0x00, 0x00 }, 50.0f, 0.0f, 65.0f, { 0.0f, -0.195f, 0.0f }, 80.0f, 0.99f, 40.0f, 0.999f, 4, + { { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; + + lbl_1_bss_5C[lbl_1_bss_58] = sp8; + var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuSprAnimRead(var_r28); + var_r31 = Hu3DParManCreate(var_r29, 40, &lbl_1_bss_5C[lbl_1_bss_58]); + Hu3DParManAttrSet(var_r31, 8 | 0x100); + Hu3DParManRotSet(var_r31, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r31, 0.0f, 0.4f, 0.2f); + var_r30 = Hu3DParManModelIDGet(var_r31); + Hu3DModelLayerSet(var_r30, 2); + Hu3DParticleBlendModeSet(var_r30, 0); + return var_r31; +} + +void fn_1_45F8(omObjData *arg0) +{ + M463PlayerData *sp14[9]; + float spC[2]; + s32 sp8; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r30; + s32 i; + + for (i = 0; i < 28; i++) { + s32 sp38[] = { 0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC, + 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC }; + + if (lbl_1_bss_35C[i].unk00 > 3) { + lbl_1_bss_35C[i].unk00 = 3; + } + if (lbl_1_bss_35C[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp38[i]); + lbl_1_bss_35C[i].unk00--; + } + } + for (i = 0; i < 9; i++) { + sp14[i] = playerObjs[i]->data; + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_659C; + } + switch (lbl_1_bss_50) { + case 1000: + if (WipeStatGet() != 0) { + break; + } + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + for (i = 0; i < 9; i++) { + if (sp14[i]->parMan != -1) { + Hu3DParManKill(sp14[i]->parMan); + sp14[i]->parMan = -1; + } + } + break; + case 1001: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 90 && lbl_1_data_14C < 0) { + lbl_1_data_14C = MGSeqStartCreate(); + } + if (lbl_1_bss_54 >= 90 && lbl_1_data_150 == -1 && (MGSeqStatGet(lbl_1_data_14C) & 0x10)) { + lbl_1_data_150 = HuAudSeqPlay(0x49); + } + if (lbl_1_bss_54 >= 90 && MGSeqStatGet(lbl_1_data_14C) == 0 && lbl_1_data_14C >= 0) { + lbl_1_bss_50 = 1002; + lbl_1_bss_54 = 0; + } + break; + case 1002: + lbl_1_bss_54 += (lbl_1_bss_54 < 30); + if (lbl_1_bss_54 >= 60) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1003: + lbl_1_bss_54++; + if (lbl_1_bss_54 == (sp14[1]->character == -1 ? 120 : 60) + 30) { + lbl_1_bss_50++; + if (sp14[1]->character == -1) { + lbl_1_bss_50++; + } + lbl_1_bss_54 = 0; + } + break; + case 1004: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 90) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1005: + if (lbl_1_bss_54 == 0) { + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) { + sp14[i]->unk18 = 3; + sp14[i]->unk1C = 0; + } + else { + sp14[i]->unk5C = 1; + } + } + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(48, 37)); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, spC[0], spC[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, MAKE_MESSID(48, 37)); + lbl_1_bss_0 = 180; + } + lbl_1_bss_54++; + if (lbl_1_bss_54 == 30) { + lbl_1_data_14E = MGSeqTimerCreate(10); + MGSeqPosSet(lbl_1_data_14E, 489.6f, 64.0f); + } + if (lbl_1_bss_54 >= 30 && lbl_1_data_14E != -1) { + var_r29 = 0; + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C == 0 || sp14[i]->unk18 == 4 || sp14[i]->unk18 == 0) { + var_r29++; + } + } + if (var_r29 >= 9 || lbl_1_bss_0 == 0) { + MGSeqParamSet(lbl_1_data_14E, 2, -1); + lbl_1_data_14E = -1; + } + else { + lbl_1_bss_0 -= (lbl_1_bss_0 > 0); + MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); + } + } + var_r28 = 0; + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C == 0 || sp14[i]->unk18 == 0) { + var_r28++; + } + } + if (var_r28 >= 9) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1006: + if (lbl_1_bss_54 == 1) { + HuWinExCleanup(lbl_1_bss_C); + } + lbl_1_bss_54++; + if (lbl_1_bss_54 == 3) { + lbl_1_bss_54 = 118; + } + if (lbl_1_bss_54 == 223) { + lbl_1_bss_54 = 233; + } + if (lbl_1_bss_54 == 120 && lbl_1_bss_35C->unk00 < 3) { + lbl_1_bss_35C->unk04[lbl_1_bss_35C->unk00] = 0.0f; + lbl_1_bss_35C->unk00++; + } + if (lbl_1_bss_54 == 188 && lbl_1_bss_35C[1].unk00 < 3) { + lbl_1_bss_35C[1].unk04[lbl_1_bss_35C[1].unk00] = 0.0f; + lbl_1_bss_35C[1].unk00++; + } + if (lbl_1_bss_54 == 360) { + var_r30 = 0; + var_r27 = -1; + for (i = 0; i < 9; i++) { + var_r30 += lbl_1_bss_51C[i].unk0C; + var_r27 = (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) ? i : var_r27; + } + if (var_r30 <= 1) { + lbl_1_bss_38 = (var_r30 == 0) ? 9 : var_r27; + } + if (lbl_1_bss_38 != -1) { + lbl_1_data_14C = MGSeqFinishCreate(); + if (lbl_1_data_150 != -1) { + HuAudSeqFadeOut(lbl_1_data_150, 100); + } + } + } + if (lbl_1_bss_54 >= 480) { + if (lbl_1_bss_38 != -1) { + if (MGSeqStatGet(lbl_1_data_14C) == 0 && lbl_1_bss_54 >= 510) { + lbl_1_bss_50 = 1007; + lbl_1_bss_54 = 0; + } + } + else { + lbl_1_bss_50 = 1005; + lbl_1_bss_54 = 0; + } + } + break; + case 1007: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 1) { + if (lbl_1_bss_38 != 9) { + if (lbl_1_bss_38 < 9) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(1); + } + if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->playerCfg != -1) { + GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->playerCfg, 10); + } + } + else if (lbl_1_bss_38 == 9) { + HuAudSStreamPlay(4); + } + } + if (210.0f + (lbl_1_bss_38 == 9 ? 60 : 0) < lbl_1_bss_54) { + if (lbl_1_data_154 != -1) { + HuAudFXStop(lbl_1_data_154); + lbl_1_data_154 = -1; + } + lbl_1_data_14C = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_659C; + } + break; + } +} + +void fn_1_53A0(omObjData *arg0) +{ + M463PlayerData *sp50[9]; + s32 i; + + for (i = 0; i < 9; i++) { + sp50[i] = playerObjs[i]->data; + } + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 8)); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(arg0->model[0], 0.1f); + for (i = 0; i < 9; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 10 + i)); + lbl_1_bss_51C[i].unk00 = i % 3; + lbl_1_bss_51C[i].unk04 = i / 3; + lbl_1_bss_51C[i].unk08 = 0.0f; + lbl_1_bss_51C[i].unk0C = 1; + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], 500.0 * (lbl_1_bss_51C[i].unk00 - 1), -16.666666f, 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f); + Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE); + Hu3DModelShadowMapSet(arg0->model[i + 1]); + Hu3DModelLayerSet(arg0->model[i + 1], 1); + } + for (i = 0; i < 9; i++) { + s32 sp2C[9] = { 288, 290 }; + s32 sp8[9] = { 240, 140 }; + + lbl_1_data_24[i] = espEntry(lbl_1_data_0[i], 0, 0); + espDrawNoSet(lbl_1_data_24[i], 0); + espAttrSet(lbl_1_data_24[i], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_24[i], 0); + espPriSet(lbl_1_data_24[i], 0x80 - i); + espPosSet(lbl_1_data_24[i], 290.0f, 140.0f); + espTPLvlSet(lbl_1_data_24[i], 1.0f); + } + arg0->func = fn_1_3264; +} + +s32 lbl_1_data_1E4[] = { DATA_MAKE_NUM(DATADIR_M458, 19), DATA_MAKE_NUM(DATADIR_M458, 20), DATA_MAKE_NUM(DATADIR_M458, 21), + DATA_MAKE_NUM(DATADIR_M458, 22), DATA_MAKE_NUM(DATADIR_M458, 23), DATA_MAKE_NUM(DATADIR_M458, 24), DATA_MAKE_NUM(DATADIR_M458, 25), + DATA_MAKE_NUM(DATADIR_M458, 26), DATA_MAKE_NUM(DATADIR_M458, 27), DATA_MAKE_NUM(DATADIR_M458, 28), DATA_MAKE_NUM(DATADIR_M458, 29) }; + +void fn_1_5850(omObjData *arg0) +{ + M463PlayerData *data; + s32 sp10[] = { 0, 1, 2, 3 }; + s32 var_r25; + s32 var_r28; + s32 i; + s32 j; + + var_r25 = 0; + data = arg0->data; + memset(data, 0, sizeof(*data)); + data->player = arg0->work[0]; + if (data->player >= 4) { + var_r28 = -1; + for (i = 0; i <= data->player - 4; i++) { + do { + var_r28++; + } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 + || GWPlayerCfg[3].character == var_r28); + } + data->character = (var_r28 == 8) ? -1 : var_r28; + data->padIdx = -1; + data->playerCfg = -1; + data->diff = 0; + } + else { + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == GWPlayerCfg[j].group) { + sp10[var_r25] = j; + var_r25++; + } + } + } + data->player = arg0->work[0]; + data->playerCfg = sp10[data->player]; + if (data->playerCfg == 4) { + OSReport("m463:wrong player group\n"); + data->playerCfg = data->player; + } + data->character = GWPlayerCfg[data->playerCfg].character; + data->padIdx = (data->character == -1 || GWPlayerCfg[data->playerCfg].iscom) ? -1 : GWPlayerCfg[data->playerCfg].pad_idx; + data->diff = (data->padIdx != -1) ? 0 : GWPlayerCfg[data->playerCfg].diff; + } + data->unk18 = 0; + data->unk20 = 3; + data->unk24 = -1; + data->unk48 = -1; + if (data->character != -1) { + arg0->model[0] = CharModelCreate(data->character, 4); + } + else { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + } + omSetTra(arg0, 0.0f, data->player == 0 ? 0 : 300, 0.0f); + if (data->character != -1) { + omSetSca(arg0, 2.5f, 2.5f, 2.5f); + } + else { + omSetSca(arg0, 2.0f, 2.0f, 2.0f); + } + for (i = 0; i < 9; i++) { + if (data->character != -1) { + if (data->player < 4 || (i != 1 && i != 2)) { + arg0->motion[i] = CharModelMotionCreate(data->character, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? data->character : 0)); + } + } + else if (lbl_1_data_90[i] != 0) { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]); + } + } + Hu3DMotionSet(arg0->model[0], arg0->motion[data->unk20]); + Hu3DMotionTimeSet(arg0->model[0], 10.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], 1U); + Hu3DModelLayerSet(arg0->model[0], 1); + CharModelLayerSetAll2(1); + if (data->character != -1) { + CharModelDataClose(data->character); + } + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 9)); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelPosSet(arg0->model[1], 0.0f, 400.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DMotionSpeedSet(arg0->model[1], 0.0f); + for (i = 0; i < 9; i++) { + if (data->player == 0) { + arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); + } + else { + arg0->model[i + 2] = Hu3DModelLink(playerObjs[0]->model[i + 2]); + } + Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); + Hu3DMotionSpeedSet(arg0->model[i + 2], 0.0f); + Hu3DModelAttrSet(arg0->model[i + 2], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[i + 2], 1); + } + lbl_1_bss_58 = data->player; + data->parMan = fn_1_4474(); + Hu3DParManPosSet(data->parMan, 10000.0f, -10000.0f, 10000.0f); + arg0->func = fn_1_4C8; +} + +void fn_1_60A4(omObjData *arg0) +{ + lbl_1_bss_50 = 1000; + lbl_1_bss_54 = 0; + lbl_1_bss_48 = 0; + lbl_1_bss_44 = 0; + lbl_1_data_154 = HuAudFXPlay(0x6D7); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_45F8; +} + +void ObjectSetup(void) +{ + omObjData *var_r30; + s32 i; + + OSReport("******* M463 ObjectSetup *********\n"); + lbl_1_bss_40 = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_40); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { 0.25f, -0.75f, -0.45f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_3C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_3C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_3C); + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_14C = -1; + lbl_1_bss_38 = -1; + HuWinInit(1); + lbl_1_bss_32C = omAddObjEx(lbl_1_bss_40, 0x65, 10, 0, 1, fn_1_53A0); + for (i = 0; i < 9; i++) { + var_r30 = playerObjs[i] = omAddObjEx(lbl_1_bss_40, 100, 11, 9, 0, fn_1_5850); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M463PlayerData), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_354 = omAddObjEx(lbl_1_bss_40, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4); +} + +void fn_1_659C(omObjData *arg0) +{ + M463PlayerData *spC[9]; + void *sp8; + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 9; var_r31++) { + spC[var_r31] = playerObjs[var_r31]->data; + if (spC[var_r31]->parMan != -1) { + Hu3DParManKill(spC[var_r31]->parMan); + spC[var_r31]->parMan = -1; + } + } + if (WipeStatGet() == 0) { + for (var_r30 = 0; var_r30 < 9; var_r30++) { + sp8 = playerObjs[var_r30]->data; + } + if (lbl_1_data_14C >= 0) { + MGSeqKill(lbl_1_data_14C); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 82910c62..59f44912 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -109,7 +109,7 @@ f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg9; } - return (arg8 + ((arg9 - arg8) * (1.0 - cos((M_PI * ((90.0f / argB) * argA)) / 180.0)))); + return (arg8 + ((arg9 - arg8) * (1.0 - cosd((90.0f / argB) * argA)))); } // fn_1_32C @@ -118,7 +118,7 @@ f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg9; } - return (arg8 + ((arg9 - arg8) * sin((M_PI * ((90.0f / argB) * argA)) / 180.0))); + return arg8 + (arg9 - arg8) * sind((90.0f / argB) * argA); } f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) @@ -126,7 +126,7 @@ f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg8; } - return (arg8 + ((arg9 - arg8) * sin((M_PI * ((360.0f / argB) * argA)) / 180.0))); + return (arg8 + ((arg9 - arg8) * sind((360.0f / argB) * argA))); } void fn_1_4B0(s32 arg0) @@ -157,9 +157,9 @@ void fn_1_50C(void) void fn_1_5E8(s32 arg0) { - Point3d sp24 = { 0.0f, 3000.0f, 800.0f }; - Point3d sp18 = { 0.0f, 0.0f, 640.0f }; - Point3d spC = { 0.0f, 1.0f, 0.0f }; + Vec sp24 = { 0.0f, 3000.0f, 800.0f }; + Vec sp18 = { 0.0f, 0.0f, 640.0f }; + Vec spC = { 0.0f, 1.0f, 0.0f }; if (arg0 == 3) { sp24.x = sp18.x = 1200.0f; diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 4b75201f..db8375f3 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -200,8 +200,8 @@ void fn_1_658C(Process *arg0) CharKill(-1); } lbl_1_bss_A8[4] = GWGameStat.open_w06; - lbl_1_bss_A8[5] = GWGameStat.field10E_bit4; - lbl_1_bss_A8[6] = GWGameStat.field10E_bit5; + lbl_1_bss_A8[5] = GWGameStat.veryHardUnlock; + lbl_1_bss_A8[6] = GWGameStat.customPackEnable; switch (lbl_1_bss_A8[0]) { case 0: HuAudSndGrpSetSet(7); @@ -340,11 +340,9 @@ void fn_1_6C4C(void) print8(var_r30, var_r29 + 0xAA, 1.0f, "MODE:%d MAP:%d", lbl_1_bss_A8[0], lbl_1_bss_A8[2]); print8(var_r30, var_r29 + 0xBE, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); for (var_r31 = 0; var_r31 < 4; var_r31++) { - s32 spC; - s32 sp8 = lbl_1_bss_3114[var_r31].unk_6C; - spC = lbl_1_bss_3114[var_r31].unk_68; + print8(var_r30, var_r29 + 0xC8 + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_58, - lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64); + lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64, lbl_1_bss_3114[var_r31].unk_6C, lbl_1_bss_3114[var_r31].unk_68); } print8(var_r30, var_r29 + 0xF0, 1.0f, "NO) FG0:FG1:FG2:FG3"); for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -2693,12 +2691,6 @@ void fn_1_E71C(s32 arg0) } } -inline void fn_1_E874_inline(void) -{ - s32 sp18 = lbl_1_bss_3114[0].unk_68; - GWSystem.unk0B[1] = sp18; -} - void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) { s32 var_r31; @@ -2757,7 +2749,7 @@ void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) var_r18 = 0; } BoardStoryConfigSet(var_r24, var_r18); - fn_1_E874_inline(); + GWStoryCharSet(lbl_1_bss_3114[0].unk_68); // looks a bit similar to fn_1_7304 for (var_r31 = 1; var_r31 < 4; var_r31++) { lbl_1_bss_3114[var_r31].unk_68 = -1; @@ -3739,19 +3731,19 @@ void fn_1_14BA8(void) s32 var_r30; var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 0x35; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 8; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 8, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 8, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0x28, 4); + HuSprAttrReset(var_r30, 0x28, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31 + 0x10, 0); HuSprBankSet(var_r30, var_r31 + 0x14, 0); - HuSprAttrReset(var_r30, var_r31 + 0x29, 4); - HuSprAttrReset(var_r30, var_r31 + 0x2D, 4); + HuSprAttrReset(var_r30, var_r31 + 0x29, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x2D, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -3768,6 +3760,8 @@ s32 lbl_1_data_5BC[4][2] = { { 0x77, 0x18 }, { 0xA5, 0x18 }, }; + +#if VERSION_NTSC float lbl_1_data_5DC[5][5] = { { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, @@ -3775,6 +3769,16 @@ float lbl_1_data_5DC[5][5] = { { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, }; +#else +float lbl_1_data_5DC[5][5] = { + { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, + { 314.0f, 168.0f, 0.75f, 300.0f, 381.0f }, + { 366.0f, 204.0f, 0.75f, 240.0f, 440.0f }, + { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, + { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, +}; +#endif + s32 lbl_1_data_640[4][5] = { { 0xB4, 0x60, 0x87, 0, 0 }, { 0xFC, 0xB8, 0xF6, 0xD4, 0x1D4 }, @@ -3797,19 +3801,19 @@ void fn_1_14CE0(void) var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 4; var_r31++) { if (lbl_1_bss_3114[var_r31].unk_60 != 0) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, HUSPR_ATTR_DISPOFF); } HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); } - for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 <= 60; var_r31++) { fn_1_4D8(); if (var_r31 <= 0x32) { var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); @@ -3906,19 +3910,19 @@ void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) } var_r27 = lbl_1_bss_35BC[0].unk_30; for (var_r28 = 0; var_r28 < 0x35; var_r28++) { - HuSprAttrSet(var_r27, var_r28, 4); + HuSprAttrSet(var_r27, var_r28, HUSPR_ATTR_DISPOFF); } for (var_r28 = 0; var_r28 < 8; var_r28++) { HuSprBankSet(var_r27, var_r28, 0); - HuSprAttrReset(var_r27, var_r28, 4); - HuSprAttrReset(var_r27, var_r28 + 8, 4); + HuSprAttrReset(var_r27, var_r28, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r28 + 8, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r27, 0x28, 4); + HuSprAttrReset(var_r27, 0x28, HUSPR_ATTR_DISPOFF); for (var_r28 = 0; var_r28 < 4; var_r28++) { HuSprBankSet(var_r27, var_r28 + 0x10, 0); HuSprBankSet(var_r27, var_r28 + 0x14, 0); - HuSprAttrReset(var_r27, var_r28 + 0x29, 4); - HuSprAttrReset(var_r27, var_r28 + 0x2D, 4); + HuSprAttrReset(var_r27, var_r28 + 0x29, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r28 + 0x2D, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r27, 0.0f, -500.0f); } @@ -4081,8 +4085,8 @@ void fn_1_162A0(MentDllUnkBss3114Struct *arg0) HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, 4); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, HUSPR_ATTR_DISPOFF); } s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) @@ -4162,8 +4166,8 @@ s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) if (var_r27 == 1) { HuSprPosSet(var_r29, arg0->unk_58 + 49, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 35); HuSprBankSet(var_r29, arg0->unk_58 + 49, arg0->unk_64); - HuSprAttrReset(var_r29, arg0->unk_58 + 49, 4); - HuSprAttrSet(var_r29, arg0->unk_58 + 32, 4); + HuSprAttrReset(var_r29, arg0->unk_58 + 49, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r29, arg0->unk_58 + 32, HUSPR_ATTR_DISPOFF); } return var_r27; @@ -4315,11 +4319,11 @@ void fn_1_173FC(MentDllUnkBss3114Struct *arg0) HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); HuSprPosSet(var_r30, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); arg0->unk_70[2] = 0; - HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, 4); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, HUSPR_ATTR_DISPOFF); } void fn_1_17914(MentDllUnkBss3114Struct *arg0) @@ -4343,24 +4347,24 @@ void fn_1_179DC(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 0x11; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_3114[var_r29]; HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r30, var_r31->unk_68, 4); + HuSprAttrReset(var_r30, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r30, 0x10, 4); + HuSprAttrReset(var_r30, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); } @@ -4395,24 +4399,24 @@ void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) HuSprPosSet(var_r26, 0x10, 96.0f, 32.0f); var_r29 = lbl_1_bss_35BC[0].unk_34; for (var_r28 = 0; var_r28 < 0x11; var_r28++) { - HuSprAttrSet(var_r29, var_r28, 4); + HuSprAttrSet(var_r29, var_r28, HUSPR_ATTR_DISPOFF); } for (var_r28 = 0; var_r28 < 4; var_r28++) { var_r31 = &lbl_1_bss_3114[var_r28]; HuSprPosSet(var_r29, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r29, var_r31->unk_68, 4); + HuSprAttrReset(var_r29, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r29, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r29, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r29, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r29, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r29, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r29, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r29, 0x10, 4); + HuSprAttrReset(var_r29, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r29, 16.0f, -500.0f); } @@ -4426,24 +4430,24 @@ void fn_1_1811C(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 0x11; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_3114[var_r29]; HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r30, var_r31->unk_68, 4); + HuSprAttrReset(var_r30, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r30, 0x10, 4); + HuSprAttrReset(var_r30, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { fn_1_4D8(); @@ -4539,18 +4543,18 @@ void fn_1_18A54(s32 arg0) if (arg0 != 5) { HuSprBankSet(var_r31, 0, arg0); HuSprBankSet(var_r31, 1, arg0); - HuSprAttrSet(var_r31, 2, 4); - HuSprAttrSet(var_r31, 3, 4); - HuSprAttrReset(var_r31, 0, 4); - HuSprAttrReset(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31, 3, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 1, HUSPR_ATTR_DISPOFF); if (lbl_1_bss_A8[0] != 0) { if ((arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) || (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) || (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) || (arg0 == 3 && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) || (arg0 == 4 && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { - HuSprAttrReset(var_r31, 4, 4); - HuSprAttrReset(var_r31, 5, 4); + HuSprAttrReset(var_r31, 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 5, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(var_r31, 5, 0.8f); - HuSprAttrReset(var_r31, 6, 4); + HuSprAttrReset(var_r31, 6, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(var_r31, 6, 0.5f); } else { @@ -4561,10 +4565,10 @@ void fn_1_18A54(s32 arg0) } } else { - HuSprAttrSet(var_r31, 0, 4); - HuSprAttrSet(var_r31, 1, 4); - HuSprAttrReset(var_r31, 2, 4); - HuSprAttrReset(var_r31, 3, 4); + HuSprAttrSet(var_r31, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 3, HUSPR_ATTR_DISPOFF); } lbl_1_bss_35BC[0].unk_08[0] = arg0; lbl_1_bss_35BC[0].unk_1C[1] = (rand8() % 10) * 0x24; @@ -4633,6 +4637,18 @@ void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) } } +#if VERSION_PAL + +#define POSX1 353 +#define POSX2 325 + +#else + +#define POSX1 321 +#define POSX2 295 + +#endif + void fn_1_190E8(void) { s32 var_r31; @@ -4640,47 +4656,47 @@ void fn_1_190E8(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; for (var_r31 = 0; var_r31 < 0x5B; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } if (lbl_1_bss_A8[2] != 5) { HuSprBankSet(var_r30, 0, lbl_1_bss_A8[2]); - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r30, 1, 4); + HuSprAttrReset(var_r30, 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 2, 4); + HuSprAttrReset(var_r30, 2, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 2, 288.0f, lbl_1_data_5DC[0][1]); HuSprScaleSet(var_r30, 2, 1.0f, lbl_1_data_5DC[0][2]); for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5DC[0][var_r31 + 3], lbl_1_data_5DC[0][1]); } for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[0][1]); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, HUSPR_ATTR_DISPOFF); HuSprPosSet( var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 2.0f + lbl_1_data_5DC[0][1]); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 9.0f); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, HUSPR_ATTR_DISPOFF); HuSprPosSet( var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); if (lbl_1_bss_3114[var_r31].unk_60 != 0) { - HuSprAttrReset(var_r30, var_r31 + 0x1B, 4); + HuSprAttrReset(var_r30, var_r31 + 0x1B, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x1B, lbl_1_bss_3114[var_r31].unk_64); HuSprPosSet(var_r30, var_r31 + 0x1B, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[0][1]); } else { - HuSprAttrReset(var_r30, var_r31 + 0x17, 4); + HuSprAttrReset(var_r30, var_r31 + 0x17, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x17, lbl_1_bss_3114[var_r31].unk_58); HuSprPosSet(var_r30, var_r31 + 0x17, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0] - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); } HuSprPosSet(var_r30, var_r31 + 0x2F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 20.0f + lbl_1_data_5DC[4][1]); - HuSprAttrReset(var_r30, var_r31 + 0x2F, 4); + HuSprAttrReset(var_r30, var_r31 + 0x2F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 0x33, 10.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[4][1]); - HuSprAttrReset(var_r30, var_r31 + 0x33, 4); + HuSprAttrReset(var_r30, var_r31 + 0x33, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x33, 0); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x37, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); HuSprPosSet(var_r30, var_r31 + 0x3F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 23.0f + lbl_1_data_5DC[4][1]); @@ -4689,35 +4705,37 @@ void fn_1_190E8(void) } HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]); HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f); - HuSprAttrReset(var_r30, 0x47, 4); - HuSprAttrReset(var_r30, 0x48, 4); + HuSprAttrReset(var_r30, 0x47, HUSPR_ATTR_DISPOFF); + #if VERSION_NTSC + HuSprAttrReset(var_r30, 0x48, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]); - HuSprAttrReset(var_r30, 0x49, 4); + HuSprAttrReset(var_r30, 0x49, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]); + #endif for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x4A, 4); - HuSprPosSet(var_r30, var_r31 + 0x4A, 0x141 - (var_r31 * 0x1A), lbl_1_data_5DC[1][1]); + HuSprAttrReset(var_r30, var_r31 + 0x4A, HUSPR_ATTR_DISPOFF); + HuSprPosSet(var_r30, var_r31 + 0x4A, POSX1 - (var_r31 * (POSX1-POSX2)), lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31); - HuSprAttrReset(var_r30, var_r31 + 0x4C, 4); - HuSprPosSet(var_r30, var_r31 + 0x4C, 0x142 - (var_r31 * 0x1A), 2.0f + lbl_1_data_5DC[1][1]); + HuSprAttrReset(var_r30, var_r31 + 0x4C, HUSPR_ATTR_DISPOFF); + HuSprPosSet(var_r30, var_r31 + 0x4C, POSX1+1 - (var_r31 * (POSX1-POSX2)), 2.0f + lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31); } - HuSprAttrReset(var_r30, 0x4E, 4); + HuSprAttrReset(var_r30, 0x4E, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x4E, 340.0f, lbl_1_data_5DC[2][1]); HuSprBankSet(var_r30, 0x4E, 0); - HuSprAttrReset(var_r30, 0x4F, 4); + HuSprAttrReset(var_r30, 0x4F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x4F, 341.0f, 2.0f + lbl_1_data_5DC[2][1]); HuSprBankSet(var_r30, 0x4F, 0); - HuSprAttrReset(var_r30, 0x50, 4); + HuSprAttrReset(var_r30, 0x50, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x50, 340.0f, lbl_1_data_5DC[3][1]); HuSprBankSet(var_r30, 0x50, 0); - HuSprAttrReset(var_r30, 0x51, 4); + HuSprAttrReset(var_r30, 0x51, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x51, 341.0f, 2.0f + lbl_1_data_5DC[3][1]); HuSprBankSet(var_r30, 0x51, 0); - HuSprAttrReset(var_r30, 0x52, 4); + HuSprAttrReset(var_r30, 0x52, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x53, 4); - HuSprAttrReset(var_r30, var_r31 + 0x57, 4); + HuSprAttrReset(var_r30, var_r31 + 0x53, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x57, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 5; var_r31++) { HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r31], 100.0f, -500.0f + (lbl_1_data_5DC[var_r31][1] - 21.0f)); @@ -4964,23 +4982,29 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) break; case 1: if (var_r26 == 1) { + #if VERSION_NTSC HuSprPosSet(var_r30, 0x48, 366.0f + var_f31, lbl_1_data_5DC[1][1]); HuSprPosSet(var_r30, 0x49, 367.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4A, 321.0f + var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4C, 322.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4B, 295.0f + var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4D, 296.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + #endif + HuSprPosSet(var_r30, 0x4A, POSX1 + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, POSX1+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, POSX2 + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, POSX2+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]); } else { + #if VERSION_NTSC HuSprPosSet(var_r30, 0x48, 366.0f - var_f31, lbl_1_data_5DC[1][1]); HuSprPosSet(var_r30, 0x49, 367.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4A, 321.0f - var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4C, 322.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4B, 295.0f - var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4D, 296.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + #endif + HuSprPosSet(var_r30, 0x4A, POSX1 - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, POSX1+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, POSX2 - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, POSX2+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]); } + #if VERSION_NTSC HuSprScaleSet(var_r30, 0x48, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x49, 1.0f, var_f30); + #endif HuSprScaleSet(var_r30, 0x4A, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x4C, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x4B, 1.0f, var_f30); @@ -5020,13 +5044,13 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 6, var_f31, 49.0f + lbl_1_data_5DC[4][1]); if (var_r29 == 3) { for (var_r28 = 0; var_r28 < 4; var_r28++) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); - HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x43, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } break; } @@ -5069,9 +5093,9 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); for (var_r28 = 0; var_r28 < 4; var_r28++) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); - HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x43, HUSPR_ATTR_DISPOFF); } } else { @@ -5079,8 +5103,8 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 3, var_f31, var_f29); var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); HuSprPosSet(var_r30, 4, var_f31, var_f29); - HuSprAttrReset(var_r30, 5, 4); - HuSprAttrReset(var_r30, 6, 4); + HuSprAttrReset(var_r30, 5, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, 6, HUSPR_ATTR_DISPOFF); var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); HuSprTPLvlSet(var_r30, 5, var_f30); HuSprTPLvlSet(var_r30, 6, var_f30); @@ -5088,21 +5112,24 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); if (var_r29 == 3) { - HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } } } if (arg1->unk_08[0] != 4) { - HuSprAttrSet(var_r30, 5, 4); - HuSprAttrSet(var_r30, 6, 4); + HuSprAttrSet(var_r30, 5, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, 6, HUSPR_ATTR_DISPOFF); } } lbl_1_bss_35BC[0].unk_08[3] = 0; } } +#undef POSX2 +#undef POSX1 + void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) { s32 var_r31; @@ -5231,18 +5258,18 @@ void fn_1_1C554(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; var_r29 = &lbl_1_bss_35BC[1]; - HuSprAttrReset(var_r30, 2, 4); + HuSprAttrReset(var_r30, 2, HUSPR_ATTR_DISPOFF); if (lbl_1_bss_35BC[1].unk_08[0] == 4) { for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); return; } for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); } } @@ -5254,13 +5281,13 @@ void fn_1_1C674(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; var_r31 = &lbl_1_bss_35BC[1]; - HuSprAttrSet(var_r30, 2, 4); + HuSprAttrSet(var_r30, 2, HUSPR_ATTR_DISPOFF); for (var_r29 = 0; var_r29 < 4; var_r29++) { - HuSprAttrSet(var_r30, var_r29 + 3, 4); + HuSprAttrSet(var_r30, var_r29 + 3, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, 4); - HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } void fn_1_1C754(void) @@ -5282,7 +5309,7 @@ void fn_1_1C754(void) HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); - for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 <= 60; var_r31++) { fn_1_4D8(); if (var_r31 <= 0x32) { var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); @@ -5337,12 +5364,12 @@ void fn_1_1CBC8(void) var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 0x22; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 1, 4); - HuSprAttrReset(var_r30, var_r31 + 5, 4); + HuSprAttrReset(var_r30, var_r31 + 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 5, HUSPR_ATTR_DISPOFF); } HuSprPosSet(var_r30, 0x1B, 288.0f, lbl_1_data_640[1][2]); HuSprScaleSet(var_r30, 0x1B, 1.0f, 0.75f); @@ -5350,19 +5377,19 @@ void fn_1_1CBC8(void) HuSprPosSet(var_r30, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); for (var_r31 = 0; var_r31 < 8; var_r31++) { HuSprBankSet(var_r30, var_r31 + 9, 0); - HuSprAttrReset(var_r30, var_r31 + 9, 4); - HuSprAttrReset(var_r30, var_r31 + 0x11, 4); + HuSprAttrReset(var_r30, var_r31 + 9, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x11, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0x19, 4); - HuSprAttrReset(var_r30, 0x1A, 4); + HuSprAttrReset(var_r30, 0x19, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, 0x1A, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x1E, 0); - HuSprAttrReset(var_r30, 0x1E, 4); + HuSprAttrReset(var_r30, 0x1E, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x1F, 0); - HuSprAttrReset(var_r30, 0x1F, 4); + HuSprAttrReset(var_r30, 0x1F, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x20, 0); - HuSprAttrReset(var_r30, 0x20, 4); + HuSprAttrReset(var_r30, 0x20, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x21, 0); - HuSprAttrReset(var_r30, 0x21, 4); + HuSprAttrReset(var_r30, 0x21, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 3; var_r31++) { HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r31], 100.0f, lbl_1_data_640[var_r31][2] - 0x209); } @@ -5513,9 +5540,9 @@ void fn_1_1DED8() s32 var_r31; var_r30 = lbl_1_bss_35BC[0].unk_30; - HuSprAttrReset(var_r30, 0x1B, 4); + HuSprAttrReset(var_r30, 0x1B, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x1C, 4); + HuSprAttrReset(var_r30, var_r31 + 0x1C, HUSPR_ATTR_DISPOFF); } } @@ -5872,11 +5899,11 @@ void fn_1_1F5F0(void) var_r31 = lbl_1_bss_35BC[0].unk_34; for (var_r30 = 0; var_r30 < 9; var_r30++) { - HuSprAttrSet(var_r31, var_r30, 4); + HuSprAttrSet(var_r31, var_r30, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r31, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r31, 16.0f, -500.0f); } @@ -5902,9 +5929,9 @@ void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) for (var_r28 = 0; var_r28 < 9; var_r28++) { HuSprAttrSet(var_r30, var_r28, 4); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); } @@ -5917,11 +5944,11 @@ void fn_1_1F868(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 9; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { fn_1_4D8(); @@ -5988,13 +6015,13 @@ void fn_1_1FE08(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 4, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0xA, 4); + HuSprAttrReset(var_r30, 0xA, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0xB, 4); - HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + HuSprAttrReset(var_r30, var_r31 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -6118,18 +6145,18 @@ void fn_1_2055C(s32 arg0) spC = 0; var_r30 = lbl_1_bss_35BC[0].unk_40; for (var_r31 = 0; var_r31 < 0x13; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 4, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0xA, 4); + HuSprAttrReset(var_r30, 0xA, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0xB, 4); - HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + HuSprAttrReset(var_r30, var_r31 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -6173,9 +6200,9 @@ void fn_1_208F4(void) s32 var_r31; var_r31 = lbl_1_bss_35BC[0].unk_40; - HuSprAttrReset(var_r31, 8, 4); + HuSprAttrReset(var_r31, 8, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); - HuSprAttrReset(var_r31, 9, 4); + HuSprAttrReset(var_r31, 9, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); } @@ -6239,18 +6266,18 @@ void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) sp8 = 0; var_r27 = lbl_1_bss_35BC[0].unk_40; for (var_r30 = 0; var_r30 < 0x13; var_r30++) { - HuSprAttrSet(var_r27, var_r30, 4); + HuSprAttrSet(var_r27, var_r30, HUSPR_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 4; var_r30++) { HuSprBankSet(var_r27, var_r30, 0); lbl_1_bss_3114[var_r30].unk_70[3] = lbl_1_bss_3114[var_r30].unk_60 = 0; - HuSprAttrReset(var_r27, var_r30, 4); - HuSprAttrReset(var_r27, var_r30 + 4, 4); + HuSprAttrReset(var_r27, var_r30, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r30 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r27, 0xA, 4); + HuSprAttrReset(var_r27, 0xA, HUSPR_ATTR_DISPOFF); for (var_r30 = 0; var_r30 < 4; var_r30++) { - HuSprAttrReset(var_r27, var_r30 + 0xB, 4); - HuSprAttrReset(var_r27, var_r30 + 0xF, 4); + HuSprAttrReset(var_r27, var_r30 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r30 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r27, 0.0f, -500.0f); } diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c index a78bdc8a..c5088576 100644 --- a/src/REL/mgmodedll/battle.c +++ b/src/REL/mgmodedll/battle.c @@ -44,7 +44,7 @@ s32 fn_1_E72C(void) temp_r29 = 0; fn_1_279FC(0); fn_1_FF5C(); - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { mgTypeCurr = mgInfoTbl[GWSystem.mg_next].type; if (mgTypeCurr >= 4) { mgTypeCurr = 3; @@ -105,7 +105,7 @@ s32 fn_1_E72C(void) } repeat_mode: if (lbl_1_bss_20AA == 0) { - HuPrcChildCreate(fn_1_27080, 100, 12288, 0, lbl_1_bss_2D8); + HuPrcChildCreate(fn_1_27080, 100, 12288, 0, objman); lbl_1_bss_20AA = 1; } lbl_1_bss_3A4 = fn_1_25CA8(0x1A0020); @@ -843,7 +843,7 @@ void fn_1_12B64(s16 arg0) { Process *process; s32 *data; - process = HuPrcChildCreate(fn_1_12BEC, 100, 12288, 0, lbl_1_bss_2D8); + process = HuPrcChildCreate(fn_1_12BEC, 100, 12288, 0, objman); data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(s32), MEMORY_DEFAULT_NUM); process->user_data = data; *data = arg0; diff --git a/src/REL/mgmodedll/datalist.c b/src/REL/mgmodedll/datalist.c index 947f1677..3eb233ec 100644 --- a/src/REL/mgmodedll/datalist.c +++ b/src/REL/mgmodedll/datalist.c @@ -1,131 +1,135 @@ #include "REL/mgmodedll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + DataListModel lbl_1_data_490[] = { - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_768[] = { - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; void fn_1_267E8(DataListModel *model_list) { - DataListModel *list; - s16 i; - s16 model; - s16 clear_i; - ModelData *model_ptr; - void *data; - list = model_list; - for(clear_i=0; clear_i<13; clear_i++) { - lbl_1_bss_2C80[clear_i] = lbl_1_bss_2C66[clear_i] = -1; - } - for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { - if(list->type == 0) { - data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - model = Hu3DModelCreate(data); - lbl_1_bss_2C80[i] = model; - Hu3DModelAttrSet(model, list->attr); - Hu3DModelPosSetV(model, &list->pos); - Hu3DModelRotSetV(model, &list->rot); - Hu3DModelScaleSetV(model, &list->scale); - model_ptr = &Hu3DData[model]; - if(model_ptr->unk_08 != -1) { - lbl_1_bss_2C66[i] = model_ptr->unk_08; - } - } else if(list->type == 1) { - data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - lbl_1_bss_2C66[i] = Hu3DJointMotion(lbl_1_bss_2C80[list->mot_link], data); - - } - (void)i; - } - list = model_list; - for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { - if(list->type == 2) { - model = Hu3DModelLink(lbl_1_bss_2C80[list->link]); - lbl_1_bss_2C80[i] = model; - Hu3DModelAttrSet(model, list->attr); - Hu3DModelPosSetV(model, &list->pos); - Hu3DModelRotSetV(model, &list->rot); - Hu3DModelScaleSetV(model, &list->scale); - } - if(list->type == 0 && list->mot_link != -1) { - Hu3DMotionSet(lbl_1_bss_2C80[i], lbl_1_bss_2C66[list->mot_link]); - } - (void)i; - } + DataListModel *list; + s16 i; + s16 model; + s16 clear_i; + ModelData *model_ptr; + void *data; + list = model_list; + for (clear_i = 0; clear_i < 13; clear_i++) { + lbl_1_bss_2C80[clear_i] = lbl_1_bss_2C66[clear_i] = -1; + } + for (i = 0; list->datanum != DATA_NUM_LISTEND; list++, i++) { + if (list->type == 0) { + data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); + model = Hu3DModelCreate(data); + lbl_1_bss_2C80[i] = model; + Hu3DModelAttrSet(model, list->attr); + Hu3DModelPosSetV(model, &list->pos); + Hu3DModelRotSetV(model, &list->rot); + Hu3DModelScaleSetV(model, &list->scale); + model_ptr = &Hu3DData[model]; + if (model_ptr->unk_08 != -1) { + lbl_1_bss_2C66[i] = model_ptr->unk_08; + } + } + else if (list->type == 1) { + data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_2C66[i] = Hu3DJointMotion(lbl_1_bss_2C80[list->mot_link], data); + } + (void)i; + } + list = model_list; + for (i = 0; list->datanum != DATA_NUM_LISTEND; list++, i++) { + if (list->type == 2) { + model = Hu3DModelLink(lbl_1_bss_2C80[list->link]); + lbl_1_bss_2C80[i] = model; + Hu3DModelAttrSet(model, list->attr); + Hu3DModelPosSetV(model, &list->pos); + Hu3DModelRotSetV(model, &list->rot); + Hu3DModelScaleSetV(model, &list->scale); + } + if (list->type == 0 && list->mot_link != -1) { + Hu3DMotionSet(lbl_1_bss_2C80[i], lbl_1_bss_2C66[list->mot_link]); + } + (void)i; + } } void fn_1_26A78(DataListSprite *sprite_list) { - DataListSprite *list; - s16 sprite; - s16 clear_i; - s16 i; - list = sprite_list; - for(clear_i=0; clear_i<29; clear_i++) { - lbl_1_bss_2C2C[clear_i] = -1; - } - for(i=0; list->datanum; i++, list++) { - sprite = espEntry(list->datanum, 100, 0); - lbl_1_bss_2C2C[i] = sprite; - espPosSet(sprite, list->x, list->y); - espColorSet(sprite, list->color.r, list->color.g, list->color.b); - espTPLvlSet(sprite, list->color.a/255.0f); - espPriSet(sprite, list->prio); - espAttrSet(sprite, list->attr); - } + DataListSprite *list; + s16 sprite; + s16 clear_i; + s16 i; + list = sprite_list; + for (clear_i = 0; clear_i < 29; clear_i++) { + lbl_1_bss_2C2C[clear_i] = -1; + } + for (i = 0; list->datanum; i++, list++) { + sprite = espEntry(list->datanum, 100, 0); + lbl_1_bss_2C2C[i] = sprite; + espPosSet(sprite, list->x, list->y); + espColorSet(sprite, list->color.r, list->color.g, list->color.b); + espTPLvlSet(sprite, list->color.a / 255.0f); + espPriSet(sprite, list->prio); + espAttrSet(sprite, list->attr); + } } void fn_1_26BB0(void) { - s16 i; - for(i=0; i<29; i++) { - if(lbl_1_bss_2C2C[i] != -1) { - espKill(lbl_1_bss_2C2C[i]); - } - } + s16 i; + for (i = 0; i < 29; i++) { + if (lbl_1_bss_2C2C[i] != -1) { + espKill(lbl_1_bss_2C2C[i]); + } + } } diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c index 7d314df5..58ffe85e 100644 --- a/src/REL/mgmodedll/free_play.c +++ b/src/REL/mgmodedll/free_play.c @@ -88,7 +88,7 @@ s32 fn_1_6D28(void) else { temp_r28 = lbl_1_bss_2C2C[2]; } - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2) { mgTypeCurr = fn_1_B5A8(&spA, &sp8); espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); @@ -99,7 +99,7 @@ s32 fn_1_6D28(void) if (lbl_1_bss_2A6 == 0) { espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); espPosSet(lbl_1_bss_2C2C[4], 450, 404); - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); espPosSet(lbl_1_bss_2C2C[14], 450, 348); diff --git a/src/REL/mgmodedll/main.c b/src/REL/mgmodedll/main.c index dd6b1b72..85db3742 100755 --- a/src/REL/mgmodedll/main.c +++ b/src/REL/mgmodedll/main.c @@ -1075,7 +1075,7 @@ s32 fn_1_1D688(StructBss8_24 *arg0) var_r28 = 0; var_r26 = arg0->unk64; if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk64++; var_r28 = 1; if (arg0->unk64 > 3) { @@ -1091,7 +1091,7 @@ s32 fn_1_1D688(StructBss8_24 *arg0) } } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk64--; var_r28 = -1; if (arg0->unk64 < 0) { diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 67b59009..4e078f7d 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -7,6 +7,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/hsfex.h" +#endif + typedef struct camera_view_params { Vec rot; Vec pos; @@ -15,8 +19,8 @@ typedef struct camera_view_params { CameraViewParams lbl_1_data_0[1] = { { { -5, 0, 0 }, { 0, 125, 0 }, 1750 } }; -omObjData *lbl_1_bss_2DC; -Process *lbl_1_bss_2D8; +omObjData *outViewObj; +Process *objman; s32 lbl_1_bss_2D4; s32 lbl_1_bss_2D0; s16 lbl_1_bss_2CE; @@ -31,7 +35,7 @@ Vec lbl_1_bss_28C[2]; Vec lbl_1_bss_274[2]; float lbl_1_bss_26C[2]; StructBss8 lbl_1_bss_8; -s16 lbl_1_bss_4; +s16 mgModeEvtNo; s32 lbl_1_bss_0; void fn_1_464(void); @@ -42,7 +46,7 @@ void ObjectSetup(void) s32 glight; OSReport("******* MG ObjectSetup *********\n"); - lbl_1_bss_2D8 = omInitObjMan(50, 8192); + objman = omInitObjMan(50, 8192); lbl_1_bss_28C[0].x = -70; lbl_1_bss_28C[0].y = 0; lbl_1_bss_28C[0].z = 0; @@ -58,8 +62,8 @@ void ObjectSetup(void) _ClearFlag(0x10008); GWSystem.mg_type = -1; GWSystem.player_curr = 0; - lbl_1_bss_4 = omovlevtno; - if (lbl_1_bss_4 == 0) { + mgModeEvtNo = omovlevtno; + if (mgModeEvtNo == 0) { mgGameStatBackup = GWGameStat; } lbl_1_bss_2CE = -1; @@ -70,9 +74,9 @@ void ObjectSetup(void) Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); glight = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); Hu3DGLightInfinitytSet(glight); - HuPrcChildCreate(fn_1_464, 100, 12288, 0, lbl_1_bss_2D8); - HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, lbl_1_bss_2D8); - lbl_1_bss_2DC = omAddObjEx(lbl_1_bss_2D8, 32730, 0, 0, -1, omOutView); + HuPrcChildCreate(fn_1_464, 100, 12288, 0, objman); + HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, objman); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); fn_1_279FC(0); @@ -86,7 +90,7 @@ void fn_1_464(void) { s16 i; fn_1_52DC(); - if (lbl_1_bss_4 == 0) { + if (mgModeEvtNo == 0) { HuAudSStreamPlay(12); fn_1_19018(); } @@ -103,7 +107,7 @@ void fn_1_464(void) Center.y = 215; CRot.x = 0; CRot.y = CRot.z = 0; - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2 || mgModeEvtNo == 3 || mgModeEvtNo == 4) { Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 640); Hu3DMotionSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6]); Hu3DModelAttrSet(lbl_1_bss_2C80[5], HU3D_MOTATTR_LOOP); @@ -136,7 +140,7 @@ void fn_1_6F8(void) { s16 i; s16 time; - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2 || mgModeEvtNo == 3 || mgModeEvtNo == 4) { lbl_1_bss_2A6 = 0; goto freeplay; } @@ -218,7 +222,7 @@ void fn_1_6F8(void) HuPrcVSleep(); } fn_1_25E74(lbl_1_bss_2CC); - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); if (lbl_1_bss_2A6 == 0) { freeplay: @@ -253,19 +257,19 @@ void fn_1_DF0(void) Vec posModel; float weight; - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { lbl_1_bss_2A4 = 0; goto freeplay; } - if (lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 2) { lbl_1_bss_2A4 = 1; goto teamplay; } - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { lbl_1_bss_2A4 = 2; goto battle; } - if (lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 4) { lbl_1_bss_2A4 = 3; goto tictactoe; } @@ -386,7 +390,7 @@ void fn_1_DF0(void) } HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A | PAD_BUTTON_B); } - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D = lbl_1_data_40[0]; pos2D.z = 800; Hu3D2Dto3D(&pos2D, 1, &pos3D); @@ -429,7 +433,7 @@ s32 fn_1_1B0C(void) ModelData *modelP; s16 temp_r29 = 0; - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -480,12 +484,12 @@ s32 fn_1_1B0C(void) } mgPracticeEnableF = 1; if (fn_1_6D28()) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -518,7 +522,7 @@ s32 fn_1_21C4(void) s16 i; ModelData *modelP; s16 temp_r29 = 1; - if (lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 2) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -570,12 +574,12 @@ s32 fn_1_21C4(void) } mgPracticeEnableF = 1; if (fn_1_6D28()) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -611,7 +615,7 @@ s32 fn_1_2940(void) for (i = 0; i < 4; i++) { Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 2); } - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { OSReport("Eliminate Play STart\n"); pos2D.x = 50; pos2D.y = 70; @@ -665,7 +669,7 @@ s32 fn_1_2940(void) } if (fn_1_E72C() == 0) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: @@ -673,7 +677,7 @@ exit: for (i = 0; i < 4; i++) { Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 3); } - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -706,7 +710,7 @@ s32 fn_1_3150(void) s16 i; ModelData *modelP; s16 temp_r29 = 1; - if (lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 4) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -759,12 +763,12 @@ s32 fn_1_3150(void) } if (fn_1_13418() == 0) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: HuDataDirClose(DATADIR_INSTPIC); - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -930,10 +934,10 @@ void fn_1_4010(void) } } if (spA[0] >= 4 && spA[1] >= 3 && spA[2] >= 3 && spA[3] >= 2) { - GWGameStat.field10E_bit5 = 1; + GWGameStat.customPackEnable = 1; } else { - GWGameStat.field10E_bit5 = 0; + GWGameStat.customPackEnable = 0; } pos2D = lbl_1_data_40[2]; pos2D.z = 800; @@ -1130,7 +1134,7 @@ void fn_1_52DC(void) lbl_1_bss_8.unk10 = lbl_1_bss_2C66[6]; lbl_1_bss_8.unk14 = lbl_1_bss_2C66[7]; lbl_1_bss_8.unk18 = lbl_1_bss_2C66[6]; - fn_1_18DF8(lbl_1_bss_2D8, &lbl_1_bss_8); + fn_1_18DF8(objman, &lbl_1_bss_8); Hu3DModelShadowSet(lbl_1_bss_2C80[5]); Hu3DModelShadowMapSet(lbl_1_bss_2C80[0]); } diff --git a/src/REL/mgmodedll/record.c b/src/REL/mgmodedll/record.c index 974cc66e..0c1bb43f 100644 --- a/src/REL/mgmodedll/record.c +++ b/src/REL/mgmodedll/record.c @@ -13,17 +13,10 @@ void fn_1_DE3C(void); void fn_1_DFB8(void); void fn_1_E02C(float x, float y, s16 recordNo); -s16 lbl_1_bss_37C[6]; -s16 lbl_1_bss_370[6]; +static s16 lbl_1_bss_37C[6]; +static s16 lbl_1_bss_370[6]; -s16 lbl_1_data_120[6][3] = { - 0, 2, 13, - 1, 0, 15, - 2, 1, 35, - 3, 2, 40, - 5, 1, 51, - 10, 1, 62 -}; +s16 mgRecordIdxTbl[6][3] = { 0, 2, 13, 1, 0, 15, 2, 1, 35, 3, 2, 40, 5, 1, 51, 10, 1, 62 }; void fn_1_D8D0(void) { @@ -32,48 +25,48 @@ void fn_1_D8D0(void) fn_1_DE3C(); espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[3], 0); - for(i=0; i<=20; i++) { - espTPLvlSet(lbl_1_bss_2C2C[3], i/20.0); + for (i = 0; i <= 20; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], i / 20.0); HuPrcVSleep(); } - for(i=0; i<=20; i++) { - weight = i/20.0; + for (i = 0; i <= 20; i++) { + weight = i / 20.0; espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*sind(weight*90.0f))); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0 + (164.0 * sind(weight * 90.0f))); espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[28], weight); espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], ((1-sind(weight*90.0f))*400)+288, 424); + espPosSet(lbl_1_bss_2C2C[20], ((1 - sind(weight * 90.0f)) * 400) + 288, 424); HuPrcVSleep(); } - for(i=0; i<6; i++) { - fn_1_E02C(288, (i*42)+150.0f, i); + for (i = 0; i < 6; i++) { + fn_1_E02C(288, (i * 42) + 150.0f, i); HuPrcVSleep(); } - while(1) { - if(HuPadBtnDown[0] & PAD_BUTTON_B) { + while (1) { + if (HuPadBtnDown[0] & PAD_BUTTON_B) { break; } HuPrcVSleep(); } HuAudFXPlay(3); - for(i=0; i<6; i++) { + for (i = 0; i < 6; i++) { fn_1_E02C(1288, 0, i); HuPrcVSleep(); } fn_1_DFB8(); - for(i=0; i<=20; i++) { - weight = i/20.0; + for (i = 0; i <= 20; i++) { + weight = i / 20.0; espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*cosd(weight*90.0f))); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0 + (164.0 * cosd(weight * 90.0f))); espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); - espTPLvlSet(lbl_1_bss_2C2C[28], 1.0-weight); + espTPLvlSet(lbl_1_bss_2C2C[28], 1.0 - weight); espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], ((1-cosd(weight*90.0f))*400)+288, 424); + espPosSet(lbl_1_bss_2C2C[20], ((1 - cosd(weight * 90.0f)) * 400) + 288, 424); HuPrcVSleep(); } - for(i=0; i<=10; i++) { - espTPLvlSet(lbl_1_bss_2C2C[3], 1-(i/10.0)); + for (i = 0; i <= 10; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], 1 - (i / 10.0)); HuPrcVSleep(); } } @@ -82,15 +75,15 @@ void fn_1_DE3C(void) { AnimData *numAnim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 53), MEMORY_DEFAULT_NUM)); s16 i; - for(i=0; i<6; i++) { - s16 window = HuWinCreate(0, (i*24), 268, 32, 0); + for (i = 0; i < 6; i++) { + s16 window = HuWinCreate(0, (i * 24), 268, 32, 0); s16 j; lbl_1_bss_37C[i] = window; HuWinBGTPLvlSet(window, 0); HuWinMesSpeedSet(window, 0); HuWinDispOff(window); lbl_1_bss_370[i] = HuSprGrpCreate(8); - for(j=0; j<8; j++) { + for (j = 0; j < 8; j++) { s16 sprite = HuSprCreate(numAnim, 10, 0); HuSprGrpMemberSet(lbl_1_bss_370[i], j, sprite); (void)sprite; @@ -102,7 +95,7 @@ void fn_1_DE3C(void) void fn_1_DFB8(void) { s16 i; - for(i=0; i<6; i++) { + for (i = 0; i < 6; i++) { HuWinKill(lbl_1_bss_37C[i]); HuSprGrpKill(lbl_1_bss_370[i]); } @@ -111,112 +104,117 @@ void fn_1_DFB8(void) void fn_1_E02C(float x, float y, s16 recordNo) { s32 sprGrpId = lbl_1_bss_370[recordNo]; - s32 value = GWMGRecordGet(lbl_1_data_120[recordNo][0]); + s32 value = GWMGRecordGet(mgRecordIdxTbl[recordNo][0]); s32 i; s16 mgNo; float xOfs; - - if(lbl_1_data_120[recordNo][2] != -1) { - mgNo = omMgIndexGet(lbl_1_data_120[recordNo][2]); - if(!GWMGAvailGet(mgNo+401)) { + + if (mgRecordIdxTbl[recordNo][2] != -1) { + mgNo = omMgIndexGet(mgRecordIdxTbl[recordNo][2]); + if (!GWMGAvailGet(mgNo + 401)) { mgNo = -1; - } else { + } + else { HuWinMesSet(lbl_1_bss_37C[recordNo], mgInfoTbl[mgNo].name_mess); } - } else { + } + else { mgNo = -1; } HuWinDispOn(lbl_1_bss_37C[recordNo]); - HuWinPosSet(lbl_1_bss_37C[recordNo], x-220, y-24); - if(mgNo == -1) { + HuWinPosSet(lbl_1_bss_37C[recordNo], x - 220, y - 24); + if (mgNo == -1) { HuWinMesSet(lbl_1_bss_37C[recordNo], MAKE_MESSID(35, 0)); - for(i=0; i<8; i++) { + for (i = 0; i < 8; i++) { HuSprBankSet(sprGrpId, i, 0); - HuSprPosSet(sprGrpId, i, i*16, 0); + HuSprPosSet(sprGrpId, i, i * 16, 0); HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF); } xOfs = 128; - } else { + } + else { s32 memberNum; s32 digitValue; - if(lbl_1_data_120[recordNo][1] == 0) { + if (mgRecordIdxTbl[recordNo][1] == 0) { memberNum = 0; - if(value > 9999) { + if (value > 9999) { value = 9999; } - digitValue = value/1000; - if(digitValue != 0) { + digitValue = value / 1000; + if (digitValue != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*1000; + value -= digitValue * 1000; memberNum++; } - digitValue = value/100; - if(digitValue != 0 || memberNum != 0) { + digitValue = value / 100; + if (digitValue != 0 || memberNum != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*100; + value -= digitValue * 100; memberNum++; } - digitValue = value/10; - if(digitValue != 0 || memberNum != 0) { + digitValue = value / 10; + if (digitValue != 0 || memberNum != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*10; + value -= digitValue * 10; memberNum++; } HuSprBankSet(sprGrpId, memberNum, value); memberNum++; - for(i=0; i<8; i++) { + for (i = 0; i < 8; i++) { HuSprAttrSet(sprGrpId, i, HUSPR_ATTR_DISPOFF); } - for(i=0; ipos; sp18.x = -300; sp18.y = 0; sp18.z = 680; VECSubtract(&sp18, &sp24, &sp18); - temp_f29 = (180+atan2d(sp18.z, sp18.x))-360; - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 50) { - temp_f31 = 1.0-sind((temp_r31/50.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); - } else { - temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); + temp_f29 = (180 + atan2d(sp18.z, sp18.x)) - 360; + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 50) { + temp_f31 = 1.0 - sind((temp_r31 / 50.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256 + (-400 * temp_f31)); } - if(temp_r31 > 20 && temp_r31 <= 50) { - temp_f31 = 1.0-sind(((temp_r31-20)/30.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); - } else if(temp_r31 > 50) { - temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); + else { + temp_f31 = cosd(((temp_r31 - 50.0) / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240 + (16 * temp_f31)); } - if(temp_r31 == 30) { + if (temp_r31 > 20 && temp_r31 <= 50) { + temp_f31 = 1.0 - sind(((temp_r31 - 20) / 30.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434 + (400 * temp_f31), 65); + } + else if (temp_r31 > 50) { + temp_f31 = cosd(((temp_r31 - 50.0) / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450 + (-16 * temp_f31), 65); + } + if (temp_r31 == 30) { Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } - if(temp_r31 > 30) { - temp_f31 = (temp_r31-30.0)/30.0; + if (temp_r31 > 30) { + temp_f31 = (temp_r31 - 30.0) / 30.0; VECScale(&sp18, &spC, temp_f31); VECAdd(&sp24, &spC, &spC); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &spC); - if(temp_r31 <= 40) { - temp_f31 = (temp_r31-20)/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29*temp_f31, 0); + if (temp_r31 <= 40) { + temp_f31 = (temp_r31 - 20) / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29 * temp_f31, 0); } } HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29+((20.0f-temp_f29)*temp_f31), 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29 + ((20.0f - temp_f29) * temp_f31), 0); HuPrcVSleep(); } - for(temp_r31=0; temp_r31<3; temp_r31++) { - for(temp_r30=0; temp_r30<3; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { mgTicTacToeGrid[temp_r31][temp_r30] = 0; } } } lbl_1_bss_3B8 = fn_1_25CA8(0x280019); - if(lbl_1_data_168 == -1) { + if (lbl_1_data_168 == -1) { lbl_1_data_168 = fn_1_2530C(0, 0, 0); } fn_1_25838(lbl_1_data_168, 0x280015, -1, -1); @@ -170,63 +151,80 @@ s32 fn_1_13418(void) HuSprTPLvlSet(lbl_1_bss_3A8, 13, 0.5f); temp_f30 = 0; sp8[0] = sp8[1] = 0; - for(temp_r31=0; temp_r31<9; temp_r31++) { - mgTicTacToeGrid[temp_r31%3][temp_r31/3] &= 0x3; + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] &= 0x3; } - while(1) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - if(sp8[temp_r31] == 0) { + while (1) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + if (sp8[temp_r31] == 0) { sp8[temp_r31] = fn_1_15E98(temp_r31, 1); - if(sp8[temp_r31] == -1) { + if (sp8[temp_r31] == -1) { sp8[temp_r31] = 0; goto else_case; - } else if(sp8[temp_r31] == 1) { - HuSprAttrSet(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } - } else { - else_case: - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 0.7+(0.2*sind(temp_f30+(temp_r31*180)))); - HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, 150); } - } else { - sp8[temp_r31] = fn_1_15E98(temp_r31, 0); - if(sp8[temp_r31] == -1) { - sp8[temp_r31] = 0; - HuSprAttrReset(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + else if (sp8[temp_r31] == 1) { + HuSprAttrSet(lbl_1_bss_3A8, temp_r31 + 12, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_3A8, temp_r31 + 14, HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); } - } else { - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 1.0f); - HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, temp_r31+180); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + } + else { + else_case: + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31 + 12, 0.7 + (0.2 * sind(temp_f30 + (temp_r31 * 180)))); + HuSprPriSet(lbl_1_bss_3A8, temp_r31 + 12, 150); + } + } + else { + sp8[temp_r31] = fn_1_15E98(temp_r31, 0); + if (sp8[temp_r31] == -1) { + sp8[temp_r31] = 0; + HuSprAttrReset(lbl_1_bss_3A8, temp_r31 + 12, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_3A8, temp_r31 + 14, HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + } + else { + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31 + 12, 1.0f); + HuSprPriSet(lbl_1_bss_3A8, temp_r31 + 12, temp_r31 + 180); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); } } } } - if(sp8[0] == 1 && sp8[1] == 1) { + if (sp8[0] == 1 && sp8[1] == 1) { HuSprTPLvlSet(lbl_1_bss_3A8, 12, 1.0f); HuSprTPLvlSet(lbl_1_bss_3A8, 13, 1.0f); break; - } else { + } + else { temp_f30 += 10.0f; - if(temp_f30 > 360.0f) { + if (temp_f30 > 360.0f) { temp_f30 -= 360.0f; } HuPrcVSleep(); @@ -237,14 +235,14 @@ s32 fn_1_13418(void) fn_1_25838(lbl_1_data_168, 0x280010, -1, -1); HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1.0f); mgTypeCurr = 2; - for(temp_r30=0; temp_r30<35;) { - for(temp_r31=0; temp_r31= 35) { + if (temp_r30 >= 35) { break; } } @@ -256,33 +254,35 @@ s32 fn_1_13418(void) HuWinInsertMesSet(lbl_1_data_168, mgInfoTbl[lbl_1_bss_2E4].name_mess, 0); HuWinAttrSet(lbl_1_data_168, 16); fn_1_25838(lbl_1_data_168, 0x280011, -1, -1); - repeat_mess: +repeat_mess: fn_1_25838(lbl_1_data_168, 0x280029, -1, -1); temp_r29 = HuWinChoiceGet(lbl_1_data_168, 0); - if(temp_r29 == 0) { + if (temp_r29 == 0) { _ClearFlag(11); - } else if(temp_r29 == 1) { + } + else if (temp_r29 == 1) { HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID(0x28, 40), 0); fn_1_25838(lbl_1_data_168, 0x280026, -1, -1); temp_r29 = HuWinChoiceGet(lbl_1_data_168, 1); - if(temp_r29 == 1) { + if (temp_r29 == 1) { goto repeat_mess; } fn_1_271B4(-1, 0, 0); - for(temp_r31=1; temp_r31<=10; temp_r31++) { - HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1-(temp_r31/10.0)); + for (temp_r31 = 1; temp_r31 <= 10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1 - (temp_r31 / 10.0)); HuPrcVSleep(); } fn_1_16438(); return 1; - } else { + } + else { _SetFlag(11); } GWSystem.mg_next = lbl_1_bss_2E4; HuDataDirClose(DATADIR_INSTPIC); fn_1_2783C(4); - while(1) { + while (1) { HuPrcVSleep(); } } @@ -300,23 +300,23 @@ void fn_1_14CFC(void) AnimData *temp_r23; AnimData *temp_r22; s16 temp_r21; - s32 temp_r20; + s16 temp_r20; s16 sp8; - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { lbl_1_bss_2C1C[temp_r31] = temp_r31; } - for(temp_r31=0; temp_r31<4; temp_r31++) { - for(temp_r27=0; temp_r27<3-temp_r31; temp_r27++) { - if(GWPlayerCfg[lbl_1_bss_2C1C[temp_r27]].group > GWPlayerCfg[lbl_1_bss_2C1C[temp_r27+1]].group) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + for (temp_r27 = 0; temp_r27 < 3 - temp_r31; temp_r27++) { + if (GWPlayerCfg[lbl_1_bss_2C1C[temp_r27]].group > GWPlayerCfg[lbl_1_bss_2C1C[temp_r27 + 1]].group) { temp_r24 = lbl_1_bss_2C1C[temp_r27]; - lbl_1_bss_2C1C[temp_r27] = lbl_1_bss_2C1C[temp_r27+1]; - lbl_1_bss_2C1C[temp_r27+1] = temp_r24; + lbl_1_bss_2C1C[temp_r27] = lbl_1_bss_2C1C[temp_r27 + 1]; + lbl_1_bss_2C1C[temp_r27 + 1] = temp_r24; } } } - if(lbl_1_bss_3A8 == 0) { - temp_r30 = HuSprGrpCreate(25); - lbl_1_bss_3A8 = temp_r30; + if (lbl_1_bss_3A8 == 0) { + + lbl_1_bss_3A8 = temp_r30 = HuSprGrpCreate(25); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 84), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); HuSprGrpMemberSet(temp_r30, 0, temp_r29); @@ -333,52 +333,55 @@ void fn_1_14CFC(void) HuSprPosSet(temp_r30, 2, temp_r26, temp_r25); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87), MEMORY_DEFAULT_NUM)); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 88), MEMORY_DEFAULT_NUM)); - for(temp_r31=temp_r27=0; temp_r31<9; temp_r31++) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0xF) { - temp_r24 = mgTicTacToeGrid[temp_r31%3][temp_r31/3]; - if(temp_r24 & 0x4) { + for (temp_r31 = temp_r27 = 0; temp_r31 < 9; temp_r31++) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0xF) { + temp_r24 = mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3]; + if (temp_r24 & 0x4) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 180, 0); HuSprGrpMemberSet(temp_r30, 14, temp_r29); - if(temp_r24 & 0x8) { - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-60, temp_r25+((temp_r31/3)*56)-56); - } else { - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + if (temp_r24 & 0x8) { + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 60, temp_r25 + ((temp_r31 / 3) * 56) - 56); + } + else { + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } temp_r27++; } - if(temp_r24 & 0x8) { + if (temp_r24 & 0x8) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 180, 0); HuSprGrpMemberSet(temp_r30, 15, temp_r29); - if(temp_r24 & 0x4) { - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-48, temp_r25+((temp_r31/3)*56)-56); - } else { - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + if (temp_r24 & 0x4) { + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 48, temp_r25 + ((temp_r31 / 3) * 56) - 56); + } + else { + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } temp_r27++; } - if(temp_r24 & 0x3) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x1) { + if (temp_r24 & 0x3) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x1) { temp_r29 = HuSprCreate(temp_r28, 180, 0); - } else { + } + else { temp_r29 = HuSprCreate(temp_r22, 180, 0); } - HuSprGrpMemberSet(temp_r30, temp_r31+3, temp_r29); - HuSprPosSet(temp_r30, temp_r31+3, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprGrpMemberSet(temp_r30, temp_r31 + 3, temp_r29); + HuSprPosSet(temp_r30, temp_r31 + 3, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } } } - if(temp_r27 == 0) { + if (temp_r27 == 0) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 150, 0); HuSprGrpMemberSet(temp_r30, 14, temp_r29); - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); HuSprAttrSet(temp_r30, 14, HUSPR_ATTR_DISPOFF); temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 150, 0); HuSprGrpMemberSet(temp_r30, 15, temp_r29); - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); HuSprAttrSet(temp_r30, 15, HUSPR_ATTR_DISPOFF); } temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 89), MEMORY_DEFAULT_NUM)); @@ -391,14 +394,14 @@ void fn_1_14CFC(void) HuSprAttrSet(temp_r30, 13, HUSPR_ATTR_DISPOFF); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 101), MEMORY_DEFAULT_NUM)); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 102), MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r29 = HuSprCreate(temp_r28, 130, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+16, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+16, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-110); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 16, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 16, ((temp_r31 % 2) * 314) - 155, ((temp_r31 / 2) * 185) - 110); temp_r29 = HuSprCreate(temp_r22, 135, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+17, temp_r29); - HuSprTPLvlSet(temp_r30, (temp_r31*2)+17, 0.5f); - HuSprPosSet(temp_r30, (temp_r31*2)+17, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-102); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 17, temp_r29); + HuSprTPLvlSet(temp_r30, (temp_r31 * 2) + 17, 0.5f); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 17, ((temp_r31 % 2) * 314) - 155, ((temp_r31 / 2) * 185) - 102); } temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 37), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 150, 0); @@ -407,9 +410,9 @@ void fn_1_14CFC(void) HuSprScaleSet(temp_r30, 24, 0.9f, 0.9f); HuSprTPLvlSet(temp_r30, 24, 0); } - if(lbl_1_bss_3AA == 0) { - temp_r30 = HuSprGrpCreate(10); - lbl_1_bss_3AA = temp_r30; + if (lbl_1_bss_3AA == 0) { + + lbl_1_bss_3AA = temp_r30 = HuSprGrpCreate(10); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 15), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); HuSprGrpMemberSet(temp_r30, 0, temp_r29); @@ -418,23 +421,23 @@ void fn_1_14CFC(void) temp_r29 = HuSprCreate(temp_r28, 190, 0); HuSprGrpMemberSet(temp_r30, 1, temp_r29); HuSprPosSet(temp_r30, 1, 0, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r20 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; - lbl_1_bss_2C24[temp_r31] = temp_r20; - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16)+(s16)temp_r20, MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r20 = lbl_1_bss_2C24[temp_r31] = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16) + temp_r20, MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 190, 0); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+2, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+2, lbl_1_data_19C[temp_r31], 0); - if(sp8 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].iscom) { + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 2, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 2, lbl_1_data_19C[temp_r31], 0); + if (sp8 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].iscom) { temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 39), MEMORY_DEFAULT_NUM)); temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].diff; - } else { + } + else { temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 38), MEMORY_DEFAULT_NUM)); temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].pad_idx; } temp_r29 = HuSprCreate(temp_r28, 180, temp_r21); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+3, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+3, lbl_1_data_19C[temp_r31], 24); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 3, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 3, lbl_1_data_19C[temp_r31], 24); } HuSprGrpPosSet(temp_r30, 800, 240); } @@ -451,70 +454,74 @@ s32 fn_1_15E98(s16 arg0, s32 arg1) s16 temp_r24; s16 temp_r23; temp_r28 = 4; - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(arg0 == GWPlayerCfg[temp_r27].group && GWPlayerCfg[temp_r27].iscom == 0 && temp_r28 > GWPlayerCfg[temp_r27].pad_idx) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (arg0 == GWPlayerCfg[temp_r27].group && GWPlayerCfg[temp_r27].iscom == 0 && temp_r28 > GWPlayerCfg[temp_r27].pad_idx) { temp_r28 = GWPlayerCfg[temp_r27].pad_idx; } } - if(temp_r28 == 4) { - if(arg1 == 0) { + if (temp_r28 == 4) { + if (arg1 == 0) { return 1; } - temp_r30 = lbl_1_bss_3B4[arg0]%3; - temp_r29 = lbl_1_bss_3B4[arg0]/3; - temp_r24 = lbl_1_bss_3B0[arg0]%3; - temp_r23 = lbl_1_bss_3B0[arg0]/3; - if(--lbl_1_bss_3AC[arg0] != 0) { + temp_r30 = lbl_1_bss_3B4[arg0] % 3; + temp_r29 = lbl_1_bss_3B4[arg0] / 3; + temp_r24 = lbl_1_bss_3B0[arg0] % 3; + temp_r23 = lbl_1_bss_3B0[arg0] / 3; + if (--lbl_1_bss_3AC[arg0] != 0) { return 0; } - if(temp_r30 == temp_r24 && temp_r29 == temp_r23) { + if (temp_r30 == temp_r24 && temp_r29 == temp_r23) { HuAudFXPlay(1); mgTicTacToeGrid[temp_r24][temp_r23] |= 4 << arg0; return 1; - } else { + } + else { lbl_1_bss_3AC[arg0] = 30; - temp_r26 = (temp_r24-temp_r30 < 0) ? -1 : (temp_r24-temp_r30 > 0) ? 1 : 0; - temp_r25 = (temp_r23-temp_r29 < 0) ? -1 : (temp_r23-temp_r29 > 0) ? 1 : 0; - lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + temp_r26 = (temp_r24 - temp_r30 < 0) ? -1 : (temp_r24 - temp_r30 > 0) ? 1 : 0; + temp_r25 = (temp_r23 - temp_r29 < 0) ? -1 : (temp_r23 - temp_r29 > 0) ? 1 : 0; + lbl_1_bss_3B4[arg0] = temp_r30 + temp_r26 + ((temp_r29 + temp_r25) * 3); HuAudFXPlay(0); return 0; } - } else { - temp_r30 = lbl_1_bss_3B4[arg0]%3; - temp_r29 = lbl_1_bss_3B4[arg0]/3; - if(arg1 == 0) { + } + else { + temp_r30 = lbl_1_bss_3B4[arg0] % 3; + temp_r29 = lbl_1_bss_3B4[arg0] / 3; + if (arg1 == 0) { return 1; } - if(HuPadBtnDown[temp_r28] & PAD_BUTTON_A) { - if((mgTicTacToeGrid[temp_r30][temp_r29] & 0x3) == 0) { + if (HuPadBtnDown[temp_r28] & PAD_BUTTON_A) { + if ((mgTicTacToeGrid[temp_r30][temp_r29] & 0x3) == 0) { mgTicTacToeGrid[temp_r30][temp_r29] |= 4 << arg0; HuAudFXPlay(1); return 1; - } else { + } + else { HuAudFXPlay(4); } } - if(HuPadDStkRep[temp_r28] == 0) { + if (HuPadDStkRep[temp_r28] == 0) { return 0; } temp_r26 = temp_r25 = 0; - if((HuPadDStkRep[temp_r28] & PAD_BUTTON_LEFT) && temp_r30 > 0) { + if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_LEFT) && temp_r30 > 0) { temp_r26 = -1; - } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_RIGHT) && temp_r30 < 2) { + } + else if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_RIGHT) && temp_r30 < 2) { temp_r26 = 1; } - if((HuPadDStkRep[temp_r28] & PAD_BUTTON_UP) && temp_r29 > 0) { + if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_UP) && temp_r29 > 0) { temp_r25 = -1; - } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_DOWN) && temp_r29 < 2) { + } + else if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_DOWN) && temp_r29 < 2) { temp_r25 = 1; } - if(temp_r26 || temp_r25) { + if (temp_r26 || temp_r25) { HuAudFXPlay(0); } - lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + lbl_1_bss_3B4[arg0] = temp_r30 + temp_r26 + ((temp_r29 + temp_r25) * 3); return 0; } - } void fn_1_16438(void) @@ -526,7 +533,7 @@ void fn_1_16438(void) Vec sp8; float temp_f31; float temp_f30; - + fn_1_25E74(lbl_1_bss_3B8); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = lbl_1_bss_3B8 = -1; @@ -536,44 +543,46 @@ void fn_1_16438(void) sp14.y = 0; sp14.z = 640; VECSubtract(&sp14, &sp20, &sp14); - temp_f30 = 180+atan2d(sp14.z, sp14.x); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 10) { - temp_f31 = sind((temp_r31/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); - } else { - temp_f31 = 1.0-cosd(((temp_r31-10.0)/50.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); + temp_f30 = 180 + atan2d(sp14.z, sp14.x); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 10) { + temp_f31 = sind((temp_r31 / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240 + (16 * temp_f31)); } - if(temp_r31 <= 10) { - temp_f31 = sind((temp_r31/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); - } else if(temp_r31 < 30) { - temp_f31 = 1-cosd(((temp_r31-10.0)/20.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); + else { + temp_f31 = 1.0 - cosd(((temp_r31 - 10.0) / 50.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256 + (-400 * temp_f31)); } - if(temp_r31 == 29) { + if (temp_r31 <= 10) { + temp_f31 = sind((temp_r31 / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450 + (-16 * temp_f31), 65); + } + else if (temp_r31 < 30) { + temp_f31 = 1 - cosd(((temp_r31 - 10.0) / 20.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434 + (400 * temp_f31), 65); + } + if (temp_r31 == 29) { Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); } - if(temp_r31 == 30) { + if (temp_r31 == 30) { Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } - if(temp_r31 > 30) { - temp_f31 = (temp_r31-30.0)/30.0; + if (temp_r31 > 30) { + temp_f31 = (temp_r31 - 30.0) / 30.0; VECScale(&sp14, &sp8, temp_f31); VECAdd(&sp20, &sp8, &sp8); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &sp8); - if(temp_r31 <= 40) { - temp_f31 = (temp_r31-30)/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30*temp_f31, 0); + if (temp_r31 <= 40) { + temp_f31 = (temp_r31 - 30) / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30 * temp_f31, 0); } } HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = 1.0-(temp_r31/10.0); - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31*temp_f30, 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = 1.0 - (temp_r31 / 10.0); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31 * temp_f30, 0); HuPrcVSleep(); } HuSprGrpKill(lbl_1_bss_3A8); @@ -597,81 +606,85 @@ s32 fn_1_16B30(void) s16 temp_r21; s16 temp_r20; float temp_f31; - + s16 sp22[9]; s16 sp1E[2]; s16 sp1A[2]; s16 sp16[2]; s16 sp12[2]; char spE[2][2]; - - for(temp_r31=0; temp_r31<9; temp_r31++) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x4) { + + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x4) { sp1E[0] = temp_r31; } - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x8) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x8) { sp1E[1] = temp_r31; } } HuPrcSleep(60); sp16[0] = sp16[1] = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp16[temp_r31/2] += GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])+GWPlayerCoinCollectGet(lbl_1_bss_2C1C[temp_r31]); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp16[temp_r31 / 2] += GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31]) + GWPlayerCoinCollectGet(lbl_1_bss_2C1C[temp_r31]); } sp12[0] = sp12[1] = 0; - if(sp16[0] != sp16[1]) { - if(sp16[0] > sp16[1]) { + if (sp16[0] != sp16[1]) { + if (sp16[0] > sp16[1]) { sp12[0] = 1; - } else { + } + else { sp12[1] = 1; } } - for(temp_r30=0, temp_r28=-1; temp_r30<2; temp_r30++) { - temp_r22 = sp1E[temp_r30]%3; - temp_r21 = sp1E[temp_r30]/3; - if(sp12[temp_r30] != 0) { + for (temp_r30 = 0, temp_r28 = -1; temp_r30 < 2; temp_r30++) { + temp_r22 = sp1E[temp_r30] % 3; + temp_r21 = sp1E[temp_r30] / 3; + if (sp12[temp_r30] != 0) { mgTicTacToeGrid[temp_r22][temp_r21] = (1 << temp_r30); temp_r28 = temp_r30; - } else { + } + else { mgTicTacToeGrid[temp_r22][temp_r21] &= ~(4 << temp_r30); } } - if(lbl_1_data_168 == -1) { + if (lbl_1_data_168 == -1) { lbl_1_data_168 = fn_1_2530C(0, 0, 0); } - if(temp_r28 != -1) { - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[temp_r28*2], 0); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + if (temp_r28 != -1) { + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[temp_r28 * 2], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 1); fn_1_25838(lbl_1_data_168, 0x280016, -1, -1); - } else { + } + else { fn_1_25838(lbl_1_data_168, 0x280013, -1, -1); } temp_r26 = espEntry(0x62005D, 100, 0); espColorSet(temp_r26, 255, 255, 192); - espAttrSet(temp_r26, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LOOP); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(sp12[temp_r30]) { - if(temp_r31 == 0) { - temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87)+temp_r30, MEMORY_DEFAULT_NUM)); + espAttrSet(temp_r26, HUSPR_ATTR_ADDCOL | HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LOOP); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (sp12[temp_r30]) { + if (temp_r31 == 0) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87) + temp_r30, MEMORY_DEFAULT_NUM)); temp_r24 = HuSprCreate(temp_r23, 170, 0); - HuSprGrpMemberSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, temp_r24); - HuSprPosSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, ((sp1E[temp_r30]%3)*56)-56, ((sp1E[temp_r30]/3)*56)-56); - HuSprAttrSet(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + HuSprGrpMemberSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, temp_r24); + HuSprPosSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, ((sp1E[temp_r30] % 3) * 56) - 56, ((sp1E[temp_r30] / 3) * 56) - 56); + HuSprAttrSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, HUSPR_ATTR_DISPOFF); espAttrReset(temp_r26, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r26, (((sp1E[temp_r30]%3)*56)+288.0f)-56, ((sp1E[temp_r30]/3)*56)+184); + espPosSet(temp_r26, (((sp1E[temp_r30] % 3) * 56) + 288.0f) - 56, ((sp1E[temp_r30] / 3) * 56) + 184); HuAudFXPlay(825); HuAudFXPlay(826); } - if(temp_r31 == 8) { - HuSprAttrReset(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + if (temp_r31 == 8) { + HuSprAttrReset(lbl_1_bss_3A8, sp1E[temp_r30] + 3, HUSPR_ATTR_DISPOFF); } - if(temp_r31 == 14) { + if (temp_r31 == 14) { espKill(temp_r26); } - } else { - temp_f31 = 1-(temp_r31/30.0); - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r30+14, temp_f31); + } + else { + temp_f31 = 1 - (temp_r31 / 30.0); + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r30 + 14, temp_f31); } } HuPrcVSleep(); @@ -680,30 +693,30 @@ s32 fn_1_16B30(void) HuSprTPLvlSet(lbl_1_bss_3A8, 14, 1.0f); HuSprAttrSet(lbl_1_bss_3A8, 15, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(lbl_1_bss_3A8, 15, 1.0f); - for(temp_r31=0; temp_r31<9; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { sp22[temp_r31] = 0; } temp_r27 = 0; - for(temp_r30=0; temp_r30<2; temp_r30++) { - for(temp_r31=0; temp_r31<8; temp_r31++) { - temp_r29 = lbl_1_data_16A[temp_r31*3]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[temp_r31*3]; - if(sp22[temp_r29] == 0) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { + temp_r29 = lbl_1_data_16A[temp_r31 * 3]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[temp_r31 * 3]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } - temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; - if(sp22[temp_r29] == 0) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } - temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; - if(sp22[temp_r29] == 0) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } @@ -712,59 +725,62 @@ s32 fn_1_16B30(void) } } } - if(temp_r27 == 0) { + if (temp_r27 == 0) { sp1A[0] = sp1A[1] = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - for(temp_r30=0; temp_r30<3; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { temp_r20 = mgTicTacToeGrid[temp_r31][temp_r30]; - if(temp_r20 & 0x1) { + if (temp_r20 & 0x1) { sp1A[0]++; } - if(temp_r20 & 0x2) { + if (temp_r20 & 0x2) { sp1A[1]++; } } } - if(sp1A[0]+sp1A[1] >= 9) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - spE[temp_r31][0] = sp1A[temp_r31]+'0'; + if (sp1A[0] + sp1A[1] >= 9) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + spE[temp_r31][0] = sp1A[temp_r31] + '0'; spE[temp_r31][1] = 0; HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID_PTR(&spE[temp_r31][0]), (s32)temp_r31); } - if(sp1A[0] > sp1A[1]) { + if (sp1A[0] > sp1A[1]) { temp_r28 = 0; - } else { + } + else { temp_r28 = 1; } HuPrcSleep(30); HuAudFXPlay(2175); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 2); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 3); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 0], 2); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 3); fn_1_25838(lbl_1_data_168, 0x280025, -1, -1); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = -1; return 1; - } else { + } + else { return 0; } - } else { + } + else { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 93), MEMORY_DEFAULT_NUM)); temp_r25 = HuSprGrpCreate(temp_r27); - for(temp_r30=temp_r31=0; temp_r30<9; temp_r30++) { - if(sp22[temp_r30] == 0) { + for (temp_r30 = temp_r31 = 0; temp_r30 < 9; temp_r30++) { + if (sp22[temp_r30] == 0) { continue; } temp_r24 = HuSprCreate(temp_r23, 100, 0); HuSprGrpMemberSet(temp_r25, temp_r31, temp_r24); - HuSprPosSet(temp_r25, temp_r31, (((temp_r30%3)*56)+288.0f)-56, ((temp_r30/3)*56)+184); + HuSprPosSet(temp_r25, temp_r31, (((temp_r30 % 3) * 56) + 288.0f) - 56, ((temp_r30 / 3) * 56) + 184); HuSprAttrSet(temp_r25, temp_r31, HUSPR_ATTR_LOOP); temp_r31++; } HuPrcSleep(14); HuSprGrpKill(temp_r25); HuAudFXPlay(2175); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 0); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 0], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 1); fn_1_25838(lbl_1_data_168, 0x280017, -1, -1); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = -1; @@ -777,17 +793,17 @@ void fn_1_17A5C(void) HuSprGrp *gp = &HuSprGrpData[lbl_1_bss_3A8]; s16 j; s16 i; - for(j=0; j<=30; j++) { - float tplvl = 1.0-(j/30.0); - for(i=3; i<12; i++) { - if(gp->members[i] != -1) { - HuSprData[gp->members[i]].a = 255.0f*tplvl; + for (j = 0; j <= 30; j++) { + float tplvl = 1.0 - (j / 30.0); + for (i = 3; i < 12; i++) { + if (gp->members[i] != -1) { + HuSprData[gp->members[i]].a = 255.0f * tplvl; } } HuPrcVSleep(); } - for(i=0; i<3; i++) { - for(j=0; j<3; j++) { + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { mgTicTacToeGrid[i][j] = 0; } } @@ -806,156 +822,165 @@ void fn_1_17BE0(void) s16 temp_r23; s16 temp_r22; s16 temp_r21; - + s16 sp2A[9]; s16 sp18[9]; s16 sp8[8]; - for(temp_r26=0; temp_r26<2; temp_r26++) { - for(temp_r31=0; temp_r31<8; temp_r31++) { + for (temp_r26 = 0; temp_r26 < 2; temp_r26++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; temp_r25 = -1; - temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 0]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - if(temp_r28 == 2 && temp_r25 != -1) { + if (temp_r28 == 2 && temp_r25 != -1) { OSReport("%d:LEACH\n", temp_r26); lbl_1_bss_3B0[temp_r26] = temp_r25; break; } } - if(temp_r31 != 8) { + if (temp_r31 != 8) { continue; } - if(frandmod(5) != 0) { - temp_r29 = temp_r26^1; - for(temp_r31=0; temp_r31<8; temp_r31++) { + if (frandmod(5) != 0) { + temp_r29 = temp_r26 ^ 1; + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; temp_r25 = -1; - temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 0]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - if(temp_r28 == 2 && temp_r25 != -1) { + if (temp_r28 == 2 && temp_r25 != -1) { lbl_1_bss_3B0[temp_r26] = temp_r25; break; } } - if(temp_r31 != 8) { + if (temp_r31 != 8) { continue; } } - for(temp_r31=temp_r24=temp_r21=0; temp_r31<9; temp_r31++) { - if((1 << temp_r26) & mgTicTacToeGrid[temp_r31%3][temp_r31/3]) { + for (temp_r31 = temp_r24 = temp_r21 = 0; temp_r31 < 9; temp_r31++) { + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3]) { sp2A[temp_r24] = temp_r31; temp_r24++; - } else if((mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x3) == 0) { sp18[temp_r21++] = temp_r31; } } - if(temp_r24 == 0) { + if (temp_r24 == 0) { OSReport("%d:KOMA None\n", temp_r26); - for(temp_r31=0; temp_r31<50; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 50; temp_r31++) { temp_r30 = lbl_1_data_1AC[frandmod(8)]; - if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { lbl_1_bss_3B0[temp_r26] = temp_r30; break; } } - if(temp_r31 == 50) { + if (temp_r31 == 50) { lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; } - } else { - for(temp_r22=0; temp_r22<50; temp_r22++) { + } + else { + for (temp_r22 = 0; temp_r22 < 50; temp_r22++) { temp_r29 = sp2A[frandmod(temp_r24)]; temp_r27 = 0; - if((temp_r29%3) != 0 && (mgTicTacToeGrid[(temp_r29-1)%3][temp_r29/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-1; + if ((temp_r29 % 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 1) % 3][temp_r29 / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 1; } - if((temp_r29%3)!= 2 && (mgTicTacToeGrid[(temp_r29+1)%3][temp_r29/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+1; + if ((temp_r29 % 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 1) % 3][temp_r29 / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 1; } - if((temp_r29/3) != 0 && (mgTicTacToeGrid[temp_r29%3][(temp_r29-3)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-3; + if ((temp_r29 / 3) != 0 && (mgTicTacToeGrid[temp_r29 % 3][(temp_r29 - 3) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 3; } - if((temp_r29/3) != 2 && (mgTicTacToeGrid[temp_r29%3][(temp_r29+3)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+3; + if ((temp_r29 / 3) != 2 && (mgTicTacToeGrid[temp_r29 % 3][(temp_r29 + 3) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 3; } - if((temp_r29%3) != 0 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-4)%3][(temp_r29-4)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-4; + if ((temp_r29 % 3) != 0 && (temp_r29 / 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 4) % 3][(temp_r29 - 4) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 4; } - if((temp_r29%3) != 2 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-2)%3][(temp_r29-2)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-2; + if ((temp_r29 % 3) != 2 && (temp_r29 / 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 2) % 3][(temp_r29 - 2) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 2; } - if((temp_r29%3) != 0 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+2)%3][(temp_r29+2)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+2; + if ((temp_r29 % 3) != 0 && (temp_r29 / 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 2) % 3][(temp_r29 + 2) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 2; } - if((temp_r29%3) != 2 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+4)%3][(temp_r29+4)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+4; + if ((temp_r29 % 3) != 2 && (temp_r29 / 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 4) % 3][(temp_r29 + 4) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 4; } - if(temp_r27 != 0) { + if (temp_r27 != 0) { temp_r23 = sp8[frandmod(temp_r27)]; - for(temp_r31=0; temp_r31<8; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; - if(temp_r29 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+2]) { + if (temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 0] || temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 1] + || temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 2]) { temp_r28++; } - if(temp_r23 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+2]) { + if (temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 0] || temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 1] + || temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 2]) { temp_r28++; } - if(temp_r28 == 2) { - for(temp_r28=0; temp_r28<3; temp_r28++) { - if(temp_r29 != lbl_1_data_16A[(temp_r31*3)+temp_r28] && temp_r23 != lbl_1_data_16A[(temp_r31*3)+temp_r28]) { + if (temp_r28 == 2) { + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + if (temp_r29 != lbl_1_data_16A[(temp_r31 * 3) + temp_r28] && temp_r23 != lbl_1_data_16A[(temp_r31 * 3) + temp_r28]) { break; } } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+temp_r28]; - if(mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + temp_r28]; + if (mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) { temp_r30 = -1; } break; } } - if(temp_r31 == 8 || temp_r30 < 0) { + if (temp_r31 == 8 || temp_r30 < 0) { continue; } lbl_1_bss_3B0[temp_r26] = temp_r23; break; } } - if(temp_r22 == 50) { + if (temp_r22 == 50) { lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; } } - } OSReport("com %d,%d\n", lbl_1_bss_3B0[0], lbl_1_bss_3B0[1]); -} \ No newline at end of file +} diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index a871df64..cb1c254b 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -11,10 +11,8 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "math.h" #include "REL/modeltestDll.h" -#include "math.h" // -------------------------------------------------------------------------- // @@ -165,8 +163,8 @@ HsfanimStruct00 lbl_1_data_258 = { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; -const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; -const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; +const Vec lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; +const Vec lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; s16 lbl_1_bss_99C; s16 lbl_1_bss_99A; s16 lbl_1_bss_98A[8]; @@ -198,9 +196,9 @@ static u8 unk_bss[8]; void fn_1_29C(omObjData *arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; Mtx sp2C; s16 var_r31; s16 temp_r27; @@ -310,8 +308,7 @@ void fn_1_29C(omObjData *arg0) lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); - Hu3DParManPosSet( - lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); + Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -340,7 +337,7 @@ void fn_1_F38(void) // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) +static inline void HuControlCamCenter(Vec *sp18, Vec *sp30) { s8 temp_r28; @@ -367,10 +364,10 @@ const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } }; void fn_1_F9C(struct om_obj_data *omData) { - Point3d sp3C; - Point3d sp30; - Point3d sp24; - Point3d sp18; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; f32 temp_f31; s32 var_r31; s16 var_r30; @@ -465,28 +462,28 @@ void fn_1_F9C(struct om_obj_data *omData) } } - sp3C.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - sp3C.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - sp3C.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + sp3C.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + sp3C.y = Center.y + CZoom * -sind(CRot.x); + sp3C.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); sp30.x = Center.x - sp3C.x; sp30.y = Center.y - sp3C.y; sp30.z = Center.z - sp3C.z; - sp24.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - sp24.y = cos((M_PI * CRot.x) / 180.0); - sp24.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + sp24.x = sind(CRot.y) * sind(CRot.x); + sp24.y = cosd(CRot.x); + sp24.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; - sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); + sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31)) + + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); - sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); + sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31)) + + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); - sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); + sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + + sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31))); VECCrossProduct(&sp24, &sp30, &sp30); VECNormalize(&sp30, &sp30); @@ -598,16 +595,16 @@ void fn_1_20F4(void) Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXInverse(sp30, sp60); + MTXInverse(sp30, sp60); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXMultVec(sp60, &sp18, &sp18); + MTXMultVec(sp60, &sp18, &sp18); - temp_f27 = 180.0 * (atan2(sp18.z, sp18.x) / M_PI); + temp_f27 = atan2d(sp18.z, sp18.x); temp_r31 = &lbl_1_bss_40[var_r29 * 2]; - temp_r31->obj->data.curr.rot.x = temp_r31->rot.x + (var_f29 * (2.0 * (sin((M_PI * temp_f27) / 180.0) * sin((M_PI * var_r27) / 180.0)))); + temp_r31->obj->data.curr.rot.x = temp_r31->rot.x + (var_f29 * (2.0 * (sind(temp_f27) * sind(var_r27)))); temp_r31->obj->data.curr.rot.y = temp_r31->rot.y; - temp_r31->obj->data.curr.rot.z = temp_r31->rot.z + (var_f29 * cos((M_PI * var_r27) / 180.0)); + temp_r31->obj->data.curr.rot.z = temp_r31->rot.z + (var_f29 * cosd(var_r27)); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp24); @@ -632,7 +629,7 @@ void fn_1_20F4(void) var_f29 = 0.0f; } else { - var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI); + var_r27 = atan2d(HuPadSubStkX[1], HuPadSubStkY[1]); temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]); var_f29 = sqrtf(temp_f30); if (var_f29 > 80.0f) { @@ -646,9 +643,9 @@ void fn_1_20F4(void) // -------------------------------------------------------------------------- // -void fn_1_28F8(Point3d *arg0, Point3d *arg1) +void fn_1_28F8(Vec *arg0, Vec *arg1) { - Point3d spC; + Vec spC; Mtx sp18; CameraData *cam; f32 temp_f31; @@ -656,10 +653,10 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1) cam = &Hu3DCamera[0]; C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target); - PSMTXMultVec(sp18, arg0, &spC); + MTXMultVec(sp18, arg0, &spC); - temp_f31 = (1.2f * (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0))))); - temp_f30 = (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0)))); + temp_f31 = (1.2f * (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2))))); + temp_f30 = (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2)))); arg1->x = 288.0f + (spC.x * (288.0f / -temp_f31)); arg1->y = 240.0f + (spC.y * (240.0f / temp_f30)); } @@ -775,13 +772,13 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0U); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0U); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); GXSetCullMode(GX_CULL_NONE); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); GXSetNumTexGens(1); - GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetNumTevStages(1); sp17.r = sp17.g = sp17.b = sp17.a = 255; @@ -797,10 +794,10 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U); GXSetZCompLoc(0U); - PSMTXIdentity(arg1); + MTXIdentity(arg1); GXLoadPosMtxImm(arg1, 0U); - PSMTXInvXpose(arg1, sp90); + MTXInvXpose(arg1, sp90); GXLoadNrmMtxImm(sp90, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -814,7 +811,7 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXLoadTexObj(&sp30, GX_TEXMAP0); GXSetNumIndStages(1U); - PSMTXScale(sp150, 0.1f, 0.1f, 0.0f); + MTXScale(sp150, 0.1f, 0.1f, 0.0f); sp18[0][0] = sp150[0][0]; sp18[0][1] = sp150[0][1]; sp18[0][2] = 0.0f; @@ -822,12 +819,12 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) sp18[1][1] = sp150[1][1]; sp18[1][2] = 0.0f; - PSMTXRotRad(spF0, 0x58, -1.5707964f); + MTXRotRad(spF0, 0x58, -1.5707964f); mtxRot(spF0, 0.0f, 0.0f, 0.0f); temp_f31 = 0.0015625f; - PSMTXScale(sp120, temp_f31, temp_f31, temp_f31); - PSMTXConcat(sp120, spF0, sp150); - PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f); + MTXScale(sp120, temp_f31, temp_f31, temp_f31); + MTXConcat(sp120, spF0, sp150); + MTXTrans(spC0, 0.5f, 0.0f, 0.5f); GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1); diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 36d9596b..03f4fd71 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -1,27 +1,28 @@ -#include "math.h" #include "game/chrman.h" -#include "game/wipe.h" #include "game/pad.h" +#include "game/wipe.h" +#include "math.h" + #include "REL/modeltestDll.h" // -------------------------------------------------------------------------- // -omObjData * unk_bss_9FC; -omObjData * lbl_1_bss_9F8; -omObjData * lbl_1_bss_9F4; +omObjData *unk_bss_9FC; +omObjData *lbl_1_bss_9F8; +omObjData *lbl_1_bss_9F4; s16 lbl_1_bss_9EC[4]; s16 lbl_1_bss_9AC[4][8]; -Process * lbl_1_bss_9A8; -u16 lbl_1_data_358[4] = {1, 2, 4, 8}; +Process *lbl_1_bss_9A8; +u16 lbl_1_data_358[4] = { 1, 2, 4, 8 }; // -------------------------------------------------------------------------- // void fn_1_34B0() { - Process * temp_r30; + Process *temp_r30; s16 var_r31; - + OSReport("******* MODELTESTObjectSetup *********\n"); temp_r30 = omInitObjMan(0x32, 0x2000); @@ -33,8 +34,7 @@ void fn_1_34B0() Center.z = 0.0f; CZoom = 400.0f; - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + for (var_r31 = 0; var_r31 < 4; ++var_r31) { Hu3DCameraCreate(lbl_1_data_358[var_r31]); Hu3DCameraPerspectiveSet(lbl_1_data_358[var_r31], 45.0f, 20.0f, 20000.0f, 1.2f); Hu3DCameraViewportSet(lbl_1_data_358[var_r31], (var_r31 & 1) * 320, ((var_r31 & 2) != 0) ? 0xF0 : 0, 320.0f, 240.0f, 0.0f, 1.0f); @@ -51,7 +51,8 @@ void fn_1_34B0() // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { +static inline void HuControlCamCenter(Vec *sp18, Vec *sp30) +{ s8 temp_r28; temp_r28 = HuPadSubStkX[0] & 0xF8; @@ -73,12 +74,12 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { void fn_1_37DC(omObjData *) { - Point3d sp3C; - Point3d sp30; - Point3d sp24; - Point3d sp18; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; float temp_f31; - + if ((HuPadBtnDown[0] & PAD_BUTTON_START) != 0) { if (lbl_1_bss_9A8) { HuPrcKill(lbl_1_bss_9A8); @@ -103,28 +104,28 @@ void fn_1_37DC(omObjData *) CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; - sp3C.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - sp3C.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - sp3C.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + sp3C.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + sp3C.y = Center.y + CZoom * -sind(CRot.x); + sp3C.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); sp30.x = Center.x - sp3C.x; sp30.y = Center.y - sp3C.y; sp30.z = Center.z - sp3C.z; - sp24.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - sp24.y = cos((M_PI * CRot.x) / 180.0); - sp24.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + sp24.x = sind(CRot.y) * sind(CRot.x); + sp24.y = cosd(CRot.x); + sp24.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; - - sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); - sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); - - sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); + sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31)) + + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); + + sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31)) + + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); + + sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + + sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31))); VECCrossProduct(&sp24, &sp30, &sp30); VECNormalize(&sp30, &sp30); @@ -134,48 +135,47 @@ void fn_1_37DC(omObjData *) // -------------------------------------------------------------------------- // -void fn_1_439C(omObjData * ) +void fn_1_439C(omObjData *) { s16 var_r31; f32 temp_f30; f32 temp_f31; f32 sp10; - Point3d sp2C; - Point3d sp20; - Point3d sp14; - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + Vec sp2C; + Vec sp20; + Vec sp14; + for (var_r31 = 0; var_r31 < 4; ++var_r31) { temp_f31 = CRot.x; temp_f30 = CRot.y + (var_r31 * 90); sp10 = CRot.z; - sp2C.x = Center.x + (CZoom * (sin((M_PI * temp_f30) / 180.0) * (cos((M_PI * temp_f31) / 180.0)))); - sp2C.y = Center.y + (CZoom * -sin((M_PI * temp_f31) / 180.0)); - sp2C.z = Center.z + (CZoom * (cos((M_PI * temp_f30) / 180.0) * (cos((M_PI * temp_f31) / 180.0)))); - + sp2C.x = Center.x + CZoom * (sind(temp_f30) * (cosd(temp_f31))); + sp2C.y = Center.y + CZoom * -sind(temp_f31); + sp2C.z = Center.z + CZoom * (cosd(temp_f30) * (cosd(temp_f31))); + sp20.x = Center.x; sp20.y = Center.y; sp20.z = Center.z; - sp14.x = sin((M_PI * temp_f30) / 180.0) * (sin((M_PI * temp_f31) / 180.0)); - sp14.y = cos((M_PI * temp_f31) / 180.0); - sp14.z = cos((M_PI * temp_f30) / 180.0) * (sin((M_PI * temp_f31) / 180.0)); + sp14.x = sind(temp_f30) * (sind(temp_f31)); + sp14.y = cosd(temp_f31); + sp14.z = cosd(temp_f30) * (sind(temp_f31)); - Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z); + Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z); } } // -------------------------------------------------------------------------- // -const Point3d lbl_1_rodata_18C = {0.0f, 0.0f, 0.0f}; -const Point3d lbl_1_rodata_198 = {0.0f, 1.0f, 0.0f}; +const Vec lbl_1_rodata_18C = { 0.0f, 0.0f, 0.0f }; +const Vec lbl_1_rodata_198 = { 0.0f, 1.0f, 0.0f }; // -------------------------------------------------------------------------- // void fn_1_46F0(void) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; s16 var_r31; s16 var_r30; @@ -192,8 +192,7 @@ void fn_1_46F0(void) sp20.z = 1000.0f; Hu3DShadowPosSet(&sp20, &sp8, &sp14); - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + for (var_r31 = 0; var_r31 < 4; ++var_r31) { var_r30 = var_r31; lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8); Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]); @@ -201,7 +200,7 @@ void fn_1_46F0(void) CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]); - Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], ((( var_r31 / 4) * 200) - 100), 0.0f, (-( var_r31 % 4) * 150)); + Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], (((var_r31 / 4) * 200) - 100), 0.0f, (-(var_r31 % 4) * 150)); Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], 0.0f, 0.0f, 0.0f); CharModelMotionDataClose(var_r30); } @@ -210,15 +209,12 @@ void fn_1_46F0(void) Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); - while (TRUE) - { + while (TRUE) { if ((HuPadBtnDown[0] & PAD_BUTTON_Y) != 0) { Hu3DCameraKill(2); Hu3DCameraKill(4); Hu3DCameraKill(8); - sp20.x = - sp20.z = - sp20.y = 0.0f; + sp20.x = sp20.z = sp20.y = 0.0f; sp20.y += 200.0f; CharModelCoinEffectCreate(4, &sp20); } diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 7394daa6..1ddd44cf 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -10,10 +10,14 @@ #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" #include "REL/modeseldll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s16 lbl_1_data_100 = -1; float lbl_1_data_104[] = { -55, 0, 0, 0, 60, -57, 806, -71, 0, 0, 0, 100, -131, 900, -87, 0, 0, 0, 46, -117, 566, -87, 0, 0, 0, 46, -117, 566, -90, 0, 0, -22, 39, -153, 432, -40, 0, 0, 0, 130, -186, 6530, -23, 0, 0, -9, 1, -70, 1318, -25, 0, 0, 0, 242, 90, 343, -30, 0, 0, 0, 223, -60, 505, -23, @@ -122,6 +126,9 @@ s32 fn_1_37DC(void) } if (!SLSaveFlagGet()) { GWGameStatReset(); + #if VERSION_PAL + _ClearFlag(0x1000B); + #endif GWGameStat.sound_mode = msmSysGetOutputMode(); result = 1; break; @@ -203,7 +210,7 @@ repeat: fn_1_5C38(); for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { temp_f31 = temp_r30 / 20.0; - temp_f31 = sin(M_PI * (90.0f * temp_f31) / 180.0); + temp_f31 = sind(90.0f * temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); @@ -377,8 +384,8 @@ loop_exit: for (temp_r30 = 0; temp_r30 <= 40; temp_r30++) { if (temp_r30 <= 30) { temp_f31 = temp_r30 / 30.0f; - sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sin(M_PI * (90.0f * temp_f31) / 180.0)))); - sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sind(90.0f * temp_f31)))); + sp28.y = 250.0 - (100.0 * sind(180.0f * temp_f31)); sp28.z = (temp_r30 * 100) + 600; Hu3D2Dto3D(&sp28, 1, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26 + 2], &sp1C); @@ -390,11 +397,11 @@ loop_exit: temp_f31 = (temp_r30 - 20) / 20.0f; if (temp_r29) { sp28.x = 288.0f + ((1.0 - temp_f31) * (100 * GET_ZEROSIGN(temp_r31))); - sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.y = 250.0 - (100.0 * sind(180.0f * temp_f31)); sp28.z = 600.0f; Hu3D2Dto3D(&sp28, 1, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - temp_f31 = (0.5 * sin(M_PI * (90.0f * temp_f31) / 180.0)) + 1.0; + temp_f31 = (0.5 * sind(90.0f * temp_f31)) + 1.0; Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } else { @@ -407,14 +414,14 @@ loop_exit: sp28.z = 600; Hu3D2Dto3D(&sp28, 1, &sp10); VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); - sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.x *= sind(90.0f * temp_f31); + sp28.y *= 1.0 - cosd(90.0f * temp_f31); sp28.z = 0; VECAdd(&sp28, &sp1C, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_108[temp_r31] *= cosd(90.0f * temp_f31); lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; - temp_f31 = 1.0 + (0.3 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + temp_f31 = 1.0 + (0.3 * cosd(90.0f * temp_f31)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } } @@ -428,7 +435,11 @@ loop_exit: temp_r29 = 0; if (temp_r28 == -2) { HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + #if VERSION_PAL + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + #else HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + #endif HuWinMesWait(lbl_1_bss_148); temp_r29 = 1; } @@ -525,7 +536,7 @@ cleanup: for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { temp_f31 = temp_r30 / 20.0f; if (temp_r29) { - temp_f31 = 1.5 * cos(M_PI * (90.0f * temp_f31) / 180.0); + temp_f31 = 1.5 * cosd(90.0f * temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); @@ -544,14 +555,14 @@ cleanup: sp28.z = 600; Hu3D2Dto3D(&sp28, 1, &sp10); VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); - sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.x *= sind(90.0f * temp_f31); + sp28.y *= 1.0 - cosd(90.0f * temp_f31); sp28.z = 0.0f; VECAdd(&sp28, &sp1C, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_108[temp_r31] *= cosd(90.0f * temp_f31); lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; - temp_f31 = 1.0 + (0.5 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + temp_f31 = 1.0 + (0.5 * cosd(90.0f * temp_f31)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } HuPrcVSleep(); @@ -636,10 +647,10 @@ void fn_1_5850(void) float scale; float time = i / 10.0; if (param) { - scale = 1.0 + (0.3 * sin(M_PI * (90.0f * time) / 180.0)); + scale = 1.0 + (0.3 * sind(90.0f * time)); } else { - scale = 1.0 + (0.3 * cos(M_PI * (90.0f * time) / 180.0)); + scale = 1.0 + (0.3 * cosd(90.0f * time)); } Hu3DModelScaleSet(lbl_1_bss_19A[index + 2], scale, scale, scale); Hu3DModelScaleSet(lbl_1_bss_19A[index + 4], scale, scale, scale); @@ -800,7 +811,7 @@ s32 fn_1_61B4(void) lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; UnMountCnt = 0; for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { - temp_f31 = sin(M_PI * (90.0f * (temp_r29 / 20.0f)) / 180.0); + temp_f31 = sind(90.0f * (temp_r29 / 20.0f)); for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); @@ -970,6 +981,9 @@ s32 fn_1_61B4(void) sp8 = OSGetTime(); SLSaveDataMake(1, &sp8); GWGameStatReset(); + #if VERSION_PAL + _ClearFlag(0x1000B); + #endif GWGameStat.sound_mode = msmSysGetOutputMode(); SLCommonSet(); fn_1_B8CC(MAKE_MESSID(16, 0x3C)); @@ -1011,6 +1025,13 @@ s32 fn_1_61B4(void) if (SLCheckSumCheck()) { fn_1_9E14(); SLLoadGameStat(); + #if VERSION_PAL + if(GwLanguageSave != -1) { + GWGameStat.language = GwLanguageSave; + } + GwLanguage = GWGameStat.language; + _ClearFlag(0x1000B); + #endif temp_r31 = 1; break; } @@ -1076,7 +1097,7 @@ s32 fn_1_61B4(void) } HuWinDispOff(lbl_1_bss_146); for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { - temp_f31 = cos(M_PI * (90.0 * (temp_r29 / 20.0)) / 180.0); + temp_f31 = cosd(90.0 * (temp_r29 / 20.0)); Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); @@ -1115,10 +1136,10 @@ void fn_1_72DC(void) Vec pos_2d; Vec pos_3d; if (param) { - scale = sin(M_PI * (90.0f * (i / 10.0f)) / 180.0); + scale = sind(90.0f * (i / 10.0f)); } else { - scale = cos(M_PI * (90.0f * (i / 10.0f)) / 180.0); + scale = cosd(90.0f * (i / 10.0f)); } pos_2d.x = 158.0f + (index * 130); pos_2d.y = 230; @@ -1172,7 +1193,11 @@ s32 fn_1_76B4(char *name, s16 slotno) } if (result == -2) { HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + #if VERSION_PAL + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + #else HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + #endif HuWinMesWait(lbl_1_bss_148); return result; } @@ -1476,7 +1501,7 @@ s32 fn_1_8540(s16 boxno) return 0; } for (time = 0; time <= 10; time++) { - scale = cos(M_PI * (90.0 * (time / 10.0)) / 180.0); + scale = cosd(90.0 * (time / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); HuPrcVSleep(); } @@ -1490,7 +1515,7 @@ s32 fn_1_8540(s16 boxno) Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6f); Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3f); for (time = 0; time <= 20; time++) { - scale = sin(M_PI * (90.0 * (time / 20.0)) / 180.0); + scale = sind(90.0 * (time / 20.0)); Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); HuPrcVSleep(); } @@ -1661,7 +1686,7 @@ s32 fn_1_8C30(s16 boxno) else { fn_1_9E14(); for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { - temp_f31 = cos(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + temp_f31 = cosd(90.0 * (temp_r30 / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); HuPrcVSleep(); } @@ -1709,7 +1734,7 @@ s32 fn_1_8C30(s16 boxno) temp_f31 = temp_r30 / 30.0; sp60.x = sp3C.x * temp_f31; sp60.y = sp3C.y * temp_f31; - sp60.z = (sp3C.z * temp_f31) + (-300 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp60.z = (sp3C.z * temp_f31) + (-300 * sind(180.0f * temp_f31)); VECAdd(&sp60, &sp54, &sp60); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &sp60); HuPrcVSleep(); @@ -1730,7 +1755,7 @@ s32 fn_1_8C30(s16 boxno) Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { - temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + temp_f31 = sind(90.0 * (temp_r30 / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); HuPrcVSleep(); } @@ -1859,7 +1884,7 @@ void fn_1_A8C0(s16 boxno) SLLoadBoardStory(); lbl_1_bss_EE[boxno] = GWGameStat.total_stars; lbl_1_bss_D0[boxno] = GWGameStat.create_time; - lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; + lbl_1_bss_E8[boxno] = GWSystem.storyChar; lbl_1_bss_C4[boxno] = GWGameStat.story_continue; lbl_1_bss_B8[boxno] = GWGameStat.party_continue; if (GWGameStat.story_continue) { @@ -1977,15 +2002,15 @@ void fn_1_AAB8(void) HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); if (lbl_1_bss_EE[temp_r30] > 9999) { for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { - HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); + HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, HUSPR_ATTR_DISPOFF); } else { for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { - HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); + HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, HUSPR_ATTR_DISPOFF); temp_r29 = lbl_1_bss_EE[temp_r30]; HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29 / 1000); temp_r29 -= (temp_r29 / 1000) * 1000; @@ -2002,6 +2027,16 @@ void fn_1_AAB8(void) HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); + #if VERSION_PAL + temp_r29 = sp20.mday; + HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); + temp_r29 = sp20.mon+1; + HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + #else temp_r29 = sp20.mon + 1; HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; @@ -2010,6 +2045,7 @@ void fn_1_AAB8(void) HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + #endif temp_r29 = sp20.hour; HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index f1d9be9b..2ece1b9d 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -8,7 +8,7 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" typedef struct camera_view_params { Vec rot; @@ -84,17 +84,30 @@ void fn_1_414(void) while (WipeStatGet()) { HuPrcVSleep(); } + #if VERSION_PAL + if(GwLanguageSave != -1) { + GWGameStat.language = GwLanguageSave; + } else if(GwLanguage != -1) { + GWGameStat.language = GwLanguage; + } + #endif omOvlReturnEx(1, 1); while (1) { HuPrcVSleep(); } } else { - s16 group = HuSprGrpCreate(1); - s16 sprite = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - HuSprDrawNoSet(group, 0, 127); + s16 grpId; + s16 sprId; + #if VERSION_PAL + HuWinAllKill(); + HuWinInit(1); + #endif + grpId = HuSprGrpCreate(1); + sprId = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprPosSet(grpId, 0, 288, 240); + HuSprDrawNoSet(grpId, 0, 127); HuPrcSleep(2); espAttrSet(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); HuAudFXStop(lbl_1_data_100); @@ -102,7 +115,7 @@ void fn_1_414(void) HuPrcVSleep(); } HuTHPClose(); - HuSprGrpKill(group); + HuSprGrpKill(grpId); } } espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); @@ -233,15 +246,15 @@ void fn_1_B8C(omObjData *object) y = lbl_1_bss_24[i].y; z = lbl_1_bss_24[i].z; - pos.x = (((sin((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].x); - pos.y = (-sin((M_PI * x) / 180.0) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].y; - pos.z = ((cos((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].z; + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].x); + pos.y = (-sind(x) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].z; target.x = lbl_1_bss_C[i].x; target.y = lbl_1_bss_C[i].y; target.z = lbl_1_bss_C[i].z; - up.x = sin((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); - up.y = cos((M_PI * x) / 180.0); - up.z = cos((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); Hu3DCameraPosSet(lbl_1_data_6E[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } @@ -272,27 +285,27 @@ void fn_1_F40(omObjData *object) if (lbl_1_bss_4[0] < 100.0f) { lbl_1_bss_4[0] = 100.0f; } - pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sin((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0)))); + pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sind(lbl_1_bss_24[0].y) * cosd(lbl_1_bss_24[0].x))); + pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sind(lbl_1_bss_24[0].x))); + pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cosd(lbl_1_bss_24[0].y) * cosd(lbl_1_bss_24[0].x)))); offset.x = lbl_1_bss_C[0].x - pos.x; offset.y = lbl_1_bss_C[0].y - pos.y; offset.z = lbl_1_bss_C[0].z - pos.z; - dir.x = (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); - dir.y = cos((M_PI * lbl_1_bss_24[0].x) / 180.0); - dir.z = (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); + dir.x = (sind(lbl_1_bss_24[0].y) * sind(lbl_1_bss_24[0].x)); + dir.y = cosd(lbl_1_bss_24[0].x); + dir.z = (cosd(lbl_1_bss_24[0].y) * sind(lbl_1_bss_24[0].x)); z_rot = lbl_1_bss_24[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 7f9d1ae9..ff96fbbc 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -1,4 +1,3 @@ -#define HUWIN_USE_OLD_DEFS #include "game/audio.h" #include "game/gamework_data.h" #include "game/hsfanim.h" @@ -12,6 +11,11 @@ #include "REL/modeseldll.h" #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/thpmain.h" +#endif + s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 }; s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34), @@ -94,7 +98,7 @@ s32 fn_1_2490(void) } HuWinMesWait(lbl_1_bss_82); - lbl_1_bss_80 = temp_r26 = 0; + temp_r26 = lbl_1_bss_80 = 0; espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); espBankSet(lbl_1_bss_152[10], 0); for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { @@ -209,7 +213,11 @@ s32 fn_1_2490(void) } _ClearFlag(FLAG_ID_MAKE(1, 11)); WipeColorSet(255, 255, 255); + #if VERSION_PAL + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + #else WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + #endif while (WipeStatGet()) { HuPrcVSleep(); } diff --git a/src/REL/mpexDll/charsel.c b/src/REL/mpexDll/charsel.c index 180626fa..0c5cac29 100644 --- a/src/REL/mpexDll/charsel.c +++ b/src/REL/mpexDll/charsel.c @@ -2441,7 +2441,7 @@ s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) goto block_2; } } - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54++; var_r28 = 1; if (arg0->unk_54 > 3) { @@ -2457,7 +2457,7 @@ s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) goto block_1; block_2: if (HuPadStkX[lbl_1_bss_45C->unk_58] <= -5 || HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_LEFT) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54--; var_r28 = -1; if (arg0->unk_54 < 0) { diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index 91f3d5b9..0ead0fe8 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -13,7 +13,9 @@ #include "REL/mpexDll.h" -s32 lbl_1_data_788[0xC6] = { +#define FONT_CHAR_MAX 100 + +static s32 FontCharFile[0xC6] = { 0, 0, 0, @@ -214,127 +216,126 @@ s32 lbl_1_data_788[0xC6] = { 0x140025, }; -s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) +s32 fn_1_1CB80(SeqWork *arg0, char *arg1, s16 arg2) { - u8 *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s32 var_r25; - s16 var_r23; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char *str; + s16 len; + s16 *posY; + s16 charNum; + s32 *fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; - var_r27 = lbl_1_data_788; + fileTbl = FontCharFile; - for (var_r23 = 0; var_r23 < 0x10; var_r23++) { - if (arg0->spr_grp[var_r23] == -1) { + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (arg0->spr_grp[grpNo] == -1) { break; } } - if (var_r23 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); - for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + for (str = arg1, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += 0xE; } - else if (var_r31[0] < 0x30 || var_r31[0] == 0x80 || var_r31[0] == 0x81) { + else if (str[0] < 0x30 || str[0] == 0x80 || str[0] == 0x81) { continue; } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r25 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r25 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r25 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r25 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r25 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r25 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r25 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r25); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } } - var_r20 = HuSprGrpCreate(var_r28); - arg0->spr_grp[var_r23] = var_r20; - arg0->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + arg0->spr_grp[grpNo] = gid; + arg0->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - arg0->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r20; + arg0->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return gid; } s32 fn_1_1D02C(s32 arg0) { SeqWork sp10; s16 spC[2]; - - u8 *var_r31; + char *var_r31; s32 var_r30; s16 var_r29; - u8 *var_r28; + char *var_r28; s32 var_r27; s32 var_r26; s16 var_r25; diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index bfb46be1..31a7359e 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -1606,7 +1606,7 @@ void fn_1_9988(s32 arg0) u32 var_r29; fn_1_1B834(); - if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) { + if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (arg0 == 4))) { HuAudFXPlay(0x4A); fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); fn_1_1BA78(arg0 + 0x330096, -1, -1); @@ -1615,23 +1615,23 @@ void fn_1_9988(s32 arg0) else { if ((arg0 == 4) || (arg0 == 8)) { var_r31 = mgRecordExtra; - var_r30 = var_r31 / 36000; - var_r31 -= var_r30 * 36000; - var_r29 = var_r31 / 3600; - var_r31 -= var_r29 * 3600; + var_r30 = var_r31 / (600*REFRESH_RATE); + var_r31 -= var_r30 * (600*REFRESH_RATE); + var_r29 = var_r31 / (60*REFRESH_RATE); + var_r31 -= var_r29 * (60*REFRESH_RATE); sprintf(lbl_1_bss_120, "%d", var_r29); fn_1_1BB4C((u32)&lbl_1_bss_120, 0); - var_r30 = var_r31 / 600; - var_r31 -= var_r30 * 600; - var_r29 = var_r31 / 60; - var_r31 -= var_r29 * 60; + var_r30 = var_r31 / (10*REFRESH_RATE); + var_r31 -= var_r30 * (10*REFRESH_RATE); + var_r29 = var_r31 / REFRESH_RATE; + var_r31 -= var_r29 * REFRESH_RATE; sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29); fn_1_1BB4C((u32)lbl_1_bss_118, 1); if (arg0 == 8) { - var_r31 = 1.6916666666666667 * (float)var_r31; + var_r31 = (101.5/REFRESH_RATE) * (float)var_r31; } else { - var_r31 = 1.6666666666666667 * (float)var_r31; + var_r31 = (100.0/REFRESH_RATE) * (float)var_r31; } var_r30 = var_r31 / 10; var_r31 -= var_r30 * 0xA; @@ -1856,12 +1856,21 @@ void fn_1_AD34(void) HuAudFXPlay(0x9E); fn_1_1B7D0(0xA5); lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; - if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) { + #if VERSION_NTSC + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) { fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); } else { fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); } + #else + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 500*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); + } + else { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); + } + #endif fn_1_BC18(); fn_1_1B7D0(1); HuAudFXPlay(0x9F); @@ -2232,6 +2241,7 @@ void fn_1_C860(void) s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + #if VERSION_NTSC s32 sp88[5][9] = { { 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 }, { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, @@ -2244,6 +2254,21 @@ s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 }, { 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 }, }; + #else + s32 sp88[5][9] = { + { 0x32, 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E }, + { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, + { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 60*REFRESH_RATE, 120*REFRESH_RATE, 180*REFRESH_RATE, 240*REFRESH_RATE, 300*REFRESH_RATE, + 360*REFRESH_RATE, 420*REFRESH_RATE, 480*REFRESH_RATE, 540*REFRESH_RATE }, + { 0x0A, 0xF, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2B, 0x2D }, + }; + s32 sp1C[3][9] = { + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 60*REFRESH_RATE, 0, 0, 0, 0 }, + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 110*REFRESH_RATE, 100*REFRESH_RATE, 90*REFRESH_RATE, 0, 0 }, + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 170*REFRESH_RATE, 124*REFRESH_RATE, 150*REFRESH_RATE, 140*REFRESH_RATE, 130*REFRESH_RATE, 120*REFRESH_RATE }, + }; + #endif s32 sp10[3]; s32 var_r31; s32 var_r30; @@ -2324,6 +2349,7 @@ void fn_1_CA98(s32 arg0, u32 arg1) case 3: OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); var_r31 = GWGameStat.mg_record[sp8[arg1]]; + #if VERSION_NTSC if (var_r31 < 0xA) { sprintf(lbl_1_bss_FC, " %d", var_r31); } @@ -2333,28 +2359,31 @@ void fn_1_CA98(s32 arg0, u32 arg1) else { sprintf(lbl_1_bss_FC, "%d", var_r31); } + #else + sprintf(lbl_1_bss_FC, " %d", var_r31); + #endif HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0); break; case 8: OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); var_r31 = GWGameStat.mg_record[sp8[arg1]]; - var_r29 = var_r31 / 36000; - var_r31 -= var_r29 * 36000; - var_r28 = var_r31 / 3600; - var_r31 -= var_r28 * 3600; + var_r29 = var_r31 / (600 *REFRESH_RATE); + var_r31 -= var_r29 * (600 *REFRESH_RATE); + var_r28 = var_r31 / (60 *REFRESH_RATE); + var_r31 -= var_r28 * (60 *REFRESH_RATE); sprintf(lbl_1_bss_F4, " %d", var_r28); HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0); - var_r29 = var_r31 / 600; - var_r31 -= var_r29 * 600; - var_r28 = var_r31 / 60; - var_r31 -= var_r28 * 60; + var_r29 = var_r31 / (10 *REFRESH_RATE); + var_r31 -= var_r29 * (10 *REFRESH_RATE); + var_r28 = var_r31 / REFRESH_RATE; + var_r31 -= var_r28 * REFRESH_RATE; sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28); HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1); - var_r31 = 1.6916666666666667 * (float)var_r31; + var_r31 = (101.5/REFRESH_RATE) * (float)var_r31; var_r29 = var_r31 / 10; var_r31 -= var_r29 * 0xA; var_r28 = var_r31; - if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) { + if (GWGameStat.mg_record[sp8[arg1]] >= ((600*REFRESH_RATE)-1)) { sprintf(lbl_1_bss_E4, "99"); } else { @@ -2678,24 +2707,24 @@ void fn_1_E568(void) HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA); } var_r30 = GWGameStat.mg_record[var_r31 + 6]; - var_r27 = var_r30 / 36000; - var_r30 -= var_r27 * 36000; - var_r26 = var_r30 / 3600; - var_r30 -= var_r26 * 3600; + var_r27 = var_r30 / (600*REFRESH_RATE); + var_r30 -= var_r27 * (600*REFRESH_RATE); + var_r26 = var_r30 / (60*REFRESH_RATE); + var_r30 -= var_r26 * (60*REFRESH_RATE); HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26); HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA); - var_r27 = var_r30 / 600; - var_r30 -= var_r27 * 600; - var_r26 = var_r30 / 60; - var_r30 -= var_r26 * 60; + var_r27 = var_r30 / (10*REFRESH_RATE); + var_r30 -= var_r27 * (10*REFRESH_RATE); + var_r26 = var_r30 / REFRESH_RATE; + var_r30 -= var_r26 * REFRESH_RATE; HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27); HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26); HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB); - var_r30 = 1.6666666666666667 * (float)var_r30; + var_r30 = (100.0/REFRESH_RATE) * (float)var_r30; var_r27 = var_r30 / 10; var_r30 -= var_r27 * 0xA; var_r26 = var_r30; - if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) { + if (GWGameStat.mg_record[var_r31 + 6] == ((600*REFRESH_RATE)-1)) { HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9); HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9); } @@ -3426,26 +3455,38 @@ void fn_1_121E8(void) else if (GWGameStat.mg_record[9] >= 0x63) { GWGameStat.mg_record[9] = 0x63; } + #if VERSION_NTSC OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]); + #else + OSReport("HIScore 451A(0-29999):%d\n", GWGameStat.mg_record[6]); + #endif if (GWGameStat.mg_record[6] == 0) { GWGameStat.mg_record[6] = 0; } - else if (GWGameStat.mg_record[6] >= 0x8C9F) { - GWGameStat.mg_record[6] = 0x8C9F; + else if (GWGameStat.mg_record[6] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[6] = ((REFRESH_RATE*600)-1); } + #if VERSION_NTSC OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]); + #else + OSReport("HIScore 451B(0-29999):%d\n", GWGameStat.mg_record[7]); + #endif if (GWGameStat.mg_record[7] == 0) { GWGameStat.mg_record[7] = 0; } - else if (GWGameStat.mg_record[7] >= 0x8C9F) { - GWGameStat.mg_record[7] = 0x8C9F; + else if (GWGameStat.mg_record[7] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[7] = ((REFRESH_RATE*600)-1); } + #if VERSION_NTSC OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]); + #else + OSReport("HIScore 451C(0-29999):%d\n", GWGameStat.mg_record[8]); + #endif if (GWGameStat.mg_record[8] == 0) { GWGameStat.mg_record[8] = 0; } - else if (GWGameStat.mg_record[8] >= 0x8C9F) { - GWGameStat.mg_record[8] = 0x8C9F; + else if (GWGameStat.mg_record[8] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[8] = ((REFRESH_RATE*600)-1); } OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]); if (GWGameStat.mg_record[4] == 0) { @@ -3468,12 +3509,16 @@ void fn_1_121E8(void) else if (GWGameStat.mg_record[0xC] >= 0x63) { GWGameStat.mg_record[0xC] = 0x63; } - OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]); + #if VERSION_NTSC + OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[13]); + #else + OSReport("HIScore 461(0-29999):%d\n", GWGameStat.mg_record[13]); + #endif if (GWGameStat.mg_record[0xD] == 0) { GWGameStat.mg_record[0xD] = 0; } - else if (GWGameStat.mg_record[0xD] >= 0x8C9F) { - GWGameStat.mg_record[0xD] = 0x8C9F; + else if (GWGameStat.mg_record[0xD] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[0xD] = ((REFRESH_RATE*600)-1); } OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]); if (GWGameStat.mg_record[0xE] == 0) { diff --git a/src/REL/mstory2Dll/board_clear.c b/src/REL/mstory2Dll/board_clear.c new file mode 100644 index 00000000..3073e986 --- /dev/null +++ b/src/REL/mstory2Dll/board_clear.c @@ -0,0 +1,629 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss3DC; // Size 0x104 + +StructBss3DC lbl_1_bss_3DC; +StructBss16C lbl_1_bss_3B4; +StructBss16C lbl_1_bss_38C; +StructBss16C lbl_1_bss_364; +StructBss16C lbl_1_bss_33C; +StructBss16C lbl_1_bss_29C[4]; +Process *lbl_1_bss_298; + +void fn_1_C4C0(void); +void fn_1_C858(void); +void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_CD78(void); +void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_D2D0(omObjData *arg0, StructBss16C *arg1); +void fn_1_D478(void); +void fn_1_D764(int arg0); +void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_DC54(omObjData *arg0, StructBss16C *arg1); +void fn_1_DDC4(void); +void fn_1_E1B8(void); +void fn_1_E244(void); +void fn_1_E334(void); + +void fn_1_B37C(omObjData *arg0, StructBss16C *arg1) +{ + fn_1_BE8(30); + fn_1_DB58(4, -1, 15, 1, 0); + fn_1_D224(4, -1, 15, 1, 0); + arg1->unk04 = NULL; +} + +void fn_1_B3E4(Process *arg0, s32 arg1) +{ + int i; + lbl_1_bss_298 = arg0; + lbl_1_bss_3DC.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_298, fn_1_E1B8); + fn_1_3754(); + fn_1_D764(arg1); + HuPrcChildCreate(fn_1_C858, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_CD78, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_D478, 100, 8192, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_DDC4, 100, 8192, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_C4C0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_B518(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_B5A4(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + printWin(posX, posY, 220, 160, &winColor); + if (lbl_1_bss_3B4.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_38C.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_364.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_33C.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_29C[i].unk04 == NULL) { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> FALSE", i); + } + else { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(posX, posY + 90, 1, "P:%d W:%d", lbl_1_bss_3DC.unk00, lbl_1_bss_3DC.unk0C); + print8(posX, posY + 110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 120 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_3DC.unk30[i].unk00, lbl_1_bss_3DC.unk30[i].unk04, + lbl_1_bss_3DC.unk30[i].unk08, lbl_1_bss_3DC.unk30[i].unk0C, lbl_1_bss_3DC.unk30[i].unk14, lbl_1_bss_3DC.unk30[i].unk10); + } + } +} + +void fn_1_B984(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(51); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_B9E0(void) +{ + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 = (void *)fn_1_DC54; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_E244); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 == NULL) { + break; + } + } + while (1) { + fn_1_BC8(); + if (lbl_1_bss_33C.unk04 == NULL) { + break; + } + } + fn_1_BE8(30); +} + +void fn_1_BA90(void) +{ + int i; + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_D224(3, -1, 15, 1, 0); + fn_1_1D4C(lbl_1_bss_3DC.unk04, lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000C); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_D224(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_3DC.unk04); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + fn_1_BE8(60); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_3DC.unk30[i].unk00 != lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk00) { + Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[1], 1); + } + Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[2], 1); + } + Hu3DModelAttrReset(lbl_1_bss_364.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_38C.unk00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_38C.unk00->model[6], 1); + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + lbl_1_bss_78[1] = HuAudSeqPlay(55); + lbl_1_bss_33C.unk04 = (void *)fn_1_B37C; + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000D); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_3DC.unk04); + fn_1_1DFC(lbl_1_bss_38C.unk00, 2, 3, 0, 0); + fn_1_BE8(60); + lbl_1_bss_33C.unk04 = (void *)fn_1_D2D0; + fn_1_DB58(5, -1, 15, 0, 0); + fn_1_D224(5, 1, 0, 0, 1); + fn_1_2264(lbl_1_bss_38C.unk00, 2, 3, 0); +} + +void fn_1_BDF0(void) +{ + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_CCCC(3, -1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000E); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_CCCC(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_3DC.unk04); + fn_1_CCCC(2, -1, 15, 0, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_BE8(15); + HuAudSeqFadeOut(lbl_1_bss_78[1], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_E334); + fn_1_BE8(30); + fn_1_BE8(45); + fn_1_BE8(75); +} + +void fn_1_BF48(void) +{ + int i; + omOvlHisData *his; + int charNo; + int padNo; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (1) { + fn_1_BC8(); + if (!WipeStatGet()) { + break; + } + } + CharModelKill(-1); + charNo = lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk10; + padNo = lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk14; + GWPlayerCfg[lbl_1_bss_3DC.unk00].character = GWPlayerCfg[0].character; + GWPlayerCfg[lbl_1_bss_3DC.unk00].pad_idx = GWPlayerCfg[0].pad_idx; + GWPlayerCfg[lbl_1_bss_3DC.unk00].group = GWPlayerCfg[0].group; + GWPlayerCfg[lbl_1_bss_3DC.unk00].iscom = GWPlayerCfg[0].iscom; + GWPlayerCfg[0].character = charNo; + GWPlayerCfg[0].pad_idx = padNo; + GWPlayerCfg[0].group = 0; + GWPlayerCfg[0].iscom = FALSE; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + GWPlayerCfg[1].character = 8; + for (i = 1; i < 4; i++) { + GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; + } + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 3, his->stat); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + GWSystem.mg_type = -1; + GWMGAvailSet(450); + GWSystem.mg_next = 450 - 401; + omOvlCallEx(OVL_M450, 1, 0, 0); + while (1) { + fn_1_BC8(); + } +} + +void fn_1_C270(omObjData *arg0, StructBss16C *arg1) +{ + int temp = 0; + fn_1_B984(); + fn_1_B9E0(); + fn_1_BA90(); + fn_1_BDF0(); + fn_1_BF48(); + arg1->unk04 = NULL; +} + +void fn_1_C4C0(void) +{ + omObjData *obj; + lbl_1_bss_3B4.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_3B4.unk04 = (void *)fn_1_C270; + lbl_1_bss_3B4.unk00->data = &lbl_1_bss_3B4; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_3B4.unk04 != NULL) { + lbl_1_bss_3B4.unk04(obj, &lbl_1_bss_3B4); + } + } +} + +void fn_1_C574(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x59)); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5A)); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_C79C(omObjData *arg0, StructBss16C *arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_C858(void) +{ + omObjData *obj; + lbl_1_bss_38C.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_38C.unk04 = (void *)fn_1_C79C; + lbl_1_bss_38C.unk00->data = &lbl_1_bss_38C; + fn_1_C574(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_38C.unk04 != NULL) { + lbl_1_bss_38C.unk04(obj, &lbl_1_bss_38C); + } + } +} + +void fn_1_CB0C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + Hu3DModelPosSet(object->model[1], 0, 0, 150); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1.25f, 1.25f, 1.25f); + Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_364.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_364.unk00->work[0] = arg4; + lbl_1_bss_364.unk00->work[1] = arg1; + lbl_1_bss_364.unk00->work[2] = arg2 + 1; +} + +void fn_1_CD78(void) +{ + omObjData *obj; + lbl_1_bss_364.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_364.unk04 = NULL; + lbl_1_bss_364.unk00->data = &lbl_1_bss_38C; + fn_1_CB0C(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_364.unk04 != NULL) { + lbl_1_bss_364.unk04(obj, &lbl_1_bss_364); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_D030(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x84 : 0x7F)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x85 : 0x80)); + Hu3DModelPosSet(object->model[1], -300, 0, 890); + Hu3DModelRotSet(object->model[1], 0, 30, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_33C.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_33C.unk00->work[0] = arg4; + lbl_1_bss_33C.unk00->work[1] = arg1; + lbl_1_bss_33C.unk00->work[2] = arg2 + 1; +} + +void fn_1_D2D0(omObjData *arg0, StructBss16C *arg1) +{ + int i; + for (i = 0; i < 15; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); + } + arg1->unk04 = NULL; +} + +void fn_1_D394(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_D478(void) +{ + omObjData *obj; + lbl_1_bss_33C.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_33C.unk04 = NULL; + lbl_1_bss_33C.unk00->data = &lbl_1_bss_33C; + fn_1_D030(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_33C.unk04 != NULL) { + lbl_1_bss_33C.unk04(obj, &lbl_1_bss_33C); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_D764(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_3DC.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_3DC.unk30[i], order[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_3DC.unk30[i].unk18 = GWPlayer[order[i]].rank + 1; + } +} + +Vec lbl_1_data_668[4] = { + { -300, 0, 460 }, + { -100, -30, 460 }, + { 100, -60, 460 }, + { 300, -90, 460 }, +}; + +void fn_1_D898(omObjData *object, int player) +{ + int playerNo = player; + int charNo = lbl_1_bss_3DC.unk30[playerNo].unk10; + object->model[1] = CharModelCreate(charNo, 4); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A)); + object->motion[5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D)); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet( + object->model[1], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18 - 1].y + 90, lbl_1_data_668[playerNo].z); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x56)); + Hu3DModelPosSet( + object->model[2], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18 - 1].y, lbl_1_data_668[playerNo].z); + if (lbl_1_bss_3DC.unk30[playerNo].unk18 == 4) { + Hu3DModelAttrSet(object->model[2], 1); + } + Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); + Hu3DModelShadowMapSet(object->model[2]); +} + +void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[0] = arg4; + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[1] = arg1; + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[2] = arg2 + 1; +} + +void fn_1_DC54(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { 120, 0, 800 }; + fn_1_2948(arg0, 1, pos, -1, 30, 10); + lbl_1_bss_33C.unk04 = (void *)fn_1_D394; + fn_1_1DFC(lbl_1_bss_38C.unk00, 2, 2, 0, 0); + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -60, 30, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_DDC4(void) +{ + omObjData *obj; + int playerNo = lbl_1_bss_3DC.unk10++; + lbl_1_bss_29C[playerNo].unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_29C[playerNo].unk04 = NULL; + lbl_1_bss_29C[playerNo].unk00->data = &lbl_1_bss_29C[0]; + fn_1_D898(obj, playerNo); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_29C[playerNo].unk04 != NULL) { + lbl_1_bss_29C[playerNo].unk04(obj, &lbl_1_bss_29C[playerNo]); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_E1B8(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 170; + work->unk08.z = -20; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1700; +} + +void fn_1_E244(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 125; + temp.unk08.z = -20; + temp.unk20.x = -5; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1750; + fn_1_4FEC(work, &temp, work->unk40++, 60, 30); +} + +void fn_1_E334(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if (work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_38C.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_38C.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 130; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 150; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_38C.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); + } +} diff --git a/src/REL/mstory2Dll/board_entrance.c b/src/REL/mstory2Dll/board_entrance.c new file mode 100644 index 00000000..e69abcfd --- /dev/null +++ b/src/REL/mstory2Dll/board_entrance.c @@ -0,0 +1,633 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss194; // Size 0x104 + +StructBss194 lbl_1_bss_194; +StructBss16C lbl_1_bss_16C; +StructBss16C lbl_1_bss_144; +StructBss16C lbl_1_bss_11C; +StructBss16C lbl_1_bss_F4; +StructBss16C lbl_1_bss_CC; +Process *lbl_1_bss_C8; +s32 lbl_1_bss_88[16]; +s32 lbl_1_bss_78[4]; + +u32 lbl_1_data_3A0[11] + = { 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000 }; + +s32 lbl_1_data_3CC[2][2] = { 20, 70, 1, 1 }; + +s32 lbl_1_data_3DC = -1; +s32 lbl_1_data_3E0[2] = { -1, -1 }; + +void fn_1_9768(void); +void fn_1_9A10(void); +void fn_1_9BD4(s32 arg0); +void fn_1_9ECC(omObjData *arg0, StructBss16C *arg1); +void fn_1_9FDC(void); +void fn_1_A4A8(omObjData *arg0, StructBss16C *arg1); +void fn_1_A58C(void); +void fn_1_AB10(omObjData *arg0, StructBss16C *arg1); + +void fn_1_AE5C(void); +void fn_1_B1C0(void); +void fn_1_B24C(void); + +void fn_1_7DB0(void) +{ + int i; + while (1) { + do { + HuPrcVSleep(); + } while (lbl_1_data_3DC == -1 || lbl_1_data_3E0[0] == -1 || lbl_1_data_3E0[1] == -1 || lbl_1_data_3E0[0] != Hu3DMotionIDGet(lbl_1_data_3DC)); + for (i = 0; i < 2; i++) { + if (lbl_1_data_3CC[1][i] != -1) { + if (Hu3DMotionTimeGet(lbl_1_data_3DC) >= lbl_1_data_3CC[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_3CC[0][i]); + HuAudFXPlay(81); + lbl_1_data_3CC[1][i] = -1; + } + } + } + if (Hu3DMotionTimeGet(lbl_1_data_3DC) <= 10) { + for (i = 0; i < 2; i++) { + lbl_1_data_3CC[1][i] = 1; + } + } + } +} + +void fn_1_7F54(Process *arg0, s32 arg1) +{ + lbl_1_bss_C8 = arg0; + lbl_1_bss_194.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_C8, fn_1_B1C0); + fn_1_3754(); + fn_1_9BD4(arg1); + HuPrcChildCreate(fn_1_9FDC, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_9A10, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_A58C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_AE5C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_9768, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_806C(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_80F8(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + fontcolor = FONT_COLOR_WHITE; + printWin(posX, posY, 220, 130, &winColor); + if (lbl_1_bss_16C.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_144.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_11C.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_PLAYER -> TRUE"); + } + if (lbl_1_bss_F4.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_SUB -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_CC.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_194.unk00, lbl_1_bss_194.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_194.unk30[i].unk00, lbl_1_bss_194.unk30[i].unk04, + lbl_1_bss_194.unk30[i].unk08, lbl_1_bss_194.unk30[i].unk0C, lbl_1_bss_194.unk30[i].unk14, lbl_1_bss_194.unk30[i].unk10); + } + if (HuPadBtnDown[0] & PAD_BUTTON_X) { + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, TRUE); + } + else if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, FALSE); + } + } +} + +void fn_1_8580(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(51); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_85DC(void) +{ + fn_1_1DFC(lbl_1_bss_144.unk00, 2, 3, 0, 0); + fn_1_2264(lbl_1_bss_144.unk00, 2, 3, 0); + lbl_1_bss_11C.unk04 = (void *)fn_1_9ECC; + lbl_1_bss_F4.unk04 = (void *)fn_1_A4A8; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_B24C); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_144.unk00, 2, 2, 0, 0); + do { + fn_1_BC8(); + } while (lbl_1_bss_11C.unk04 != NULL); + do { + fn_1_BC8(); + } while (lbl_1_bss_F4.unk04 != NULL); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 3, 5, 1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0000); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0001); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 1, 5, 1); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_BE8(15); +} + +void fn_1_87D4(void) +{ + int i; + float speed; + HuAudSeqFadeOut(lbl_1_bss_78[0], 500); + HuAudFXPlay(153); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(lbl_1_bss_CC.unk00->model[1], 100); + Hu3DModelAttrReset(lbl_1_bss_CC.unk00->model[1], 1); + while (1) { + fn_1_BC8(); + if (Hu3DMotionTimeGet(lbl_1_bss_CC.unk00->model[1]) >= 132) { + break; + } + } + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 4, 0, 0); + fn_1_BC8(); + while (1) { + fn_1_BC8(); + if (Hu3DMotionTimeGet(lbl_1_bss_F4.unk00->model[1]) >= 5) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_F4.unk00->model[1], 0); + Hu3DData[lbl_1_bss_F4.unk00->model[1]].rot.y = 0; + fn_1_67D8(lbl_1_bss_11C.unk00, 3, 1, 5, 0); + HuAudFXPlay(156); + omVibrate(lbl_1_bss_194.unk0C, 45, 12, 0); + speed = 50; + for (i = 0; i < 60; i++) { + float weight = fn_1_B08(0, speed, i % 15, 15); + speed = fn_1_88C(speed, 0, 30); + lbl_1_bss_194.unk100 = fn_1_88C(lbl_1_bss_194.unk100, weight, 5); + fn_1_BC8(); + } + lbl_1_bss_194.unk100 = 0; +} + +void fn_1_8ABC(void) +{ + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 1, 20, 1); + lbl_1_bss_78[1] = HuAudSeqPlay(6); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 10, 0); + fn_1_BE8(30); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_194.unk04, 0x400); + HuWinMesSet(lbl_1_bss_194.unk04, 0x1F0002); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 10, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_194.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_194.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 4, 10, 1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0003); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 30, 1); + fn_1_BE8(60); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 5, 10, 0); + fn_1_BE8(25); + HuAudFXPlay(81); + fn_1_BE8(20); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1D4C(lbl_1_bss_194.unk04, lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0004); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0005); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_67D8(lbl_1_bss_11C.unk00, 7, 8, 10, 0); + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 3, 5, 0); + fn_1_BE8(90); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 30, 0); + fn_1_BE8(30); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_194.unk04, 0x400); + HuWinMesSet(lbl_1_bss_194.unk04, 0x1F0002); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_194.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_194.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); +} + +void fn_1_9034(void) +{ + fn_1_BE8(60); + lbl_1_bss_CC.unk04 = (void *)fn_1_AB10; + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0007); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1A94(lbl_1_bss_194.unk04); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_CC.unk04 == NULL) { + break; + } + } + HuAudFXPlay(149); + Hu3DMotionSpeedSet(lbl_1_bss_F4.unk00->model[1], 1); + fn_1_BC8(); + fn_1_2264(lbl_1_bss_F4.unk00, 1, 4, 0); + lbl_1_bss_88[0] = HuAudFXPlay(98); + HuAudFXPlay(lbl_1_data_0[0][1]); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 5, 15, 1); + fn_1_BE8(60); +} + +void fn_1_9198(void) +{ + fn_1_BE8(60); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + HuAudFXFadeOut(lbl_1_bss_88[0], 1000); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (1) { + fn_1_BC8(); + if (!WipeStatGet()) { + break; + } + } + CharModelKill(-1); + HuAudFadeOut(1); + GWPlayerCfg[0].group = 0; + GWPlayerCfg[0].character = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10; + GWPlayerCfg[0].pad_idx = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk14; + GWPlayerCfg[0].iscom = FALSE; + omOvlGotoEx(OVL_MENT, 1, 11, 0); +} + +void fn_1_92BC(omObjData *arg0, StructBss16C *arg1) +{ + int temp = 0; + fn_1_8580(); + fn_1_85DC(); + fn_1_87D4(); + fn_1_8ABC(); + fn_1_9034(); + fn_1_9198(); + arg1->unk04 = NULL; +} + +void fn_1_9768(void) +{ + omObjData *obj; + lbl_1_bss_16C.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_16C.unk04 = (void *)fn_1_92BC; + lbl_1_bss_16C.unk00->data = &lbl_1_bss_16C; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_16C.unk04 != NULL) { + lbl_1_bss_16C.unk04(obj, &lbl_1_bss_16C); + } + } +} + +void fn_1_981C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x50)); + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + fn_1_1DFC(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x51)); +} + +void fn_1_9954(omObjData *arg0, StructBss16C *arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(125, 130, arg1->unk08++, 360); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_9A10(void) +{ + omObjData *obj; + lbl_1_bss_144.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_144.unk04 = (void *)fn_1_9954; + lbl_1_bss_144.unk00->data = &lbl_1_bss_144; + fn_1_981C(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_144.unk04 != NULL) { + lbl_1_bss_144.unk04(obj, &lbl_1_bss_144); + } + } +} + +void fn_1_9BD4(s32 arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_194.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_194.unk30[i], order[i]); + } +} + +void fn_1_9CB8(omObjData *object) +{ + int charNo = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x18) + charNo); + object->motion[7] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x48) + charNo); + object->motion[8] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x40) + charNo); + object->motion[9] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x20) + charNo); + object->motion[10] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x12)); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_9ECC(omObjData *arg0, StructBss16C *arg1) +{ + int i; + fn_1_1DFC(arg0, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(arg0->model[1], 60); + for (i = 0; i < 60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); + } + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_9FDC(void) +{ + omObjData *obj; + lbl_1_bss_11C.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_11C.unk04 = NULL; + lbl_1_bss_11C.unk00->data = &lbl_1_bss_11C; + fn_1_9CB8(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_11C.unk04 != NULL) { + lbl_1_bss_11C.unk04(obj, &lbl_1_bss_11C); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_A288(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x72 : 0x73)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x73 : 0x74)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x75)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x76)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7A : 0x78)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7B : 0x79)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x79 : 0x77)); + Hu3DModelPosSet(object->model[1], 0, 0, 460); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 6, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); +} + +void fn_1_A4A8(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 90, 45, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_A58C(void) +{ + omObjData *obj; + lbl_1_bss_F4.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_F4.unk04 = NULL; + lbl_1_bss_F4.unk00->data = &lbl_1_bss_F4; + fn_1_A288(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_F4.unk04 != NULL) { + lbl_1_bss_F4.unk04(obj, &lbl_1_bss_F4); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_A848(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x65 : 0x69)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x68 : 0x6B)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6C : 0x6D)); + object->motion[7] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6D : 0x6E)); + object->motion[8] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x64 : 0x68)); + Hu3DModelPosSet(object->model[1], -120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 90, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + lbl_1_data_3DC = object->model[1]; + lbl_1_data_3E0[0] = object->motion[7]; + lbl_1_data_3E0[1] = object->motion[8]; + HuPrcChildCreate(fn_1_7DB0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_AB10(omObjData *arg0, StructBss16C *arg1) +{ + int i; + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 8, 15, 1); + for (i = 0; i < 30; i++) { + fn_1_BC8(); + Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-120, -60, i, 30); + } + fn_1_1DFC(lbl_1_bss_11C.unk00, 1, 9, 15, 0); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 6, 15, 0); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 6, 15); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 7, 15, 1); + fn_1_1DFC(lbl_1_bss_11C.unk00, 1, 10, 15, 1); + for (i = 0; i < 240; i++) { + fn_1_BC8(); + Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-60, 540, i, 180); + Hu3DData[lbl_1_bss_11C.unk00->model[1]].pos.x = fn_1_864(120, 840, i, 180); + } + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_ADB0(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_CC.unk00->work[0] = arg4; + lbl_1_bss_CC.unk00->work[1] = arg1; + lbl_1_bss_CC.unk00->work[2] = arg2 + 1; +} + +void fn_1_AE5C(void) +{ + omObjData *obj; + lbl_1_bss_CC.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_CC.unk04 = NULL; + lbl_1_bss_CC.unk00->data = &lbl_1_bss_CC; + fn_1_A848(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_CC.unk04 != NULL) { + lbl_1_bss_CC.unk04(obj, &lbl_1_bss_CC); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_B1C0(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -4.9f; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_B24C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_42A0(work, &temp, work->unk40++, 60, 10); + if (0.0f != lbl_1_bss_194.unk100) { + work->unk08.y = 100 + lbl_1_bss_194.unk100; + } +} diff --git a/src/REL/mstory2Dll/board_miss.c b/src/REL/mstory2Dll/board_miss.c new file mode 100644 index 00000000..c509b9d0 --- /dev/null +++ b/src/REL/mstory2Dll/board_miss.c @@ -0,0 +1,848 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss688; // Size 0x104 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; +} StructBss4E8; // Size 0x18 + +StructBss688 lbl_1_bss_688; +StructBss16C lbl_1_bss_660; +StructBss16C lbl_1_bss_638; +StructBss16C lbl_1_bss_610; +StructBss16C lbl_1_bss_5E8; +StructBss16C lbl_1_bss_548[4]; +StructBss4E8 lbl_1_bss_4E8[4]; +BOOL lbl_1_bss_4E4; +Process *lbl_1_bss_4E0; + +s32 lbl_1_data_698[7] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, +}; + +s32 lbl_1_data_6B4[8] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; + +void fn_1_FDFC(void); +void fn_1_10194(void); +void fn_1_106B0(omObjData *arg0, StructBss16C *arg1); +void fn_1_1094C(void); +void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_10EA0(omObjData *arg0, StructBss16C *arg1); +void fn_1_1112C(void); +void fn_1_11418(int arg0); +void fn_1_11934(omObjData *arg0, StructBss16C *arg1); +void fn_1_11A98(omObjData *arg0, StructBss16C *arg1); +void fn_1_11BB0(void); +void fn_1_11FD0(void); +void fn_1_1205C(void); +void fn_1_1218C(void); + +void fn_1_E570(void) +{ + int statId = HuDataDirReadAsync(DATADIR_BOARD); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while (HuARDMACheck()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + statId = HuDataDirReadAsync(lbl_1_data_698[GWSystem.board]); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { + HuPrcVSleep(); + } + } + lbl_1_bss_4E4 = TRUE; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_E638(void) +{ + int i, j; + lbl_1_bss_4E8[0].unk00 = 0; + lbl_1_bss_4E8[0].unk04 = 0; + lbl_1_bss_4E8[0].unk10 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10; + lbl_1_bss_4E8[0].unk14 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk14; + lbl_1_bss_4E8[0].unk08 = 0; + for (i = 1; i < 4; i++) { + lbl_1_bss_4E8[i].unk10 = -1; + lbl_1_bss_4E8[i].unk14 = i; + lbl_1_bss_4E8[i].unk08 = 1; + } + for (i = 1; i < 4; i++) { + do { + lbl_1_bss_4E8[i].unk10 = rand8() % 8; + for (j = 0; j < 4; j++) { + if (i != j && lbl_1_bss_4E8[j].unk10 != -1 && lbl_1_bss_4E8[i].unk10 == lbl_1_bss_4E8[j].unk10) { + break; + } + } + } while (j != 4); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_4E8[i].unk10; + GWPlayerCfg[i].pad_idx = lbl_1_bss_4E8[i].unk14; + GWPlayerCfg[i].group = 0; + GWPlayerCfg[i].iscom = lbl_1_bss_4E8[i].unk08; + } + BoardSaveInit(GWSystem.board); + CharKill(-1); + HuDataDirClose(DATADIR_MSTORY2); + HuPrcChildCreate(fn_1_E570, 100, 12288, 0, lbl_1_bss_4E0); +} + +void fn_1_E8EC(void) +{ + int ovlTbl[7] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 }; + omOvlHisData *his; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet()) { + fn_1_BC8(); + } + CharModelKill(-1); + MGSeqKillAll(); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, his->stat); + do { + fn_1_BC8(); + } while (lbl_1_bss_4E4 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(ovlTbl[GWSystem.board], 1, 0, 0); + while (1) { + fn_1_BC8(); + } +} + +void fn_1_EA2C(Process *arg0, s32 arg1) +{ + int i; + lbl_1_bss_4E0 = arg0; + lbl_1_bss_688.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_4E0, fn_1_11FD0); + fn_1_3754(); + fn_1_11418(arg1); + HuPrcChildCreate(fn_1_10194, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1094C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1112C, 100, 8192, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_11BB0, 100, 8192, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_FDFC, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_EB60(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_EBEC(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + printWin(posX, posY, 220, 160, &winColor); + if (lbl_1_bss_660.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_638.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_610.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_5E8.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 == NULL) { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> FALSE", i); + } + else { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(posX, posY + 90, 1, "P:%d W:%d", lbl_1_bss_688.unk00, lbl_1_bss_688.unk0C); + print8(posX, posY + 110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 120 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_688.unk30[i].unk00, lbl_1_bss_688.unk30[i].unk04, + lbl_1_bss_688.unk30[i].unk08, lbl_1_bss_688.unk30[i].unk0C, lbl_1_bss_688.unk30[i].unk14, lbl_1_bss_688.unk30[i].unk10); + } + } +} + +void fn_1_EFCC(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(52); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_F028(void) +{ + int i; + for (i = 0; i < 4; i++) { + lbl_1_bss_548[i].unk04 = (void *)fn_1_11934; + } + do { + fn_1_BC8(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 != NULL) { + break; + } + } + } while (i != 4); + lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1205C); + do { + fn_1_BC8(); + } while (lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + do { + fn_1_BC8(); + } while (lbl_1_bss_5E8.unk04 != NULL); + fn_1_BE8(30); + if (0) { + // Dummy code to stop this function from inlining + do { + fn_1_BC8(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 != NULL) { + break; + } + } + } while (i != 4); + lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1205C); + do { + fn_1_BC8(); + } while (lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + do { + fn_1_BC8(); + } while (lbl_1_bss_5E8.unk04 != NULL); + fn_1_BE8(30); + } +} + +void fn_1_F150(void) +{ + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_10DF4(3, -1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_688.unk04, 0x1F0009); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_10DF4(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_688.unk04); +} + +int fn_1_F22C(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_688.unk04, 0x1E0021); + fn_1_1AFC(lbl_1_bss_688.unk04, 5); + lbl_1_bss_688.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_688.unk0C); + fn_1_1D18(lbl_1_bss_688.unk08, 0x1E0035); + result = fn_1_1C64(lbl_1_bss_688.unk08); + fn_1_1D18(lbl_1_bss_688.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_688.unk08); + return result; +} + +int fn_1_F2FC(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_688.unk04, 0x1E0005); + fn_1_1AFC(lbl_1_bss_688.unk04, 5); + lbl_1_bss_688.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_688.unk0C); + fn_1_1D18(lbl_1_bss_688.unk08, 0x1E0035); + result = fn_1_1BA8(lbl_1_bss_688.unk08, 1); + fn_1_1D18(lbl_1_bss_688.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_688.unk08); + return result; +} + +void fn_1_F3D0(void) +{ + lbl_1_bss_5E8.unk04 = (void *)fn_1_10EA0; + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1D18(lbl_1_bss_688.unk04, 0x1F000A); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_688.unk04); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + do { + fn_1_BC8(); + } while (lbl_1_bss_5E8.unk04 != NULL); + lbl_1_bss_610.unk04 = (void *)fn_1_106B0; + do { + fn_1_BC8(); + } while (lbl_1_bss_610.unk04 != NULL); + fn_1_7384(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->model[1], lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10, 1, 20, 1); + lbl_1_bss_78[1] = HuAudSeqPlay(6); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 4, 30, 0); + fn_1_BE8(30); + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_688.unk04, 0x400); + HuWinMesSet(lbl_1_bss_688.unk04, 0x1F000B); + fn_1_2264(lbl_1_bss_610.unk00, 1, 4, 10); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_688.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_688.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_688.unk04); + fn_1_BE8(60); + fn_1_E638(); + Hu3DModelAttrReset(lbl_1_bss_638.unk00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_638.unk00->model[6], 1); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 4, 15, 1); + fn_1_1DFC(lbl_1_bss_638.unk00, 2, 3, 0, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_BE8(15); + fn_1_1DFC(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 1, 5, 0, 0); + fn_1_BC8(); + fn_1_7384(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->model[1], lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10, 1, 10, 0); + fn_1_2264(lbl_1_bss_638.unk00, 2, 3, 0); + HuAudSeqFadeOut(lbl_1_bss_78[1], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1218C); + fn_1_BE8(150); +} + +void fn_1_F838(void) { } + +void fn_1_F83C(void) +{ + fn_1_BE8(60); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + CharModelKill(-1); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); +} + +void fn_1_F8B4(omObjData *arg0, StructBss16C *arg1) +{ + int mode = 0; + int i; + fn_1_EFCC(); + fn_1_F028(); + fn_1_F150(); + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + while (1) { + fn_1_BC8(); + if (fn_1_F22C()) { + mode = 0; + break; + } + else if (fn_1_F2FC()) { + mode = 1; + break; + } + } + + fn_1_1A94(lbl_1_bss_688.unk04); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_688.unk30[i].unk00 != lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk00) { + Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[1], 1); + } + Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[2], 1); + } + switch (mode) { + case 0: + fn_1_F3D0(); + break; + case 1: + break; + } + switch (mode) { + case 0: + fn_1_E8EC(); + break; + + case 1: + fn_1_F83C(); + break; + } + arg1->unk04 = NULL; +} + +void fn_1_FDFC(void) +{ + omObjData *obj; + lbl_1_bss_660.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_660.unk04 = (void *)fn_1_F8B4; + lbl_1_bss_660.unk00->data = &lbl_1_bss_660; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_660.unk04 != NULL) { + lbl_1_bss_660.unk04(obj, &lbl_1_bss_660); + } + } +} + +void fn_1_FEB0(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x57)); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x58)); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopabox_fix-effect_fook2", object->model[6]); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_100D8(omObjData *arg0, StructBss16C *arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_10194(void) +{ + omObjData *obj; + lbl_1_bss_638.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_638.unk04 = (void *)fn_1_100D8; + lbl_1_bss_638.unk00->data = &lbl_1_bss_638; + fn_1_FEB0(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_638.unk04 != NULL) { + lbl_1_bss_638.unk04(obj, &lbl_1_bss_638); + } + } +} + +void fn_1_10448(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x65 : 0x69)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + Hu3DModelPosSet(object->model[1], -180, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_10604(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_610.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_610.unk00->work[0] = arg4; + lbl_1_bss_610.unk00->work[1] = arg1; + lbl_1_bss_610.unk00->work[2] = arg2 + 1; +} + +void fn_1_106B0(omObjData *arg0, StructBss16C *arg1) +{ + int i = 0; + float speed = 50; + + HuAudFXPlay(153); + fn_1_10604(2, 1, 0, 0, 1); + fn_1_BE8(5); + Hu3DMotionTimeSet(lbl_1_bss_610.unk00->model[1], 100); + fn_1_BC8(); + Hu3DModelAttrReset(arg0->model[1], 1); + while (1) { + fn_1_BC8(); + if (Hu3DMotionTimeGet(lbl_1_bss_610.unk00->model[1]) >= 137) { + break; + } + } + HuAudFXPlay(156); + omVibrate(lbl_1_bss_688.unk0C, 45, 12, 0); + fn_1_67D8(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 6, 1, 5, 0); + for (i = 0; i < 60; i++) { + float posY; + fn_1_BC8(); + posY = fn_1_B08(0, speed, i % 15, 15); + speed = fn_1_88C(speed, 0, 30); + lbl_1_bss_688.unk100 = fn_1_88C(lbl_1_bss_688.unk100, posY, 5); + } + lbl_1_bss_688.unk100 = 0; + arg1->unk04 = NULL; +} + +void fn_1_1094C(void) +{ + omObjData *obj; + lbl_1_bss_610.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_610.unk04 = NULL; + lbl_1_bss_610.unk00->data = &lbl_1_bss_638; + fn_1_10448(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_610.unk04 != NULL) { + lbl_1_bss_610.unk04(obj, &lbl_1_bss_610); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_10C00(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x84 : 0x7F)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x85 : 0x80)); + Hu3DModelPosSet(object->model[1], -300, 0, 890); + Hu3DModelRotSet(object->model[1], 0, 30, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_5E8.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_5E8.unk00->work[0] = arg4; + lbl_1_bss_5E8.unk00->work[1] = arg1; + lbl_1_bss_5E8.unk00->work[2] = arg2 + 1; +} + +void fn_1_10EA0(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -600, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -90, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_10F84(omObjData *arg0, StructBss16C *arg1) +{ + int i; + for (i = 0; i < 15; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); + } + arg1->unk04 = NULL; +} + +void fn_1_11048(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1112C(void) +{ + omObjData *obj; + lbl_1_bss_5E8.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_5E8.unk04 = NULL; + lbl_1_bss_5E8.unk00->data = &lbl_1_bss_5E8; + fn_1_10C00(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_5E8.unk04 != NULL) { + lbl_1_bss_5E8.unk04(obj, &lbl_1_bss_5E8); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_11418(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_688.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_688.unk30[i], order[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_688.unk30[i].unk18 = GWPlayer[order[i]].rank + 1; + } +} + +Vec lbl_1_data_81C[4] = { + { -300, 0, 460 }, + { -100, -30, 460 }, + { 100, -60, 460 }, + { 300, -90, 460 }, +}; + +void fn_1_1154C(omObjData *object, int player) +{ + int playerNo = player; + int charNo = lbl_1_bss_688.unk30[playerNo].unk10; + object->model[1] = CharModelCreate(charNo, 4); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A)); + object->motion[5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x18) + charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet( + object->model[1], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y + 90, lbl_1_data_81C[playerNo].z); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x56)); + Hu3DModelPosSet( + object->model[2], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y, lbl_1_data_81C[playerNo].z); + if (lbl_1_bss_688.unk30[playerNo].unk18 == 4) { + Hu3DModelAttrSet(object->model[2], 1); + } + Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); + Hu3DModelShadowMapSet(object->model[2]); +} + +void fn_1_11838(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[0] = arg4; + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[1] = arg1; + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[2] = arg2 + 1; +} + +void fn_1_11934(omObjData *arg0, StructBss16C *arg1) +{ + float posY = Hu3DData[arg0->model[1]].pos.y; + int i; + for (i = 0; i < 60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].pos.y = fn_1_984(posY, 0, i, 60); + Hu3DData[arg0->model[2]].pos.y = fn_1_984(posY - 90, -90, i, 60); + } + Hu3DModelAttrSet(arg0->model[2], 1); + arg1->unk04 = NULL; +} + +void fn_1_11A98(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { 120, 0, 800 }; + lbl_1_bss_5E8.unk04 = (void *)fn_1_11048; + fn_1_1DFC(lbl_1_bss_638.unk00, 2, 2, 0, 0); + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -60, 30, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_11BB0(void) +{ + omObjData *obj; + int playerNo = lbl_1_bss_688.unk10++; + lbl_1_bss_548[playerNo].unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_548[playerNo].unk04 = NULL; + lbl_1_bss_548[playerNo].unk00->data = &lbl_1_bss_548[0]; + fn_1_1154C(obj, playerNo); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_548[playerNo].unk04 != NULL) { + lbl_1_bss_548[playerNo].unk04(obj, &lbl_1_bss_548[playerNo]); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_11FD0(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 170; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1700; +} + +void fn_1_1205C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 125; + temp.unk08.z = 0; + temp.unk20.x = -5; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1750; + fn_1_4FEC(work, &temp, work->unk40++, 60, 30); + if (0.0f != lbl_1_bss_688.unk100) { + work->unk08.y = lbl_1_bss_688.unk100 + 125; + } +} + +void fn_1_1218C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if (work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_638.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_638.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 125; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_638.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); + } +} diff --git a/src/REL/mstory2Dll/ending.c b/src/REL/mstory2Dll/ending.c new file mode 100644 index 00000000..93e9ab8e --- /dev/null +++ b/src/REL/mstory2Dll/ending.c @@ -0,0 +1,701 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/saveload.h" +#include "game/thpmain.h" +#endif + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBssC0C; // Size 0x104 + +StructBssC0C lbl_1_bss_C0C; +StructBss16C lbl_1_bss_BE4; +StructBss16C lbl_1_bss_BBC; +StructBss16C lbl_1_bss_B94; +StructBss16C lbl_1_bss_B6C; +StructBss16C lbl_1_bss_B44; +BOOL lbl_1_bss_B40; +BOOL lbl_1_bss_B3C; +Process *lbl_1_bss_B38; + +s32 lbl_1_data_EF8[2][2] = { 20, 70, 1, 1 }; +s32 lbl_1_data_F08 = -1; +s32 lbl_1_data_F0C[2] = { -1, -1 }; +s32 lbl_1_data_F14 = 127; + +void fn_1_19F14(void); +void fn_1_1A160(void); +void fn_1_1A538(omObjData *arg0, StructBss16C *arg1); +void fn_1_1A578(void); +void fn_1_1A9D0(omObjData *arg0, StructBss16C *arg1); +void fn_1_1AAB4(void); +void fn_1_1AFD4(omObjData *arg0, StructBss16C *arg1); +void fn_1_1B0E4(void); +void fn_1_1AD3C(int arg0); +void fn_1_1B318(void); +void fn_1_1B3A4(void); +void fn_1_1B430(void); + +void fn_1_186D0(void) +{ + int i; + while (1) { + HuPrcVSleep(); + if (lbl_1_data_F08 != -1 && lbl_1_data_F0C[0] != -1 && lbl_1_data_F0C[1] != -1 && lbl_1_data_F0C[0] == Hu3DMotionIDGet(lbl_1_data_F08)) { + for (i = 0; i < 2; i++) { + if (lbl_1_data_EF8[1][i] != -1) { + if (Hu3DMotionTimeGet(lbl_1_data_F08) >= lbl_1_data_EF8[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_EF8[0][i]); + HuAudFXPlayVol(81, lbl_1_data_F14); + lbl_1_data_EF8[1][i] = -1; + } + } + } + if (Hu3DMotionTimeGet(lbl_1_data_F08) <= 10) { + for (i = 0; i < 2; i++) { + lbl_1_data_EF8[1][i] = 1; + } + } + } + if (lbl_1_bss_B3C == 1) { + lbl_1_data_F14--; + if (lbl_1_data_F14 <= 0) { + lbl_1_data_F14 = 0; + } + } + if (lbl_1_bss_B3C == 2) { + break; + } + } + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_188F0(Process *arg0, s32 arg1) +{ + lbl_1_bss_B38 = arg0; + if (GWSystem.diff_story == 2) { + GWGameStat.veryHardUnlock = TRUE; + } + lbl_1_bss_C0C.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_B38, fn_1_1B318); + fn_1_3754(); + fn_1_1AD3C(arg1); + HuPrcChildCreate(fn_1_1B0E4, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1A160, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1AAB4, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1A578, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_19F14, 100, 12288, 0, HuPrcCurrentGet()); +} + +void fn_1_18A34(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_18AC0(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + fontcolor = FONT_COLOR_WHITE; + printWin(posX, posY, 220, 130, &winColor); + if (lbl_1_bss_BE4.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_BBC.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_B94.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_PLAYER -> TRUE"); + } + if (lbl_1_bss_B6C.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_SUB -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_B44.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_C0C.unk00, lbl_1_bss_C0C.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_C0C.unk30[i].unk00, lbl_1_bss_C0C.unk30[i].unk04, + lbl_1_bss_C0C.unk30[i].unk08, lbl_1_bss_C0C.unk30[i].unk0C, lbl_1_bss_C0C.unk30[i].unk14, lbl_1_bss_C0C.unk30[i].unk10); + } + } +} + +void fn_1_18E7C(void) +{ + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_18EC4(void) +{ + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001E); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_C0C.unk04); + lbl_1_bss_B44.unk04 = (void *)fn_1_1A538; + lbl_1_bss_B3C = 1; + fn_1_BE8(60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); + lbl_1_bss_B44.unk04 = NULL; + lbl_1_bss_B3C = 2; + fn_1_1DFC(lbl_1_bss_B44.unk00, 1, 1, 0, 1); + fn_1_2750(fn_1_1B3A4); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_B6C.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_B94.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_B44.unk00->model[1], 1); + Hu3DModelPosSet(lbl_1_bss_BBC.unk00->model[1], 0, 0, 0); + fn_1_BE8(60); + lbl_1_bss_78[0] = HuAudSeqPlay(56); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + if (0) { + fn_1_BC8(); + } +} + +void fn_1_19138(void) +{ + fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 3, 0, 0); + fn_1_2264(lbl_1_bss_BBC.unk00, 2, 3, 0); + lbl_1_bss_B94.unk04 = (void *)fn_1_1AFD4; + lbl_1_bss_B6C.unk04 = (void *)fn_1_1A9D0; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1B430); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 2, 0, 0); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_B94.unk04 == NULL) { + break; + } + } + while (1) { + fn_1_BC8(); + if (lbl_1_bss_B6C.unk04 == NULL) { + break; + } + } + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 15, 1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001F); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0020); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 15, 1); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_BE8(60); +} + +char *lbl_1_data_10E4[8] = { "movie/endmov_ma0.thp", "movie/endmov_lu0.thp", "movie/endmov_pe0.thp", "movie/endmov_yo0.thp", "movie/endmov_wa0.thp", + "movie/endmov_do0.thp", "movie/endmov_da0.thp", "movie/endmov_wl0.thp" }; + +void fn_1_19334(void) +{ + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1); + fn_1_1D4C(lbl_1_bss_C0C.unk04, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0024); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 4, 15, 0); + fn_1_2264(lbl_1_bss_B94.unk00, 1, 4, 15); + fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 3, 15, 1); + fn_1_BE8(60); + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1); + fn_1_6D78(lbl_1_bss_C0C.unk04, 0x1F0023, 0, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1); + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_BE8(60); + HuAudFXPlay(152); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[4], 1); + Hu3DModelAttrSet(lbl_1_bss_B6C.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_B94.unk00->model[1], 1); + HuAudSeqFadeOut(lbl_1_bss_78[0], 100); + lbl_1_bss_B3C = 2; + GWGameStat.musicAllF = TRUE; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet()) { + HuPrcVSleep(); + } + lbl_1_bss_BBC.unk04 = NULL; + lbl_1_bss_B94.unk04 = NULL; + lbl_1_bss_B44.unk04 = NULL; + lbl_1_bss_B6C.unk04 = NULL; + + CharModelKill(-1); + Hu3DAllKill(); + fn_1_BE8(60); + { + int time = 0; +#if VERSION_PAL + s32 languageOffset = 0; +#endif + int gid = HuSprGrpCreate(3); + int sprid = HuTHPSprCreate(lbl_1_data_10E4[lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10], FALSE, 1000); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprPosSet(gid, 0, 288, 240); +#if VERSION_PAL + switch (GWGameStat.language) { + case 2: + languageOffset = 1; + break; + case 3: + languageOffset = 2; + break; + case 4: + languageOffset = 3; + break; + case 5: + languageOffset = 4; + break; + } + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x60) + languageOffset, MEMORY_DEFAULT_NUM)), 950, 0); +#else + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x60), MEMORY_DEFAULT_NUM)), 950, 0); +#endif + HuSprGrpMemberSet(gid, 1, sprid); + HuSprPosSet(gid, 1, 288, 226); + HuSprAttrSet(gid, 1, HUSPR_ATTR_DISPOFF); + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x61 : 0x65), MEMORY_DEFAULT_NUM)), 950, 0); + HuSprGrpMemberSet(gid, 2, sprid); + HuSprBankSet(gid, 2, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10); + if (GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) { + HuSprBankSet(gid, 2, 8); + } + HuSprPosSet(gid, 2, 288, 254); + HuSprAttrSet(gid, 2, HUSPR_ATTR_DISPOFF); + HuPrcSleep(5); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + while (!HuTHPEndCheck()) { + if (time >= (VERSION_NTSC ? 3300 : 2725)) { + HuSprAttrReset(gid, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(gid, 2, HUSPR_ATTR_DISPOFF); + } + else { + time++; + } + HuPrcVSleep(); + } + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(gid); + } +} + +void fn_1_199A0(void) +{ + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + s32 var_r28; + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_B40 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BE8(60); + var_r28 = GWStoryCharGet(); + GWSystem.storyCharBit |= 1 << var_r28; + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + GWGameStat.story_continue = FALSE; + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_B40 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_19BE8(void) +{ + omOvlHisData *his; + fn_1_BE8(120); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + CharModelKill(-1); + HuAudFadeOut(1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 20, 1); + omOvlCallEx(OVL_STAFF, 1, 0, 0); + while (1) { + fn_1_BC8(); + } +} + +void fn_1_19C6C(omObjData *arg0, StructBss16C *arg1) +{ + int temp = 0; + fn_1_18E7C(); + fn_1_18EC4(); + fn_1_19138(); + fn_1_19334(); + fn_1_19BE8(); + arg1->unk04 = NULL; +} + +void fn_1_19F14(void) +{ + omObjData *obj; + lbl_1_bss_BE4.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_BE4.unk04 = (void *)fn_1_19C6C; + lbl_1_bss_BE4.unk00->data = &lbl_1_bss_BE4; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_BE4.unk04 != NULL) { + lbl_1_bss_BE4.unk04(obj, &lbl_1_bss_BE4); + } + } +} + +void fn_1_19FC8(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x50)); + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + fn_1_1DFC(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); + Hu3DModelAttrSet(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + Hu3DModelAttrSet(object->model[2], 1); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x51)); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelPosSet(object->model[1], 0, -1000, 0); +} + +void fn_1_1A160(void) +{ + omObjData *obj; + lbl_1_bss_BBC.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_BBC.unk04 = NULL; + fn_1_19FC8(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_BBC.unk04 != NULL) { + lbl_1_bss_BBC.unk04(obj, &lbl_1_bss_BBC); + } + } +} + +void fn_1_1A368(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x70 : 0x71)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x71 : 0x72)); + Hu3DModelPosSet(object->model[1], 0, 0, 600); + Hu3DModelRotSet(object->model[1], 0, 180, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + fn_1_1DFC(object, 1, 3, 0, 1); + lbl_1_data_F08 = object->model[1]; + lbl_1_data_F0C[0] = object->motion[3]; + lbl_1_data_F0C[1] = object->motion[3]; + HuPrcChildCreate(fn_1_186D0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_1A538(omObjData *arg0, StructBss16C *arg1) +{ + Hu3DData[lbl_1_bss_B44.unk00->model[1]].pos.z -= 2.5f; +} + +void fn_1_1A578(void) +{ + omObjData *obj; + lbl_1_bss_B44.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B44.unk04 = NULL; + fn_1_1A368(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_B44.unk04 != NULL) { + lbl_1_bss_B44.unk04(obj, &lbl_1_bss_B44); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1A7CC(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x72 : 0x73)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x73 : 0x74)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x75)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x76)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7C : 0x7A)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x79 : 0x77)); + Hu3DModelPosSet(object->model[1], 0, 0, 460); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 5, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); +} + +void fn_1_1A9D0(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 90, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1AAB4(void) +{ + omObjData *obj; + lbl_1_bss_B6C.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B6C.unk04 = NULL; + fn_1_1A7CC(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_B6C.unk04 != NULL) { + lbl_1_bss_B6C.unk04(obj, &lbl_1_bss_B6C); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1AD3C(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_C0C.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_C0C.unk30[i], order[i]); + } +} + +void fn_1_1AE20(omObjData *object) +{ + int charNo = lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x10) + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x08) + charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_1AFD4(omObjData *arg0, StructBss16C *arg1) +{ + int i; + fn_1_1DFC(arg0, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(arg0->model[1], 60); + for (i = 0; i < 60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); + } + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1B0E4(void) +{ + omObjData *obj; + lbl_1_bss_B94.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B94.unk04 = NULL; + fn_1_1AE20(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_B94.unk04 != NULL) { + lbl_1_bss_B94.unk04(obj, &lbl_1_bss_B94); + } + if (obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1B318(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 120; + work->unk08.z = 0; + work->unk20.x = 0; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1400; +} + +void fn_1_1B3A4(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -4.9f; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_1B430(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_42A0(work, &temp, work->unk40++, 60, 10); + if (0.0f != lbl_1_bss_C0C.unk100) { + work->unk08.y = 125 + lbl_1_bss_C0C.unk100; + } +} diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c new file mode 100644 index 00000000..77125674 --- /dev/null +++ b/src/REL/mstory2Dll/main.c @@ -0,0 +1,1238 @@ +#include "REL/mstory2Dll.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/hsfdraw.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/sprite.h" + +#include "ext_math.h" + +s32 lbl_1_bss_68[3]; // unused +StructBss24 lbl_1_bss_24; +s32 lbl_1_bss_4[8]; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E }, + {0x3A, 0x3B, 0x3C, 0xFFFFFFFF} +}; + +char* lbl_1_data_144[] = { + "K-1 : KOOPA STORY - BOARD ENTRANCE EVENT", + "K-3 : KOOPA STORY - BOARD CLEAR EVENT", + "K-4 : KOOPA STORY - BOARD MISS EVENT", + "K-5 : KOOPA STORY - MINIGAME CLEAR EVENT", + "K-6 : KOOPA STORY - MINIGAME MISS EVENT", + "--- : ENDING" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 var_r30; + s32 var_r31; + s32 sp10; + s32 spC; + s32 sp8; + s32 i; + + var_r30 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_BC8(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if (HuPadStkY[0] <= -30) { + fn_1_BE8(5); + var_r30++; + if (var_r30 >= 6) { + var_r30 = 0; + } + + } + if (HuPadStkY[0] >= 30) { + fn_1_BE8(5); + var_r30--; + if (var_r30 < 0) { + var_r30 = 5; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 2 - EVENT SELECT <<<<<"); + for (i = 0; i < 6; i++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == i) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 130 + i * 15, 1.5f, "%s", lbl_1_data_144[i]); + } + fn_1_BC8(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_BC8(); + } + GWSystem.board = 5; + switch (var_r30) { + case 0: + fn_1_7F54(lbl_1_bss_0, 0); + break; + case 1: + fn_1_B3E4(lbl_1_bss_0, 0); + break; + case 2: + fn_1_EA2C(lbl_1_bss_0, 0); + break; + case 3: + fn_1_1256C(lbl_1_bss_0, 0); + break; + case 4: + fn_1_16060(lbl_1_bss_0, 0); + break; + case 5: + fn_1_188F0(lbl_1_bss_0, 0); + break; + } + while (TRUE) { + fn_1_BC8(); + } +} + +#include "src/REL/executor.c" + +void fn_1_3E4(void) +{ + int gid = HuSprGrpCreate(1); + int sprid = HuTHPSprCreate("movie/endmov_ma0.thp", FALSE, 10); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprPosSet(gid, 0, 288, 240); + HuPrcSleep(5); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + while(!HuTHPEndCheck()) { + HuPrcVSleep(); + } + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(gid); + while(1) { + fn_1_BC8(); + } +} + +void fn_1_4F4(void) { + s32 i; + + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + switch (omovlevtno) { + case 0: + fn_1_7F54(lbl_1_bss_0, 0); + break; + + case 1: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { + break; + } + } + fn_1_B3E4(lbl_1_bss_0, i); + break; + case 2: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { + break; + } + } + fn_1_EA2C(lbl_1_bss_0, i); + break; + case 3: + if (GWPlayerCoinWinGet(0) >= 10) { + fn_1_1256C(lbl_1_bss_0, 0); + } else { + fn_1_16060(lbl_1_bss_0, 0); + } + break; + case 4: + fn_1_188F0(lbl_1_bss_0, 0); + break; + + case 20: + fn_1_1B90C(lbl_1_bss_0); + break; + } +} + +void ObjectSetup(void) { + fn_1_4F4(); +} + +float fn_1_864(float arg0, float arg1, float arg2, float arg3) { + if (arg3 <= arg2) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_88C(float arg0, float arg1, float arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_8AC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_984(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_A4C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_B08(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_BC4(void) { +} + +void fn_1_BC8(void) { + HuPrcVSleep(); +} + +void fn_1_BE8(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_C10(void) { + HuPrcEnd(); +} + +void fn_1_C30(void) { + HuWinInit(1); +} + +void fn_1_C54(void) { +} + +void fn_1_C58(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_984(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_984(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_984(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_984(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_984(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_984(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_984(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_984(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_16A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6) { + s32 temp_r31; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2.0f; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } + temp_r31 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + HuWinMesPalSet(temp_r31, 7, 0, 0, 0); + if (arg6 != -1) { + arg6 = GWPlayerCfg[arg6].pad_idx; + winData[temp_r31].active_pad = (1 << arg6); + } else { + winData[temp_r31].active_pad = 0xF; + } + + fn_1_C58(temp_r31, arg4, arg5, 1); + return temp_r31; +} + +s32 fn_1_185C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_16A0(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +void fn_1_1A34(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_C58(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1A94(s32 arg0) { + fn_1_1A34(arg0, 0.5f, 0.5f); +} + +void fn_1_1AFC(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +BOOL fn_1_1BA8(s32 arg0, s32 arg1) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} + +BOOL fn_1_1C64(s32 arg0) { + return fn_1_1BA8(arg0, 0); +} + +void fn_1_1D18(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D4C(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1D8C(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1DFC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; +} + +void fn_1_1F84(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1F84(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2264(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +s32 fn_1_22F4(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_233C(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2390(void) { + StructBss24* var_r31; + + var_r31 = &lbl_1_bss_24; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2750(void (*arg0)(void)) { + lbl_1_bss_24.unk00 = arg0; +} + +void fn_1_2760(void (*arg0)(void)) { + lbl_1_bss_24.unk04 = arg0; +} + +void fn_1_2770(omObjData* arg0) { + StructBss24* var_r31; + + var_r31 = &lbl_1_bss_24; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_2828(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 0.1f, 10000.0f, 1.2f); + lbl_1_bss_24.unk00 = arg1; + lbl_1_bss_24.unk04 = fn_1_2390; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2770); +} + +void fn_1_2948(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2D00(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_88C(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_864(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_34F4(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_357C(StructFn357C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_3610(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_3668(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_3754(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_3818(StructBss24* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_3854(StructBss24* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_3898(StructBss24* arg0, StructBss24* arg1, float arg3) { + arg0->unk08.x = fn_1_88C(arg0->unk08.x, arg1->unk14, arg3); + arg0->unk08.y = fn_1_88C(arg0->unk08.y, arg1->unk18, arg3); + arg0->unk08.z = fn_1_88C(arg0->unk08.z, arg1->unk1C, arg3); + arg0->unk20.x = fn_1_88C(arg0->unk20.x, arg1->unk2C, arg3); + arg0->unk20.y = fn_1_88C(arg0->unk20.y, arg1->unk30, arg3); + arg0->unk20.z = fn_1_88C(arg0->unk20.z, arg1->unk34, arg3); + arg0->unk38 = fn_1_88C(arg0->unk38, arg1->unk3C, arg3); +} + +void fn_1_3B04(StructBss24* arg0, float arg1) { + fn_1_3898(arg0, arg0, arg1); +} + +void fn_1_3D70(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_864(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_864(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_864(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_864(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_864(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_864(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_864(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_3FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_3D70(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_42A0(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_3D70(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +void fn_1_470C(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_984(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_984(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_984(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_984(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_984(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_984(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_984(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4B60(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_470C(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_470C(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +void fn_1_5644(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_8AC(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_8AC(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_8AC(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_8AC(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_8AC(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_8AC(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_8AC(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5B08(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_5644(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_6004(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_5644(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +int fn_1_66CC(int modelId) +{ + return Hu3DMotionMaxTimeGet(modelId); +} + +void fn_1_6704(omObjData* arg0) { + s32 var_r30; + if(arg0->work[0] == 0) { + return; + } + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, 0x40000001U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DFC(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6970(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_69A4(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_69E4(s32 arg0, s32 arg1) { + fn_1_1AFC(arg0, arg1); +} + +void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 var_r27 = 0; + s32 var_r29 = 0; + s32 var_r23 = 0; + s32 var_r26; + s32 i; + if(arg2 == -1) { + var_r23 = 1; + arg2 = 0; + } + HuWinMesSet(arg0, arg1); + var_r27 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= var_r27 - 1) { + arg2 = var_r27 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < var_r27; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + if(arg3 != -1) { + if(arg4 != -1) { + i=0; + do { + HuPrcVSleep(); + if(i++ == 25) { + HuAudFXPlay(lbl_1_data_0[6][0]); + } + } while(!Hu3DMotionEndCheck(arg3)); + Hu3DMotionShiftSet(arg3, arg4, 0, 1, 0); + HuPrcSleep(15); + } + var_r26 = fn_1_66CC(arg3)-15; + if(var_r23 == 1) { + for(i=0; i 0) { + HuPrcSleep(var_r26); + } + } + } else { + HuPrcSleep(60); + } + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1AFC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + fn_1_6A90(arg0, arg1, arg2, arg3, -1); +} + +void fn_1_6DBC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + HuWinMesSet(arg0, arg1); + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1AFC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6FB0(s32 arg0) { + return fn_1_1BA8(arg0, 0); +} + +s32 fn_1_7064(s32 arg0, s32 arg1) { + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r31; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_f31 = spC[0]; + var_f30 = spC[1]; + var_f29 = 550.0f - var_f31; + var_f28 = 430.0f - var_f30; + var_r31 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + if (arg1 != -1) { + arg1 = GWPlayerCfg[arg1].pad_idx; + winData[var_r31].active_pad = (1 << arg1); + } else { + winData[var_r31].active_pad = 0xF; + } + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + fn_1_C58(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +void fn_1_71DC(s32 arg0) { + fn_1_1A34(arg0, 0.5f, 0.5f); +} + +char *lbl_1_data_308[8] = { + "c000m1-ske_head", + "c001m1-ske_head", + "c002m1-ske_head", + "c003m1-ske_head", + "c004m1-ske_head", + "c005m1-ske_head", + "c006m1-ske_head", + "c007m1-ske_head" +}; + +s32 lbl_1_data_328[8][2] = { + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, +}; + +float lbl_1_data_368[8] = { + 194, + 191, + 87.2, + 50.1, + 72, + 83.5, + 87.2, + 64.5 +}; + +void fn_1_7244(s16 modelId, char *objName, u32 constFlags, float ofs) +{ + HsfObject *obj = Hu3DModelObjPtrGet(modelId, objName); + HsfConstData *constData; + if(!obj->constData) { + constData = ObjConstantMake(obj, Hu3DData[modelId].unk_48); + } else { + constData = obj->constData; + } + constData->flags |= constFlags; + if(constFlags & 0x10) { + obj->data.curr.pos.x += ofs; + } + if(constFlags & 0x20) { + obj->data.curr.pos.y += ofs; + } + if(constFlags & 0x40) { + obj->data.curr.pos.z += ofs; + } + if(constFlags & 0x80) { + obj->data.curr.rot.x += ofs; + } + if(constFlags & 0x100) { + obj->data.curr.rot.y += ofs; + } + if(constFlags & 0x200) { + obj->data.curr.rot.z += ofs; + } +} + +void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag) +{ + float var_f31 = 0; + float var_f30 = ofs; + s32 i; + if(charNo == 7) { + var_f30 *= 2.5f; + } + if(lbl_1_data_328[charNo][1] == 0) { + var_f30 *= -1; + } + if(flag) { + for(i=0; i= lbl_1_data_C10[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_C10[0][i]); + HuAudFXPlay(81); + lbl_1_data_C10[1][i] = -1; + } + } + } + if (Hu3DMotionTimeGet(lbl_1_data_C20) <= 10) { + for (i = 0; i < 2; i++) { + lbl_1_data_C10[1][i] = 1; + } + } + } +} + +void fn_1_1256C(Process *arg0, s32 arg1) +{ + lbl_1_bss_790 = arg0; + lbl_1_bss_860.unk0C = arg1; + fn_1_C30(); + lbl_1_bss_860.unk100 = fn_1_3668(255); + fn_1_2828(lbl_1_bss_790, fn_1_15CDC); + fn_1_3754(); + fn_1_15668(arg1); + HuPrcChildCreate(fn_1_1449C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_14C40, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_153A8, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_159F0, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_13BB8, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_12690(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_1271C(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + printWin(posX, posY, 220, 130, &winColor); + if (lbl_1_bss_838.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_810.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_7E8.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_7C0.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + if (lbl_1_bss_798.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_860.unk00, lbl_1_bss_860.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_860.unk30[i].unk00, lbl_1_bss_860.unk30[i].unk04, + lbl_1_bss_860.unk30[i].unk08, lbl_1_bss_860.unk30[i].unk0C, lbl_1_bss_860.unk30[i].unk14, lbl_1_bss_860.unk30[i].unk10); + } + } +} + +void fn_1_12AC8(void) +{ + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(30); +} + +void fn_1_12B10(void) +{ + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_14A9C(4, 1, 15, 0, 1); + fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0); + fn_1_6D78(lbl_1_bss_860.unk04, 0x1F0014, 0, lbl_1_bss_7E8.unk00->model[1]); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, 5, 10, 1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0015); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_15134(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_860.unk04); + lbl_1_bss_7E8.unk04 = (void *)fn_1_14B48; + fn_1_BE8(60); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 4, 15, 0); + fn_1_BE8(16); + while (1) { + fn_1_BC8(); + if (Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 20) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_7E8.unk04 == NULL) { + break; + } + } + fn_1_BE8(30); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15D68); + lbl_1_bss_7C0.unk04 = (void *)fn_1_152C4; + fn_1_BE8(80); + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 1); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 1, 15, 1); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_7C0.unk04 == NULL) { + break; + } + } +} + +void fn_1_12DD4(void) +{ + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + lbl_1_bss_78[0] = HuAudSeqPlay(56); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 4, 15, 0); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0016); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0017); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0018); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 1, 15, 1); + fn_1_1A94(lbl_1_bss_860.unk04); + fn_1_BE8(60); + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1); + fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0019); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][1]); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001A); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + lbl_1_bss_7C0.unk04 = (void *)fn_1_151E0; + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001B); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_860.unk04); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_7C0.unk04 == NULL) { + break; + } + } +} + +void fn_1_13150(omObjData *arg0, StructBss16C *arg1) +{ + int streamNo = HuAudSStreamPlay(7); + while (1) { + fn_1_BC8(); + if (HuAudSStreamStatGet(streamNo) == 0) { + break; + } + } + HuAudSeqPause(lbl_1_bss_78[0], 0, 1000); + arg1->unk04 = NULL; +} + +void fn_1_131C0(omObjData *arg0, StructBss16C *arg1) +{ + int presentSe = (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6) + 5; + fn_1_BE8(150); + OSReport("########## PRESENT_SE : %d\n", presentSe); + HuAudFXPlay(presentSe + 2260); + fn_1_1DFC(lbl_1_bss_810.unk00, 7, 7, 1, 0); + arg1->unk04 = NULL; +} + +void fn_1_13264(void) +{ + int i; + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 2, 15, 1); + for (i = 0; i < 30; i++) { + fn_1_BC8(); + if (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 != 5) { + Hu3DData[lbl_1_bss_798.unk00->model[1]].pos.x = fn_1_864(120, 80, i, 30); + } + Hu3DData[lbl_1_bss_798.unk00->model[1]].rot.y = fn_1_864(-60, -90, i, 30); + } + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 5, 5, 0); + fn_1_BE8(10); + while (1) { + fn_1_BC8(); + if (Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 30) { + break; + } + } + Hu3DModelPosSet(lbl_1_bss_810.unk00->model[5], 0, 0, 0); + Hu3DModelHookSet( + lbl_1_bss_798.unk00->model[1], CharModelHookNameGet(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 1, 1), lbl_1_bss_810.unk00->model[5]); + fn_1_BE8(60); + lbl_1_bss_810.unk04 = (void *)fn_1_13FB4; + HuAudFXPlay(163); + HuAudCharVoicePlay(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 296); + fn_1_1DFC(lbl_1_bss_810.unk00, 6, 6, 0, 0); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[6], 1); + Hu3DModelAttrSet(lbl_1_bss_810.unk00->model[5], 1); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 6, 5, 0); + HuAudSeqPause(lbl_1_bss_78[0], 1, 1000); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + while (1) { + fn_1_BC8(); + if (!WipeStatGet()) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0); + Hu3DMotionTimeSet(lbl_1_bss_798.unk00->model[1], 50); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[7], 1); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[8], 1); + fn_1_1DFC(lbl_1_bss_810.unk00, 8, 8, 0, 1); + fn_1_BE8(30); + HuAudFXPlay(169); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + while (1) { + fn_1_BC8(); + if (!WipeStatGet()) { + break; + } + } + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15F70); + fn_1_BE8(60); + lbl_1_bss_798.unk04 = (void *)fn_1_131C0; + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + lbl_1_bss_7C0.unk04 = (void *)fn_1_13150; + fn_1_1D4C(lbl_1_bss_860.unk04, (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6) + 0x32000B, 0); + fn_1_6DBC(lbl_1_bss_860.unk04, 0x320086, 0, 300); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_860.unk04); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15E58); + lbl_1_bss_810.unk04 = (void *)fn_1_140A0; + fn_1_BE8(30); + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0.1f); + fn_1_BE8(180); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); +} + +void fn_1_13828(void) +{ + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BE8(60); + SLCommonSet(); + SLSaveBoardStory(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_794 = TRUE; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_138CC(void) +{ + omOvlHisData *var_r31; + + msmSeStopAll(FALSE, 1000); + do { + fn_1_BC8(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + GWMGAvailSet(omMgIndexGet(58) + 401); + GWGameStat.present[lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5] = 1; + OSReport("########## PRESENTFLG CHR:%d, MAP:5, PRESENT:%d\n", lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, + lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5); + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 20, var_r31->stat); + omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5 + 1, 0); +} + +void fn_1_13A18(omObjData *arg0, StructBss16C *arg1) +{ + int temp = 0; + fn_1_12AC8(); + fn_1_12B10(); + fn_1_12DD4(); + fn_1_13264(); + fn_1_138CC(); + arg1->unk04 = 0; +} + +void fn_1_13BB8(void) +{ + omObjData *obj; + lbl_1_bss_838.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_838.unk04 = (void *)fn_1_13A18; + lbl_1_bss_838.unk00->data = &lbl_1_bss_838; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_838.unk04 != NULL) { + lbl_1_bss_838.unk04(obj, &lbl_1_bss_838); + } + } +} + +void fn_1_13C6C(omObjData *object) +{ + s32 charNo; + charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; + object->model[7] = Hu3DModelCreateFile(lbl_1_data_850[charNo * 6 + 5].unk0); + object->motion[7] = Hu3DMotionIDGet(object->model[7]); + Hu3DModelPosSet(object->model[7], 0, 180, 825); + Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelShadowSet(object->model[7]); + fn_1_1DFC(object, 7, 7, 0, 2); + HuDataDirClose(DATADIR_MSTORY4); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5B)); + Hu3DModelPosSet(object->model[5], 0, 125, 800); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5D)); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelPosSet(object->model[6], 25, 125, 900); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5F)); + object->motion[8] = Hu3DMotionIDGet(object->model[8]); + Hu3DModelAttrSet(object->model[8], 1); + fn_1_1DFC(object, 8, 8, 0, 1); +} + +void fn_1_13FB4(omObjData *arg0, StructBss16C *arg1) +{ + Mtx matrix; + Hu3DData[arg0->model[7]].pos.y = fn_1_B08(180, 185, arg1->unk08++, 360); + Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); + Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_140A0(omObjData *arg0, StructBss16C *arg1) +{ + Mtx matrix; + Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f; + Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); + Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); + arg1->unk0C += 2; +} + +void fn_1_1416C(omObjData *arg0, StructBss16C *arg1) +{ + int i; + Vec pos; + float rotY; + Hu3DModelPosSet(arg0->model[5], -180, 100, 800); + Hu3DModelRotSet(arg0->model[5], 0, 0, 0); + Hu3DModelAttrReset(arg0->model[5], 1); + for (i = 0; i < 60; i++) { + fn_1_BC8(); + if (i == 30) { + HuAudFXPlay(151); + } + if (i <= 30) { + pos.y = fn_1_A4C(0, 100, i + 30, 60); + pos.x = fn_1_864(-180, -45, i, 30); + rotY = fn_1_984(0, -90, i, 30); + } + else { + pos.x = fn_1_864(-45, 0, i - 30, 30); + pos.y = fn_1_A4C(0, 25, i - 30, 30); + rotY = fn_1_984(-90, -360, i - 30, 30); + } + Hu3DModelPosSet(arg0->model[5], pos.x, pos.y, 800); + Hu3DModelRotSet(arg0->model[5], 0, rotY, 0); + } + arg1->unk04 = NULL; +} + +void fn_1_1449C(void) +{ + omObjData *obj; + lbl_1_bss_810.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_810.unk04 = NULL; + lbl_1_bss_810.unk00->data = &lbl_1_bss_810; + fn_1_13C6C(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_810.unk04 != NULL) { + lbl_1_bss_810.unk04(obj, &lbl_1_bss_810); + } + } +} + +void fn_1_14868(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x64 : 0x68)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6E : 0x6F)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6F : 0x70)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + Hu3DModelPosSet(object->model[1], -180, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 3, 0, 1); + lbl_1_data_C20 = object->model[1]; + lbl_1_data_C24[0] = object->motion[2]; + lbl_1_data_C24[1] = object->motion[2]; + HuPrcChildCreate(fn_1_123C8, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_7E8.unk00->work[0] = arg4; + lbl_1_bss_7E8.unk00->work[1] = arg1; + lbl_1_bss_7E8.unk00->work[2] = arg2 + 1; +} + +void fn_1_14B48(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -1000, 0, 810 }; + lbl_1_bss_810.unk04 = (void *)fn_1_1416C; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -1, 45, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_14C40(void) +{ + omObjData *obj; + lbl_1_bss_7E8.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_7E8.unk04 = NULL; + lbl_1_bss_7E8.unk00->data = &lbl_1_bss_810; + fn_1_14868(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_7E8.unk04 != NULL) { + lbl_1_bss_7E8.unk04(obj, &lbl_1_bss_7E8); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_14F6C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x86 : 0x81)); + Hu3DModelPosSet(object->model[1], -600, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_7C0.unk00->work[0] = arg4; + lbl_1_bss_7C0.unk00->work[1] = arg1; + lbl_1_bss_7C0.unk00->work[2] = arg2 + 1; +} + +void fn_1_151E0(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -800, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_152C4(omObjData *arg0, StructBss16C *arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_153A8(void) +{ + omObjData *obj; + lbl_1_bss_7C0.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_7C0.unk04 = NULL; + lbl_1_bss_7C0.unk00->data = &lbl_1_bss_7C0; + fn_1_14F6C(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_7C0.unk04 != NULL) { + lbl_1_bss_7C0.unk04(obj, &lbl_1_bss_7C0); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_15668(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_860.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_860.unk30[i], order[i]); + } +} + +void fn_1_1574C(omObjData *object) +{ + int charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x28) + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x30) + charNo); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x38) + charNo); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x00) + charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 3, 0, 1); +} + +void fn_1_15944(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_798.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_798.unk00->work[0] = arg4; + lbl_1_bss_798.unk00->work[1] = arg1; + lbl_1_bss_798.unk00->work[2] = arg2 + 1; +} + +void fn_1_159F0(void) +{ + omObjData *obj; + lbl_1_bss_798.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_798.unk04 = NULL; + lbl_1_bss_798.unk00->data = &lbl_1_bss_798; + fn_1_1574C(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_798.unk04 != NULL) { + lbl_1_bss_798.unk04(obj, &lbl_1_bss_798); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_15CDC(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_15D68(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_4FEC(work, &temp, work->unk40++, 120, 10); +} + +void fn_1_15E58(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk14 = 0; + work->unk18 = Hu3DData[lbl_1_bss_810.unk00->model[7]].pos.y; + work->unk1C = 0; + work->unk2C = 0; + work->unk30 = 0; + work->unk34 = 0; + work->unk3C = fn_1_864(1200, 1400, work->unk40++, 240); + fn_1_3B04(work, 30); +} + +void fn_1_15F70(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 160; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1200; + fn_1_6004(work, &temp, work->unk40++, 10, 5); +} diff --git a/src/REL/mstory2Dll/mg_miss.c b/src/REL/mstory2Dll/mg_miss.c new file mode 100644 index 00000000..e7bf2b00 --- /dev/null +++ b/src/REL/mstory2Dll/mg_miss.c @@ -0,0 +1,510 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ s32 unk100; +} StructBssA34; // Size 0x104 + +StructBssA34 lbl_1_bss_A34; +StructBss16C lbl_1_bss_A0C; +StructBss16C lbl_1_bss_9E4; +StructBss16C lbl_1_bss_9BC; +StructBss16C lbl_1_bss_994; +StructBss16C lbl_1_bss_96C; +Process *lbl_1_bss_968; + +void fn_1_16FC0(void); +void fn_1_17338(void); +void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_177F8(void); +void fn_1_17C44(void); +void fn_1_17E64(s32 arg0); +void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_18184(void); +void fn_1_18408(void); +void fn_1_18494(void); + +void fn_1_16060(Process *arg0, s32 arg1) +{ + lbl_1_bss_968 = arg0; + lbl_1_bss_A34.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_968, fn_1_18408); + fn_1_3754(); + fn_1_17E64(arg1); + HuPrcChildCreate(fn_1_17338, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_177F8, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_17C44, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_18184, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_16FC0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_16178(omObjData *object) +{ + if (object->work[2]) { + object->work[2]--; + return; + } + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_16204(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while (1) { + fn_1_BC8(); + printWin(posX, posY, 220, 130, &winColor); + if (lbl_1_bss_A0C.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } + else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_9E4.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); + } + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_9BC.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_994.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + if (lbl_1_bss_96C.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_A34.unk00, lbl_1_bss_A34.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_A34.unk30[i].unk00, lbl_1_bss_A34.unk30[i].unk04, + lbl_1_bss_A34.unk30[i].unk08, lbl_1_bss_A34.unk30[i].unk0C, lbl_1_bss_A34.unk30[i].unk14, lbl_1_bss_A34.unk30[i].unk10); + } + } +} + +void fn_1_165B0(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(52); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_1661C(void) +{ + lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C); + fn_1_1774C(2, 1, 15, 0, 1); + fn_1_180D8(2, 3, 15, 0, 1); + HuAudCharVoicePlay(lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10, 302); + fn_1_6D78(lbl_1_bss_A34.unk04, 0x1F0010, -1, lbl_1_bss_9BC.unk00->model[1]); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004); + fn_1_1774C(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_A34.unk04); +} + +int fn_1_1670C(void) +{ + int result = 0; + HuWinInsertMesSet(lbl_1_bss_A34.unk04, 0x1E003C, 3); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E002D); + fn_1_1AFC(lbl_1_bss_A34.unk04, 5); + lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035); + result = fn_1_1C64(lbl_1_bss_A34.unk08); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_A34.unk08); + if (result) { + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1774C(3, 1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1F0012); + fn_1_1AFC(lbl_1_bss_A34.unk04, -1); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004); + fn_1_1774C(1, -1, 15, 1, 0); + fn_1_180D8(4, 1, 15, 0, 1); + } + return result; +} + +int fn_1_168B0(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E0005); + fn_1_1AFC(lbl_1_bss_A34.unk04, 5); + lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035); + result = fn_1_1BA8(lbl_1_bss_A34.unk08, 1); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_A34.unk08); + return result; +} + +void fn_1_16984(void) +{ + HuAudSeqFadeOut(lbl_1_bss_78[0], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_18494); + fn_1_BE8(150); +} + +void fn_1_169D4(void) { } + +void fn_1_169D8(int arg0) +{ + omOvlHisData *his; + + if (arg0 != 0) { + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 3, his->stat); + if (arg0 == 0) { + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + GWMGAvailSet(450); + GWSystem.mg_next = 450 - 401; + omOvlCallEx(OVL_M450, 1, 0, 0); + } + else { + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_16ACC(omObjData *arg0, StructBss16C *arg1) +{ + int mode = 0; + fn_1_165B0(); + fn_1_1661C(); + lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C); + while (1) { + fn_1_BC8(); + if (fn_1_1670C()) { + mode = 0; + break; + } + else if (fn_1_168B0()) { + mode = 1; + break; + } + } + fn_1_1A94(lbl_1_bss_A34.unk04); + switch (mode) { + case 0: + fn_1_16984(); + break; + case 1: + break; + } + fn_1_169D8(mode); + arg1->unk04 = NULL; +} + +void fn_1_16FC0(void) +{ + omObjData *obj; + lbl_1_bss_A0C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_A0C.unk04 = (void *)fn_1_16ACC; + lbl_1_bss_A0C.unk00->data = &lbl_1_bss_A0C; + while (1) { + fn_1_BC8(); + if (lbl_1_bss_A0C.unk04 != NULL) { + lbl_1_bss_A0C.unk04(obj, &lbl_1_bss_A0C); + } + } +} + +void fn_1_17074(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x59)); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5A)); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_1727C(omObjData *arg0, StructBss16C *arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_17338(void) +{ + omObjData *obj; + lbl_1_bss_9E4.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_9E4.unk04 = (void *)fn_1_1727C; + lbl_1_bss_9E4.unk00->data = &lbl_1_bss_9E4; + fn_1_17074(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_9E4.unk04 != NULL) { + lbl_1_bss_9E4.unk04(obj, &lbl_1_bss_9E4); + } + } +} + +void fn_1_175CC(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + Hu3DModelPosSet(object->model[1], 0, 0, 200); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_9BC.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_9BC.unk00->work[0] = arg4; + lbl_1_bss_9BC.unk00->work[1] = arg1; + lbl_1_bss_9BC.unk00->work[2] = arg2 + 1; +} + +void fn_1_177F8(void) +{ + omObjData *obj; + lbl_1_bss_9BC.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_9BC.unk04 = NULL; + lbl_1_bss_9BC.unk00->data = &lbl_1_bss_9E4; + fn_1_175CC(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_9BC.unk04 != NULL) { + lbl_1_bss_9BC.unk04(obj, &lbl_1_bss_9BC); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_17A70(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + Hu3DModelPosSet(object->model[1], -120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_17B98(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_994.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_994.unk00->work[0] = arg4; + lbl_1_bss_994.unk00->work[1] = arg1; + lbl_1_bss_994.unk00->work[2] = arg2 + 1; +} + +void fn_1_17C44(void) +{ + omObjData *obj; + lbl_1_bss_994.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_994.unk04 = NULL; + lbl_1_bss_994.unk00->data = &lbl_1_bss_994; + fn_1_17A70(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_994.unk04 != NULL) { + lbl_1_bss_994.unk04(obj, &lbl_1_bss_994); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_17E64(s32 arg0) +{ + int i; + int order[4]; + order[0] = 0; + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { + order[i] = 0; + } + if (arg0 == order[i]) { + lbl_1_bss_A34.unk00 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_357C(&lbl_1_bss_A34.unk30[i], order[i]); + } +} + +void fn_1_17F48(omObjData *object) +{ + int charNo = lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x34)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + CharModelVoiceEnableSet(charNo, object->motion[2], FALSE); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_96C.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_96C.unk00->work[0] = arg4; + lbl_1_bss_96C.unk00->work[1] = arg1; + lbl_1_bss_96C.unk00->work[2] = arg2 + 1; +} + +void fn_1_18184(void) +{ + omObjData *obj; + lbl_1_bss_96C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_96C.unk04 = NULL; + lbl_1_bss_96C.unk00->data = &lbl_1_bss_96C; + fn_1_17F48(obj); + while (1) { + fn_1_BC8(); + if (lbl_1_bss_96C.unk04 != NULL) { + lbl_1_bss_96C.unk04(obj, &lbl_1_bss_96C); + } + if (obj->work[0]) { + if (obj->work[2]) { + obj->work[2]--; + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_18408(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_18494(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if (work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_9E4.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_9E4.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 130; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 150; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_9E4.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); + } +} diff --git a/src/REL/mstory2Dll/save.c b/src/REL/mstory2Dll/save.c new file mode 100644 index 00000000..cc52073c --- /dev/null +++ b/src/REL/mstory2Dll/save.c @@ -0,0 +1,122 @@ +#include "REL/mstoryDll.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +s32 lbl_1_bss_D14; +Process *lbl_1_bss_D10; + +s32 fn_1_1B560(s32 arg0) +{ + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_1B64C(void) +{ + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_D14 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif + if (omovlstat) { + GWGameStat.story_continue = 0; + } + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_D14 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1B870(void) +{ + _SetFlag(9); + HuPrcChildCreate(fn_1_1B64C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_BC8(); + } while (lbl_1_bss_D14 != 1); + if (omovlstat == 0) { + omOvlGotoEx(OVL_MSTORY2, 1, 4, 0); + } + else { + omOvlReturnEx(omovlhisidx, 1); + } + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1B90C(Process *arg0) +{ + lbl_1_bss_D10 = arg0; + HuPrcChildCreate(fn_1_1B870, 100, 0x2000, 0, HuPrcCurrentGet()); +} diff --git a/src/REL/mstory3Dll/main.c b/src/REL/mstory3Dll/main.c new file mode 100755 index 00000000..c1e4f1bf --- /dev/null +++ b/src/REL/mstory3Dll/main.c @@ -0,0 +1,1044 @@ +#include "REL/mstory3Dll.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +u8 lbl_1_bss_48[0x10]; // unused +StructBss4 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E }, + { 0x3A, 0x3B, 0x3C, -1 } +}; + +char* lbl_1_data_A4[] = { + "S-1 : ALL STORY - BOARD RESULT EVENT", + "--- : RESULT" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + s32 var_r29; + s32 var_r30; + s32 var_r31; + + sp14 = 0; + var_r30 = 0; + var_r31 = 0; + sp10 = 1; + spC = 1; + sp8 = 1; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if (HuPadBtnDown[0] & PAD_BUTTON_DOWN) { + var_r30++; + if (var_r30 >= 2) { + var_r30 = 0; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_UP) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 1; + } + } + if (HuPadStkX[0] <= -30) { + var_r31++; + if (var_r31 > 6) { + var_r31 = 0; + } + } + if (HuPadStkX[0] >= 30) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 5; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 3 - EVENT SELECT <<<<<"); + print8(24, 130, 1.5f, "MAP NUMBER : %d", var_r31 + 1); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == var_r29) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 160 + var_r29 * 15, 1.5f, "%s", lbl_1_data_A4[var_r29]); + } + fn_1_938(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + GWSystem.board = var_r31; + switch (var_r30) { + case 0: + fn_1_6E34(lbl_1_bss_0, var_r31, 1, 0, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, var_r31, 0, 0); + break; + } + while (TRUE) { + fn_1_938(); + } +} + +#include "src/REL/executor.c" + +void fn_1_40C(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + switch (omovlevtno) { + case 0: + fn_1_6E34(lbl_1_bss_0, GWSystem.board, GWSystem.bonus_star, GWSystem.party, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, GWSystem.board, GWSystem.party, 0); + break; + } +} + +void ObjectSetup(void) { + fn_1_40C(); +} + +float fn_1_5D4(float arg8, float arg9, float argA, float argB) { + if (argB <= argA) { + return arg9; + } + return arg8 + (argA / argB) * (arg9 - arg8); +} + +float fn_1_5FC(float arg8, float arg9, float argA) { + return (arg9 + arg8 * (argA - 1.0f)) / argA; +} + +float fn_1_61C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_878(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_934(void) { +} + +void fn_1_938(void) { + HuPrcVSleep(); +} + +void fn_1_958(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_980(void) { + HuPrcEnd(); +} + +void fn_1_9A0(void) { + HuWinInit(1); +} + +void fn_1_9C4(void) { + HuWinAllKill(); +} + +void fn_1_9E4(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_6F4(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_6F4(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_6F4(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_6F4(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_6F4(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_6F4(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_6F4(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_6F4(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_142C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg8, float arg9, s32 arg4) { + s32 temp_r3; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } else { + arg1 = 445 - arg3; + } + temp_r3 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg4 != -1) { + if (GWSystem.party != 1) { + winData[temp_r3].active_pad = 1; + } else { + winData[temp_r3].active_pad = 0xF; + } + } else { + winData[temp_r3].active_pad = 0xFF; + } + fn_1_9E4(temp_r3, arg8, arg9, 1); + if (arg1 != 0) { + HuWinPriSet(temp_r3, 50); + } + return temp_r3; +} + +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_142C(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +s32 fn_1_1834(u32 arg0, s32 arg1) { + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 temp_r3; + + if (arg1 == 0) { + HuWinMesMaxSizeGet(1, sp8, arg0); + } + var_f31 = sp8[0]; + var_f30 = sp8[1]; + var_f29 = (576.0f - var_f31) / 2; + var_f28 = 445.0f - var_f30; + if (arg1 != 0) { + var_f31 = 352.0f; + var_f30 = 94.0f; + var_f29 = 550.0f - var_f31; + var_f28 = 445.0f - var_f30; + } + temp_r3 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg1 == 0) { + HuWinBGTPLvlSet(temp_r3, 0.0f); + HuWinMesSet(temp_r3, arg0); + HuWinMesSpeedSet(temp_r3, 0); + HuWinDispOn(temp_r3); + HuWinMesPalSet(temp_r3, 7, 0xFF, 0xFF, 0xFF); + } else { + HuWinPriSet(temp_r3, 50); + fn_1_9E4(temp_r3, 0.5f, 0.5f, 1); + HuWinMesSpeedSet(temp_r3, 0); + } + return temp_r3; +} + +void fn_1_1A24(s32 arg0) { + HuWinExCleanup(arg0); +} + +void fn_1_1A50(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_9E4(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1AB0(s32 arg0) { + fn_1_1A50(arg0, 0.5f, 0.5f); +} + +void fn_1_1B18(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +s32 fn_1_1BC4(s32 arg0, s32 arg1) { + s32 spC; + s32 temp_r31; + s32 var_r30; + + spC = 0; + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (var_r30 = 0; var_r30 < 10; var_r30++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + temp_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (temp_r31 != 0) { + temp_r31 = 0; + } else { + temp_r31 = 1; + } + return temp_r31; +} + +s32 fn_1_1C88(s32 arg0) { + return fn_1_1BC4(arg0, 0); +} + +void fn_1_1D44(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D78(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1DB8(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_1FA0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1FA0(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !(Hu3DMotionMaxTimeGet(arg0->model[arg1]) - 20.0f <= Hu3DMotionTimeGet(arg0->model[arg1]))); +} + +s32 fn_1_23D8(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_2420(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2474(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2834(void (*arg0)(void)) { + lbl_1_bss_4.unk00 = arg0; +} + +void fn_1_2844(void (*arg0)(void)) { + lbl_1_bss_4.unk04 = arg0; +} + +void fn_1_2854(omObjData* arg0) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_290C(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 1.0f, 2000.0f, 1.2f); + lbl_1_bss_4.unk00 = arg1; + lbl_1_bss_4.unk04 = fn_1_2474; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2854); +} + +void fn_1_2A2C(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_5FC(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_5D4(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_35C8(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_3650(StructFn352C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_36E4(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_373C(void) { + s32 var_r30; + s32 var_r31; + + var_r30 = 0; + do { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == GWPlayerCfg[var_r31].pad_idx) { + break; + } + } + if (!GWPlayerCfg[var_r31].iscom) { + break; + } + var_r30++; + } while (var_r30 != 5); + if (var_r30 == 5) { + return -1; + } + return var_r31; +} + +s32 fn_1_37C8(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_38B4(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_3978(StructBss4* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_39B4(StructBss4* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_39F8(StructBss4* arg0, StructBss4* arg1, float arg2) { + arg0->unk08.x = fn_1_5FC(arg0->unk08.x, arg1->unk14, arg2); + arg0->unk08.y = fn_1_5FC(arg0->unk08.y, arg1->unk18, arg2); + arg0->unk08.z = fn_1_5FC(arg0->unk08.z, arg1->unk1C, arg2); + arg0->unk20.x = fn_1_5FC(arg0->unk20.x, arg1->unk2C, arg2); + arg0->unk20.y = fn_1_5FC(arg0->unk20.y, arg1->unk30, arg2); + arg0->unk20.z = fn_1_5FC(arg0->unk20.z, arg1->unk34, arg2); + arg0->unk38 = fn_1_5FC(arg0->unk38, arg1->unk3C, arg2); +} + +void fn_1_3C64(StructBss4* arg0, float arg1) { + fn_1_39F8(arg0, arg0, arg1); +} + +void fn_1_3ED0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_5D4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_5D4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_5D4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_5D4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_5D4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_5D4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_5D4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_414C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_486C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_6F4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_6F4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_6F4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_6F4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_6F4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_6F4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_6F4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_486C(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_486C(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_57A4(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_61C(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_61C(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_61C(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_61C(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_61C(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_61C(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_61C(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5C68(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_57A4(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_6164(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_57A4(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_682C(omObjData* arg0) { + s32 var_r30; + + if (arg0->work[0] == 0) { + return; + } + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, HU3D_MOTATTR_LOOP); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_68F0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1E28(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6A78(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_6AAC(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_6AEC(s32 arg0, s32 arg1) { + fn_1_1B18(arg0, arg1); +} + +void fn_1_6B98(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_6AEC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6D80(s32 arg0) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, 0); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} diff --git a/src/REL/mstory3Dll/result.c b/src/REL/mstory3Dll/result.c new file mode 100755 index 00000000..737f8b8f --- /dev/null +++ b/src/REL/mstory3Dll/result.c @@ -0,0 +1,1620 @@ +#include "REL/mstory3Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; + /* 0x34 */ s32 unk34[4][2]; + /* 0x54 */ s32 unk54; + /* 0x58 */ char unk58[4]; + /* 0x5C */ s32 unk5C; + /* 0x60 */ char unk60[4]; + /* 0x64 */ s32 unk64; + /* 0x68 */ char unk68[4]; + /* 0x6C */ s32 unk6C; + /* 0x70 */ char unk70[4]; + /* 0x74 */ s32 unk74; + /* 0x78 */ char unk78[4]; + /* 0x7C */ s32 unk7C; + /* 0x80 */ char unk80[4]; + /* 0x84 */ s32 unk84; + /* 0x88 */ char unk88[4]; + /* 0x8C */ s32 unk8C; + /* 0x90 */ char unk90[4]; +} StructUnk38Bss1A0C; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ char unk1C[8]; + /* 0x024 */ s32 unk24; + /* 0x028 */ char unk28[0x10]; + /* 0x038 */ StructUnk38Bss1A0C unk38[4]; + /* 0x288 */ Vec unk288[5]; + /* 0x2C4 */ s32 unk2C4; + /* 0x2C8 */ s32 unk2C8; + /* 0x2CC */ s32 unk2CC; + /* 0x2D0 */ s32 unk2D0; + /* 0x2D4 */ s32 unk2D4; +} StructBss1A0C; // Size 0x2D8 + +void fn_1_15C0C(void); +void fn_1_16ED4(void); +void fn_1_18080(void); +void fn_1_184E8(void); +void fn_1_18558(void); +void fn_1_18F98(void); +void fn_1_19144(void); +void fn_1_19214(void); +void fn_1_194A0(void); +void fn_1_197B4(s32 arg0); +void fn_1_1C2F4(void); +void fn_1_1C460(void); +void fn_1_1CA98(void); +void fn_1_1CB7C(void); +void fn_1_1CC5C(void); +void fn_1_1CD60(void); +void fn_1_1D63C(void); +void fn_1_1D77C(void); +void fn_1_1D964(void); +void fn_1_1DA64(void); +void fn_1_1DAAC(void); +void fn_1_1DE4C(void); + +StructBss1A0C lbl_1_bss_1A0C; +StructBss1530 lbl_1_bss_19E4; +StructBss1530 lbl_1_bss_19BC; +StructBss1530 lbl_1_bss_1994; +StructBss1530 lbl_1_bss_18F4[4]; +AnimData* lbl_1_bss_18EC[2]; +AnimData* lbl_1_bss_18E4[2]; +AnimData* lbl_1_bss_18D8[3]; +s32 lbl_1_bss_18D4; +Process* lbl_1_bss_18D0; + +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r31; + + lbl_1_bss_18D0 = arg0; + lbl_1_bss_1A0C.unk00 = arg1; + lbl_1_bss_1A0C.unk08 = GWSystem.max_turn; + arg3 = lbl_1_bss_1A0C.unk14 = fn_1_373C(); + lbl_1_bss_1A0C.unk2D4 = arg2; + lbl_1_bss_1A0C.unk2CC = GWSystem.team; + if (_CheckFlag(FLAG_ID_MAKE(1, 29))) { + lbl_1_bss_1A0C.unk2D0 = 0; + } else { + lbl_1_bss_1A0C.unk2D0 = 1; + } + fn_1_9A0(); + fn_1_37C8(0xFF); + fn_1_290C(lbl_1_bss_18D0, fn_1_1DE4C); + fn_1_15C0C(); + fn_1_197B4(arg3); + fn_1_194A0(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_1CC5C, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_19214, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1DAAC, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_18080, 90, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_159A4(void) { + s32 var_r29; + s32 var_r30; + s32 i; + + for (i = 0; i < 4; i++) { + var_r29 = GWPlayer[i].stars - GWPlayerHandicapGet(i); + if (var_r29 <= 0) { + var_r29 = 0; + } + GWTotalStarsAdd(var_r29); + } + GWBoardPlayCountAdd(lbl_1_bss_1A0C.unk00, 1); + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + if (lbl_1_bss_1A0C.unk38[1].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[1].unk10, lbl_1_bss_1A0C.unk00); + } + } else if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + for (i = 0; i < 4; i++) { + var_r30 = GWPlayer[i].stars_max - GWPlayerHandicapGet(i); + if (var_r30 <= 0) { + var_r30 = 0; + } + if (GWBoardMaxStarsGet(lbl_1_bss_1A0C.unk00) <= var_r30 && !GWPlayer[i].com) { + GWBoardMaxStarsSet(lbl_1_bss_1A0C.unk00, var_r30); + } + } + for (i = 0; i < 4; i++) { + if (GWBoardMaxCoinsGet(lbl_1_bss_1A0C.unk00) <= GWPlayer[i].coins_max && !GWPlayer[i].com) { + GWBoardMaxCoinsSet(lbl_1_bss_1A0C.unk00, GWPlayer[i].coins_max); + } + } +} + +void fn_1_15C0C(void) { + lbl_1_bss_18EC[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 95), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18EC[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 96), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 93), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 94), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 97), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 136), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 137), MEMORY_DEFAULT_NUM)); +} + +void fn_1_15D08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { + HuSprPosSet(arg0, arg1, arg2 + arg4 / 2, arg3 + arg5 / 2); +} + +void fn_1_15DC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { + s32 var_r31; + s32 temp_r28; + + var_r31 = 0; + if (arg7 < 2) { + if ((temp_r28 = arg2 / 100) == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + } else { + arg1--; + } + if ((temp_r28 = (arg2 % 100) / 10) == 0 && arg2 / 100 == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + temp_r28 = arg2 % 10; + HuSprBankSet(arg0, arg1 + 2, temp_r28); + fn_1_15D08(arg0, arg1 + 2, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; +} + +void fn_1_161B8(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 150, &sp10); + if (lbl_1_bss_19E4.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_19BC.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1994.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_18F4[i].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1A0C.unk00, lbl_1_bss_1A0C.unk04, lbl_1_bss_1A0C.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_1A0C.unk38[i].unk00, lbl_1_bss_1A0C.unk38[i].unk04, lbl_1_bss_1A0C.unk38[i].unk08, + lbl_1_bss_1A0C.unk38[i].unk0C, lbl_1_bss_1A0C.unk38[i].unk14, lbl_1_bss_1A0C.unk38[i].unk10); + } + } +} + +void fn_1_16574(void) { + fn_1_958(30); + fn_1_16ED4(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + fn_1_958(60); +} + +void fn_1_165C8(void) { + s32 sp8[5]; + s32 i; + + for (i = 0; i < 5; i++) { + sp8[i] = 0; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 2, 0, 1); + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = -90.0f; + } + do { + fn_1_938(); + for (i = 0; i < 5; i++) { + if (sp8[i] == 0) { + lbl_1_bss_1A0C.unk288[i].x -= 5.0f; + if (i == 0) { + if (lbl_1_bss_1A0C.unk288[i].x <= -175.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } else { + if (lbl_1_bss_1A0C.unk288[i].x <= -240.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -240.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } + } else if (sp8[i] == 1) { + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y, 17.5f, 10.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y >= 14.9f) { + sp8[i] = 2; + } + } + } + for (i = 0; i < 5; i++) { + if (sp8[i] != 2) { + break; + } + } + } while (i != 5); + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +s32 fn_1_16924(void) { + s32 var_r31; + s32 var_r30; + + var_r31 = 0; + var_r30 = 0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk14 != -1) { + if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_A) { + HuAudFXPlay(0x1C); + break; + } else if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_MENU) { + HuAudFXPlay(1); + var_r31 = 1; + break; + } + } else if (var_r30++ >= 300) { + var_r31 = 1; + break; + } + } + if (var_r31 == 0) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk0C); + fn_1_1C460(); + fn_1_1CA98(); + fn_1_18558(); + fn_1_18F98(); + fn_1_1D77C(); + fn_1_1D964(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk10 = fn_1_1834(-1, 1); + } +} + +void fn_1_16AD4(void) { + lbl_1_bss_1A0C.unk24 = 1; + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk24++ > 5 && (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + break; + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] >= 5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_RIGHT)) { + if (lbl_1_bss_1A0C.unk2C8 != 11) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4++; + if (lbl_1_bss_1A0C.unk2C4 >= 6) { + lbl_1_bss_1A0C.unk2C4 = 5; + } + lbl_1_bss_1A0C.unk2C8++; + if (lbl_1_bss_1A0C.unk2C8 >= 12) { + lbl_1_bss_1A0C.unk2C8 = 11; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] <= -5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_LEFT)) { + if (lbl_1_bss_1A0C.unk2C8 != 0) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4--; + if (lbl_1_bss_1A0C.unk2C4 < 0) { + lbl_1_bss_1A0C.unk2C4 = 0; + } + lbl_1_bss_1A0C.unk2C8--; + if (lbl_1_bss_1A0C.unk2C8 < 0) { + lbl_1_bss_1A0C.unk2C8 = 0; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk10); + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +void fn_1_16ED4(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 5; i++) { + if (i == 0) { + lbl_1_bss_1A0C.unk288[i].x = 1800.0f; + lbl_1_bss_1A0C.unk288[i].y = 157.5f; + } else if (lbl_1_bss_1A0C.unk2CC == 1) { + if (i <= 2) { + var_r30 = 0; + } else { + var_r30 = 2; + } + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * var_r30; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } else { + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * i; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } + } + lbl_1_bss_1A0C.unk2C4 = 0; + lbl_1_bss_1A0C.unk2C8 = 0; + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); +} + +void fn_1_1712C(void) { + s32 temp_r3; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + saveExecF = 0; + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + temp_r3 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(temp_r3, 288.0f, 240.0f); + espAttrReset(temp_r3, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_159A4(); + if (saveExecF == 1) { + GWGameStat.party_continue = 0; + } + SLCommonSet(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + saveExecF = 0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1728C(void) { + float sp8[2]; + s32 temp_r30 = 1; + s32 var_r29; + s32 var_r31; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + espPosSet(var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0), 288.0f, 240.0f); + espAttrReset(var_r29, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_17484(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_17570(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + lbl_1_bss_19E4.unk04 = NULL; + lbl_1_bss_19BC.unk04 = NULL; + lbl_1_bss_1994.unk04 = NULL; + for (i = 0; i < 4; i++) { + lbl_1_bss_18F4[i].unk04 = NULL; + } + if (GWPartyGet() == 1) { + HuPrcChildCreate(fn_1_1712C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + fn_1_958(30); + omOvlReturnEx(1, 1); + } else { + fn_1_159A4(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1A0C.unk38[i].unk10 != GWStoryCharGet()) { + continue; + } + _SetFlag(9); + switch (lbl_1_bss_1A0C.unk00) { + case 0: + if (_CheckFlag(2) == 0) { + _SetFlag(2); + var_r30 = 1; + } + break; + case 1: + if (_CheckFlag(3) == 0) { + _SetFlag(3); + var_r30 = 1; + } + break; + case 2: + if (_CheckFlag(4) == 0) { + _SetFlag(4); + var_r30 = 1; + } + break; + case 3: + if (_CheckFlag(5) == 0) { + _SetFlag(5); + var_r30 = 1; + } + break; + case 4: + if (_CheckFlag(6) == 0) { + _SetFlag(6); + var_r30 = 1; + } + break; + case 5: + if (_CheckFlag(7) == 0) { + _SetFlag(7); + var_r30 = 1; + } + break; + } + if (var_r30 == 1) { + if (lbl_1_bss_1A0C.unk38[i].unk18 == 0) { + if (lbl_1_bss_1A0C.unk00 == 5) { + GWGameStat.open_w06 = 1; + } + _ClearFlag(9); + OSReport("########## Next to BoardClear Event 10 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, _CheckFlag(2), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 0, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 1, 0); + } + } else { + switch (lbl_1_bss_1A0C.unk00) { + case 0: + _ClearFlag(2); + break; + case 1: + _ClearFlag(3); + break; + case 2: + _ClearFlag(4); + break; + case 3: + _ClearFlag(5); + break; + case 4: + _ClearFlag(6); + break; + case 5: + _ClearFlag(7); + break; + } + OSReport("########## Next to BoardMiss Event 01 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 1, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 2, 0); + } + } + } else { + GWPlayerCfg->group = 0; + GWPlayerCfg->character = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk10; + GWPlayerCfg->pad_idx = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + } + } + while (TRUE) { + fn_1_938(); + } +} + +void fn_1_17DC0(omObjData* arg0, StructBss1530* arg1) { + fn_1_16574(); + fn_1_165C8(); + while (TRUE) { + fn_1_938(); + if (fn_1_16924() != 0) { + break; + } + fn_1_16AD4(); + } + fn_1_17570(); + arg1->unk04 = 0; +} + +void fn_1_18080(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19E4.unk00 = temp_r3; + lbl_1_bss_19E4.unk04 = (void*) fn_1_17DC0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19E4.unk04 != NULL) { + lbl_1_bss_19E4.unk04(temp_r3, &lbl_1_bss_19E4); + } + } +} + +void fn_1_1811C(omObjData* arg0, s32 arg1) { + s32 var_r29; + s32 i; + + arg0->work[0] = HuSprGrpCreate(1); + var_r29 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 75) + arg1, MEMORY_DEFAULT_NUM)), 1000, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r29); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[0], 0, 288, 240, 0, 0); + HuSprGrpPosSet(arg0->work[0], 0.0f, 0.0f); + HuSprGrpDrawNoSet(arg0->work[0], 0x7F); + { + s32 spC[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 104), + DATA_MAKE_NUM(DATADIR_MSTORY3, 105), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106), + DATA_MAKE_NUM(DATADIR_MSTORY3, 107), + DATA_MAKE_NUM(DATADIR_MSTORY3, 108), + DATA_MAKE_NUM(DATADIR_MSTORY3, 109), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106) + }; + + for (i = 0; i < 7; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(spC[i]); + Hu3DModelPosSet(arg0->model[i + 1], -122.5 + 42.5 * i, 185.0f, -10.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 1980.0f, 0.0f); + } + } +} + +void fn_1_18334(omObjData* arg0, s32* arg1) { + s32 sp8 = 0; + s32 i; + + for (i = 0; i < 7; i++) { + if (arg1[2] == 0 && Hu3DData[arg0->model[i + 1]].pos.x >= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 0.0f, 20.0f); + } else if (arg1[2] == 1 && Hu3DData[arg0->model[i + 1]].pos.x <= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 1980.0f, 20.0f); + } + } +} + +void fn_1_184E8(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrReset(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18334; +} + +void fn_1_18558(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrSet(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + for (i = 0; i < 7; i++) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 1980.0f; + } else { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 0.0f; + } + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_18668(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 i; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + arg0->work[1] = HuSprGrpCreate(8); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 116), MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r30); + fn_1_15D08(arg0->work[1], 0, 368, 171, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 117), MEMORY_DEFAULT_NUM)), 600, 0); + HuSprGrpMemberSet(arg0->work[1], 1, var_r30); + fn_1_15D08(arg0->work[1], 1, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 118), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 2, var_r30); + fn_1_15D08(arg0->work[1], 2, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 119), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 3, var_r30); + fn_1_15D08(arg0->work[1], 3, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(arg1 + DATA_MAKE_NUM(DATADIR_MSTORY3, 110), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 4, var_r30); + fn_1_15D08(arg0->work[1], 4, 96, 53, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 138), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 5, var_r30); + fn_1_15D08(arg0->work[1], 5, 407, 37, 0, 0); + for (i = 0; i < 2; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 139), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], i + 6, var_r30); + } + // TODO: figure out the actual value of arg7. It will match as long as arg7 >= 2. + fn_1_15DC8(arg0->work[1], 6, lbl_1_bss_1A0C.unk08, 293, 19, 36, 36, 2); + arg0->work[2] = HuSprGrpCreate(2); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 120), MEMORY_DEFAULT_NUM)), 800, 0); + HuSprGrpMemberSet(arg0->work[2], 0, var_r30); + fn_1_15D08(arg0->work[2], 0, 34, 119, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 121), MEMORY_DEFAULT_NUM)), 400, 0); + HuSprGrpMemberSet(arg0->work[2], 1, var_r30); + fn_1_15D08(arg0->work[2], 1, 36, 121, 0, 0); + arg0->work[3] = HuSprGrpCreate(12); + for (i = 0; i < 12; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(i + DATA_MAKE_NUM(DATADIR_MSTORY3, 124), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[3], i, var_r30); + fn_1_15D08(arg0->work[3], i, i * 66, 16, 58, 0); + } + HuSprGrpPosSet(arg0->work[2], 164 + lbl_1_bss_1A0C.unk2C4 * 66, 78.0f); + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); + HuSprGrpDrawNoSet(arg0->work[3], 0x7F); +} + +void fn_1_18CFC(omObjData* arg0) { + float temp_f31; + float var_f30; + s32 var_r29; + s32 var_r28; + s32 var_r30; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + temp_f31 = HuSprGrpData[arg0->work[2]].x; + var_f30 = 164 + lbl_1_bss_1A0C.unk2C4 * 66; + temp_f31 = fn_1_5FC(temp_f31, var_f30, 2.0f); + HuSprGrpPosSet(arg0->work[1], -5.0f, 25.0f); + HuSprGrpPosSet(arg0->work[2], temp_f31, 78.0f); + HuSprGrpPosSet(arg0->work[3], 169 - var_r28 * 66, 82.0f); + for (var_r30 = 0; var_r30 < 12; var_r30++) { + if (var_r30 < var_r28 || var_r30 > var_r28 + 5) { + HuSprAttrSet(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } + } + var_r29 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r29 < 0) { + var_r29 = 0; + } + if (var_r29 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r29 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r29 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r29 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } +} + +void fn_1_18F98(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + var_r30 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r30 < 0) { + var_r30 = 0; + } + if (var_r30 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r30 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r30 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r30 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18CFC; +} + +void fn_1_19144(void) { + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_19214(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19BC.unk00 = temp_r3; + lbl_1_bss_19BC.unk04 = NULL; + fn_1_1811C(temp_r3, lbl_1_bss_1A0C.unk00); + fn_1_18668(temp_r3, lbl_1_bss_1A0C.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19BC.unk04 != NULL) { + lbl_1_bss_19BC.unk04(temp_r3, &lbl_1_bss_19BC); + } + } +} + +void fn_1_194A0(void) { + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 12; i++) { + var_r29 = 0; + for (j = 0; j < 4; j++) { + if (var_r29 <= lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + var_r29 = lbl_1_bss_1A0C.unk38[j].unk34[i][0]; + } + } + if (var_r29 > 0) { + for (j = 0; j < 4; j++) { + if (var_r29 == lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + lbl_1_bss_1A0C.unk38[j].unk34[i][1] = 1; + } + } + } + } +} + +void fn_1_19590(StructUnk38Bss1A0C* arg0, s32 arg1, s32 arg2) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; + arg0->unk18 = GWPlayer[arg0->unk00].rank; + arg0->unk34[0][0] = GWPlayer[arg0->unk00].stars; + arg0->unk34[1][0] = GWPlayer[arg0->unk00].coins; + arg0->unk34[2][0] = GWPlayer[arg0->unk00].coins_mg; + arg0->unk34[3][0] = GWPlayer[arg0->unk00].coins_max; + arg0->unk54 = GWPlayer[arg0->unk00].blue_count; + arg0->unk5C = GWPlayer[arg0->unk00].red_count; + arg0->unk64 = GWPlayer[arg0->unk00].question_count; + arg0->unk6C = GWPlayer[arg0->unk00].fortune_count; + arg0->unk74 = GWPlayer[arg0->unk00].bowser_count; + arg0->unk7C = GWPlayer[arg0->unk00].battle_count; + arg0->unk84 = GWPlayer[arg0->unk00].mushroom_count; + arg0->unk8C = GWPlayer[arg0->unk00].warp_count; +} + +void fn_1_197B4(s32 arg0) { + s32 sp74[4][2]; + s32 sp54[4][2]; + s32 sp44[4]; + s32 sp34[4]; + s32 sp24[4]; + s32 var_r28; + s32 var_r29; + s32 j; + s32 i; + + var_r28 = 0; + sp44[0] = 0; + for (i = 1; i < 4; i++) { + sp44[i] = sp44[i - 1] + 1; + if (sp44[i] >= 4) { + sp44[i] = 0; + } + } + for (i = 0; i < 4; i++) { + sp34[i] = GWPlayer[sp44[i]].rank; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == sp34[j]) { + sp74[var_r28][0] = sp44[j]; + sp74[var_r28][1] = sp34[j]; + var_r28++; + } + } + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + var_r29 = lbl_1_bss_1A0C.unk2D0; + for (i = 0; i < 4; i++) { + sp24[0] = GWPlayer[sp74[0][0]].team; + sp24[1] = GWPlayer[sp74[1][0]].team; + sp24[2] = GWPlayer[sp74[2][0]].team; + sp24[3] = GWPlayer[sp74[3][0]].team; + sp54[i][0] = sp74[i][0]; + sp54[i][1] = sp74[i][1]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d,%d), (%d,%d,%d), (%d,%d,%d), (%d,%d,%d)\n", var_r29, + sp24[0], sp74[0][0], sp74[0][1], sp24[1], sp74[1][0], sp74[1][1], + sp24[2], sp74[2][0], sp74[2][1], sp24[3], sp74[3][0], sp74[3][1]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp24[j] != -1 && var_r29 == sp24[j]) { + sp24[j] = -1; + sp74[i][0] = sp54[j][0]; + sp74[i][1] = sp54[j][1]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp74[0][0], sp74[1][0], sp74[2][0], sp74[3][0]); + OSReport("########## Sort End RANK %d, %d, %d, %d,\n", sp74[0][1], sp74[1][1], sp74[2][1], sp74[3][1]); + } + for (i = 0; i < 4; i++) { + fn_1_19590(&lbl_1_bss_1A0C.unk38[i], sp74[i][0], sp74[i][1]); + if (arg0 == sp74[i][0]) { + lbl_1_bss_1A0C.unk04 = i; + } + } +} + +void fn_1_1A008(omObjData* arg0, s32 arg1) { + s32 spDC; + s32 spD8; + s32 spD4; + s32 spD0; + s32 spCC; + s32 spC8; + StructUnk38Bss1A0C* temp_r27; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + temp_r27 = &lbl_1_bss_1A0C.unk38[arg1]; + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD4 = lbl_1_bss_1A0C.unk2D0; + if (arg1 > 1) { + spD4++; + spD4 %= 2; + } + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 140) + spD4); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 142) + spD4); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + if (arg1 <= 1) { + spD4 = 0; + } else { + spD4 = 1; + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + spD4); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 98)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 99)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + temp_r27->unk18); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } + arg0->work[0] = HuSprGrpCreate(12); + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD0 = 35; + spCC = 10; + spC8 = 65; + if (arg1 <= 1) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81), MEMORY_DEFAULT_NUM)), 900, 0); + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 82), MEMORY_DEFAULT_NUM)), 900, 0); + } + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 40, spD0 + 36, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + if (arg1 % 2 == 0) { + fn_1_15D08(arg0->work[0], 1, 119, spD0 + 34, 0, 0); + } else { + fn_1_15D08(arg0->work[0], 1, 189, -spD0 + 24, 0, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 262, spCC + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 312, spCC + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 4, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 262, spC8 + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 312, spC8 + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81) + temp_r27->unk18, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 25, 37, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + fn_1_15D08(arg0->work[0], 1, 87, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 144, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 178, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[0][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], (var_r28 + 4), var_r30); + } + fn_1_15DC8(arg0->work[0], 4, temp_r27->unk34[0][0], 190, 11, 26, 36, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 304, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 338, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[1][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + fn_1_15DC8(arg0->work[0], 9, temp_r27->unk34[1][0], 350, 11, 26, 36, 0); + } + lbl_1_bss_18F4[var_r28].unk14 = 1000 + rand8() * 5; +} + +void fn_1_1BEFC(omObjData* arg0, StructBss1530* arg1) { + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r29; + + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (arg1->unk08 % 2 == 1) { + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 12; var_r29++) { + HuSprAttrSet(arg0->work[0], var_r29, 4); + } + } + HuSprAttrReset(arg0->work[0], 1, HUSPR_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f - 35.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } else { + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } + if (Hu3DData[arg0->model[1]].pos.x <= -195.0f) { + Hu3DData[arg0->model[1]].pos.x = -195.0f; + } + Hu3DModelObjMtxGet(arg0->model[1], "results_flag04-hook_flag", sp2C); + Hu3DModelPosSet(arg0->model[2], sp2C[0][3], sp2C[1][3], sp2C[2][3]); + if (arg1->unk0C++ >= arg1->unk14) { + arg1->unk0C = 0; + arg1->unk14 = rand8() * 5 + 1000; + fn_1_1E28(arg0, 2, 2, 0, 0); + } + Hu3DModelRotSet(arg0->model[3], 0.0f, arg1->unk10 += 3, 0.0f); + if (arg1->unk10 >= 360) { + arg1->unk10 -= 360; + } + sp8.x = Hu3DData[arg0->model[1]].pos.x; + sp8.y = lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f; + sp8.z = Hu3DData[arg0->model[1]].pos.z; + sp20.x = sp8.x + 24.0f; + sp20.y = sp8.y + 40.0f; + sp20.z = sp8.z; + Hu3D3Dto2D(&sp20, 1, &sp14); + HuSprGrpPosSet(arg0->work[0], sp14.x, sp14.y); +} + +void fn_1_1C2F4(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (var_r30 % 2 == 0) { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], 1, HUSPR_ATTR_DISPOFF); + } else { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[var_r30].unk04 = (void*) fn_1_1BEFC; + } +} + +void fn_1_1C460(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrSet(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_18F4[var_r30].unk04 = NULL; + } +} + +void fn_1_1C534(omObjData* arg0, s32 arg1) { + StructUnk38Bss1A0C* temp_r25; + s32 var_r22; + s32 i; + s32 j; + + temp_r25 = &lbl_1_bss_1A0C.unk38[arg1]; + arg0->work[1] = HuSprGrpCreate(1); + var_r22 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 122), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r22); + HuSprBankSet(arg0->work[1], 0, temp_r25->unk10); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[1], 0, 66, 21, 0, 0); + arg0->work[2] = HuSprGrpCreate(0x24); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + var_r22 = HuSprCreate(lbl_1_bss_18E4[temp_r25->unk34[i][1]], 700, 0); + HuSprGrpMemberSet(arg0->work[2], j + i * 3, var_r22); + } + fn_1_15DC8(arg0->work[2], i * 3, temp_r25->unk34[i][0], i * 66, 0, 20, 32, 1); + } + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); +} + +void fn_1_1C914(omObjData* arg0, StructBss1530* arg1) { + s32 i; + s32 j; + s32 var_r28; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + HuSprGrpPosSet(arg0->work[1], 17.0f, arg1->unk08 * 48 + 118); + HuSprGrpPosSet(arg0->work[2], 169 - var_r28 * 66, arg1->unk08 * 48 + 123); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + if (i < var_r28 || i > var_r28 + 5) { + HuSprAttrSet(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } + } + } +} + +void fn_1_1CA98(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = (void*) fn_1_1C914; + } +} + +void fn_1_1CB7C(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = NULL; + } +} + +void fn_1_1CC5C(void) { + omObjData* temp_r3; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1A0C.unk18++; + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_18F4[temp_r31].unk00 = temp_r3; + lbl_1_bss_18F4[temp_r31].unk04 = NULL; + lbl_1_bss_18F4[temp_r31].unk08 = temp_r31; + fn_1_1A008(temp_r3, temp_r31); + fn_1_1C534(temp_r3, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_18F4[temp_r31].unk04 != NULL) { + lbl_1_bss_18F4[temp_r31].unk04(temp_r3, &lbl_1_bss_18F4[temp_r31]); + } + } +} + +void fn_1_1CD60(void) { + if (lbl_1_bss_1994.unk00->work[0] != 1) { + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 6, 15, 0); + lbl_1_bss_1994.unk00->work[0] = 1; + lbl_1_bss_1994.unk00->work[1] = 4; + lbl_1_bss_1994.unk00->work[2] = 16; + } +} + +void fn_1_1CDF0(omObjData* arg0) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64) + }; + s32 sp34[][3] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 47), DATA_MAKE_NUM(DATADIR_MSTORY3, 48), DATA_MAKE_NUM(DATADIR_MSTORY3, 49) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 41), DATA_MAKE_NUM(DATADIR_MSTORY3, 42), DATA_MAKE_NUM(DATADIR_MSTORY3, 43) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 53), DATA_MAKE_NUM(DATADIR_MSTORY3, 54), DATA_MAKE_NUM(DATADIR_MSTORY3, 55) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 59), DATA_MAKE_NUM(DATADIR_MSTORY3, 60), DATA_MAKE_NUM(DATADIR_MSTORY3, 61) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 65), DATA_MAKE_NUM(DATADIR_MSTORY3, 66), DATA_MAKE_NUM(DATADIR_MSTORY3, 67) } + }; + s32 i; + + for (i = 0; i < 5; i++) { + arg0->model[i * 3 + 1] = Hu3DModelCreateFile(sp20[i]); + arg0->motion[i * 3 + 1] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][0]); + arg0->motion[i * 3 + 2] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][1]); + arg0->motion[i * 3 + 3] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][2]); + Hu3DModelRotSet(arg0->model[i * 3 + 1], 17.5f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i * 3 + 1], 0.575f, 0.575f, 0.575f); + fn_1_1E28(arg0, i * 3 + 1, i * 3 + 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (i != 3) { + CharModelEffectNpcInit(arg0->model[i * 3 + 1], arg0->motion[i * 3 + 2], 1, sp8[i]); + CharModelEffectEnableSet(sp8[i], 0); + } + } + } +} + +void fn_1_1D124(omObjData* arg0, StructBss1530* arg1) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->model[i * 3 + 1], lbl_1_bss_1A0C.unk288[i].x, lbl_1_bss_1A0C.unk288[i].y, lbl_1_bss_1A0C.unk288[i].z); + if (i == 3) { + Hu3DData[arg0->model[i * 3 + 1]].pos.y += 20.0f; + } + } + if (arg1->unk08++ >= 3000) { + arg1->unk08 = 0; + arg1->unk0C = 1; + lbl_1_bss_19BC.unk08++; + lbl_1_bss_19BC.unk08 %= 2; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 2, 15, 1); + } + if (arg1->unk0C == 1) { + lbl_1_bss_1A0C.unk288[0].x += -5.0f + 10.0f * lbl_1_bss_19BC.unk08; + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x >= 185.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x <= -175.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } + } else if (arg1->unk0C == 2) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y <= -14.9f) { + arg1->unk0C = 0; + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y >= 14.9f) { + arg1->unk0C = 0; + } + } + } +} + +void fn_1_1D63C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[(i * 3) + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 17.5f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 0.575f, 0.575f, 0.575f); + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 4, 0, 1); + lbl_1_bss_1994.unk00->work[0] = lbl_1_bss_1994.unk00->work[1] = lbl_1_bss_1994.unk00->work[2] = 0; + lbl_1_bss_1994.unk04 = (void*) fn_1_1D124; +} + +void fn_1_1D77C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[i * 3 + 1], HU3D_ATTR_DISPOFF); + } + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 0, 1); + if (lbl_1_bss_19BC.unk08 != 0) { + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = -15.0f; + } else { + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = 15.0f; + } + lbl_1_bss_1994.unk0C = 0; + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1D8CC(omObjData* arg0, StructBss1530* arg1) { + if (arg0->work[0] != 0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[4])) { + fn_1_1E28(arg0, 4, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } + } +} + +void fn_1_1D964(void) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_1994.unk00->model[4], -185.0f, -225.0f, 0.0f); + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 0.0f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 1.0f, 1.0f, 1.0f); + lbl_1_bss_1994.unk04 = (void*) fn_1_1D8CC; +} + +void fn_1_1DA64(void) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1DAAC(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1994.unk00 = temp_r3; + lbl_1_bss_1994.unk04 = NULL; + fn_1_1CDF0(temp_r3); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1994.unk04 != NULL) { + lbl_1_bss_1994.unk04(temp_r3, &lbl_1_bss_1994); + } + } +} + +void fn_1_1DE4C(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 0.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = 0.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 650.0f; +} diff --git a/src/REL/mstory3Dll/result_seq.c b/src/REL/mstory3Dll/result_seq.c new file mode 100755 index 00000000..b4aa06c9 --- /dev/null +++ b/src/REL/mstory3Dll/result_seq.c @@ -0,0 +1,2928 @@ +#include "REL/mstory3Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "msm/msmse.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; +} StructUnk24Bss1580; // Size 0x14 + +typedef struct { + /* 0x00 */ StructFn352C unk00; + /* 0x34 */ char unk34[0x60]; +} StructUnkC4Bss1580; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ StructUnk24Bss1580 unk24[4]; + /* 0x074 */ char unk74[0x50]; + /* 0x0C4 */ StructUnkC4Bss1580 unkC4[4]; + /* 0x314 */ s32 unk314; + /* 0x318 */ char unk318[0xC]; + /* 0x324 */ s32 unk324; + /* 0x328 */ char unk328[0xC]; + /* 0x334 */ s32 unk334[1]; // array length unknown + /* 0x338 */ char unk338[0xC]; + /* 0x344 */ s32 unk344; + /* 0x348 */ s32 unk348; + /* 0x34C */ char unk34C[4]; +} StructBss1580; // Size 0x350 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[4]; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; +} StructBssC8; // Size 0x38 + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_82E0(void); +s32 fn_1_B670(void); +void fn_1_D48C(void); +void fn_1_D718(omObjData* arg0); +void fn_1_D7D8(omObjData* arg0); +void fn_1_FE80(void); +void fn_1_FF7C(s32 arg0); +void fn_1_1036C(omObjData* arg0); +void fn_1_10D74(omObjData* arg0); +void fn_1_11794(omObjData* arg0); +void fn_1_11834(omObjData* arg0); +void fn_1_123D8(omObjData* arg0); +void fn_1_1241C(omObjData* arg0); +void fn_1_12420(omObjData* arg0); +void fn_1_12A98(s32 arg0); +void fn_1_12C08(s32 arg0); +void fn_1_12DAC(void); +void fn_1_13908(void); +void fn_1_130A8(void); +void fn_1_1317C(void); +void fn_1_13A38(omObjData* arg0); +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2); +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2); +void fn_1_140A0(void); +void fn_1_15450(s32 arg0); + +StructBss1580 lbl_1_bss_1580; +StructBss1530 lbl_1_bss_1558; +StructBss1530 lbl_1_bss_1530; +StructBss1530 lbl_1_bss_1490[4]; +StructBss1530 lbl_1_bss_1468; +s32 lbl_1_bss_1458[4]; +s32 lbl_1_bss_1448[4]; +s32 lbl_1_bss_1438[4]; +s32 lbl_1_bss_1428[4]; +float lbl_1_bss_1424; +s32 lbl_1_bss_1420; +float lbl_1_bss_1408[3][2]; +StructBssC8 lbl_1_bss_C8[88]; +float lbl_1_bss_C4; +float lbl_1_bss_C0; +float lbl_1_bss_BC; +s32 lbl_1_bss_B8; +s32 lbl_1_bss_B4; +float lbl_1_bss_B0; +float lbl_1_bss_AC; +Process* lbl_1_bss_A8; +s32 lbl_1_bss_68[16]; +u8 lbl_1_bss_5C[0xC]; // unused +s32 lbl_1_bss_58; + +Vec lbl_1_data_130[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, 0.0f, 460.0f }, + { 100.0f, 0.0f, 460.0f }, + { 300.0f, 0.0f, 460.0f } +}; + +HsfanimStruct00 lbl_1_data_160 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_1B0 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_200 = { + 500, { 0, 0 }, + 0.25f, 0.0f, 30.0f, + { 0.0f, -0.009f, 0.001f }, + 30.0f, 0.9f, 20.0f, 0.999f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 var_r31; + + lbl_1_bss_A8 = arg0; + lbl_1_bss_1580.unk00 = arg1; + lbl_1_bss_1580.unk04 = arg2; + if (arg3 == 1) { + lbl_1_bss_1580.unk08 = 0; + } else { + lbl_1_bss_1580.unk08 = 1; + lbl_1_bss_1580.unk04 = 1; + } + lbl_1_bss_1580.unk14 = fn_1_36E4(); + lbl_1_bss_1580.unk344 = GWSystem.team; + _ClearFlag(FLAG_ID_MAKE(1, 29)); + lbl_1_bss_1580.unk348 = -1; + fn_1_9A0(); + fn_1_290C(lbl_1_bss_A8, fn_1_82E0); + lbl_1_bss_1580.unk1C = fn_1_37C8(lbl_1_bss_1580.unk20 = 0xFF); + fn_1_FF7C(arg4); + fn_1_38B4(); + fn_1_12DAC(); + HuPrcChildCreate(fn_1_FE80, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_140A0, 100, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_13908, 200, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_D48C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_7004(s32 arg0, s32 arg1, s32 arg2) { + s32 sp1C[4]; + s32 spC[4]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 var_r31; + + temp_r27 = lbl_1_bss_1580.unk20; + var_r26 = arg0; + lbl_1_bss_1530.unk04 = (void*) fn_1_D718; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = (void*) fn_1_1241C; + } + lbl_1_bss_1468.unk04 = (void*) fn_1_13A38; + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp1C[var_r31] = lbl_1_bss_1490[var_r31].unk00->work[0]; + spC[var_r31] = 0xFF; + } + } + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1580.unk20 = fn_1_5D4(temp_r27, var_r26, var_r30, arg1); + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_7E88(sp1C[var_r31], spC[var_r31], var_r30, arg1, var_r31); + } + } + } + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk00->work[0] = 0; + lbl_1_bss_1490[var_r31].unk00->work[1] = 0; + Hu3DModelAttrSet(lbl_1_bss_1490[var_r31].unk00->model[6], 1); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[1], lbl_1_bss_1580.unk24[var_r31].unk00, 0, 0, 0, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[2], lbl_1_bss_1580.unk24[var_r31].unk04, 0, 0, 0, 0xFF); + } + } + lbl_1_bss_1530.unk04 = NULL; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = NULL; + } + lbl_1_bss_1468.unk04 = NULL; +} + +void fn_1_7398(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + float temp_f31; + float temp_f30; + s32 sp10; + s32 spC; + s32 temp_r29; + s32 var_r28; + + sp10 = lbl_1_bss_1490[arg2].unk00->work[0]; + spC = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + Hu3DModelPosSet(lbl_1_bss_1490[arg3].unk00->model[6], lbl_1_data_130[arg3].x, 500.0f + lbl_1_data_130[arg3].y + lbl_1_bss_AC, lbl_1_data_130[arg3].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg3].unk00->model[6], 1); + for (var_r28 = 0; var_r28 <= arg1; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r28, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r28, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r28, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[1], lbl_1_bss_1580.unk24[arg3].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[2], lbl_1_bss_1580.unk24[arg3].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; + lbl_1_bss_1490[arg3].unk00->work[1] = 1; +} + +void fn_1_79D8(s32 arg0, s32 arg1, s32 arg2) { + float temp_f31; + float temp_f30; + s32 temp_r27; + s32 var_r26; + s32 temp_r29; + s32 var_r30; + + temp_r27 = lbl_1_bss_1490[arg2].unk00->work[0]; + var_r26 = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + for (var_r30 = 0; var_r30 <= arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1490[arg2].unk00->work[0] = fn_1_6F4(temp_r27, var_r26, var_r30, arg1); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r30, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r30, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r30, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; +} + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + float var_f31; + s32 temp_r31; + + if (lbl_1_bss_1490[arg4].unk00->work[1] != 0) { + lbl_1_bss_1490[arg4].unk00->work[0] = fn_1_5D4(arg0, arg1, arg2, arg3); + var_f31 = fn_1_5D4(0.5f, 0.0f, arg2, arg3); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg4].unk00->model[6], var_f31); + temp_r31 = fn_1_5D4(128.0f, 0.0f, arg2, arg3); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[1], lbl_1_bss_1580.unk24[arg4].unk00, temp_r31, temp_r31, temp_r31, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[2], lbl_1_bss_1580.unk24[arg4].unk04, temp_r31, temp_r31, temp_r31, 0xFF); + } +} + +s32 fn_1_814C(s32 arg0) { + s32 var_r31; + + if (arg0 == 0) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 100, &lbl_1_data_160); + } else if (arg0 == 1) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 500, &lbl_1_data_1B0); + } else if (arg0 == 2) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_200); + } + if (arg0 != 2) { + Hu3DParManTimeLimitSet(var_r31, 60); + Hu3DParManAttrSet(var_r31, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31), 1); + } else { + Hu3DParManAttrSet(var_r31, 4 | 0x40); + } + return var_r31; +} + +s32 fn_1_8264(void) { + return fn_1_814C(0); +} + +void fn_1_82E0(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_836C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} + +void fn_1_845C(void) { + StructBss4* var_r31 = &lbl_1_bss_4; + StructBss4 sp28; + float sp8[] = { + 530.0f, 530.0f, 540.0f, 530.0f, + 530.0f, 580.0f, 540.0f, 630.0f + }; + + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[0].unk00->model[1]].pos.x; + } else { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[2].unk00->model[1]].pos.x; + } + } else { + sp28.unk08.x = Hu3DData[lbl_1_bss_1490[lbl_1_bss_1458[1]].unk00->model[1]].pos.x; + lbl_1_bss_B4 = lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10; + } + if (lbl_1_bss_1580.unk344 == 1) { + sp28.unk08.y = 570.0f; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1750.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } else { + sp28.unk08.y = sp8[lbl_1_bss_B4]; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1600.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } +} + +void fn_1_8758(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = lbl_1_bss_1424; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1250.0f; + sp8.unk38 = 1350.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f); +} + +void fn_1_8858(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_8948(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 60.0f, 10.0f); +} + +void fn_1_8A38(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = -300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 180.0f, 10.0f); +} + +void fn_1_8B28(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f); +} + +void fn_1_8C18(void) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8948); + fn_1_958(120); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8A38); + fn_1_958(210); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8B28); + fn_1_958(120); +} + +void fn_1_8C94(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 var_r31; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 200, &sp10); + if (lbl_1_bss_1558.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_1530.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1468.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> FALSE", var_r31); + } else { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> TRUE", var_r31); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1580.unk00, lbl_1_bss_1580.unk0C, lbl_1_bss_1580.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 110 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk00, lbl_1_bss_1580.unkC4[var_r31].unk00.unk04, lbl_1_bss_1580.unkC4[var_r31].unk00.unk08, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk0C, lbl_1_bss_1580.unkC4[var_r31].unk00.unk14, lbl_1_bss_1580.unkC4[var_r31].unk00.unk10); + } + print8(var_r30, var_r29 + 150, 1.0f, "NO) RNK:STA:COI:MGS:COS:HAS"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 160 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk18, lbl_1_bss_1580.unkC4[var_r31].unk00.unk20, lbl_1_bss_1580.unkC4[var_r31].unk00.unk1C, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk24, lbl_1_bss_1580.unkC4[var_r31].unk00.unk28, lbl_1_bss_1580.unkC4[var_r31].unk00.unk2C); + } + } +} + +void fn_1_9140(void) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_9C4(); + CharModelKill(-1); + MGSeqKillAll(); + HuAudSStreamAllStop(); + msmSeStopAll(0, 1000); + omOvlGotoEx(OVL_MSTORY3, 1, 1, 0); +} + +void fn_1_91C8(void) { + lbl_1_bss_58 = HuAudSeqPlay(0x31); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } +} + +void fn_1_9220(void) { + Vec sp14 = { -320.0f, 0.0f, 910.0f }; + + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][0]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_836C); + fn_1_1E28(lbl_1_bss_1530.unk00, 2, 2, 0, 0); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 2, 15, 1); + fn_1_2DD4(lbl_1_bss_1468.unk00, 1, sp14, 30.0f, 60.0f, 10.0f); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); + fn_1_2280(lbl_1_bss_1530.unk00, 2, 2, 0); +} + +void fn_1_93D0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 1, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9488(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_93D0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_1036C; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(0); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk20 != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB9); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_96B0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 2, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9768(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_96B0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_10D74; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(1); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk1C != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB8); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_9990(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + HuAudFXPlay(0x9A); + fn_1_13A3C(lbl_1_bss_1580.unk10, lbl_1_bss_1420, -1, 4); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9A08(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_958(60); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + temp_r31->unk04 = 0; +} + +void fn_1_9A64(s32 arg0) { + s32 var_r28; + s32 var_r27; + s32 var_r30; + s32 var_r31; + + var_r28 = 9999; + var_r27 = -1; + lbl_1_bss_1420 = arg0; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 3, 3); + fn_1_12C08(arg0); + lbl_1_bss_1424 = 0.0f; + switch (lbl_1_bss_1458[0]) { + case 1: + lbl_1_bss_1424 = lbl_1_data_130[lbl_1_bss_1448[0]].x; + break; + case 2: + lbl_1_bss_1424 = (lbl_1_data_130[lbl_1_bss_1448[0]].x + lbl_1_data_130[lbl_1_bss_1448[1]].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 4, 3); + break; + case 3: + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (var_r28 >= lbl_1_bss_1448[var_r31]) { + var_r28 = lbl_1_bss_1448[var_r31]; + } + if (var_r27 <= lbl_1_bss_1448[var_r31]) { + var_r27 = lbl_1_bss_1448[var_r31]; + } + } + lbl_1_bss_1424 = (lbl_1_data_130[var_r27].x + lbl_1_data_130[var_r28].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 5, 3); + break; + case 4: + break; + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + fn_1_7004(0x40, 30, 0); + fn_1_958(60); + if (lbl_1_bss_1458[0] < 4) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8758); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r31 == lbl_1_bss_1448[var_r30]) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11834; + lbl_1_bss_1490[var_r31].unk18 = 0; + break; + } + } + if (var_r30 == 4) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + } else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + if (lbl_1_bss_1458[0] != 4) { + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + } else { + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + } + if (lbl_1_bss_1458[0] <= 3) { + HuAudFXPlay(0x9F); + } + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + switch (lbl_1_bss_1458[0]) { + case 1: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + lbl_1_bss_1420 = 12; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + lbl_1_bss_1420 = 13; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + lbl_1_bss_1420 = 14; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 4: + HuAudFXFadeOut(lbl_1_bss_68[0], 500); + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[0]].unk00.unk2C == 0 && arg0 == 2) { + fn_1_13C78(lbl_1_bss_1580.unk10, 26, 3); + } else { + fn_1_13C78(lbl_1_bss_1580.unk10, 15, 3); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + break; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 != NULL) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + lbl_1_bss_1580.unk18 = 1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_1490[var_r31].unk00->model[1], HU3D_MOTATTR_PAUSE); + } + fn_1_958(10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + fn_1_12DAC(); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8858); + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); +} + +s32 fn_1_A314(void) { + s32 var_r31 = 0; + + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x10, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_12DAC(); + fn_1_130A8(); + if (lbl_1_bss_1580.unk344 == 1) { + var_r31 = fn_1_B670(); + } + if (var_r31 != -1 && lbl_1_bss_1458[0] <= 1) { + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + } else { + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + } + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + lbl_1_bss_1530.unk04 = (void*) fn_1_D7D8; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); + lbl_1_bss_AC = 125.0f; + return var_r31; +} + +void fn_1_A4F0(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x11, 3); + switch (lbl_1_bss_1458[0]) { + case 1: + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13C78(lbl_1_bss_1580.unk10, 13, 3); + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + fn_1_13C78(lbl_1_bss_1580.unk10, 14, 3); + break; + case 4: + fn_1_13C78(lbl_1_bss_1580.unk10, 0x12, 3); + break; + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(0x96); + fn_1_1317C(); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x14, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1458[1] == lbl_1_bss_1448[var_r31]) { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 14, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 15, 15, 0); + } + } + fn_1_958(0x23); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(0x55); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_ABAC(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_12420; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); + lbl_1_bss_B0 = 0.0f; + fn_1_958(15); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + break; + } + } + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_7398(0xFF, 5, 0, 1); + } else { + fn_1_7398(0xFF, 5, 2, 3); + } + } else { + fn_1_79D8(0xFF, 5.0f, var_r31); + } + HuAudFXPlay(0x9F); + HuAudSeqPlay(0x32); + fn_1_958(30); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 4, 15, 0); + lbl_1_bss_1580.unk0C = 0; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = 2; + } + } else if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = var_r31; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 4, 15, 0); + } + GWPlayer[lbl_1_bss_1580.unkC4[var_r31].unk00.unk00].rank = lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 - 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + _SetFlag(FLAG_ID_MAKE(1, 29)); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x19, 5); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x16, 5); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); +} + +s32 fn_1_B670(void) { + s32 var_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + + var_r31 = 1; + temp_r30 = lbl_1_bss_1580.unkC4[0].unk00.unk20 + lbl_1_bss_1580.unkC4[1].unk00.unk20; + temp_r29 = lbl_1_bss_1580.unkC4[2].unk00.unk20 + lbl_1_bss_1580.unkC4[3].unk00.unk20; + temp_r28 = lbl_1_bss_1580.unkC4[0].unk00.unk1C + lbl_1_bss_1580.unkC4[1].unk00.unk1C; + temp_r27 = lbl_1_bss_1580.unkC4[2].unk00.unk1C + lbl_1_bss_1580.unkC4[3].unk00.unk1C; + if (temp_r30 > temp_r29) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r30 < temp_r29) { + lbl_1_bss_1580.unk348 = 1; + } else if (temp_r28 > temp_r27) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r28 < temp_r27) { + lbl_1_bss_1580.unk348 = 1; + } else { + var_r31 = -1; + } + return var_r31; +} + +void fn_1_B788(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x17, 3); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + lbl_1_bss_1458[0] = 2; + lbl_1_bss_1448[0] = 0; + lbl_1_bss_1448[1] = 2; + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(150); + if (lbl_1_bss_1428[0] > lbl_1_bss_1428[2]) { + lbl_1_bss_1580.unk348 = 0; + } else { + lbl_1_bss_1580.unk348 = 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x18, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 15, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 14, 15, 0); + } + } + fn_1_958(35); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(85); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_BE5C(void) { + float var_f31; + + var_f31 = fn_1_878(0.0f, 0.1f, lbl_1_bss_B8, 180.0f); + Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y += var_f31; + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 180) { + lbl_1_bss_B8 -= 180; + } +} + +void fn_1_BF60(void) { + float temp_f1; + + temp_f1 = fn_1_878(1.0f, 1.1f, lbl_1_bss_B8, 60.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f1, temp_f1, 1.0f); + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 60) { + lbl_1_bss_B8 -= 60; + } +} + +s32 lbl_1_data_364 = -1; +s32 lbl_1_data_368 = -1; // unused + +void fn_1_C060(float arg8) { + float sp20[] = { + 50.0f, 50.0f, 60.0f, 50.0f, + 50.0f, 80.0f, 60.0f, 120.0f + }; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float temp_f29; + float var_f28; + float temp_f27; + float var_f26; + s32 var_r31; + + lbl_1_bss_BC = arg8; + fn_1_938(); + var_f31 = arg8; + var_f30 = 0.0f; + temp_f29 = 3600.0f; + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[20], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[21], 0.5f, 0.5f, 0.5f); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[22], 0.5f, 0.5f, 0.5f); + Hu3DMotionShapeSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionShiftSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 2); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], 0.0f, 0.0f, 1.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[23], HU3D_ATTR_DISPOFF); + fn_1_958(60); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_845C); + for (var_r31 = 0; var_r31 <= 120; var_r31++) { + fn_1_938(); + if (lbl_1_bss_1580.unk344 == 0) { + var_f30 = fn_1_6F4(1000.0f, 250.0f + sp20[lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10], var_r31, 120.0f); + } else { + var_f30 = fn_1_6F4(1000.0f, 350.0f, var_r31, 120.0f); + } + temp_f29 = fn_1_6F4(1800.0f, 0.0f, var_r31, 120.0f); + var_f28 = fn_1_6F4(1.0f, 0.0f, var_r31, 120.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, var_f30, 460.0f); + Hu3DModelRotSet(lbl_1_bss_1530.unk00->model[20], 0.0f, temp_f29, 0.0f); + } + lbl_1_bss_1530.unk04 = (void*) fn_1_BE5C; + fn_1_958(30); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 0); + fn_1_958(30); + HuAudFXPlay(0x33B); + fn_1_958(30); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - 10.0f, 460.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 0); + sp14.x = var_f31; + sp14.y = Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y; + sp14.z = 460.0f; + sp8.x = 288.0f; + sp8.y = 100.0f; + sp8.z = 500.0f; + fn_1_1DED8(DATA_MAKE_NUM(DATADIR_MSTORY3, 0), &sp14, &sp8, 100); + fn_1_1E0F4(); + fn_1_958(15); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[0].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[1].unk00.unk10, 0x12B); + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[2].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[3].unk00.unk10, 0x12B); + } + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10, 0x12B); + } + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y, 510.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 0); + fn_1_958(5); + lbl_1_data_364 = fn_1_814C(1); + Hu3DParManPosSet(lbl_1_data_364, var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[21]].pos.y, 510.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + lbl_1_bss_C0 = 1.0f; + for (var_r31 = 0; var_r31 <= 30; var_r31++) { + fn_1_938(); + temp_f27 = fn_1_5D4(0.0f, 1.0f, var_r31, 30.0f); + var_f30 = fn_1_5D4(0.0f, 75.0f, var_r31, 30.0f); + var_f26 = fn_1_5D4(550.0f, 640.0f, var_r31, 30.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[23], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - var_f30, var_f26); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f27, temp_f27, 1.0f); + var_f28 = fn_1_5D4(1.0f, 0.0f, var_r31, 30.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1530.unk00->model[22], var_f28); + } + lbl_1_bss_B8 = 0; + lbl_1_bss_1530.unk04 = (void*) fn_1_BF60; + fn_1_958(30); + Hu3DParManKill(lbl_1_data_364); + lbl_1_data_364 = -1; + fn_1_958(240); + fn_1_1834(MAKE_MESSID(36, 7), 0); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[1].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } else { + if (lbl_1_bss_1580.unkC4[2].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[3].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } + } else if (lbl_1_bss_1580.unk08 == 0) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk08 != 1) { + fn_1_2420(lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk14, PAD_BUTTON_A); + } else { + fn_1_958(30); + } + } else { + fn_1_2420(0, PAD_BUTTON_A); + } + HuAudFXPlay(0x1C); +} + +void fn_1_CE6C(omObjData* arg0) { + StructBss1530* sp8 = arg0->data; + s32 var_r31; + + fn_1_91C8(); + fn_1_9220(); + fn_1_9488(); + fn_1_9768(); + if (lbl_1_bss_1580.unk04 != 0) { + fn_1_9A64(0); + fn_1_9A64(1); + fn_1_9A64(2); + } + var_r31 = fn_1_A314(); + if (lbl_1_bss_1580.unk344 == 1) { + if (var_r31 == -1) { + fn_1_B788(); + } + } else if (lbl_1_bss_1458[0] > 1) { + fn_1_A4F0(); + } + fn_1_ABAC(); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_C060(lbl_1_data_130[0].x + 100.0f); + } else { + fn_1_C060(lbl_1_data_130[2].x + 100.0f); + } + } else { + fn_1_C060(lbl_1_data_130[lbl_1_bss_1458[1]].x); + } + fn_1_958(60); + fn_1_9140(); +} + +void fn_1_D48C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_1558.unk00 = temp_r3; + lbl_1_bss_1558.unk04 = (void*) fn_1_CE6C; + lbl_1_bss_1558.unk00->data = &lbl_1_bss_1558; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1558.unk04 != NULL) { + lbl_1_bss_1558.unk04(temp_r3); + } + } +} + +void fn_1_D538(omObjData* arg0) { + float sp8; + float var_f30; + float var_f31; + StructBss1530* temp_r31; + s32 var_r30; + s32 var_r29; + + temp_r31 = arg0->data; + var_f31 = 1.75f; + sp8 = 0.5f; + var_r29 = 0; + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + lbl_1_bss_1580.unk324 = 1; + espDispOn(temp_r31->unk14); + espScaleSet(temp_r31->unk14, 0.0f, 0.0f); + for (var_r30 = 0; var_r30 < 120; var_r30++) { + fn_1_938(); + if (var_r30 < 60) { + var_f30 = fn_1_6F4(0.0f, 1.75f, var_r30, 60.0f); + } else { + var_f30 = fn_1_7BC(var_f31, 1.0f, var_r29, 15.0f); + var_r29++; + if (var_r29 == 15) { + if (var_f31 > 1.25f) { + var_f31 -= 0.1f; + } + var_r29 = 0; + } + } + espScaleSet(temp_r31->unk14, var_f30, var_f30); + } + temp_r31->unk04 = 0; +} + +void fn_1_D718(omObjData* arg0) { + float temp_f31; + + temp_f31 = lbl_1_bss_1580.unk20 / 255.0f; + Hu3DModelAmbSet(arg0->model[1], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[2], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[3], temp_f31, temp_f31, temp_f31); +} + +float lbl_1_data_36C[] = { 0.0f, 120.0f, 240.0f }; + +void fn_1_D7D8(omObjData* arg0) { + s32 var_r30; + + if (lbl_1_bss_B0 == 1.0f) { + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[6], HU3D_ATTR_DISPOFF); + lbl_1_bss_C4 += 0.033333335f; + if (lbl_1_bss_C4 >= 0.5f) { + lbl_1_bss_C4 = 0.5f; + } + } else { + if (lbl_1_bss_B0 == 0.0f) { + lbl_1_bss_C4 -= 0.033333335f; + if (lbl_1_bss_C4 <= 0.0f) { + lbl_1_bss_C4 = 0.0f; + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } else { + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(arg0->model[var_r30 + 4], lbl_1_bss_C4); + Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, 0.0f, lbl_1_bss_1408[var_r30][1]); + lbl_1_bss_1408[var_r30][0] = 10.0 * cosd(11.0f * lbl_1_data_36C[var_r30]); + lbl_1_bss_1408[var_r30][1] = 30.0 * sind(8.0f * lbl_1_data_36C[var_r30]); + if ((lbl_1_data_36C[var_r30] += 0.4f) >= 360.0f) { + lbl_1_data_36C[var_r30] -= 360.0f; + } + } +} + +void fn_1_DB68(omObjData* arg0, s32 arg1, s32 arg2) { + s32 sp8[] = { DATA_MAKE_NUM(DATADIR_MSTORY3, 6), DATA_MAKE_NUM(DATADIR_MSTORY3, 5) }; + s32 var_r30; + + if (arg2 < 5) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 4)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 0, 0, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + fn_1_1E28(arg0, 3, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 7)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_story-base"); + } + for (var_r30 = 4; var_r30 < 7; var_r30++) { + arg0->model[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelTPLvlSet(arg0->model[var_r30], 0.0f); + Hu3DModelPosSet(arg0->model[var_r30], -200.0f + 200.0f * (var_r30 - 4), 750.0f, 500.0f); + Hu3DModelScaleSet(arg0->model[var_r30], 1.25f, 2.0f, 1.25f); + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + } + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 9)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 10)); + lbl_1_bss_1530.unk14 = espEntry(DATA_MAKE_NUM(DATADIR_MSTORY3, 30), 0, 0); + espPosSet(lbl_1_bss_1530.unk14, 288.0f, 110.0f); + espDispOff(lbl_1_bss_1530.unk14); + fn_1_1E28(arg0, 2, 2, 0, 2); + fn_1_35C8(arg0->model[1]); + fn_1_35C8(arg0->model[2]); + fn_1_35C8(arg0->model[3]); + arg0->model[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 31) + arg2); + arg0->motion[20] = Hu3DMotionIDGet(arg0->model[20]); + Hu3DModelPosSet(arg0->model[20], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 20, 20, 0, 2); + arg0->model[21] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 37)); + arg0->motion[21] = Hu3DMotionIDGet(arg0->model[21]); + Hu3DModelPosSet(arg0->model[21], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 21, 21, 0, 2); + arg0->model[22] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 38)); + arg0->motion[22] = Hu3DMotionIDGet(arg0->model[22]); + Hu3DModelPosSet(arg0->model[22], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 22, 22, 0, 2); + arg0->model[23] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 39)); + Hu3DModelPosSet(arg0->model[23], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[23], HU3D_ATTR_DISPOFF); +} + +void fn_1_E160(omObjData* arg0) { + s32 var_r28; + s32 var_r29; + s32 var_r31; + + if (lbl_1_bss_C0 == 0.0f) { + return; + } + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + lbl_1_bss_1580.unk20++; + if (lbl_1_bss_1580.unk20 >= 128) { + lbl_1_bss_1580.unk20 = 128; + } + for (var_r31 = 1; var_r31 < 80; var_r31++) { + switch (lbl_1_bss_C8[var_r31].unk00) { + case 0: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 450.0f + rand8() % 150; + lbl_1_bss_C8[var_r31].unk00 = 1; + break; + case 3: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 500.0f; + /* fallthrough */ + case 1: + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_1580.unk344 == 0) { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -50.0f + lbl_1_bss_BC + rand8() % 100; + } else { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -100.0f + lbl_1_bss_BC + rand8() % 200; + } + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + Hu3DData[arg0->model[var_r31]].rot.x = rand8(); + Hu3DData[arg0->model[var_r31]].rot.y = rand8(); + Hu3DData[arg0->model[var_r31]].rot.z = rand8(); + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk00 = 2; + break; + case 2: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) *-1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (Hu3DData[arg0->model[var_r31]].pos.y <= 0.0f) { + lbl_1_bss_C8[var_r31].unk00 = 3; + } + break; + case 10: + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = lbl_1_bss_BC; + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 375.0f; + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk2C += var_r29; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk30 += var_r29; + var_r29 = rand8() % 50; + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk34 += var_r29; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk08 = 0; + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk00 = 11; + break; + case 11: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24 / 2; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (lbl_1_bss_C8[var_r31].unk08++ >= 50) { + lbl_1_bss_C8[var_r31].unk00 = 2; + } + break; + } + Hu3DData[arg0->model[var_r31]].pos.x = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.x, lbl_1_bss_C8[var_r31].unk2C, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.y = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.y, lbl_1_bss_C8[var_r31].unk30, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.z = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.z, lbl_1_bss_C8[var_r31].unk34, 30.0f); + } +} + +void fn_1_FD30(omObjData* arg0) { + s32 var_r30; + + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 17)); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 18)); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + for (var_r30 = 2; var_r30 < 80; var_r30++) { + if (var_r30 % 3 == 0) { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[1]); + } else { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[0]); + } + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + lbl_1_bss_C8[var_r30].unk04 = lbl_1_bss_C8[var_r30].unk08 = 0; + lbl_1_bss_C8[var_r30].unk00 = 10; + } + arg0->func = fn_1_E160; +} + +void fn_1_FE80(void) { + omObjData* temp_r31; + omObjData* sp8; + + temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x20, 0x20, -1, NULL); + sp8 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x80, 0, -1, fn_1_FD30); + lbl_1_bss_1530.unk00 = temp_r31; + lbl_1_bss_1530.unk04 = NULL; + lbl_1_bss_1530.unk00->data = &lbl_1_bss_1530; + fn_1_DB68(temp_r31, lbl_1_bss_1580.unk08, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1530.unk04 != NULL) { + lbl_1_bss_1530.unk04(temp_r31); + } + fn_1_D7D8(temp_r31); + } +} + +void fn_1_FF7C(s32 arg0) { + s32 sp30[4]; + s32 sp20[4]; + s32 sp10[4]; + s32 i, j; + s32 var_r29; + + sp30[0] = 0; + for (i = 1; i < 4; i++) { + sp30[i] = sp30[i - 1] + 1; + if (sp30[i] >= 4) { + sp30[i] = 0; + } + if (arg0 == sp30[i]) { + lbl_1_bss_1580.unk0C = i; + } + } + if (lbl_1_bss_1580.unk08 != 0) { + lbl_1_bss_1580.unk14 = arg0; + } + if (lbl_1_bss_1580.unk344 == 1) { + var_r29 = 0; + for (i = 0; i < 4; i++) { + sp10[0] = GWPlayer[sp30[0]].team; + sp10[1] = GWPlayer[sp30[1]].team; + sp10[2] = GWPlayer[sp30[2]].team; + sp10[3] = GWPlayer[sp30[3]].team; + sp20[i] = sp30[i]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d), (%d,%d), (%d,%d), (%d,%d)\n", + var_r29, sp10[0], sp30[0], sp10[1], sp30[1], sp10[2], sp30[2], sp10[3], sp30[3]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp10[j] != -1 && var_r29 == sp10[j]) { + sp10[j] = -1; + sp30[i] = sp20[j]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp30[0], sp30[1], sp30[2], sp30[3]); + } + for (i = 0; i < 4; i++) { + fn_1_3650(&lbl_1_bss_1580.unkC4[i].unk00, sp30[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1580.unkC4[i].unk00.unk1C = GWPlayer[sp30[i]].coins; + lbl_1_bss_1580.unkC4[i].unk00.unk20 = GWPlayer[sp30[i]].stars; + lbl_1_bss_1580.unkC4[i].unk00.unk24 = GWPlayer[sp30[i]].coins_mg; + lbl_1_bss_1580.unkC4[i].unk00.unk28 = GWPlayer[sp30[i]].coins_max; + lbl_1_bss_1580.unkC4[i].unk00.unk2C = GWPlayer[sp30[i]].question_count; + } +} + +void fn_1_1036C(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "submit07-star_null3", "submit07-star_null1", "submit07-star_null1" }, + { "submit07-star_null4", "submit07-star_null2", "submit07-star_null1" }, + { "submit07-star_null5", "submit07-star_null3", "submit07-star_null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + HuAudFXPlay(0xBB); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_10D74(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "coin-coin-null3", "coin-coin_null1", "coin-coin-null1" }, + { "coin-coin-null4", "coin-coin-null2", "coin-coin-null1" }, + { "coin-coin-null5", "coin-coin-null3", "coin-coin-null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + fn_1_1E28(arg0, 1, 1, 15, 1); + HuAudFXPlay(0xBC); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_11794(omObjData* arg0) { + StructBss1530* temp_r30; + + temp_r30 = arg0->data; + fn_1_958(25); + fn_1_1E28(arg0, 1, 15, 5, 0); + fn_1_958(10); + while (TRUE) { + fn_1_938(); + if (Hu3DMotionTimeGet(arg0->model[1]) >= 40.0f) { + break; + } + } + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); + temp_r30->unk04 = 0; +} + +void fn_1_11834(omObjData* arg0) { + float var_f31; + float var_f30; + float temp_f26; + float temp_f27; + float temp_f25; + float temp_f29; + float temp_f28; + StructBss1530* temp_r31; + s32 temp_r29; + s32 var_r24; + s32 temp_r23; + s32 var_r27; + s32 temp_r25; + s32 var_r28; + + var_f30 = 0.0f; + temp_r31 = arg0->data; + temp_r29 = temp_r31->unk08; + temp_r23 = lbl_1_bss_1490[temp_r29].unk00->work[0]; + var_r24 = 0xFF; + Hu3DModelPosSet(lbl_1_bss_1490[temp_r29].unk00->model[6], lbl_1_data_130[temp_r29].x, 500.0f + lbl_1_data_130[temp_r29].y + lbl_1_bss_AC, lbl_1_data_130[temp_r29].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[temp_r29].unk00->model[6], HU3D_ATTR_DISPOFF); + for (var_r27 = 0; var_r27 <= 5; var_r27++) { + fn_1_938(); + lbl_1_bss_1490[temp_r29].unk00->work[0] = fn_1_6F4(temp_r23, var_r24, var_r27, 5.0f); + temp_f27 = fn_1_6F4(0.0f, 1.5f, var_r27, 5.0f); + temp_f25 = fn_1_6F4(0.0f, 0.5f, var_r27, 5.0f); + temp_r25 = fn_1_6F4(0.0f, 128.0f, var_r27, 5.0f); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f27, 1.25f, temp_f27); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f25); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[1], lbl_1_bss_1580.unk24[temp_r29].unk00, temp_r25, temp_r25, temp_r25, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[2], lbl_1_bss_1580.unk24[temp_r29].unk04, temp_r25, temp_r25, temp_r25, 0xFF); + } + lbl_1_bss_1490[temp_r29].unk00->work[1] = 1; + fn_1_958(20); + fn_1_1E28(arg0, 1, 3, 15, 0); + fn_1_2310(arg0, 1, 3, 15); + do { + fn_1_938(); + } while (temp_r31->unk18 == 0); + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(0x338); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + temp_f29 = 10.0 + 10.0 * sind(var_f30); + temp_f28 = 10.0 * sind(2.0f * var_f30); + if (var_r28 < 10) { + var_f31 = fn_1_61C(0.0f, 1.0f, var_r28, 10.0f); + } else { + var_f31 = fn_1_61C(1.0f, 0.5f, var_r28 - 10, 5.0f); + } + if (var_r28 == 10) { + lbl_1_bss_1580.unk334[temp_r31->unk08] = fn_1_8264(); + Hu3DParManPosSet(lbl_1_bss_1580.unk334[temp_r31->unk08], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z); + } + if ((var_f30 += 2.0f) >= 360.0f) { + var_f30 -= 360.0f; + } + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DParManKill(lbl_1_bss_1580.unk334[temp_r31->unk08]); + lbl_1_bss_1580.unk334[temp_r31->unk08] = -1; + temp_f29 = Hu3DData[arg0->model[5]].pos.y; + temp_f26 = temp_f29; + temp_f28 = Hu3DData[arg0->model[5]].rot.y; + var_f31 = 0.5f; + var_f30 = 0.0f; + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + if (var_r28 == 45) { + HuAudFXPlay(0x339); + } + if (var_r28 > 45) { + temp_f29 = fn_1_61C(temp_f26, 100.0f, var_r28 - 45, 45.0f); + var_f31 = fn_1_61C(0.5f, 0.0f, var_r28 - 45, 45.0f); + } + temp_f28 += var_f30 += 0.25f; + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(8); + lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk20++; + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars++; + if (GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars >= 999) { + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars = 999; + } + temp_r31->unk04 = 0; +} + +void fn_1_123D8(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_15450(temp_r31->unk08); + temp_r31->unk04 = 0; +} + +void fn_1_1241C(omObjData* arg0) { +} + +void fn_1_12420(omObjData* arg0) { + float sp8[] = { 0.0f, -30.0f, -60.0f, -90.0f }; + float temp_f31; + StructBss1530* temp_r31; + s32 var_r27; + s32 var_r29; + s32 var_r28; + + temp_r31 = arg0->data; + if (lbl_1_bss_1580.unk344 == 1) { + var_r27 = 0; + if (lbl_1_bss_1580.unk348 == 1) { + var_r27 = 2; + } + if ((lbl_1_bss_1580.unk348 == 0 && temp_r31->unk08 <= 1) || (lbl_1_bss_1580.unk348 == 1 && temp_r31->unk08 >= 2)) { + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + fn_1_958(90); + if (temp_r31->unk08 == var_r27) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + if (arg0->work[0] == 0) { + HuAudFXPlay(0xA8); + } + for (var_r28 = 0; var_r28 <= 30; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(-90.0f, 0.0f, var_r28, 30.0f); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + if (lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 != 4) { + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (arg0->work[0] == 0 && var_r29 >= 1) { + HuAudFXPlay(0xA5 + var_r29); + } + if (var_r29 != 3) { + for (var_r28 = 0; var_r28 < 30; var_r28++) { + fn_1_938(); + if (sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29] && 4 - var_r29 < 4) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 30.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + for (var_r28 = 0; var_r28 < 10; var_r28++) { + fn_1_938(); + if ((sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29]) && ((4 - var_r29) < 4)) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 10.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } + if (var_r29 == 2) { + fn_1_958(120); + } else if (var_r29 != 3) { + fn_1_958(60); + } + } + } + temp_r31->unk04 = 0; +} + +void fn_1_12A98(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk20; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk1C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12C08(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = 0; + lbl_1_bss_1448[i] = -1; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk24; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk28; + break; + case 2: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk2C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12DAC(void) { + s32 sp8[4]; + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp8[i] = i; + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if ((lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk1C >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C)) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + lbl_1_bss_1580.unkC4[sp8[0]].unk00.unk18 = j = 1; + for (i = 1; i < 4; i++) { + j++; + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = j; + if ((lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk1C)) { + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk18; + } + } +} + +void fn_1_130A8(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1580.unkC4[i].unk00.unk18 == 1) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r30++] = i; + lbl_1_bss_1458[1] = i; + } + } +} + +void fn_1_1317C(void) { + s32 sp8[4]; + s32 var_r30; + s32 i; + + var_r30 = -1; + for (i = 0; i < 4; i++) { + sp8[i] = lbl_1_bss_1428[i]; + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[1] = i; + } + } + for (i = 0; i < lbl_1_bss_1458[0]; i++) { + if (lbl_1_bss_1458[1] != lbl_1_bss_1448[i]) { + lbl_1_bss_1580.unkC4[lbl_1_bss_1448[i]].unk00.unk18 = 2; + } + } +} + +void fn_1_132AC(omObjData* arg0, s32 arg1) { + StructFn352C* temp_r30; + s32 var_r28; + + temp_r30 = &lbl_1_bss_1580.unkC4[arg1].unk00; + arg0->model[1] = CharModelCreate(temp_r30->unk10, 4); + arg0->motion[1] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[5] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 47)); + arg0->motion[3] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 23)); + arg0->motion[4] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24)); + arg0->motion[14] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[15] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 73)); + CharModelMotionDataClose(temp_r30->unk10); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[arg1].x, lbl_1_data_130[arg1].y, lbl_1_data_130[arg1].z - 20.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + if (lbl_1_bss_1580.unk344 == 1) { + var_r28 = 0; + if (arg1 > 1) { + var_r28 = 1; + } + arg0->model[2] = Hu3DModelCreateFile(var_r28 + DATA_MAKE_NUM(DATADIR_MSTORY3, 144)); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(arg0->model[2], 1.25f, 1.0f, 1.5f); + Hu3DModelShadowMapSet(arg0->model[2]); + } else { + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 12)); + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapSet(arg0->model[2]); + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 14)); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 15)); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 13)); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + for (arg1 = 0; arg1 < 3; arg1++) { + arg0->model[arg1 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 16)); + Hu3DModelAttrSet(arg0->model[arg1 + 7], HU3D_ATTR_DISPOFF); + Hu3DMotionSpeedSet(arg0->model[arg1 + 7], 0.0f); + } + lbl_1_bss_1580.unk24[arg1].unk00 = Hu3DLLightCreate(arg0->model[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00); + Hu3DLLightPosAimSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + lbl_1_bss_1580.unk24[arg1].unk04 = Hu3DLLightCreate(arg0->model[2], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04); + Hu3DLLightPosAimSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); +} + +void fn_1_13908(void) { + omObjData* var_r30; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1580.unk314++; + var_r30 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1490[temp_r31].unk00 = var_r30; + lbl_1_bss_1490[temp_r31].unk04 = NULL; + lbl_1_bss_1490[temp_r31].unk08 = temp_r31; + lbl_1_bss_1490[temp_r31].unk00->data = &lbl_1_bss_1490[temp_r31]; + fn_1_132AC(lbl_1_bss_1490[temp_r31].unk00, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[temp_r31].unk04 != NULL) { + lbl_1_bss_1490[temp_r31].unk04(lbl_1_bss_1490[temp_r31].unk00); + } + } +} + +void fn_1_13A38(omObjData* arg0) { +} + +s32 lbl_1_data_504[][27] = { + { + MAKE_MESSID(37, 0x00), MAKE_MESSID(37, 0x01), MAKE_MESSID(37, 0x02), + MAKE_MESSID(37, 0x03), MAKE_MESSID(37, 0x05), MAKE_MESSID(37, 0x06), + MAKE_MESSID(37, 0x0B), MAKE_MESSID(37, 0x0C), MAKE_MESSID(37, 0x0D), + MAKE_MESSID(37, 0x0E), MAKE_MESSID(37, 0x0F), MAKE_MESSID(37, 0x10), + MAKE_MESSID(37, 0x07), MAKE_MESSID(37, 0x08), MAKE_MESSID(37, 0x09), + MAKE_MESSID(37, 0x0A), MAKE_MESSID(37, 0x11), MAKE_MESSID(37, 0x12), + MAKE_MESSID(37, 0x13), MAKE_MESSID(37, 0x14), MAKE_MESSID(37, 0x15), + MAKE_MESSID(37, 0x16), MAKE_MESSID(37, 0x17), MAKE_MESSID(37, 0x8C), + MAKE_MESSID(37, 0x8D), MAKE_MESSID(37, 0x8E), MAKE_MESSID(37, 0x9E) + }, + { + MAKE_MESSID(37, 0x19), MAKE_MESSID(37, 0x1A), MAKE_MESSID(37, 0x1B), + MAKE_MESSID(37, 0x1C), MAKE_MESSID(37, 0x1D), MAKE_MESSID(37, 0x1E), + MAKE_MESSID(37, 0x23), MAKE_MESSID(37, 0x24), MAKE_MESSID(37, 0x25), + MAKE_MESSID(37, 0x26), MAKE_MESSID(37, 0x27), MAKE_MESSID(37, 0x28), + MAKE_MESSID(37, 0x1F), MAKE_MESSID(37, 0x20), MAKE_MESSID(37, 0x21), + MAKE_MESSID(37, 0x22), MAKE_MESSID(37, 0x29), MAKE_MESSID(37, 0x2A), + MAKE_MESSID(37, 0x2B), MAKE_MESSID(37, 0x2C), MAKE_MESSID(37, 0x2D), + MAKE_MESSID(37, 0x2E), MAKE_MESSID(37, 0x2F), MAKE_MESSID(37, 0x8F), + MAKE_MESSID(37, 0x90), MAKE_MESSID(37, 0x91), MAKE_MESSID(37, 0x9F) + }, + { + MAKE_MESSID(37, 0x30), MAKE_MESSID(37, 0x31), MAKE_MESSID(37, 0x32), + MAKE_MESSID(37, 0x33), MAKE_MESSID(37, 0x34), MAKE_MESSID(37, 0x35), + MAKE_MESSID(37, 0x3A), MAKE_MESSID(37, 0x3B), MAKE_MESSID(37, 0x3C), + MAKE_MESSID(37, 0x3D), MAKE_MESSID(37, 0x3E), MAKE_MESSID(37, 0x3F), + MAKE_MESSID(37, 0x36), MAKE_MESSID(37, 0x37), MAKE_MESSID(37, 0x38), + MAKE_MESSID(37, 0x39), MAKE_MESSID(37, 0x40), MAKE_MESSID(37, 0x41), + MAKE_MESSID(37, 0x42), MAKE_MESSID(37, 0x43), MAKE_MESSID(37, 0x44), + MAKE_MESSID(37, 0x45), MAKE_MESSID(37, 0x46), MAKE_MESSID(37, 0x92), + MAKE_MESSID(37, 0x93), MAKE_MESSID(37, 0x94), MAKE_MESSID(37, 0xA0) + }, + { + MAKE_MESSID(37, 0x47), MAKE_MESSID(37, 0x48), MAKE_MESSID(37, 0x49), + MAKE_MESSID(37, 0x4A), MAKE_MESSID(37, 0x4B), MAKE_MESSID(37, 0x4C), + MAKE_MESSID(37, 0x51), MAKE_MESSID(37, 0x52), MAKE_MESSID(37, 0x53), + MAKE_MESSID(37, 0x54), MAKE_MESSID(37, 0x55), MAKE_MESSID(37, 0x56), + MAKE_MESSID(37, 0x4D), MAKE_MESSID(37, 0x4E), MAKE_MESSID(37, 0x4F), + MAKE_MESSID(37, 0x50), MAKE_MESSID(37, 0x57), MAKE_MESSID(37, 0x58), + MAKE_MESSID(37, 0x59), MAKE_MESSID(37, 0x5A), MAKE_MESSID(37, 0x5B), + MAKE_MESSID(37, 0x5C), MAKE_MESSID(37, 0x5D), MAKE_MESSID(37, 0x95), + MAKE_MESSID(37, 0x96), MAKE_MESSID(37, 0x97), MAKE_MESSID(37, 0xA1) + }, + { + MAKE_MESSID(37, 0x5E), MAKE_MESSID(37, 0x5F), MAKE_MESSID(37, 0x60), + MAKE_MESSID(37, 0x61), MAKE_MESSID(37, 0x62), MAKE_MESSID(37, 0x63), + MAKE_MESSID(37, 0x68), MAKE_MESSID(37, 0x69), MAKE_MESSID(37, 0x6A), + MAKE_MESSID(37, 0x6B), MAKE_MESSID(37, 0x6C), MAKE_MESSID(37, 0x6D), + MAKE_MESSID(37, 0x64), MAKE_MESSID(37, 0x65), MAKE_MESSID(37, 0x66), + MAKE_MESSID(37, 0x67), MAKE_MESSID(37, 0x6E), MAKE_MESSID(37, 0x6F), + MAKE_MESSID(37, 0x70), MAKE_MESSID(37, 0x71), MAKE_MESSID(37, 0x72), + MAKE_MESSID(37, 0x73), MAKE_MESSID(37, 0x74), MAKE_MESSID(37, 0x98), + MAKE_MESSID(37, 0x99), MAKE_MESSID(37, 0x9A), MAKE_MESSID(37, 0xA2) + }, + { + MAKE_MESSID(37, 0x75), MAKE_MESSID(37, 0x76), MAKE_MESSID(37, 0x77), + MAKE_MESSID(37, 0x78), MAKE_MESSID(37, 0x79), MAKE_MESSID(37, 0x7A), + MAKE_MESSID(37, 0x7F), MAKE_MESSID(37, 0x80), MAKE_MESSID(37, 0x81), + MAKE_MESSID(37, 0x82), MAKE_MESSID(37, 0x83), MAKE_MESSID(37, 0x84), + MAKE_MESSID(37, 0x7B), MAKE_MESSID(37, 0x7C), MAKE_MESSID(37, 0x7D), + MAKE_MESSID(37, 0x7E), MAKE_MESSID(37, 0x85), MAKE_MESSID(37, 0x86), + MAKE_MESSID(37, 0x87), MAKE_MESSID(37, 0x88), MAKE_MESSID(37, 0x89), + MAKE_MESSID(37, 0x8A), MAKE_MESSID(37, 0x8B), MAKE_MESSID(37, 0x9B), + MAKE_MESSID(37, 0x9C), MAKE_MESSID(37, 0x9D), MAKE_MESSID(37, 0xA3) + } +}; + +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r29 = 0; + s32 temp_r28 = 0; + s32 i; + + lbl_1_bss_1580.unk18 = 0; + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg3, 15, 1); + temp_r28 = (s16) HuWinKeyWaitNumGet(lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + if (arg2 == -1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (lbl_1_bss_1580.unk14 == -1) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + lbl_1_bss_1580.unk18 = 99; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1) { + if (HuWinStatGet(arg0) != 1) { + var_r29 = 2; + continue; + } + } + if (var_r29 == 2) { + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 1); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2) { + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg2, 15, 1); + fn_1_1D44(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2) { + s32 var_r31; + + var_r31 = lbl_1_bss_1580.unkC4[arg1].unk00.unk10; + HuWinInsertMesSet(arg0, var_r31, arg2); +} + +void fn_1_13D98(omObjData* arg0, s32 arg1) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64), + DATA_MAKE_NUM(DATADIR_MSTORY3, 70) + }; + s32 sp38[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x29), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2D) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2F), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x30), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x31), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x32), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x33) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x35), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x36), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x37), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x38), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x39) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3D), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3E), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3F) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x41), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x42), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x43), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x44), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x45) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x47), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x48), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x49), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp20[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][4]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_140A0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1468.unk00 = temp_r3; + lbl_1_bss_1468.unk04 = NULL; + lbl_1_bss_1468.unk00->data = &lbl_1_bss_1468; + fn_1_13D98(temp_r3, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1468.unk04 != NULL) { + lbl_1_bss_1468.unk04(temp_r3); + } + } +} + +void fn_1_1442C(s32 arg0) { + s32 var_r31; + + var_r31 = -1; + if (GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom) { + var_r31 = rand8() % 120 + 60; + } + do { + fn_1_938(); + if (!GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom && (HuPadBtnDown[GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].pad_idx] & PAD_BUTTON_A)) { + break; + } + } while (var_r31-- != 0); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 5, 15, 0); +} + +void fn_1_1456C(s32 arg0) { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[arg0].unk00->motion[5] != Hu3DMotionShiftIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && lbl_1_bss_1490[arg0].unk00->motion[5] == Hu3DMotionIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && Hu3DMotionTimeGet(lbl_1_bss_1490[arg0].unk00->model[1]) >= 27.0f) + { + break; + } + } + HuAudFXStop(lbl_1_bss_68[arg0 + 1]); + HuAudFXPlay(0x303); +} + +HsfanimStruct00 lbl_1_data_78C = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, 0.0f, 0.0f }, + 50.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +s32 fn_1_14684(void) { + s32 temp_r3; + + temp_r3 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_78C); + Hu3DParManTimeLimitSet(temp_r3, 60); + Hu3DParManAttrSet(temp_r3, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r3), 1); + return temp_r3; +} + +void fn_1_14700(omObjData* arg0) { + Hu3DModelKill(arg0->model[0]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14748(omObjData* arg0) { + float temp_f31; + s32 sp8[3]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 temp_r25; + s32 var_r29; + + switch (arg0->work[1]) { + case 0: + if (arg0->work[2] >= 1080) { + arg0->work[1] = 1; + arg0->rot.y = 0.0f; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->work[2] = arg0->work[3] = 0; + lbl_1_bss_68[arg0->work[0] + 1] = HuAudFXPlay(0x300); + } else { + arg0->rot.y = arg0->work[2] % 360; + arg0->work[2] += 25; + if (arg0->work[3] < 180) { + arg0->scale.x = sind(arg0->work[3] % 180); + arg0->work[3] += 6; + } else { + arg0->scale.x = 1.0 + 0.5 * sind(arg0->work[3] % 180); + arg0->work[3] += 18; + } + arg0->scale.y = arg0->scale.z = arg0->scale.x; + if (arg0->work[3] > 360) { + arg0->work[3] = 360; + } + } + break; + case 1: + if (arg0->work[2] >= 40) { + arg0->work[1] = 2; + } + /* fallthrough */ + case 2: + arg0->trans.y += 0.2f * sind(arg0->work[2]); + if ((arg0->work[2] += 4) > 360) { + arg0->work[2] -= 360; + } + break; + case 3: + if (arg0->work[3]++ >= 8) { + arg0->work[1] = 4; + arg0->work[3] = 0; + Hu3DModelAttrSet(arg0->model[0], 1); + } else { + temp_f31 = fn_1_5D4(1.0f, 0.0f, arg0->work[3], 8.0f); + if (arg0->work[3] == 1) { + arg0->work[2] = fn_1_14684(); + Hu3DParManPosSet(arg0->work[2], arg0->trans.x, 275.0f, arg0->trans.z); + } + arg0->trans.y = 250.0f + fn_1_5D4(0.0f, 25.0f, arg0->work[3], 4.0f); + arg0->scale.x = 1.0f + 0.5f * (1.0f - temp_f31); + arg0->scale.y = arg0->scale.z = arg0->scale.x; + Hu3DModelTPLvlSet(arg0->model[0], temp_f31); + } + break; + case 4: + if (arg0->work[3]++ >= 60) { + Hu3DParManKill(arg0->work[2]); + arg0->work[2] = -1; + arg0->func = NULL; + } + break; + } + if (arg0->work[1] >= 3) { + var_r26 = 0; + if (lbl_1_bss_1428[arg0->work[0]] == -1) { + var_r30 = lbl_1_bss_1438[arg0->work[0]]; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != arg0->work[0]) { + sp8[var_r26++] = lbl_1_bss_1428[var_r29]; + } + } + while (TRUE) { + if (var_r30 != sp8[0] && var_r30 != sp8[1] && var_r30 != sp8[2]) { + lbl_1_bss_1428[arg0->work[0]] = var_r30; + break; + } + var_r30 = rand8() % 10 + 1; + } + Hu3DMotionTimeSet(arg0->model[0], lbl_1_bss_1428[arg0->work[0]] - 1 + 0.5f); + } + } else { + temp_r25 = lbl_1_bss_1438[arg0->work[0]] - 1; + do { + temp_r27 = rand8() % 10; + } while (temp_r25 == temp_r27); + lbl_1_bss_1438[arg0->work[0]] = temp_r27 + 1; + Hu3DMotionTimeSet(arg0->model[0], temp_r27 + 0.5f); + } +} + +void fn_1_14E6C(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = arg0->work[0]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 19)); + omSetTra(arg0, lbl_1_data_130[temp_r30].x, 250.0f, lbl_1_data_130[temp_r30].z); + omSetRot(arg0, 0.0f, 0.0f, 0.0f); + omSetSca(arg0, 0.0f, 0.0f, 0.0f); + Hu3DMotionSpeedSet(arg0->model[0], 0.0f); + HuAudFXPlay(0x302); + arg0->func = fn_1_14748; +} + +void fn_1_14F80(omObjData* arg0) { + Hu3DModelKill(arg0->model[1]); + Hu3DModelKill(arg0->model[2]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14FD4(omObjData* arg0) { + s32 temp_r29; + s32 var_r30; + + temp_r29 = arg0->work[0]; + for (var_r30 = 1; var_r30 < 3; var_r30++) { + if (arg0->work[3] <= 40) { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_6F4(0.0f, 360.0f, arg0->work[3], 40.0f); + } else { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_61C(360.0f, 0.0f, arg0->work[3] - 40, 20.0f); + } + if (arg0->work[1] / 10 == 0) { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x; + } else { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x + fn_1_5D4(0.0f, 40.0f + -80.0f * (var_r30 - 1), arg0->work[3], 20.0f); + } + Hu3DData[arg0->model[var_r30]].pos.y = 275.0f + fn_1_5D4(0.0f, 50.0f, arg0->work[3], 20.0f); + Hu3DData[arg0->model[var_r30]].pos.z = lbl_1_data_130[temp_r29].z; + } + if (arg0->work[3]++ >= 60) { + arg0->func = NULL; + } +} + +void fn_1_152F0(omObjData* arg0) { + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 20), + DATA_MAKE_NUM(DATADIR_MSTORY3, 21), + DATA_MAKE_NUM(DATADIR_MSTORY3, 22), + DATA_MAKE_NUM(DATADIR_MSTORY3, 23), + DATA_MAKE_NUM(DATADIR_MSTORY3, 24), + DATA_MAKE_NUM(DATADIR_MSTORY3, 25), + DATA_MAKE_NUM(DATADIR_MSTORY3, 26), + DATA_MAKE_NUM(DATADIR_MSTORY3, 27), + DATA_MAKE_NUM(DATADIR_MSTORY3, 28), + DATA_MAKE_NUM(DATADIR_MSTORY3, 29) + }; + + arg0->model[1] = Hu3DModelCreateFile(sp8[arg0->work[1] % 10]); + arg0->model[2] = Hu3DModelCreateFile(sp8[arg0->work[1] / 10]); + Hu3DMotionSpeedSet(arg0->model[1], 0.0f); + Hu3DMotionSpeedSet(arg0->model[2], 0.0f); + if (arg0->work[1] / 10 == 0) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + arg0->func = fn_1_14FD4; +} + +void fn_1_15450(s32 arg0) { + omObjData* temp_r3; + omObjData* temp_r3_2; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_14E6C); + temp_r3->work[0] = arg0; + do { + fn_1_938(); + } while (temp_r3->work[1] != 2); + fn_1_1442C(arg0); + fn_1_1456C(arg0); + temp_r3->work[1] = 3; + fn_1_938(); + temp_r3_2 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_152F0); + temp_r3_2->work[0] = arg0; + temp_r3_2->work[1] = lbl_1_bss_1428[arg0]; + fn_1_958(10); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 1, 15, 1); + do { + fn_1_938(); + } while (temp_r3_2->func); + lbl_1_bss_1490[arg0].unk18 = 1; + do { + fn_1_938(); + } while (lbl_1_bss_1490[arg0].unk18 != 2); + fn_1_958(150); + fn_1_14700(temp_r3); + fn_1_14F80(temp_r3_2); +} diff --git a/src/REL/mstory3Dll/win_effect.c b/src/REL/mstory3Dll/win_effect.c new file mode 100755 index 00000000..2a86dd6c --- /dev/null +++ b/src/REL/mstory3Dll/win_effect.c @@ -0,0 +1,322 @@ +#include "REL/mstory3Dll.h" +#include "game/data.h" +#include "game/hsfanim.h" +#include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/sprite.h" + +#include "ext_math.h" + +#define frand5() (((s32)frand() & 0x1F)) +#define frand8() (((s32)frand() & 0xFF)) + +typedef struct { + /* 0x00 */ Vec* unk00; + /* 0x04 */ Vec unk04; + /* 0x10 */ Vec unk10; + /* 0x1C */ u16 unk1C; + /* 0x1E */ u16 unk1E; + /* 0x20 */ u16 unk20; + /* 0x22 */ s16 unk22; + /* 0x24 */ float unk24; + /* 0x28 */ AnimData* unk28; +} StructBss1CF8; // Size 0x2C + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ char unk02[0x1A]; + /* 0x1C */ StructBss1CF8* unk1C; +} StructFn1E13C; // Size unknown + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3); +void fn_1_1E558(void); +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix); + +StructBss1CF8 lbl_1_bss_1CF8[2]; +s32 lbl_1_bss_1CF4; +s32 lbl_1_bss_1CF0; +s32 lbl_1_bss_1CEC; +s16 lbl_1_bss_1CE8; + +void fn_1_1DED8(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { + AnimData* temp_r28; + s16 var_r27; + + fn_1_1E13C(arg0 + 1, arg0 + 3, &lbl_1_bss_1CF8[0], arg2); + lbl_1_bss_1CF8[0].unk04 = *arg1; + lbl_1_bss_1CF8[0].unk24 = arg3 - 20; + fn_1_1E13C(arg0 + 2, arg0 + 3, &lbl_1_bss_1CF8[1], arg2); + lbl_1_bss_1CF8[1].unk04 = *arg1; + lbl_1_bss_1CF8[1].unk24 = arg3 - 20; + temp_r28 = HuSprAnimReadFile(arg0); + lbl_1_bss_1CE8 = HuSprGrpCreate(1); + var_r27 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_1CE8, 0, var_r27); + HuSprPosSet(lbl_1_bss_1CE8, 0, arg2->x, arg2->y); + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, 0.0f); + HuSprAttrSet(lbl_1_bss_1CE8, 0, 8); + HuPrcChildCreate(fn_1_1E558, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_1CF4 = 0; + lbl_1_bss_1CF0 = 0; + lbl_1_bss_1CEC = 0; +} + +void fn_1_1E0F4(void) { + lbl_1_bss_1CF4 = 1; +} + +s32 fn_1_1E108(void) { + return lbl_1_bss_1CF0; +} + +void fn_1_1E118(void) { + lbl_1_bss_1CEC = 1; +} + +s32 fn_1_1E12C(void) { + return lbl_1_bss_1CE8; +} + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3) { + Vec sp14; + AnimBmpData* temp_r31; + s32 sp10; + s32 var_r27; + s32 var_r26; + u16* var_r25; + AnimData* var_r24; + Vec* var_r22; + StructFn1E13C* temp_r23; + s16 var_r29; + s16 var_r28; + + var_r24 = HuSprAnimReadFile(arg0); + arg2->unk28 = var_r24; + temp_r31 = var_r24->bmp; + sp10 = temp_r31->sizeX * temp_r31->sizeY; + var_r25 = temp_r31->data; + for (var_r28 = var_r26 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + var_r26++; + } + } + } + arg2->unk20 = var_r26; + var_r22 = arg2->unk00 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r26 * sizeof(*var_r22), MEMORY_DEFAULT_NUM); + arg2->unk1C = temp_r31->sizeX; + arg2->unk1E = temp_r31->sizeY; + Hu3D2Dto3D(arg3, 1, &arg2->unk10); + for (var_r28 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + sp14 = *arg3; + sp14.x = sp14.x + var_r29 - temp_r31->sizeX / 2; + sp14.y = sp14.y + var_r28 - temp_r31->sizeY / 2; + Hu3D2Dto3D(&sp14, 1, var_r22); + var_r22++; + } + } + } + HuSprAnimKill(var_r24); + var_r24 = HuSprAnimRead(HuDataRead(arg1)); + var_r27 = Hu3DParticleCreate(var_r24, var_r26); + arg2->unk22 = var_r27; + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(var_r27, 1); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xA); + Hu3DParticleScaleSet(var_r27, 20.0f); + Hu3DParticleHookSet(var_r27, fn_1_1E820); + Hu3DParticleBlendModeSet(var_r27, 1); + Hu3DParticleAttrSet(var_r27, 2); + temp_r23 = Hu3DData[var_r27].unk_120; + temp_r23->unk1C = arg2; + temp_r23->unk00 = 0; + OSReport("Particle Count %d\n", var_r26); +} + +void fn_1_1E558(void) { + float var_f31; + float var_f30; + float temp_f29; + s16* temp_r30; + s16* temp_r29; + s16 i; + + var_f31 = 0.0f; + var_f30 = 0.0f; + while (lbl_1_bss_1CF4 == 0) { + HuPrcVSleep(); + } + Hu3DParticleAttrReset(lbl_1_bss_1CF8->unk22, 2); + HuPrcSleep(20); + Hu3DParticleAttrReset(lbl_1_bss_1CF8[1].unk22, 2); + temp_r30 = Hu3DData[lbl_1_bss_1CF8[0].unk22].unk_120; + temp_r29 = Hu3DData[lbl_1_bss_1CF8[1].unk22].unk_120; + while (*temp_r30 == 0 || *temp_r29 == 0) { + HuPrcVSleep(); + } + for (i = 0; i <= 20; i++) { + temp_f29 = i / 20.0f; + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, temp_f29); + HuPrcVSleep(); + } + OSReport("Finish\n"); + for (i = 0; i < 2; i++) { + Hu3DModelKill(lbl_1_bss_1CF8[i].unk22); + HuSprAnimKill(lbl_1_bss_1CF8[i].unk28); + } + lbl_1_bss_1CF0 = 1; + while (TRUE) { + if (lbl_1_bss_1CEC != 0) { + break; + } + var_f31 += var_f30; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + var_f30 += 0.5; + if (var_f30 > 10.0f) { + var_f30 = 10.0f; + } + temp_f29 = 1.0 + 0.25 * sind(var_f31); + HuSprScaleSet(lbl_1_bss_1CE8, 0, temp_f29, temp_f29); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_1CE8); + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { + Vec sp8; + float temp_f30; + float temp_f31; + s16 var_r22; + s16 var_r29; + StructBss1CF8* temp_r28; + HsfanimStruct01* var_r31; + s16 var_r27; + s16 temp_r25; + s16 temp_r24; + s16 temp_r21; + s16 temp_r26; + s16 temp_r20; + s16 var_r23; + + temp_r28 = particle->unk_1C; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_2D & 2) { + return; + } + temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f); + temp_r26 = temp_r21 / 2; + temp_r20 = temp_r21 - temp_r26; + PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8); + temp_f31 = PSVECMag(&sp8) / temp_r20; + for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + if (var_r29 == particle->unk_30) { + break; + } + var_r31->unk34 = temp_r28->unk04; + var_r27 = (frand8() * 360) >> 8; + temp_f30 = 0.2 * frand5(); + var_r31->unk08.x = temp_f30 * sind(var_r27); + var_r31->unk08.y = 0.1 * (frand5() + 100); + var_r31->unk08.z = temp_f30 * cosd(var_r27); + var_r31->unk40.r = 0xF0; + var_r31->unk40.g = 0x80; + var_r31->unk40.b = 0x60; + var_r31->unk2C = 10.0f; + var_r31->unk00 = 0; + var_r31->unk02 = 0; + var_r31->unk14.x = frandmod(360); + } + var_r31 = particle->unk_48; + for (var_r29 = var_r23 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + continue; + } + if (var_r31->unk00 == 0) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.999f; + var_r31->unk08.y -= 0.5f; + var_r31->unk08.z *= 0.999f; + if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) { + PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); + } + if (var_r31->unk02 == temp_r26) { + var_r31->unk00++; + } + if (var_r31->unk34.y <= 0.0f) { + var_r31->unk08.y = 0.5f * -var_r31->unk08.y; + var_r31->unk34.y = 0.0f; + } + } else if (var_r31->unk00 == 1) { + sp8 = temp_r28->unk00[var_r29]; + PSVECSubtract(&sp8, &var_r31->unk34, &sp8); + if (PSVECMag(&sp8) <= 1.0 + temp_f31) { + var_r23++; + var_r31->unk34 = temp_r28->unk00[var_r29]; + var_r31->unk00++; + continue; + } + PSVECNormalize(&sp8, &sp8); + var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x); + var_r31->unk08.y = sp8.y * temp_f31; + var_r31->unk08.z = sp8.z * temp_f31; + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk14.x += 20.0f; + } else { + var_r23++; + } + if (var_r31->unk00 >= 1) { + var_r27 = var_r31->unk40.r; + var_r27 += (var_r27 - 0xFF) / 20; + if (var_r27 > 0xFF) { + var_r31->unk40.r = 0xFF; + } else { + var_r31->unk40.r = var_r27; + } + temp_r25 = var_r31->unk40.g; + temp_r25 += (temp_r25 - 0xFF) / 20; + if (temp_r25 > 0xFF) { + var_r31->unk40.g = 0xFF; + } else { + var_r31->unk40.g = temp_r25; + } + temp_r24 = var_r31->unk40.b; + temp_r24 += (temp_r24 - 0x80) / 20; + if (temp_r24 > 0x80) { + var_r31->unk40.b = 0x80; + } else { + var_r31->unk40.b = temp_r24; + } + } + var_r31->unk2C -= 0.2f; + if (var_r31->unk2C < 5.0f) { + var_r31->unk2C = 5.0f; + } + var_r31->unk02++; + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (var_r23 >= particle->unk_30) { + particle->unk_00++; + } +} diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 1bb809d0..b6304228 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -575,15 +575,13 @@ void fn_1_13A0(void) GWPlayerCfg[0].character = itemno/6; { s32 i; - s32 character; for(i=1; i<4; i++) { GWPlayerCfg[i].character = GWPlayerCfg[i-1].character+1; - if(GWPlayerCfg[i].character > GW_CHARACTER_MAX) { + if(GWPlayerCfg[i].character > CHARNO_MAX ) { GWPlayerCfg[i].character = 0; } } - character = GWPlayerCfg[0].character; - GWSystem.unk0B[1] = character; + GWStoryCharSet(GWPlayerCfg[0].character); GWPlayer[0].character = GWPlayerCfg[0].character; GWPlayer[1].character = GWPlayerCfg[1].character; GWPlayer[2].character = GWPlayerCfg[2].character; diff --git a/src/REL/mstoryDll/board_clear.c b/src/REL/mstoryDll/board_clear.c new file mode 100755 index 00000000..e5e5612b --- /dev/null +++ b/src/REL/mstoryDll/board_clear.c @@ -0,0 +1,622 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ char unk18[0x1C]; + /* 0x34 */ StructFn352C unk34[4]; +} StructBss1C4; // Size 0x104 + +void fn_1_8A44(void); +void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1); +void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1); +void fn_1_8F68(void); +void fn_1_92D4(s32 arg0); +void fn_1_9718(omObjData* arg0, StructBss19C* arg1); +void fn_1_98A4(omObjData* arg0, StructBss19C* arg1); +void fn_1_992C(void); +void fn_1_A008(omObjData* arg0, StructBss19C* arg1); +void fn_1_A0EC(void); +void fn_1_A478(void); +void fn_1_A504(void); +void fn_1_A5F4(void); + +StructBss1C4 lbl_1_bss_1C4; +StructBss19C lbl_1_bss_19C; +StructBss19C lbl_1_bss_174; +StructBss19C lbl_1_bss_D4[4]; +StructBss19C lbl_1_bss_AC; +Process* lbl_1_bss_A8; + +s32 lbl_1_data_190[][4] = { + { MAKE_MESSID(30, 17), MAKE_MESSID(30, 23), MAKE_MESSID(30, 62), MAKE_MESSID(30, 63) }, + { MAKE_MESSID(30, 18), MAKE_MESSID(30, 24), MAKE_MESSID(30, 64), MAKE_MESSID(30, 65) }, + { MAKE_MESSID(30, 19), MAKE_MESSID(30, 25), MAKE_MESSID(30, 66), MAKE_MESSID(30, 67) }, + { MAKE_MESSID(30, 20), MAKE_MESSID(30, 26), MAKE_MESSID(30, 68), MAKE_MESSID(30, 69) }, + { MAKE_MESSID(30, 21), MAKE_MESSID(30, 27), MAKE_MESSID(30, 70), MAKE_MESSID(30, 71) } +}; + +s32 lbl_1_data_1E0[][3] = { + { MAKE_MESSID(30, 101), MAKE_MESSID(30, 102), MAKE_MESSID(30, 103) }, + { MAKE_MESSID(30, 104), MAKE_MESSID(30, 105), MAKE_MESSID(30, 106) }, + { MAKE_MESSID(30, 107), MAKE_MESSID(30, 108), MAKE_MESSID(30, 109) }, + { MAKE_MESSID(30, 110), MAKE_MESSID(30, 111), MAKE_MESSID(30, 112) }, + { MAKE_MESSID(30, 113), MAKE_MESSID(30, 114), MAKE_MESSID(30, 115) } +}; + +void fn_1_7090(s32 arg0, StructBss19C* arg1) { + fn_1_BAC(10); + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 5, 15, 0); + fn_1_BAC(5); + HuAudCharVoicePlay(lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0x128); + fn_1_BAC(25); + arg1->unk04 = 0; +} + +void fn_1_7134(s32 arg0, StructBss19C* arg1) { + float temp_f31; + float temp_f30; + float temp_f29; + s32 i; + + temp_f29 = Hu3DData[lbl_1_bss_174.unk00->model[7]].pos.y; + for (i = 0; i <= 30; i++) { + fn_1_B8C(); + temp_f31 = fn_1_870(temp_f29, 1000.0f, i, 30.0f); + temp_f30 = fn_1_870(0.0f, 1800.0f, i, 30.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); + Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); + } + arg1->unk04 = 0; +} + +void fn_1_731C(s32 arg0) { + float temp_f31; + float temp_f30; + s32 var_r30; + s32 i; + + var_r30 = arg0; + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1C4.unk34[i].unk00 != lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk00) { + Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[1], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[2], HU3D_ATTR_DISPOFF); + } + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][0]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, 1000.0f, 640.0f); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[8], HU3D_ATTR_DISPOFF); + for (i = 0; i <= 180; i++) { + fn_1_B8C(); + temp_f31 = fn_1_948(1000.0f, 150.0f, i, 180.0f); + temp_f30 = fn_1_948(1800.0f, 0.0f, i, 180.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); + Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); + } + lbl_1_bss_174.unk04 = (void*) fn_1_8E6C; + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; + fn_1_BAC(40); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + fn_1_BAC(50); + lbl_1_bss_58[1] = HuAudSeqPlay(0x35); + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][1]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); + lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; + fn_1_BAC(30); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; + fn_1_BAC(90); + lbl_1_bss_AC.unk04 = (void*) fn_1_7134; + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 5, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[lbl_1_bss_1C4.unk00][2]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1A64(lbl_1_bss_1C4.unk08); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); +} + +void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2) { + s32 i; + + lbl_1_bss_A8 = arg0; + lbl_1_bss_1C4.unk00 = arg1; + lbl_1_bss_1C4.unk10 = arg2; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_A8, fn_1_A478); + fn_1_3704(); + fn_1_92D4(arg2); + HuPrcChildCreate(fn_1_8F68, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_A0EC, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_992C, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_8A44, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_7AE0(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + fontcolor = FONT_COLOR_WHITE; + printWin(var_r30, var_r29, 220, 150, &sp10); + if (lbl_1_bss_19C.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_174.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_D4[i].unk04 == NULL) { + print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + if (lbl_1_bss_AC.unk04 == NULL) { + print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> TRUE"); + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1C4.unk00, lbl_1_bss_1C4.unk04, lbl_1_bss_1C4.unk10); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_1C4.unk34[i].unk00, lbl_1_bss_1C4.unk34[i].unk04, lbl_1_bss_1C4.unk34[i].unk08, + lbl_1_bss_1C4.unk34[i].unk0C, lbl_1_bss_1C4.unk34[i].unk14, lbl_1_bss_1C4.unk34[i].unk10); + } + } +} + +void fn_1_7E70(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x33); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_7ECC(void) { + s32 spC = 0; + s32 sp8 = 0; + + lbl_1_bss_1C4.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1D1C(lbl_1_bss_1C4.unk08, lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][0]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_9718; + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_A504); + do { + fn_1_B8C(); + } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); + do { + fn_1_B8C(); + } while (lbl_1_bss_AC.unk04 != NULL); +} + +void fn_1_8090(void) { + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][2]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); + fn_1_BAC(180); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); + fn_1_BAC(75); + lbl_1_bss_58[1] = HuAudSeqPlay(0x35); + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 4, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][3]); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = NULL; + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); + fn_1_1A64(lbl_1_bss_1C4.unk08); + do { + fn_1_B8C(); + } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); +} + +void fn_1_83B0(void) { + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[1], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_A5F4); + fn_1_BAC(150); +} + +void fn_1_8408(void) { + omOvlHisData* var_r30; + u16 sp8[] = { 53, 56, 55, 54, 57 }; + s32 sp14[] = { 9, 14, 10, 11, 12 }; + s32 var_r29; + s32 var_r28; + s32 i; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + MGSeqKillAll(); + var_r29 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10; + var_r28 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk14; + GWPlayerCfg[lbl_1_bss_1C4.unk04].character = GWPlayerCfg->character; + GWPlayerCfg[lbl_1_bss_1C4.unk04].pad_idx = GWPlayerCfg->pad_idx; + GWPlayerCfg[lbl_1_bss_1C4.unk04].group = GWPlayerCfg->group; + GWPlayerCfg[lbl_1_bss_1C4.unk04].iscom = GWPlayerCfg->iscom; + GWPlayerCfg->character = var_r29; + GWPlayerCfg->pad_idx = var_r28; + GWPlayerCfg->group = 0; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + GWPlayerCfg[1].character = sp14[GWSystem.board]; + for (i = 1; i < 4; i++) { + GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; + } + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat); + OSReport("########## dllno - %d\n", sp8[GWSystem.board], GWSystem.board); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_87DC(s32 arg0, StructBss19C* arg1) { + fn_1_7E70(); + fn_1_7ECC(); + fn_1_731C(lbl_1_bss_1C4.unk00); + fn_1_83B0(); + fn_1_8408(); + arg1->unk04 = NULL; +} + +void fn_1_8A44(void) { + omObjData* var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_19C.unk00 = var_r31; + lbl_1_bss_19C.unk04 = (void*) fn_1_87DC; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_19C.unk04 != NULL) { + lbl_1_bss_19C.unk04(var_r31, &lbl_1_bss_19C); + } + } +} + +void fn_1_8AE0(omObjData* arg0) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 76 + lbl_1_bss_1C4.unk00)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81)); + Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 8, 8, 0, 1); +} + +void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg0->work[0]++, 360.0f); + if (arg0->work[0] >= 360) { + arg0->work[0] = 0; + } +} + +void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[7]].pos.y += fn_1_ACC(0.0f, 0.25f, arg0->work[0]++, 360.0f); + Hu3DData[arg0->model[8]].pos.y = Hu3DData[arg0->model[7]].pos.y + 15.0f; + if (arg0->work[0] >= 360) { + arg0->work[0] = 0; + } +} + +void fn_1_8F68(void) { + omObjData* temp_r31; + + temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_174.unk00 = temp_r31; + lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; + lbl_1_bss_174.unk00->data = &lbl_1_bss_174; + fn_1_8AE0(temp_r31); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_174.unk04 != NULL) { + lbl_1_bss_174.unk04(temp_r31, &lbl_1_bss_174); + } + } +} + +void fn_1_92D4(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_1C4.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_1C4.unk34[i], spC[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1C4.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1; + } +} + +Vec lbl_1_data_354[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, -30.0f, 460.0f }, + { 100.0f, -60.0f, 460.0f }, + { 300.0f, -90.0f, 460.0f } +}; + +void fn_1_9408(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 temp_r29; + + var_r30 = arg1; + temp_r29 = lbl_1_bss_1C4.unk34[var_r30].unk10; + arg0->model[1] = CharModelCreate(temp_r29, 4); + arg0->motion[1] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[3] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 48 + temp_r29)); + arg0->motion[5] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 40 + temp_r29)); + CharModelMotionDataClose(temp_r29); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y + 90.0f, lbl_1_data_354[var_r30].z - 15.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62)); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y, lbl_1_data_354[var_r30].z); + if (lbl_1_bss_1C4.unk34[var_r30].unk18 == 4) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelShadowMapSet(arg0->model[2]); + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); +} + +void fn_1_9718(omObjData* arg0, StructBss19C* arg1) { + Vec sp20 = { 120.0f, 0.0f, 670.0f }; + + fn_1_2908(arg0, 1, sp20, -1.0f, 30.0f, 10.0f); + lbl_1_bss_AC.unk04 = (void*) fn_1_A008; + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 2, 0, 0); + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp20, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + fn_1_2224(lbl_1_bss_174.unk00, 2, 2, 0); + arg1->unk04 = 0; +} + +void fn_1_98A4(omObjData* arg0, StructBss19C* arg1) { + if (arg0->motion[6] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, 4, 15, 1); + arg1->unk04 = 0; + } +} + +void fn_1_992C(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r30 = lbl_1_bss_1C4.unk14++; + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_D4[temp_r30].unk00 = temp_r3; + lbl_1_bss_D4[temp_r30].unk04 = NULL; + lbl_1_bss_D4[temp_r30].unk00->data = &lbl_1_bss_D4[temp_r30]; + fn_1_9408(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_D4[temp_r30].unk04 != NULL) { + lbl_1_bss_D4[temp_r30].unk04(temp_r3, &lbl_1_bss_D4[temp_r30]); + } + } +} + +void fn_1_9D08(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 97), + DATA_MAKE_NUM(DATADIR_MSTORY, 108), + DATA_MAKE_NUM(DATADIR_MSTORY, 116), + DATA_MAKE_NUM(DATADIR_MSTORY, 124), + DATA_MAKE_NUM(DATADIR_MSTORY, 131) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 98), DATA_MAKE_NUM(DATADIR_MSTORY, 100), DATA_MAKE_NUM(DATADIR_MSTORY, 101), DATA_MAKE_NUM(DATADIR_MSTORY, 103), DATA_MAKE_NUM(DATADIR_MSTORY, 104) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 109), DATA_MAKE_NUM(DATADIR_MSTORY, 111), DATA_MAKE_NUM(DATADIR_MSTORY, 112), DATA_MAKE_NUM(DATADIR_MSTORY, 114), DATA_MAKE_NUM(DATADIR_MSTORY, 115) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 117), DATA_MAKE_NUM(DATADIR_MSTORY, 119), DATA_MAKE_NUM(DATADIR_MSTORY, 120), DATA_MAKE_NUM(DATADIR_MSTORY, 122), DATA_MAKE_NUM(DATADIR_MSTORY, 123) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 125), DATA_MAKE_NUM(DATADIR_MSTORY, 126), DATA_MAKE_NUM(DATADIR_MSTORY, 127), DATA_MAKE_NUM(DATADIR_MSTORY, 129), DATA_MAKE_NUM(DATADIR_MSTORY, 130) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 132), DATA_MAKE_NUM(DATADIR_MSTORY, 134), DATA_MAKE_NUM(DATADIR_MSTORY, 135), DATA_MAKE_NUM(DATADIR_MSTORY, 137), DATA_MAKE_NUM(DATADIR_MSTORY, 138) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 5, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_A008(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_A0EC(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_AC.unk00 = temp_r3; + lbl_1_bss_AC.unk04 = NULL; + lbl_1_bss_AC.unk00->data = &lbl_1_bss_AC; + temp_r30 = lbl_1_bss_1C4.unk00; + fn_1_9D08(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_AC.unk04 != NULL) { + lbl_1_bss_AC.unk04(temp_r3, &lbl_1_bss_AC); + } + } +} + +void fn_1_A478(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 170.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1700.0f; +} + +void fn_1_A504(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1750.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} + +void fn_1_A5F4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_174.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_174.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 130.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 150.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_174.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} diff --git a/src/REL/mstoryDll/board_miss.c b/src/REL/mstoryDll/board_miss.c new file mode 100755 index 00000000..04c63c30 --- /dev/null +++ b/src/REL/mstoryDll/board_miss.c @@ -0,0 +1,817 @@ +#include "REL/mstoryDll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x1C]; + /* 0x034 */ StructFn352C unk34[4]; + /* 0x104 */ float unk104; +} StructBss450; // Size 0x108 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; +} StructBss2D0; // Size 0x18 + +void fn_1_C360(void); +void fn_1_C7C4(void); +void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1); +void fn_1_D180(void); +void fn_1_D57C(s32 arg0); +void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1); +void fn_1_DC08(omObjData* arg0, StructBss19C* arg1); +void fn_1_DD20(omObjData* arg0, StructBss19C* arg1); +void fn_1_DE04(void); +void fn_1_E228(void); +void fn_1_E2B4(void); +void fn_1_E3E4(void); +void fn_1_E620(void); + +StructBss450 lbl_1_bss_450; +StructBss19C lbl_1_bss_428; +StructBss19C lbl_1_bss_400; +StructBss19C lbl_1_bss_3D8; +StructBss19C lbl_1_bss_338[4]; +AnimData* lbl_1_bss_330[2]; +StructBss2D0 lbl_1_bss_2D0[4]; +s32 lbl_1_bss_2CC; +Process* lbl_1_bss_2C8; + +s32 lbl_1_data_388[][4] = { + { MAKE_MESSID(30, 28), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 29), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 30), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 31), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 32), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) } +}; + +s32 lbl_1_data_3D8[] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1 +}; + +void fn_1_A830(void) { + s32 temp_r3; + + temp_r3 = HuDataDirReadAsync(DATADIR_BOARD); + if (temp_r3 != -1) { + while (HuDataGetAsyncStat(temp_r3) == 0) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while (HuARDMACheck()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + temp_r3 = HuDataDirReadAsync(lbl_1_data_3D8[GWSystem.board]); + if (temp_r3 != -1) { + while (HuDataGetAsyncStat(temp_r3) == 0) { + HuPrcVSleep(); + } + } + lbl_1_bss_2CC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_A8F8(void) { + s32 i; + s32 j; + + lbl_1_bss_2D0[0].unk00 = 0; + lbl_1_bss_2D0[0].unk04 = 0; + lbl_1_bss_2D0[0].unk10 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10; + lbl_1_bss_2D0[0].unk14 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14; + lbl_1_bss_2D0[0].unk08 = 0; + for (i = 1; i < 4; i++) { + lbl_1_bss_2D0[i].unk10 = -1; + lbl_1_bss_2D0[i].unk14 = i; + lbl_1_bss_2D0[i].unk08 = 1; + } + for (i = 1; i < 4; i++) { + do { + lbl_1_bss_2D0[i].unk10 = rand8() % 8; + for (j = 0; j < 4; j++) { + if (i != j && lbl_1_bss_2D0[j].unk10 != -1 && lbl_1_bss_2D0[i].unk10 == lbl_1_bss_2D0[j].unk10) { + break; + } + } + } while (j != 4); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_2D0[i].unk10; + GWPlayerCfg[i].pad_idx = lbl_1_bss_2D0[i].unk14; + GWPlayerCfg[i].group = 0; + GWPlayerCfg[i].iscom = lbl_1_bss_2D0[i].unk08; + } + BoardSaveInit(GWSystem.board); + CharKill(-1); + HuDataDirClose(DATADIR_MSTORY); + HuPrcChildCreate(fn_1_A830, 100, 0x3000, 0, lbl_1_bss_2C8); +} + +void fn_1_ABAC(void) { + omOvlHisData* var_r30; + s32 sp8[] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 }; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet() != 0) { + fn_1_B8C(); + } + CharModelKill(-1); + MGSeqKillAll(); + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, var_r30->stat); + do { + fn_1_B8C(); + } while (lbl_1_bss_2CC != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2) { + s32 i; + + lbl_1_bss_2C8 = arg0; + lbl_1_bss_450.unk04 = arg2; + lbl_1_bss_450.unk10 = arg2; + lbl_1_bss_450.unk00 = arg1; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_2C8, fn_1_E228); + fn_1_3704(); + fn_1_D57C(arg2); + HuPrcChildCreate(fn_1_C7C4, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_D180, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_DE04, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_C360, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_AE30(omObjData* arg0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_AEBC(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + printWin(var_r30, var_r29, 220, 160, &sp10); + if (lbl_1_bss_428.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_400.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_3D8.unk04 == NULL) { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> FALSE"); + } else { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_338[i].unk04 == NULL) { + print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(var_r30, var_r29 + 90, 1.0f, "P:%d W:%d", lbl_1_bss_450.unk04, lbl_1_bss_450.unk10); + print8(var_r30, var_r29 + 110, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 120 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_450.unk34[i].unk00, lbl_1_bss_450.unk34[i].unk04, lbl_1_bss_450.unk34[i].unk08, + lbl_1_bss_450.unk34[i].unk0C, lbl_1_bss_450.unk34[i].unk14, lbl_1_bss_450.unk34[i].unk10); + } + } +} + +void fn_1_B230(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x34); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_B28C(void) { + s32 i; + + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_450.unk00][1]); + lbl_1_bss_450.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_450.unk10); + fn_1_CE48(3, -1, 15, 1, 0); + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][0]); + fn_1_1ACC(lbl_1_bss_450.unk08, -1); + fn_1_1CE8(lbl_1_bss_450.unk08, MAKE_MESSID(37, 4)); + fn_1_CE48(1, -1, 15, 1, 0); + fn_1_1A64(lbl_1_bss_450.unk08); + for (i = 0; i < 4; i++) { + lbl_1_bss_338[i].unk04 = (void*) fn_1_DAA4; + } + do { + fn_1_B8C(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_338[i].unk04 != NULL) { + break; + } + } + } while (i != 4); + lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DC08; + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E2B4); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 == NULL) { + break; + } + } + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_3D8.unk04 == NULL) { + break; + } + } + fn_1_BAC(30); +} + +BOOL fn_1_B4A0(void) { + BOOL temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][1]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +BOOL fn_1_B588(void) { + BOOL temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][2]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +BOOL fn_1_B670(void) { + BOOL temp_r31 = FALSE; + + fn_1_CE48(3, -1, 15, 1, 0); + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][3]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + fn_1_CE48(1, -1, 15, 1, 0); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1B78(lbl_1_bss_450.unk0C, 1); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +void fn_1_B78C(void) { + fn_1_BAC(60); + fn_1_A8F8(); + Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, 4, 15, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, 3, 15, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0); + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E3E4); + fn_1_BAC(150); +} + +void fn_1_B8C8(void) { +} + +void fn_1_B8CC(void) { + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E620); + lbl_1_bss_3D8.unk04 = (void*) fn_1_CEF4; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DD20; + do { + fn_1_B8C(); + } while (lbl_1_bss_3D8.unk04 != NULL); + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 2, 0); +} + +void fn_1_B9D0(s32 arg0) { + s32 i; + + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + fn_1_B8C(); + if (WipeStatGet() == 0) { + break; + } + } + CharModelKill(-1); + HuAudFadeOut(1); + if (arg0 == 1) { + omOvlReturnEx(1, 1); + } else { + GWPlayerCfg->group = 0; + GWPlayerCfg->character = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10; + GWPlayerCfg->pad_idx = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_BBD8(s32 arg0, StructBss19C* arg1) { + s32 i; + s32 var_r30 = 0; + + fn_1_B230(); + fn_1_B28C(); + lbl_1_bss_450.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_450.unk10); + while (TRUE) { + fn_1_B8C(); + if (fn_1_B4A0()) { + var_r30 = 0; + break; + } + if (fn_1_B588()) { + var_r30 = 2; + break; + } + if (fn_1_B670()) { + var_r30 = 1; + break; + } + } + fn_1_1A64(lbl_1_bss_450.unk08); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_450.unk34[i].unk00 != lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk00) { + Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[1], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[2], HU3D_ATTR_DISPOFF); + } + switch (var_r30) { + case 1: + fn_1_B8C8(); + break; + case 0: + fn_1_B78C(); + break; + case 2: + fn_1_B8CC(); + break; + } + switch (var_r30) { + case 0: + fn_1_ABAC(); + break; + case 1: + case 2: + fn_1_B9D0(var_r30); + /* fallthrough */ + default: + arg1->unk04 = 0; + break; + } +} + +void fn_1_C360(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_428.unk00 = temp_r3; + lbl_1_bss_428.unk04 = (void*) fn_1_BBD8; + lbl_1_bss_428.unk00->data = &lbl_1_bss_428; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_428.unk04 != NULL) { + lbl_1_bss_428.unk04(temp_r3, &lbl_1_bss_428); + } + } +} + +void fn_1_C414(omObjData* arg0, s32 arg1) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 63)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 64)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "partybox_fix2-effect_fook1", arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + lbl_1_bss_330[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 65 + arg1 * 2), MEMORY_DEFAULT_NUM)); + lbl_1_bss_330[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 66 + arg1 * 2), MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(lbl_1_bss_330[0], lbl_1_bss_400.unk00->model[5], "ys26_p0"); + Hu3DAnimCreate(lbl_1_bss_330[1], lbl_1_bss_400.unk00->model[5], "ys26_p1"); +} + +void fn_1_C708(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_C7C4(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_400.unk00 = temp_r3; + lbl_1_bss_400.unk04 = (void*) fn_1_C708; + lbl_1_bss_400.unk00->data = &lbl_1_bss_400; + fn_1_C414(temp_r3, lbl_1_bss_450.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_400.unk04 != NULL) { + lbl_1_bss_400.unk04(temp_r3, &lbl_1_bss_400); + } + } +} + +void fn_1_CB48(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 0x61), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x6C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x74), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x7C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x83) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x64), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67), DATA_MAKE_NUM(DATADIR_MSTORY, 0x68) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x6F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72), DATA_MAKE_NUM(DATADIR_MSTORY, 0x73) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x77), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7B) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81), DATA_MAKE_NUM(DATADIR_MSTORY, 0x82) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x86), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89), DATA_MAKE_NUM(DATADIR_MSTORY, 0x8A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_3D8.unk00->work[0] = arg4; + lbl_1_bss_3D8.unk00->work[1] = arg1; + lbl_1_bss_3D8.unk00->work[2] = arg2 + 1; +} + +void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 0.0f, 0.0f, 460.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 0.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_CFD8(omObjData* arg0, StructBss19C* arg1) { + s32 i; + + for (i = 0; i < 15; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].rot.y = fn_1_828(0.0f, 135.0f, i, 15.0f); + } + arg1->unk04 = 0; +} + +void fn_1_D09C(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_D180(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_3D8.unk00 = temp_r3; + lbl_1_bss_3D8.unk04 = NULL; + lbl_1_bss_3D8.unk00->data = &lbl_1_bss_3D8; + fn_1_CB48(temp_r3, lbl_1_bss_450.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_3D8.unk04 != NULL) { + lbl_1_bss_3D8.unk04(temp_r3, &lbl_1_bss_3D8); + } + if (temp_r3->work[0] != 0) { + fn_1_AE30(temp_r3); + } + } +} + +void fn_1_D57C(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_450.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_450.unk34[i], spC[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_450.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1; + } +} + +Vec lbl_1_data_540[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, -30.0f, 460.0f }, + { 100.0f, -60.0f, 460.0f }, + { 300.0f, -90.0f, 460.0f } +}; + +void fn_1_D6B0(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 temp_r28; + + var_r30 = arg1; + temp_r28 = lbl_1_bss_450.unk34[var_r30].unk10; + arg0->model[1] = CharModelCreate(lbl_1_bss_450.unk34[arg1].unk10, 4); + arg0->motion[1] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[3] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + CharModelMotionDataClose(temp_r28); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_540[var_r30].x, 90.0f + lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z - 15.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62)); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_540[var_r30].x, lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z); + if (lbl_1_bss_450.unk34[var_r30].unk18 == 4) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); + Hu3DModelShadowMapSet(arg0->model[2]); +} + +void fn_1_D9A8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[0] = arg4; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[1] = arg1; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[2] = arg2 + 1; +} + +void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1) { + float temp_f31; + s32 i; + + temp_f31 = Hu3DData[arg0->model[1]].pos.y; + for (i = 0; i < 60; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].pos.y = fn_1_948(temp_f31, 0.0f, i, 60.0f); + Hu3DData[arg0->model[2]].pos.y = fn_1_948(temp_f31 - 90.0f, -90.0f, i, 60.0f); + } + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + arg1->unk04 = 0; +} + +void fn_1_DC08(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 120.0f, 0.0f, 670.0f }; + + lbl_1_bss_3D8.unk04 = (void*) fn_1_D09C; + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0); + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_DD20(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 600.0f, 0.0f, 700.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_DE04(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r30 = lbl_1_bss_450.unk14++; + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_338[temp_r30].unk00 = temp_r3; + lbl_1_bss_338[temp_r30].unk04 = NULL; + lbl_1_bss_338[temp_r30].unk00->data = lbl_1_bss_338; + fn_1_D6B0(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_338[temp_r30].unk04 != NULL) { + lbl_1_bss_338[temp_r30].unk04(temp_r3, &lbl_1_bss_338[temp_r30]); + } + if (temp_r3->work[0] != 0) { + fn_1_AE30(temp_r3); + } + } +} + +void fn_1_E228(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 170.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1700.0f; +} + +void fn_1_E2B4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1750.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); + if (lbl_1_bss_450.unk104 != 0.0f) { + var_r31->unk08.y = 125.0f + lbl_1_bss_450.unk104; + } +} + +void fn_1_E3E4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_400.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_400.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 125.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_400.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} + +void fn_1_E620(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 220.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1600.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} diff --git a/src/REL/mstoryDll/main.c b/src/REL/mstoryDll/main.c new file mode 100755 index 00000000..7f4f2cb7 --- /dev/null +++ b/src/REL/mstoryDll/main.c @@ -0,0 +1,1012 @@ +#include "REL/mstoryDll.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +char lbl_1_bss_6C[0x3C]; // unused +s32 lbl_1_bss_68; +s32 lbl_1_bss_58[4]; +char lbl_1_bss_48[0x10]; // unused +StructBss4 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E } +}; + +char* lbl_1_data_100[] = { + "S-2 : NORMAL STORY - BOARD CLEAR EVENT", + "S-3 : NORMAL STORY - BOARD MISS EVENT", + "S-4 : NORMAL STORY - MINIGAME CLEAR EVENT", + "S-5 : NORMAL STORY - MINIGAME MISS EVENT" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 var_r30; + s32 var_r31; + s32 sp10; + s32 spC; + s32 sp8; + s32 i; + + sp14 = 0; + var_r30 = 0; + var_r31 = 0; + sp10 = 1; + spC = 1; + sp8 = 1; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_B8C(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_DOWN) || HuPadStkY[0] >= 30) { + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + fn_1_BAC(5); + } + if ((HuPadBtnDown[0] & PAD_BUTTON_UP) || HuPadStkY[0] <= -30) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 3; + } + fn_1_BAC(5); + } + if (HuPadBtnDown[0] & PAD_BUTTON_RIGHT) { + var_r31++; + if (var_r31 > 4) { + var_r31 = 0; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_LEFT) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 4; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 1 - EVENT SELECT <<<<<"); + print8(24, 130, 1.5f, "MAP NUMBER : %d", var_r31 + 1); + for (i = 0; i < 4; i++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == i) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 160 + i * 15, 1.5f, "%s", lbl_1_data_100[i]); + } + fn_1_B8C(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_B8C(); + } + GWSystem.board = var_r31; + switch (var_r30) { + case 0: + fn_1_79B8(lbl_1_bss_0, var_r31, 0); + break; + case 1: + fn_1_ACFC(lbl_1_bss_0, var_r31, 0); + break; + case 2: + fn_1_E710(lbl_1_bss_0, var_r31, 0); + break; + case 3: + fn_1_11624(lbl_1_bss_0, var_r31, 0); + break; + } + while (TRUE) { + fn_1_B8C(); + } +} + +#include "src/REL/executor.c" + +void fn_1_488(void) { + s32 i; + + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + switch (omovlevtno) { + case 0: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { + break; + } + } + fn_1_79B8(lbl_1_bss_0, GWSystem.board, i); + break; + case 1: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { + break; + } + } + fn_1_ACFC(lbl_1_bss_0, GWSystem.board, i); + break; + case 2: + if (GWPlayerCoinWinGet(0) >= 10) { + fn_1_E710(lbl_1_bss_0, GWSystem.board, 0); + } else { + fn_1_11624(lbl_1_bss_0, GWSystem.board, 0); + } + break; + case 20: + fn_1_14150(lbl_1_bss_0); + break; + } +} + +void ObjectSetup(void) { + fn_1_488(); +} + +float fn_1_828(float arg0, float arg1, float arg2, float arg3) { + if (arg3 <= arg2) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_850(float arg0, float arg1, float arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_870(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_948(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_A10(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_ACC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_B88(void) { +} + +void fn_1_B8C(void) { + HuPrcVSleep(); +} + +void fn_1_BAC(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_BD4(void) { + HuPrcEnd(); +} + +void fn_1_BF4(void) { + HuWinInit(1); +} + +void fn_1_C18(void) { + HuWinAllKill(); +} + +void fn_1_C38(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_948(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_948(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_948(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_948(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_948(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_948(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_948(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_948(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_1680(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6) { + s32 temp_r31; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2.0f; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } + temp_r31 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + if (arg6 != -1) { + arg6 = GWPlayerCfg[arg6].pad_idx; + winData[temp_r31].active_pad = 1; + } else { + winData[temp_r31].active_pad = 0xF; + } + HuWinMesPalSet(temp_r31, 7, 0, 0, 0); + fn_1_C38(temp_r31, arg4, arg5, 1); + return temp_r31; +} + +s32 fn_1_1834(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_1680(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +void fn_1_1A04(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_C38(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1A64(s32 arg0) { + fn_1_1A04(arg0, 0.5f, 0.5f); +} + +void fn_1_1ACC(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +BOOL fn_1_1B78(s32 arg0, s32 arg1) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} + +BOOL fn_1_1C34(s32 arg0) { + return fn_1_1B78(arg0, 0); +} + +void fn_1_1CE8(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D1C(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1D5C(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1DCC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_1F44(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1F44(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2224(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +s32 fn_1_22B4(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_22FC(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2350(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2710(void (*arg0)(void)) { + lbl_1_bss_4.unk00 = arg0; +} + +void fn_1_2720(void (*arg0)(void)) { + lbl_1_bss_4.unk04 = arg0; +} + +void fn_1_2730(omObjData* arg0) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_27E8(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 0.1f, 10000.0f, 1.2f); + lbl_1_bss_4.unk00 = arg1; + lbl_1_bss_4.unk04 = fn_1_2350; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2730); +} + +void fn_1_2908(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2CB0(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_850(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_828(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_34A4(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_352C(StructFn352C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_35C0(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_3618(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_3704(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_37C8(StructBss4* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_3804(StructBss4* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_3848(StructBss4* arg0, StructBss4* arg1, s32 arg2, float arg3) { + arg0->unk08.x = fn_1_850(arg0->unk08.x, arg1->unk14, arg3); + arg0->unk08.y = fn_1_850(arg0->unk08.y, arg1->unk18, arg3); + arg0->unk08.z = fn_1_850(arg0->unk08.z, arg1->unk1C, arg3); + arg0->unk20.x = fn_1_850(arg0->unk20.x, arg1->unk2C, arg3); + arg0->unk20.y = fn_1_850(arg0->unk20.y, arg1->unk30, arg3); + arg0->unk20.z = fn_1_850(arg0->unk20.z, arg1->unk34, arg3); + if (arg2 != 0) { + arg0->unk38 = fn_1_850(arg0->unk38, arg1->unk3C, arg3); + } +} + +void fn_1_3ABC(StructBss4* arg0, float arg1) { + fn_1_3848(arg0, arg0, 1, arg1); +} + +void fn_1_3D28(StructBss4* arg0, float arg1) { + fn_1_3848(arg0, arg0, 0, arg1); +} + +void fn_1_3F54(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_828(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_828(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_828(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_828(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_828(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_828(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_828(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_41D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_3F54(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4484(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_3F54(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_48F0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_948(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_948(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_948(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_948(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_948(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_948(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_948(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4D44(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_48F0(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_51D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_48F0(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_5828(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_870(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_870(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_870(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_870(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_870(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_870(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_870(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5CEC(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_5828(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_61E8(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_5828(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_68B0(omObjData* arg0) { + s32 var_r30; + + if (arg0->work[0] == 0 && arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, 0x40000001U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_6974(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6AFC(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_6B30(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_6B70(s32 arg0, s32 arg1) { + fn_1_1ACC(arg0, arg1); +} + +void fn_1_6C1C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1ACC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6E04(s32 arg0) { + return fn_1_1B78(arg0, 0); +} + +s32 fn_1_6EB8(s32 arg0, s32 arg1) { + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r31; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_f31 = spC[0]; + var_f30 = spC[1]; + var_f29 = 550.0f - var_f31; + var_f28 = 430.0f - var_f30; + var_r31 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + if (arg1 != -1) { + arg1 = GWPlayerCfg[arg1].pad_idx; + winData[var_r31].active_pad = 1; + } else { + winData[var_r31].active_pad = 0xF; + } + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + fn_1_C38(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +void fn_1_7028(s32 arg0) { + fn_1_1A04(arg0, 0.5f, 0.5f); +} diff --git a/src/REL/mstoryDll/mg_clear.c b/src/REL/mstoryDll/mg_clear.c new file mode 100755 index 00000000..48fb2dc4 --- /dev/null +++ b/src/REL/mstoryDll/mg_clear.c @@ -0,0 +1,691 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ char unk0C[4]; + /* 0x010 */ s32 unk10; + /* 0x014 */ char unk14[0x20]; + /* 0x034 */ StructFn352C unk34[4]; + /* 0x104 */ s32 unk104; +} StructBss608; // Size 0x108 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; +} StructData570; // Size 0x14 + +void fn_1_FD1C(void); +void fn_1_10298(omObjData* arg0, StructBss19C* arg1); +void fn_1_10384(omObjData* arg0, StructBss19C* arg1); +void fn_1_10450(omObjData* arg0, StructBss19C* arg1); +void fn_1_1054C(void); +void fn_1_108F8(void); +void fn_1_10C6C(s32 arg0); +void fn_1_10FD0(void); +void fn_1_112A0(void); +void fn_1_1132C(void); +void fn_1_1141C(void); +void fn_1_11534(void); + +StructBss608 lbl_1_bss_608; +StructBss19C lbl_1_bss_5E0; +StructBss19C lbl_1_bss_5B8; +StructBss19C lbl_1_bss_590; +StructBss19C lbl_1_bss_568; +AnimData* lbl_1_bss_560[2]; +s32 lbl_1_bss_55C; +Process* lbl_1_bss_558; + +StructData570 lbl_1_data_570[] = { + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 } +}; + +s32 lbl_1_data_930[][4] = { + { MAKE_MESSID(30, 72), MAKE_MESSID(30, 73) }, + { MAKE_MESSID(30, 74), MAKE_MESSID(30, 75) }, + { MAKE_MESSID(30, 76), MAKE_MESSID(30, 77) }, + { MAKE_MESSID(30, 78), MAKE_MESSID(30, 79) }, + { MAKE_MESSID(30, 80), MAKE_MESSID(30, 81) } +}; + +void fn_1_E710(Process* arg0, s32 arg1, s32 arg2) { + lbl_1_bss_558 = arg0; + lbl_1_bss_608.unk00 = arg1; + lbl_1_bss_608.unk10 = arg2; + fn_1_BF4(); + lbl_1_bss_608.unk104 = fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_558, fn_1_112A0); + fn_1_3704(); + fn_1_10C6C(arg2); + HuPrcChildCreate(fn_1_1054C, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_108F8, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_10FD0, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_FD1C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_E828(omObjData* arg0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_E8B4(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + printWin(var_r30, var_r29, 220, 130, &sp10); + if (lbl_1_bss_5E0.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_5B8.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_590.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_568.unk04 == NULL) { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> FALSE"); + } else { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> TRUE"); + } + print8(var_r30, var_r29 + 60, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_608.unk00, lbl_1_bss_608.unk04, lbl_1_bss_608.unk10); + print8(var_r30, var_r29 + 80, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 90 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_608.unk34[i].unk00, lbl_1_bss_608.unk34[i].unk04, lbl_1_bss_608.unk34[i].unk08, + lbl_1_bss_608.unk34[i].unk0C, lbl_1_bss_608.unk34[i].unk14, lbl_1_bss_608.unk34[i].unk10); + } + } +} + +void fn_1_EC00(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x36); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_EC5C(void) { + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + fn_1_1D1C(lbl_1_bss_608.unk08, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0); + fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][0]); + fn_1_1ACC(lbl_1_bss_608.unk08, -1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_608.unk08); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 2, 2, 0, 0); + fn_1_BAC(90); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 4, 15, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 4, 15, 0); + fn_1_2224(lbl_1_bss_5B8.unk00, 2, 2, 0); + fn_1_BAC(60); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 1, 84, 1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 84, 1); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1132C); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10450; + do { + fn_1_B8C(); + } while (lbl_1_bss_5B8.unk04 != NULL); + fn_1_BAC(10); + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 3, 15, 1); + if (lbl_1_bss_608.unk00 == 0) { + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][2]); + } else { + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][0]); + } + fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 5) + lbl_1_bss_608.unk00, 2); + fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][1]); + fn_1_1ACC(lbl_1_bss_608.unk08, -1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_608.unk08); +} + +void fn_1_EFE0(s32 arg0, StructBss19C* arg1) { + s32 temp_r31; + + temp_r31 = HuAudSStreamPlay(7); + do { + fn_1_B8C(); + } while (HuAudSStreamStatGet(temp_r31) != 0); + HuAudSeqPause(lbl_1_bss_58[0], 0, 1000); + arg1->unk04 = 0; +} + +void fn_1_F050(omObjData* arg0, StructBss19C* arg1) { + s32 temp_r31; + + temp_r31 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00; + fn_1_BAC(150); + OSReport("########## PRESENT_SE : %d\n", temp_r31); + HuAudFXPlay(0x8D4 + temp_r31); + if (lbl_1_data_570[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00].unk04 == 1) { + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 0, 0); + fn_1_BAC(60); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 12, 0, 1); + } else { + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 1, 0); + } + arg1->unk04 = 0; +} + +void fn_1_F19C(void) { + s32 i; + + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 2, 15, 1); + for (i = 0; i < 30; i++) { + fn_1_B8C(); + if (lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 != 5) { + Hu3DData[lbl_1_bss_568.unk00->model[1]].pos.x = fn_1_828(120.0f, 80.0f, i, 30.0f); + } + Hu3DData[lbl_1_bss_568.unk00->model[1]].rot.y = fn_1_828(-60.0f, -90.0f, i, 30.0f); + } + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 5, 5, 0); + while (TRUE) { + fn_1_B8C(); + if (Hu3DMotionTimeGet(lbl_1_bss_568.unk00->model[1]) >= 35.0f) { + break; + } + } + Hu3DModelPosSet(lbl_1_bss_5B8.unk00->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelHookReset(lbl_1_bss_5B8.unk00->model[9]); + Hu3DModelHookSet(lbl_1_bss_568.unk00->model[1], CharModelHookNameGet(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 1, 1), lbl_1_bss_5B8.unk00->model[5]); + fn_1_BAC(60); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10298; + HuAudFXPlay(0xA3); + HuAudCharVoicePlay(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0x128); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 6, 6, 0, 0); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_5B8.unk00->model[5], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 6, 5, 0); + HuAudSeqPause(lbl_1_bss_58[0], 1, 1000); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.0f); + Hu3DMotionTimeSet(lbl_1_bss_568.unk00->model[1], 50.0f); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 8, 8, 0, 1); + fn_1_BAC(30); + HuAudFXPlay(0xA9); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_11534); + fn_1_BAC(60); + lbl_1_bss_568.unk04 = (void*) fn_1_F050; + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + lbl_1_bss_590.unk04 = (void*) fn_1_EFE0; + fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 6) + lbl_1_bss_608.unk00, 0); + fn_1_6C1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, 134), 0, 300); + fn_1_1CE8(lbl_1_bss_608.unk08, MAKE_MESSID(37, 4)); + fn_1_1A64(lbl_1_bss_608.unk08); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1141C); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10384; + fn_1_BAC(30); + Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.1f); + fn_1_BAC(180); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); +} + +s32 fn_1_F780(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_F86C(void) { + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BAC(60); + SLCommonSet(); + SLSaveBoardStory(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_55C = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F910(void) { + omOvlHisData* var_r31; + + msmSeStopAll(FALSE, 1000); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + CharModelKill(-1); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + { + s32 sp8[] = { 53, 56, 55, 54, 57 }; + + GWMGAvailSet(omMgIndexGet(sp8[lbl_1_bss_608.unk00]) + 0x191); + } + GWGameStat.present[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00] = 1; + OSReport("########## PRESENTFLG CHR:%d, MAP:%d, PRESENT:%d\n", lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, lbl_1_bss_608.unk00, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00); + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 20, var_r31->stat); + omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00 + 1, 0); +} + +void fn_1_FAE4(omObjData* arg0, StructBss19C* arg1) { + s32 sp8 = 0; + + lbl_1_bss_58[0] = HuAudSeqPlay(0x36); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + fn_1_EC5C(); + fn_1_F19C(); + fn_1_F910(); + arg1->unk04 = 0; +} + +void fn_1_FD1C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_5E0.unk00 = temp_r3; + lbl_1_bss_5E0.unk04 = (void*) fn_1_FAE4; + lbl_1_bss_5E0.unk00->data = &lbl_1_bss_5E0; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_5E0.unk04 != NULL) { + lbl_1_bss_5E0.unk04(temp_r3, &lbl_1_bss_5E0); + } + } +} + +void fn_1_FDD0(omObjData* arg0, s32 arg1) { + s32 temp_r29; + + temp_r29 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10; + arg0->model[7] = Hu3DModelCreateFile(lbl_1_data_570[temp_r29 * 6 + arg1].unk00); + arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]); + if (lbl_1_data_570[temp_r29 * 6 + arg1].unk04 == 1) { + arg0->motion[12] = Hu3DJointMotionFile(arg0->model[7], DATA_MAKE_NUM(DATADIR_MSTORY4, 48)); + } + Hu3DModelPosSet(arg0->model[7], 0.0f, 180.0f, 825.0f); + Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[7]); + fn_1_1DCC(arg0, 7, 7, 0, 2); + HuDataDirClose(DATADIR_MSTORY4); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81)); + Hu3DModelShadowSet(arg0->model[5]); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 83)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelPosSet(arg0->model[6], 25.0f, 125.0f, 900.0f); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 8, 8, 0, 2); + arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 84)); + arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]); + Hu3DModelPosSet(arg0->model[9], 0.0f, 0.0f, 460.0f); + Hu3DModelShadowSet(arg0->model[9]); + fn_1_1DCC(arg0, 9, 9, 0, 2); + Hu3DModelHookSet(arg0->model[9], "carrier2-target0", arg0->model[5]); + lbl_1_bss_560[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 85 + arg1 * 2), MEMORY_DEFAULT_NUM)); + lbl_1_bss_560[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 86 + arg1 * 2), MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(lbl_1_bss_560[0], lbl_1_bss_5B8.unk00->model[5], "cylinder3"); + Hu3DAnimCreate(lbl_1_bss_560[1], lbl_1_bss_5B8.unk00->model[5], "wakuwaku"); +} + +void fn_1_10298(omObjData* arg0, StructBss19C* arg1) { + Mtx sp8; + + Hu3DData[arg0->model[7]].pos.y = fn_1_ACC(180.0f, 185.0f, arg1->unk08++, 360.0f); + Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8); + Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_10384(omObjData* arg0, StructBss19C* arg1) { + Mtx sp8; + + Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f; + Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8); + Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]); + arg1->unk0C += 2; +} + +void fn_1_10450(omObjData* arg0, StructBss19C* arg1) { + fn_1_1DCC(arg0, 9, 9, 0, 1); + while (TRUE) { + fn_1_B8C(); + Hu3DData[arg0->model[9]].pos.z += 2.5f; + if (Hu3DData[arg0->model[9]].pos.z >= 670.0f) { + break; + } + } + Hu3DData[arg0->model[9]].pos.z = 670.0f; + Hu3DMotionSpeedSet(arg0->model[9], 0.0f); + arg1->unk04 = 0; +} + +void fn_1_1054C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_5B8.unk00 = temp_r3; + lbl_1_bss_5B8.unk04 = NULL; + fn_1_FDD0(temp_r3, lbl_1_bss_608.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_5B8.unk04 != NULL) { + lbl_1_bss_5B8.unk04(temp_r3, &lbl_1_bss_5B8); + } + } +} + +void fn_1_105F8(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0061), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x006C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0074), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x007C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0083) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0062), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0064), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0065), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0067), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0068) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x006D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x006F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0070), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0072), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0073) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0075), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0077), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0078), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007B) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x007D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0081), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0082) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0084), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0086), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0087), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0089), DATA_MAKE_NUM(DATADIR_MSTORY, 0x008A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 5, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_108F8(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_590.unk00 = temp_r3; + lbl_1_bss_590.unk04 = NULL; + fn_1_105F8(temp_r3, lbl_1_bss_608.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_590.unk04 != NULL) { + lbl_1_bss_590.unk04(temp_r3, &lbl_1_bss_590); + } + } +} + +void fn_1_10C6C(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_608.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_608.unk34[i], spC[i]); + } +} + +void fn_1_10D50(omObjData* arg0, s32 arg1) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10; + arg0->model[1] = CharModelCreate(temp_r30, 1); + arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53)); + arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 24 + temp_r30)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 32 + temp_r30)); + CharModelMotionDataClose(temp_r30); + Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_10F24(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_568.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_568.unk00->work[0] = arg4; + lbl_1_bss_568.unk00->work[1] = arg1; + lbl_1_bss_568.unk00->work[2] = arg2 + 1; +} + +void fn_1_10FD0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_568.unk00 = temp_r3; + lbl_1_bss_568.unk04 = NULL; + lbl_1_bss_568.unk00->data = &lbl_1_bss_568; + fn_1_10D50(temp_r3, lbl_1_bss_608.unk04); // Second argument required to match. + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_568.unk04 != NULL) { + lbl_1_bss_568.unk04(temp_r3, &lbl_1_bss_568); + } + if (temp_r3->work[0] != 0) { + fn_1_E828(temp_r3); + } + } +} + +void fn_1_112A0(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_1132C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1400.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f); +} + +void fn_1_1141C(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk14 = 0.0f; + var_r31->unk18 = Hu3DData[lbl_1_bss_5B8.unk00->model[7]].pos.y; + var_r31->unk1C = 0.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = fn_1_828(1100.0f, 1400.0f, var_r31->unk40++, 240.0f); + fn_1_3ABC(var_r31, 30.0f); +} + +void fn_1_11534(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 160.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1100.0f; + fn_1_61E8(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f); +} diff --git a/src/REL/mstoryDll/mg_miss.c b/src/REL/mstoryDll/mg_miss.c new file mode 100755 index 00000000..2bfd5f70 --- /dev/null +++ b/src/REL/mstoryDll/mg_miss.c @@ -0,0 +1,446 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ char unk14[0x20]; + /* 0x34 */ StructFn352C unk34[4]; +} StructBss7B4; // Size 0x104 + +void fn_1_12630(void); +void fn_1_129D4(void); +void fn_1_12C94(s32 arg0); +void fn_1_12F20(omObjData* arg0, StructBss19C* arg1); +void fn_1_12FA8(omObjData*, StructBss19C* arg1); +void fn_1_130C0(void); +void fn_1_13570(void); +void fn_1_13880(void); +void fn_1_1390C(void); + +StructBss7B4 lbl_1_bss_7B4; +StructBss19C lbl_1_bss_78C; +StructBss19C lbl_1_bss_764; +StructBss19C lbl_1_bss_73C; +StructBss19C lbl_1_bss_714; +Process* lbl_1_bss_710; + +s32 lbl_1_data_AF8[][3] = { + { MAKE_MESSID(30, 40), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 41), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 42), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 43), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 44), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) } +}; + +void fn_1_11624(Process* arg0, s32 arg1, s32 arg2) { + lbl_1_bss_710 = arg0; + lbl_1_bss_7B4.unk00 = arg1; + lbl_1_bss_7B4.unk10 = arg2; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_710, fn_1_13880); + fn_1_3704(); + fn_1_12C94(arg2); + HuPrcChildCreate(fn_1_129D4, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_130C0, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_13570, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_12630, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_11730(void) { + s32 var_r31 = 16; + s32 var_r30 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + fontcolor = FONT_COLOR_WHITE; + printWin(var_r31, var_r30, 220, 120, &sp10); + if (lbl_1_bss_78C.unk04 == NULL) { + print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_764.unk04 == NULL) { + print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_73C.unk04 == NULL) { + print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> FALSE"); + } else { + print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> TRUE"); + } + if (lbl_1_bss_714.unk04 == NULL) { + print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> TRUE"); + } + print8(var_r31, var_r30 + 50, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_7B4.unk00, lbl_1_bss_7B4.unk04, lbl_1_bss_7B4.unk10); + print8(var_r31, var_r30 + 70, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r31, var_r30 + 80 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_7B4.unk34[i].unk00, lbl_1_bss_7B4.unk34[i].unk04, lbl_1_bss_7B4.unk34[i].unk08, + lbl_1_bss_7B4.unk34[i].unk0C, lbl_1_bss_7B4.unk34[i].unk14, lbl_1_bss_7B4.unk34[i].unk10); + } + } +} + +void fn_1_11A8C(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x34); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_11AE8(void) { + s32 spC = 0; + s32 sp8 = 0; + + fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 2, 15, 0); + lbl_1_bss_73C.unk04 = (void*) fn_1_12F20; + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_7B4.unk00][1]); + HuAudCharVoicePlay(lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10, 0x12E); + lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10); + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 2, 15, 1); + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][0]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, -1); + fn_1_1CE8(lbl_1_bss_7B4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_7B4.unk08); +} + +BOOL fn_1_11C6C(void) { + BOOL temp_r31 = FALSE; + + HuWinInsertMesSet(lbl_1_bss_7B4.unk08, MAKE_MESSID(30, 54) + lbl_1_bss_7B4.unk00, 3); + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][1]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, 5); + lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_7B4.unk0C); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_7B4.unk0C); + if (temp_r31) { + fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 4, 15, 0); + lbl_1_bss_73C.unk04 = NULL; + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 3, 15, 1); + } + return temp_r31; +} + +BOOL fn_1_11DD8(void) { + s32 temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][2]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, 5); + lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1B78(lbl_1_bss_7B4.unk0C, 1); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_7B4.unk0C); + return temp_r31; +} + +void fn_1_11EC4(void) { + lbl_1_bss_73C.unk04 = (void*) fn_1_12FA8; + HuAudSeqFadeOut(lbl_1_bss_58[0], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1390C); + fn_1_BAC(150); +} + +void fn_1_11F28(void) { +} + +void fn_1_11F2C(s32 arg0) { + omOvlHisData* var_r30; + OverlayID sp8[] = { OVL_M445, OVL_M448, OVL_M447, OVL_M446, OVL_M449 }; + + if (arg0 != 0) { + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + CharModelKill(-1); + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat); + if (arg0 == 0) { + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + } else { + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_12070(omObjData* arg0, StructBss19C* arg1) { + s32 var_r31; + + fn_1_11A8C(); + fn_1_11AE8(); + lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10); + while (TRUE) { + fn_1_B8C(); + if (fn_1_11C6C()) { + var_r31 = 0; + break; + } + if (fn_1_11DD8()) { + var_r31 = 1; + break; + } + } + fn_1_1A64(lbl_1_bss_7B4.unk08); + fn_1_BAC(60); + switch (var_r31) { + case 0: + fn_1_11EC4(); + break; + case 1: + fn_1_11F28(); + break; + } + fn_1_11F2C(var_r31); + arg1->unk04 = NULL; +} + +void fn_1_12630(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_78C.unk00 = temp_r3; + lbl_1_bss_78C.unk04 = (void*) fn_1_12070; + lbl_1_bss_78C.unk00->data = &lbl_1_bss_78C; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_78C.unk04 != NULL) { + lbl_1_bss_78C.unk04(temp_r3, &lbl_1_bss_78C); + } + } +} + +void fn_1_126E4(omObjData* arg0) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(lbl_1_bss_7B4.unk00 + DATA_MAKE_NUM(DATADIR_MSTORY, 76)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]); + fn_1_1DCC(arg0, 6, 6, 0, 2); +} + +void fn_1_12918(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_129D4(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_764.unk00 = temp_r3; + lbl_1_bss_764.unk04 = (void*) fn_1_12918; + lbl_1_bss_764.unk00->data = &lbl_1_bss_764; + fn_1_126E4(temp_r3); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_764.unk04 != NULL) { + lbl_1_bss_764.unk04(temp_r3, &lbl_1_bss_764); + } + } +} + +void fn_1_12C94(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_7B4.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_7B4.unk34[i], spC[i]); + } +} + +void fn_1_12D78(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10; + arg0->model[1] = CharModelCreate(temp_r30, 1); + arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24)); + arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 52)); + arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[5] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53)); + CharModelVoiceEnableSet(temp_r30, arg0->motion[2], 0); + CharModelMotionDataClose(temp_r30); + Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -45.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_12F20(omObjData* arg0, StructBss19C* arg1) { + if (arg0->motion[2] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, 3, 15, 1); + arg1->unk04 = 0; + } +} + +void fn_1_12FA8(omObjData* arg0, StructBss19C* arg1) { + s32 i; + + fn_1_BAC(10); + fn_1_1DCC(arg0, 1, 5, 15, 0); + fn_1_B8C(); + Hu3DMotionTimeSet(arg0->model[1], 60.0f); + for (i = 0; i < 50; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].rot.y = fn_1_828(-60.0f, -120.0f, i, 60.0f); + } + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_130C0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_73C.unk00 = temp_r3; + lbl_1_bss_73C.unk04 = NULL; + lbl_1_bss_73C.unk00->data = &lbl_1_bss_73C; + fn_1_12D78(temp_r3); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_73C.unk04 != NULL) { + lbl_1_bss_73C.unk04(temp_r3, &lbl_1_bss_73C); + } + } +} + +void fn_1_132EC(omObjData* arg0, s32 arg1) { + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 97), + DATA_MAKE_NUM(DATADIR_MSTORY, 108), + DATA_MAKE_NUM(DATADIR_MSTORY, 116), + DATA_MAKE_NUM(DATADIR_MSTORY, 124), + DATA_MAKE_NUM(DATADIR_MSTORY, 131) + }; + s32 sp1C[][3] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp8[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][2]); + Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 45.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_13570(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_714.unk00 = temp_r3; + lbl_1_bss_714.unk04 = NULL; + lbl_1_bss_714.unk00->data = &lbl_1_bss_714; + fn_1_132EC(temp_r3, lbl_1_bss_7B4.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_714.unk04 != NULL) { + lbl_1_bss_714.unk04(temp_r3, &lbl_1_bss_714); + } + } +} + +void fn_1_13880(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_1390C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_764.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_764.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 130.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 150.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_764.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} diff --git a/src/REL/mstoryDll/save.c b/src/REL/mstoryDll/save.c new file mode 100755 index 00000000..eb848ba1 --- /dev/null +++ b/src/REL/mstoryDll/save.c @@ -0,0 +1,128 @@ +#include "REL/mstoryDll.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +s32 lbl_1_bss_8BC; +Process *lbl_1_bss_8B8; + +s32 fn_1_13B48(s32 arg0) +{ + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_13C34(void) +{ + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_8BC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_8BC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_13E2C(void) +{ + _SetFlag(9); + if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) + && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + OSReport( + "########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_B8C(); + } while (lbl_1_bss_8BC != 1); + omOvlGotoEx(OVL_MSTORY2, 1, 0, 0); + } + else { + OSReport( + "########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_B8C(); + } while (lbl_1_bss_8BC != 1); + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_14150(Process *arg0) +{ + lbl_1_bss_8B8 = arg0; + HuPrcChildCreate(fn_1_13E2C, 100, 0x2000, 0, HuPrcCurrentGet()); +} diff --git a/src/REL/nisDll/main.c b/src/REL/nisDll/main.c index a50c5b18..4dc839ce 100644 --- a/src/REL/nisDll/main.c +++ b/src/REL/nisDll/main.c @@ -1,4 +1,5 @@ #include "game/object.h" +#include "math.h" void fn_1_68(omObjData *object); diff --git a/src/REL/option/record.c b/src/REL/option/record.c index 671f0793..763bc418 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -6,16 +6,22 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/sprite.h" #include "game/window.h" #include "dolphin.h" -#include "math.h" +#include "ext_math.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/gamework.h" +#endif #define RECORD_TYPE_BOARD 0 #define RECORD_TYPE_MG 1 -#define NUM_CHARACTERS 8 -#define NUM_BOARDS 6 +#define CHARACTERS_MAX 8 +#define BOARDS_MAX 6 #define PLAY_COUNT_NUM_DIGITS 4 #define WIN_COUNT_NUM_DIGITS 3 @@ -91,15 +97,15 @@ omObjData *OptionRecordCreate(void) object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RecordWork), MEMORY_DEFAULT_NUM); object->data = work; - for (i = 0; i < NUM_BOARDS; i++) { + for (i = 0; i < BOARDS_MAX; i++) { work->boardRecord[i].playCount = GWBoardPlayCountGet(i); work->boardRecord[i].maxStars = GWBoardMaxStarsGet(i); work->boardRecord[i].maxCoins = GWBoardMaxCoinsGet(i); - for (character = 0; character < NUM_CHARACTERS; character++) { + for (character = 0; character < CHARACTERS_MAX; character++) { work->boardRecord[i].winCount[character] = GWBoardWinCountGet(character, i); } } - for (i = 0; i < 6; i++) { + for (i = 0; i < BOARDS_MAX; i++) { work->mgRecord[i] = GWMGRecordGet(mgRecordIdxTbl[i]); } work->board = 0; @@ -202,8 +208,8 @@ static void ExecRecord(omObjData *object) Hu3DModelAttrReset(work->hand->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; } - pos.x = 505.0 * -sin(305 * M_PI / 180.0); - pos.z = 505.0 * cos(305 * M_PI / 180.0); + pos.x = 505.0 * -sind(305); + pos.z = 505.0 * cosd(305); pos.y = 144.0f - 14.0f * work->recordType; omSetTra(work->hand, pos.x, pos.y, pos.z); object->unk10 = 3; @@ -572,7 +578,7 @@ static void ShowBoard(omObjData *object, s32 board) espPosSet(work->sprList[board], 275.0f, 72.0f); value = work->boardRecord[work->board].playCount; for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 11], 323.0f + 20.0f * i, 116.0f); + espPosSet(work->sprList[i + 11], (VERSION_NTSC ? 323.0f : 392.0f) + 20.0f * i, 116.0f); if (value > 999) { espBankSet(work->sprList[i + 11], i + 10); } @@ -583,7 +589,7 @@ static void ShowBoard(omObjData *object, s32 board) espPosSet(work->sprList[8], 416.0f, 120.0f); value = work->boardRecord[work->board].maxCoins; for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 15], 364.0f + 20.0f * i, 268.0f); + espPosSet(work->sprList[i + 15], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 268.0f); if (value > 999) { espBankSet(work->sprList[i + 15], i + 10); } @@ -591,10 +597,12 @@ static void ShowBoard(omObjData *object, s32 board) espBankSet(work->sprList[i + 15], GetDigit(value, 3 - i)); } } +#if VERSION_NTSC espPosSet(work->sprList[9], 456.0f, 268.0f); +#endif value = work->boardRecord[work->board].maxStars; for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 19], 364.0f + 20.0f * i, 312.0f); + espPosSet(work->sprList[i + 19], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 312.0f); if (value > 999) { espBankSet(work->sprList[i + 19], i + 10); } @@ -602,8 +610,10 @@ static void ShowBoard(omObjData *object, s32 board) espBankSet(work->sprList[i + 19], GetDigit(value, 3 - i)); } } +#if VERSION_NTSC espPosSet(work->sprList[10], 456.0f, 312.0f); - for (i = 0; i < NUM_CHARACTERS; i++) { +#endif + for (i = 0; i < CHARACTERS_MAX; i++) { espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 3 + 23 + j], 80.0f + 50.0f * i + 12.0f * j, 230.0f); @@ -616,16 +626,20 @@ static void ShowBoard(omObjData *object, s32 board) for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 11]); } +#if VERSION_NTSC espDispOn(work->sprList[8]); +#endif for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 15]); } +#if VERSION_NTSC espDispOn(work->sprList[9]); +#endif for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 19]); } espDispOn(work->sprList[10]); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espDispOn(work->sprList[i + 49]); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espDispOn(work->sprList[i * 3 + 23 + j]); @@ -670,9 +684,9 @@ static void ShowTotal(omObjData *object) s32 j; espPosSet(work->sprList[6], 275.0f, 72.0f); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espPosSet(work->sprList[i + 57], 148.0f + 80.0f * (i % 4), 172.0f + 104.0f * (i / 4)); - for (j = 0, winCount = 0; j < NUM_BOARDS; j++) { + for (j = 0, winCount = 0; j < BOARDS_MAX; j++) { winCount += work->boardRecord[j].winCount[i]; } for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { @@ -681,7 +695,7 @@ static void ShowTotal(omObjData *object) } } espDispOn(work->sprList[6]); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espDispOn(work->sprList[i + 57]); for (j = 0; j < 3; j++) { espDispOn(work->sprList[i * 3 + 65 + j]); @@ -759,14 +773,14 @@ static void ShowMG(omObjData *object, s32 page) } break; case DISPLAY_TYPE_TIME: - timeMin = value / 3600; - timeSec = (value % 3600) / 60; - timeCenti = (value % 3600) % 60; + timeMin = value / (60 * REFRESH_RATE); + timeSec = (value % (60 * REFRESH_RATE)) / REFRESH_RATE; + timeCenti = (value % (60 * REFRESH_RATE)) % REFRESH_RATE; if (mgTbl[mg].id == 405 || mgTbl[mg].id == 432) { - timeCenti *= 1.6916667f; + timeCenti *= (101.5f / REFRESH_RATE); } else { - timeCenti *= 1.6666666f; + timeCenti *= (100.0f / REFRESH_RATE); } for (j = 1; j < MG_TIME_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i); diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 4a52323d..aeae0f72 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -197,12 +197,12 @@ static omObjData *CreateHand(void) return hand; } -static void KillHand(omObjData *hand) +static void KillHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(hand->model[i]); + Hu3DModelKill(object->model[i]); } } @@ -222,21 +222,21 @@ static omObjData *CreateSystem(void) return system; } -static void KillSystem(omObjData *system) +static void KillSystem(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(system->model[i]); + Hu3DModelKill(object->model[i]); } } -static void StartSystemMotion(omObjData *system, s32 rumbleF, BOOL slowF) +static void StartSystemMotion(omObjData *object, s32 rumbleF, BOOL slowF) { - s16 model = system->model[0]; + s16 model = object->model[0]; - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); if (rumbleF) { Hu3DMotionStartEndSet(model, 60.0f, 120.0f); if (slowF) { @@ -267,24 +267,24 @@ static omObjData *CreatePad(void) return pad; } -static void KillPad(omObjData *pad) +static void KillPad(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(pad->model[i]); + Hu3DModelKill(object->model[i]); } } -static void ShakePad(omObjData *pad, BOOL on) +static void ShakePad(omObjData *object, BOOL on) { if (on) { - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); } } diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index 733a353e..7012bb90 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -513,9 +513,9 @@ omObjData *OptionSoundCreate(void) for (i = 0; i < NUM_BOARDS; i++) { musicPageOn[i + 3] = (GWGameStat.board_play_count[i] != 0) ? TRUE : FALSE; } - musicPageOn[11] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageOn[12] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageOn[13] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; + musicPageOn[11] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; + musicPageOn[12] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; + musicPageOn[13] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; return object; } diff --git a/src/REL/option/state.c b/src/REL/option/state.c index 9e6b3e30..edbcdcd6 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -13,15 +13,15 @@ typedef struct { } StateWork; /* size = 0x0C */ typedef struct { - /* 0x00 */ Vec src; + /* 0x00 */ Vec pos; /* 0x0C */ Vec dest; /* 0x18 */ GXColor color; } UnkLightDataStruct; /* size = 0x1C */ // TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 typedef struct UnkShadowDataStruct { - /* 0x00 */ Vec pos; - /* 0x0C */ Vec up; - /* 0x18 */ Vec target; + /* 0x00 */ Vec camPos; + /* 0x0C */ Vec camUp; + /* 0x18 */ Vec camTarget; } UnkShadowDataStruct; /* size = 0x24 */ static void ExecState(omObjData *object); @@ -51,12 +51,12 @@ omObjData *OptionStateCreate(void) optionRoom = OptionRoomCreate(); work->window = OptionWinCreate(0); Hu3DLighInit(); - work->light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); + work->light = Hu3DGLightCreateV(&lightTbl.pos, &lightTbl.dest, &lightTbl.color); Hu3DGLightInfinitytSet(work->light); lightData = &Hu3DGlobalLight[work->light]; Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); + Hu3DShadowPosSet(&shadowPosTbl.camPos, &shadowPosTbl.camUp, &shadowPosTbl.camTarget); return object; } diff --git a/src/REL/option/window.c b/src/REL/option/window.c index 6bb32d8d..7497bef7 100755 --- a/src/REL/option/window.c +++ b/src/REL/option/window.c @@ -5,6 +5,8 @@ #include "game/process.h" #include "game/sprite.h" +#include "version.h" + static void ExecWindow(void); OptionWindow *OptionWinCreate(s32 id) @@ -33,13 +35,13 @@ OptionWindow *OptionWinCreate(s32 id) HuWinMesSpeedSet(work->window, 0); break; case 2: - work->window = HuWinExCreateStyled(-10000.0f, 88.0f, 224, 34, -1, 0); + work->window = HuWinExCreateStyled(-10000.0f, 88.0f, VERSION_NTSC ? 224 : 320, 34, -1, 0); HuWinAttrSet(work->window, 0x800); HuWinBGTPLvlSet(work->window, 0.0f); HuWinMesSpeedSet(work->window, 0); break; case 3: - work->window = HuWinExCreateStyled(175.0f, 100.0f, 300, 34, -1, 0); + work->window = HuWinExCreateStyled(175.0f, 100.0f, VERSION_NTSC ? 300 : 320, 34, -1, 0); HuWinBGTPLvlSet(work->window, 0.0f); HuWinMesSpeedSet(work->window, 0); break; diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index 3a15ac79..9be75849 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -113,16 +113,16 @@ float PresentCameraZoomGet(omObjData *object) { CameraWork *work = object->data; - float var_f31 = work->zoom; - return var_f31; + float zoom = work->zoom; + return zoom; } float PresentCameraRotGet(omObjData *object) { CameraWork *work = object->data; - float var_f31 = work->rot; - return var_f31; + float rot = work->rot; + return rot; } void PresentCameraPosGet(omObjData *object, float *x, float *y, float *z) diff --git a/src/REL/present/init.c b/src/REL/present/init.c index 2b2d57a5..3217d652 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -144,20 +144,20 @@ static void FadeModel(void) BOOL PresentPadCheck(u16 btn) { - u32 var_r31 = HuPadBtnDown[0] & btn; - return var_r31 != 0; + u32 pressed = HuPadBtnDown[0] & btn; + return pressed != 0; } BOOL PresentPadDStkRepCheck(u16 dir) { - u32 var_r31 = HuPadDStkRep[0] & dir; - return var_r31 != 0; + u32 pressed = HuPadDStkRep[0] & dir; + return pressed != 0; } BOOL PresentPadDStkCheck(u16 dir) { - u32 var_r31 = HuPadDStk[0] & dir; - return var_r31 != 0; + u32 pressed = HuPadDStk[0] & dir; + return pressed != 0; } static void SceneMain(omObjData *object) diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 93ef8386..7fafc79b 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -13,14 +13,14 @@ typedef struct StateWork { } StateWork; /* size = 0x08 */ typedef struct UnkShadowDataStruct { - /* 0x00 */ Vec pos; - /* 0x0C */ Vec up; - /* 0x18 */ Vec target; + /* 0x00 */ Vec camPos; + /* 0x0C */ Vec camUp; + /* 0x18 */ Vec camTarget; } UnkShadowDataStruct; /* size = 0x24 */ omObjData *presentGuide; -static UnkShadowDataStruct shadowPosTbl = { +static UnkShadowDataStruct shadow = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, @@ -45,7 +45,7 @@ omObjData *PresentStateCreate(void) work->window = PresentWinCreate(0); Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); + Hu3DShadowPosSet(&shadow.camPos, &shadow.camUp, &shadow.camTarget); if (omovlevtno > 0) { OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n"); diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 263194b5..b6d90dfc 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -9,7 +9,7 @@ #include "REL/present.h" -#define NUM_CHARACTERS 8 +#define CHARACTERS_MAX 8 #define PRESENT_MDL_MAX 134 #define PRESENT_MAX 60 @@ -61,7 +61,7 @@ typedef struct PresentWork { } PresentWork; /* size = 0x364 */ typedef struct UnkLightDataStruct { - /* 0x00 */ Vec src; + /* 0x00 */ Vec pos; /* 0x0C */ Vec dest; /* 0x18 */ GXColor color; } UnkLightDataStruct; /* size = 0x1C */ // same as option::state::UnkLightDataStruct @@ -357,7 +357,7 @@ omObjData *PresentCreate(void) { s32 i; s32 j; - s16 light; + s16 lightId; LightData *lightData; omObjData *object = omAddObjEx(presentObjMan, 1003, 0, 0, 1, NULL); @@ -382,10 +382,10 @@ omObjData *PresentCreate(void) work->presentUnlockedF[PRESENT_MAX - 1] = TRUE; } Hu3DLighInit(); - light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); - Hu3DGLightInfinitytSet(light); - Hu3DGLightStaticSet(light, 1); - lightData = &Hu3DGlobalLight[light]; + lightId = Hu3DGLightCreateV(&lightTbl.pos, &lightTbl.dest, &lightTbl.color); + Hu3DGLightInfinitytSet(lightId); + Hu3DGLightStaticSet(lightId, 1); + lightData = &Hu3DGlobalLight[lightId]; lightData->unk_00 |= 0x8000; for (i = 0; i < PRESENT_MDL_MAX; i++) { @@ -410,7 +410,7 @@ omObjData *PresentCreate(void) RotateCamera(object); PresentExecModeSet(object, PRESENT_MODE_NONE); - (void)light; + (void)lightId; return object; } @@ -445,7 +445,7 @@ s32 PresentExecModeGet(omObjData *object) return work->execMode; } -static const s32 roomIdxTbl[NUM_CHARACTERS] = { +static const s32 roomIdxTbl[CHARACTERS_MAX] = { ROOM_MARIO, ROOM_LUIGI, ROOM_PEACH, @@ -869,7 +869,7 @@ static BOOL CameraRotationDoneCheck(omObjData *object) return work->timeRot < 1.0f; } -s32 roomIdxTbl2[NUM_CHARACTERS] = { +s32 roomIdxTbl2[CHARACTERS_MAX] = { ROOM_MARIO, ROOM_LUIGI, ROOM_PEACH, @@ -888,7 +888,7 @@ static void ShowHidePresents(omObjData *object) Hu3DModelAttrReset(work->object[0]->model[0], HU3D_ATTR_DISPOFF); - for (character = 0; character < NUM_CHARACTERS; character++) { + for (character = 0; character < CHARACTERS_MAX; character++) { s32 j; if (UnlockedPresents(object, roomIdxTbl2[character]) > 0) { Hu3DModelAttrReset(work->object[character + 109]->model[0], HU3D_ATTR_DISPOFF); @@ -916,7 +916,7 @@ static void ShowHidePresents(omObjData *object) if (PresentUnlocked(object, ROOM_TROPHY, 0)) { Hu3DModelAttrReset(work->object[1]->model[0], HU3D_ATTR_DISPOFF); } - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { if (PresentUnlocked(object, roomIdxTbl2[i], PRESENT_CONSTELLATION)) { Hu3DModelAttrReset(work->object[i + 126]->model[0], HU3D_ATTR_DISPOFF); } diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index c9441385..f9a58cba 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -1,5 +1,5 @@ #include "dolphin.h" -#include "math.h" +#include "ext_math.h" #include "game/armem.h" #include "game/audio.h" @@ -19,7 +19,13 @@ #include "REL/resultdll.h" -DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +#define COIN_EFFECT_MAX 180 + +static StageModel resultBattleModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x09), 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, @@ -32,12 +38,12 @@ DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0F), 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; -DataListSprite lbl_1_data_758[] = { +static StageSprite resultBattleSprite[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; -HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, +static HsfanimStruct00 resultBattleEffParMan = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, { { 255, 192, 112, 255 }, { 0, 0, 0, 0 }, @@ -49,9 +55,10 @@ HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, - } }; + } +}; -s16 lbl_1_data_7D0[] = { +static s16 resultStatPosTbl[] = { 320, 132, 500, @@ -70,103 +77,103 @@ s16 lbl_1_data_7D0[] = { 387, }; -Vec lbl_1_data_7F0[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; +static Vec playerPosTbl[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; s16 lbl_1_data_820[] = { -284, 148, -84, 233, 116, 318, 316, 403 }; -s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), +static s32 bomheiCubeMdlTbl[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) }; -float lbl_1_data_840[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; +static float coinEffectYOfs[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; -float lbl_1_data_860[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; +static float coinAddYOfs[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; -float lbl_1_data_880[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; +static float coinBlankYOfs[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; -s16 lbl_1_data_8A0[] = { 8, 0, -8 }; +static s16 coinNumXOfs[] = { 8, 0, -8 }; -typedef struct struct_unk194 { - s16 unk0; - s16 unk2; - Vec unk4; - Vec unk10; - float unk1C; -} StructUnk194; +typedef struct CoinEffect_s { + s16 playerNo; + s16 rank; + Vec pos; + Vec rotVel; + float velY; +} CoinEffect; u8 lbl_1_bss_19F8[32]; -s16 lbl_1_bss_19F0[4]; -s16 lbl_1_bss_19E8[4]; -s16 lbl_1_bss_19E0[4]; -s16 lbl_1_bss_19B8[4][5]; -s16 lbl_1_bss_19B0[4]; -s16 lbl_1_bss_1990[4][4]; -s16 lbl_1_bss_1828[180]; +static s16 resultBattleOrder[4]; +static s16 resultBattleRank[4]; +static s16 coinNumGrpId[4]; +static s16 coinNumSprId[4][5]; +static s16 resultBattleCharMdl[4]; +static s16 resultBattleCharMot[4][4]; +static s16 coinEffectMdlId[COIN_EFFECT_MAX]; s16 lbl_1_bss_181C[6]; -s16 lbl_1_bss_1814[4]; -StructUnk194 lbl_1_bss_194[180]; -s32 lbl_1_bss_190; +static s16 resultBattleEffParManId[4]; +static CoinEffect coinEffectData[COIN_EFFECT_MAX]; +static s32 resultBattleSkipF; -void fn_1_6760(void); -void fn_1_6824(void); -void fn_1_7544(void); +static void ResultBattleIdle(void); +static void ResultBattleCreate(void); +static void ResultBattleStatAdd(void); -void fn_1_6490(void) +void ResultBattleMain(void) { - s16 player; + s16 playerNo; s16 i; - s16 window; - s16 button; - Process *process = HuPrcCurrentGet(); + s16 winId; + s16 btnDown; + Process *proc = HuPrcCurrentGet(); HuAudSeqPlay(10); - for (i = player = 0; i < 4; i++) { + for (i = playerNo = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { - player++; + playerNo++; } } - if (player == 4) { - lbl_1_bss_190 = 1; + if (playerNo == 4) { + resultBattleSkipF = 1; } else { - lbl_1_bss_190 = 0; + resultBattleSkipF = 0; } - fn_1_6824(); - HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); + ResultBattleCreate(); + HuPrcChildCreate(ResultBattleIdle, 100, 8192, 0, proc); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); + resultReadEndF = 0; + HuPrcChildCreate(ResultBoardDataRead, 100, 12288, 0, proc); HuPrcSleep(10); - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(20); } - fn_1_7544(); - fn_1_40DC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + ResultBattleStatAdd(); + ResultCoinAdd(); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); i = 0; while (1) { - if (lbl_1_bss_190 && i > 120) { + if (resultBattleSkipF && i > 120) { break; } - for (player = button = 0; player < 4; player++) { - if (!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + for (playerNo = btnDown = 0; playerNo < 4; playerNo++) { + if (!GWPlayerCfg[playerNo].iscom) { + btnDown |= HuPadBtnDown[GWPlayerCfg[playerNo].pad_idx]; } } - if (button & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); i++; } - HuWinKill(window); - while (!lbl_1_bss_178) { + HuWinKill(winId); + while (!resultReadEndF) { HuPrcVSleep(); } WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); @@ -183,45 +190,45 @@ void fn_1_6490(void) } } -void fn_1_6760(void) +static void ResultBattleIdle(void) { Vec temp; temp.z = 0.0f; temp.y = 0.0f; temp.x = 0.0f; while (1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { - lbl_1_bss_174 = 1; + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || resultBattleSkipF != 0) { + resultFastF = 1; } else { - lbl_1_bss_174 = 0; + resultFastF = 0; } HuPrcVSleep(); } } -void fn_1_7F98(void); -void fn_1_8338(s16 group, s16 value); -void fn_1_8484(void); -void fn_1_8658(void); -void fn_1_86DC(s16 player); -void fn_1_8CB8(struct model_data *model, Mtx matrix); +static void ResultBattleCoinAddShow(void); +static void ResultBattleCoinAddNumSet(s16 grpId, s16 value); +static void ResultBattleOrderSet(void); +static void CoinEffectInit(void); +static void CoinEffectAdd(s16 playerNo); +static void ResultShadowDraw(struct model_data *model, Mtx matrix); -void fn_1_6824(void) +static void ResultBattleCreate(void) { s16 i; - s16 character; - s16 player; - s16 x_ofs; + s16 charNo; + s16 playerNo; + s16 xOfs; AnimData *anim; AnimData *anim2; AnimData *anim3; - s16 char_mdl; + s16 charMdlId; Vec pos; Vec target; Vec up; - s16 gains[5]; - Process *process = HuPrcCurrentGet(); + s16 coinNum[5]; + Process *proc = HuPrcCurrentGet(); CRot.x = 0; CRot.y = 0; CRot.z = 0; @@ -240,168 +247,167 @@ void fn_1_6824(void) up.y = 1; up.z = 0; Hu3DShadowPosSet(&pos, &up, &target); - i = Hu3DHookFuncCreate(fn_1_8CB8); + i = Hu3DHookFuncCreate(ResultShadowDraw); Hu3DModelPosSet(i, 0, 0, 0); - fn_1_8484(); - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + ResultBattleOrderSet(); + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; - if (lbl_1_bss_19E8[i] == 3) { - lbl_1_data_4E8[i].attr = 1; + resultBattleModel[i].datanum = bomheiCubeMdlTbl[resultBattleRank[i]]; + if (resultBattleRank[i] == 3) { + resultBattleModel[i].attr = 1; } } - fn_1_8FF8(lbl_1_data_4E8); - fn_1_927C(lbl_1_data_758); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); + StageModelCreate(resultBattleModel); + StageSpriteCreate(resultBattleSprite); + espDrawNoSet(stageSprId[0], 127); for (i = 0; i < 4; i++) { - Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); + Hu3DModelShadowSet(stageMdlId[i]); } for (i = 0; i < 4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); - ; - if (lbl_1_bss_19E8[i] <= 2) { + anim = HuSprAnimRead(HuDataReadNum(resultBattleRank[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); + if (resultBattleRank[i] <= 2) { anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); } else { anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); } - Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i + 4], "ys22_a0"); - Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i + 4], "ys22_a1"); - Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); + Hu3DAnimCreate(anim, stageMdlId[i + 4], "ys22_a0"); + Hu3DAnimCreate(anim2, stageMdlId[i + 4], "ys22_a1"); + Hu3DModelAttrSet(stageMdlId[i + 4], HU3D_MOTATTR_PAUSE); } anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3D), MEMORY_DEFAULT_NUM)); anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B), MEMORY_DEFAULT_NUM)); anim3 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C), MEMORY_DEFAULT_NUM)); for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]] >= 100) { - x_ofs = lbl_1_data_8A0[2]; + if (coinNum[resultBattleOrder[i]] >= 100) { + xOfs = coinNumXOfs[2]; } - else if (gains[lbl_1_bss_19F0[i]] >= 10) { - x_ofs = lbl_1_data_8A0[1]; + else if (coinNum[resultBattleOrder[i]] >= 10) { + xOfs = coinNumXOfs[1]; } else { - x_ofs = lbl_1_data_8A0[0]; + xOfs = coinNumXOfs[0]; } - lbl_1_bss_19E0[i] = HuSprGrpCreate(5); - lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); - HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); - lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); - HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); - lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); - HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs + 16, -36); - lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); - HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs + 32, -36); - lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); - HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs + 48, -36); - HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); - fn_1_8338(lbl_1_bss_19E0[i], 9); - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); + coinNumGrpId[i] = HuSprGrpCreate(5); + coinNumSprId[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 0, coinNumSprId[i][0]); + HuSprPosSet(coinNumGrpId[i], 0, 17, -32); + coinNumSprId[i][1] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 1, coinNumSprId[i][1]); + HuSprPosSet(coinNumGrpId[i], 1, xOfs, -36); + coinNumSprId[i][2] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 2, coinNumSprId[i][2]); + HuSprPosSet(coinNumGrpId[i], 2, xOfs + 16, -36); + coinNumSprId[i][3] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 3, coinNumSprId[i][3]); + HuSprPosSet(coinNumGrpId[i], 3, xOfs + 32, -36); + coinNumSprId[i][4] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 4, coinNumSprId[i][4]); + HuSprPosSet(coinNumGrpId[i], 4, xOfs + 48, -36); + HuSprGrpPosSet(coinNumGrpId[i], 0, 0); + ResultBattleCoinAddNumSet(coinNumGrpId[i], 9); + HuSprGrpScaleSet(coinNumGrpId[i], 0, 0); } (void)anim3; - Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_MOTATTR_LOOP); - Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); - for (i = 0; i < 180; i++) { + Hu3DMotionSet(stageMdlId[8], stageMotId[9]); + Hu3DModelAttrSet(stageMdlId[8], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(stageMdlId[8]); + for (i = 0; i < COIN_EFFECT_MAX; i++) { if (i == 0) { - lbl_1_bss_1828[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); + coinEffectMdlId[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); } else { - lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); + coinEffectMdlId[i] = Hu3DModelLink(coinEffectMdlId[0]); } - Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(coinEffectMdlId[i], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrSet(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); } - fn_1_8658(); + CoinEffectInit(); anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(DATA_MAKE_NUM(DATADIR_EFFECT, 4), MEMORY_DEFAULT_NUM, HEAP_DATA)); for (i = 0; i < 4; i++) { - lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); - Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); - Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); + resultBattleEffParManId[i] = Hu3DParManCreate(anim, 300, &resultBattleEffParMan); + Hu3DParManAttrSet(resultBattleEffParManId[i], 0x65); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(resultBattleEffParManId[i]), 1); + Hu3DParManRotSet(resultBattleEffParManId[i], 90, 0, 0); } HuDataDirClose(DATADIR_RESULT); for (i = 0; i < 4; i++) { - player = lbl_1_bss_19F0[i]; - character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; - char_mdl = CharModelCreate(character, 2); - lbl_1_bss_19B0[player] = char_mdl; - lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); - lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); - lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); - CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); - CharModelMotionSet(character, lbl_1_bss_1990[player][0]); - Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); - Hu3DModelAttrSet(char_mdl, HU3D_MOTATTR_LOOP); - Hu3DModelShadowSet(char_mdl); + playerNo = resultBattleOrder[i]; + charNo = GWPlayerCfg[resultBattleOrder[i]].character; + charMdlId = CharModelCreate(charNo, 2); + resultBattleCharMdl[playerNo] = charMdlId; + resultBattleCharMot[playerNo][0] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + resultBattleCharMot[playerNo][1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + resultBattleCharMot[playerNo][2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + CharModelVoiceEnableSet(charNo, resultBattleCharMot[playerNo][1], 0); + CharModelMotionSet(charNo, resultBattleCharMot[playerNo][0]); + Hu3DModelPosSet(charMdlId, playerPosTbl[i].x, playerPosTbl[resultBattleRank[i]].y, 0); + Hu3DModelAttrSet(charMdlId, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(charMdlId); } CharModelDataClose(-1); } -Vec lbl_1_data_8B8[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; +static Vec cameraShakeOfs[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; -void fn_1_7544(void) +static void ResultBattleStatAdd(void) { s16 i; s16 time; s16 done_cnt; float pos_y; - s16 gains[5]; - s16 time_player[4]; - fn_1_423C(gains); + s16 coinNum[5]; + s16 delay[4]; + ResultCoinNumGet(coinNum); for (time = 0; time <= 5; time++) { pos_y = ((5 - time) * 50) + 580; for (i = 0; i < 4; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[i + 4], lbl_1_data_7F0[i].x, pos_y, 0); + Hu3DModelPosSet(stageMdlId[i + 4], playerPosTbl[i].x, pos_y, 0); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i + 4], 1.5f); + Hu3DModelAttrReset(stageMdlId[i + 4], HU3D_MOTATTR_PAUSE); + Hu3DMotionSpeedSet(stageMdlId[i + 4], 1.5f); } HuPrcSleep(35); for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]] > 0) { - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - time_player[i] = frandmod(10); + if (coinNum[resultBattleOrder[i]] > 0) { + Hu3DParManAttrReset(resultBattleEffParManId[i], 1); + delay[i] = frandmod(10); } else { - time_player[i] = 0; + delay[i] = 0; } - Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); + Hu3DParManPosSet(resultBattleEffParManId[i], playerPosTbl[i].x, 610.0f, 0.0f); } while (1) { for (i = done_cnt = 0; i < 4; i++) { - if (time_player[i]) { - time_player[i]--; + if (delay[i]) { + delay[i]--; continue; } - if (gains[lbl_1_bss_19F0[i]] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + if (coinNum[resultBattleOrder[i]] <= 0) { + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); done_cnt++; } else { - fn_1_86DC(i); - gains[lbl_1_bss_19F0[i]]--; - if (gains[lbl_1_bss_19F0[i]] <= 10) { - time_player[i] = 4; + CoinEffectAdd(i); + coinNum[resultBattleOrder[i]]--; + if (coinNum[resultBattleOrder[i]] <= 10) { + delay[i] = 4; } else { - if (gains[lbl_1_bss_19F0[i]] <= 20) { - time_player[i] = 3; + if (coinNum[resultBattleOrder[i]] <= 20) { + delay[i] = 3; } else { - if (gains[lbl_1_bss_19F0[i]] <= 40) { - time_player[i] = 2; + if (coinNum[resultBattleOrder[i]] <= 40) { + delay[i] = 2; } else { - time_player[i] = 1; + delay[i] = 1; } } } @@ -412,234 +418,233 @@ void fn_1_7544(void) } HuPrcVSleep(); } - if (gains[4]) { + if (coinNum[4]) { HuPrcSleep(20); - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); - Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); + Hu3DModelRotSet(stageMdlId[8], 0, -90, 0); + Hu3DModelScaleSet(stageMdlId[8], 0.8f, 0.8f, 0.8f); + Hu3DMotionSpeedSet(stageMdlId[8], 2.0f); for (i = 0; i <= 40; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); + Hu3DModelPosSet(stageMdlId[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); HuPrcVSleep(); } HuAudFXPlay(828); - Hu3DModelAttrReset(lbl_1_bss_1A9C[10], HU3D_MOTATTR_PAUSE); - Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); - for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { + Hu3DModelAttrReset(stageMdlId[10], HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(stageMdlId[10], 0, 0, 200); + for (i = 0; i < Hu3DMotionMaxTimeGet(stageMdlId[10]); i++) { if (i > 10) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(stageMdlId[8], HU3D_ATTR_DISPOFF); } - Center.x = lbl_1_data_8B8[(i / 2) & 0x7].x; - Center.y = 330.0f + lbl_1_data_8B8[(i / 2) & 0x7].y; - Center.z = lbl_1_data_8B8[(i / 2) & 0x7].z; - espPosSet(lbl_1_bss_1A1A[0], 288.0f + lbl_1_data_8B8[(i / 2) & 0x7].x, 240.0f - lbl_1_data_8B8[(i / 2) & 0x7].y); + Center.x = cameraShakeOfs[(i / 2) & 0x7].x; + Center.y = 330.0f + cameraShakeOfs[(i / 2) & 0x7].y; + Center.z = cameraShakeOfs[(i / 2) & 0x7].z; + espPosSet(stageSprId[0], 288.0f + cameraShakeOfs[(i / 2) & 0x7].x, 240.0f - cameraShakeOfs[(i / 2) & 0x7].y); HuPrcVSleep(); } - espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); + espPosSet(stageSprId[0], 288.0, 240.0); Center.x = 0; Center.y = 330; Center.z = 0; - time_player[0] = 10; + delay[0] = 10; for (i = 0; i < 4; i++) { - if (lbl_1_bss_172 == lbl_1_bss_19F0[i]) { + if (resultBonusPlayer == resultBattleOrder[i]) { break; } } - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + Hu3DParManAttrReset(resultBattleEffParManId[i], 1); while (1) { - if (time_player[0] != 0) { - time_player[0]--; + if (delay[0] != 0) { + delay[0]--; HuPrcVSleep(); continue; } - if (gains[4] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + if (coinNum[4] <= 0) { + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); break; } - fn_1_86DC(i); - gains[4]--; - time_player[0] = 5; + CoinEffectAdd(i); + coinNum[4]--; + delay[0] = 5; HuPrcVSleep(); } - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); } - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]]) { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, HU3D_MOTATTR_NONE); - HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); + if (coinNum[resultBattleOrder[i]]) { + CharModelMotionShiftSet(GWPlayerCfg[resultBattleOrder[i]].character, resultBattleCharMot[resultBattleOrder[i]][1], 0, 4, HU3D_MOTATTR_NONE); + HuAudPlayerVoicePlay(resultBattleOrder[i], 293); } else { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, HU3D_MOTATTR_NONE); + CharModelMotionShiftSet(GWPlayerCfg[resultBattleOrder[i]].character, resultBattleCharMot[resultBattleOrder[i]][2], 0, 4, HU3D_MOTATTR_NONE); } } HuPrcSleep(20); - fn_1_7F98(); + ResultBattleCoinAddShow(); HuPrcSleep(120); } -void fn_1_7F98(void) +static void ResultBattleCoinAddShow(void) { s16 i; s16 time; - s16 delay; - s16 gains[5]; - Vec pos_3d; - Vec pos_2d; - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + s16 speed; + s16 coinNum[5]; + Vec pos3D; + Vec pos2D; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); - pos_3d.x = lbl_1_data_7F0[i].x; - if (gains[lbl_1_bss_19F0[i]]) { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + ResultBattleCoinAddNumSet(coinNumGrpId[i], coinNum[resultBattleOrder[i]]); + pos3D.x = playerPosTbl[i].x; + if (coinNum[resultBattleOrder[i]]) { + pos3D.y = playerPosTbl[resultBattleRank[i]].y + coinAddYOfs[GWPlayerCfg[resultBattleOrder[i]].character]; } else { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + pos3D.y = playerPosTbl[resultBattleRank[i]].y + coinBlankYOfs[GWPlayerCfg[resultBattleOrder[i]].character]; } - pos_3d.z = 0; - Hu3D3Dto2D(&pos_3d, 1, &pos_2d); - HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); + pos3D.z = 0; + Hu3D3Dto2D(&pos3D, 1, &pos2D); + HuSprGrpPosSet(coinNumGrpId[i], pos2D.x, pos2D.y); } - delay = (lbl_1_bss_174) ? 3 : 10; - for (time = 0; time <= delay; time++) { - float scale = sin(M_PI * ((90.0 / delay) * time) / 180.0); + speed = (resultFastF) ? 3 : 10; + for (time = 0; time <= speed; time++) { + float scale = sind((90.0 / speed) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); + HuSprGrpScaleSet(coinNumGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); + HuSprGrpScaleSet(coinNumGrpId[i], 1.0f, 1.0f); } } -void fn_1_8338(s16 group, s16 value) +static void ResultBattleCoinAddNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; - - digit = 2; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + s16 no; + s16 bank; + no = 2; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 3) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 5; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_8484(void) +static void ResultBattleOrderSet(void) { s16 i; s16 j; for (i = 0; i < 4; i++) { - lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); - lbl_1_bss_19F0[i] = i; + resultBattleRank[i] = GWPlayerCoinWinGet(i); + resultBattleOrder[i] = i; } for (j = 1; j < 4; j++) { for (i = 0; i < 4 - j; i++) { - if (lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i + 1]) { + if (resultBattleRank[i] > resultBattleRank[i + 1]) { s16 temp; - temp = lbl_1_bss_19E8[i]; - lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i + 1]; - lbl_1_bss_19E8[i + 1] = temp; - temp = lbl_1_bss_19F0[i]; - lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i + 1]; - lbl_1_bss_19F0[i + 1] = temp; + temp = resultBattleRank[i]; + resultBattleRank[i] = resultBattleRank[i + 1]; + resultBattleRank[i + 1] = temp; + temp = resultBattleOrder[i]; + resultBattleOrder[i] = resultBattleOrder[i + 1]; + resultBattleOrder[i + 1] = temp; } } } } -void fn_1_8998(void); +static void CoinEffectMain(void); -void fn_1_8658(void) +static void CoinEffectInit(void) { s16 i; Process *process = HuPrcCurrentGet(); - for (i = 0; i < 180; i++) { - lbl_1_bss_194[i].unk0 = -1; + for (i = 0; i < COIN_EFFECT_MAX; i++) { + coinEffectData[i].playerNo = -1; } - HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); + HuPrcChildCreate(CoinEffectMain, 100, 8192, 0, process); } -void fn_1_86DC(s16 player) +static void CoinEffectAdd(s16 playerNo) { s16 i; - for (i = 0; i < 180; i++) { - if (lbl_1_bss_194[i].unk0 == -1) { + for (i = 0; i < COIN_EFFECT_MAX; i++) { + if (coinEffectData[i].playerNo == -1) { break; } } - if (i == 180) { + if (i == COIN_EFFECT_MAX) { return; } - lbl_1_bss_194[i].unk0 = player; - lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; - lbl_1_bss_194[i].unk4.y = 610.0f; - lbl_1_bss_194[i].unk4.z = 0.0f; - lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; - lbl_1_bss_194[i].unk10.x = frandmod(20) - 10.0f; - lbl_1_bss_194[i].unk10.y = frandmod(20) - 10.0f; - lbl_1_bss_194[i].unk10.z = 0; - lbl_1_bss_194[i].unk1C = 10.0f; - Hu3DModelAttrReset(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); - Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); + coinEffectData[i].playerNo = playerNo; + coinEffectData[i].pos.x = playerPosTbl[playerNo].x; + coinEffectData[i].pos.y = 610.0f; + coinEffectData[i].pos.z = 0.0f; + coinEffectData[i].rank = resultBattleRank[playerNo]; + coinEffectData[i].rotVel.x = frandmod(20) - 10.0f; + coinEffectData[i].rotVel.y = frandmod(20) - 10.0f; + coinEffectData[i].rotVel.z = 0; + coinEffectData[i].velY = 10.0f; + Hu3DModelAttrReset(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(coinEffectMdlId[i], 0, 100, 0); + Hu3DModelRotSet(coinEffectMdlId[i], 0, 0, 0); } -void fn_1_8998(void) +static void CoinEffectMain(void) { s16 i; - ModelData *model_ptr; + ModelData *modelP; s16 player; while (1) { - for (i = 0; i < 180; i++) { - if (lbl_1_bss_194[i].unk0 == -1) { + for (i = 0; i < COIN_EFFECT_MAX; i++) { + if (coinEffectData[i].playerNo == -1) { continue; } - player = lbl_1_bss_194[i].unk0; - model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; - model_ptr->pos = lbl_1_bss_194[i].unk4; - model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; - model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; - lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; - lbl_1_bss_194[i].unk1C += 0.2f; - if (lbl_1_bss_194[i].unk4.y < ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { + player = coinEffectData[i].playerNo; + modelP = &Hu3DData[coinEffectMdlId[i]]; + modelP->pos = coinEffectData[i].pos; + modelP->rot.x += coinEffectData[i].rotVel.x; + modelP->rot.y += coinEffectData[i].rotVel.y; + coinEffectData[i].pos.y -= coinEffectData[i].velY; + coinEffectData[i].velY += 0.2f; + if (coinEffectData[i].pos.y < ((3 - coinEffectData[i].rank) * 100) + coinEffectYOfs[GWPlayerCfg[resultBattleOrder[player]].character]) { Vec pos; - pos.x = lbl_1_data_7F0[player].x; - pos.y = ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; + pos.x = playerPosTbl[player].x; + pos.y = ((3 - coinEffectData[i].rank) * 100) + coinEffectYOfs[GWPlayerCfg[resultBattleOrder[player]].character]; pos.z = 0.0f; CharModelCoinEffectCreate(1, &pos); - lbl_1_bss_194[i].unk0 = -1; + coinEffectData[i].playerNo = -1; HuAudFXPlay(7); - Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); } } HuPrcVSleep(); } } -void fn_1_8CB8(struct model_data *model, Mtx matrix) +static void ResultShadowDraw(struct model_data *model, Mtx matrix) { s32 sp8 = 0; GXTexObj tex; Mtx final; - Mtx inv_camera; + Mtx invCamera; Mtx shadow; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -647,8 +652,8 @@ void fn_1_8CB8(struct model_data *model, Mtx matrix) GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, matrix, final); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, matrix, final); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); MTXConcat(shadow, final, final); GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); diff --git a/src/REL/resultDll/datalist.c b/src/REL/resultDll/datalist.c index 6b5705a2..5d747f30 100644 --- a/src/REL/resultDll/datalist.c +++ b/src/REL/resultDll/datalist.c @@ -1,13 +1,17 @@ #include "REL/resultdll.h" -s16 lbl_1_bss_1A9C[32]; -s16 lbl_1_bss_1A5C[32]; -s16 lbl_1_bss_1A1A[33]; +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +s16 stageMdlId[32]; +s16 stageMotId[32]; +s16 stageSprId[33]; s16 lbl_1_bss_1A18; -void fn_1_8FF8(DataListModel *model_list) +void StageModelCreate(StageModel *model_list) { - DataListModel *list; + StageModel *list; s16 i; s16 model; s16 clear_i; @@ -15,24 +19,24 @@ void fn_1_8FF8(DataListModel *model_list) void *data; list = model_list; for(clear_i=0; clear_i<32; clear_i++) { - lbl_1_bss_1A9C[clear_i] = lbl_1_bss_1A5C[clear_i] = -1; + stageMdlId[clear_i] = stageMotId[clear_i] = -1; } for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { if(list->type == 0) { data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); model = Hu3DModelCreate(data); - lbl_1_bss_1A9C[i] = model; + stageMdlId[i] = model; Hu3DModelAttrSet(model, list->attr); Hu3DModelPosSetV(model, &list->pos); Hu3DModelRotSetV(model, &list->rot); Hu3DModelScaleSetV(model, &list->scale); model_ptr = &Hu3DData[model]; if(model_ptr->unk_08 != -1) { - lbl_1_bss_1A5C[i] = model_ptr->unk_08; + stageMotId[i] = model_ptr->unk_08; } } else if(list->type == 1) { data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - lbl_1_bss_1A5C[i] = Hu3DJointMotion(lbl_1_bss_1A9C[list->mot_link], data); + stageMotId[i] = Hu3DJointMotion(stageMdlId[list->mot_link], data); } (void)i; @@ -40,33 +44,33 @@ void fn_1_8FF8(DataListModel *model_list) list = model_list; for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { if(list->type == 2) { - model = Hu3DModelLink(lbl_1_bss_1A9C[list->link]); - lbl_1_bss_1A9C[i] = model; + model = Hu3DModelLink(stageMdlId[list->link]); + stageMdlId[i] = model; Hu3DModelAttrSet(model, list->attr); Hu3DModelPosSetV(model, &list->pos); Hu3DModelRotSetV(model, &list->rot); Hu3DModelScaleSetV(model, &list->scale); } if(list->mot_link != -1) { - Hu3DMotionSet(lbl_1_bss_1A9C[i], lbl_1_bss_1A5C[list->mot_link]); + Hu3DMotionSet(stageMdlId[i], stageMotId[list->mot_link]); } (void)i; } } -void fn_1_927C(DataListSprite *sprite_list) +void StageSpriteCreate(StageSprite *sprite_list) { - DataListSprite *list; + StageSprite *list; s16 sprite; s16 clear_i; s16 i; list = sprite_list; for(clear_i=0; clear_i<32; clear_i++) { - lbl_1_bss_1A1A[clear_i] = -1; + stageSprId[clear_i] = -1; } for(i=0; list->datanum; i++, list++) { sprite = espEntry(list->datanum, 100, 0); - lbl_1_bss_1A1A[i] = sprite; + stageSprId[i] = sprite; espPosSet(sprite, list->x, list->y); espColorSet(sprite, list->color.r, list->color.g, list->color.b); espTPLvlSet(sprite, list->color.a/255.0f); @@ -75,12 +79,12 @@ void fn_1_927C(DataListSprite *sprite_list) } } -void fn_1_93B4(void) +void StageSpriteKill(void) { s16 i; for(i=0; i<32; i++) { - if(lbl_1_bss_1A1A[i] != -1) { - espKill(lbl_1_bss_1A1A[i]); + if(stageSprId[i] != -1) { + espKill(stageSprId[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 66c26486..84d801c9 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -14,11 +14,15 @@ #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" #include "REL/resultdll.h" -DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +static StageModel resultModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x01), 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x02), 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x03), 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, @@ -32,7 +36,7 @@ DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1 { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; -DataListSprite lbl_1_data_2A4[] = { +static StageSprite resultSprite[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), 0, 10, 288, 60, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 132, { 255, 255, 255, 255 } }, @@ -46,60 +50,60 @@ DataListSprite lbl_1_data_2A4[] = { { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; -s16 lbl_1_data_380 = -1; +static s16 rankNewGrpId = -1; omObjData *lbl_1_bss_188; -omObjData *lbl_1_bss_184; -Process *lbl_1_bss_180; -s16 lbl_1_bss_17C; -s32 lbl_1_bss_178; -s32 lbl_1_bss_174; -s16 lbl_1_bss_172; -s16 lbl_1_bss_170; -s16 lbl_1_bss_168[4]; -s16 lbl_1_bss_158[8]; -AnimData *lbl_1_bss_144[5]; -AnimData *lbl_1_bss_E4[8][3]; -AnimData *lbl_1_bss_E0; -s16 lbl_1_bss_CE[9]; -s16 lbl_1_bss_9E[8][3]; -s16 lbl_1_bss_9C; -s16 lbl_1_bss_5C[8][4]; -s16 lbl_1_bss_54[4]; -s16 lbl_1_bss_52; -s16 lbl_1_bss_4A[4]; -s16 lbl_1_bss_42[4]; -s16 lbl_1_bss_3A[4]; -s16 lbl_1_bss_12[4][5]; -s16 lbl_1_bss_A[4]; -s16 lbl_1_bss_8; -s32 lbl_1_bss_4; -s32 lbl_1_bss_0; +static omObjData *outViewObj; +Process *objman; +s16 resultMgNo; +s32 resultReadEndF; +s32 resultFastF; +s16 resultBonusPlayer; +static s16 teamResultGrpId; +static s16 charShadowMdlId[4]; +static s16 statShadowMdlId[8]; +static AnimData *resultRankAnim[5]; +static AnimData *resultCharAnim[8][3]; +static AnimData *resultCrownAnim; +static s16 resultNumGrpId[8]; +static s16 resultNumSprId[8][3]; +static s16 resultCrownGrpId; +static s16 resultCubeMdlId[8][4]; +static s16 resultPlayerCubeMdlId[4]; +static s16 resultRankGrpId; +static s16 resultOrder[4]; +static s16 resultRank[4]; +static s16 resultCoinAddGrpId[4]; +static s16 resultCoinAddSprId[4][5]; +static s16 resultCharCubeMdlId[4]; +static s16 resultTeamOrder; +static s32 resultSkipF; +static s32 resultReorderF; -void fn_1_4D8(void); -void fn_1_888(void); +static void ResultMain(void); +static void ResultIdle(void); -void fn_1_B78(void); -void fn_1_1F4C(void); -void fn_1_2ADC(void); -void fn_1_461C(void); -void fn_1_47FC(void); +static void ResultCreate(void); +static void ResultStatAdd(void); +static void ResultOrderApply(void); +static void SaveExec(void); +static void ResultTeamExec(void); void ObjectSetup(void) { s32 i; - s32 light; + s32 lightId; OSReport("******* RESULT ObjectSetup *********\n"); - lbl_1_bss_180 = omInitObjMan(50, 8192); - lbl_1_bss_17C = GWSystem.mg_next; + objman = omInitObjMan(50, 8192); + resultMgNo = GWSystem.mg_next; - if (mgInfoTbl[lbl_1_bss_17C].ovl == OVL_M430) { + if (mgInfoTbl[resultMgNo].ovl == OVL_M430) { for (i = 0; i < 4; i++) { GWPlayerCfg[i].group = GWPlayerCfg[i].group / 2; } } - HuDataDirClose(mgInfoTbl[lbl_1_bss_17C].data_dir); - if (mgInfoTbl[lbl_1_bss_17C].type == 3 || mgInfoTbl[lbl_1_bss_17C].type == 5 || mgInfoTbl[lbl_1_bss_17C].type == 6 + HuDataDirClose(mgInfoTbl[resultMgNo].data_dir); + if (mgInfoTbl[resultMgNo].type == 3 || mgInfoTbl[resultMgNo].type == 5 || mgInfoTbl[resultMgNo].type == 6 || !_CheckFlag(FLAG_ID_MAKE(1, 0))) { if (_CheckFlag(0x10000)) { HuAR_DVDtoARAM(DATADIR_BOARD); @@ -119,27 +123,27 @@ void ObjectSetup(void) Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - lbl_1_bss_174 = 0; + lightId = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(lightId); + resultFastF = 0; if (mgInfoTbl[GWSystem.mg_next].type != 4) { - HuPrcChildCreate(fn_1_4D8, 100, 12288, 0, lbl_1_bss_180); + HuPrcChildCreate(ResultMain, 100, 12288, 0, objman); } else { - HuPrcChildCreate(fn_1_6490, 100, 12288, 0, lbl_1_bss_180); + HuPrcChildCreate(ResultBattleMain, 100, 12288, 0, objman); } - lbl_1_bss_184 = omAddObjEx(lbl_1_bss_180, 32730, 0, 0, -1, omOutView); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); HuWinInit(1); - lbl_1_bss_172 = frandmod(4); + resultBonusPlayer = frandmod(4); } -void fn_1_4D8(void) +static void ResultMain(void) { s16 player; s16 i; - s16 window; - s16 button; - Process *process_curr = HuPrcCurrentGet(); + s16 winId; + s16 btnDown; + Process *proc = HuPrcCurrentGet(); HuAudSeqPlay(57); for (i = player = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { @@ -147,43 +151,43 @@ void fn_1_4D8(void) } } if (player == 4) { - lbl_1_bss_4 = 1; + resultSkipF = 1; } else { - lbl_1_bss_4 = 0; + resultSkipF = 0; } - fn_1_B78(); - HuPrcChildCreate(fn_1_888, 100, 8192, 0, lbl_1_bss_180); + ResultCreate(); + HuPrcChildCreate(ResultIdle, 100, 8192, 0, objman); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } HuDataDirClose(DATADIR_RESULT); - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, lbl_1_bss_180); + resultReadEndF = 0; + HuPrcChildCreate(ResultBoardDataRead, 100, 12288, 0, objman); HuPrcSleep(10); - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(20); } - fn_1_1F4C(); - fn_1_40DC(); - fn_1_2ADC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinPriSet(window, 5); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + ResultStatAdd(); + ResultCoinAdd(); + ResultOrderApply(); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinPriSet(winId, 5); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); i = 0; while (1) { - if (!lbl_1_bss_4 || i <= 120) { - for (player = button = 0; player < 4; player++) { + if (!resultSkipF || i <= 120) { + for (player = btnDown = 0; player < 4; player++) { if (!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + btnDown |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; } } - if (button & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } @@ -194,11 +198,11 @@ void fn_1_4D8(void) break; } } - HuWinKill(window); + HuWinKill(winId); if (GWTeamGet()) { - fn_1_47FC(); + ResultTeamExec(); } - while (!lbl_1_bss_178) { + while (!resultReadEndF) { HuPrcVSleep(); } HuAudSeqAllFadeOut(1000); @@ -208,7 +212,7 @@ void fn_1_4D8(void) while (WipeStatGet()) { HuPrcVSleep(); } - fn_1_461C(); + SaveExec(); } else { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -224,51 +228,51 @@ void fn_1_4D8(void) } } -void fn_1_888(void) +static void ResultIdle(void) { - f32 var_f29; - f32 var_f31; - f32 var_f30; + float rotRightSpeed; + float rotLeft; + float rotRight; - var_f31 = 0.0f; - var_f30 = 0.0f; - var_f29 = 0.0f; - lbl_1_bss_0 = 0; + rotLeft = 0.0f; + rotRight = 0.0f; + rotRightSpeed = 0.0f; + resultReorderF = 0; while (1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_4 != 0) { - lbl_1_bss_174 = 1; + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & PAD_BUTTON_A) != 0 || resultSkipF != 0) { + resultFastF = 1; } else { - lbl_1_bss_174 = 0; + resultFastF = 0; } - Hu3DModelRotSet(lbl_1_bss_1A9C[4], 0.0f, var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[5], 0.0f, -var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[6], 0.0f, var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[7], 0.0f, -var_f31, 0.0f); - var_f31 += 0.2; - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + Hu3DModelRotSet(stageMdlId[4], 0.0f, rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[5], 0.0f, -rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[6], 0.0f, rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[7], 0.0f, -rotLeft, 0.0f); + rotLeft += 0.2; + if (rotLeft >= 360.0f) { + rotLeft -= 360.0f; } - if (lbl_1_bss_0 != 0) { - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0.0f, var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[9], 0.0f, -var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[10], 0.0f, var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[11], 0.0f, -var_f30, 0.0f); - var_f29 += 0.001; - if (var_f29 > 0.1) { - var_f29 = 0.1f; + if (resultReorderF != 0) { + Hu3DModelRotSet(stageMdlId[8], 0.0f, rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[9], 0.0f, -rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[10], 0.0f, rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[11], 0.0f, -rotRight, 0.0f); + rotRightSpeed += 0.001; + if (rotRightSpeed > 0.1) { + rotRightSpeed = 0.1f; } - var_f30 += var_f29; - if (var_f30 >= 360.0f) { - var_f30 -= 360.0f; + rotRight += rotRightSpeed; + if (rotRight >= 360.0f) { + rotRight -= 360.0f; } } HuPrcVSleep(); } } -s32 lbl_1_data_3A8[] = { +static s32 resultBackFile[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x10), DATA_MAKE_NUM(DATADIR_RESULT, 0x11), DATA_MAKE_NUM(DATADIR_RESULT, 0x12), @@ -277,7 +281,7 @@ s32 lbl_1_data_3A8[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x15), }; -s32 lbl_1_data_3C0[] = { +static s32 resultLetterFile[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), DATA_MAKE_NUM(DATADIR_RESULT, 0x1E), DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), @@ -286,7 +290,7 @@ s32 lbl_1_data_3C0[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), }; -s16 lbl_1_data_3D8[] = { +static s16 resultStatPosTbl[] = { 320, 132, 500, @@ -305,123 +309,123 @@ s16 lbl_1_data_3D8[] = { 387, }; -s16 lbl_1_data_3F8[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; +static s16 resultRankPosTbl[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; -Vec lbl_1_data_408[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; +static Vec resultCharPosTbl[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; -s16 lbl_1_data_438[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; +static s16 resultCoinAddPosTbl[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; -void fn_1_3B50(s16 group, s16 value); -void fn_1_3CAC(s16 group, s16 value); +static void ResultSprNumSet(s16 grpId, s16 value); +static void ResultCoinAddNumSet(s16 grpId, s16 value); -void fn_1_3E08(void); +static void ResultOrderSet(void); -void fn_1_B78(void) +static void ResultCreate(void) { Vec pos; - s16 sp8[5]; + s16 coinNum[5]; s16 i; s16 j; - s16 character; + s16 charNo; AnimData *anim; - s16 sprite; - s16 group; - s16 model; + s16 sprId; + s16 grpId; + s16 mdlId; AnimData *anim2; AnimData *anim3; AnimData *anim4; - fn_1_8FF8(lbl_1_data_0); - lbl_1_data_2A4[0].datanum = lbl_1_data_3A8[mgInfoTbl[lbl_1_bss_17C].type]; - lbl_1_data_2A4[1].datanum = lbl_1_data_3C0[mgInfoTbl[lbl_1_bss_17C].type]; - fn_1_927C(lbl_1_data_2A4); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); + StageModelCreate(resultModel); + resultSprite[0].datanum = resultBackFile[mgInfoTbl[resultMgNo].type]; + resultSprite[1].datanum = resultLetterFile[mgInfoTbl[resultMgNo].type]; + StageSpriteCreate(resultSprite); + espDrawNoSet(stageSprId[0], 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1B)); for (i = 0; i < 8; i++) { - lbl_1_bss_CE[i] = HuSprGrpCreate(3); - lbl_1_bss_9E[i][0] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 0, lbl_1_bss_9E[i][0]); - HuSprPosSet(lbl_1_bss_CE[i], 0, -28.0f, 0.0f); - lbl_1_bss_9E[i][1] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 1, lbl_1_bss_9E[i][1]); - HuSprPosSet(lbl_1_bss_CE[i], 1, 0.0f, 0.0f); - lbl_1_bss_9E[i][2] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 2, lbl_1_bss_9E[i][2]); - HuSprPosSet(lbl_1_bss_CE[i], 2, 28.0f, 0.0f); - HuSprGrpPosSet(lbl_1_bss_CE[i], lbl_1_data_3D8[(i * 2)], lbl_1_data_3D8[(i * 2) + 1]); - fn_1_3B50(lbl_1_bss_CE[i], 999); + resultNumGrpId[i] = HuSprGrpCreate(3); + resultNumSprId[i][0] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 0, resultNumSprId[i][0]); + HuSprPosSet(resultNumGrpId[i], 0, -28.0f, 0.0f); + resultNumSprId[i][1] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 1, resultNumSprId[i][1]); + HuSprPosSet(resultNumGrpId[i], 1, 0.0f, 0.0f); + resultNumSprId[i][2] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 2, resultNumSprId[i][2]); + HuSprPosSet(resultNumGrpId[i], 2, 28.0f, 0.0f); + HuSprGrpPosSet(resultNumGrpId[i], resultStatPosTbl[(i * 2)], resultStatPosTbl[(i * 2) + 1]); + ResultSprNumSet(resultNumGrpId[i], 999); } - fn_1_3E08(); - fn_1_423C(sp8); + ResultOrderSet(); + ResultCoinNumGet(coinNum); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3A)); anim3 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B)); anim2 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C)); anim4 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3E)); for (i = 0; i < 4; i++) { - lbl_1_bss_3A[i] = HuSprGrpCreate(5); - if (sp8[lbl_1_bss_4A[i]] < 100) { - lbl_1_bss_12[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 30.0f, -25.0f); + resultCoinAddGrpId[i] = HuSprGrpCreate(5); + if (coinNum[resultOrder[i]] < 100) { + resultCoinAddSprId[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 0, resultCoinAddSprId[i][0]); + HuSprPosSet(resultCoinAddGrpId[i], 0, 30.0f, -25.0f); } else { - lbl_1_bss_12[i][0] = HuSprCreate(anim4, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 40.0f, -21.0f); + resultCoinAddSprId[i][0] = HuSprCreate(anim4, 10, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 0, resultCoinAddSprId[i][0]); + HuSprPosSet(resultCoinAddGrpId[i], 0, 40.0f, -21.0f); } - lbl_1_bss_12[i][1] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 1, lbl_1_bss_12[i][1]); - HuSprPosSet(lbl_1_bss_3A[i], 1, 12.0f, -25.0f); - lbl_1_bss_12[i][2] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 2, lbl_1_bss_12[i][2]); - HuSprPosSet(lbl_1_bss_3A[i], 2, 28.0f, -25.0f); - lbl_1_bss_12[i][3] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 3, lbl_1_bss_12[i][3]); - HuSprPosSet(lbl_1_bss_3A[i], 3, 44.0f, -25.0f); - lbl_1_bss_12[i][4] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 4, lbl_1_bss_12[i][4]); - HuSprPosSet(lbl_1_bss_3A[i], 4, 60.0f, -25.0f); - HuSprGrpPosSet(lbl_1_bss_3A[i], lbl_1_data_438[(i * 2)], lbl_1_data_438[(i * 2) + 1]); - fn_1_3CAC(lbl_1_bss_3A[i], 9); - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + resultCoinAddSprId[i][1] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 1, resultCoinAddSprId[i][1]); + HuSprPosSet(resultCoinAddGrpId[i], 1, 12.0f, -25.0f); + resultCoinAddSprId[i][2] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 2, resultCoinAddSprId[i][2]); + HuSprPosSet(resultCoinAddGrpId[i], 2, 28.0f, -25.0f); + resultCoinAddSprId[i][3] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 3, resultCoinAddSprId[i][3]); + HuSprPosSet(resultCoinAddGrpId[i], 3, 44.0f, -25.0f); + resultCoinAddSprId[i][4] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 4, resultCoinAddSprId[i][4]); + HuSprPosSet(resultCoinAddGrpId[i], 4, 60.0f, -25.0f); + HuSprGrpPosSet(resultCoinAddGrpId[i], resultCoinAddPosTbl[(i * 2)], resultCoinAddPosTbl[(i * 2) + 1]); + ResultCoinAddNumSet(resultCoinAddGrpId[i], 9); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 0.0f, 0.0f); } for (i = 0; i < 4; i++) { - character = GWPlayerCfg[i].character; - lbl_1_bss_E4[character][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (character * 3)); - lbl_1_bss_E4[character][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (character * 3)); - lbl_1_bss_E4[character][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (character * 3)); + charNo = GWPlayerCfg[i].character; + resultCharAnim[charNo][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (charNo * 3)); + resultCharAnim[charNo][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (charNo * 3)); + resultCharAnim[charNo][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (charNo * 3)); for (j = 0; j < 4; j++) { - lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); - Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); - Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); - Hu3DModelAttrSet(lbl_1_bss_5C[character][j], HU3D_ATTR_DISPOFF); + resultCubeMdlId[charNo][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); + Hu3DModelScaleSet(resultCubeMdlId[charNo][j], 1.1f, 1.1f, 1.1f); + Hu3DAnimCreate(resultCharAnim[charNo][0], resultCubeMdlId[charNo][j], "ys22"); + Hu3DModelAttrSet(resultCubeMdlId[charNo][j], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { - lbl_1_bss_144[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); + resultRankAnim[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); } - lbl_1_bss_52 = HuSprGrpCreate(4); + resultRankGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - sprite = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_bss_52, i, sprite); - HuSprPosSet(lbl_1_bss_52, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - character = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); - Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], HU3D_ATTR_DISPOFF); + sprId = HuSprCreate(resultRankAnim[resultRank[i]], i, 0); + HuSprGrpMemberSet(resultRankGrpId, i, sprId); + HuSprPosSet(resultRankGrpId, i, resultRankPosTbl[(i * 2)], resultRankPosTbl[(i * 2) + 1]); + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); + charNo = GWPlayerCfg[resultOrder[i]].character; + Hu3D2Dto3D(&resultCharPosTbl[i], 1, &pos); + Hu3DModelPosSetV(resultCubeMdlId[charNo][resultRank[i]], &pos); + Hu3DModelAttrReset(resultCubeMdlId[charNo][resultRank[i]], HU3D_ATTR_DISPOFF); } for (i = 4; i <= 11; i++) { - Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_1A9C[i], &pos); + Hu3D2Dto3D(&resultModel[i].pos, 1, &pos); + Hu3DModelPosSetV(stageMdlId[i], &pos); Hu3D3Dto2D(&pos, 1, &pos); } - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); + mdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); for (i = 0; i < 4; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_168[i] = j; - pos = lbl_1_data_408[i]; + j = Hu3DModelLink(mdlId); + charShadowMdlId[i] = j; + pos = resultCharPosTbl[i]; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; @@ -429,12 +433,12 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); + Hu3DModelAttrSet(mdlId, HU3D_ATTR_DISPOFF); + mdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); for (i = 0; i < 8; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_158[i] = j; - pos = lbl_1_data_0[i + 4].pos; + j = Hu3DModelLink(mdlId); + statShadowMdlId[i] = j; + pos = resultModel[i + 4].pos; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; @@ -442,461 +446,460 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - lbl_1_bss_E0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); - lbl_1_bss_9C = HuSprGrpCreate(4); + Hu3DModelAttrSet(mdlId, HU3D_ATTR_DISPOFF); + resultCrownAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); + resultCrownGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - sprite = HuSprCreate(lbl_1_bss_E0, i, 0); - HuSprGrpMemberSet(lbl_1_bss_9C, i, sprite); - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); - HuSprPosSet(lbl_1_bss_9C, i, lbl_1_data_408[i].x - 4.0f, lbl_1_data_408[i].y - 35.0f); - HuSprAttrSet(lbl_1_bss_9C, i, 4); + sprId = HuSprCreate(resultCrownAnim, i, 0); + HuSprGrpMemberSet(resultCrownGrpId, i, sprId); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); + HuSprPosSet(resultCrownGrpId, i, resultCharPosTbl[i].x - 4.0f, resultCharPosTbl[i].y - 35.0f); + HuSprAttrSet(resultCrownGrpId, i, 4); } - group = HuSprGrpCreate(4); - lbl_1_bss_170 = group; + grpId = HuSprGrpCreate(4); + teamResultGrpId = grpId; anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3F)); - sprite = HuSprCreate(anim, 100, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprAttrSet(group, 0, 4); - HuSprDrawNoSet(group, 0, 127); + sprId = HuSprCreate(anim, 100, 0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprAttrSet(grpId, 0, 4); + HuSprDrawNoSet(grpId, 0, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x40)); - sprite = HuSprCreate(anim, 90, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprAttrSet(group, 1, 4); + sprId = HuSprCreate(anim, 90, 0); + HuSprGrpMemberSet(grpId, 1, sprId); + HuSprAttrSet(grpId, 1, 4); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x41)); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprAttrSet(group, 2, 4); - HuSprDrawNoSet(group, 2, 127); + sprId = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(grpId, 2, sprId); + HuSprAttrSet(grpId, 2, 4); + HuSprDrawNoSet(grpId, 2, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x42)); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 3, sprite); - HuSprAttrSet(group, 3, 4); - HuSprDrawNoSet(group, 3, 127); - (void)sprite; + sprId = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(grpId, 3, sprId); + HuSprAttrSet(grpId, 3, 4); + HuSprDrawNoSet(grpId, 3, 127); + (void)sprId; } -void fn_1_1F4C(void) +static void ResultStatAdd(void) { - float temp_f31; - float temp_f30; + float scale; + float addTime; s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s32 status; - s32 temp_r26; - s32 sp24[4]; - float sp14[4]; - s16 sp8[5]; + s16 time; + s16 maxTime; + s16 crownTime; + s32 seNo; + s32 sePlayF; + s32 doneF[4]; + float coinRot[4]; + s16 coinNum[5]; - fn_1_423C(sp8); + ResultCoinNumGet(coinNum); for (i = 0; i < 4; i++) { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); - sp24[i] = 0; + ResultCoinAddNumSet(resultCoinAddGrpId[i], coinNum[resultOrder[i]]); + doneF[i] = 0; } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = sin(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + maxTime = (resultFastF) ? 3 : 10; + for (time = 0; time <= maxTime; time++) { + scale = sind((90.0 / maxTime) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + HuSprGrpScaleSet(resultCoinAddGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 1.0f, 1.0f); } - for (temp_r28 = 0; temp_r28 <= 14;) { + for (crownTime = 0; crownTime <= 14;) { for (i = 0; i < 4; i++) { - if (GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { - HuSprAttrReset(lbl_1_bss_9C, i, 4); + if (GWPlayerCoinWinGet(resultOrder[i]) >= 10) { + HuSprAttrReset(resultCrownGrpId, i, 4); } - HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), - 0.8 * (sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (1.0 / sin((M_PI * 2) / 3)))); + HuSprScaleSet(resultCrownGrpId, i, sind((120.0f / 14.0f) * crownTime) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), + 0.8 * (sind((120.0f / 14.0f) * crownTime) * (1.0 / sin((M_PI * 2) / 3)))); } - temp_r28 += (lbl_1_bss_174) ? 2 : 1; + crownTime += (resultFastF) ? 2 : 1; HuPrcVSleep(); } - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(15); } for (i = 0; i < 4; i++) { - sp14[i] = 0.0f; + coinRot[i] = 0.0f; } - for (i = temp_r30 = 0; i < 4; i++) { - temp_r30 += sp8[i]; + for (i = time = 0; i < 4; i++) { + time += coinNum[i]; } - status = -1; - if (temp_r30) { - status = HuAudFXPlay(23); + seNo = -1; + if (time) { + seNo = HuAudFXPlay(23); } - temp_r30 = 0; - temp_f30 = temp_r30; - temp_r30 = 0; + time = 0; + addTime = time; + time = 0; while (1) { - temp_r26 = 0; - temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; - temp_r30 = temp_f30; - for (i = temp_r29 = 0; i < 4; i++) { - if (sp8[lbl_1_bss_4A[i]] - temp_r30 <= 0) { - if (!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { - sp24[lbl_1_bss_4A[i]] = 1; - if (!temp_r26) { + sePlayF = FALSE; + addTime += (resultFastF) ? 1.0f : 0.2f; + time = addTime; + for (i = maxTime = 0; i < 4; i++) { + if (coinNum[resultOrder[i]] - time <= 0) { + if (!doneF[resultOrder[i]] && coinNum[resultOrder[i]] != 0) { + doneF[resultOrder[i]] = 1; + if (!sePlayF) { HuAudFXPlay(9); - temp_r26 = 1; + sePlayF = TRUE; } } - temp_r29++; - fn_1_3CAC(lbl_1_bss_3A[i], 0); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], sp8[lbl_1_bss_4A[i]] + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - if (!sp14[i]) { + maxTime++; + ResultCoinAddNumSet(resultCoinAddGrpId[i], 0); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], coinNum[resultOrder[i]] + BoardPlayerCoinsGet(resultOrder[i])); + if (!coinRot[i]) { continue; } - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } else { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]] - temp_r30); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], (s32)temp_r30 + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + ResultCoinAddNumSet(resultCoinAddGrpId[i], coinNum[resultOrder[i]] - time); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], (s32)time + BoardPlayerCoinsGet(resultOrder[i])); + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } } - if (temp_r29 == 4) { + if (maxTime == 4) { break; } HuPrcVSleep(); } - if (status != -1) { - HuAudFXStop(status); + if (seNo != -1) { + HuAudFXStop(seNo); } - temp_r29 = 0; + maxTime = 0; while (1) { - for (i = temp_r30 = 0; i < 4; i++) { - if (sp14[i]) { - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + for (i = time = 0; i < 4; i++) { + if (coinRot[i]) { + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } else { - temp_r30++; + time++; } } - if (temp_r30 >= 4) { + if (time >= 4) { break; } HuPrcVSleep(); - temp_r29++; + maxTime++; } - if (temp_r29 < 30) { - HuPrcSleep(30 - temp_r29); + if (maxTime < 30) { + HuPrcSleep(30 - maxTime); } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = cos(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + maxTime = (resultFastF) ? 3 : 10; + for (time = 0; time <= maxTime; time++) { + scale = cosd((90.0 / maxTime) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + HuSprGrpScaleSet(resultCoinAddGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 0.0f, 0.0f); } } - -void fn_1_2ADC(void) +static void ResultOrderApply(void) { - float temp_f31; + float weight; s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - float sp54[4]; - Vec sp48; - s32 sp38[4] = { -1, -1, -1, -1 }; - s16 sp30[4]; - s16 sp28[4]; - s16 sp20[4]; - s16 sp18[4]; - s16 sp10[4]; - s16 sp8[4]; + s16 charNo; + s16 num; + s16 scaleTime; + s16 rankTime; + s16 doneNum; + s16 sePlayF; + s16 sprId; + float cubeRot[4]; + Vec cubePos; + s32 voiceSeNo[4] = { -1, -1, -1, -1 }; + s16 order[4]; + s16 statOrder[4]; + s16 statRank[4]; + s16 rank[4]; + s16 coin[4]; + s16 star[4]; for (i = 0; i < 4; i++) { - sp30[i] = sp28[i] = lbl_1_bss_4A[i]; - sp18[i] = sp20[i] = lbl_1_bss_42[i]; - sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); - sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); + order[i] = statOrder[i] = resultOrder[i]; + rank[i] = statRank[i] = resultRank[i]; + coin[i] = BoardPlayerCoinsGet(resultOrder[i]); + star[i] = GWStarsGet(resultOrder[i]); } - fn_1_3E08(); + ResultOrderSet(); for (i = 0; i < 4; i++) { - if (sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { + if (order[i] != resultOrder[i] || rank[i] != resultRank[i]) { break; } } if (i == 4) { - lbl_1_bss_0 = 1; + resultReorderF = 1; return; } - lbl_1_data_380 = HuSprGrpCreate(4); + rankNewGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); - HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); - HuSprAttrSet(lbl_1_data_380, i, 4); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); - Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); - if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + sprId = HuSprCreate(resultRankAnim[resultRank[i]], i, 0); + HuSprGrpMemberSet(rankNewGrpId, i, sprId); + HuSprPosSet(rankNewGrpId, i, resultRankPosTbl[(i * 2)], resultRankPosTbl[(i * 2) + 1]); + HuSprAttrSet(rankNewGrpId, i, 4); + charNo = GWPlayerCfg[resultOrder[i]].character; + resultPlayerCubeMdlId[i] = resultCharCubeMdlId[i] = Hu3DModelLink(resultCubeMdlId[charNo][resultRank[i]]); + Hu3D2Dto3D(&resultCharPosTbl[i], 1, &cubePos); + Hu3DModelPosSetV(resultCharCubeMdlId[i], &cubePos); + if (order[i] == resultOrder[i] && rank[i] == resultRank[i]) { + Hu3DModelAttrSet(resultCubeMdlId[charNo][rank[i]], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(resultCharCubeMdlId[i], 1.1f, 1.1f, 1.1f); } else { - Hu3DModelAttrSet(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { - sp54[i] = 0; + cubeRot[i] = 0; } - temp_r25 = 0; - temp_r28 = 0; + sePlayF = 0; + scaleTime = 0; while (1) { - for (temp_r26 = i = 0; i < 4; i++) { - if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - temp_r26++; - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + for (doneNum = i = 0; i < 4; i++) { + if (order[i] == resultOrder[i] && rank[i] == resultRank[i]) { + doneNum++; + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); } else { - if (temp_r28 > (i * 20)) { - temp_r27 = temp_r28 - (i * 20); - if (temp_r27 <= 20) { - if (temp_r27 <= 10) { - HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cos(M_PI * (9.0f * temp_r27) / 180.0)); + if (scaleTime > (i * 20)) { + rankTime = scaleTime - (i * 20); + if (rankTime <= 20) { + if (rankTime <= 10) { + HuSprScaleSet(resultRankGrpId, i, 1.0f, cosd(9.0f * rankTime)); } else { - HuSprAttrSet(lbl_1_bss_52, i, 4); - HuSprAttrReset(lbl_1_data_380, i, 4); - HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI * (9.0f * (temp_r27 - 10)) / 180.0)); + HuSprAttrSet(resultRankGrpId, i, 4); + HuSprAttrReset(rankNewGrpId, i, 4); + HuSprScaleSet(rankNewGrpId, i, 1.0f, sind(9.0f * (rankTime - 10))); } - temp_f31 = temp_r27 / 20.0f; - temp_r29 = GWStarsGet(sp28[i]) + (temp_f31 * (GWStarsGet(lbl_1_bss_4A[i]) - GWStarsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], temp_r29); - temp_r29 = BoardPlayerCoinsGet(sp28[i]) + (temp_f31 * (BoardPlayerCoinsGet(lbl_1_bss_4A[i]) - BoardPlayerCoinsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], temp_r29); + weight = rankTime / 20.0f; + num = GWStarsGet(statOrder[i]) + (weight * (GWStarsGet(resultOrder[i]) - GWStarsGet(statOrder[i]))); + ResultSprNumSet(resultNumGrpId[(i * 2)], num); + num = BoardPlayerCoinsGet(statOrder[i]) + (weight * (BoardPlayerCoinsGet(resultOrder[i]) - BoardPlayerCoinsGet(statOrder[i]))); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], num); } else { - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { - if (sp28[temp_r29] == lbl_1_bss_4A[i]) { + charNo = GWPlayerCfg[statOrder[i]].character; + Hu3DModelAttrSet(resultCubeMdlId[charNo][rank[i]], HU3D_ATTR_DISPOFF); + charNo = GWPlayerCfg[resultOrder[i]].character; + Hu3DModelAttrReset(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(resultCharCubeMdlId[i], 1.1f, 1.1f, 1.1f); + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); + for (num = 0; num < 4; num++) { + if (statOrder[num] == resultOrder[i]) { break; } } - if (lbl_1_bss_42[i] != sp20[temp_r29]) { - if (lbl_1_bss_42[i] < sp20[temp_r29]) { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + if (resultRank[i] != statRank[num]) { + if (resultRank[i] < statRank[num]) { + Hu3DAnimCreate(resultCharAnim[charNo][1], resultCubeMdlId[charNo][resultRank[i]], "ys22"); } else { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + Hu3DAnimCreate(resultCharAnim[charNo][2], resultCubeMdlId[charNo][resultRank[i]], "ys22"); } - if (lbl_1_bss_42[i] == 0) { - sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); + if (resultRank[i] == 0) { + voiceSeNo[resultOrder[i]] = HuAudPlayerVoicePlay(resultOrder[i], 293); } - if (!temp_r25) { - temp_r25 = 1; + if (!sePlayF) { + sePlayF = 1; HuAudFXPlay(27); } } - sp30[i] = lbl_1_bss_4A[i]; - sp18[i] = lbl_1_bss_42[i]; + order[i] = resultOrder[i]; + rank[i] = resultRank[i]; } } - sp54[i] += 20.0f; - if (sp54[i] >= 360.0f) { - sp54[i] -= 360.0f; + cubeRot[i] += 20.0f; + if (cubeRot[i] >= 360.0f) { + cubeRot[i] -= 360.0f; } - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i] / (4 - i), sp54[i], 0.0f); + charNo = GWPlayerCfg[statOrder[i]].character; + Hu3DModelRotSet(resultCubeMdlId[charNo][rank[i]], cubeRot[i] / (4 - i), cubeRot[i], 0.0f); } } - if (temp_r28 <= 10) { + if (scaleTime <= 10) { for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI * (9.0f * temp_r28) / 180.0), cos(M_PI * (9.0f * temp_r28) / 180.0)); + HuSprScaleSet(resultCrownGrpId, i, cosd(9.0f * scaleTime), cosd(9.0f * scaleTime)); } } else { for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); } } - if (temp_r26 >= 4) { + if (doneNum >= 4) { break; } - if (lbl_1_bss_174) { - temp_r28 += 2; + if (resultFastF) { + scaleTime += 2; } HuPrcVSleep(); - temp_r28++; + scaleTime++; } for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); } - lbl_1_bss_0 = 1; + resultReorderF = 1; } -void fn_1_3B50(s16 group, s16 value) +static void ResultSprNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; + s16 no; + s16 bank; if (value > 999) { value = 999; } - digit = 0; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + no = 0; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 1) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 1) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 3; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 3; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_3CAC(s16 group, s16 value) +static void ResultCoinAddNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; + s16 no; + s16 bank; if (value > 999) { value = 999; } - digit = 2; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + no = 2; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 3) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 5; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_3E08(void) +static void ResultOrderSet(void) { s16 i; s16 j; for (i = 0; i < 4; i++) { - lbl_1_bss_42[i] = BoardPlayerRankCalc(i); - lbl_1_bss_4A[i] = i; + resultRank[i] = BoardPlayerRankCalc(i); + resultOrder[i] = i; } for (j = 1; j < 4; j++) { for (i = 0; i < 4 - j; i++) { - if (lbl_1_bss_42[i] > lbl_1_bss_42[i + 1]) { - s16 temp = lbl_1_bss_42[i]; - lbl_1_bss_42[i] = lbl_1_bss_42[i + 1]; - lbl_1_bss_42[i + 1] = temp; - temp = lbl_1_bss_4A[i]; - lbl_1_bss_4A[i] = lbl_1_bss_4A[i + 1]; - lbl_1_bss_4A[i + 1] = temp; + if (resultRank[i] > resultRank[i + 1]) { + s16 temp = resultRank[i]; + resultRank[i] = resultRank[i + 1]; + resultRank[i + 1] = temp; + temp = resultOrder[i]; + resultOrder[i] = resultOrder[i + 1]; + resultOrder[i + 1] = temp; } } } } -s32 lbl_1_data_450[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; +static s32 resultBoardDirTbl[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; -void fn_1_3FD8(void) +void ResultBoardDataRead(void) { - s32 status; - u32 ardma; + s32 statId; + u32 aMemP; if (!_CheckFlag(0x10000)) { - lbl_1_bss_178 = 1; + resultReadEndF = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } - status = HuDataDirReadAsync(DATADIR_BOARD); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + statId = HuDataDirReadAsync(DATADIR_BOARD); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - ardma = HuAR_MRAMtoARAM(DATADIR_BOARD); - if (ardma) { + aMemP = HuAR_MRAMtoARAM(DATADIR_BOARD); + if (aMemP) { while (HuARDMACheck()) { HuPrcVSleep(); } } HuDataDirClose(DATADIR_BOARD); - status = HuDataDirReadAsync(lbl_1_data_450[GWSystem.board]); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + statId = HuDataDirReadAsync(resultBoardDirTbl[GWSystem.board]); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - lbl_1_bss_178 = 1; + resultReadEndF = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } -void fn_1_40DC(void) +void ResultCoinAdd(void) { s16 i; - s16 sp8[5]; - fn_1_423C(sp8); - sp8[lbl_1_bss_172] += sp8[4]; + s16 coinNum[5]; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - GWCoinsAdd(i, sp8[i]); + GWCoinsAdd(i, coinNum[i]); GWPlayerCoinWinSet(i, 0); GWPlayerCoinCollectSet(i, 0); if (mgInfoTbl[GWSystem.mg_next].type != 4) { - GWPlayer[i].coins_mg += sp8[i]; + GWPlayer[i].coins_mg += coinNum[i]; if (GWPlayer[i].coins_mg > 9999) { GWPlayer[i].coins_mg = 9999; } @@ -904,99 +907,99 @@ void fn_1_40DC(void) } } -void fn_1_423C(s16 *data) +void ResultCoinNumGet(s16 *coinNum) { s16 i; s32 coin; - u32 mul_coin; + u32 coinMul; u32 coin_battle; - s16 temp_r26; - s16 mgtype; - float sp10[4]; - s16 sp8[4]; - mgtype = mgInfoTbl[GWSystem.mg_next].type; - switch (mgtype) { + s16 unkRankF; + s16 mgType; + float scale[4]; + s16 rank[4]; + mgType = mgInfoTbl[GWSystem.mg_next].type; + switch (mgType) { case 4: - temp_r26 = 0; + unkRankF = 0; for (i = coin_battle = 0; i < 4; i++) { coin_battle += GWPlayerCoinBattleGet(i); } - sp8[0] = sp8[1] = sp8[2] = sp8[3] = 0; + rank[0] = rank[1] = rank[2] = rank[3] = 0; for (i = 0; i < 4; i++) { - sp8[GWPlayerCoinWinGet(i)]++; + rank[GWPlayerCoinWinGet(i)]++; } - sp10[0] = sp10[1] = sp10[2] = sp10[3] = 0; - if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 1) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; + scale[0] = scale[1] = scale[2] = scale[3] = 0; + if (rank[0] == 1 && rank[1] == 1 && rank[2] == 1) { + scale[0] = 0.7f; + scale[1] = 0.3f; } - else if (sp8[0] == 2) { - sp10[0] = 0.5f; + else if (rank[0] == 2) { + scale[0] = 0.5f; } - else if (sp8[0] == 3) { - sp10[0] = 0.3333333f; + else if (rank[0] == 3) { + scale[0] = 0.3333333f; } - else if (sp8[0] == 1 && sp8[1] == 2) { - sp10[0] = 0.6f; - sp10[1] = 0.2f; + else if (rank[0] == 1 && rank[1] == 2) { + scale[0] = 0.6f; + scale[1] = 0.2f; } - else if (sp8[0] == 1 && sp8[1] == 3) { - sp10[0] = 0.7f; - sp10[1] = 0.1f; + else if (rank[0] == 1 && rank[1] == 3) { + scale[0] = 0.7f; + scale[1] = 0.1f; } - else if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 2) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; + else if (rank[0] == 1 && rank[1] == 1 && rank[2] == 2) { + scale[0] = 0.7f; + scale[1] = 0.3f; } - else if (sp8[0] == 4) { - sp10[0] = 0.25f; + else if (rank[0] == 4) { + scale[0] = 0.25f; } else { - temp_r26 = 1; + unkRankF = 1; } for (i = coin = 0; i < 4; i++) { - if (!temp_r26) { - mul_coin = coin_battle * sp10[GWPlayerCoinWinGet(i)]; + if (!unkRankF) { + coinMul = coin_battle * scale[GWPlayerCoinWinGet(i)]; } else { - mul_coin = GWPlayerCoinBattleGet(i); + coinMul = GWPlayerCoinBattleGet(i); } - data[i] = mul_coin; - coin += mul_coin; + coinNum[i] = coinMul; + coin += coinMul; } if (coin < coin_battle) { - data[4] = coin_battle - coin; + coinNum[4] = coin_battle - coin; } else { - data[4] = 0; + coinNum[4] = 0; } break; default: for (i = 0; i < 4; i++) { coin = GWPlayerCoinWinGet(i) + GWPlayerCoinCollectGet(i); - mul_coin = GWLuckyValueGet(); - if (mul_coin == 0) { - mul_coin = 1; + coinMul = GWLuckyValueGet(); + if (coinMul == 0) { + coinMul = 1; } - coin *= mul_coin; - data[i] = coin; + coin *= coinMul; + coinNum[i] = coin; } break; } } -void fn_1_461C(void) +static void SaveExec(void) { - s16 sprite; + s16 sprId; Hu3DAllKill(); HuSprClose(); HuSprInit(); espInit(); HuPrcVSleep(); - sprite = espEntry(0x860020, 5000, 0); - espPosSet(sprite, 288.0, 240.0); - espAttrReset(sprite, HUSPR_ATTR_DISPOFF); + sprId = espEntry(0x860020, 5000, 0); + espPosSet(sprId, 288.0, 240.0); + espAttrReset(sprId, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { @@ -1026,222 +1029,222 @@ void fn_1_461C(void) } } -s32 lbl_1_data_468[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, +static s32 resultCharMdlTbl[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; -Vec lbl_1_data_488[] = { +static Vec resultTeamCharPosTbl[] = { { 160, 185, 500 }, { 240, 185, 500 }, { 160, 355, 500 }, { 240, 355, 500 }, }; -void fn_1_47FC(void) +static void ResultTeamExec(void) { - s16 temp_r31; - s16 temp_r24; - s16 temp_r21; - s16 temp_r20; - s16 temp_r19; - s16 temp_r18; - s16 temp_r17; - Vec sp40; - Vec sp34; - s16 sp2C[4]; - s16 sp28[2]; - s16 sp24[2]; - s16 sp20[2]; - s16 sp1C[2]; - s16 sp18[2]; - AnimData *sp14; - s32 sp10; - s16 spC; - s16 spA; - s16 sp8; + s16 i; + s16 temp; + s16 winId; + s16 player; + s16 j; + s16 cubeMdlId; + s16 teamNo; + Vec pos3D; + Vec pos2D; + s16 charNo[4]; + s16 coinNum[2]; + s16 starNum[2]; + s16 teamYPos[2]; + s16 teamPlayerNo[2]; + s16 rank[2]; + AnimData *rankAnim; + s32 cubeNo; + s16 rankGrpId; + s16 rankSprId; + s16 btnDown; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - espAttrSet(lbl_1_bss_1A1A[0], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_1A1A[1], HUSPR_ATTR_DISPOFF); - for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], HU3D_ATTR_DISPOFF); + espAttrSet(stageSprId[0], HUSPR_ATTR_DISPOFF); + espAttrSet(stageSprId[1], HUSPR_ATTR_DISPOFF); + for (i = 0; i < 2; i++) { + Hu3DModelAttrSet(stageMdlId[i + 6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(stageMdlId[i + 10], HU3D_ATTR_DISPOFF); } - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], HUSPR_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + espAttrSet(stageSprId[i + 6], HUSPR_ATTR_DISPOFF); } - for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], HU3D_ATTR_DISPOFF); + for (i = 4; i < 8; i++) { + Hu3DModelAttrSet(statShadowMdlId[i], HU3D_ATTR_DISPOFF); } - for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { - HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); + for (i = 4; i < 8; i++) { + HuSprGrpTPLvlSet(resultNumGrpId[i], 0.0f); } - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - for (temp_r19 = 0; temp_r19 < 4; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], HU3D_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + Hu3DModelAttrSet(resultCubeMdlId[GWPlayerCfg[i].character][j], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(resultPlayerCubeMdlId[i], HU3D_ATTR_DISPOFF); } - HuSprGrpKill(lbl_1_bss_9C); - HuSprGrpKill(lbl_1_bss_52); - if (lbl_1_data_380 != -1) { - HuSprGrpKill(lbl_1_data_380); + HuSprGrpKill(resultCrownGrpId); + HuSprGrpKill(resultRankGrpId); + if (rankNewGrpId != -1) { + HuSprGrpKill(rankNewGrpId); } - sp28[0] = sp28[1] = 0; - sp24[0] = sp24[1] = 0; - sp1C[0] = 0; - sp1C[1] = 2; - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - temp_r17 = GWPlayer[temp_r31].team; - sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); - sp24[temp_r17] += GWStarsGet(temp_r31); - sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; + coinNum[0] = coinNum[1] = 0; + starNum[0] = starNum[1] = 0; + teamPlayerNo[0] = 0; + teamPlayerNo[1] = 2; + for (i = 0; i < 4; i++) { + teamNo = GWPlayer[i].team; + coinNum[teamNo] += BoardPlayerCoinsGet(i); + starNum[teamNo] += GWStarsGet(i); + charNo[teamPlayerNo[teamNo]++] = GWPlayerCfg[i].character; } - sp18[0] = 0; - sp18[1] = 1; - if (sp24[0] > sp24[1]) { - lbl_1_bss_8 = 0; + rank[0] = 0; + rank[1] = 1; + if (starNum[0] > starNum[1]) { + resultTeamOrder = 0; } else { - if (sp24[0] == sp24[1]) { - if (sp28[0] > sp28[1]) { - lbl_1_bss_8 = 0; + if (starNum[0] == starNum[1]) { + if (coinNum[0] > coinNum[1]) { + resultTeamOrder = 0; } - else if (sp28[0] == sp28[1]) { - sp18[0] = sp18[1] = 0; - lbl_1_bss_8 = 0; + else if (coinNum[0] == coinNum[1]) { + rank[0] = rank[1] = 0; + resultTeamOrder = 0; } else { - lbl_1_bss_8 = 1; + resultTeamOrder = 1; } } else { - lbl_1_bss_8 = 1; + resultTeamOrder = 1; } } - HuSprAttrReset(lbl_1_bss_170, 0, 4); - HuSprAttrReset(lbl_1_bss_170, 1, 4); - HuSprPosSet(lbl_1_bss_170, 1, 0, -180); - HuSprAttrReset(lbl_1_bss_170, 2, 4); - HuSprAttrReset(lbl_1_bss_170, 3, 4); - if (lbl_1_bss_8 == 0) { - sp20[0] = -55; - sp20[1] = 115; + HuSprAttrReset(teamResultGrpId, 0, 4); + HuSprAttrReset(teamResultGrpId, 1, 4); + HuSprPosSet(teamResultGrpId, 1, 0, -180); + HuSprAttrReset(teamResultGrpId, 2, 4); + HuSprAttrReset(teamResultGrpId, 3, 4); + if (resultTeamOrder == 0) { + teamYPos[0] = -55; + teamYPos[1] = 115; } else { - sp20[0] = 115; - sp20[1] = -55; - temp_r24 = sp2C[0]; - sp2C[0] = sp2C[2]; - sp2C[2] = temp_r24; - temp_r24 = sp2C[1]; - sp2C[1] = sp2C[3]; - sp2C[3] = temp_r24; - temp_r24 = sp28[0]; - sp28[0] = sp28[1]; - sp28[1] = temp_r24; - temp_r24 = sp24[0]; - sp24[0] = sp24[1]; - sp24[1] = temp_r24; + teamYPos[0] = 115; + teamYPos[1] = -55; + temp = charNo[0]; + charNo[0] = charNo[2]; + charNo[2] = temp; + temp = charNo[1]; + charNo[1] = charNo[3]; + charNo[3] = temp; + temp = coinNum[0]; + coinNum[0] = coinNum[1]; + coinNum[1] = temp; + temp = starNum[0]; + starNum[0] = starNum[1]; + starNum[1] = temp; } - HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); - HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); - HuSprGrpPosSet(lbl_1_bss_170, 288, 240); - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - if (temp_r31 < 2) { - sp10 = 0; + HuSprPosSet(teamResultGrpId, 2, 0, teamYPos[0]); + HuSprPosSet(teamResultGrpId, 3, 0, teamYPos[1]); + HuSprGrpPosSet(teamResultGrpId, 288, 240); + for (i = 0; i < 4; i++) { + if (i < 2) { + cubeNo = 0; } else { - sp10 = 1; + cubeNo = 1; } - temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; - Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); - Hu3DModelAttrReset(temp_r18, HU3D_ATTR_DISPOFF); - Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); - Hu3DModelPosSetV(temp_r18, &sp40); - Hu3DModelRotSet(temp_r18, 0, 0, 0); - sp34 = lbl_1_data_488[temp_r31]; - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); + cubeMdlId = resultCubeMdlId[charNo[i]][cubeNo]; + Hu3DAnimCreate(resultCharAnim[charNo[i]][0], cubeMdlId, "ys22"); + Hu3DModelAttrReset(cubeMdlId, HU3D_ATTR_DISPOFF); + Hu3D2Dto3D(&resultTeamCharPosTbl[i], 1, &pos3D); + Hu3DModelPosSetV(cubeMdlId, &pos3D); + Hu3DModelRotSet(cubeMdlId, 0, 0, 0); + pos2D = resultTeamCharPosTbl[i]; + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(charShadowMdlId[i], &pos3D); } - spC = HuSprGrpCreate(2); - for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { - sp14 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + sp18[temp_r31]); - spA = HuSprCreate(sp14, temp_r31, 0); - HuSprGrpMemberSet(spC, temp_r31, spA); - HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31 * 2].x) - 80.0f, lbl_1_data_488[temp_r31 * 2].y); - sp34 = lbl_1_data_488[temp_r31 * 2]; - sp34.x += 180.0f; - sp34.y -= 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 4], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[temp_r31 * 2], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 2], 230.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); - fn_1_3B50(lbl_1_bss_CE[temp_r31 * 2], sp24[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[temp_r31 * 2], 320.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); - sp34 = lbl_1_data_488[temp_r31 * 2]; - sp34.x += 180.0f; - sp34.y += 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 8], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31 * 2) + 1], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 3], 230.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); - fn_1_3B50(lbl_1_bss_CE[(temp_r31 * 2) + 1], sp28[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31 * 2) + 1], 320.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); + rankGrpId = HuSprGrpCreate(2); + for (i = 0; i < 2; i++) { + rankAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + rank[i]); + rankSprId = HuSprCreate(rankAnim, i, 0); + HuSprGrpMemberSet(rankGrpId, i, rankSprId); + HuSprPosSet(rankGrpId, i, (resultTeamCharPosTbl[i * 2].x) - 80.0f, resultTeamCharPosTbl[i * 2].y); + pos2D = resultTeamCharPosTbl[i * 2]; + pos2D.x += 180.0f; + pos2D.y -= 35.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(stageMdlId[i + 4], &pos3D); + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(statShadowMdlId[i * 2], &pos3D); + espPosSet(stageSprId[(i * 2) + 2], 230.0f + resultTeamCharPosTbl[i * 2].x, resultTeamCharPosTbl[i * 2].y - 35.0f); + ResultSprNumSet(resultNumGrpId[i * 2], starNum[i]); + HuSprGrpPosSet(resultNumGrpId[i * 2], 320.0f + resultTeamCharPosTbl[i * 2].x, resultTeamCharPosTbl[i * 2].y - 35.0f); + pos2D = resultTeamCharPosTbl[i * 2]; + pos2D.x += 180.0f; + pos2D.y += 35.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(stageMdlId[i + 8], &pos3D); + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(statShadowMdlId[(i * 2) + 1], &pos3D); + espPosSet(stageSprId[(i * 2) + 3], 230.0f + resultTeamCharPosTbl[i * 2].x, 35.0f + resultTeamCharPosTbl[i * 2].y); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], coinNum[i]); + HuSprGrpPosSet(resultNumGrpId[(i * 2) + 1], 320.0f + resultTeamCharPosTbl[i * 2].x, 35.0f + resultTeamCharPosTbl[i * 2].y); } WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(temp_r21, 0); - HuWinBGTPLvlSet(temp_r21, 0); - HuWinPriSet(temp_r21, 5); - HuWinAttrSet(temp_r21, 0x800); - HuWinMesSet(temp_r21, MAKE_MESSID(0x24, 0x07)); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinPriSet(winId, 5); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); - temp_r31 = 0; + i = 0; while (1) { - if (lbl_1_bss_4 && temp_r31 > 120) { + if (resultSkipF && i > 120) { break; } - for (temp_r20 = sp8 = 0; temp_r20 < 4; temp_r20++) { - if (!GWPlayerCfg[temp_r20].iscom) { - sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; + for (player = btnDown = 0; player < 4; player++) { + if (!GWPlayerCfg[player].iscom) { + btnDown |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; } } - if (sp8 & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); - temp_r31++; + i++; } - HuWinKill(temp_r21); + HuWinKill(winId); } -void fn_1_5880(omObjData *object) +void CameraDebug(omObjData *object) { Vec pos; Vec offset; Vec dir; - Vec y_offset; + Vec yOfs; - f32 z_rot; - s8 stick_pos; + float z_rot; + s8 stickPos; if (HuPadBtn[0] & PAD_BUTTON_UP) { CRot.x += 2.0f; @@ -1264,41 +1267,41 @@ void fn_1_5880(omObjData *object) CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; - pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + pos.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + pos.y = Center.y + CZoom * -sind(CRot.x); + pos.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); offset.x = Center.x - pos.x; offset.y = Center.y - pos.y; offset.z = Center.z - pos.z; - dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - dir.y = cos((M_PI * CRot.x) / 180.0); - dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + dir.x = (sind(CRot.y) * sind(CRot.x)); + dir.y = cosd(CRot.x); + dir.z = (cosd(CRot.y) * sind(CRot.x)); z_rot = CRot.z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + yOfs.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + yOfs.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + yOfs.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); + stickPos = (HuPadSubStkX[0] & 0xF8); + if (stickPos != 0) { + Center.x += 0.05f * (offset.x * stickPos); + Center.y += 0.05f * (offset.y * stickPos); + Center.z += 0.05f * (offset.z * stickPos); } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); + VECNormalize(&yOfs, &offset); + stickPos = -(HuPadSubStkY[0] & 0xF8); + if (stickPos != 0) { + Center.x += 0.05f * (offset.x * stickPos); + Center.y += 0.05f * (offset.y * stickPos); + Center.z += 0.05f * (offset.z * stickPos); } } diff --git a/src/REL/safDll/main.c b/src/REL/safDll/main.c index dfb34d70..8c2447d2 100644 --- a/src/REL/safDll/main.c +++ b/src/REL/safDll/main.c @@ -6,7 +6,9 @@ #include "math.h" s32 lbl_1_data_0 = 100; +#if VERSION_NTSC s32 lbl_1_bss_0[192]; +#endif void fn_1_0(void) { diff --git a/src/REL/staffDll/main.c b/src/REL/staffDll/main.c index 0580c6a1..8f880eb9 100644 --- a/src/REL/staffDll/main.c +++ b/src/REL/staffDll/main.c @@ -178,9 +178,32 @@ static StaffData staffData[] = { { 0x0035005F, 2, 0.0f, 0, 0, 0 }, { 0x00350060, 2, 0.0f, 0, 0, 0 }, { -3, 0, 48.0f, 0, 0, 0 }, + #if VERSION_PAL + { 0x00340026, 0, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340027, 1, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340028, 1, 0.0f, 0, 0, 0 }, + { 0x00350061, 2, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340029, 1, 0.0f, 0, 0, 0 }, + { 0x0034002A, 1, 0.0f, 0, 0, 0 }, + { 0x00350062, 2, 0.0f, 0, 0, 0 }, + { 0x0034002B, 1, 0.0f, 0, 0, 0 }, + { 0x00350063, 2, 0.0f, 0, 0, 0 }, + { 0x0034002C, 1, 0.0f, 0, 0, 0 }, + { 0x00350064, 2, 0.0f, 0, 0, 0 }, + { 0x0034002D, 1, 0.0f, 0, 0, 0 }, + { 0x00350065, 2, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x0034002E, 1, 0.0f, 0, 0, 0 }, + { -3, 0, 72.0f, 0, 0, 0 }, + #endif { 0x00340016, 0, 0.0f, 0, 0, 0 }, { 0x00350044, 2, 0.0f, 0, 0, 0 }, + #if VERSION_NTSC { 0x00350045, 2, 0.0f, 0, 0, 0 }, + #endif { -3, 0, 24.0f, 0, 0, 0 }, { 0x00350046, 2, 0.0f, 0, 0, 0 }, { 0x00350047, 2, 0.0f, 0, 0, 0 }, @@ -216,7 +239,11 @@ static StaffData staffData[] = { { -1, 0, 0.0f, 0, 0, 0 }, }; +#if VERSION_NTSC static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f }; +#else +static float staffLogoPosTbl[] = { 460.0f, 290.0f, 293.0f }; +#endif static void MainProc(void); static void CreateStaff(void); @@ -305,7 +332,36 @@ static void CreateStaff(void) } for (var_r31 = 0; var_r31 < 3; var_r31++) { + int languageNo; + #if VERSION_NTSC var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); + #else + if(var_r31 == 2) { + switch(GWGameStat.language) { + case 1: + languageNo = 0; + break; + + case 2: + languageNo = 1; + break; + + case 4: + languageNo = 3; + break; + + default: + languageNo = 2; + break; + + } + + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A) + languageNo, MEMORY_DEFAULT_NUM, HEAP_DATA); + } else { + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); + } + #endif + var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 256, 0); staffLogoGroup[var_r31] = HuSprGrpCreate(1); @@ -319,7 +375,11 @@ static void CreateStaff(void) HuSprGrpPosSet(thpGroup, 280.0f, 200.0f); HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPStop(); + #if VERSION_NTSC var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); + #else + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x20), MEMORY_DEFAULT_NUM, HEAP_DATA); + #endif var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 16385, 0); thpCoverGroup = HuSprGrpCreate(1); @@ -462,12 +522,19 @@ static void ShowPicture(void) HuSprTPLvlSet(imgGroup[currImg], 0, 1.0f); while (TRUE) { + #if VERSION_NTSC if (currImg >= 24) { HuPrcSleep(430); - } - else { + } else { HuPrcSleep(550); } + #else + if (currImg >= 24) { + HuPrcSleep(480); + } else { + HuPrcSleep(600); + } + #endif if (currImg >= 25) { break; } @@ -548,7 +615,11 @@ static void MainProc(void) HuPrcVSleep(); } HuSprGrpPosSet(staffLogoGroup[1], var_f29, 400.0f); + #if VERSION_NTSC HuPrcSleep(240); + #else + HuPrcSleep(60); + #endif HuSprAttrReset(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPRestart(); @@ -579,15 +650,20 @@ static void MainProc(void) HuSprAttrSet(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF); HuPrcSleep(120); HuSprAttrReset(staffLogoGroup[2], 0, HUSPR_ATTR_DISPOFF); + #if VERSION_NTSC HuSprGrpPosSet(staffLogoGroup[2], 280.0f, 240.0f); - + #else + HuSprGrpPosSet(staffLogoGroup[2], 275.0f, 240.0f); + #endif for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) { HuSprTPLvlSet(staffLogoGroup[2], 0, var_f31); HuPrcVSleep(); } - + #if VERSION_NTSC HuPrcSleep(600); - + #else + HuPrcSleep(480); + #endif while (TRUE) { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (HuPadBtn[var_r31] & PAD_BUTTON_START) { diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 350880e2..f1d1e39f 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -1,6 +1,20 @@ -#include "REL/w01Dll.h" +#include "game/board/main.h" #include "REL/board_executor.h" +#include "REL/w01Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/boo_house.h" +#include "game/board/com.h" +#include "game/board/lottery.h" +#include "game/board/map_object.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" +#include "game/board/ui.h" +#include "game/board/view.h" +#include "game/board/window.h" #include "game/chrman.h" #include "game/data.h" #include "game/gamework_data.h" @@ -13,865 +27,880 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" -#include "game/board/audio.h" -#include "game/board/boo_house.h" -#include "game/board/com.h" -#include "game/board/lottery.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/shop.h" -#include "game/board/space.h" -#include "game/board/star.h" -#include "game/board/ui.h" -#include "game/board/view.h" -#include "game/board/window.h" -#include "game/board/map_object.h" #include "dolphin.h" #include "ext_math.h" typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; -} Bss10Work; +} CoasterCameraWork; typedef struct { struct { - u8 unk00_field0 : 1; - u8 unk00_field1 : 3; - u8 unk00_field2 : 1; - u8 unk00_field3 : 1; + u8 killF : 1; + u8 mode : 3; + u8 stopF : 1; + u8 decaF : 1; }; - u8 unk01; - u8 unk02; - char unk03[1]; - s16 unk04; - char unk06[2]; - float unk08; -} Bss18Work; + u8 time; + u8 delay; + s16 dishMdlId; + float dishSpeed; +} CupObjWork; typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s16 unk02; - /* 0x04 */ s16 unk04; - /* 0x06 */ s16 unk06; - /* 0x08 */ float unk08; - /* 0x0C */ char unk0C[4]; - /* 0x10 */ float unk10; - /* 0x14 */ Vec unk14; - /* 0x20 */ Mtx unk20; -} BssCData; // Size 0x50 + s8 mode; + s8 playerNo; + s16 delay; + s16 pathMdlId; + s16 endSpace; + float speed; + float unk0C; + float time; + Vec pos; + Mtx matrix; +} CoasterPlayerWork; // Size 0x50 typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; - s8 unk01; - char unk02[2]; - BssCData *unk04; -} BssCWork; + s8 playerNum; + CoasterPlayerWork *player; +} CoasterPlayerManWork; typedef struct { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ float unk04; - /* 0x08 */ Vec unk08; - /* 0x14 */ Vec unk14; -} Bss20Data; // Size 0x20 + /* 0x00 */ s16 time; + /* 0x02 */ s16 mdlId; + /* 0x04 */ float scale; + /* 0x08 */ Vec pos; + /* 0x14 */ Vec vel; +} CoasterEffData; // Size 0x20 typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; - u8 unk01; - char unk02[2]; - Bss20Data *unk04; -} Bss20Work; + u8 delay; + CoasterEffData *data; +} CoasterEffWork; -static void fn_1_730(void); -static void fn_1_774(void); -static s32 fn_1_778(void); -static s32 fn_1_814(void); -static void fn_1_9E8(void); +static void LightSetHook(void); +static void LightResetHook(void); +static s32 LandEvent(void); +static s32 WalkEvent(void); +static void MapObjDispSet(void); static void fn_1_D00(void); -static void fn_1_D04(void); -static void fn_1_1254(void); -static void fn_1_128C(void); -static void fn_1_130C(void); -static s32 fn_1_157C(void); -static void fn_1_1670(void); -static void fn_1_1700(void); -static void fn_1_1990(void); -static void fn_1_1AD8(BoardCameraData *camera); -static void fn_1_1B3C(void); -static void fn_1_1EE4(void); -static void fn_1_1F2C(omObjData *arg0); -static void fn_1_1FA4(void); -static float fn_1_2524(void); -static void fn_1_276C(void); -static void fn_1_2F18(void); -static void fn_1_3350(void); -static void fn_1_3514(s32 arg0); -static void fn_1_35B4(s32 arg0); -static void fn_1_3624(void); -static void fn_1_45F4(void); -static void fn_1_4774(void); -static void fn_1_4864(void); -static s32 fn_1_48B4(void); -static void fn_1_4E14(void); -static void fn_1_4FA8(void); -static void fn_1_4FD8(void); -static void fn_1_50D4(void); -static void fn_1_53B8(void); -static void fn_1_543C(void); -static void fn_1_5694(s32 arg0); -static void fn_1_586C(s32 arg0, s32 arg1); -static void fn_1_592C(void); -static void fn_1_5B2C(void); -static void fn_1_5B40(void); -static BOOL fn_1_5CD0(void); -static void fn_1_5D08(void); -static void fn_1_6098(omObjData *arg0); -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1); -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1); -static void fn_1_7528(s32 arg0, s32 arg1); -static void fn_1_77EC(s32 arg0, s32 arg1); -static void fn_1_7894(void); -static void fn_1_7A64(void); -static void fn_1_852C(void); -static void fn_1_87AC(void); -static void fn_1_87E0(omObjData *arg0); -static void fn_1_8988(BssCData *arg0, omObjData *arg1); -static void fn_1_8A50(BssCData *arg0, omObjData *arg1); -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1); -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1); -static void fn_1_918C(BssCData *arg0, omObjData *arg1); -static void fn_1_927C(BssCData *arg0, omObjData *arg1); -static void fn_1_932C(BssCData *arg0); -static s32 fn_1_94A8(BssCData *arg0); -static void fn_1_95F4(BssCData *arg0); -static void fn_1_97F4(void); -static void fn_1_98EC(void); -static void fn_1_9920(omObjData *arg0); -static void fn_1_9A24(Bss20Work *arg0); -static void fn_1_9BBC(Bss20Work *arg0); +static void RoundItemMain(void); +static void RoundItemDestroy(void); +static void RoundItemEvent(void); +static void SpaceAmidaEvent(void); +static s32 WalkMiniEvent(void); +static void UpdateHostDisp(void); +static void CoasterInit(void); +static void CoasterPathUpdate(void); +static void CoasterPosCalc(BoardCameraData *camera); +static void CoasterCameraUpdate(void); +static void CoasterCameraObjKill(void); +static void CoasterCameraObjMain(omObjData *obj); +static void CoasterCameraObjUpdate(void); +static float CoasterStickRotGet(void); +static void CoasterRotUpdate(void); +static void CoasterCoinCheck(void); +static void CoasterPathMotUpdate(void); +static void CoasterMotCreate(s32 playerNo); +static void CoasterMotKill(s32 playerNo); +static void CoasterExec(void); +static void CoasterExit(void); +static void CoasterWinCreate(void); +static void CoasterWinKill(void); +static s32 CoasterHostExec(void); +static void CoasterMain(void); +static void CoasterDestroy(void); +static void CoasterEvent(void); +static void CoasterCoinCreate(void); +static void CoasterCoinKill(void); +static void CupInit(void); +static void CupMotOnSet(s32 stopF); +static void CupEvent(s32 side, s32 spaceStart); +static void CupMain(void); +static void CupDestroy(void); +static void CupExec(void); +static BOOL CupObjCheck(void); +static void CupObjCreate(void); +static void CupObjMain(omObjData *obj); +static void CupObjInit(CupObjWork *work, omObjData *obj); +static void CupObjJumpWait(CupObjWork *work, omObjData *obj); +static void CupObjHookReset(CupObjWork *work, omObjData *obj); +static void CupObjStop(CupObjWork *work, omObjData *obj); +static void CupObjRotate(CupObjWork *work, omObjData *obj); +static void CupLandEvent(s32 playerNo, s32 spaceId); +static void CoasterLandEvent(s32 playerNo, s32 spaceId); +static void CoasterLandMain(void); +static void CoasterLandExec(void); +static void CoasterPlayerManCreate(void); +static void CoasterPlayerManKill(void); +static void CoasterPlayerManUpdate(omObjData *obj); +static void CoasterPlayerWait(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChaseBegin(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChasePathSet(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChase(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerStop(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerEnd(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerEndSet(CoasterPlayerWork *work); +static s32 CoasterPlayerLoopCheck(CoasterPlayerWork *work); +static void CoasterPlayerTimeInit(CoasterPlayerWork *work); +static void CoasterEffCreate(void); +static void CoasterEffKill(void); +static void CoasterEffUpdate(omObjData *obj); +static void CoasterEffAdd(CoasterEffWork *work); +static void CoasterEffModelUpdate(CoasterEffWork *work); +extern void CoasterHostComKeySet(s32 playerNo); +static BoardMapObject mapObjData[MAPOBJ_MAX] + = { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, + { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, + { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } }; -static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { - { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, - { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, - { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } -}; +s16 mapObjMdlId[MAPOBJ_MAX]; -s16 lbl_1_bss_6C4[MAPOBJ_MAX]; - -static s32 *lbl_1_bss_6C0; -static s16 lbl_1_bss_6B6[5]; -static s8 lbl_1_bss_6B4; -static s8 lbl_1_bss_6B3; -static s8 lbl_1_bss_6B2; -static s8 lbl_1_bss_6B1; -static s8 lbl_1_bss_6B0; -static s16 lbl_1_bss_6AE; -static s16 lbl_1_bss_6AC; +static s32 *mapObjMotTbl; +static s16 roundItemTbl[5]; +static s8 eventPlayer; +static s8 coasterLoopF; +static s8 coasterDoneF; +static s8 coasterLandF; +static s8 coasterType; +static s16 coasterPathMdlId; +static s16 coasterStartSpace; static float lbl_1_bss_6A8; -static Mtx lbl_1_bss_678; -static float lbl_1_bss_674; -static float lbl_1_bss_670; -static float lbl_1_bss_66C; -static Vec lbl_1_bss_660; -static Vec lbl_1_bss_654; -static Vec lbl_1_bss_648; -static float lbl_1_bss_644; -static float lbl_1_bss_640; -static float lbl_1_bss_63C; -static Vec lbl_1_bss_630; -static Vec lbl_1_bss_624; -static Vec lbl_1_bss_618; -static s8 lbl_1_bss_600[24]; -static s16 lbl_1_bss_5D0[24]; -static s16 lbl_1_bss_5CC[2]; +static Mtx coasterMtx; +static float coasterAccel; +static float coasterSpeed; +static float coasterCamSpeed; +static Vec coasterRot; +static Vec coasterPos; +static Vec coasterPosOld; +static float coasterMaxTime; +static float coasterTime; +static float coasterBaseRotY; +static Vec coasterCameraPos; +static Vec coasterCameraUp; +static Vec coasterCameraTarget; +static s8 coasterCoinF[24]; +static s16 coasterCoinMdlId[24]; +static s16 coasterMotId[2]; static s8 lbl_1_bss_2C[1440]; static s8 lbl_1_bss_2A[2]; // padding -static s8 lbl_1_bss_29; -static s8 lbl_1_bss_28; -static s16 lbl_1_bss_26; -static s16 lbl_1_bss_24; -static omObjData *lbl_1_bss_20; -static s8 lbl_1_bss_1C; -static omObjData *lbl_1_bss_18; -static Process *lbl_1_bss_14; -static omObjData *lbl_1_bss_10; -static omObjData *lbl_1_bss_C; -static Process *lbl_1_bss_8; -static Process *lbl_1_bss_4; -UnkBoardDataStruct *lbl_1_bss_0; +static s8 cupSide; +static s8 cupHookNo; +static s16 cupSpaceStart; +static s16 cupSpaceEnd; +static omObjData *coasterEffObj; +static s8 coasterPlayerChaseNum; +static omObjData *cupObj; +static Process *cupProc; +static omObjData *coasterCameraObj; +static omObjData *coasterPlayerManObj; +static Process *coasterProc; +static Process *roundItemProc; +W01BoardWork *boardWork; -static s16 lbl_1_data_528 = -1; -static s16 lbl_1_data_52A = -1; -static s16 lbl_1_data_52C = -1; -static s16 lbl_1_data_52E = -1; -static s16 lbl_1_data_530 = -1; +static s16 bgMdl = -1; +static s16 fgMdl = -1; +static s16 starHostMdl = -1; +static s16 hostMdl = -1; +static s16 syuppouMdl = -1; -static s32 lbl_1_data_534[] = { - DATA_MAKE_NUM(DATADIR_W01, 30), - -1 -}; +static s32 starHostMotTbl[] = { DATA_MAKE_NUM(DATADIR_W01, 30), -1 }; -static s32 lbl_1_data_53C[] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 1), - -1 -}; +static s32 hostMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 1), -1 }; -void BoardCreate(void) { - BoardMapObject *temp_r30; - s32 sp8; +void BoardCreate(void) +{ + BoardMapObject *mapObj; + s32 boardNo; s32 i; - sp8 = GWBoardGet(); - lbl_1_bss_0 = (UnkBoardDataStruct*) GWSystem.board_data; + boardNo = GWBoardGet(); + boardWork = (W01BoardWork *)GWSystem.board_data; BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W01, 0)); - lbl_1_data_528 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); - fn_8006DDE8(lbl_1_data_528, -1.0f); - BoardModelPosSet(lbl_1_data_528, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_528, 0, 0x40000001); - lbl_1_data_52A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 2), NULL, 0); - fn_8006DDE8(lbl_1_data_52A, -1.0f); - BoardModelPosSet(lbl_1_data_52A, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52A, 0, 0x40000001); - lbl_1_data_52C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 29), lbl_1_data_534, 0); - BoardModelPosSet(lbl_1_data_52C, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52C, 1, 0x40000001); - lbl_1_data_52E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 0), lbl_1_data_53C, 0); - BoardModelPosSet(lbl_1_data_52E, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52E, 1, 0x40000001); - lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); - BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001); - BoardLightHookSet(fn_1_730, fn_1_774); + bgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); + fn_8006DDE8(bgMdl, -1.0f); + BoardModelPosSet(bgMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(bgMdl, 0, HU3D_MOTATTR_LOOP); + fgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 2), NULL, 0); + fn_8006DDE8(fgMdl, -1.0f); + BoardModelPosSet(fgMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(fgMdl, 0, HU3D_MOTATTR_LOOP); + starHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 29), starHostMotTbl, 0); + BoardModelPosSet(starHostMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(starHostMdl, 1, HU3D_MOTATTR_LOOP); + hostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 0), hostMotTbl, 0); + BoardModelPosSet(hostMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(hostMdl, 1, HU3D_MOTATTR_LOOP); + syuppouMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); + BoardModelMotionStart(syuppouMdl, 0, HU3D_MOTATTR_LOOP); + BoardLightHookSet(LightSetHook, LightResetHook); for (i = 0; i < MAPOBJ_MAX; i++) { - temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->data_num != -1) { - if (i == 2 || i == 3 || i == 4 || i == 5) { - lbl_1_bss_6C0 = lbl_1_data_53C; - } else { - lbl_1_bss_6C0 = NULL; + mapObj = &mapObjData[i]; + if (mapObj->data_num != -1) { + if (i == MAPOBJ_HOST1 || i == MAPOBJ_HOST2 || i == MAPOBJ_HOST3 || i == MAPOBJ_HOST4) { + mapObjMotTbl = hostMotTbl; } - lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); - BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->pos); - BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->rot); - BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->scale); - BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1); + else { + mapObjMotTbl = NULL; + } + mapObjMdlId[i] = BoardModelCreate(mapObj->data_num, mapObjMotTbl, 0); + BoardModelPosSetV(mapObjMdlId[i], &mapObj->pos); + BoardModelRotSetV(mapObjMdlId[i], &mapObj->rot); + BoardModelScaleSetV(mapObjMdlId[i], &mapObj->scale); + BoardModelVisibilitySet(mapObjMdlId[i], 1); } } - BoardModelMotionStart(lbl_1_bss_6C4[2], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[3], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[4], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[5], 1, 0x40000001); - fn_1_543C(); - fn_1_9E8(); - fn_1_1700(); - BoardSpaceWalkEventFuncSet(fn_1_814); - BoardSpaceWalkMiniEventFuncSet(fn_1_157C); - BoardSpaceLandEventFuncSet(fn_1_778); - BoardStarHostSet(lbl_1_data_52C); - BoardBooHouseHostSet(lbl_1_data_52E); - BoardLotteryHostSet(lbl_1_data_52E); - BoardShopHostSet(lbl_1_data_52E); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST1], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST2], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST3], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST4], 1, HU3D_MOTATTR_LOOP); + CupInit(); + MapObjDispSet(); + CoasterInit(); + BoardSpaceWalkEventFuncSet(WalkEvent); + BoardSpaceWalkMiniEventFuncSet(WalkMiniEvent); + BoardSpaceLandEventFuncSet(LandEvent); + BoardStarHostSet(starHostMdl); + BoardBooHouseHostSet(hostMdl); + BoardLotteryHostSet(hostMdl); + BoardShopHostSet(hostMdl); BoardJunctionMaskSet(0xC000); BoardJunctionMaskSet(0x3000); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ s32 i; - fn_1_4864(); + CoasterWinKill(); fn_1_D00(); - for (i = 0; i < 33; i++) { - if (lbl_1_bss_6C4[i] != 0) { - BoardModelKill(lbl_1_bss_6C4[i]); - lbl_1_bss_6C4[i] = 0; + for (i = 0; i < MAPOBJ_MAX; i++) { + if (mapObjMdlId[i] != 0) { + BoardModelKill(mapObjMdlId[i]); + mapObjMdlId[i] = 0; } } - if (lbl_1_data_530 != -1) { - BoardModelKill(lbl_1_data_530); - lbl_1_data_530 = -1; + if (syuppouMdl != -1) { + BoardModelKill(syuppouMdl); + syuppouMdl = -1; } - if (lbl_1_data_52E != -1) { - BoardModelKill(lbl_1_data_52E); - lbl_1_data_52E = -1; + if (hostMdl != -1) { + BoardModelKill(hostMdl); + hostMdl = -1; } - if (lbl_1_data_52C != -1) { - BoardModelKill(lbl_1_data_52C); - lbl_1_data_52C = -1; + if (starHostMdl != -1) { + BoardModelKill(starHostMdl); + starHostMdl = -1; } - if (lbl_1_data_528 != -1) { - BoardModelKill(lbl_1_data_528); - lbl_1_data_528 = -1; + if (bgMdl != -1) { + BoardModelKill(bgMdl); + bgMdl = -1; } - if (lbl_1_data_52A != -1) { - BoardModelKill(lbl_1_data_52A); - lbl_1_data_52A = -1; + if (fgMdl != -1) { + BoardModelKill(fgMdl); + fgMdl = -1; } BoardSpaceDestroy(); } -static void fn_1_730(void) { - s16 var_r31; +static void LightSetHook(void) +{ + s16 modelId; - var_r31 = BoardModelIDGet(lbl_1_data_528); - Hu3DModelLightInfoSet(var_r31, 1); + modelId = BoardModelIDGet(bgMdl); + Hu3DModelLightInfoSet(modelId, 1); } -static void fn_1_774(void) { -} +static void LightResetHook(void) { } -static s32 fn_1_778(void) { - s32 temp_r31; - s32 temp_r30; - u32 temp_r29; +static s32 LandEvent(void) +{ + s32 playerNo; + s32 spaceId; + u32 flag; - temp_r31 = GWSystem.player_curr; - temp_r30 = GWPlayer[temp_r31].space_curr; - temp_r29 = BoardSpaceFlagGet(0, temp_r30); - if (temp_r29 & 0x800) { - fn_1_77EC(temp_r31, temp_r30); - } else if (temp_r29 & 0x400) { - fn_1_7528(temp_r31, temp_r30); + playerNo = GWSystem.player_curr; + spaceId = GWPlayer[playerNo].space_curr; + flag = BoardSpaceFlagGet(0, spaceId); + if (flag & 0x800) { + CoasterLandEvent(playerNo, spaceId); + } + else if (flag & 0x400) { + CupLandEvent(playerNo, spaceId); } } -static s32 fn_1_814(void) { - s32 temp_r27; - s32 var_r30; - s32 var_r29; - s32 var_r26; - BoardSpace *temp_r31; - BoardSpace *temp_r28; +static s32 WalkEvent(void) +{ + s32 playerNo; + s32 i; + s32 type; + s32 spaceLinkId; + BoardSpace *space; + BoardSpace *spaceLink; - temp_r27 = GWSystem.player_curr; - temp_r31 = BoardSpaceGet(0, GWPlayer[temp_r27].space_curr); - if (temp_r31->flag & 0x3000) { - if (BoardPlayerSizeGet(temp_r27) == 2 || GWPlayer[temp_r27].bowser_suit) { + playerNo = GWSystem.player_curr; + space = BoardSpaceGet(0, GWPlayer[playerNo].space_curr); + if (space->flag & 0x3000) { + if (BoardPlayerSizeGet(playerNo) == 2 || GWPlayer[playerNo].bowser_suit) { return 0; } - if (temp_r31->flag & 0x2000) { - if (lbl_1_bss_0->unk00_field0 != 0) { - return 0; - } - } else if (temp_r31->flag & 0x1000) { - if (lbl_1_bss_0->unk00_field0 != 1) { + if (space->flag & 0x2000) { + if (boardWork->hostSide != 0) { return 0; } } - fn_1_4FD8(); + else if (space->flag & 0x1000) { + if (boardWork->hostSide != 1) { + return 0; + } + } + CoasterEvent(); return 1; } - var_r29 = -1; - for (var_r30 = 0; var_r30 < temp_r31->link_cnt; var_r30++) { - if (temp_r31->link[var_r30] != -1) { - temp_r28 = BoardSpaceGet(0, temp_r31->link[var_r30]); - if (temp_r28->flag & 0x8000) { - var_r29 = 0; - var_r26 = temp_r31->link[var_r30]; + type = -1; + for (i = 0; i < space->link_cnt; i++) { + if (space->link[i] != -1) { + spaceLink = BoardSpaceGet(0, space->link[i]); + if (spaceLink->flag & 0x8000) { + type = 0; + spaceLinkId = space->link[i]; break; - } else if (temp_r28->flag & 0x4000) { - var_r29 = 1; - var_r26 = temp_r31->link[var_r30]; + } + else if (spaceLink->flag & 0x4000) { + type = 1; + spaceLinkId = space->link[i]; break; } } } - if (var_r29 != -1) { - fn_1_586C(var_r29, var_r26); + if (type != -1) { + CupEvent(type, spaceLinkId); return 1; } return 0; } -static void fn_1_9E8(void) { - BoardModelVisibilitySet(lbl_1_bss_6C4[6], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[7], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[8], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[9], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[10], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[11], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[12], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[13], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[14], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[15], 1); - BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[6], 0.0f); - BoardModelMotionStart(lbl_1_bss_6C4[14], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[15], 0, 0x40000001); - BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenr", lbl_1_bss_6C4[14]); - BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenl", lbl_1_bss_6C4[15]); - BoardModelVisibilitySet(lbl_1_bss_6C4[16], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[17], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[18], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[21], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[22], 1); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); - BoardModelMotionStart(lbl_1_bss_6C4[18], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); - BoardModelExistDupe(lbl_1_bss_6C4[16], 0); - BoardModelMotionStart(lbl_1_bss_6C4[16], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[17], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[22], 0, 0x40000001); - BoardModelHookSet(lbl_1_bss_6C4[21], "m_goraund_01-flag1", lbl_1_bss_6C4[22]); +static void MapObjDispSet(void) +{ + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP2], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP3], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET2], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET3], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LIGHTEFF], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2], 1); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0.0f); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2], 0, HU3D_MOTATTR_LOOP); + BoardModelHookSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], "amida_ban_07-sirenr", mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1]); + BoardModelHookSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], "amida_ban_07-sirenl", mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU], 1); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0.0f); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_ROUNDITEM], 0); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU], 0, HU3D_MOTATTR_LOOP); + BoardModelHookSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], "m_goraund_01-flag1", mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU]); } -static void fn_1_D00(void) { -} +static void fn_1_D00(void) { } -static void fn_1_D04(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - s8 sp8[4]; - s32 temp_r28; - s32 temp_r3; - s32 var_r26; - s32 var_r25; - s32 temp_r30; +static void RoundItemMain(void) +{ + Vec spacePos; + s8 comItem[4]; + s32 spaceStart; + s32 spaceEnd; + s32 comPlayF; + s32 choice; + s32 playerNo; s32 i; s32 j; - temp_r30 = GWSystem.player_curr; - var_r26 = 0; - if (BoardPlayerItemCount(temp_r30) == 3) { + playerNo = GWSystem.player_curr; + comPlayF = FALSE; + if (BoardPlayerItemCount(playerNo) == 3) { BoardWinCreate(0, MAKE_MESSID(10, 9), 0); BoardWinWait(); BoardWinKill(); HuPrcEnd(); } - lbl_1_bss_6B6[0] = 0; + roundItemTbl[0] = 0; i = 1; while (i < 4) { - lbl_1_bss_6B6[i] = frandmod(14); - if (lbl_1_bss_6B6[i] != 10 && lbl_1_bss_6B6[i] != 13) { + roundItemTbl[i] = frandmod(14); + if (roundItemTbl[i] != 10 && roundItemTbl[i] != 13) { for (j = 0; j < i; j++) { - if (lbl_1_bss_6B6[i] == lbl_1_bss_6B6[j]) { - lbl_1_bss_6B6[i] = -1; + if (roundItemTbl[i] == roundItemTbl[j]) { + roundItemTbl[i] = -1; } } - if (lbl_1_bss_6B6[i] != -1) { + if (roundItemTbl[i] != -1) { i++; } } } - fn_1_D740(lbl_1_bss_6B6); + RoundItemInit(roundItemTbl); for (i = 0; i < 4; i++) { - sp8[i] = lbl_1_bss_6B6[i]; + comItem[i] = roundItemTbl[i]; } - if (BoardComPreferItemGet(temp_r30, sp8, 4) != -1) { - var_r26 = 1; + if (BoardComPreferItemGet(playerNo, comItem, 4) != -1) { + comPlayF = TRUE; } HuAudFXPlay(0x40D); HuAudFXPlay(0x40E); - BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); - temp_r28 = GWPlayer[temp_r30].space_curr; - temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); - BoardSpacePosGet(0, temp_r3, &sp3C); - sp30.x = 150.0f; - sp30.y = 0.0f; - sp30.z = 0.0f; - sp24.x = -45.0f; - sp24.y = 0.0f; - sp24.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[4], &sp24, &sp30, 1880.0f, -1.0f, 21); + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], HU3D_MOTATTR_REV); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, 0); + spaceStart = GWPlayer[playerNo].space_curr; + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceEnd, &spacePos); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 150.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = -45.0f; + cameraRot.y = 0.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_HOST3], &cameraRot, &cameraOfs, 1880.0f, -1.0f, 21); + } BoardCameraMotionWait(); BoardWinCreateChoice(2, MAKE_MESSID(10, 0), 0, 0); - if (GWPlayer[temp_r30].com) { - if (var_r26 != 0) { + if (GWPlayer[playerNo].com) { + if (comPlayF != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } BoardWinWait(); BoardWinKill(); - var_r25 = BoardWinChoiceGet(); - if (var_r25 != 0) { + choice = BoardWinChoiceGet(); + if (choice != 0) { BoardWinCreate(2, MAKE_MESSID(10, 4), 0); BoardWinWait(); BoardWinKill(); BoardMGExit(); HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); - while (!BoardModelMotionEndCheck(lbl_1_bss_6C4[21])) { + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, HU3D_MOTATTR_REV); + while (!BoardModelMotionEndCheck(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP])) { HuPrcVSleep(); } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); - BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0.0f); + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], HU3D_MOTATTR_REV); while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } BoardMGDoneFlagSet(0); - fn_1_DD84(); + RoundItemKill(); HuPrcEnd(); } - BoardPlayerMoveBetween(temp_r30, temp_r28, temp_r3); - while (GWPlayer[temp_r30].moving) { + BoardPlayerMoveBetween(playerNo, spaceStart, spaceEnd); + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r30, 1, 0x40000001); - sp18.x = 0.0f; - sp18.y = 0.0f; - sp18.z = 0.0f; - spC.x = -45.0f; - spC.y = 0.0f; - spC.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[21], &spC, &sp18, 1200.0f, -1.0f, 21); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 0.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = -45.0f; + cameraRot.y = 0.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], &cameraRot, &cameraOfs, 1200.0f, -1.0f, 21); + } BoardCameraMotionWait(); - fn_1_DE94(); + RoundItemEventStart(); while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } BoardCameraMotionWait(); BoardAudSeqPause(0, 0, 1000); - while (GWPlayer[temp_r30].moving) { + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r30, 1, 0x40000001); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); HuPrcEnd(); } -static void fn_1_1254(void) { +static void RoundItemDestroy(void) +{ BoardWinKill(); CharModelDataClose(-1); - lbl_1_bss_4 = NULL; + roundItemProc = NULL; } -static void fn_1_128C(void) { - lbl_1_bss_4 = HuPrcChildCreate(fn_1_D04, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1254); - while (lbl_1_bss_4) { +static void RoundItemEvent(void) +{ + roundItemProc = HuPrcChildCreate(RoundItemMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(roundItemProc, RoundItemDestroy); + while (roundItemProc) { HuPrcVSleep(); } } -static void fn_1_130C(void) { - Vec sp20; - Vec sp14; - Vec sp8; - s32 temp_r31; - s32 var_r28; - s32 temp_r30; - s32 temp_r3; +static void SpaceAmidaEvent(void) +{ + Vec spacePos; + s32 playerNo; + s32 choice; + s32 spaceStart; + s32 spaceEnd; - temp_r31 = GWSystem.player_curr; + playerNo = GWSystem.player_curr; BoardWinCreateChoice(2, MAKE_MESSID(11, 0), 0, 0); - if (GWPlayer[temp_r31].com) { + if (GWPlayer[playerNo].com) { BoardComKeySetLeft(); } BoardWinWait(); BoardWinKill(); - var_r28 = BoardWinChoiceGet(); - if (var_r28 != 0) { + choice = BoardWinChoiceGet(); + if (choice != 0) { BoardWinCreate(2, MAKE_MESSID(11, 4), 0); BoardWinWait(); BoardWinKill(); BoardMGExit(); return; } - BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); - sp14.x = 0.0f; - sp14.y = 0.0f; - sp14.z = 0.0f; - sp8.x = 0.0f; - sp8.y = 170.0f; - sp8.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[6], &sp14, &sp8, 1200.0f, 25.0f, 21); - temp_r30 = GWPlayer[temp_r31].space_curr; - temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); - BoardSpacePosGet(0, temp_r3, &sp20); - BoardPlayerMoveBetween(temp_r31, temp_r30, temp_r3); - BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0, 0); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 0.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = 0.0f; + cameraRot.y = 170.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_SPACEAMIDA], &cameraOfs, &cameraRot, 1200.0f, 25.0f, 21); + } + + spaceStart = GWPlayer[playerNo].space_curr; + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceEnd, &spacePos); + BoardPlayerMoveBetween(playerNo, spaceStart, spaceEnd); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); BoardAudSeqPause(0, 1, 1000); - fn_1_9DD8(); - while (GWPlayer[temp_r31].moving) { + SpaceAmidaExec(); + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } BoardAudSeqPause(0, 0, 1000); - while (GWPlayer[temp_r31].moving) { + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); } -static s32 fn_1_157C(void) { - s32 temp_r31; - s16 temp_curr; +static s32 WalkMiniEvent(void) +{ + s32 flag; + s16 spaceId; - temp_curr = GWPlayer[GWSystem.player_curr].space_curr; - temp_r31 = BoardSpaceFlagGet(0, temp_curr) & 0x600000; + spaceId = GWPlayer[GWSystem.player_curr].space_curr; + flag = BoardSpaceFlagGet(0, spaceId) & 0x600000; BoardRollDispSet(0); - if (temp_r31 == 0x200000) { - fn_1_130C(); - } else if (temp_r31 == 0x400000) { - fn_1_128C(); + if (flag == 0x200000) { + SpaceAmidaEvent(); + } + else if (flag == 0x400000) { + RoundItemEvent(); } BoardRollDispSet(1); } -static void fn_1_1670(void) { - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelVisibilitySet(lbl_1_bss_6C4[2], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[3], 0); - } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[2], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[3], 1); +static void UpdateHostDisp(void) +{ + if (boardWork->hostSide == 0) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST1], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST2], 0); + } + else { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST2], 1); } } -static void fn_1_1700(void) { - Vec sp8; - Mtx sp14; +static void CoasterInit(void) +{ + Vec pos; + Mtx matrix; - lbl_1_bss_6B1 = 0; - lbl_1_bss_6AE = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); - lbl_1_bss_644 = BoardModelMotionMaxTimeGet(lbl_1_bss_6AE); - BoardModelVisibilitySet(lbl_1_bss_6AE, 0); + coasterLandF = 0; + coasterPathMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + coasterMaxTime = BoardModelMotionMaxTimeGet(coasterPathMdlId); + BoardModelVisibilitySet(coasterPathMdlId, 0); memset(lbl_1_bss_2C, 0, sizeof(lbl_1_bss_2C)); if (BoardSpaceRead(1, DATA_MAKE_NUM(DATADIR_W01, 6)) == 0) { - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardSpaceFlagPosGet(1, 0x2000, &sp8); - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; - } else { - BoardSpaceFlagPosGet(1, 0x1000, &sp8); - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; + if (boardWork->hostSide == 0) { + BoardSpaceFlagPosGet(1, 0x2000, &pos); + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; } - lbl_1_bss_654 = sp8; - BoardModelPosSetV(lbl_1_bss_6C4[0], &sp8); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, lbl_1_bss_63C, 0.0f); - BoardModelExistDupe(lbl_1_bss_6C4[0], 1); - BoardModelExistDupe(lbl_1_bss_6C4[1], 1); - fn_8006DDE8(lbl_1_bss_6C4[1], 500.0f); - PSMTXIdentity(sp14); - BoardModelMtxSet(lbl_1_bss_6C4[0], &sp14); - fn_1_1670(); + else { + BoardSpaceFlagPosGet(1, 0x1000, &pos); + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; + } + coasterPos = pos; + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &pos); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, coasterBaseRotY, 0.0f); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_COASTER], 1); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_COASTER_RAIL], 1); + fn_8006DDE8(mapObjMdlId[MAPOBJ_COASTER_RAIL], 500.0f); + MTXIdentity(matrix); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &matrix); + UpdateHostDisp(); } } -static void fn_1_1990(void) { - Vec sp10; - float var_f31; - s32 var_r29; - s32 var_r30; - s16 sp8[3]; - BoardSpace *temp_r31; - BoardSpace *temp_r3; +static void CoasterPathUpdate(void) +{ + Vec diff; + float time; + s32 spaceId; + s32 spaceIdLink; + s16 linkTbl[3]; + BoardSpace *space; + BoardSpace *spaceLink; - var_r29 = lbl_1_bss_6AC; - var_f31 = 0.0f; + spaceId = coasterStartSpace; + time = 0.0f; while (TRUE) { - temp_r31 = BoardSpaceGet(1, var_r29); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_r30 = temp_r31->link[0]; - } else { - BoardSpaceLinkTargetListGet(1, var_r29, sp8); - var_r30 = sp8[0]; + space = BoardSpaceGet(1, spaceId); + if (boardWork->hostSide == 0) { + spaceIdLink = space->link[0]; } - if (var_r30 == 0) { + else { + BoardSpaceLinkTargetListGet(1, spaceId, linkTbl); + spaceIdLink = linkTbl[0]; + } + if (spaceIdLink == 0) { break; } - temp_r3 = BoardSpaceGet(1, var_r30); - if (!temp_r3) { - temp_r3 = temp_r31; + spaceLink = BoardSpaceGet(1, spaceIdLink); + if (!spaceLink) { + spaceLink = space; break; } - VECSubtract(&temp_r3->pos, &temp_r31->pos, &sp10); - var_f31 += VECMag(&sp10); - if (var_f31 >= lbl_1_bss_640) { + VECSubtract(&spaceLink->pos, &space->pos, &diff); + time += VECMag(&diff); + if (time >= coasterTime) { break; } - var_r29 = var_r30; + spaceId = spaceIdLink; } - if (temp_r31->flag & 8) { - lbl_1_bss_6B3 = 1; - } else { - lbl_1_bss_6B3 = 0; + if (space->flag & 8) { + coasterLoopF = 1; + } + else { + coasterLoopF = 0; } } -static void fn_1_1AD8(BoardCameraData *camera) { - camera->pos = lbl_1_bss_630; - camera->up = lbl_1_bss_624; - camera->target = lbl_1_bss_618; +static void CoasterPosCalc(BoardCameraData *camera) +{ + camera->pos = coasterCameraPos; + camera->up = coasterCameraUp; + camera->target = coasterCameraTarget; } -static void fn_1_1B3C(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - Mtx sp48; +static void CoasterCameraUpdate(void) +{ + Vec modelPos; + Vec diff; + Vec target; + Vec up; + Vec pos; + Mtx matrix; - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp30); - if (lbl_1_bss_6B3 != 0) { - BoardModelPosGet(lbl_1_bss_6C4[1], &sp3C); - VECSubtract(&sp3C, &lbl_1_bss_654, &sp18); - VECNormalize(&sp18, &sp18); - sp24 = lbl_1_bss_648; - spC = lbl_1_bss_654; - BoardMTXCalcLookAt(sp48, &spC, &sp18, &sp24); - PSMTXTranspose(sp48, lbl_1_bss_678); - PSMTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); - PSMTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); - } else { - if (sp30.z != 0.0f || sp30.x != 0.0f) { - lbl_1_bss_660.y = atan2d(sp30.x, sp30.z); - lbl_1_bss_660.x = -atan2d(sp30.y, VECMagXZ(&sp30)); - } else { - lbl_1_bss_660.x = lbl_1_bss_660.y = 0.0f; + VECSubtract(&coasterPos, &coasterPosOld, &diff); + if (coasterLoopF != 0) { + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &modelPos); + VECSubtract(&modelPos, &coasterPos, &up); + VECNormalize(&up, &up); + target = coasterPosOld; + pos = coasterPos; + BoardMTXCalcLookAt(matrix, &pos, &up, &target); + MTXTranspose(matrix, coasterMtx); + MTXRotRad(matrix, 'z', MTXDegToRad(coasterRot.z)); + MTXConcat(coasterMtx, matrix, coasterMtx); + } + else { + if (diff.z != 0.0f || diff.x != 0.0f) { + coasterRot.y = atan2d(diff.x, diff.z); + coasterRot.x = -atan2d(diff.y, VECMagXZ(&diff)); } - PSMTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); - PSMTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); - PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); - PSMTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); - PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + else { + coasterRot.x = coasterRot.y = 0.0f; + } + MTXRotRad(coasterMtx, 'z', MTXDegToRad(coasterRot.z)); + MTXRotRad(matrix, 'x', MTXDegToRad(coasterRot.x)); + MTXConcat(matrix, coasterMtx, coasterMtx); + MTXRotRad(matrix, 'y', MTXDegToRad(coasterRot.y)); + MTXConcat(matrix, coasterMtx, coasterMtx); } } -static void fn_1_1EE4(void) { - Bss10Work *temp_r31; +static void CoasterCameraObjKill(void) +{ + CoasterCameraWork *work; - if (lbl_1_bss_10) { - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); - temp_r31->unk00_field0 = 1; + if (coasterCameraObj) { + work = OM_GET_WORK_PTR(coasterCameraObj, CoasterCameraWork); + work->killF = TRUE; } } -static void fn_1_1F2C(omObjData *arg0) { - Bss10Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss10Work); +static void CoasterCameraObjMain(omObjData *obj) +{ + CoasterCameraWork *work = OM_GET_WORK_PTR(obj, CoasterCameraWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - omDelObjEx(HuPrcCurrentGet(), arg0); - lbl_1_bss_10 = NULL; + if (work->killF != 0 || BoardIsKill()) { + omDelObjEx(HuPrcCurrentGet(), obj); + coasterCameraObj = NULL; return; } - fn_1_1FA4(); + CoasterCameraObjUpdate(); } -static void fn_1_1FA4(void) { - Vec sp18; - Vec spC; - float temp_f28; - float temp_f29; - float var_f27; +static void CoasterCameraObjUpdate(void) +{ + Vec modelPos; + Vec pos; + float angleY; + float angleX; + float radius; - spC.x = lbl_1_bss_648.x; - spC.y = lbl_1_bss_648.y + 200.0f; - spC.z = lbl_1_bss_648.z; - VECSubtract(&spC, &lbl_1_bss_618, &spC); - VECScale(&spC, &spC, 0.08f); - VECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618); - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC); - if (spC.x != 0.0f || spC.z != 0.0f) { - temp_f29 = atan2f(spC.y, VECMagXZ(&spC)); - temp_f28 = atan2f(-spC.x, -spC.z); - } else { - temp_f29 = temp_f28 = 0.0f; + pos.x = coasterPosOld.x; + pos.y = coasterPosOld.y + 200.0f; + pos.z = coasterPosOld.z; + VECSubtract(&pos, &coasterCameraTarget, &pos); + VECScale(&pos, &pos, 0.08f); + VECAdd(&pos, &coasterCameraTarget, &coasterCameraTarget); + VECSubtract(&coasterPos, &coasterPosOld, &pos); + if (pos.x != 0.0f || pos.z != 0.0f) { + angleX = atan2f(pos.y, VECMagXZ(&pos)); + angleY = atan2f(-pos.x, -pos.z); + } + else { + angleX = angleY = 0.0f; return; } - temp_f29 += -0.27925268f; - if (lbl_1_bss_6B3 != 0) { - if (lbl_1_bss_66C < 0.08f) { - lbl_1_bss_66C -= 0.00033333333f; + angleX += -0.27925268f; + if (coasterLoopF != 0) { + if (coasterCamSpeed < 0.08f) { + coasterCamSpeed -= 0.00033333333f; } - BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f27 = -2500.0f; - } else { - var_f27 = 2500.0f; + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &modelPos); + if (boardWork->hostSide == 0) { + radius = -2500.0f; } - sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81) - sp18.y = sp18.y + -150.0f; - sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // TODO: should be cosd(81) - VECSubtract(&sp18, &lbl_1_bss_630, &spC); - VECScale(&spC, &spC, lbl_1_bss_66C); - VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); - } else { - if (lbl_1_bss_66C < 0.08f) { - lbl_1_bss_66C += 0.00066666666f; + else { + radius = 2500.0f; } - spC.x = 400.0 * (sin(temp_f28) * cos(temp_f29)); - spC.y = 400.0 * -sin(temp_f29); - spC.z = 400.0 * (cos(temp_f28) * cos(temp_f29)); - VECAdd(&lbl_1_bss_618, &spC, &spC); - VECSubtract(&spC, &lbl_1_bss_630, &spC); - VECScale(&spC, &spC, lbl_1_bss_66C); - VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + modelPos.x = modelPos.x + radius * sin(1.4137166738510132); // TODO: should be sind(81) + modelPos.y = modelPos.y + -150.0f; + modelPos.z = modelPos.z + radius * cos(1.4137166738510132); // TODO: should be cosd(81) + VECSubtract(&modelPos, &coasterCameraPos, &pos); + VECScale(&pos, &pos, coasterCamSpeed); + VECAdd(&pos, &coasterCameraPos, &coasterCameraPos); + } + else { + if (coasterCamSpeed < 0.08f) { + coasterCamSpeed += 0.00066666666f; + } + pos.x = 400.0 * (sin(angleY) * cos(angleX)); + pos.y = 400.0 * -sin(angleX); + pos.z = 400.0 * (cos(angleY) * cos(angleX)); + VECAdd(&coasterCameraTarget, &pos, &pos); + VECSubtract(&pos, &coasterCameraPos, &pos); + VECScale(&pos, &pos, coasterCamSpeed); + VECAdd(&pos, &coasterCameraPos, &coasterCameraPos); } } -static float fn_1_2524(void) { - Vec sp24; - Vec sp18; - Vec spC; - float var_f30; - s16 sp8; - s32 var_r29; +static float CoasterStickRotGet(void) +{ + Vec basePos; + Vec modelPos; + Vec diff; + float stickRot; + s16 stkX; + s32 padNo; s32 i; - sp24 = lbl_1_bss_654; - if (GWPlayer[lbl_1_bss_6B4].com) { - if (lbl_1_bss_6B3 != 0) { + basePos = coasterPos; + if (GWPlayer[eventPlayer].com) { + if (coasterLoopF != 0) { return 0.0f; } for (i = 0; i < 24; i++) { - if (lbl_1_bss_600[i] == 0) { - BoardModelPosGet(lbl_1_bss_5D0[i], &sp18); - VECSubtract(&sp18, &sp24, &spC); - if (!(VECMag(&spC) > 400.0f)) { + if (coasterCoinF[i] == 0) { + BoardModelPosGet(coasterCoinMdlId[i], &modelPos); + VECSubtract(&modelPos, &basePos, &diff); + if (!(VECMag(&diff) > 400.0f)) { break; } } @@ -879,102 +908,104 @@ static float fn_1_2524(void) { if (i == 24) { return 0.0f; } - VECSubtract(&sp18, &sp24, &spC); - var_f30 = atan2d(spC.x, spC.z); - if (var_f30 > 0.0f) { - var_f30 = 45.0f; - } else { - var_f30 = -45.0f; + VECSubtract(&modelPos, &basePos, &diff); + stickRot = atan2d(diff.x, diff.z); + if (stickRot > 0.0f) { + stickRot = 45.0f; + } + else { + stickRot = -45.0f; } - } else { - var_r29 = GWPlayer[lbl_1_bss_6B4].port; - sp8 = HuPadStkX[var_r29]; - OSs16tof32(&sp8, &var_f30); - var_f30 = var_f30 * 0.625f; } - return var_f30; + else { + padNo = GWPlayer[eventPlayer].port; + stkX = HuPadStkX[padNo]; + OSs16tof32(&stkX, &stickRot); + stickRot = stickRot * 0.625f; + } + return stickRot; } -static void fn_1_276C(void) { - Vec sp58; - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - float temp_f26; - float var_f27; +static void CoasterRotUpdate(void) +{ + float motTime; + float stickRot; Mtx sp70; - fn_1_1B3C(); - if (lbl_1_bss_6B1 != 0) { - lbl_1_bss_660.z = 0.0f; + CoasterCameraUpdate(); + if (coasterLandF != 0) { + coasterRot.z = 0.0f; return; } - var_f27 = fn_1_2524(); - BoardDAngleCalcRange(&lbl_1_bss_660.z, var_f27, 5.0f); - temp_f26 = 6.0f + 6.0f * (lbl_1_bss_660.z / 45.0f) - 1.0f; - if (lbl_1_bss_660.z > 22.5f) { - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); - BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); - } else if (lbl_1_bss_660.z < -22.5f) { - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); - BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); - } else { - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + stickRot = CoasterStickRotGet(); + BoardDAngleCalcRange(&coasterRot.z, stickRot, 5.0f); + motTime = 6.0f + 6.0f * (coasterRot.z / 45.0f) - 1.0f; + if (coasterRot.z > 22.5f) { + BoardPlayerMotionStart(eventPlayer, coasterMotId[1], 0); + BoardPlayerMotionTimeSet(eventPlayer, motTime); } - fn_1_2F18(); + else if (coasterRot.z < -22.5f) { + BoardPlayerMotionStart(eventPlayer, coasterMotId[1], 0); + BoardPlayerMotionTimeSet(eventPlayer, motTime); + } + else { + BoardPlayerMotionShiftSet(eventPlayer, coasterMotId[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + } + CoasterCoinCheck(); } -static void fn_1_2F18(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float var_f29; - Mtx spD8; - Mtx spA8; - Mtx sp78; - Mtx sp48; +static void CoasterCoinCheck(void) +{ + Vec coinPos; + Vec ofs; + Vec angle; + Vec diff; + Vec mdlCoasterPos; + float rotZ; + Mtx matrix; + Mtx mtxRotX; + Mtx mtxRotY; + Mtx mtxRotZ; s32 i; - if (lbl_1_bss_6B3 == 0) { - var_f29 = lbl_1_bss_660.z; - if (var_f29 > 180.0f) { - var_f29 -= 360.0f; + if (coasterLoopF == 0) { + rotZ = coasterRot.z; + if (rotZ > 180.0f) { + rotZ -= 360.0f; } - BoardModelPosGet(lbl_1_bss_6C4[0], &spC); - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18); - if (sp18.z != 0.0f || sp18.x != 0.0f) { - sp24.y = atan2d(sp18.x, sp18.z); - sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18)); - } else { - sp24.x = sp24.y = 0.0f; + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + VECSubtract(&coasterPos, &coasterPosOld, &diff); + if (diff.z != 0.0f || diff.x != 0.0f) { + angle.y = atan2d(diff.x, diff.z); + angle.x = -atan2d(diff.y, VECMagXZ(&diff)); } - PSMTXTrans(spD8, 0.0f, 180.0f, 0.0f); - PSMTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); - PSMTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); - PSMTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); - PSMTXConcat(spA8, sp48, sp48); - PSMTXConcat(sp78, sp48, sp48); - PSMTXConcat(sp48, spD8, spD8); - sp30.x = spD8[0][3]; - sp30.y = spD8[1][3]; - sp30.z = spD8[2][3]; - VECAdd(&sp30, &spC, &sp30); - if (var_f29 < 27.000002f && var_f29 > -27.000002f) { + else { + angle.x = angle.y = 0.0f; + } + MTXTrans(matrix, 0.0f, 180.0f, 0.0f); + MTXRotRad(mtxRotX, 'x', MTXDegToRad(angle.x)); + MTXRotRad(mtxRotY, 'y', MTXDegToRad(angle.y)); + MTXRotRad(mtxRotZ, 'z', MTXDegToRad(rotZ)); + MTXConcat(mtxRotX, mtxRotZ, mtxRotZ); + MTXConcat(mtxRotY, mtxRotZ, mtxRotZ); + MTXConcat(mtxRotZ, matrix, matrix); + ofs.x = matrix[0][3]; + ofs.y = matrix[1][3]; + ofs.z = matrix[2][3]; + VECAdd(&ofs, &mdlCoasterPos, &ofs); + if (rotZ < 27.000002f && rotZ > -27.000002f) { return; } for (i = 0; i < 24; i++) { - if (lbl_1_bss_600[i] == 0) { - BoardModelPosGet(lbl_1_bss_5D0[i], &sp3C); - if (BoardVecMaxDistXZCheck(&sp3C, &sp30, 180.0f)) { + if (coasterCoinF[i] == 0) { + BoardModelPosGet(coasterCoinMdlId[i], &coinPos); + if (BoardVecMaxDistXZCheck(&coinPos, &ofs, 180.0f)) { CharModelLayerSetAll(2); - CharModelCoinEffectCreate(1, &sp3C); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); - BoardPlayerCoinsAdd(lbl_1_bss_6B4, 1); + CharModelCoinEffectCreate(1, &coinPos); + BoardModelVisibilitySet(coasterCoinMdlId[i], 0); + BoardPlayerCoinsAdd(eventPlayer, 1); HuAudFXPlay(7); - lbl_1_bss_600[i] = 1; + coasterCoinF[i] = 1; break; } } @@ -982,232 +1013,236 @@ static void fn_1_2F18(void) { } } -static s16 lbl_1_data_580 = -1; +static s16 coasterWinId = -1; -static void fn_1_3350(void) { - Vec sp8; - s16 temp_r3; - ModelData *temp_r30; - HsfObject *temp_r31; +static void CoasterPathMotUpdate(void) +{ + Vec diff; + s16 modelId; + ModelData *modelP; + HsfObject *obj; - lbl_1_bss_674 += 0.002f; - if (lbl_1_bss_670 > 0.18f) { - lbl_1_bss_670 = 0.18f; - } else if (lbl_1_bss_670 < 0.18f) { - lbl_1_bss_670 += lbl_1_bss_674; + coasterAccel += 0.002f; + if (coasterSpeed > 0.18f) { + coasterSpeed = 0.18f; } - temp_r3 = BoardModelIDGet(lbl_1_bss_6AE); - temp_r30 = &Hu3DData[temp_r3]; - Hu3DMotionExec(temp_r3, temp_r30->unk_08, temp_r30->unk_64, 0); - temp_r31 = Hu3DModelObjPtrGet(temp_r3, "looppath-cube1"); - lbl_1_bss_648 = lbl_1_bss_654; - lbl_1_bss_654.x = temp_r31->data.curr.pos.x; - lbl_1_bss_654.y = temp_r31->data.curr.pos.y; - lbl_1_bss_654.z = temp_r31->data.curr.pos.z; - VECSubtract(&lbl_1_bss_648, &lbl_1_bss_654, &sp8); - lbl_1_bss_640 += VECMag(&sp8); + else if (coasterSpeed < 0.18f) { + coasterSpeed += coasterAccel; + } + modelId = BoardModelIDGet(coasterPathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + obj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + coasterPosOld = coasterPos; + coasterPos.x = obj->data.curr.pos.x; + coasterPos.y = obj->data.curr.pos.y; + coasterPos.z = obj->data.curr.pos.z; + VECSubtract(&coasterPosOld, &coasterPos, &diff); + coasterTime += VECMag(&diff); } -static s32 lbl_1_data_594[8][2] = { - { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, - { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, - { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, - { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, - { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, - { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, - { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, - { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } -}; +static s32 coasterMotTbl[8][2] + = { { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, + { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, + { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, + { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } }; -static void fn_1_3514(s32 arg0) { - s32 temp_r30; +static void CoasterMotCreate(s32 playerNo) +{ + s32 charNo; s32 i; - temp_r30 = GWPlayer[arg0].character; + charNo = GWPlayer[playerNo].character; for (i = 0; i < 2; i++) { - lbl_1_bss_5CC[i] = BoardPlayerMotionCreate(arg0, lbl_1_data_594[temp_r30][i]); + coasterMotId[i] = BoardPlayerMotionCreate(playerNo, coasterMotTbl[charNo][i]); } } -static void fn_1_35B4(s32 arg0) { +static void CoasterMotKill(s32 playerNo) +{ s32 i; for (i = 0; i < 2; i++) { - BoardPlayerMotionKill(arg0, lbl_1_bss_5CC[i]); - lbl_1_bss_5CC[i] = -1; + BoardPlayerMotionKill(playerNo, coasterMotId[i]); + coasterMotId[i] = -1; } } -static void fn_1_3624(void) { - Mtx sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - float temp_f28; - float var_f30; - float var_f29; - s32 temp_r19; - Bss10Work *temp_r18; - s16 sp10; - s16 var_r25; +static void CoasterExec(void) +{ + Mtx playerMtx; + Vec spacePos; + Vec cameraRot; + float coasterRotSpeed; + float coasterRotDir; + float coasterMotSpeed; + s32 seNo; + CoasterCameraWork *camWork; + s16 endSpace; s16 i; - lbl_1_bss_674 = lbl_1_bss_670 = 0.0f; - lbl_1_bss_640 = 0.0f; - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.y = 0.0f; - lbl_1_bss_660.z = 0.0f; + coasterAccel = coasterSpeed = 0.0f; + coasterTime = 0.0f; + coasterRot.x = 0.0f; + coasterRot.y = 0.0f; + coasterRot.z = 0.0f; lbl_1_bss_6A8 = 0.0f; - lbl_1_bss_6B3 = 0; - lbl_1_bss_624.x = 0.0f; - lbl_1_bss_624.z = 0.0f; - lbl_1_bss_624.y = 1.0f; - lbl_1_bss_66C = 0.08f; - fn_1_3514(lbl_1_bss_6B4); - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0x40000001); + coasterLoopF = 0; + coasterCameraUp.x = 0.0f; + coasterCameraUp.z = 0.0f; + coasterCameraUp.y = 1.0f; + coasterCamSpeed = 0.08f; + CoasterMotCreate(eventPlayer); + BoardPlayerMotionStart(eventPlayer, coasterMotId[0], HU3D_MOTATTR_LOOP); BoardSpaceAttrSet(0, 1); - fn_1_97F4(); - BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp3C); - var_r25 = BoardSpaceFlagSearch(0, 0x1000); - var_f30 = -1.0f; - } else { - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp3C); - var_r25 = BoardSpaceFlagSearch(0, 0x2000); - var_f30 = 1.0f; + CoasterEffCreate(); + BoardModelMotionStart(coasterPathMdlId, 0, 0); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x2000, &spacePos); + endSpace = BoardSpaceFlagSearch(0, 0x1000); + coasterRotDir = -1.0f; } - lbl_1_bss_654 = sp3C; - lbl_1_bss_648 = lbl_1_bss_654; - BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); - BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); - BoardCameraPosCalcFuncSet(fn_1_1AD8); - lbl_1_bss_10 = omAddObjEx(boardObjMan, 0x7E02, 0, 0, -1, fn_1_1F2C); - temp_r18 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); - temp_r18->unk00_field0 = 0; - sp30.x = -40.0f; - sp30.z = 0.0f; - sp30.y = -lbl_1_bss_63C; - BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, NULL, 150.0f, -1.0f, 2); + else { + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x1000, &spacePos); + endSpace = BoardSpaceFlagSearch(0, 0x2000); + coasterRotDir = 1.0f; + } + coasterPos = spacePos; + coasterPosOld = coasterPos; + BoardModelMotionSpeedSet(coasterPathMdlId, coasterSpeed); + BoardPlayerPosSetV(eventPlayer, &coasterPos); + BoardCameraPosCalcFuncSet(CoasterPosCalc); + coasterCameraObj = omAddObjEx(boardObjMan, 0x7E02, 0, 0, -1, CoasterCameraObjMain); + camWork = OM_GET_WORK_PTR(coasterCameraObj, CoasterCameraWork); + camWork->killF = FALSE; + cameraRot.x = -40.0f; + cameraRot.z = 0.0f; + cameraRot.y = -coasterBaseRotY; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_COASTER], &cameraRot, NULL, 150.0f, -1.0f, 2); BoardCameraMotionWait(); - BoardModelPosGet(lbl_1_bss_6C4[0], &lbl_1_bss_618); - lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sind(sp30.y) * cosd(sp30.x)); - lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sind(sp30.x); - lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cosd(sp30.y) * cosd(sp30.x)); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, 0.0f, 0.0f); - BoardPlayerExistCheck(lbl_1_bss_6B4, 0); + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &coasterCameraTarget); + coasterCameraPos.x = coasterCameraTarget.x + 1000.0 * (sind(cameraRot.y) * cosd(cameraRot.x)); + coasterCameraPos.y = coasterCameraTarget.y + 1000.0 * -sind(cameraRot.x); + coasterCameraPos.z = coasterCameraTarget.z + 1000.0 * (cosd(cameraRot.y) * cosd(cameraRot.x)); + MTXRotRad(coasterMtx, 'y', MTXDegToRad(coasterBaseRotY)); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardPlayerMtxSet(eventPlayer, &coasterMtx); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, 0.0f, 0.0f); + BoardPlayerRotSet(eventPlayer, 0.0f, 0.0f, 0.0f); + BoardPlayerExistCheck(eventPlayer, 0); BoardMusStart(1, 0x10, 0x7F, 0); - fn_1_50D4(); - BoardStatusShowSetForce(lbl_1_bss_6B4); - BoardStatusShowSet(lbl_1_bss_6B4, 1); - while (!BoardStatusStopCheck(lbl_1_bss_6B4)) { + CoasterCoinCreate(); + BoardStatusShowSetForce(eventPlayer); + BoardStatusShowSet(eventPlayer, 1); + while (!BoardStatusStopCheck(eventPlayer)) { HuPrcVSleep(); } - temp_r19 = HuAudFXPlay(0x40C); - fn_1_4774(); + seNo = HuAudFXPlay(0x40C); + CoasterWinCreate(); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_6B0 = 1; + coasterType = 1; HuAudFXPlay(0x413); while (TRUE) { - fn_1_1990(); - fn_1_3350(); - fn_1_276C(); - BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); - BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) != 1) { - PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); - } else { - PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); + CoasterPathUpdate(); + CoasterPathMotUpdate(); + CoasterRotUpdate(); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterPos); + BoardPlayerPosSetV(eventPlayer, &coasterPos); + if (BoardPlayerSizeGet(eventPlayer) != 1) { + MTXTrans(playerMtx, 0.0f, 30.0f, 0.0f); } - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - PSMTXConcat(lbl_1_bss_678, sp48, sp48); - BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f29 = -lbl_1_bss_670; - } else { - var_f29 = lbl_1_bss_670; + else { + MTXTrans(playerMtx, 0.0f, 400.0f, 250.0f); } - BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f29); - if (lbl_1_bss_0->unk00_field0 == 0) { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 0.0f) { + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + MTXConcat(coasterMtx, playerMtx, playerMtx); + BoardPlayerMtxSet(eventPlayer, &playerMtx); + if (boardWork->hostSide == 0) { + coasterMotSpeed = -coasterSpeed; + } + else { + coasterMotSpeed = coasterSpeed; + } + BoardModelMotionSpeedSet(coasterPathMdlId, coasterMotSpeed); + if (boardWork->hostSide == 0) { + if (BoardModelMotionTimeGet(coasterPathMdlId) <= 0.0f) { break; } - } else { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644) { + } + else { + if (BoardModelMotionTimeGet(coasterPathMdlId) >= coasterMaxTime) { break; } } HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); - fn_1_4864(); - HuAudFXStop(temp_r19); - fn_1_1EE4(); - fn_1_98EC(); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 1) { - PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); - } else { - PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); + MTXIdentity(coasterMtx); + CoasterWinKill(); + HuAudFXStop(seNo); + CoasterCameraObjKill(); + CoasterEffKill(); + if (BoardPlayerSizeGet(eventPlayer) == 1) { + MTXTrans(playerMtx, 0.0f, 400.0f, 250.0f); } - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); - lbl_1_bss_660.x = lbl_1_bss_660.z = 0.0f; + else { + MTXTrans(playerMtx, 0.0f, 30.0f, 0.0f); + } + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardPlayerMtxSet(eventPlayer, &playerMtx); + coasterRot.x = coasterRot.z = 0.0f; BoardAudSeqFadeOut(1, 1000); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); HuAudFXPlay(0x401); - temp_f28 = (-lbl_1_bss_63C - lbl_1_bss_660.y) / 30.0f; + coasterRotSpeed = (-coasterBaseRotY - coasterRot.y) / 30.0f; for (i = 0; i < 30; i++) { - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); - lbl_1_bss_660.y += temp_f28 * var_f30; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardPlayerRotSetV(eventPlayer, &coasterRot); + coasterRot.y += coasterRotSpeed * coasterRotDir; HuPrcVSleep(); } - lbl_1_bss_660.y = -lbl_1_bss_63C; - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); - BoardStatusShowSet(lbl_1_bss_6B4, 0); + coasterRot.y = -coasterBaseRotY; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardPlayerRotSetV(eventPlayer, &coasterRot); + BoardStatusShowSet(eventPlayer, 0); BoardSpaceAttrReset(0, 1); - fn_1_53B8(); + CoasterCoinKill(); BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraTargetPlayerSet(eventPlayer); BoardCameraViewSet(1); BoardCameraMotionWait(); do { HuPrcVSleep(); } while (WipeStatGet() != 0); - BoardPlayerIdleSet(lbl_1_bss_6B4); - BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); + BoardPlayerIdleSet(eventPlayer); + BoardPlayerMtxSet(eventPlayer, &coasterMtx); BoardCameraPosCalcFuncSet(NULL); - BoardPlayerExistCheck(lbl_1_bss_6B4, 1); - BoardSpacePosGet(0, var_r25, &sp3C); - GWPlayer[lbl_1_bss_6B4].space_curr = var_r25; - BoardPlayerPosSetV(lbl_1_bss_6B4, &sp3C); - fn_1_35B4(lbl_1_bss_6B4); - lbl_1_bss_6B2 = 1; + BoardPlayerExistCheck(eventPlayer, 1); + BoardSpacePosGet(0, endSpace, &spacePos); + GWPlayer[eventPlayer].space_curr = endSpace; + BoardPlayerPosSetV(eventPlayer, &spacePos); + CoasterMotKill(eventPlayer); + coasterDoneF = 1; } -static void fn_1_45F4(void) { - if (lbl_1_bss_6B2 != 0) { - if (lbl_1_bss_0->unk00_field0 == 0) { - lbl_1_bss_0->unk00_field0 = 1; - } else { - lbl_1_bss_0->unk00_field0 = 0; +static void CoasterExit(void) +{ + if (coasterDoneF != 0) { + if (boardWork->hostSide == 0) { + boardWork->hostSide = 1; } - lbl_1_bss_6B2 = 0; - fn_1_1670(); + else { + boardWork->hostSide = 0; + } + coasterDoneF = 0; + UpdateHostDisp(); } - fn_1_87AC(); - while (lbl_1_bss_C) { + CoasterPlayerManKill(); + while (coasterPlayerManObj) { HuPrcVSleep(); } BoardAudSeqPause(0, 0, 1000); @@ -1220,47 +1255,50 @@ static void fn_1_45F4(void) { BoardStatusShowSetAll(1); } -static void fn_1_4774(void) { - float sp8[2]; - float var_f31; - float var_f30; +static void CoasterWinCreate(void) +{ + float winSize[2]; + float winX; + float winY; - HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(13, 5)); - var_f31 = -10000.0f; - var_f30 = 352.0f; - lbl_1_data_580 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); - HuWinBGTPLvlSet(lbl_1_data_580, 0.0f); - HuWinMesSpeedSet(lbl_1_data_580, 0); - HuWinMesSet(lbl_1_data_580, MAKE_MESSID(13, 5)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(13, 5)); + winX = -10000.0f; + winY = 352.0f; + coasterWinId = HuWinCreate(winX, winY, winSize[0], winSize[1], 0); + HuWinBGTPLvlSet(coasterWinId, 0.0f); + HuWinMesSpeedSet(coasterWinId, 0); + HuWinMesSet(coasterWinId, MAKE_MESSID(13, 5)); } -static void fn_1_4864(void) { - if (lbl_1_data_580 != -1) { - HuWinKill(lbl_1_data_580); - lbl_1_data_580 = -1; +static void CoasterWinKill(void) +{ + if (coasterWinId != -1) { + HuWinKill(coasterWinId); + coasterWinId = -1; } } -static s32 fn_1_48B4(void) { - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - u32 var_r31; +static s32 CoasterHostExec(void) +{ + Vec startPos; + Vec endPos; + Vec dir; + float angle; + u32 mess; s32 i; - s32 temp_r28; - s32 temp_r30; + s32 spaceEnd; + s32 spaceStart; - var_r31 = 0; - lbl_1_bss_6B0 = 0; - lbl_1_bss_6B1 = 0; - lbl_1_bss_6B2 = 0; - lbl_1_bss_6B4 = GWSystem.player_curr; - temp_r30 = GWPlayer[lbl_1_bss_6B4].space_curr; - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, 1, 0.0f, 14.0f, HU3D_MOTATTR_LOOP); + mess = 0; + coasterType = 0; + coasterLandF = 0; + coasterDoneF = 0; + eventPlayer = GWSystem.player_curr; + spaceStart = GWPlayer[eventPlayer].space_curr; + BoardPlayerMotionShiftSet(eventPlayer, 1, 0.0f, 14.0f, HU3D_MOTATTR_LOOP); BoardWinCreateChoice(0, MAKE_MESSID(13, 0), -1, 0); - if (GWPlayer[lbl_1_bss_6B4].com) { - fn_1_9D00(lbl_1_bss_6B4); + if (GWPlayer[eventPlayer].com) { + CoasterHostComKeySet(eventPlayer); } BoardWinWait(); if (BoardWinChoiceGet() != 0) { @@ -1268,43 +1306,44 @@ static s32 fn_1_48B4(void) { } BoardWinCreate(2, 0xD0006, 0); BoardWinWait(); - temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); - BoardSpacePosGet(0, temp_r30, &sp20); - BoardSpacePosGet(0, temp_r28, &sp14); - VECSubtract(&sp14, &sp20, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(-sp8.x, -sp8.z); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); - BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r30, temp_r28); - while (GWPlayer[lbl_1_bss_6B4].moving) { + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceStart, &startPos); + BoardSpacePosGet(0, spaceEnd, &endPos); + VECSubtract(&endPos, &startPos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(-dir.x, -dir.z); + BoardPlayerRotSet(eventPlayer, 0.0f, angle, 0.0f); + BoardPlayerMoveBetween(eventPlayer, spaceStart, spaceEnd); + while (GWPlayer[eventPlayer].moving) { HuPrcVSleep(); } - BoardPlayerIdleSet(lbl_1_bss_6B4); + BoardPlayerIdleSet(eventPlayer); while (TRUE) { BoardWinCreateChoice(1, MAKE_MESSID(13, 1), 0, 0); BoardWinAttrSet(0x10); - if (GWPlayer[lbl_1_bss_6B4].com) { - if (BoardPlayerCoinsGet(lbl_1_bss_6B4) >= 5) { + if (GWPlayer[eventPlayer].com) { + if (BoardPlayerCoinsGet(eventPlayer) >= 5) { BoardComKeySetUp(); - } else { + } + else { BoardComKeySetDown(); } } BoardWinWait(); if (BoardWinChoiceGet() == 1) { - var_r31 = MAKE_MESSID(13, 3); + mess = MAKE_MESSID(13, 3); break; } if (BoardWinChoiceGet() == 2) { - BoardViewMapExec(lbl_1_bss_6B4); + BoardViewMapExec(eventPlayer); continue; } - if (BoardPlayerCoinsGet(lbl_1_bss_6B4) < 5) { - var_r31 = MAKE_MESSID(13, 4); + if (BoardPlayerCoinsGet(eventPlayer) < 5) { + mess = MAKE_MESSID(13, 4); break; } for (i = 0; i < 5; i++) { - BoardPlayerCoinsAdd(lbl_1_bss_6B4, -1); + BoardPlayerCoinsAdd(eventPlayer, -1); HuAudFXPlay(0xE); HuPrcSleep(6); } @@ -1320,1239 +1359,1317 @@ static s32 fn_1_48B4(void) { while (WipeStatGet() != 0) { HuPrcVSleep(); } - fn_1_852C(); - return 1; + CoasterPlayerManCreate(); + return TRUE; } - if (var_r31 != 0) { - BoardWinCreate(1, var_r31, 0); + if (mess != 0) { + BoardWinCreate(1, mess, 0); BoardWinWait(); BoardWinKill(); } - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); - VECSubtract(&sp20, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(-sp8.x, -sp8.z); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); - BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r28, temp_r30); - while (GWPlayer[lbl_1_bss_6B4].moving) { + BoardCameraTargetPlayerSet(eventPlayer); + VECSubtract(&startPos, &endPos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(-dir.x, -dir.z); + BoardPlayerRotSet(eventPlayer, 0.0f, angle, 0.0f); + BoardPlayerMoveBetween(eventPlayer, spaceEnd, spaceStart); + while (GWPlayer[eventPlayer].moving) { HuPrcVSleep(); } - return 0; + return FALSE; } -static void fn_1_4E14(void) { - if (fn_1_48B4() != 0) { - fn_1_3624(); - fn_1_45F4(); +static void CoasterMain(void) +{ + if (CoasterHostExec() != 0) { + CoasterExec(); + CoasterExit(); } HuPrcEnd(); } -static void fn_1_4FA8(void) { +static void CoasterDestroy(void) +{ BoardWinKill(); - lbl_1_bss_8 = NULL; + coasterProc = NULL; } -static void fn_1_4FD8(void) { - lbl_1_bss_6B4 = GWSystem.player_curr; +static void CoasterEvent(void) +{ + eventPlayer = GWSystem.player_curr; BoardRollDispSet(0); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 2 || GWPlayer[lbl_1_bss_6B4].bowser_suit) { + if (BoardPlayerSizeGet(eventPlayer) == 2 || GWPlayer[eventPlayer].bowser_suit) { return; } - lbl_1_bss_8 = HuPrcChildCreate(fn_1_4E14, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); - while (lbl_1_bss_8) { + coasterProc = HuPrcChildCreate(CoasterMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(coasterProc, CoasterDestroy); + while (coasterProc) { HuPrcVSleep(); } BoardRollDispSet(1); } -static void fn_1_50D4(void) { - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - BoardSpace *temp_r31; - s32 var_r27; - s32 var_r26; - s32 var_r29; - s32 var_r28; +static void CoasterCoinCreate(void) +{ + Vec pos; + Vec posSpace; + Vec dir; + float radius; + float angle; + BoardSpace *space; + s32 side; + s32 newSide; + s32 coinNum; + s32 spaceId; s32 i; for (i = 0; i < 24; i++) { - lbl_1_bss_5D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 9), NULL, 0); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); - BoardModelMotionStart(lbl_1_bss_5D0[i], 0, 0x40000001); - lbl_1_bss_600[i] = 0; + coasterCoinMdlId[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 9), NULL, 0); + BoardModelVisibilitySet(coasterCoinMdlId[i], 0); + BoardModelMotionStart(coasterCoinMdlId[i], 0, HU3D_MOTATTR_LOOP); + coasterCoinF[i] = 0; } - temp_f30 = 180.0f; - var_r28 = BoardSpaceFlagPosGet(1, 0x2000, &sp20); - var_r27 = BoardRand() & 1; - var_r29 = i = 0; + radius = 180.0f; + spaceId = BoardSpaceFlagPosGet(1, 0x2000, &pos); + side = BoardRand() & 1; + coinNum = i = 0; while (i < 24) { - temp_r31 = BoardSpaceGet(1, var_r28); - var_r28 = temp_r31->link[0]; - if (var_r28 == -1 || temp_r31->link_cnt == 0) { + space = BoardSpaceGet(1, spaceId); + spaceId = space->link[0]; + if (spaceId == -1 || space->link_cnt == 0) { break; } - if (!(temp_r31->flag & 0x80)) { - sp14 = temp_r31->pos; - } else { - if (var_r29 >= 3) { + if (!(space->flag & 0x80)) { + posSpace = space->pos; + } + else { + if (coinNum >= 3) { if (BoardRandFloat() < 0.5f) { - var_r26 = 1; - } else { - var_r26 = 0; + newSide = 1; } - var_r27 = var_r26; - var_r29 = 0; + else { + newSide = 0; + } + side = newSide; + coinNum = 0; } - VECSubtract(&sp14, &temp_r31->pos, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(sp8.z, sp8.x); - if (var_r27 != 0) { - var_f31 += 180.0f; + VECSubtract(&posSpace, &space->pos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(dir.z, dir.x); + if (side != 0) { + angle += 180.0f; } - sp20.x = temp_r31->pos.x + temp_f30 * sind(var_f31); - sp20.y = temp_r31->pos.y + 80.0f; - sp20.z = temp_r31->pos.z + temp_f30 * cosd(var_f31); - BoardModelPosSetV(lbl_1_bss_5D0[i], &sp20); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 1); - sp14 = temp_r31->pos; + pos.x = space->pos.x + radius * sind(angle); + pos.y = space->pos.y + 80.0f; + pos.z = space->pos.z + radius * cosd(angle); + BoardModelPosSetV(coasterCoinMdlId[i], &pos); + BoardModelVisibilitySet(coasterCoinMdlId[i], 1); + posSpace = space->pos; i++; - var_r29++; + coinNum++; } } } -static void fn_1_53B8(void) { +static void CoasterCoinKill(void) +{ s32 i; for (i = 0; i < 24; i++) { - if (lbl_1_bss_5D0[i] != -1) { - BoardModelKill(lbl_1_bss_5D0[i]); - lbl_1_bss_5D0[i] = -1; + if (coasterCoinMdlId[i] != -1) { + BoardModelKill(coasterCoinMdlId[i]); + coasterCoinMdlId[i] = -1; } } } -static s32 lbl_1_data_5D4 = -1; -static s32 lbl_1_data_5D8 = -1; +static s32 cupMoveSeNo = -1; +static s32 decaStompSeNo = -1; -static s16 lbl_1_data_5DC[2][4] = { - { 24, 25, 26, 27 }, - { 29, 30, 31, 32 } +static s16 cupMapObj[2][4] = { + { MAPOBJ_CUPR1, MAPOBJ_CUPR2, MAPOBJ_CUPR3, MAPOBJ_CUPR_ARROW }, + { MAPOBJ_CUPL1, MAPOBJ_CUPL2, MAPOBJ_CUPL3, MAPOBJ_CUPL_ARROW } }; -static char *lbl_1_data_604[] = { - "chara1", "chara2", "chara3" -}; +static char *cupHookTbl[] = { "chara1", "chara2", "chara3" }; -static float lbl_1_data_610[2][2] = { - { 90.0f, 0.0f }, - { 0.0f, 270.0f } -}; +static float cupArrowRot[2][2] = { { 90.0f, 0.0f }, { 0.0f, 270.0f } }; -static void fn_1_543C(void) { - float var_f31; - s16 temp_r28; - s16 temp_r29; +static void CupInit(void) +{ + float rotY; + s16 mdlIdDish; + s16 mdlId; s32 i; s32 j; - char *sp10[] = { "cup1", "cup2", "cup3", "ya1" }; - s32 sp8[] = { 23, 28 }; + char *hookName[] = { "cup1", "cup2", "cup3", "ya1" }; + s32 dishMapObj[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; for (i = 0; i < 2; i++) { - temp_r28 = lbl_1_bss_6C4[sp8[i]]; - BoardModelMotionStart(temp_r28, 0, 0x40000001); - BoardModelExistDupe(temp_r28, 0); + mdlIdDish = mapObjMdlId[dishMapObj[i]]; + BoardModelMotionStart(mdlIdDish, 0, HU3D_MOTATTR_LOOP); + BoardModelExistDupe(mdlIdDish, 0); for (j = 0; j < 4; j++) { - temp_r29 = lbl_1_bss_6C4[lbl_1_data_5DC[i][j]]; - BoardModelExistDupe(temp_r29, 1); - BoardModelHookSet(temp_r28, sp10[j], temp_r29); - BoardModelMotionStart(temp_r29, 0, 0x40000001); - BoardModelRotSet(temp_r29, 0.0f, 360.0f * BoardRandFloat(), 0.0f); + mdlId = mapObjMdlId[cupMapObj[i][j]]; + BoardModelExistDupe(mdlId, 1); + BoardModelHookSet(mdlIdDish, hookName[j], mdlId); + BoardModelMotionStart(mdlId, 0, HU3D_MOTATTR_LOOP); + BoardModelRotSet(mdlId, 0.0f, 360.0f * BoardRandFloat(), 0.0f); } } - if (lbl_1_bss_0->unk01[0] != 0) { - var_f31 = 0.0f; - } else { - var_f31 = 90.0f; + if (boardWork->cupDir[0] != 0) { + rotY = 0.0f; } - BoardModelRotSet(lbl_1_bss_6C4[27], 0.0f, var_f31, 0.0f); - if (lbl_1_bss_0->unk01[1] != 0) { - var_f31 = -90.0f; - } else { - var_f31 = 0.0f; + else { + rotY = 90.0f; } - BoardModelRotSet(lbl_1_bss_6C4[32], 0.0f, var_f31, 0.0f); + BoardModelRotSet(mapObjMdlId[MAPOBJ_CUPR_ARROW], 0.0f, rotY, 0.0f); + if (boardWork->cupDir[1] != 0) { + rotY = -90.0f; + } + else { + rotY = 0.0f; + } + BoardModelRotSet(mapObjMdlId[MAPOBJ_CUPL_ARROW], 0.0f, rotY, 0.0f); } -static void fn_1_5694(s32 arg0) { - s16 temp_r29; - s16 temp_r30; +static void CupMotOnSet(s32 stopF) +{ + s16 dishMdlId; + s16 cupMdlId; s16 i; - s32 spC[] = { 23, 28 }; + s32 dishMapObj[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; - temp_r29 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; - if (arg0 != 0) { - BoardModelMotionSpeedSet(temp_r29, 1.0f); - BoardModelAttrReset(temp_r29, 0x40000002); + dishMdlId = mapObjMdlId[dishMapObj[cupSide]]; + if (stopF != 0) { + BoardModelMotionSpeedSet(dishMdlId, 1.0f); + BoardModelAttrReset(dishMdlId, HU3D_MOTATTR_PAUSE); for (i = 0; i < 3; i++) { - temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(temp_r30, 1.0f); - BoardModelAttrReset(temp_r30, 0x40000002); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, 1.0f); + BoardModelAttrReset(cupMdlId, HU3D_MOTATTR_PAUSE); } - } else { - BoardModelMotionSpeedSet(temp_r29, 0.0f); - BoardModelAttrSet(temp_r29, 0x40000002); + } + else { + BoardModelMotionSpeedSet(dishMdlId, 0.0f); + BoardModelAttrSet(dishMdlId, HU3D_MOTATTR_PAUSE); for (i = 0; i < 3; i++) { - temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(temp_r30, 0.0f); - BoardModelAttrSet(temp_r30, 0x40000002); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, 0.0f); + BoardModelAttrSet(cupMdlId, HU3D_MOTATTR_PAUSE); } } } -static void fn_1_586C(s32 arg0, s32 arg1) { - lbl_1_bss_29 = arg0; - lbl_1_bss_26 = arg1; +static void CupEvent(s32 side, s32 spaceStart) +{ + cupSide = side; + cupSpaceStart = spaceStart; BoardRollDispSet(0); - lbl_1_bss_14 = HuPrcChildCreate(fn_1_592C, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_14, fn_1_5B2C); - while (lbl_1_bss_14) { + cupProc = HuPrcChildCreate(CupMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(cupProc, CupDestroy); + while (cupProc) { HuPrcVSleep(); } BoardRollDispSet(1); } -static void fn_1_592C(void) { - s16 temp_r30; - s16 var_r28; +static void CupMain(void) +{ + s16 dishMdlId; - lbl_1_data_5D4 = -1; - lbl_1_data_5D8 = -1; + cupMoveSeNo = -1; + decaStompSeNo = -1; BoardPlayerIdleSet(GWSystem.player_curr); - if (lbl_1_bss_29 == 0) { - var_r28 = lbl_1_bss_6C4[23]; - } else { - var_r28 = lbl_1_bss_6C4[28]; + if (cupSide == 0) { + dishMdlId = mapObjMdlId[MAPOBJ_CUPR_DISH]; } - BoardCameraTargetModelSet(var_r28); + else { + dishMdlId = mapObjMdlId[MAPOBJ_CUPL_DISH]; + } + BoardCameraTargetModelSet(dishMdlId); BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); - fn_1_5D08(); - while (!fn_1_5CD0()) { + CupObjCreate(); + while (!CupObjCheck()) { HuPrcVSleep(); } - fn_1_5B40(); - fn_1_5694(1); + CupExec(); + CupMotOnSet(1); BoardCameraTargetPlayerSet(GWSystem.player_curr); BoardCameraViewSet(1); BoardCameraMotionWait(); HuPrcEnd(); } -static void fn_1_5B2C(void) { - lbl_1_bss_14 = NULL; +static void CupDestroy(void) +{ + cupProc = NULL; } -static void fn_1_5B40(void) { - s16 spC[] = { 27, 32 }; - s16 temp_r30; - s32 temp_r31; - float sp8; - float temp_f31; +static void CupExec(void) +{ + s16 cupArrowMapObj[] = { MAPOBJ_CUPR_ARROW, MAPOBJ_CUPL_ARROW }; + s16 cupArrowMdlId; + s32 cupDir; + float rotY; + float rotYNew; - temp_r31 = lbl_1_bss_0->unk01[lbl_1_bss_29]; - lbl_1_bss_0->unk01[lbl_1_bss_29] ^= 1; - temp_r30 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; - sp8 = lbl_1_data_610[lbl_1_bss_29][temp_r31]; - temp_f31 = lbl_1_data_610[lbl_1_bss_29][temp_r31 ^ 1]; + cupDir = boardWork->cupDir[cupSide]; + boardWork->cupDir[cupSide] ^= 1; + cupArrowMdlId = mapObjMdlId[cupArrowMapObj[cupSide]]; + rotY = cupArrowRot[cupSide][cupDir]; + rotYNew = cupArrowRot[cupSide][cupDir ^ 1]; HuAudFXPlay(0x403); while (TRUE) { HuPrcVSleep(); - if (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) != 0) { + if (BoardDAngleCalcRange(&rotY, rotYNew, 3.0f) != 0) { break; } - BoardModelRotSet(temp_r30, 0.0f, sp8, 0.0f); + BoardModelRotSet(cupArrowMdlId, 0.0f, rotY, 0.0f); } } -static BOOL fn_1_5CD0(void) { - return lbl_1_bss_18 ? FALSE : TRUE; +static BOOL CupObjCheck(void) +{ + return cupObj ? FALSE : TRUE; } -static void fn_1_5D08(void) { - Bss18Work *temp_r31; - float var_f30; - float var_f31; - s16 var_r28; - s16 var_r25; +static void CupObjCreate(void) +{ + CupObjWork *work; + float time; + float speed; + s16 dishMdlId; + s16 cupMdlId; s32 i; - if (lbl_1_bss_29 == 0) { - var_r28 = lbl_1_bss_6C4[23]; - } else { - var_r28 = lbl_1_bss_6C4[28]; + if (cupSide == 0) { + dishMdlId = mapObjMdlId[MAPOBJ_CUPR_DISH]; + } + else { + dishMdlId = mapObjMdlId[MAPOBJ_CUPL_DISH]; } while (TRUE) { - var_f30 = BoardModelMotionTimeGet(var_r28); - if (var_f30 >= 209.0f && var_f30 <= 211.0f) { + time = BoardModelMotionTimeGet(dishMdlId); + if (time >= 209.0f && time <= 211.0f) { break; } - if (var_f30 >= 129.0f && var_f30 <= 131.0f) { + if (time >= 129.0f && time <= 131.0f) { break; } - if (var_f30 >= 49.0f && var_f30 <= 51.0f) { + if (time >= 49.0f && time <= 51.0f) { break; } HuPrcVSleep(); } - var_f31 = 1.0f; - while (var_f31 > 0.01f) { - var_f31 *= 0.9f; - if (var_f31 <= 0.01f) { - var_f31 = 0.0f; + speed = 1.0f; + while (speed > 0.01f) { + speed *= 0.9f; + if (speed <= 0.01f) { + speed = 0.0f; } - BoardModelMotionSpeedSet(var_r28, var_f31); + BoardModelMotionSpeedSet(dishMdlId, speed); for (i = 0; i < 3; i++) { - var_r25 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(var_r25, var_f31); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, speed); } HuPrcVSleep(); } - fn_1_5694(0); - lbl_1_bss_18 = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_6098); - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_18, Bss18Work); - temp_r31->unk00_field0 = 0; - temp_r31->unk01 = 0; - temp_r31->unk02 = 0; - temp_r31->unk00_field2 = 0; - temp_r31->unk04 = var_r28; + CupMotOnSet(0); + cupObj = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, CupObjMain); + work = OM_GET_WORK_PTR(cupObj, CupObjWork); + work->killF = 0; + work->time = 0; + work->delay = 0; + work->stopF = 0; + work->dishMdlId = dishMdlId; if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { - temp_r31->unk00_field3 = 1; - } else { - temp_r31->unk00_field3 = 0; + work->decaF = TRUE; + } + else { + work->decaF = FALSE; } } -static void fn_1_6098(omObjData *arg0) { - Bss18Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss18Work); - s32 temp_r0; +static void CupObjMain(omObjData *obj) +{ + CupObjWork *work = OM_GET_WORK_PTR(obj, CupObjWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - lbl_1_bss_18 = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + if (work->killF != 0 || BoardIsKill()) { + cupObj = NULL; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (temp_r31->unk02 != 0) { - temp_r31->unk02--; + if (work->delay != 0) { + work->delay--; return; } - switch (temp_r31->unk00_field1) { + switch (work->mode) { case 0: - fn_1_6194(temp_r31, arg0); + CupObjInit(work, obj); break; case 2: - fn_1_63F0(temp_r31, arg0); + CupObjJumpWait(work, obj); break; case 3: - fn_1_6BC0(temp_r31, arg0); + CupObjStop(work, obj); break; case 1: - fn_1_6FB4(temp_r31, arg0); + CupObjRotate(work, obj); break; } } -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { - Mtx sp38; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; +static void CupObjInit(CupObjWork *work, omObjData *obj) +{ + Mtx objMtx; + Vec objPosPrev; + Vec playerPos; + Vec objRot; + Vec objPos; float temp_f31; float var_f30; s32 var_r28; s32 i; - BoardPlayerPosGet(GWSystem.player_curr, &sp20); + BoardPlayerPosGet(GWSystem.player_curr, &playerPos); var_f30 = 1000000.0f; for (i = 0; i < 3; i++) { - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[i], &sp8); - temp_f31 = VECSquareDistance(&sp8, &sp20); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[i], &objPos); + temp_f31 = VECSquareDistance(&objPos, &playerPos); if (temp_f31 < var_f30) { var_f30 = temp_f31; - lbl_1_bss_28 = i; - sp2C = sp8; + cupHookNo = i; + objPosPrev = objPos; } } - Hu3DModelObjMtxGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], sp38); - Hu3DMtxRotGet(&sp38, &sp14); - sp14.y = 180.0f; - VECSubtract(&sp2C, &sp20, &sp8); - arg1->trans.x = sp8.x / 25.0f; - arg1->trans.z = sp8.z / 25.0f; + Hu3DModelObjMtxGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], objMtx); + Hu3DMtxRotGet(&objMtx, &objRot); + objRot.y = 180.0f; + VECSubtract(&objPosPrev, &playerPos, &objPos); + obj->trans.x = objPos.x / 25.0f; + obj->trans.z = objPos.z / 25.0f; var_r28 = BoardPlayerRotYGet(GWSystem.player_curr); - arg1->trans.y = BoardDAngleCalc(sp14.y - var_r28) / 25.0f; - arg1->scale.x = sp2C.x; - arg1->scale.y = sp2C.y; - arg1->scale.z = sp2C.z; + obj->trans.y = BoardDAngleCalc(objRot.y - var_r28) / 25.0f; + obj->scale.x = objPosPrev.x; + obj->scale.y = objPosPrev.y; + obj->scale.z = objPosPrev.z; BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); - arg0->unk00_field1 = 2; - arg0->unk01 = 0; + work->mode = 2; + work->time = 0; } -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { - Vec sp10; - float temp_f29; - float var_f27; - float var_f28; +static void CupObjJumpWait(CupObjWork *work, omObjData *obj) +{ + Vec pos; + float time; + float rotY; + float scaleY; s16 var_r24; - if (arg0->unk01 >= 55) { + if (work->time >= 55) { BoardPlayerRotSet(GWSystem.player_curr, 0.0f, 0.0f, 0.0f); BoardPlayerIdleSet(GWSystem.player_curr); if (GWPlayer[GWSystem.player_curr].bowser_suit) { - BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet()); - } else { - BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGet(GWSystem.player_curr)); + BoardModelHookSet(work->dishMdlId, cupHookTbl[cupHookNo], BoardBowserSuitModelGet()); } - var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - if (arg0->unk00_field3 != 0) { + else { + BoardModelHookSet(work->dishMdlId, cupHookTbl[cupHookNo], BoardPlayerModelGet(GWSystem.player_curr)); + } + var_r24 = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + if (work->decaF != 0) { BoardModelScaleSet(var_r24, 1.0f, 0.1f, 1.0f); } - fn_1_5694(1); - lbl_1_data_5D4 = HuAudFXPlay(0x410); - arg0->unk01 = 0; - arg0->unk00_field1 = 1; + CupMotOnSet(1); + cupMoveSeNo = HuAudFXPlay(0x410); + work->time = 0; + work->mode = 1; return; } - if (arg0->unk01 == 25) { - BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + if (work->time == 25) { + BoardPlayerPosSet(GWSystem.player_curr, obj->scale.x, obj->scale.y, obj->scale.z); BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - if (arg0->unk01 < 25) { - OSu8tof32(&arg0->unk01, &temp_f29); - BoardPlayerPosGet(GWSystem.player_curr, &sp10); - sp10.x += arg1->trans.x; - sp10.z += arg1->trans.z; - sp10.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; - if (sp10.y <= arg1->scale.y) { - sp10.y = arg1->scale.y; + if (work->time < 25) { + OSu8tof32(&work->time, &time); + BoardPlayerPosGet(GWSystem.player_curr, &pos); + pos.x += obj->trans.x; + pos.z += obj->trans.z; + pos.y += 15.0f + -0.08166667f * time * time; + if (pos.y <= obj->scale.y) { + pos.y = obj->scale.y; } - var_f27 = arg1->trans.y + BoardPlayerRotYGet(GWSystem.player_curr); - BoardPlayerRotYSet(GWSystem.player_curr, var_f27); - BoardPlayerPosSetV(GWSystem.player_curr, &sp10); - if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { - if (lbl_1_data_5D8 == -1) { - lbl_1_data_5D8 = HuAudFXPlay(0x411); + rotY = obj->trans.y + BoardPlayerRotYGet(GWSystem.player_curr); + BoardPlayerRotYSet(GWSystem.player_curr, rotY); + BoardPlayerPosSetV(GWSystem.player_curr, &pos); + if (work->time > 12 && work->decaF != 0) { + if (decaStompSeNo == -1) { + decaStompSeNo = HuAudFXPlay(0x411); } - OSu8tof32(&arg0->unk01, &temp_f29); - temp_f29 -= 12.0f; - temp_f29 = 90.0f * (temp_f29 / 12.5f); - var_f28 = cosd(temp_f29); - if (var_f28 < 0.1f) { - var_f28 = 0.1f; + OSu8tof32(&work->time, &time); + time -= 12.0f; + time = 90.0f * (time / 12.5f); + scaleY = cosd(time); + if (scaleY < 0.1f) { + scaleY = 0.1f; } - var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - BoardModelScaleSet(var_r24, 1.0f, var_f28, 1.0f); + var_r24 = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + BoardModelScaleSet(var_r24, 1.0f, scaleY, 1.0f); } } - arg0->unk01++; + work->time++; } -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { - Vec sp20; - Vec sp14; - Vec sp8; +static void CupObjHookReset(CupObjWork *work, omObjData *obj) +{ + Vec endPos; + Vec startPos; + Vec diff; - BoardModelHookObjReset(arg0->unk04, lbl_1_data_604[lbl_1_bss_28]); - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp14); - BoardPlayerPosSetV(GWSystem.player_curr, &sp14); - BoardSpacePosGet(0, lbl_1_bss_24, &sp20); - VECSubtract(&sp20, &sp14, &sp8); - arg1->trans.x = sp8.x / 25.0f; - arg1->trans.z = sp8.z / 25.0f; - arg1->scale.x = sp20.x; - arg1->scale.y = sp20.y; - arg1->scale.z = sp20.z; + BoardModelHookObjReset(work->dishMdlId, cupHookTbl[cupHookNo]); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], &startPos); + BoardPlayerPosSetV(GWSystem.player_curr, &startPos); + BoardSpacePosGet(0, cupSpaceEnd, &endPos); + VECSubtract(&endPos, &startPos, &diff); + obj->trans.x = diff.x / 25.0f; + obj->trans.z = diff.z / 25.0f; + obj->scale.x = endPos.x; + obj->scale.y = endPos.y; + obj->scale.z = endPos.z; BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); - BoardPlayerRotYSet(GWSystem.player_curr, atan2d(sp8.x, sp8.z)); - arg0->unk00_field1 = 3; - arg0->unk01 = 0; + BoardPlayerRotYSet(GWSystem.player_curr, atan2d(diff.x, diff.z)); + work->mode = 3; + work->time = 0; } -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { - Vec sp14; - Vec sp8; - float var_f28; - float temp_f29; - s16 var_r27; +static void CupObjStop(CupObjWork *work, omObjData *obj) +{ + Vec pos; + Vec spacePos; + float angle; + float time; + s16 mdlId; - if (arg0->unk01 >= 55) { - BoardSpacePosGet(0, lbl_1_bss_24, &sp8); - GWPlayer[GWSystem.player_curr].space_curr = lbl_1_bss_24; - BoardPlayerPosSetV(GWSystem.player_curr, &sp8); + if (work->time >= 55) { + BoardSpacePosGet(0, cupSpaceEnd, &spacePos); + GWPlayer[GWSystem.player_curr].space_curr = cupSpaceEnd; + BoardPlayerPosSetV(GWSystem.player_curr, &spacePos); BoardPlayerIdleSet(GWSystem.player_curr); - var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - if (arg0->unk00_field3 != 0) { - BoardModelScaleSet(var_r27, 1.0f, 1.0f, 1.0f); + mdlId = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + if (work->decaF != 0) { + BoardModelScaleSet(mdlId, 1.0f, 1.0f, 1.0f); } - arg0->unk00_field0 = 1; + work->killF = 1; } - if (arg0->unk01 == 25) { - BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + if (work->time == 25) { + BoardPlayerPosSet(GWSystem.player_curr, obj->scale.x, obj->scale.y, obj->scale.z); BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - if (arg0->unk01 < 25) { - OSu8tof32(&arg0->unk01, &temp_f29); - BoardPlayerPosGet(GWSystem.player_curr, &sp14); - sp14.x += arg1->trans.x; - sp14.z += arg1->trans.z; - sp14.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; - if (sp14.y <= arg1->scale.y) { - sp14.y = arg1->scale.y; + if (work->time < 25) { + OSu8tof32(&work->time, &time); + BoardPlayerPosGet(GWSystem.player_curr, &pos); + pos.x += obj->trans.x; + pos.z += obj->trans.z; + pos.y += 15.0f + -0.08166667f * time * time; + if (pos.y <= obj->scale.y) { + pos.y = obj->scale.y; } - BoardPlayerPosSetV(GWSystem.player_curr, &sp14); - if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { - OSu8tof32(&arg0->unk01, &temp_f29); - temp_f29 -= 12.0f; - temp_f29 = 90.0f * (temp_f29 / 12.5f); - var_f28 = sind(temp_f29); - if (var_f28 < 0.1f) { - var_f28 = 0.1f; + BoardPlayerPosSetV(GWSystem.player_curr, &pos); + if (work->time > 12 && work->decaF != 0) { + OSu8tof32(&work->time, &time); + time -= 12.0f; + time = 90.0f * (time / 12.5f); + angle = sind(time); + if (angle < 0.1f) { + angle = 0.1f; } - var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - BoardModelScaleSet(var_r27, 1.0f, var_f28, 1.0f); + mdlId = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + BoardModelScaleSet(mdlId, 1.0f, angle, 1.0f); } } - arg0->unk01++; + work->time++; } -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float var_f31; - BoardSpace *temp_r29; - s16 var_r22; - u32 temp_r3; - s32 var_r24; +static void CupObjRotate(CupObjWork *work, omObjData *obj) +{ + Vec spacePos; + Vec objPos; + + float dist; + BoardSpace *space; + s16 mdlId; + u32 flag; + s32 cupDir; s32 i; - if (arg0->unk00_field2 != 0) { - arg0->unk08 *= 0.9f; - if (arg0->unk08 <= 0.01f) { - arg0->unk08 = 0.0f; - fn_1_5694(0); - if (lbl_1_data_5D4 != -1) { - HuAudFXStop(lbl_1_data_5D4); - lbl_1_data_5D4 = -1; + if (work->stopF != 0) { + work->dishSpeed *= 0.9f; + if (work->dishSpeed <= 0.01f) { + work->dishSpeed = 0.0f; + CupMotOnSet(0); + if (cupMoveSeNo != -1) { + HuAudFXStop(cupMoveSeNo); + cupMoveSeNo = -1; } - fn_1_6A14(arg0, arg1); + CupObjHookReset(work, obj); } - BoardModelMotionSpeedSet(arg0->unk04, arg0->unk08); + BoardModelMotionSpeedSet(work->dishMdlId, work->dishSpeed); for (i = 0; i < 3; i++) { - var_r22 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(var_r22, arg0->unk08); + mdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(mdlId, work->dishSpeed); } return; } - if (lbl_1_bss_29 == 0) { - var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29] ^ 1; - } else { - var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29]; + if (cupSide == 0) { + cupDir = boardWork->cupDir[cupSide] ^ 1; } - temp_r29 = BoardSpaceGet(0, lbl_1_bss_26); - lbl_1_bss_24 = -1; - for (i = 0; i < temp_r29->link_cnt; i++) { - if (temp_r29->link[i] != -1) { - temp_r3 = BoardSpaceFlagGet(0, temp_r29->link[i]); - if ((temp_r3 & 0x200) && var_r24 == 0) { - lbl_1_bss_24 = temp_r29->link[i]; + else { + cupDir = boardWork->cupDir[cupSide]; + } + space = BoardSpaceGet(0, cupSpaceStart); + cupSpaceEnd = -1; + for (i = 0; i < space->link_cnt; i++) { + if (space->link[i] != -1) { + flag = BoardSpaceFlagGet(0, space->link[i]); + if ((flag & 0x200) && cupDir == 0) { + cupSpaceEnd = space->link[i]; } - if ((temp_r3 & 0x100) && var_r24 != 0) { - lbl_1_bss_24 = temp_r29->link[i]; + if ((flag & 0x100) && cupDir != 0) { + cupSpaceEnd = space->link[i]; } } } - BoardSpacePosGet(0, lbl_1_bss_24, &sp40); - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp34); - var_f31 = BoardVecDistXZCalc(&sp40, &sp34); - if (var_f31 <= 300.0f) { - arg0->unk00_field2 = 1; - arg0->unk08 = 1.0f; + BoardSpacePosGet(0, cupSpaceEnd, &spacePos); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], &objPos); + dist = BoardVecDistXZCalc(&spacePos, &objPos); + if (dist <= 300.0f) { + work->stopF = TRUE; + work->dishSpeed = 1.0f; } } -static void fn_1_7528(s32 arg0, s32 arg1) { - Vec sp30; - Vec sp24; - Vec sp18; - float temp_f31; - float temp_f30; - s16 sp14[] = { 23, 28 }; +static void CupLandEvent(s32 playerNo, s32 spaceId) +{ + Vec spacePos; + Vec cupRPos; + Vec cupLPos; + float cupRDist; + float cupLDist; + s16 sp14[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; BoardPlayerIdleSet(GWSystem.player_curr); - BoardSpacePosGet(0, arg1, &sp30); - BoardModelPosGet(lbl_1_bss_6C4[23], &sp24); - BoardModelPosGet(lbl_1_bss_6C4[28], &sp18); - temp_f31 = VECDistance(&sp24, &sp30); - temp_f30 = VECDistance(&sp18, &sp30); - if (temp_f31 < temp_f30) { - lbl_1_bss_29 = 0; - } else { - lbl_1_bss_29 = 1; + BoardSpacePosGet(0, spaceId, &spacePos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_CUPR_DISH], &cupRPos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_CUPL_DISH], &cupLPos); + cupRDist = VECDistance(&cupRPos, &spacePos); + cupLDist = VECDistance(&cupLPos, &spacePos); + if (cupRDist < cupLDist) { + cupSide = 0; } - BoardCameraTargetModelSet(lbl_1_bss_6C4[sp14[lbl_1_bss_29]]); + else { + cupSide = 1; + } + BoardCameraTargetModelSet(mapObjMdlId[sp14[cupSide]]); BoardCameraMotionWait(); HuPrcSleep(42); - fn_1_5B40(); + CupExec(); BoardCameraTargetPlayerSet(GWSystem.player_curr); BoardCameraMotionWait(); HuPrcSleep(12); } -static void fn_1_77EC(s32 arg0, s32 arg1) { - lbl_1_bss_6B4 = arg0; - lbl_1_bss_6B0 = 0; - lbl_1_bss_8 = HuPrcChildCreate(fn_1_7894, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); - while (lbl_1_bss_8) { +static void CoasterLandEvent(s32 playerNo, s32 spaceId) +{ + eventPlayer = playerNo; + coasterType = 0; + coasterProc = HuPrcChildCreate(CoasterLandMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(coasterProc, CoasterDestroy); + while (coasterProc) { HuPrcVSleep(); } } -static void fn_1_7894(void) { - lbl_1_bss_6B1 = 1; +static void CoasterLandMain(void) +{ + coasterLandF = 1; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } - fn_1_7A64(); - fn_1_45F4(); + CoasterLandExec(); + CoasterExit(); HuPrcEnd(); } -static void fn_1_7A64(void) { - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float var_f30; - s16 var_r20; - s32 temp_r19; - s32 var_r28; +static void CoasterLandExec(void) +{ + Vec spacePos; + float motSpeed; + s16 spaceId; + s32 seNo; + s32 endF; - var_r28 = 0; - lbl_1_bss_674 = lbl_1_bss_670 = 0.18f; - lbl_1_bss_640 = 0.0f; - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.y = 0.0f; - lbl_1_bss_660.z = 0.0f; + endF = 0; + coasterAccel = coasterSpeed = 0.18f; + coasterTime = 0.0f; + coasterRot.x = 0.0f; + coasterRot.y = 0.0f; + coasterRot.z = 0.0f; lbl_1_bss_6A8 = 0.0f; - lbl_1_bss_6B3 = 0; - lbl_1_bss_624.x = 0.0f; - lbl_1_bss_624.z = 0.0f; - lbl_1_bss_624.y = 1.0f; - lbl_1_bss_66C = 0.04f; + coasterLoopF = 0; + coasterCameraUp.x = 0.0f; + coasterCameraUp.z = 0.0f; + coasterCameraUp.y = 1.0f; + coasterCamSpeed = 0.04f; BoardSpaceAttrSet(0, 1); - fn_1_97F4(); - BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp34); - var_r20 = BoardSpaceFlagSearch(1, 0x1000); - } else { - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp34); - var_r20 = BoardSpaceFlagSearch(1, 0x2000); + CoasterEffCreate(); + BoardModelMotionStart(coasterPathMdlId, 0, 0); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x2000, &spacePos); + spaceId = BoardSpaceFlagSearch(1, 0x1000); } - lbl_1_bss_654 = sp34; - BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); - fn_1_3350(); - lbl_1_bss_648 = lbl_1_bss_654; - lbl_1_bss_618 = lbl_1_bss_654; - lbl_1_bss_630 = lbl_1_bss_654; - fn_1_852C(); - BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); + else { + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x1000, &spacePos); + spaceId = BoardSpaceFlagSearch(1, 0x2000); + } + coasterPos = spacePos; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_COASTER], NULL, NULL, 2400.0f, -1.0f, 2); + MTXRotRad(coasterMtx, 'y', MTXDegToRad(coasterBaseRotY)); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, 0.0f, 0.0f); + CoasterPathMotUpdate(); + coasterPosOld = coasterPos; + coasterCameraTarget = coasterPos; + coasterCameraPos = coasterPos; + CoasterPlayerManCreate(); + BoardModelMotionSpeedSet(coasterPathMdlId, coasterSpeed); BoardCameraMotionWait(); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_6B0 = 1; - temp_r19 = HuAudFXPlay(0x412); + coasterType = 1; + seNo = HuAudFXPlay(0x412); while (TRUE) { - fn_1_1990(); - fn_1_3350(); - fn_1_276C(); - BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f30 = -lbl_1_bss_670; - } else { - var_f30 = lbl_1_bss_670; + CoasterPathUpdate(); + CoasterPathMotUpdate(); + CoasterRotUpdate(); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterPos); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + if (boardWork->hostSide == 0) { + motSpeed = -coasterSpeed; } - BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f30); - if (lbl_1_bss_0->unk00_field0 == 0) { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 20.0f && var_r28 == 0) { + else { + motSpeed = coasterSpeed; + } + BoardModelMotionSpeedSet(coasterPathMdlId, motSpeed); + if (boardWork->hostSide == 0) { + if (BoardModelMotionTimeGet(coasterPathMdlId) <= 20.0f && endF == 0) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - var_r28 = 1; - } - } else { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) { - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - var_r28 = 1; + endF = 1; } } - if (var_r28 != 0 && WipeStatGet() == 0) { + else { + if (BoardModelMotionTimeGet(coasterPathMdlId) >= coasterMaxTime - 20.0f && endF == 0) { + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + endF = 1; + } + } + if (endF != 0 && WipeStatGet() == 0) { break; } HuPrcVSleep(); } - HuAudFXStop(temp_r19); - fn_1_98EC(); - fn_1_87AC(); - while (lbl_1_bss_C) { + HuAudFXStop(seNo); + CoasterEffKill(); + CoasterPlayerManKill(); + while (coasterPlayerManObj) { HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.z = 0.0f; - lbl_1_bss_660.y = -lbl_1_bss_63C; - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardSpacePosGet(1, var_r20, &sp34); - BoardModelPosSetV(lbl_1_bss_6C4[0], &sp34); + MTXIdentity(coasterMtx); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + coasterRot.x = 0.0f; + coasterRot.z = 0.0f; + coasterRot.y = -coasterBaseRotY; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardSpacePosGet(1, spaceId, &spacePos); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &spacePos); BoardSpaceAttrReset(0, 1); BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraTargetPlayerSet(eventPlayer); BoardCameraViewSet(1); BoardCameraMotionWait(); - lbl_1_bss_6B2 = 1; + coasterDoneF = 1; } -static s8 lbl_1_data_633 = -1; +static s8 coasterChasePlayer = -1; -static void fn_1_852C(void) { - BssCWork *temp_r30; - BssCData *temp_r31; - Vec spC; - float temp_f31; - s16 sp8; - s16 var_r28; +static void CoasterPlayerManCreate(void) +{ + CoasterPlayerManWork *work; + CoasterPlayerWork *workPlayer; + Vec playerPos; + float motTime; + s16 charNo; + s16 spaceId; s16 i; - u32 var_r27; + u32 spaceFlag; - lbl_1_bss_C = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_87E0); - temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork); - temp_r30->unk00_field0 = 0; - temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(BssCData), MEMORY_DEFAULT_NUM); - memset(temp_r30->unk04, 0, 4 * sizeof(BssCData)); - lbl_1_data_633 = -1; - lbl_1_bss_1C = 0; - for (temp_r30->unk01 = i = 0; i < 4; i++) { - temp_r31 = &temp_r30->unk04[temp_r30->unk01]; - var_r28 = GWPlayer[i].space_curr; - sp8 = GWPlayer[i].character; - var_r27 = BoardSpaceFlagGet(0, var_r28); - if (!(var_r27 & 1)) { - temp_r31->unk00 = -1; + coasterPlayerManObj = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, CoasterPlayerManUpdate); + work = OM_GET_WORK_PTR(coasterPlayerManObj, CoasterPlayerManWork); + work->killF = 0; + work->player = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(CoasterPlayerWork), MEMORY_DEFAULT_NUM); + memset(work->player, 0, 4 * sizeof(CoasterPlayerWork)); + coasterChasePlayer = -1; + coasterPlayerChaseNum = 0; + for (work->playerNum = i = 0; i < 4; i++) { + workPlayer = &work->player[work->playerNum]; + spaceId = GWPlayer[i].space_curr; + charNo = GWPlayer[i].character; + spaceFlag = BoardSpaceFlagGet(0, spaceId); + if (!(spaceFlag & 1)) { + workPlayer->mode = -1; continue; } - temp_r31->unk00 = 0; - temp_r31->unk01 = i; - temp_r31->unk02 = 0; - BoardPlayerPosGet(temp_r31->unk01, &spC); - temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); - temp_f31 = BoardModelMotionMaxTimeGet(temp_r31->unk04); - BoardModelVisibilitySet(temp_r31->unk04, 0); - fn_1_95F4(temp_r31); - BoardModelMotionStart(temp_r31->unk04, 0, 0); - BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f); - if (lbl_1_bss_0->unk00_field0 == 0) { - temp_r31->unk08 = -0.18f; - BoardModelMotionTimeSet(temp_r31->unk04, temp_f31); - } else { - temp_r31->unk08 = 0.18f; - BoardModelMotionTimeSet(temp_r31->unk04, 0.0f); + workPlayer->mode = 0; + workPlayer->playerNo = i; + workPlayer->delay = 0; + BoardPlayerPosGet(workPlayer->playerNo, &playerPos); + workPlayer->pathMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + motTime = BoardModelMotionMaxTimeGet(workPlayer->pathMdlId); + BoardModelVisibilitySet(workPlayer->pathMdlId, 0); + CoasterPlayerTimeInit(workPlayer); + BoardModelMotionStart(workPlayer->pathMdlId, 0, 0); + BoardModelMotionSpeedSet(workPlayer->pathMdlId, 0.0f); + if (boardWork->hostSide == 0) { + workPlayer->speed = -0.18f; + BoardModelMotionTimeSet(workPlayer->pathMdlId, motTime); } - fn_1_932C(temp_r31); - temp_r30->unk01++; + else { + workPlayer->speed = 0.18f; + BoardModelMotionTimeSet(workPlayer->pathMdlId, 0.0f); + } + CoasterPlayerEndSet(workPlayer); + work->playerNum++; } BoardCameraMoveSet(1); - BoardCameraTargetModelSet(lbl_1_bss_6C4[0]); + BoardCameraTargetModelSet(mapObjMdlId[MAPOBJ_COASTER]); } -static void fn_1_87AC(void) { - if (lbl_1_bss_C) { - OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork)->unk00_field0 = 1; +static void CoasterPlayerManKill(void) +{ + if (coasterPlayerManObj) { + OM_GET_WORK_PTR(coasterPlayerManObj, CoasterPlayerManWork)->killF = 1; } } -static void fn_1_87E0(omObjData *arg0) { - BssCWork *temp_r30 = OM_GET_WORK_PTR(arg0, BssCWork); - BssCData *temp_r31; +static void CoasterPlayerManUpdate(omObjData *obj) +{ + CoasterPlayerManWork *work = OM_GET_WORK_PTR(obj, CoasterPlayerManWork); + CoasterPlayerWork *workPlayer; s32 i; - if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { - for (i = 0; i < temp_r30->unk01; i++) { - temp_r31 = &temp_r30->unk04[i]; + if (work->killF != 0 || BoardIsKill()) { + for (i = 0; i < work->playerNum; i++) { + workPlayer = &work->player[i]; } - HuMemDirectFree(temp_r30->unk04); - lbl_1_bss_C = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + HuMemDirectFree(work->player); + coasterPlayerManObj = NULL; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (lbl_1_bss_6B0 == 0) { + if (coasterType == 0) { return; } - for (i = 0; i < temp_r30->unk01; i++) { - temp_r31 = &temp_r30->unk04[i]; - if (temp_r31->unk02 != 0) { - temp_r31->unk02--; - } else { - switch (temp_r31->unk00) { + for (i = 0; i < work->playerNum; i++) { + workPlayer = &work->player[i]; + if (workPlayer->delay != 0) { + workPlayer->delay--; + } + else { + switch (workPlayer->mode) { case 0: - fn_1_8988(temp_r31, arg0); + CoasterPlayerWait(workPlayer, obj); break; case 1: - fn_1_8A50(temp_r31, arg0); + CoasterPlayerChaseBegin(workPlayer, obj); break; case 2: - fn_1_8B6C(temp_r31, arg0); + CoasterPlayerChasePathSet(workPlayer, obj); break; case 3: - fn_1_8DDC(temp_r31, arg0); + CoasterPlayerChase(workPlayer, obj); break; case 4: - fn_1_918C(temp_r31, arg0); + CoasterPlayerStop(workPlayer, obj); break; case 5: - fn_1_927C(temp_r31, arg0); + CoasterPlayerEnd(workPlayer, obj); break; } } } } -static void fn_1_8988(BssCData *arg0, omObjData *arg1) { - Vec sp20; - Vec sp14; - Vec sp8; +static void CoasterPlayerWait(CoasterPlayerWork *work, omObjData *obj) +{ + Vec mdlCoasterPos; + Vec playerPos; + Vec dir; - if (arg0->unk10 - lbl_1_bss_640 > 900.0f) { + if (work->time - coasterTime > 900.0f) { return; } - BoardModelPosGet(*lbl_1_bss_6C4, &sp20); - BoardPlayerPosGet(arg0->unk01, &sp14); - VECSubtract(&sp20, &sp14, &sp8); - BoardPlayerRotYSet(arg0->unk01, atan2d(sp8.x, sp8.z)); - arg0->unk00 = 1; + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + BoardPlayerPosGet(work->playerNo, &playerPos); + VECSubtract(&mdlCoasterPos, &playerPos, &dir); + BoardPlayerRotYSet(work->playerNo, atan2d(dir.x, dir.z)); + work->mode = 1; } -static s32 lbl_1_data_634[8] = { - 0x00000123, - 0x00000163, - 0x000001A3, - 0x000001E3, - 0x00000223, - 0x00000263, - 0x000002A3, - 0x000002E3 -}; +static s32 coasterChaseSe[8] = { 0x00000123, 0x00000163, 0x000001A3, 0x000001E3, 0x00000223, 0x00000263, 0x000002A3, 0x000002E3 }; -static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { - if (lbl_1_data_633 == -1) { - BoardCameraTargetPlayerSet(arg0->unk01); - lbl_1_data_633 = arg0->unk01; +static void CoasterPlayerChaseBegin(CoasterPlayerWork *work, omObjData *obj) +{ + if (coasterChasePlayer == -1) { + BoardCameraTargetPlayerSet(work->playerNo); + coasterChasePlayer = work->playerNo; } - HuAudFXPlay(lbl_1_data_634[GWPlayer[arg0->unk01].character]); - BoardPlayerMotionStart(arg0->unk01, 9, 0); - BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); - arg0->unk02 = lbl_1_bss_1C * 3 + 9; - arg0->unk00 = 2; - lbl_1_bss_1C++; - omVibrate(arg0->unk01, 12, 4, 2); + HuAudFXPlay(coasterChaseSe[GWPlayer[work->playerNo].character]); + BoardPlayerMotionStart(work->playerNo, 9, 0); + BoardPlayerMotionSpeedSet(work->playerNo, 2.0f); + work->delay = coasterPlayerChaseNum * 3 + 9; + work->mode = 2; + coasterPlayerChaseNum++; + omVibrate(work->playerNo, 12, 4, 2); } -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { - ModelData *temp_r29; - HsfObject *var_r30; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - s16 var_r28; +static void CoasterPlayerChasePathSet(CoasterPlayerWork *work, omObjData *obj) +{ + ModelData *modelP; + HsfObject *modelObj; + Vec mdlCoasterPos; + Vec dir; + Vec objPos; + float motTime; + float time; + s16 modelId; - BoardPlayerPosGet(arg0->unk01, &arg0->unk14); - BoardModelPosGet(lbl_1_bss_6C4[0], &sp20); - VECSubtract(&sp20, &arg0->unk14, &sp14); - BoardPlayerRotYSet(arg0->unk01, -atan2d(sp14.x, sp14.z)); - BoardPlayerMotionStart(arg0->unk01, 3, 0x40000001); - BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6AE); - var_r28 = BoardModelIDGet(lbl_1_bss_6AE); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp8.x = var_r30->data.curr.pos.x; - sp8.y = var_r30->data.curr.pos.y; - sp8.z = var_r30->data.curr.pos.z; - var_f31 = lbl_1_bss_640; + BoardPlayerPosGet(work->playerNo, &work->pos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + VECSubtract(&mdlCoasterPos, &work->pos, &dir); + BoardPlayerRotYSet(work->playerNo, -atan2d(dir.x, dir.z)); + BoardPlayerMotionStart(work->playerNo, 3, HU3D_MOTATTR_LOOP); + BoardPlayerMotionSpeedSet(work->playerNo, 2.0f); + motTime = BoardModelMotionTimeGet(coasterPathMdlId); + modelId = BoardModelIDGet(coasterPathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + time = coasterTime; while (TRUE) { - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp14.x = sp8.x - var_r30->data.curr.pos.x; - sp14.y = sp8.y - var_r30->data.curr.pos.y; - sp14.z = sp8.z - var_r30->data.curr.pos.z; - var_f31 += VECMag(&sp14); - if (var_f31 >= arg0->unk10) { + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + dir.x = objPos.x - modelObj->data.curr.pos.x; + dir.y = objPos.y - modelObj->data.curr.pos.y; + dir.z = objPos.z - modelObj->data.curr.pos.z; + time += VECMag(&dir); + if (time >= work->time) { break; } - sp8.x = var_r30->data.curr.pos.x; - sp8.y = var_r30->data.curr.pos.y; - sp8.z = var_r30->data.curr.pos.z; - temp_r29->unk_64 += arg0->unk08; + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + modelP->unk_64 += work->speed; } - BoardModelMotionStart(arg0->unk04, 0, 0); - BoardModelMotionTimeSet(arg0->unk04, temp_r29->unk_64); - BoardModelMotionSpeedSet(arg0->unk04, temp_r29->unk_68); - arg0->unk00 = 3; - BoardModelMotionTimeSet(lbl_1_bss_6AE, temp_f30); + BoardModelMotionStart(work->pathMdlId, 0, 0); + BoardModelMotionTimeSet(work->pathMdlId, modelP->unk_64); + BoardModelMotionSpeedSet(work->pathMdlId, modelP->unk_68); + work->mode = 3; + BoardModelMotionTimeSet(coasterPathMdlId, motTime); } -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { - ModelData *temp_r29; - HsfObject *var_r30; - Vec *var_r27; - Vec *var_r26; - Vec sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - Mtx sp54; - s16 var_r28; +static void CoasterPlayerChase(CoasterPlayerWork *work, omObjData *obj) +{ + ModelData *modelP; + HsfObject *modelObj; + Vec *pos; + Vec *target; + Vec up; + Vec rot; + Vec objPos; + Vec diff; + Vec railPos; + Vec spacePos; + Mtx matrix; + s16 modelId; - var_r28 = BoardModelIDGet(arg0->unk04); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp30.x = var_r30->data.curr.pos.x; - sp30.y = var_r30->data.curr.pos.y; - sp30.z = var_r30->data.curr.pos.z; - VECSubtract(&sp30, &arg0->unk14, &sp24); - if (fn_1_94A8(arg0) != 0) { - BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); - VECSubtract(&sp18, &sp30, &sp48); - VECNormalize(&sp48, &sp48); - var_r27 = &arg0->unk14; - var_r26 = &sp30; - BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); - PSMTXTranspose(sp54, arg0->unk20); - } else { - if (sp24.z != 0.0f || sp24.x != 0.0f) { - sp3C.y = atan2d(sp24.x, sp24.z); - sp3C.x = -atan2d(sp24.y, VECMagXZ(&sp24)); - } else { - sp3C.x = sp3C.y = 0.0f; + modelId = BoardModelIDGet(work->pathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + VECSubtract(&objPos, &work->pos, &diff); + if (CoasterPlayerLoopCheck(work) != 0) { + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &railPos); + VECSubtract(&railPos, &objPos, &up); + VECNormalize(&up, &up); + pos = &work->pos; + target = &objPos; + BoardMTXCalcLookAt(matrix, target, &up, pos); + MTXTranspose(matrix, work->matrix); + } + else { + if (diff.z != 0.0f || diff.x != 0.0f) { + rot.y = atan2d(diff.x, diff.z); + rot.x = -atan2d(diff.y, VECMagXZ(&diff)); } - PSMTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); - PSMTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); - PSMTXConcat(arg0->unk20, sp54, arg0->unk20); + else { + rot.x = rot.y = 0.0f; + } + MTXRotRad(matrix, 'x', MTXDegToRad(rot.x)); + MTXRotRad(work->matrix, 'y', MTXDegToRad(rot.y)); + MTXConcat(work->matrix, matrix, work->matrix); } - BoardPlayerPosSetV(arg0->unk01, &sp30); - BoardPlayerRotSet(arg0->unk01, 0.0f, 0.0f, 0.0f); - BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); - arg0->unk14 = sp30; - BoardSpacePosGet(0, arg0->unk06, &spC); - if (BoardVecMaxDistXZCheck(&spC, &sp30, 200.0f)) { - arg0->unk00 = 4; + BoardPlayerPosSetV(work->playerNo, &objPos); + BoardPlayerRotSet(work->playerNo, 0.0f, 0.0f, 0.0f); + BoardPlayerMtxSet(work->playerNo, &work->matrix); + work->pos = objPos; + BoardSpacePosGet(0, work->endSpace, &spacePos); + if (BoardVecMaxDistXZCheck(&spacePos, &objPos, 200.0f)) { + work->mode = 4; } } -static void fn_1_918C(BssCData *arg0, omObjData *arg1) { - Vec sp20; - Vec sp14; - Vec sp8; - s32 var_r30; +static void CoasterPlayerStop(CoasterPlayerWork *work, omObjData *obj) +{ + Vec spacePos; + Vec playerPos; + Vec dir; + s32 spaceEnd; - PSMTXIdentity(arg0->unk20); - var_r30 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); - BoardSpacePosGet(0, var_r30, &sp20); - BoardPlayerPosGet(arg0->unk01, &sp14); - BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); - VECSubtract(&sp20, &sp14, &sp8); - BoardPlayerRotYSet(arg0->unk01, atan2d(-sp8.z, -sp8.x)); - BoardPlayerPosLerpStart(arg0->unk01, &sp14, &sp20, 20); - arg0->unk00 = 5; + MTXIdentity(work->matrix); + spaceEnd = BoardSpaceLinkFlagSearch(0, work->endSpace, 0x40); + BoardSpacePosGet(0, spaceEnd, &spacePos); + BoardPlayerPosGet(work->playerNo, &playerPos); + BoardPlayerMtxSet(work->playerNo, &work->matrix); + VECSubtract(&spacePos, &playerPos, &dir); + BoardPlayerRotYSet(work->playerNo, atan2d(-dir.z, -dir.x)); + BoardPlayerPosLerpStart(work->playerNo, &playerPos, &spacePos, 20); + work->mode = 5; } -static void fn_1_927C(BssCData *arg0, omObjData *arg1) { - s32 temp_r3; +static void CoasterPlayerEnd(CoasterPlayerWork *work, omObjData *obj) +{ + s32 spaceEnd; - if (!GWPlayer[arg0->unk01].moving) { - BoardPlayerIdleSet(arg0->unk01); - temp_r3 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); - GWPlayer[arg0->unk01].space_curr = temp_r3; - arg0->unk00 = -1; - BoardPlayerMoveAwayStartCurr(temp_r3, 0); + if (!GWPlayer[work->playerNo].moving) { + BoardPlayerIdleSet(work->playerNo); + spaceEnd = BoardSpaceLinkFlagSearch(0, work->endSpace, 0x40); + GWPlayer[work->playerNo].space_curr = spaceEnd; + work->mode = -1; + BoardPlayerMoveAwayStartCurr(spaceEnd, 0); } } -static void fn_1_932C(BssCData *arg0) { - BoardSpace *temp_r30; - BoardSpace *var_r26; - Vec sp20[2]; - Vec sp14; - float spC[2]; - s16 sp8[2]; - s32 var_r29; - s32 var_r28; +static void CoasterPlayerEndSet(CoasterPlayerWork *work) +{ + BoardSpace *space; + BoardSpace *linkSpace; + Vec spacePos[2]; + Vec beginPos; + float spaceDist[2]; + s16 spaceId[2]; + s32 j; + s32 no; s32 i; - for (var_r28 = i = 0; i < BoardSpaceCountGet(0); i++) { - temp_r30 = BoardSpaceGet(0, i + 1); - for (var_r29 = 0; var_r29 < temp_r30->link_cnt; var_r29++) { - var_r26 = BoardSpaceGet(0, temp_r30->link[var_r29]); - if (var_r26->flag & 0x40) { - sp8[var_r28] = i + 1; - BoardSpacePosGet(0, temp_r30->link[var_r29], &sp20[var_r28]); - var_r28++; + for (no = i = 0; i < BoardSpaceCountGet(0); i++) { + space = BoardSpaceGet(0, i + 1); + for (j = 0; j < space->link_cnt; j++) { + linkSpace = BoardSpaceGet(0, space->link[j]); + if (linkSpace->flag & 0x40) { + spaceId[no] = i + 1; + BoardSpacePosGet(0, space->link[j], &spacePos[no]); + no++; } } - if (var_r28 >= 2) { + if (no >= 2) { break; } } - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardSpaceFlagPosGet(0, 0x1000, &sp14); - } else { - BoardSpaceFlagPosGet(0, 0x2000, &sp14); + if (boardWork->hostSide == 0) { + BoardSpaceFlagPosGet(0, 0x1000, &beginPos); + } + else { + BoardSpaceFlagPosGet(0, 0x2000, &beginPos); } for (i = 0; i < 2; i++) { - spC[i] = VECSquareDistance(&sp14, &sp20[i]); + spaceDist[i] = VECSquareDistance(&beginPos, &spacePos[i]); } - if (spC[0] < spC[1]) { - arg0->unk06 = sp8[0]; - } else { - arg0->unk06 = sp8[1]; + if (spaceDist[0] < spaceDist[1]) { + work->endSpace = spaceId[0]; + } + else { + work->endSpace = spaceId[1]; } } -static s32 fn_1_94A8(BssCData *arg0) { - Vec sp14; - s16 spC[4]; +static s32 CoasterPlayerLoopCheck(CoasterPlayerWork *arg0) +{ + Vec playerPos; + s16 linkTbl[4]; float sp8; - s32 var_r30; - s32 var_r29; - s32 var_r26; - BoardSpace *var_r31; - BoardSpace *var_r27; - BoardSpace *var_r28; + s32 spaceId; + s32 spaceIdLink; + s32 spaceIdPrev; + BoardSpace *space; + BoardSpace *spaceLink; + BoardSpace *spacePrev; - BoardPlayerPosGet(arg0->unk01, &sp14); - var_r28 = NULL; - var_r26 = -1; - var_r30 = lbl_1_bss_6AC; + BoardPlayerPosGet(arg0->playerNo, &playerPos); + spacePrev = NULL; + spaceIdPrev = -1; + spaceId = coasterStartSpace; sp8 = 0.0f; while (TRUE) { - var_r31 = BoardSpaceGet(1, var_r30); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_r29 = var_r31->link[0]; - } else { - BoardSpaceLinkTargetListGet(1, var_r30, spC); - var_r29 = spC[0]; + space = BoardSpaceGet(1, spaceId); + if (boardWork->hostSide == 0) { + spaceIdLink = space->link[0]; } - var_r27 = BoardSpaceGet(1, var_r29); - if (!var_r27) { - var_r27 = var_r31; + else { + BoardSpaceLinkTargetListGet(1, spaceId, linkTbl); + spaceIdLink = linkTbl[0]; + } + spaceLink = BoardSpaceGet(1, spaceIdLink); + if (!spaceLink) { + spaceLink = space; break; } - if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 200.0f)) { - if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 100.0f)) { + if (BoardVecMaxDistXZCheck(&space->pos, &playerPos, 200.0f)) { + if (BoardVecMaxDistXZCheck(&space->pos, &playerPos, 100.0f)) { break; } - if (var_r28) { - var_r31 = var_r28; + if (spacePrev) { + space = spacePrev; break; - } else { - var_r28 = var_r31; + } + else { + spacePrev = space; } } - var_r26 = var_r30; - var_r30 = var_r29; + spaceIdPrev = spaceId; + spaceId = spaceIdLink; } - if (var_r31->flag & 8) { + if (space->flag & 8) { return 1; - } else { + } + else { return 0; } } -static void fn_1_95F4(BssCData *arg0) { - HsfObject *var_r30; - ModelData *temp_r29; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - s16 var_r28; +static void CoasterPlayerTimeInit(CoasterPlayerWork *work) +{ + HsfObject *modelObj; + ModelData *modelP; + Vec pos; + Vec prevPos; + Vec playerPos; + Vec diff; + float maxTime; + float time; + s16 modelId; - temp_f30 = BoardModelMotionMaxTimeGet(arg0->unk04); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(arg0->unk04, temp_f30); - BoardModelMotionSpeedSet(arg0->unk04, -0.18f); - } else { - BoardModelMotionTimeSet(arg0->unk04, 0.0f); - BoardModelMotionSpeedSet(arg0->unk04, 0.18f); + maxTime = BoardModelMotionMaxTimeGet(work->pathMdlId); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(work->pathMdlId, maxTime); + BoardModelMotionSpeedSet(work->pathMdlId, -0.18f); } - BoardPlayerPosGet(arg0->unk01, &sp14); - var_r28 = BoardModelIDGet(arg0->unk04); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp20.x = var_r30->data.curr.pos.x; - sp20.y = var_r30->data.curr.pos.y; - sp20.z = var_r30->data.curr.pos.z; - var_f31 = 0.0f; + else { + BoardModelMotionTimeSet(work->pathMdlId, 0.0f); + BoardModelMotionSpeedSet(work->pathMdlId, 0.18f); + } + BoardPlayerPosGet(work->playerNo, &playerPos); + modelId = BoardModelIDGet(work->pathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + prevPos.x = modelObj->data.curr.pos.x; + prevPos.y = modelObj->data.curr.pos.y; + prevPos.z = modelObj->data.curr.pos.z; + time = 0.0f; while (TRUE) { - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp2C.x = var_r30->data.curr.pos.x; - sp2C.y = var_r30->data.curr.pos.y; - sp2C.z = var_r30->data.curr.pos.z; - VECSubtract(&sp2C, &sp20, &sp8); - var_f31 += VECMag(&sp8); - if (BoardVecMinDistCheck(&sp14, &sp2C, 150.0f)) { + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + pos.x = modelObj->data.curr.pos.x; + pos.y = modelObj->data.curr.pos.y; + pos.z = modelObj->data.curr.pos.z; + VECSubtract(&pos, &prevPos, &diff); + time += VECMag(&diff); + if (BoardVecMinDistCheck(&playerPos, &pos, 150.0f)) { break; } - sp20 = sp2C; - temp_r29->unk_64 += temp_r29->unk_68; + prevPos = pos; + modelP->unk_64 += modelP->unk_68; } - arg0->unk10 = var_f31; + work->time = time; } -static void fn_1_97F4(void) { - Bss20Work *temp_r30; - Bss20Data *var_r31; +static void CoasterEffCreate(void) +{ + CoasterEffWork *work; + CoasterEffData *data; s32 i; - if (lbl_1_bss_20) { + if (coasterEffObj) { return; } - lbl_1_bss_20 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_9920); - temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); - temp_r30->unk00_field0 = 0; - temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(Bss20Data), MEMORY_DEFAULT_NUM); - var_r31 = temp_r30->unk04; - for (i = 0; i < 20; var_r31++, i++) { - var_r31->unk00 = -1; - var_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 7), NULL, 0); - BoardModelVisibilitySet(var_r31->unk02, 0); + coasterEffObj = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, CoasterEffUpdate); + work = OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork); + work->killF = 0; + work->data = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(CoasterEffData), MEMORY_DEFAULT_NUM); + data = work->data; + for (i = 0; i < 20; data++, i++) { + data->time = -1; + data->mdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 7), NULL, 0); + BoardModelVisibilitySet(data->mdlId, 0); } } -static void fn_1_98EC(void) { - if (lbl_1_bss_20) { - OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work)->unk00_field0 = 1; +static void CoasterEffKill(void) +{ + if (coasterEffObj) { + OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork)->killF = TRUE; } } -static void fn_1_9920(omObjData *arg0) { - Bss20Work *temp_r31; +static void CoasterEffUpdate(omObjData *obj) +{ + CoasterEffWork *work; s32 i; - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + work = OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork); + if (work->killF != 0 || BoardIsKill()) { for (i = 0; i < 20; i++) { - BoardModelKill(temp_r31->unk04[i].unk02); + BoardModelKill(work->data[i].mdlId); } - HuMemDirectFree(temp_r31->unk04); - lbl_1_bss_20 = 0; - omDelObjEx(HuPrcCurrentGet(), arg0); + HuMemDirectFree(work->data); + coasterEffObj = 0; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (lbl_1_bss_640 < 10.0f) { + if (coasterTime < 10.0f) { return; } - if (temp_r31->unk01 != 0) { - temp_r31->unk01--; - } else { - temp_r31->unk01 = 2; - fn_1_9A24(temp_r31); + if (work->delay != 0) { + work->delay--; } - fn_1_9BBC(temp_r31); + else { + work->delay = 2; + CoasterEffAdd(work); + } + CoasterEffModelUpdate(work); } -static void fn_1_9A24(Bss20Work *arg0) { - Bss20Data *temp_r31; - Mtx sp8; +static void CoasterEffAdd(CoasterEffWork *work) +{ + CoasterEffData *data; + Mtx matrix; s32 i; s32 j; - if (lbl_1_bss_6B1 != 0) { - PSMTXTrans(sp8, 0.0f, 50.0f, -100.0f); - } else { - PSMTXTrans(sp8, 0.0f, 70.0f, -100.0f); + if (coasterLandF != 0) { + MTXTrans(matrix, 0.0f, 50.0f, -100.0f); } - PSMTXConcat(lbl_1_bss_678, sp8, sp8); + else { + MTXTrans(matrix, 0.0f, 70.0f, -100.0f); + } + MTXConcat(coasterMtx, matrix, matrix); for (i = 0; i < 4; i++) { for (j = 0; j < 20; j++) { - temp_r31 = &arg0->unk04[j]; - if (temp_r31->unk00 == -1) { - temp_r31->unk00 = 10; - Hu3DMtxTransGet(sp8, &temp_r31->unk08); - VECAdd(&lbl_1_bss_654, &temp_r31->unk08, &temp_r31->unk08); - temp_r31->unk14.x = 0.0f; - temp_r31->unk14.y = 0.0f; - temp_r31->unk14.z = 0.001f; - temp_r31->unk04 = 1.0f; - BoardModelVisibilitySet(temp_r31->unk02, 1); - BoardModelLayerSet(temp_r31->unk02, 2); - BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); + data = &work->data[j]; + if (data->time == -1) { + data->time = 10; + Hu3DMtxTransGet(matrix, &data->pos); + VECAdd(&coasterPos, &data->pos, &data->pos); + data->vel.x = 0.0f; + data->vel.y = 0.0f; + data->vel.z = 0.001f; + data->scale = 1.0f; + BoardModelVisibilitySet(data->mdlId, 1); + BoardModelLayerSet(data->mdlId, 2); + BoardModelPosSetV(data->mdlId, &data->pos); break; } } } } -static void fn_1_9BBC(Bss20Work *arg0) { - Bss20Data *temp_r31; +static void CoasterEffModelUpdate(CoasterEffWork *work) +{ + CoasterEffData *data; s32 i; for (i = 0; i < 20; i++) { - temp_r31 = &arg0->unk04[i]; - if (temp_r31->unk00 == -1) { + data = &work->data[i]; + if (data->time == -1) { continue; } - temp_r31->unk00--; - if (temp_r31->unk00 == 0) { - temp_r31->unk00 = -1; - BoardModelVisibilitySet(temp_r31->unk02, 0); - } else { - if (temp_r31->unk00 <= 3) { - temp_r31->unk04 = sind(30.0f * temp_r31->unk00); + data->time--; + if (data->time == 0) { + data->time = -1; + BoardModelVisibilitySet(data->mdlId, 0); + } + else { + if (data->time <= 3) { + data->scale = sind(30.0f * data->time); } - VECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08); - BoardModelMtxSet(temp_r31->unk02, &lbl_1_bss_678); - BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); - BoardModelScaleSet(temp_r31->unk02, temp_r31->unk04, temp_r31->unk04, temp_r31->unk04); + VECAdd(&data->pos, &data->vel, &data->pos); + BoardModelMtxSet(data->mdlId, &coasterMtx); + BoardModelPosSetV(data->mdlId, &data->pos); + BoardModelScaleSet(data->mdlId, data->scale, data->scale, data->scale); } } } + +static void CoasterHostComKeySet(s32 playerNo) +{ + s32 starPos; + s32 yesF; + + starPos = GWSystem.star_pos; + yesF = 0; + if (boardWork->hostSide != 0) { + if (starPos == 0 || starPos == 1 || starPos == 7) { + yesF = 0; + } + else { + yesF = 1; + } + } + else if (starPos == 0 || starPos == 1 || starPos == 7) { + yesF = 1; + } + else { + yesF = 0; + } + if (BoardPlayerCoinsGet(playerNo) < 5) { + yesF = 0; + } + if (yesF != 0) { + BoardComKeySetLeft(); + } + else { + BoardComKeySetRight(); + } +} \ No newline at end of file diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index 6a7c12b8..f07a4b3b 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -25,102 +25,98 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ Vec unk00; - /* 0x0C */ float unk0C; -} Data690InnerStruct; // Size 0x10 + /* 0x00 */ Vec pos; + /* 0x0C */ float len; +} SpaceAmidaPathPoint; // Size 0x10 -typedef Data690InnerStruct Data690Block[15]; +typedef SpaceAmidaPathPoint SpaceAmidaMap[15]; typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; - /* 0x04 */ Vec unk04; - /* 0x10 */ Vec unk10; - /* 0x1C */ u16 unk1C; - /* 0x1E */ char unk1E[2]; - /* 0x20 */ float unk20; - /* 0x24 */ u16 unk24; - /* 0x26 */ s16 unk26; - /* 0x28 */ s16 unk28; - /* 0x2A */ char unk2A[2]; -} Bss720Data; // Size 0x2C + /* 0x04 */ Vec rocketPos; + /* 0x10 */ Vec jumpDir; + /* 0x1C */ u16 waitTime; + /* 0x20 */ float jumpTime; + /* 0x24 */ u16 comDelay; + /* 0x26 */ s16 comChoice; + /* 0x28 */ s16 comInputTimer; +} SpaceAmidaGameWork; // Size 0x2C typedef struct { /* 0x00 */ char unk00[4]; - /* 0x04 */ Data690Block *unk04; - /* 0x08 */ u16 unk08; - /* 0x0A */ char unk0A[2]; - /* 0x0C */ float unk0C; - /* 0x10 */ float unk10; - /* 0x14 */ float unk14; - /* 0x18 */ float unk18; - /* 0x1C */ float unk1C; - /* 0x20 */ Vec unk20; - /* 0x2C */ Vec unk2C; - /* 0x38 */ float unk38; + /* 0x04 */ SpaceAmidaMap *map; + /* 0x08 */ u16 mapCursor; + /* 0x0C */ float len; + /* 0x10 */ float speed; + /* 0x14 */ float maxSpeed; + /* 0x18 */ float rocketXOfs; + /* 0x1C */ float kemuriSize; + /* 0x20 */ Vec kemuriScale; + /* 0x2C */ Vec kemuriScaleVel; + /* 0x38 */ float kemuriTPLvl; /* 0x3C */ float unk3C; - /* 0x40 */ s16 unk40; - /* 0x42 */ char unk42[2]; -} Bss714Data; // Size 0x44 + /* 0x40 */ s16 targetNo; +} RocketWork; // Size 0x44 -static void fn_1_A4B8(omObjData *arg0); -static void fn_1_A554(void); -static void fn_1_A5FC(void); -static void fn_1_A6E0(omObjData *arg0); -static float fn_1_B018(Data690Block *arg0); -static void fn_1_B088(omObjData *arg0); -static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2); -static void fn_1_B3B8(omObjData *arg0); -static void fn_1_B478(omObjData *arg0); -static void fn_1_BAF8(omObjData *arg0); -static void fn_1_BCDC(omObjData *arg0); -static void fn_1_BF00(omObjData *arg0); -static void fn_1_BF68(omObjData *arg0); -static void fn_1_C000(void); -static void fn_1_C0FC(omObjData *arg0); -static void fn_1_C25C(void); -static void fn_1_C844(void); -static void fn_1_C894(omObjData *arg0); -static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2); -static float fn_1_C998(Vec *arg0); -static u32 fn_1_CB44(Vec *arg0, float arg1); -static void fn_1_CEC4(void); -static void fn_1_D034(void); -static void fn_1_D07C(omObjData *arg0); -static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix); +static void SpaceAmidaMainUpdate(omObjData *obj); +static void SpaceAmidaStop(void); +static void SpaceAmidaKill(void); +static void SpaceAmidaRocketObjUpdate(omObjData *obj); +static float SpaceAmidaMapLenGet(SpaceAmidaMap *obj); +static void SpaceAmidaComChoiceSet(omObjData *obj); +static void SpaceAmidaComInputGet(omObjData *obj, u16 *stkBtn, u16 *btn); +static void SpaceAmidaGameOpen(omObjData *obj); +static void SpaceAmidaGameUpdate(omObjData *obj); +static void SpaceAmidaRocketJump(omObjData *obj); +static void SpaceAmidaRocketKemuriExec(omObjData *obj); +static void SpaceAmidaRocketWait(omObjData *obj); +static void SpaceAmidaRocketUp(omObjData *obj); +static void SpaceAmidaCoinWin(void); +static void SpaceAmidaJumpDown(omObjData *obj); +static void SpaceAmidaCoinRainMain(void); +static void SpaceAmidaReturnWinMain(void); +static void SpaceAmidaGameStop(omObjData *obj); +static void SpaceAmidaDirGet(Vec *a, Vec *b, Vec *result); +static float SpaceAmidaAngleGet(Vec *dir); +static u32 SpaceAmidaPlayerRotAdd(Vec *rocketPos, float delta); +static void SpaceAmidaEffCreate(void); +static void SpaceAmidaEffKill(void); +static void SpaceAmidaEffUpdate(omObjData *arg0); +static void SpaceAmidaEffParticleHook(ModelData *model, ParticleData *particle, Mtx matrix); -static s32 lbl_1_bss_79C; -static s32 lbl_1_bss_798; -static s16 lbl_1_bss_796; -static s16 lbl_1_bss_790[3]; -static s16 lbl_1_bss_78A[3]; -static s16 lbl_1_bss_788; -static s16 lbl_1_bss_760[20]; -static Process *lbl_1_bss_75C; -static omObjData *lbl_1_bss_758; -static float lbl_1_bss_754; -static s16 lbl_1_bss_750; -static s32 lbl_1_bss_74C; -static s32 lbl_1_bss_748; -static s16 lbl_1_bss_744; -static Vec lbl_1_bss_738; -static s32 lbl_1_bss_734; -static s32 lbl_1_bss_730; -static s32 lbl_1_bss_72C; -static u16 lbl_1_bss_72A; -static u16 lbl_1_bss_728; -static s32 lbl_1_bss_724; -static omObjData *lbl_1_bss_720; -static omObjData *lbl_1_bss_714[3]; -static omObjData *lbl_1_bss_710; -static AnimData *lbl_1_bss_70C; -static s16 lbl_1_bss_708; +static s32 spaceAmidaPadNo; +static s32 spaceAmidaPlayerNo; +static s16 spaceAmidaMdlId; +static s16 mapMdlId[3]; +static s16 rocketMdlId[3]; +static s16 spaceAmidaEffMdlId; +static s16 coinMdlId[20]; +static Process *coinWinProc; +static omObjData *spaceAmidaMainObj; +static float spaceAmidaTime; +static s16 kemuriMdlId; +static s32 timerSec; +static s32 timerFrame; +static s16 timerSeqId; +static Vec spaceAmidaPos; +static s32 spaceAmidaMapNo; +static s32 spaceAmidaPath; +static s32 rocketWarpF; +static u16 spaceAmidaStopF; +static u16 spaceAmidaCoinNum; +static s32 spaceAmidaSeNo; +static omObjData *spaceAmidaGameObj; +static omObjData *rocketObj[3]; +static omObjData *spaceAmidaEffObj; +static AnimData *spaceAmidaEffAnim; +static s16 spaceAmidaSeqStopF; -static Vec lbl_1_data_658[3] = { { -50.0f, 238.0f, 0.0f }, { 0.0f, 275.5f, 0.0f }, { 50.0f, 238.0f, 0.0f } }; +static Vec effPosTbl[3] = { { -50.0f, 238.0f, 0.0f }, { 0.0f, 275.5f, 0.0f }, { 50.0f, 238.0f, 0.0f } }; -static u16 lbl_1_data_67C[3][3] = { { 10, 5, 20 }, { 10, 5, 20 }, { 5, 20, 10 } }; +static u16 spaceAmidaCoinNumTbl[3][3] = { { 10, 5, 20 }, { 10, 5, 20 }, { 5, 20, 10 } }; -static Data690Block lbl_1_data_690[3] +static SpaceAmidaMap spaceAmidaMap1[3] = { { { { -50.0f, -12.0f, 0.0f }, 75.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, { { 0.0f, 63.0f, 0.0f }, 25.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, { { 50.0f, 88.0f, 0.0f }, 87.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, @@ -130,7 +126,7 @@ static Data690Block lbl_1_data_690[3] { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_960[3] +static SpaceAmidaMap spaceAmidaMap2[3] = { { { { -50.0f, -12.0f, 0.0f }, 125.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { 0.0f, 113.0f, 0.0f }, 25.0f }, { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { 50.0f, 138.0f, 0.0f }, 37.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 75.0f }, @@ -140,7 +136,7 @@ static Data690Block lbl_1_data_960[3] { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_C30[3] +static SpaceAmidaMap spaceAmidaMap3[3] = { { { { -50.0f, -12.0f, 0.0f }, 100.0f }, { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 37.5f }, { { -50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 100.0f }, @@ -149,911 +145,867 @@ static Data690Block lbl_1_data_C30[3] { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 25.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 50.0f, 163.0f, 0.0f }, 12.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } } }; -void fn_1_9D00(s32 arg0) +void SpaceAmidaExec(void) { - s32 temp_r31; - s32 var_r30; - - temp_r31 = GWSystem.star_pos; - var_r30 = 0; - if (lbl_1_bss_0->unk00_field0 != 0) { - if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { - var_r30 = 0; - } - else { - var_r30 = 1; - } - } - else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { - var_r30 = 1; - } - else { - var_r30 = 0; - } - if (BoardPlayerCoinsGet(arg0) < 5) { - var_r30 = 0; - } - if (var_r30 != 0) { - BoardComKeySetLeft(); - } - else { - BoardComKeySetRight(); - } -} - -void fn_1_9DD8(void) -{ - Vec sp2C[3]; - Vec sp20; - Vec sp14; - Vec sp8; - Bss720Data *temp_r30; - Bss714Data *temp_r29; + Vec rocketMdlOfs[3]; + Vec pos; + Vec rocketPos; + Vec scale; + SpaceAmidaGameWork *gameObjWork; + RocketWork *rocketWork; s32 i; - lbl_1_bss_79C = GWPlayer[GWSystem.player_curr].port; - lbl_1_bss_796 = lbl_1_bss_6C4[6]; - lbl_1_bss_790[0] = lbl_1_bss_6C4[7]; - lbl_1_bss_790[1] = lbl_1_bss_6C4[8]; - lbl_1_bss_790[2] = lbl_1_bss_6C4[9]; - lbl_1_bss_78A[0] = lbl_1_bss_6C4[10]; - lbl_1_bss_78A[1] = lbl_1_bss_6C4[11]; - lbl_1_bss_78A[2] = lbl_1_bss_6C4[12]; - BoardModelVisibilitySet(lbl_1_bss_790[0], 0); - BoardModelVisibilitySet(lbl_1_bss_790[1], 0); - BoardModelVisibilitySet(lbl_1_bss_790[2], 0); - lbl_1_bss_734 = rand8() % 3; - BoardModelVisibilitySet(lbl_1_bss_790[lbl_1_bss_734], 1); - BoardModelMotionStart(lbl_1_bss_790[lbl_1_bss_734], 0, 0x40000001); - BoardModelPosGet(lbl_1_bss_796, &sp20); - sp8.x = sp8.y = sp8.z = 1.0f; + spaceAmidaPadNo = GWPlayer[GWSystem.player_curr].port; + spaceAmidaMdlId = mapObjMdlId[MAPOBJ_SPACEAMIDA]; + mapMdlId[0] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP1]; + mapMdlId[1] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP2]; + mapMdlId[2] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP3]; + rocketMdlId[0] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET1]; + rocketMdlId[1] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET2]; + rocketMdlId[2] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET3]; + BoardModelVisibilitySet(mapMdlId[0], 0); + BoardModelVisibilitySet(mapMdlId[1], 0); + BoardModelVisibilitySet(mapMdlId[2], 0); + spaceAmidaMapNo = rand8() % 3; + BoardModelVisibilitySet(mapMdlId[spaceAmidaMapNo], 1); + BoardModelMotionStart(mapMdlId[spaceAmidaMapNo], 0, HU3D_MOTATTR_LOOP); + BoardModelPosGet(spaceAmidaMdlId, &pos); + scale.x = scale.y = scale.z = 1.0f; for (i = 0; i < 3; i++) { - sp2C[i] = lbl_1_data_690[i][0].unk00; - sp2C[i].y -= -12.0f; - BoardModelPosSet(lbl_1_bss_78A[i], sp20.x + sp2C[i].x, sp20.y + sp2C[i].y, sp20.z + 30.0f); - BoardModelVisibilitySet(lbl_1_bss_78A[i], 1); - BoardModelScaleSetV(lbl_1_bss_78A[i], &sp8); + rocketMdlOfs[i] = spaceAmidaMap1[i][0].pos; + rocketMdlOfs[i].y -= -12.0f; + BoardModelPosSet(rocketMdlId[i], pos.x + rocketMdlOfs[i].x, pos.y + rocketMdlOfs[i].y, pos.z + 30.0f); + BoardModelVisibilitySet(rocketMdlId[i], 1); + BoardModelScaleSetV(rocketMdlId[i], &scale); } - lbl_1_bss_798 = GWSystem.player_curr; - BoardModelPosGet(lbl_1_bss_796, &lbl_1_bss_738); - lbl_1_bss_730 = 1; - BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp14); - BoardPlayerPosGet(lbl_1_bss_798, &sp20); - lbl_1_bss_758 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A4B8); - lbl_1_bss_720 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3B8); - lbl_1_bss_720->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss720Data), MEMORY_DEFAULT_NUM); - temp_r30 = lbl_1_bss_720->data; - temp_r30->unk02 = 0; - temp_r30->unk04 = sp14; - temp_r30->unk28 = 0; - fn_1_CB44(&sp14, 0.0f); - fn_1_B088(lbl_1_bss_720); - lbl_1_bss_750 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); - Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); + spaceAmidaPlayerNo = GWSystem.player_curr; + BoardModelPosGet(spaceAmidaMdlId, &spaceAmidaPos); + spaceAmidaPath = 1; + BoardModelPosGet(rocketMdlId[spaceAmidaPath], &rocketPos); + BoardPlayerPosGet(spaceAmidaPlayerNo, &pos); + spaceAmidaMainObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaMainUpdate); + spaceAmidaGameObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaGameOpen); + spaceAmidaGameObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(SpaceAmidaGameWork), MEMORY_DEFAULT_NUM); + gameObjWork = spaceAmidaGameObj->data; + gameObjWork->unk02 = 0; + gameObjWork->rocketPos = rocketPos; + gameObjWork->comInputTimer = 0; + SpaceAmidaPlayerRotAdd(&rocketPos, 0.0f); + SpaceAmidaComChoiceSet(spaceAmidaGameObj); + kemuriMdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); + Hu3DModelAttrSet(kemuriMdlId, HU3D_ATTR_DISPOFF); for (i = 0; i < 3; i++) { - lbl_1_bss_714[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A6E0); - lbl_1_bss_714[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss714Data), MEMORY_DEFAULT_NUM); - lbl_1_bss_714[i]->work[0] = lbl_1_bss_78A[i]; - lbl_1_bss_714[i]->work[1] = 0; - lbl_1_bss_714[i]->work[3] = 0; - temp_r29 = lbl_1_bss_714[i]->data; - if (i == lbl_1_bss_730) { - lbl_1_bss_714[i]->work[2] = 1; + rocketObj[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaRocketObjUpdate); + rocketObj[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RocketWork), MEMORY_DEFAULT_NUM); + rocketObj[i]->work[0] = rocketMdlId[i]; + rocketObj[i]->work[1] = 0; + rocketObj[i]->work[3] = 0; + rocketWork = rocketObj[i]->data; + if (i == spaceAmidaPath) { + rocketObj[i]->work[2] = 1; } else { - lbl_1_bss_714[i]->work[2] = 0; + rocketObj[i]->work[2] = 0; } - temp_r29->unk18 = 1.0f; - temp_r29->unk1C = 0.0f; + rocketWork->rocketXOfs = 1.0f; + rocketWork->kemuriSize = 0.0f; } - lbl_1_bss_72C = 0; - lbl_1_bss_74C = 5; - lbl_1_bss_748 = 0x3C; - lbl_1_bss_72A = 0; - fn_1_CEC4(); - lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); - BoardModelMotionUpdateSet(lbl_1_bss_788, 1); - BoardModelVisibilitySet(lbl_1_bss_788, 0); + rocketWarpF = 0; + timerSec = 5; + timerFrame = REFRESH_RATE; + spaceAmidaStopF = 0; + SpaceAmidaEffCreate(); + spaceAmidaEffMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); + BoardModelMotionUpdateSet(spaceAmidaEffMdlId, 1); + BoardModelVisibilitySet(spaceAmidaEffMdlId, 0); for (i = 0; i < 20; i++) { - lbl_1_bss_760[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); - BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + coinMdlId[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + BoardModelVisibilitySet(coinMdlId[i], 0); } } -static void fn_1_A4B8(omObjData *arg0) +static void SpaceAmidaMainUpdate(omObjData *obj) { - if (lbl_1_bss_72A == 0) { + if (spaceAmidaStopF == 0) { return; } if (BoardMGDoneFlagGet() == 1) { - if (lbl_1_bss_754 <= 0.0f) { - fn_1_A5FC(); - omDelObjEx(HuPrcCurrentGet(), arg0); + if (spaceAmidaTime <= 0.0f) { + SpaceAmidaKill(); + omDelObjEx(HuPrcCurrentGet(), obj); } } - lbl_1_bss_754 -= 1.0f; + spaceAmidaTime -= 1.0f; } -static void fn_1_A554(void) +static void SpaceAmidaStop(void) { - float temp_f1; + float time; - lbl_1_bss_72A = 1; + spaceAmidaStopF = 1; BoardMGExit(); - temp_f1 = BoardModelMotionTimeGet(lbl_1_bss_796); - lbl_1_bss_754 = temp_f1; - BoardModelMotionStart(lbl_1_bss_796, 0, 0); - BoardModelMotionTimeSet(lbl_1_bss_796, temp_f1); - BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); + time = BoardModelMotionTimeGet(spaceAmidaMdlId); + spaceAmidaTime = time; + BoardModelMotionStart(spaceAmidaMdlId, 0, 0); + BoardModelMotionTimeSet(spaceAmidaMdlId, time); + BoardModelMotionSpeedSet(spaceAmidaMdlId, -1.0f); } -static void fn_1_A5FC(void) +static void SpaceAmidaKill(void) { s32 i; for (i = 0; i < 3; i++) { - BoardModelVisibilitySet(lbl_1_bss_790[i], 0); - BoardModelVisibilitySet(lbl_1_bss_78A[i], 0); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_714[i]); + BoardModelVisibilitySet(mapMdlId[i], 0); + BoardModelVisibilitySet(rocketMdlId[i], 0); + omDelObjEx(HuPrcCurrentGet(), rocketObj[i]); } for (i = 0; i < 20; i++) { - BoardModelKill(lbl_1_bss_760[i]); + BoardModelKill(coinMdlId[i]); } - fn_1_D034(); - BoardModelKill(lbl_1_bss_788); + SpaceAmidaEffKill(); + BoardModelKill(spaceAmidaEffMdlId); BoardMGDoneFlagSet(0); - Hu3DModelKill(lbl_1_bss_750); + Hu3DModelKill(kemuriMdlId); } -static void fn_1_A6E0(omObjData *arg0) +static void SpaceAmidaRocketObjUpdate(omObjData *obj) { - Bss714Data *temp_r31; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; + RocketWork *work; + Vec scale; + Vec pos; + Vec rocketPos; + Vec dir; + float len; - temp_r31 = arg0->data; - BoardModelScaleGet(arg0->work[0], &sp2C); - switch (arg0->work[2]) { + work = obj->data; + BoardModelScaleGet(obj->work[0], &scale); + switch (obj->work[2]) { case 1: - if ((sp2C.x += 0.08f) >= 1.5f) { - sp2C.x = 1.5f; - sp2C.y = 1.5f; - if (arg0->work[3] == 1) { - arg0->work[2] = 0; + if ((scale.x += 0.08f) >= 1.5f) { + scale.x = 1.5f; + scale.y = 1.5f; + if (obj->work[3] == 1) { + obj->work[2] = 0; } else { - arg0->work[2] = 2; + obj->work[2] = 2; } } else { - sp2C.y += 0.08f; + scale.y += 0.08f; } - BoardModelScaleSetV(arg0->work[0], &sp2C); + BoardModelScaleSetV(obj->work[0], &scale); break; case 2: - if ((sp2C.x -= 0.08f) <= 1.0f) { - sp2C.x = 1.0f; - sp2C.y = 1.0f; - if (arg0->work[1] == 1) { - arg0->work[2] = 0; - arg0->work[1] = 0; + if ((scale.x -= 0.08f) <= 1.0f) { + scale.x = 1.0f; + scale.y = 1.0f; + if (obj->work[1] == 1) { + obj->work[2] = 0; + obj->work[1] = 0; } else { - arg0->work[2] = 1; + obj->work[2] = 1; } } else { - sp2C.y -= 0.08f; + scale.y -= 0.08f; } - BoardModelScaleSetV(arg0->work[0], &sp2C); + BoardModelScaleSetV(obj->work[0], &scale); break; case 3: - switch (lbl_1_bss_734) { + switch (spaceAmidaMapNo) { case 0: - temp_r31->unk04 = &lbl_1_data_690[lbl_1_bss_730]; + work->map = &spaceAmidaMap1[spaceAmidaPath]; break; case 1: - temp_r31->unk04 = &lbl_1_data_960[lbl_1_bss_730]; + work->map = &spaceAmidaMap2[spaceAmidaPath]; break; case 2: - temp_r31->unk04 = &lbl_1_data_C30[lbl_1_bss_730]; + work->map = &spaceAmidaMap3[spaceAmidaPath]; break; } - BoardModelPosGet(arg0->work[0], &sp14); - sp14.x = lbl_1_bss_738.x + ((*temp_r31->unk04)[0].unk00.x + temp_r31->unk18); - temp_r31->unk18 = -temp_r31->unk18; - BoardModelPosSetV(arg0->work[0], &sp14); - sp14.y += 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); - temp_r31->unk1C += 0.022222223f; - temp_r31->unk38 -= 0.011111111f; - if (temp_r31->unk38 < 0.0f) { - temp_r31->unk38 = 0.0f; + BoardModelPosGet(obj->work[0], &rocketPos); + rocketPos.x = spaceAmidaPos.x + ((*work->map)[0].pos.x + work->rocketXOfs); + work->rocketXOfs = -work->rocketXOfs; + BoardModelPosSetV(obj->work[0], &rocketPos); + rocketPos.y += 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &rocketPos); + work->kemuriSize += 0.022222223f; + work->kemuriTPLvl -= 0.011111111f; + if (work->kemuriTPLvl < 0.0f) { + work->kemuriTPLvl = 0.0f; } - Hu3DModelTPLvlSet(lbl_1_bss_750, temp_r31->unk38); - if (temp_r31->unk1C > 1.0f) { - temp_r31->unk1C = 1.0f; + Hu3DModelTPLvlSet(kemuriMdlId, work->kemuriTPLvl); + if (work->kemuriSize > 1.0f) { + work->kemuriSize = 1.0f; } - VECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); - if (temp_r31->unk20.y >= 4.0f) { - temp_r31->unk20.y = 4.0f; - temp_r31->unk2C.y = -0.1f; + VECAdd(&work->kemuriScale, &work->kemuriScaleVel, &work->kemuriScale); + if (work->kemuriScale.y >= 4.0f) { + work->kemuriScale.y = 4.0f; + work->kemuriScaleVel.y = -0.1f; } - if (temp_r31->unk20.y < 1.0f) { - temp_r31->unk20.y = 1.0f; + if (work->kemuriScale.y < 1.0f) { + work->kemuriScale.y = 1.0f; } - Hu3DModelScaleSet(lbl_1_bss_750, temp_r31->unk20.x, temp_r31->unk20.y, temp_r31->unk20.z); + Hu3DModelScaleSet(kemuriMdlId, work->kemuriScale.x, work->kemuriScale.y, work->kemuriScale.z); break; case 4: - Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); - arg0->work[2] = 5; - temp_r31->unk08 = 0; - temp_r31->unk0C = 12.0f; - temp_r31->unk14 = (fn_1_B018(temp_r31->unk04) - temp_r31->unk0C) / 90.0f; - temp_r31->unk10 = temp_r31->unk14 / 20.0f; + Hu3DModelAttrSet(kemuriMdlId, HU3D_ATTR_DISPOFF); + obj->work[2] = 5; + work->mapCursor = 0; + work->len = 12.0f; + work->maxSpeed = (SpaceAmidaMapLenGet(work->map) - work->len) / 90.0f; + work->speed = work->maxSpeed / 20.0f; HuAudFXPlay(0x406); HuAudFXPlay(0x407); - HuAudFXStop(lbl_1_bss_724); + HuAudFXStop(spaceAmidaSeNo); break; case 5: - var_f31 = temp_r31->unk0C + temp_r31->unk10; - temp_r31->unk0C = var_f31; - temp_r31->unk10 *= 1.04f; - if (temp_r31->unk10 > temp_r31->unk14) { - temp_r31->unk10 = temp_r31->unk14; + len = work->len + work->speed; + work->len = len; + work->speed *= 1.04f; + if (work->speed > work->maxSpeed) { + work->speed = work->maxSpeed; } - BoardModelPosGet(arg0->work[0], &sp20); - while (var_f31 >= (*temp_r31->unk04)[temp_r31->unk08].unk0C) { - var_f31 -= (*temp_r31->unk04)[temp_r31->unk08].unk0C; - temp_r31->unk08++; - if ((*temp_r31->unk04)[temp_r31->unk08].unk0C == 0.0f) { - omVibrate(lbl_1_bss_798, 12, 6, 6); - var_f31 = 0.0f; - lbl_1_bss_72C = 1; - lbl_1_bss_724 = HuAudFXPlay(0x332); - lbl_1_bss_708 = 0; - arg0->work[2] = 6; - if (sp20.x - lbl_1_bss_738.x < -25.0f) { - temp_r31->unk40 = 0; - lbl_1_bss_728 = 5; + BoardModelPosGet(obj->work[0], &pos); + while (len >= (*work->map)[work->mapCursor].len) { + len -= (*work->map)[work->mapCursor].len; + work->mapCursor++; + if ((*work->map)[work->mapCursor].len == 0.0f) { + omVibrate(spaceAmidaPlayerNo, 12, 6, 6); + len = 0.0f; + rocketWarpF = 1; + spaceAmidaSeNo = HuAudFXPlay(0x332); + spaceAmidaSeqStopF = 0; + obj->work[2] = 6; + if (pos.x - spaceAmidaPos.x < -25.0f) { + work->targetNo = 0; + spaceAmidaCoinNum = 5; } - else if (sp20.x - lbl_1_bss_738.x > 25.0f) { - temp_r31->unk40 = 2; - lbl_1_bss_728 = 10; + else if (pos.x - spaceAmidaPos.x > 25.0f) { + work->targetNo = 2; + spaceAmidaCoinNum = 10; } else { - temp_r31->unk40 = 1; - lbl_1_bss_728 = 20; + work->targetNo = 1; + spaceAmidaCoinNum = 20; } break; } } - temp_r31->unk0C = var_f31; - sp14.x = sp14.y = sp14.z = 0.0f; - if (lbl_1_bss_72C == 0) { - fn_1_C94C(&(*temp_r31->unk04)[temp_r31->unk08].unk00, &(*temp_r31->unk04)[temp_r31->unk08 + 1].unk00, &sp8); - sp20.x = lbl_1_bss_738.x + (sp8.x * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.x); - sp20.y = lbl_1_bss_738.y + (sp8.y * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.y); + work->len = len; + rocketPos.x = rocketPos.y = rocketPos.z = 0.0f; + if (rocketWarpF == 0) { + SpaceAmidaDirGet(&(*work->map)[work->mapCursor].pos, &(*work->map)[work->mapCursor + 1].pos, &dir); + pos.x = spaceAmidaPos.x + (dir.x * len + (*work->map)[work->mapCursor].pos.x); + pos.y = spaceAmidaPos.y + (dir.y * len + (*work->map)[work->mapCursor].pos.y); } else { - sp20.x = lbl_1_bss_738.x + (*temp_r31->unk04)[temp_r31->unk08].unk00.x; - sp20.y = lbl_1_bss_738.y + (*temp_r31->unk04)[temp_r31->unk08].unk00.y; + pos.x = spaceAmidaPos.x + (*work->map)[work->mapCursor].pos.x; + pos.y = spaceAmidaPos.y + (*work->map)[work->mapCursor].pos.y; } - BoardModelPosSetV(arg0->work[0], &sp20); - sp20.y += 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp20); - BoardModelRotSetV(arg0->work[0], &sp14); - BoardPlayerRotSetV(lbl_1_bss_798, &sp14); + BoardModelPosSetV(obj->work[0], &pos); + pos.y += 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &pos); + BoardModelRotSetV(obj->work[0], &rocketPos); + BoardPlayerRotSetV(spaceAmidaPlayerNo, &rocketPos); break; case 6: - if (lbl_1_bss_708 == 0 && (HuAudFXStatusGet(lbl_1_bss_724) == 1 || HuAudFXStatusGet(lbl_1_bss_724) == 0)) { + if (spaceAmidaSeqStopF == 0 && (HuAudFXStatusGet(spaceAmidaSeNo) == 1 || HuAudFXStatusGet(spaceAmidaSeNo) == 0)) { BoardAudSeqPause(0, 0, 1000); - lbl_1_bss_708 = 1; + spaceAmidaSeqStopF = 1; } - BoardModelVisibilitySet(lbl_1_bss_788, 1); - sp20.x = lbl_1_bss_738.x + lbl_1_data_658[temp_r31->unk40].x; - sp20.y = lbl_1_bss_738.y + lbl_1_data_658[temp_r31->unk40].y; - sp20.z = lbl_1_bss_738.z + lbl_1_data_658[temp_r31->unk40].z; - BoardModelPosSetV(lbl_1_bss_788, &sp20); - temp_r31->unk1C -= 0.05f; - if (temp_r31->unk1C <= 0.0f) { - temp_r31->unk1C = 0.0f; + BoardModelVisibilitySet(spaceAmidaEffMdlId, 1); + pos.x = spaceAmidaPos.x + effPosTbl[work->targetNo].x; + pos.y = spaceAmidaPos.y + effPosTbl[work->targetNo].y; + pos.z = spaceAmidaPos.z + effPosTbl[work->targetNo].z; + BoardModelPosSetV(spaceAmidaEffMdlId, &pos); + work->kemuriSize -= 0.05f; + if (work->kemuriSize <= 0.0f) { + work->kemuriSize = 0.0f; } break; } } -static float fn_1_B018(Data690Block *arg0) +static float SpaceAmidaMapLenGet(SpaceAmidaMap *arg0) { - float var_f31; + float len; s32 i; - var_f31 = 0.0f; + len = 0.0f; i = 0; while (TRUE) { - if ((*arg0)[i].unk0C == 0.0f) { + if ((*arg0)[i].len == 0.0f) { break; } - var_f31 += (*arg0)[i].unk0C; + len += (*arg0)[i].len; i++; } - return var_f31; + return len; } -static void fn_1_B088(omObjData *arg0) +static void SpaceAmidaComChoiceSet(omObjData *obj) { - Bss720Data *temp_r31; - u16 sp8[] = { 20, 60, 120, 190 }; + SpaceAmidaGameWork *work; + u16 chance[] = { 20, 60, 120, 190 }; s32 i; - temp_r31 = arg0->data; - if (rand8() < sp8[GWPlayerCfg[lbl_1_bss_798].diff]) { + work = obj->data; + if (rand8() < chance[GWPlayerCfg[spaceAmidaPlayerNo].diff]) { for (i = 0; i < 3; i++) { - if (lbl_1_data_67C[lbl_1_bss_734][i] == 20) { - temp_r31->unk26 = i; + if (spaceAmidaCoinNumTbl[spaceAmidaMapNo][i] == 20) { + work->comChoice = i; } } } else { - temp_r31->unk26 = rand8() % 3; + work->comChoice = rand8() % 3; } - temp_r31->unk24 = rand8() % 20 + 20; + work->comDelay = rand8() % 20 + 20; } -static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) +static void SpaceAmidaComInputGet(omObjData *obj, u16 *stkBtn, u16 *btn) { - Bss720Data *temp_r31; + SpaceAmidaGameWork *work; - temp_r31 = arg0->data; - *arg1 = *arg2 = 0; - if (temp_r31->unk24 != 0) { - temp_r31->unk24--; + work = obj->data; + *stkBtn = *btn = 0; + if (work->comDelay != 0) { + work->comDelay--; return; } - if (temp_r31->unk28 >= 4 || (rand8() & 1)) { - if (temp_r31->unk26 == lbl_1_bss_730) { - *arg2 |= 0x100; + if (work->comInputTimer >= 4 || (rand8() & 1)) { + if (work->comChoice == spaceAmidaPath) { + *btn |= PAD_BUTTON_A; } - else if (temp_r31->unk26 < lbl_1_bss_730) { - *arg1 |= 1; + else if (work->comChoice < spaceAmidaPath) { + *stkBtn |= PAD_BUTTON_LEFT; } else { - *arg1 |= 2; + *stkBtn |= PAD_BUTTON_RIGHT; } - temp_r31->unk24 = rand8() % 10 + 10; + work->comDelay = rand8() % 10 + 10; } else { - temp_r31->unk28++; - temp_r31->unk24 = rand8() % 10 + 20; - if (lbl_1_bss_730 == 0) { - *arg1 |= 2; + work->comInputTimer++; + work->comDelay = rand8() % 10 + 20; + if (spaceAmidaPath == 0) { + *stkBtn |= PAD_BUTTON_RIGHT; } - else if (lbl_1_bss_730 == 2) { - *arg1 |= 1; + else if (spaceAmidaPath == 2) { + *stkBtn |= PAD_BUTTON_LEFT; } else if (rand8() & 1) { - *arg1 |= 1; + *stkBtn |= PAD_BUTTON_LEFT; } else { - *arg1 |= 2; + *stkBtn |= PAD_BUTTON_RIGHT; } } } -static void fn_1_B3B8(omObjData *arg0) +static void SpaceAmidaGameOpen(omObjData *obj) { - float temp_f31; - - temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_796); - if (BoardModelMotionTimeGet(lbl_1_bss_796) >= temp_f31) { - lbl_1_bss_744 = MGSeqCreate(1, lbl_1_bss_74C, 0x120, 0x40); - lbl_1_bss_720->func = fn_1_B478; + if (BoardModelMotionTimeGet(spaceAmidaMdlId) >= BoardModelMotionMaxTimeGet(spaceAmidaMdlId)) { + timerSeqId = MGSeqCreate(1, timerSec, 0x120, 0x40); + spaceAmidaGameObj->func = SpaceAmidaGameUpdate; BoardMusStart(1, 0xF, 0x7F, 0); - lbl_1_bss_724 = HuAudFXPlay(0x408); + spaceAmidaSeNo = HuAudFXPlay(0x408); } } -static void fn_1_B478(omObjData *arg0) +static void SpaceAmidaGameUpdate(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp18; - Vec spC; - float var_f28; - u16 var_r27; - u16 var_r29; + SpaceAmidaGameWork *work; + Vec rocketPos; + Vec playerPos; + float jumpDist; + u16 btn; + u16 stkBtn; - temp_r31 = arg0->data; - if ((lbl_1_bss_748 -= 1) == 0) { - if ((lbl_1_bss_74C -= 1) >= 0) { - MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C); + work = obj->data; + if ((--timerFrame) == 0) { + if ((--timerSec) >= 0) { + MGSeqParamSet(timerSeqId, 1, timerSec); } - lbl_1_bss_748 = 60; + timerFrame = REFRESH_RATE; } - if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { - fn_1_B1CC(arg0, &var_r29, &var_r27); + if (GWPlayerCfg[spaceAmidaPlayerNo].iscom == 1) { + SpaceAmidaComInputGet(obj, &stkBtn, &btn); } else { - var_r29 = HuPadDStkRep[lbl_1_bss_79C]; - var_r27 = HuPadBtnDown[lbl_1_bss_79C]; + stkBtn = HuPadDStkRep[spaceAmidaPadNo]; + btn = HuPadBtnDown[spaceAmidaPadNo]; } - if ((var_r29 & 1) && lbl_1_bss_730 != 0) { - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; - lbl_1_bss_730--; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + if ((stkBtn & PAD_BUTTON_LEFT) && spaceAmidaPath != 0) { + rocketObj[spaceAmidaPath]->work[1] = 1; + rocketObj[spaceAmidaPath]->work[2] = 2; + spaceAmidaPath--; + rocketObj[spaceAmidaPath]->work[2] = 1; } - if ((var_r29 & 2) && lbl_1_bss_730 != 2) { - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; - lbl_1_bss_730++; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + if ((stkBtn & PAD_BUTTON_RIGHT) && spaceAmidaPath != 2) { + rocketObj[spaceAmidaPath]->work[1] = 1; + rocketObj[spaceAmidaPath]->work[2] = 2; + spaceAmidaPath++; + rocketObj[spaceAmidaPath]->work[2] = 1; } - BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp18); - BoardPlayerPosGet(lbl_1_bss_798, &spC); - fn_1_CB44(&sp18, 0.0f); - temp_r31->unk04 = sp18; - if (lbl_1_bss_74C < 0 || (var_r27 & 0x100)) { - MGSeqParamSet(lbl_1_bss_744, 2, -1); - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - BoardPlayerPosGet(lbl_1_bss_798, &spC); - var_f28 = VECDistanceXZ(&temp_r31->unk04, &spC); - fn_1_C94C(&spC, &temp_r31->unk04, &temp_r31->unk10); - temp_r31->unk10.y = 0.0f; - temp_r31->unk10.x *= var_f28 / 30.0f; - temp_r31->unk10.z *= var_f28 / 30.0f; - temp_r31->unk00 = 0; - temp_r31->unk20 = 0.0f; - arg0->func = fn_1_BAF8; + BoardModelPosGet(rocketMdlId[spaceAmidaPath], &rocketPos); + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + SpaceAmidaPlayerRotAdd(&rocketPos, 0.0f); + work->rocketPos = rocketPos; + if (timerSec < 0 || (btn & PAD_BUTTON_A)) { + MGSeqParamSet(timerSeqId, 2, -1); + rocketObj[spaceAmidaPath]->work[1] = 1; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + jumpDist = VECDistanceXZ(&work->rocketPos, &playerPos); + SpaceAmidaDirGet(&playerPos, &work->rocketPos, &work->jumpDir); + work->jumpDir.y = 0.0f; + work->jumpDir.x *= jumpDist / 30.0f; + work->jumpDir.z *= jumpDist / 30.0f; + work->unk00 = 0; + work->jumpTime = 0.0f; + obj->func = SpaceAmidaRocketJump; } } -static void fn_1_BAF8(omObjData *arg0) +static void SpaceAmidaRocketJump(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp14; - Vec sp8; + SpaceAmidaGameWork *work; + Vec playerPos; + Vec rocketPos; - temp_r31 = arg0->data; - if (lbl_1_bss_714[lbl_1_bss_730]->work[2] != 0) { + work = obj->data; + if (rocketObj[spaceAmidaPath]->work[2] != 0) { return; } - BoardPlayerMotionStart(lbl_1_bss_798, 4, 0); - BoardPlayerPosGet(lbl_1_bss_798, &sp14); - sp14.x += temp_r31->unk10.x; - sp14.z += temp_r31->unk10.z; - sp14.y = lbl_1_bss_738.y + 80.0 * sind(6.0f * temp_r31->unk20); - BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); - if ((temp_r31->unk20 += 1.0f) == 30.0f) { - sp14.y = sp8.y + 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); - BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - arg0->func = fn_1_BCDC; + BoardPlayerMotionStart(spaceAmidaPlayerNo, 4, 0); + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + playerPos.x += work->jumpDir.x; + playerPos.z += work->jumpDir.z; + playerPos.y = spaceAmidaPos.y + 80.0 * sind(6.0f * work->jumpTime); + BoardModelPosGet(rocketObj[spaceAmidaPath]->work[0], &rocketPos); + if ((++work->jumpTime) == 30.0f) { + playerPos.y = rocketPos.y + 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &playerPos); + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->func = SpaceAmidaRocketKemuriExec; } - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + BoardPlayerPosSetV(spaceAmidaPlayerNo, &playerPos); } -static void fn_1_BCDC(omObjData *arg0) +static void SpaceAmidaRocketKemuriExec(omObjData *obj) { - Bss720Data *temp_r29; - Bss714Data *temp_r31; - Vec sp14; - Vec sp8; + SpaceAmidaGameWork *work; + RocketWork *rocketWork; + Vec playerPos; + Vec kemuriPos; - temp_r29 = arg0->data; - BoardPlayerPosGet(lbl_1_bss_798, &sp14); - sp8 = sp14; - sp8.z += 100.0f; - if (fn_1_CB44(&sp8, 10.0f) == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - temp_r29->unk1C = 90; - lbl_1_bss_710->work[0] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; - temp_r31 = lbl_1_bss_714[lbl_1_bss_730]->data; - Hu3DModelAttrReset(lbl_1_bss_750, HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(lbl_1_bss_750, sp14.x, sp14.y, sp14.z); - temp_r31->unk20.x = 1.4f; - temp_r31->unk20.y = 1.4f; - temp_r31->unk20.z = 1.4f; - temp_r31->unk2C.x = 0.055999998f; - temp_r31->unk2C.y = 0.08088889f; - temp_r31->unk2C.z = 0.055999998f; - temp_r31->unk38 = 1.0f; - temp_r31->unk3C = 0.0f; - Hu3DModelScaleSet(lbl_1_bss_750, 1.4f, 1.4f, 1.4f); - arg0->func = fn_1_BF00; + work = obj->data; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + kemuriPos = playerPos; + kemuriPos.z += 100.0f; + if (SpaceAmidaPlayerRotAdd(&kemuriPos, 10.0f) == 1) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + work->waitTime = 90; + spaceAmidaEffObj->work[0] = 1; + rocketObj[spaceAmidaPath]->work[2] = 3; + rocketWork = rocketObj[spaceAmidaPath]->data; + Hu3DModelAttrReset(kemuriMdlId, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(kemuriMdlId, playerPos.x, playerPos.y, playerPos.z); + rocketWork->kemuriScale.x = 1.4f; + rocketWork->kemuriScale.y = 1.4f; + rocketWork->kemuriScale.z = 1.4f; + rocketWork->kemuriScaleVel.x = 0.055999998f; + rocketWork->kemuriScaleVel.y = 0.08088889f; + rocketWork->kemuriScaleVel.z = 0.055999998f; + rocketWork->kemuriTPLvl = 1.0f; + rocketWork->unk3C = 0.0f; + Hu3DModelScaleSet(kemuriMdlId, 1.4f, 1.4f, 1.4f); + obj->func = SpaceAmidaRocketWait; } } -static void fn_1_BF00(omObjData *arg0) +static void SpaceAmidaRocketWait(omObjData *obj) { - Bss720Data *temp_r31; + SpaceAmidaGameWork *work; - temp_r31 = arg0->data; - if (temp_r31->unk1C == 0) { - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 4; - arg0->func = fn_1_BF68; + work = obj->data; + if (work->waitTime == 0) { + rocketObj[spaceAmidaPath]->work[2] = 4; + obj->func = SpaceAmidaRocketUp; } else { - temp_r31->unk1C--; + work->waitTime--; } } -static void fn_1_BF68(omObjData *arg0) +static void SpaceAmidaRocketUp(omObjData *obj) { - Bss720Data *sp8; + SpaceAmidaGameWork *work; - sp8 = arg0->data; - if (lbl_1_bss_714[lbl_1_bss_730]->work[2] == 6) { - lbl_1_bss_75C = HuPrcCreate(fn_1_C000, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = arg0; - arg0->func = NULL; + work = obj->data; + if (rocketObj[spaceAmidaPath]->work[2] == 6) { + coinWinProc = HuPrcCreate(SpaceAmidaCoinWin, 0x2004, 0x1000, 0); + coinWinProc->user_data = obj; + obj->func = NULL; } } -static void fn_1_C000(void) +static void SpaceAmidaCoinWin(void) { - char sp8[16]; // array size may range between 1 and 16 (inclusive) - omObjData *temp_r30; - Bss720Data *temp_r31; + char mess[16]; // array size may range between 1 and 16 (inclusive) + omObjData *obj; + SpaceAmidaGameWork *work; BoardAudSeqFadeOut(1, 100); - sprintf(&sp8, "%d", lbl_1_bss_728); + sprintf(&mess, "%d", spaceAmidaCoinNum); BoardWinCreate(2, MAKE_MESSID(11, 6), 0); - BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(mess), 0); BoardWinWait(); BoardWinKill(); - temp_r30 = HuPrcCurrentGet()->user_data; - temp_r31 = temp_r30->data; - temp_r31->unk10.x = 0.0f; - temp_r31->unk10.y = 10.0f; - temp_r31->unk10.z = 3.0f; - temp_r31->unk20 = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - temp_r30->func = fn_1_C0FC; + obj = HuPrcCurrentGet()->user_data; + work = obj->data; + work->jumpDir.x = 0.0f; + work->jumpDir.y = 10.0f; + work->jumpDir.z = 3.0f; + work->jumpTime = 0.0f; + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->func = SpaceAmidaJumpDown; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C0FC(omObjData *arg0) +static void SpaceAmidaJumpDown(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp8; + SpaceAmidaGameWork *work; + Vec pos; - temp_r31 = arg0->data; - BoardPlayerPosGet(lbl_1_bss_798, &sp8); - sp8.x += temp_r31->unk10.x; - sp8.y += temp_r31->unk10.y - 0.029166667f * temp_r31->unk20 * temp_r31->unk20; - sp8.z += temp_r31->unk10.z; - temp_r31->unk20 += 1.0f; - if (sp8.y <= lbl_1_bss_738.y) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - sp8.y = lbl_1_bss_738.y; - lbl_1_bss_75C = HuPrcCreate(fn_1_C25C, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = arg0; - arg0->func = NULL; + work = obj->data; + BoardPlayerPosGet(spaceAmidaPlayerNo, &pos); + pos.x += work->jumpDir.x; + pos.y += work->jumpDir.y - 0.029166667f * work->jumpTime * work->jumpTime; + pos.z += work->jumpDir.z; + work->jumpTime += 1.0f; + if (pos.y <= spaceAmidaPos.y) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + pos.y = spaceAmidaPos.y; + coinWinProc = HuPrcCreate(SpaceAmidaCoinRainMain, 0x2004, 0x1000, 0); + coinWinProc->user_data = obj; + obj->func = NULL; } - BoardPlayerPosSetV(lbl_1_bss_798, &sp8); + BoardPlayerPosSetV(spaceAmidaPlayerNo, &pos); } -static void fn_1_C25C(void) +static void SpaceAmidaCoinRainMain(void) { - Vec sp11C[20]; - Vec sp2C[20]; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - s16 var_r30; + Vec coinPos[20]; + Vec coinRot[20]; + Vec playerPos; + Vec scale; + Vec coinEffPos; + float velY; + s16 coinNum; s16 i; - var_r30 = 0; - BoardPlayerPosGet(lbl_1_bss_798, &sp20); - sp14.x = sp14.y = sp14.z = 1.0f; - for (i = 0; i < lbl_1_bss_728; i++) { - BoardModelVisibilitySet(lbl_1_bss_760[i], 1); - sp11C[i] = sp20; - sp11C[i].y += 600.0f + i * 120; - sp11C[i].x += -25.0f + 50.0f * frand8() * 0.003921569f; - sp11C[i].z += -25.0f + 50.0f * frand8() * 0.003921569f; - sp2C[i].x = sp2C[i].z = 0.0f; - sp2C[i].y = 360.0f * frand8() * 0.003921569f; - BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); - BoardModelScaleSetV(lbl_1_bss_760[i], &sp14); - BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + coinNum = 0; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + scale.x = scale.y = scale.z = 1.0f; + for (i = 0; i < spaceAmidaCoinNum; i++) { + BoardModelVisibilitySet(coinMdlId[i], 1); + coinPos[i] = playerPos; + coinPos[i].y += 600.0f + i * 120; + coinPos[i].x += -25.0f + 50.0f * frand8() * 0.003921569f; + coinPos[i].z += -25.0f + 50.0f * frand8() * 0.003921569f; + coinRot[i].x = coinRot[i].z = 0.0f; + coinRot[i].y = 360.0f * frand8() * 0.003921569f; + BoardModelPosSetV(coinMdlId[i], &coinPos[i]); + BoardModelScaleSetV(coinMdlId[i], &scale); + BoardModelRotSetV(coinMdlId[i], &coinRot[i]); } - var_f31 = -1.0f; + velY = -1.0f; while (TRUE) { - for (i = 0; i < lbl_1_bss_728; i++) { - if (i >= var_r30) { - sp11C[i].y += var_f31; - BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); - sp2C[i].y += 45.0f; - if (sp2C[i].y >= 360.0f) { - sp2C[i].y -= 360.0f; + for (i = 0; i < spaceAmidaCoinNum; i++) { + if (i >= coinNum) { + coinPos[i].y += velY; + BoardModelPosSetV(coinMdlId[i], &coinPos[i]); + coinRot[i].y += 45.0f; + if (coinRot[i].y >= 360.0f) { + coinRot[i].y -= 360.0f; } - BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); - if (sp11C[i].y <= sp20.y + 80.0f) { - sp8 = sp11C[i]; - CharModelCoinEffectCreate(1, &sp8); - BoardModelVisibilitySet(lbl_1_bss_760[i], 0); - var_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_798, 1); + BoardModelRotSetV(coinMdlId[i], &coinRot[i]); + if (coinPos[i].y <= playerPos.y + 80.0f) { + Vec pos = coinPos[i]; + CharModelCoinEffectCreate(1, &pos); + BoardModelVisibilitySet(coinMdlId[i], 0); + coinNum++; + BoardPlayerCoinsAdd(spaceAmidaPlayerNo, 1); HuAudFXPlay(7); - omVibrate(lbl_1_bss_798, 0xC, 6, 6); + omVibrate(spaceAmidaPlayerNo, 0xC, 6, 6); } } } - var_f31 *= 1.05f; - if (var_f31 < -20.0f) { - var_f31 = -20.0f; + velY *= 1.05f; + if (velY < -20.0f) { + velY = -20.0f; } - if (var_r30 == lbl_1_bss_728) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + if (coinNum == spaceAmidaCoinNum) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); } - while (!BoardPlayerMotionEndCheck(lbl_1_bss_798)) { + while (!BoardPlayerMotionEndCheck(spaceAmidaPlayerNo)) { HuPrcVSleep(); } - lbl_1_bss_75C = HuPrcCreate(fn_1_C844, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = HuPrcCurrentGet()->user_data; + coinWinProc = HuPrcCreate(SpaceAmidaReturnWinMain, 0x2004, 0x1000, 0); + coinWinProc->user_data = HuPrcCurrentGet()->user_data; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C844(void) +static void SpaceAmidaReturnWinMain(void) { - omObjData *var_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(11, 7), 0); BoardWinWait(); BoardWinKill(); - var_r31 = HuPrcCurrentGet()->user_data; - var_r31->func = fn_1_C894; + obj = HuPrcCurrentGet()->user_data; + obj->func = SpaceAmidaGameStop; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C894(omObjData *arg0) +static void SpaceAmidaGameStop(omObjData *obj) { - float temp_f31; - - lbl_1_bss_72A = 1; - BoardMGExit(); - temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_796); - lbl_1_bss_754 = temp_f31; - BoardModelMotionStart(lbl_1_bss_796, 0, 0); - BoardModelMotionTimeSet(lbl_1_bss_796, temp_f31); - BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); - omDelObjEx(HuPrcCurrentGet(), arg0); + SpaceAmidaStop(); + omDelObjEx(HuPrcCurrentGet(), obj); } -static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) +static void SpaceAmidaDirGet(Vec *b, Vec *a, Vec *result) { - VECSubtract(arg1, arg0, arg2); - VECNormalize(arg2, arg2); + VECSubtract(a, b, result); + VECNormalize(result, result); } -static float fn_1_C998(Vec *arg0) +static float SpaceAmidaAngleGet(Vec *dir) { - float temp_f31; + float angle; - if (arg0->x || arg0->z) { - if (arg0->x == 0.0f) { - if (arg0->z > 0.0f) { + if (dir->x || dir->z) { + if (dir->x == 0.0f) { + if (dir->z > 0.0f) { return 0.0f; } else { return 180.0f; } } - if (arg0->z == 0.0f) { - if (arg0->x > 0.0f) { + if (dir->z == 0.0f) { + if (dir->x > 0.0f) { return 90.0f; } else { return 270.0f; } } - temp_f31 = atan2d(arg0->z, arg0->x); - if (arg0->z < 0.0f) { - temp_f31 = 90.0f - temp_f31; + angle = atan2d(dir->z, dir->x); + if (dir->z < 0.0f) { + angle = 90.0f - angle; } else { - temp_f31 = 90.0f - temp_f31; - if (temp_f31 < 0.0f) { - temp_f31 += 360.0f; + angle = 90.0f - angle; + if (angle < 0.0f) { + angle += 360.0f; } } - return temp_f31; + return angle; } return -1.0f; } -static u32 fn_1_CB44(Vec *arg0, float arg1) +static u32 SpaceAmidaPlayerRotAdd(Vec *rocketPos, float delta) { - Vec sp24; - Vec sp18; - Vec spC; - float var_f28; - float var_f30; - float var_f31; + Vec dir; + Vec playerPos; + Vec playerRot; + float rocketAngle; + float angleDelta; + float rotY; - BoardPlayerPosGet(lbl_1_bss_798, &sp18); - VECSubtract(arg0, &sp18, &sp24); - VECNormalize(&sp24, &sp24); - var_f28 = fn_1_C998(&sp24); - BoardPlayerRotGet(lbl_1_bss_798, &spC); - var_f31 = spC.y; - var_f30 = var_f28 - var_f31; - if (arg1 == 0.0f) { - var_f31 = var_f28; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + SpaceAmidaDirGet(&playerPos, rocketPos, &dir); + rocketAngle = SpaceAmidaAngleGet(&dir); + BoardPlayerRotGet(spaceAmidaPlayerNo, &playerRot); + rotY = playerRot.y; + angleDelta = rocketAngle - rotY; + if (delta == 0.0f) { + rotY = rocketAngle; } - else if (fabs(var_f30) > arg1) { - if (var_f30 < 0.0f) { - var_f30 += 360.0f; + else if (fabs(angleDelta) > delta) { + if (angleDelta < 0.0f) { + angleDelta += 360.0f; } - if (var_f30 < 180.0f) { - if (var_f30 > arg1) { - var_f31 += arg1; + if (angleDelta < 180.0f) { + if (angleDelta > delta) { + rotY += delta; } else { - var_f31 += var_f30; + rotY += angleDelta; } } - else if (360.0f - var_f30 > arg1) { - var_f31 -= arg1; + else if (360.0f - angleDelta > delta) { + rotY -= delta; } else { - var_f31 -= 360.0f - var_f30; + rotY -= 360.0f - angleDelta; } } else { - var_f31 = var_f28; + rotY = rocketAngle; } - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - BoardPlayerRotYSet(lbl_1_bss_798, var_f31); - if (var_f31 == var_f28) { - return 1; + BoardPlayerRotYSet(spaceAmidaPlayerNo, rotY); + if (rotY == rocketAngle) { + return TRUE; } else { - return 0; + return FALSE; } } -static void fn_1_CEC4(void) +static void SpaceAmidaEffCreate(void) { - lbl_1_bss_70C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); - lbl_1_bss_710 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_D07C); - lbl_1_bss_710->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); - lbl_1_bss_710->model[0] = Hu3DParticleCreate(lbl_1_bss_70C, 0x320); - Hu3DParticleColSet(lbl_1_bss_710->model[0], 0xFF, 0, 0); - Hu3DParticleScaleSet(lbl_1_bss_710->model[0], 5.0f); - Hu3DParticleHookSet(lbl_1_bss_710->model[0], fn_1_D114); - Hu3DParticleBlendModeSet(lbl_1_bss_710->model[0], 1); - Hu3DModelAttrSet(lbl_1_bss_710->model[0], HU3D_ATTR_DISPOFF); - lbl_1_bss_710->work[0] = 0; + spaceAmidaEffAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); + spaceAmidaEffObj = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, SpaceAmidaEffUpdate); + spaceAmidaEffObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); + spaceAmidaEffObj->model[0] = Hu3DParticleCreate(spaceAmidaEffAnim, 0x320); + Hu3DParticleColSet(spaceAmidaEffObj->model[0], 255, 0, 0); + Hu3DParticleScaleSet(spaceAmidaEffObj->model[0], 5.0f); + Hu3DParticleHookSet(spaceAmidaEffObj->model[0], SpaceAmidaEffParticleHook); + Hu3DParticleBlendModeSet(spaceAmidaEffObj->model[0], 1); + Hu3DModelAttrSet(spaceAmidaEffObj->model[0], HU3D_ATTR_DISPOFF); + spaceAmidaEffObj->work[0] = 0; } -static void fn_1_D034(void) +static void SpaceAmidaEffKill(void) { - Hu3DModelKill(lbl_1_bss_710->model[0]); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_710); + Hu3DModelKill(spaceAmidaEffObj->model[0]); + omDelObjEx(HuPrcCurrentGet(), spaceAmidaEffObj); } -static void fn_1_D07C(omObjData *arg0) +static void SpaceAmidaEffUpdate(omObjData *obj) { - void *sp8; + void *work; - sp8 = arg0->data; - switch (arg0->work[0]) { + work = obj->data; + switch (obj->work[0]) { case 0: break; case 1: - arg0->work[0] = 2; - Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(arg0->model[0], 10.0f, 10.0f, 10.0f); + obj->work[0] = 2; + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(obj->model[0], 10.0f, 10.0f, 10.0f); break; case 2: break; } } -static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) +static void SpaceAmidaEffParticleHook(ModelData *model, ParticleData *particle, Mtx matrix) { - Bss714Data *temp_r28; - HsfanimStruct01 *var_r31; - Vec sp8; - float temp_f31; + RocketWork *work; + HsfanimStruct01 *particleDataP; + Vec pos; + float size; s32 i; s32 j; - s32 temp_r26; + s32 relSize; - BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); - temp_r28 = lbl_1_bss_714[lbl_1_bss_730]->data; + BoardModelPosGet(rocketObj[spaceAmidaPath]->work[0], &pos); + work = rocketObj[spaceAmidaPath]->data; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk2C = 0.0f; } particle->unk_1C = (void *)1; } - if (temp_r28->unk1C > 0.0f) { - for (i = 0; i < 80.0f * temp_r28->unk1C; i++) { - var_r31 = particle->unk_48; - for (j = 0; j < particle->unk_30; j++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + if (work->kemuriSize > 0.0f) { + for (i = 0; i < 80.0f * work->kemuriSize; i++) { + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { break; } } if (j != particle->unk_30) { - temp_r26 = frand16(); - temp_f31 = (-15.0f + 30.0f * (temp_r26 / 65536.0f)) * temp_r28->unk1C; - var_r31->unk08.x = sp8.x + temp_f31; - var_r31->unk08.y = sp8.y; - var_r31->unk08.z = sp8.z; - var_r31->unk14.x = 255.0f; - var_r31->unk14.y = 155.0f; - var_r31->unk14.z = 55.0f; - var_r31->unk40.a = 0xFF; - var_r31->unk20 = 0.0f; - var_r31->unk24 = temp_r28->unk1C * (-3.0 + (2.0 * (fabs(temp_f31) / 15.0))); - var_r31->unk28 = 0.0f; - var_r31->unk2C = 7.3f; + relSize = frand16(); + size = (-15.0f + 30.0f * (relSize / 65536.0f)) * work->kemuriSize; + particleDataP->unk08.x = pos.x + size; + particleDataP->unk08.y = pos.y; + particleDataP->unk08.z = pos.z; + particleDataP->unk14.x = 255.0f; + particleDataP->unk14.y = 155.0f; + particleDataP->unk14.z = 55.0f; + particleDataP->unk40.a = 0xFF; + particleDataP->unk20 = 0.0f; + particleDataP->unk24 = work->kemuriSize * (-3.0 + (2.0 * (fabs(size) / 15.0))); + particleDataP->unk28 = 0.0f; + particleDataP->unk2C = 7.3f; } } } - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { continue; } - var_r31->unk34.x = var_r31->unk08.x; - var_r31->unk34.y = var_r31->unk08.y; - var_r31->unk34.z = var_r31->unk08.z; - var_r31->unk08.x += var_r31->unk20; - var_r31->unk08.y += var_r31->unk24; - var_r31->unk08.z += var_r31->unk28; - if (var_r31->unk08.y <= lbl_1_bss_738.y) { - var_r31->unk08.y = lbl_1_bss_738.y; - var_r31->unk24 = -var_r31->unk24 - 0.3f; - if (var_r31->unk24 < 0.0f) { - var_r31->unk24 = 0.0f; + particleDataP->unk34.x = particleDataP->unk08.x; + particleDataP->unk34.y = particleDataP->unk08.y; + particleDataP->unk34.z = particleDataP->unk08.z; + particleDataP->unk08.x += particleDataP->unk20; + particleDataP->unk08.y += particleDataP->unk24; + particleDataP->unk08.z += particleDataP->unk28; + if (particleDataP->unk08.y <= spaceAmidaPos.y) { + particleDataP->unk08.y = spaceAmidaPos.y; + particleDataP->unk24 = -particleDataP->unk24 - 0.3f; + if (particleDataP->unk24 < 0.0f) { + particleDataP->unk24 = 0.0f; } - temp_r26 = 80.0f * (2.0f * ((sp8.x - var_r31->unk08.x) / 15.0f) - rand8() / 255.0f); - var_r31->unk20 = 8.0 * sind(temp_r26); - var_r31->unk28 = 8.0 * cosd(temp_r26); + relSize = 80.0f * (2.0f * ((pos.x - particleDataP->unk08.x) / 15.0f) - rand8() / 255.0f); + particleDataP->unk20 = 8.0 * sind(relSize); + particleDataP->unk28 = 8.0 * cosd(relSize); } - var_r31->unk24 -= 0.35f; - if ((var_r31->unk14.x -= 25.5f) < 0.0f) { - var_r31->unk14.x = 0.0f; + particleDataP->unk24 -= 0.35f; + if ((particleDataP->unk14.x -= 25.5f) < 0.0f) { + particleDataP->unk14.x = 0.0f; } - if ((var_r31->unk14.y -= 36.42857f) < 0.0f) { - var_r31->unk14.y = 0.0f; + if ((particleDataP->unk14.y -= 36.42857f) < 0.0f) { + particleDataP->unk14.y = 0.0f; } - if ((var_r31->unk14.z -= 63.75f) < 0.0f) { - var_r31->unk14.z = 0.0f; + if ((particleDataP->unk14.z -= 63.75f) < 0.0f) { + particleDataP->unk14.z = 0.0f; } - var_r31->unk40.r = var_r31->unk14.x; - var_r31->unk40.g = var_r31->unk14.y; - var_r31->unk40.b = var_r31->unk14.z; - if (var_r31->unk40.r == 0 && var_r31->unk40.g == 0 && var_r31->unk40.b == 0) { - var_r31->unk2C = 0.0f; + particleDataP->unk40.r = particleDataP->unk14.x; + particleDataP->unk40.g = particleDataP->unk14.y; + particleDataP->unk40.b = particleDataP->unk14.z; + if (particleDataP->unk40.r == 0 && particleDataP->unk40.g == 0 && particleDataP->unk40.b == 0) { + particleDataP->unk2C = 0.0f; } } } diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index ab932863..6a61927a 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -25,947 +25,937 @@ #include "dolphin.h" #include "ext_math.h" -static void fn_1_E100(void); -static void fn_1_E154(void); -static void fn_1_E2B8(omObjData *arg0); -static void fn_1_E44C(omObjData *arg0); -static void fn_1_E914(omObjData *arg0); -static void fn_1_ECD4(omObjData *arg0); -static void fn_1_EEA0(omObjData *arg0, u16 *arg1); -static void fn_1_EED8(omObjData *arg0); -static void fn_1_F09C(omObjData *arg0); -static void fn_1_F348(omObjData *arg0); -static void fn_1_F3F8(omObjData *arg0); -static void fn_1_F6E8(omObjData *arg0); -static void fn_1_F890(omObjData *arg0); -static void fn_1_FA1C(omObjData *arg0); -static void fn_1_FABC(omObjData *arg0); -static void fn_1_FB58(void); -static void fn_1_FC3C(omObjData *arg0); -static void fn_1_FCEC(void); -static void fn_1_FD3C(omObjData *arg0); -static void fn_1_FE44(omObjData *arg0); -static void fn_1_FED0(omObjData *arg0); -static s16 fn_1_1001C(u32 arg0); -static void fn_1_101B8(s16 arg0); -static void fn_1_10664(omObjData *arg0); -static void fn_1_10820(omObjData *arg0); -static void fn_1_10AE8(omObjData *arg0); -static float fn_1_10BB0(u32 arg0); -static void fn_1_10CF0(u32 arg0); -static float fn_1_10EB8(Vec *arg0); -static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix); -static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix); +static void RoundItemEnd(void); +static void RoundItemClose(void); +static void RoundItemMainUpdate(omObjData *obj); +static void RoundItemUmaStop(omObjData *obj); +static void RoundItemPlayerJump(omObjData *obj); +static void RoundItemStartWait(omObjData *obj); +static void RoundItemComInputGet(omObjData *obj, u16 *btn); +static void RoundItemInputWait(omObjData *obj); +static void RoundItemStop(omObjData *obj); +static void RoundItemLightFlicker(omObjData *obj); +static void RoundItemUmaJumpWait(omObjData *obj); +static void RoundItemUmaJump(omObjData *obj); +static void RoundItemRotatePlayer(omObjData *obj); +static void RoundItemStreamWait(omObjData *obj); +static void RoundItemWinWait(omObjData *obj); +static void ItemGetWinExec(void); +static void ItemGetShrinkWait(omObjData *obj); +static void ItemGetReturnWinExec(void); +static void RoundItemGameClose(omObjData *obj); +static void RoundItemGameEnd(omObjData *obj); +static void RoundItemItemUpdate(omObjData *obj); +static s16 RoundItemItemGet(u32 umaNo); +static void ItemGetCreate(s16 itemNo); +static void ItemGetObjUpdate(omObjData *obj); +static void ItemGetPlayerMove(omObjData *obj); +static void ItemGetShrink(omObjData *obj); +static float RoundItemUmaRotYGet(u32 umaNo); +static void RoundItemUmaPlayerSet(u32 umaNo); +static float RoundItemAngleGet(Vec *arg0); +static void ItemGetEff1Hook(ModelData *model, ParticleData *particle, Mtx matrix); +static void ItemGetEff2Hook(ModelData *model, ParticleData *particle, Mtx matrix); -static void *lbl_1_bss_818; -static Vec lbl_1_bss_80C; -static omObjData *lbl_1_bss_7FC[4]; -static omObjData *lbl_1_bss_7F8; -static omObjData *lbl_1_bss_7F4; -static omObjData *lbl_1_bss_7F0; -static float lbl_1_bss_7EC; -static float lbl_1_bss_7E8; -static s32 lbl_1_bss_7E4; -static Vec lbl_1_bss_7D8; -static s16 lbl_1_bss_7D6; -static s16 lbl_1_bss_7D4; -static s16 lbl_1_bss_7D2; -static s16 lbl_1_bss_7D0; -static Vec lbl_1_bss_7C4; +static void *itemAnim; +static Vec roundItemPos; +static omObjData *itemObj[4]; +static omObjData *roundItemUmaObj; +static omObjData *roundItemMainObj; +static omObjData *itemGetObj; +static float umaSpeed; +static float borderSpeed; +static s32 roundItemPlayer; +static Vec umaPos; +static s16 seqStartId; +static s16 timerSeqId; +static s16 timerSec; +static s16 timerFrame; +static Vec roundItemPlayerPos; static s32 lbl_1_bss_7C0_pad; -static s32 lbl_1_bss_7BC; -static s32 lbl_1_bss_7B8; -static s16 lbl_1_bss_7B4; +static s32 itemGetMotId; +static s32 jumpMotId; +static s16 umaStopF; static s32 lbl_1_bss_7B0_pad; -static s32 lbl_1_bss_7AC; -static s16 lbl_1_bss_7AA; -static s16 lbl_1_bss_7A8; -static s32 lbl_1_bss_7A4; -static AnimData *lbl_1_bss_7A0; +static s32 itemGetSeNo; +static s16 roundItemStopF; +static s16 umaStopTimer; +static s32 roundItemStreamId; +static AnimData *roundItemEffAnim; -static s32 lbl_1_data_F08[] = { DATA_MAKE_NUM(DATADIR_BOARD, 109), DATA_MAKE_NUM(DATADIR_BOARD, 110), DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), DATA_MAKE_NUM(DATADIR_BOARD, 113), DATA_MAKE_NUM(DATADIR_BOARD, 114), DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), DATA_MAKE_NUM(DATADIR_BOARD, 118), DATA_MAKE_NUM(DATADIR_BOARD, 119), DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), DATA_MAKE_NUM(DATADIR_BOARD, 122), DATA_MAKE_NUM(DATADIR_BOARD, 123) }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif -static s32 lbl_1_data_F40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), +static s32 itemMdlTbl[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT), +}; + +static s32 itemGetMotTbl[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23) }; -static s32 lbl_1_data_F60[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), +static s32 jumpMotTbl[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64), DATA_MAKE_NUM(DATADIR_WARIOMOT, 64), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64), DATA_MAKE_NUM(DATADIR_DAISYMOT, 64), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64) }; -void fn_1_D740(s16 *arg0) +void RoundItemInit(s16 *itemTbl) { - s16 sp10[14]; - s16 sp8[4]; - float temp_f30; - float temp_f29; - float var_f31; - s32 var_r28; - s32 var_r30; + s16 itemOrderTbl[14]; + s16 itemMdlId[4]; + float borderTime; + float borderMaxTime; + float itemAngle; + s32 itemOrderNum; + s32 itemNum; s32 i; s32 j; - lbl_1_bss_818 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); - BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); - sp8[0] = BoardModelIDGet(lbl_1_bss_6C4[19]); - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 1); + itemAnim = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + BoardModelPosGet(mapObjMdlId[MAPOBJ_ROUNDITEM], &roundItemPos); + itemMdlId[0] = BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 1); for (i = 1; i < 4; i++) { - sp8[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24)); + itemMdlId[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24)); } - var_r30 = 0; + itemNum = 0; for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL); - if (arg0[i] != -1) { - lbl_1_bss_7FC[var_r30++]->work[1] = arg0[i]; + itemObj[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL); + if (itemTbl[i] != -1) { + itemObj[itemNum++]->work[1] = itemTbl[i]; } } - while (var_r30 != 4) { - var_r28 = 0; + while (itemNum != 4) { + itemOrderNum = 0; for (i = 0; i < 14; i++) { - for (j = 0; j < var_r30; j++) { - if (i == lbl_1_bss_7FC[j]->work[1]) { + for (j = 0; j < itemNum; j++) { + if (i == itemObj[j]->work[1]) { break; } } - if (j == var_r30) { - sp10[var_r28++] = i; + if (j == itemNum) { + itemOrderTbl[itemOrderNum++] = i; } } - lbl_1_bss_7FC[var_r30++]->work[1] = sp10[rand8() % var_r28]; + itemObj[itemNum++]->work[1] = itemOrderTbl[rand8() % itemOrderNum]; } - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + borderTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + borderMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->model[0] = sp8[i]; - lbl_1_bss_7FC[i]->model[1] = Hu3DModelCreateFile(lbl_1_data_F08[lbl_1_bss_7FC[i]->work[1]]); - if (lbl_1_bss_7FC[i]->work[1] == 5) { - Hu3DData[lbl_1_bss_7FC[i]->model[1]].unk_F0[1][3] = -50.0f; + itemObj[i]->model[0] = itemMdlId[i]; + itemObj[i]->model[1] = Hu3DModelCreateFile(itemMdlTbl[itemObj[i]->work[1]]); + if (itemObj[i]->work[1] == 5) { + Hu3DData[itemObj[i]->model[1]].unk_F0[1][3] = -50.0f; } - if (lbl_1_bss_7FC[i]->work[1] == 11) { - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_LOOP); + if (itemObj[i]->work[1] == 11) { + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_MOTATTR_LOOP); } - if (lbl_1_bss_7FC[i]->work[1] == 4) { - Hu3DMotionSpeedSet(lbl_1_bss_7FC[i]->model[1], 0.0f); + if (itemObj[i]->work[1] == 4) { + Hu3DMotionSpeedSet(itemObj[i]->model[1], 0.0f); } - Hu3DModelAttrReset(sp8[i], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_PAUSE); - omSetTra(lbl_1_bss_7FC[i], lbl_1_bss_80C.x, lbl_1_bss_80C.y + 66.0f, lbl_1_bss_80C.z); - var_f31 = 90.0f - 90.0f * i + 360.0f * (temp_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + Hu3DModelAttrReset(itemMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_MOTATTR_PAUSE); + omSetTra(itemObj[i], roundItemPos.x, roundItemPos.y + 66.0f, roundItemPos.z); + itemAngle = 90.0f - 90.0f * i + 360.0f * (borderTime / borderMaxTime); + if (itemAngle >= 360.0f) { + itemAngle -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (itemAngle < 0.0f) { + itemAngle += 360.0f; } - omSetRot(lbl_1_bss_7FC[i], 0.0f, var_f31, 0.0f); - lbl_1_bss_7FC[i]->work[0] = Hu3DAnimCreate(lbl_1_bss_818, lbl_1_bss_7FC[i]->model[0], "item01"); - Hu3DAnimAttrSet(lbl_1_bss_7FC[i]->work[0], 1); - lbl_1_bss_7FC[i]->work[2] = i; + omSetRot(itemObj[i], 0.0f, itemAngle, 0.0f); + itemObj[i]->work[0] = Hu3DAnimCreate(itemAnim, itemObj[i]->model[0], "item01"); + Hu3DAnimAttrSet(itemObj[i]->work[0], 1); + itemObj[i]->work[2] = i; } for (i = 0; i < 4; i++) { - Hu3DAnmNoSet(lbl_1_bss_7FC[i]->work[0], lbl_1_bss_7FC[i]->work[1]); + Hu3DAnmNoSet(itemObj[i]->work[0], itemObj[i]->work[1]); } } -void fn_1_DD84(void) +void RoundItemKill(void) { s32 i; for (i = 0; i < 4; i++) { if (i != 0) { - Hu3DModelKill(lbl_1_bss_7FC[i]->model[0]); + Hu3DModelKill(itemObj[i]->model[0]); } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); - Hu3DAnimKill(lbl_1_bss_7FC[i]->work[0]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 0); + Hu3DAnimKill(itemObj[i]->work[0]); } - Hu3DModelKill(lbl_1_bss_7FC[i]->model[1]); - omDelObjEx(boardObjMan, lbl_1_bss_7FC[i]); + Hu3DModelKill(itemObj[i]->model[1]); + omDelObjEx(boardObjMan, itemObj[i]); } - if (lbl_1_bss_7A0) { - HuSprAnimKill(lbl_1_bss_7A0); - lbl_1_bss_7A0 = NULL; + if (roundItemEffAnim) { + HuSprAnimKill(roundItemEffAnim); + roundItemEffAnim = NULL; } } -void fn_1_DE94(void) +void RoundItemEventStart(void) { s32 i; - BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); + BoardModelPosGet(mapObjMdlId[MAPOBJ_ROUNDITEM], &roundItemPos); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->func = fn_1_FED0; + itemObj[i]->func = RoundItemItemUpdate; } - lbl_1_bss_7F4 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_E2B8); - lbl_1_bss_7F8 = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, fn_1_E44C); - lbl_1_bss_7F8->work[3] = rand8() % 200 + 10; - lbl_1_bss_7E4 = GWSystem.player_curr; - BoardPlayerPosGet(lbl_1_bss_7E4, &lbl_1_bss_7C4); - lbl_1_bss_7EC = 1.0f; - lbl_1_bss_7E8 = 1.0f; - lbl_1_bss_7AA = 0; - lbl_1_bss_7BC = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F40[GWPlayer[lbl_1_bss_7E4].character]); - lbl_1_bss_7B8 = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F60[GWPlayer[lbl_1_bss_7E4].character]); - lbl_1_bss_7A0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); - HuSprAnimLock(lbl_1_bss_7A0); - lbl_1_bss_7B4 = 0; + roundItemMainObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, RoundItemMainUpdate); + roundItemUmaObj = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, RoundItemUmaStop); + roundItemUmaObj->work[3] = rand8() % 200 + 10; + roundItemPlayer = GWSystem.player_curr; + BoardPlayerPosGet(roundItemPlayer, &roundItemPlayerPos); + umaSpeed = 1.0f; + borderSpeed = 1.0f; + roundItemStopF = 0; + itemGetMotId = BoardPlayerMotionCreate(roundItemPlayer, itemGetMotTbl[GWPlayer[roundItemPlayer].character]); + jumpMotId = BoardPlayerMotionCreate(roundItemPlayer, jumpMotTbl[GWPlayer[roundItemPlayer].character]); + roundItemEffAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); + HuSprAnimLock(roundItemEffAnim); + umaStopF = 0; } -static void fn_1_E100(void) +static void RoundItemEnd(void) { - lbl_1_bss_7AA = 1; + roundItemStopF = 1; BoardMGExit(); HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, HU3D_MOTATTR_REV); } -static void fn_1_E154(void) +static void RoundItemClose(void) { - fn_1_DD84(); - BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7BC); - BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7B8); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + RoundItemKill(); + BoardPlayerMotionKill(roundItemPlayer, itemGetMotId); + BoardPlayerMotionKill(roundItemPlayer, jumpMotId); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); BoardMGDoneFlagSet(0); } -static void fn_1_E2B8(omObjData *arg0) +static void RoundItemMainUpdate(omObjData *obj) { - if (lbl_1_bss_7AA == 1 && BoardMGDoneFlagGet() == 1) { - fn_1_E154(); - omDelObjEx(HuPrcCurrentGet(), arg0); + if (roundItemStopF == 1 && BoardMGDoneFlagGet() == 1) { + RoundItemClose(); + omDelObjEx(HuPrcCurrentGet(), obj); } } -static char *lbl_1_data_F9C[] = { "uma1", "uma2", "uma3", "uma4" }; +static char *umaHookTbl[] = { "uma1", "uma2", "uma3", "uma4" }; -static void fn_1_E44C(omObjData *arg0) +static void RoundItemUmaStop(omObjData *obj) { - Vec sp18; - Vec spC; - float temp_f27; - float var_f29; - float temp_f28; - float var_f26; - float var_f24; + Vec playerPos; + Vec objPos; + float umaDist; + float motTime; + float motMaxTime; + float umaMinDist; s32 i; - temp_f28 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f29 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - if (var_f29 >= temp_f28) { - var_f29 -= temp_f28; + motMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + motTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + if (motTime >= motMaxTime) { + motTime -= motMaxTime; } - var_f24 = fmod(var_f29, temp_f28 / 4); - if (var_f24 >= temp_f28 / 4 - 30.0f && lbl_1_bss_7B4 == 0) { - lbl_1_bss_7B4 = 1; - lbl_1_bss_7A8 = 90; + if (fmodf(motTime, motMaxTime / 4) >= motMaxTime / 4 - 30.0f && umaStopF == 0) { + umaStopF = 1; + umaStopTimer = 90; } - if (lbl_1_bss_7B4 != 0) { - lbl_1_bss_7EC *= 0.97f; - lbl_1_bss_7A8--; + if (umaStopF != 0) { + umaSpeed *= 0.97f; + umaStopTimer--; } - if (lbl_1_bss_7EC != 1.0f && lbl_1_bss_7A8 == 0) { - lbl_1_bss_7EC = 0.0f; + if (umaSpeed != 1.0f && umaStopTimer == 0) { + umaSpeed = 0.0f; BoardAudSeqPause(0, 1, 1000); - BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[0], &spC); - var_f26 = VECSquareDistance(&sp18, &spC); - arg0->work[2] = 0; + BoardPlayerPosGet(roundItemPlayer, &playerPos); + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[0], &objPos); + umaMinDist = VECSquareDistance(&playerPos, &objPos); + obj->work[2] = 0; for (i = 1; i < 4; i++) { - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[i], &spC); - temp_f27 = VECSquareDistance(&sp18, &spC); - if (temp_f27 < var_f26) { - var_f26 = temp_f27; - arg0->work[2] = i; + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[i], &objPos); + umaDist = VECSquareDistance(&playerPos, &objPos); + if (umaDist < umaMinDist) { + umaMinDist = umaDist; + obj->work[2] = i; } } - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0->work[2]], &lbl_1_bss_7D8); - VECSubtract(&lbl_1_bss_7D8, &sp18, &spC); - VECNormalize(&spC, &spC); - arg0->trans.x = spC.x; - arg0->trans.y = spC.y; - arg0->trans.z = spC.z; - arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7D8, &sp18); - arg0->rot.y = 10.0f; - arg0->rot.z = sp18.y; - arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - arg0->func = fn_1_E914; + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[obj->work[2]], &umaPos); + VECSubtract(&umaPos, &playerPos, &objPos); + VECNormalize(&objPos, &objPos); + obj->trans.x = objPos.x; + obj->trans.y = objPos.y; + obj->trans.z = objPos.z; + obj->rot.x = VECDistanceXZ(&umaPos, &playerPos); + obj->rot.y = 10.0f; + obj->rot.z = playerPos.y; + obj->scale.x = 0.0f; + BoardPlayerMotionShiftSet(roundItemPlayer, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + obj->func = RoundItemPlayerJump; } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], umaSpeed); } -static void fn_1_E914(omObjData *arg0) +static void RoundItemPlayerJump(omObjData *obj) { - Vec spC; + Vec pos; s32 i; - BoardPlayerPosGet(lbl_1_bss_7E4, &spC); - spC.x += arg0->trans.x * arg0->rot.x / 32.760002f; - spC.z += arg0->trans.z * arg0->rot.x / 32.760002f; - spC.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; - arg0->scale.x += 1.0f; - if (VECDistanceXZ(&lbl_1_bss_7D8, &spC) < 2.0f) { - spC = lbl_1_bss_7D8; - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10BB0(arg0->work[2]), 0.0f); - lbl_1_bss_7EC = 0.05f; - lbl_1_bss_7E8 = 0.05f; - BoardModelAttrReset(lbl_1_bss_6C4[18], 0x40000002); - BoardModelAttrSet(lbl_1_bss_6C4[18], 0x40000001); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); + BoardPlayerPosGet(roundItemPlayer, &pos); + pos.x += obj->trans.x * obj->rot.x / 32.760002f; + pos.z += obj->trans.z * obj->rot.x / 32.760002f; + pos.y += obj->rot.y - 0.016666668f * obj->scale.x * obj->scale.x; + obj->scale.x += 1.0f; + if (VECDistanceXZ(&umaPos, &pos) < 2.0f) { + pos = umaPos; + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemUmaRotYGet(obj->work[2]), 0.0f); + umaSpeed = 0.05f; + borderSpeed = 0.05f; + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], HU3D_MOTATTR_PAUSE); + BoardModelAttrSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], HU3D_MOTATTR_LOOP); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->func = fn_1_FED0; + itemObj[i]->func = RoundItemItemUpdate; } - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); - lbl_1_bss_7D6 = MGSeqStartCreate(); + BoardPlayerMotionShiftSet(roundItemPlayer, jumpMotId, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + seqStartId = MGSeqStartCreate(); BoardMusStart(1, 0xE, 0x7F, 0); - arg0->func = fn_1_ECD4; + obj->func = RoundItemStartWait; } - BoardPlayerPosSetV(lbl_1_bss_7E4, &spC); + BoardPlayerPosSetV(roundItemPlayer, &pos); } -static void fn_1_ECD4(omObjData *arg0) +static void RoundItemStartWait(omObjData *obj) { - lbl_1_bss_7EC *= 1.05f; - lbl_1_bss_7E8 *= 1.05f; - if (lbl_1_bss_7EC > 2.0f) { - lbl_1_bss_7EC = 2.0f; + umaSpeed *= 1.05f; + borderSpeed *= 1.05f; + if (umaSpeed > 2.0f) { + umaSpeed = 2.0f; } - if (lbl_1_bss_7E8 > 4.0f) { - lbl_1_bss_7E8 = 4.0f; + if (borderSpeed > 4.0f) { + borderSpeed = 4.0f; } - if (MGSeqStatGet(lbl_1_bss_7D6) == 0) { - lbl_1_bss_7EC = 2.0f; - lbl_1_bss_7E8 = 4.0f; - arg0->func = fn_1_EED8; - lbl_1_bss_7D2 = 5; - lbl_1_bss_7D0 = 60; - lbl_1_bss_7D4 = MGSeqTimerCreateXY(lbl_1_bss_7D2, 288, 64); + if (MGSeqStatGet(seqStartId) == 0) { + umaSpeed = 2.0f; + borderSpeed = 4.0f; + obj->func = RoundItemInputWait; + timerSec = 5; + timerFrame = REFRESH_RATE; + timerSeqId = MGSeqTimerCreateXY(timerSec, 288, 64); } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); - fn_1_10CF0(arg0->work[2]); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], umaSpeed); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], borderSpeed); + RoundItemUmaPlayerSet(obj->work[2]); } -static void fn_1_EEA0(omObjData *arg0, u16 *arg1) +static void RoundItemComInputGet(omObjData *obj, u16 *btn) { - *arg1 = 0; - if (arg0->work[3] != 0) { - arg0->work[3]--; + *btn = 0; + if (obj->work[3] != 0) { + obj->work[3]--; } else { - *arg1 |= 0x100; + *btn |= PAD_BUTTON_A; } } -static void fn_1_EED8(omObjData *arg0) +static void RoundItemInputWait(omObjData *obj) { - s16 temp_r29; - u16 var_r30; + s16 padNo; + u16 btn; - fn_1_10CF0(arg0->work[2]); - temp_r29 = GWPlayer[lbl_1_bss_7E4].port; - if ((lbl_1_bss_7D0 -= 1) == 0) { - if ((lbl_1_bss_7D2 -= 1) >= 0) { - MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2); + RoundItemUmaPlayerSet(obj->work[2]); + padNo = GWPlayer[roundItemPlayer].port; + if ((--timerFrame) == 0) { + if ((--timerSec) >= 0) { + MGSeqParamSet(timerSeqId, 1, timerSec); } - lbl_1_bss_7D0 = 60; + timerFrame = REFRESH_RATE; } - if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) { - fn_1_EEA0(arg0, &var_r30); + if (GWPlayerCfg[roundItemPlayer].iscom == 1) { + RoundItemComInputGet(obj, &btn); } else { - var_r30 = HuPadBtnDown[temp_r29]; + btn = HuPadBtnDown[padNo]; } - if (lbl_1_bss_7D2 < 0 || (var_r30 & 0x100)) { - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 0.0f); - MGSeqParamSet(lbl_1_bss_7D4, 2, -1); - arg0->scale.y = 0.0f; - arg0->func = fn_1_F09C; + if (timerSec < 0 || (btn & PAD_BUTTON_A)) { + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 0.0f); + MGSeqParamSet(timerSeqId, 2, -1); + obj->scale.y = 0.0f; + obj->func = RoundItemStop; } } -static void fn_1_F09C(omObjData *arg0) +static void RoundItemStop(omObjData *obj) { - float temp_f31; - float var_f30; + float maxTime; + float time; - temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - arg0->scale.y += lbl_1_bss_7E8; - if (arg0->scale.y >= temp_f31 - 150.0f) { - lbl_1_bss_7E8 *= 0.9745f; - if (lbl_1_bss_7E8 < 0.08f) { - lbl_1_bss_7E8 = 0.08f; + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + obj->scale.y += borderSpeed; + if (obj->scale.y >= maxTime - 150.0f) { + borderSpeed *= 0.9745f; + if (borderSpeed < 0.08f) { + borderSpeed = 0.08f; } } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); - if (arg0->scale.y >= temp_f31) { - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); - var_f30 = arg0->scale.y - temp_f31 + BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - if (var_f30 > temp_f31) { - var_f30 -= temp_f31; + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], borderSpeed); + if (obj->scale.y >= maxTime) { + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); + time = obj->scale.y - maxTime + BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + if (time > maxTime) { + time -= maxTime; } - BoardModelMotionTimeSet(lbl_1_bss_6C4[18], var_f30); - arg0->work[0] = fn_1_1001C(arg0->work[2]); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); - BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, - lbl_1_bss_7FC[arg0->work[0]]->trans.z); + BoardModelMotionTimeSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], time); + obj->work[0] = RoundItemItemGet(obj->work[2]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 1); + BoardModelPosSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], itemObj[obj->work[0]]->trans.x, itemObj[obj->work[0]]->trans.y + 1.0f, + itemObj[obj->work[0]]->trans.z); BoardModelRotSet( - lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z); - arg0->work[1] = 60; + mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], itemObj[obj->work[0]]->rot.x, itemObj[obj->work[0]]->rot.y + 1.0f, itemObj[obj->work[0]]->rot.z); + obj->work[1] = 60; BoardAudSeqFadeOut(1, 100); - arg0->func = fn_1_F348; + obj->func = RoundItemLightFlicker; HuAudFXPlay(0x40A); } } -static void fn_1_F348(omObjData *arg0) +static void RoundItemLightFlicker(omObjData *obj) { - if ((arg0->work[1] / 4) & 1) { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + if ((obj->work[1] / 4) & 1) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 1); } - if ((arg0->work[1] -= 1) == 0) { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); - fn_1_101B8(arg0->work[0]); + if ((--obj->work[1]) == 0) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); + ItemGetCreate(obj->work[0]); HuAudFXPlay(0x310); - arg0->func = fn_1_F3F8; + obj->func = RoundItemUmaJumpWait; } } -static void fn_1_F3F8(omObjData *arg0) +static void RoundItemUmaJumpWait(omObjData *obj) { - Vec sp18; - Vec spC; + Vec playerPos; + Vec dir; - if (lbl_1_bss_7F0->work[0] != 1) { + if (itemGetObj->work[0] != 1) { return; } - BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); - VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - VECNormalize(&spC, &spC); - arg0->trans.x = spC.x; - arg0->trans.y = spC.y; - arg0->trans.z = spC.z; - arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7C4, &sp18); - arg0->scale.y = 20.0f + 40.0f * (arg0->rot.x / 445.0f); - arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2); - arg0->rot.z = sp18.y; - arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - VECNormalize(&spC, &spC); - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f); - arg0->func = fn_1_F6E8; + BoardPlayerPosGet(roundItemPlayer, &playerPos); + VECSubtract(&roundItemPlayerPos, &playerPos, &dir); + VECNormalize(&dir, &dir); + obj->trans.x = dir.x; + obj->trans.y = dir.y; + obj->trans.z = dir.z; + obj->rot.x = VECDistanceXZ(&roundItemPlayerPos, &playerPos); + obj->scale.y = 20.0f + 40.0f * (obj->rot.x / 445.0f); + obj->rot.y = 0.016666668f * (obj->scale.y / 2) * (obj->scale.y / 2); + obj->rot.z = playerPos.y; + obj->scale.x = 0.0f; + BoardPlayerMotionShiftSet(roundItemPlayer, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + VECSubtract(&roundItemPlayerPos, &playerPos, &dir); + VECNormalize(&dir, &dir); + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemAngleGet(&dir), 0.0f); + obj->func = RoundItemUmaJump; } -static void fn_1_F6E8(omObjData *arg0) +static void RoundItemUmaJump(omObjData *obj) { - Vec sp8; + Vec pos; - BoardPlayerPosGet(lbl_1_bss_7E4, &sp8); - sp8.x += arg0->trans.x * arg0->rot.x / arg0->scale.y; - sp8.z += arg0->trans.z * arg0->rot.x / arg0->scale.y; - sp8.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; - arg0->scale.x += 1.0f; - if (sp8.y < lbl_1_bss_80C.y || arg0->scale.x >= arg0->scale.y) { - sp8.y = lbl_1_bss_80C.y; - BoardCameraMotionStart(BoardPlayerModelGet(lbl_1_bss_7E4), NULL, 700.0f, -1.0f); - BoardPlayerMotionStart(lbl_1_bss_7E4, 2, 0x40000001); - arg0->func = fn_1_F890; + BoardPlayerPosGet(roundItemPlayer, &pos); + pos.x += obj->trans.x * obj->rot.x / obj->scale.y; + pos.z += obj->trans.z * obj->rot.x / obj->scale.y; + pos.y += obj->rot.y - 0.016666668f * obj->scale.x * obj->scale.x; + obj->scale.x += 1.0f; + if (pos.y < roundItemPos.y || obj->scale.x >= obj->scale.y) { + pos.y = roundItemPos.y; + BoardCameraMotionStart(BoardPlayerModelGet(roundItemPlayer), NULL, 700.0f, -1.0f); + BoardPlayerMotionStart(roundItemPlayer, 2, HU3D_MOTATTR_LOOP); + obj->func = RoundItemRotatePlayer; } - BoardPlayerPosSetV(lbl_1_bss_7E4, &sp8); + BoardPlayerPosSetV(roundItemPlayer, &pos); } -static void fn_1_F890(omObjData *arg0) +static void RoundItemRotatePlayer(omObjData *obj) { - Vec sp8; + Vec rot; - BoardPlayerRotGet(lbl_1_bss_7E4, &sp8); - if (sp8.y == 0.0f) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - lbl_1_bss_7F0->work[0] = 0; - lbl_1_bss_7F0->func = fn_1_10820; - arg0->func = fn_1_FA1C; + BoardPlayerRotGet(roundItemPlayer, &rot); + if (rot.y == 0.0f) { + BoardPlayerMotionShiftSet(roundItemPlayer, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + itemGetObj->work[0] = 0; + itemGetObj->func = ItemGetPlayerMove; + obj->func = RoundItemStreamWait; } - else if (sp8.y > 180.0f) { - if (360.0f - sp8.y < 3.0f) { - sp8.y = 0.0f; + else if (rot.y > 180.0f) { + if (360.0f - rot.y < 3.0f) { + rot.y = 0.0f; } else { - sp8.y += 3.0f; + rot.y += 3.0f; } } else { - if (sp8.y < 3.0f) { - sp8.y = 0.0f; + if (rot.y < 3.0f) { + rot.y = 0.0f; } else { - sp8.y -= 3.0f; + rot.y -= 3.0f; } } - BoardPlayerRotSetV(lbl_1_bss_7E4, &sp8); + BoardPlayerRotSetV(roundItemPlayer, &rot); } -static void fn_1_FA1C(omObjData *arg0) +static void RoundItemStreamWait(omObjData *obj) { - if (lbl_1_bss_7F0->work[0] == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - arg0->work[0] = 30; - lbl_1_bss_7A4 = HuAudSStreamPlay(2); - arg0->func = fn_1_FABC; + if (itemGetObj->work[0] == 1) { + BoardPlayerMotionShiftSet(roundItemPlayer, itemGetMotId, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->work[0] = 30; + roundItemStreamId = HuAudSStreamPlay(2); + obj->func = RoundItemWinWait; } } -static void fn_1_FABC(omObjData *arg0) +static void RoundItemWinWait(omObjData *obj) { - Process *var_r30; + Process *proc; - if (arg0->work[0] == 0) { - if (HuAudSStreamStatGet(lbl_1_bss_7A4) == 0) { - var_r30 = HuPrcCreate(fn_1_FB58, 0x2004, 0x1000, 0); - var_r30->user_data = arg0; + if (obj->work[0] == 0) { + if (HuAudSStreamStatGet(roundItemStreamId) == 0) { + proc = HuPrcCreate(ItemGetWinExec, 0x2004, 0x1000, 0); + proc->user_data = obj; BoardAudSeqPause(0, 0, 1000); - arg0->func = NULL; + obj->func = NULL; } } else { - arg0->work[0]--; + obj->work[0]--; } } -static void fn_1_FB58(void) +static void ItemGetWinExec(void) { - omObjData *temp_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(10, 6), 0); - BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_7F0->work[1]), 0); + BoardWinInsertMesSet(MAKE_MESSID(8, itemGetObj->work[1]), 0); BoardWinWait(); BoardWinKill(); - temp_r31 = HuPrcCurrentGet()->user_data; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - lbl_1_bss_7F0->work[0] = 0; + obj = HuPrcCurrentGet()->user_data; + BoardPlayerMotionShiftSet(roundItemPlayer, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + itemGetObj->work[0] = 0; HuAudFXPlay(0x30D); - HuAudFXFadeOut(lbl_1_bss_7AC, 1000); - lbl_1_bss_7F0->func = fn_1_10AE8; - temp_r31->func = fn_1_FC3C; + HuAudFXFadeOut(itemGetSeNo, 1000); + itemGetObj->func = ItemGetShrink; + obj->func = ItemGetShrinkWait; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_FC3C(omObjData *arg0) +static void ItemGetShrinkWait(omObjData *obj) { - Process *var_r31; + Process *proc; - if (lbl_1_bss_7F0->work[0] == 1) { - BoardPlayerItemAdd(lbl_1_bss_7E4, lbl_1_bss_7F0->work[1]); - omVibrate(lbl_1_bss_7E4, 12, 6, 6); - var_r31 = HuPrcCreate(fn_1_FCEC, 0x2004, 0x1000, 0); - var_r31->user_data = arg0; - arg0->func = NULL; + if (itemGetObj->work[0] == 1) { + BoardPlayerItemAdd(roundItemPlayer, itemGetObj->work[1]); + omVibrate(roundItemPlayer, 12, 6, 6); + proc = HuPrcCreate(ItemGetReturnWinExec, 0x2004, 0x1000, 0); + proc->user_data = obj; + obj->func = NULL; } } -static void fn_1_FCEC(void) +static void ItemGetReturnWinExec(void) { - omObjData *var_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(10, 7), 0); BoardWinWait(); BoardWinKill(); - var_r31 = HuPrcCurrentGet()->user_data; - var_r31->func = fn_1_FD3C; + obj = HuPrcCurrentGet()->user_data; + obj->func = RoundItemGameClose; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_FD3C(omObjData *arg0) +static void RoundItemGameClose(omObjData *obj) { BoardStatusShowSetAll(1); - BoardCameraTargetModelSet(lbl_1_bss_6C4[21]); + BoardCameraTargetModelSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP]); BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); BoardCameraXRotZoomSet(1200.0f, -45.0f); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 1.0f); - Hu3DModelKill(lbl_1_bss_7F0->model[0]); - Hu3DModelKill(lbl_1_bss_7F0->model[1]); - Hu3DModelKill(lbl_1_bss_7F0->model[2]); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_7F0); - arg0->func = fn_1_FE44; + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 1.0f); + Hu3DModelKill(itemGetObj->model[0]); + Hu3DModelKill(itemGetObj->model[1]); + Hu3DModelKill(itemGetObj->model[2]); + omDelObjEx(HuPrcCurrentGet(), itemGetObj); + obj->func = RoundItemGameEnd; } -static void fn_1_FE44(omObjData *arg0) +static void RoundItemGameEnd(omObjData *obj) { - if (BoardStatusStopCheck(lbl_1_bss_7E4) && BoardCameraMotionIsDone()) { - lbl_1_bss_7AA = 1; - BoardMGExit(); - HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); - arg0->func = NULL; + if (BoardStatusStopCheck(roundItemPlayer) && BoardCameraMotionIsDone()) { + RoundItemEnd(); + obj->func = NULL; } } -static void fn_1_FED0(omObjData *arg0) +static void RoundItemItemUpdate(omObjData *obj) { - float temp_f30; - float var_f31; - float var_f29; + float time; + float rotY; + float maxTime; - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - var_f31 = 90.0f - 90.0f * arg0->work[2] + 360.0f * (temp_f30 / var_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + time = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + rotY = 90.0f - 90.0f * obj->work[2] + 360.0f * (time / maxTime); + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - omSetRot(arg0, 0.0f, var_f31, 0.0f); + omSetRot(obj, 0.0f, rotY, 0.0f); } -static s16 fn_1_1001C(u32 arg0) +static s16 RoundItemItemGet(u32 umaNo) { - float var_f29; - float var_f28; - float temp_f27; - float temp_f26; - float var_f31; - float var_f30; + float umaMaxTime; + float umaAngle; + float borderAngle; + float angle; + float umaTime; - temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - temp_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (var_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += var_f29; + borderAngle = 360.0f - 360.0f * (BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]) / BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER])); + umaTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + umaMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + umaTime = umaTime - (umaMaxTime / 4) * umaNo; + if (umaTime < 0.0f) { + umaTime += umaMaxTime; } - var_f28 = 360.0f * (var_f30 / var_f29); - var_f31 = var_f28 - temp_f27; - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + umaAngle = 360.0f * (umaTime / umaMaxTime); + angle = umaAngle - borderAngle; + if (angle < 0.0f) { + angle += 360.0f; } - var_f31 /= 90.0f; - return var_f31; + angle /= 90.0f; + return angle; } -static void fn_1_101B8(s16 arg0) +static void ItemGetCreate(s16 itemNo) { - omObjData *var_r31; - float *var_r30; - float var_f27; - float temp_f26; - float temp_f30; - float temp_f29; - float temp_f28; - float var_f31; + omObjData *obj; + float *data; + float borderAngle; + float posX; + float posY; + float posZ; + float angle; - var_r31 = lbl_1_bss_7F0 = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, fn_1_10664); - var_r31->model[0] = lbl_1_bss_7FC[arg0]->model[1]; - Hu3DModelAttrReset(var_r31->model[0], HU3D_ATTR_DISPOFF); - lbl_1_bss_7F0->work[1] = lbl_1_bss_7FC[arg0]->work[1]; - lbl_1_bss_7F0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); - var_r30 = lbl_1_bss_7F0->data; - omSetRot(var_r31, 0.0f, 0.0f, 0.0f); - omSetSca(var_r31, 0.0f, 0.0f, 0.0f); - temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - var_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); - var_f31 = 45.0f + var_f27 + 90.0f * arg0; - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + obj = itemGetObj = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, ItemGetObjUpdate); + obj->model[0] = itemObj[itemNo]->model[1]; + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + itemGetObj->work[1] = itemObj[itemNo]->work[1]; + itemGetObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); + data = itemGetObj->data; + omSetRot(obj, 0.0f, 0.0f, 0.0f); + omSetSca(obj, 0.0f, 0.0f, 0.0f); + borderAngle = 360.0f - 360.0f * (BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]) / BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER])); + angle = 45.0f + borderAngle + 90.0f * itemNo; + if (angle >= 360.0f) { + angle -= 360.0f; } - temp_f30 = lbl_1_bss_80C.x - 100.0 * cosd(var_f31); - temp_f28 = lbl_1_bss_80C.z - 100.0 * sind(var_f31); - temp_f29 = lbl_1_bss_80C.y + 66.0f + 1.0f; - omSetTra(var_r31, temp_f30, temp_f29, temp_f28); - var_r31->work[0] = 0; - var_r30[0] = 0.1f; - var_r30[2] = 20.0f; - var_r30[1] = 0.0f; - var_r31->model[1] = Hu3DParticleCreate(lbl_1_bss_7A0, 200); - var_r31->model[2] = Hu3DParticleCreate(lbl_1_bss_7A0, 100); - Hu3DParticleHookSet(var_r31->model[1], fn_1_11064); - Hu3DParticleHookSet(var_r31->model[2], fn_1_11484); - Hu3DParticleColSet(var_r31->model[1], 0xFF, 0xFF, 0); - Hu3DParticleColSet(var_r31->model[2], 0xFF, 0xFF, 0); - Hu3DModelPosSet(var_r31->model[1], 0.0f, 0.0f, 0.0f); - Hu3DModelPosSet(var_r31->model[2], temp_f30, temp_f29, temp_f28); - Hu3DParticleBlendModeSet(var_r31->model[1], 1); - Hu3DParticleBlendModeSet(var_r31->model[2], 1); - Hu3DModelLayerSet(var_r31->model[1], 3); - Hu3DModelLayerSet(var_r31->model[2], 3); - lbl_1_bss_7AC = HuAudFXPlay(0x35F); + posX = roundItemPos.x - 100.0 * cosd(angle); + posZ = roundItemPos.z - 100.0 * sind(angle); + posY = roundItemPos.y + 66.0f + 1.0f; + omSetTra(obj, posX, posY, posZ); + obj->work[0] = 0; + data[0] = 0.1f; + data[2] = 20.0f; + data[1] = 0.0f; + obj->model[1] = Hu3DParticleCreate(roundItemEffAnim, 200); + obj->model[2] = Hu3DParticleCreate(roundItemEffAnim, 100); + Hu3DParticleHookSet(obj->model[1], ItemGetEff1Hook); + Hu3DParticleHookSet(obj->model[2], ItemGetEff2Hook); + Hu3DParticleColSet(obj->model[1], 0xFF, 0xFF, 0); + Hu3DParticleColSet(obj->model[2], 0xFF, 0xFF, 0); + Hu3DModelPosSet(obj->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(obj->model[2], posX, posY, posZ); + Hu3DParticleBlendModeSet(obj->model[1], 1); + Hu3DParticleBlendModeSet(obj->model[2], 1); + Hu3DModelLayerSet(obj->model[1], 3); + Hu3DModelLayerSet(obj->model[2], 3); + itemGetSeNo = HuAudFXPlay(0x35F); } -static void fn_1_10664(omObjData *arg0) +static void ItemGetObjUpdate(omObjData *obj) { - float *temp_r31; - float var_f31; + float *data; + float scale; - temp_r31 = arg0->data; - var_f31 = temp_r31[0]; - if (arg0->work[0] == 0) { - if (var_f31 > 1.0f) { - var_f31 = 1.0f; + data = obj->data; + scale = data[0]; + if (obj->work[0] == 0) { + if (scale > 1.0f) { + scale = 1.0f; } else { - temp_r31[0] += 0.025f; + data[0] += 0.025f; } - arg0->trans.y += temp_r31[2]; - temp_r31[2] -= 1.0f; - if (temp_r31[2] < 0.0f && arg0->trans.y < lbl_1_bss_80C.y + 66.0f + 1.0f + 90.0f) { - arg0->work[0] = 1; + obj->trans.y += data[2]; + data[2] -= 1.0f; + if (data[2] < 0.0f && obj->trans.y < roundItemPos.y + 66.0f + 1.0f + 90.0f) { + obj->work[0] = 1; } - omSetSca(arg0, var_f31, var_f31, var_f31); + omSetSca(obj, scale, scale, scale); } else { - arg0->trans.y += sind(temp_r31[1]); - temp_r31[1] += 4.0f; - if (temp_r31[1] >= 360.0f) { - temp_r31[1] -= 360.0f; + obj->trans.y += sind(data[1]); + data[1] += 4.0f; + if (data[1] >= 360.0f) { + data[1] -= 360.0f; } } } -static void fn_1_10820(omObjData *arg0) +static void ItemGetPlayerMove(omObjData *obj) { - Vec sp24; - Vec sp18; - Vec spC; + Vec playerPos; + Vec objPos; + Vec dir; float var_f28; - float *temp_r30; + float *data; - temp_r30 = arg0->data; - if (arg0->work[0] == 0) { - BoardPlayerPosGet(lbl_1_bss_7E4, &sp24); - sp18.x = arg0->trans.x; - sp18.y = 0.0f; - sp18.z = arg0->trans.z; - sp24.y = 0.0f; - VECSubtract(&sp24, &sp18, &spC); - VECNormalize(&spC, &spC); - var_f28 = VECDistanceXZ(&sp24, &sp18); + data = obj->data; + if (obj->work[0] == 0) { + BoardPlayerPosGet(roundItemPlayer, &playerPos); + objPos.x = obj->trans.x; + objPos.y = 0.0f; + objPos.z = obj->trans.z; + playerPos.y = 0.0f; + VECSubtract(&playerPos, &objPos, &dir); + VECNormalize(&dir, &dir); + var_f28 = VECDistanceXZ(&playerPos, &objPos); if (var_f28 < 8.0f) { - arg0->trans.x = sp24.x; - arg0->trans.z = sp24.z; - arg0->work[0] = 1; + obj->trans.x = playerPos.x; + obj->trans.z = playerPos.z; + obj->work[0] = 1; } else { - arg0->trans.x += 8.0f * spC.x; - arg0->trans.z += 8.0f * spC.z; + obj->trans.x += 8.0f * dir.x; + obj->trans.z += 8.0f * dir.z; } } - arg0->trans.y += sind(temp_r30[1]); - temp_r30[1] += 4.0f; - if (temp_r30[1] >= 360.0f) { - temp_r30[1] -= 360.0f; + obj->trans.y += sind(data[1]); + data[1] += 4.0f; + if (data[1] >= 360.0f) { + data[1] -= 360.0f; } } -static void fn_1_10AE8(omObjData *arg0) +static void ItemGetShrink(omObjData *obj) { - float *temp_r31; + float *data; - temp_r31 = arg0->data; - if (arg0->work[0] == 0) { - temp_r31[0] -= 0.016666668f; - if (temp_r31[0] <= 0.0f) { - temp_r31[0] = 0.0f; - arg0->work[0] = 1; - HuAudFXStop(lbl_1_bss_7AC); + data = obj->data; + if (obj->work[0] == 0) { + data[0] -= 0.016666668f; + if (data[0] <= 0.0f) { + data[0] = 0.0f; + obj->work[0] = 1; + HuAudFXStop(itemGetSeNo); } - arg0->trans.y -= 2.1666667f; + obj->trans.y -= 2.1666667f; } - omSetSca(arg0, temp_r31[0], temp_r31[0], temp_r31[0]); + omSetSca(obj, data[0], data[0], data[0]); } -static float fn_1_10BB0(u32 arg0) +static float RoundItemUmaRotYGet(u32 umaNo) { - float var_f30; - float temp_f29; - float var_f31; + float time; + float maxTime; + float rotY; - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (temp_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += temp_f29; + time = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + time = time - (maxTime / 4) * umaNo; + if (time < 0.0f) { + time += maxTime; } - var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + rotY = 180.0f + -360.0f * (time / maxTime); + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - return var_f31; + return rotY; } -static void fn_1_10CF0(u32 arg0) +static void RoundItemUmaPlayerSet(u32 umaNo) { - float var_f30; - float temp_f29; - float var_f31; - float var_f28; - - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0], &lbl_1_bss_7D8); - BoardPlayerPosSetV(lbl_1_bss_7E4, &lbl_1_bss_7D8); - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (temp_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += temp_f29; - } - var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; - } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; - } - var_f28 = var_f31; - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, var_f28, 0.0f); + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[umaNo], &umaPos); + BoardPlayerPosSetV(roundItemPlayer, &umaPos); + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemUmaRotYGet(umaNo), 0.0f); } -static float fn_1_10EB8(Vec *arg0) +static float RoundItemAngleGet(Vec *dir) { - float var_f31; + float angle; - if (arg0->x || arg0->z) { - if (arg0->x == 0.0f) { - if (arg0->z > 0.0f) { + if (dir->x || dir->z) { + if (dir->x == 0.0f) { + if (dir->z > 0.0f) { return 0.0f; } else { return 180.0f; } } - if (arg0->z == 0.0f) { - if (arg0->x > 0.0f) { + if (dir->z == 0.0f) { + if (dir->x > 0.0f) { return 90.0f; } else { return 270.0f; } } - var_f31 = atan2d(arg0->z, arg0->x); - if (arg0->z < 0.0f) { - var_f31 = 90.0f - var_f31; + angle = atan2d(dir->z, dir->x); + if (dir->z < 0.0f) { + angle = 90.0f - angle; } else { - var_f31 = 90.0f - var_f31; - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + angle = 90.0f - angle; + if (angle < 0.0f) { + angle += 360.0f; } } - return var_f31; + return angle; } return -1.0f; } -static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) +static void ItemGetEff1Hook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *var_r31; - float temp_f30; - float temp_f29; - float temp_f31; - s32 var_r28; + HsfanimStruct01 *particleDataP; + float angle; + float radius; + float radiusBase; + s32 j; s32 i; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk40.a = 0; - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk40.a = 0; + particleDataP->unk2C = 0.0f; } particle->unk_00 = 0; } - temp_f31 = lbl_1_bss_7F0->scale.x; + radiusBase = itemGetObj->scale.x; for (i = 0; i < 30; i++) { - var_r31 = particle->unk_48; - for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { break; } } - if (var_r28 != particle->unk_30) { - temp_f30 = 0.003921569f * frand8() * 360.0f; - temp_f29 = 0.003921569f * frand8() * 70.0f * temp_f31; - var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sind(temp_f30); - var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cosd(temp_f30); - var_r31->unk34.y = lbl_1_bss_7F0->trans.y + temp_f31 * (-30.0f + 0.003921569f * frand8() * 60.0f); - var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f; - var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f; - var_r31->unk40.a = 0xB4; - var_r31->unk2C = 15.0f * temp_f31; + if (j != particle->unk_30) { + angle = 0.003921569f * frand8() * 360.0f; + radius = 0.003921569f * frand8() * 70.0f * radiusBase; + particleDataP->unk34.x = itemGetObj->trans.x + radius * sind(angle); + particleDataP->unk34.z = itemGetObj->trans.z + radius * cosd(angle); + particleDataP->unk34.y = itemGetObj->trans.y + radiusBase * (-30.0f + 0.003921569f * frand8() * 60.0f); + particleDataP->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f; + particleDataP->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f; + particleDataP->unk40.a = 0xB4; + particleDataP->unk2C = 15.0f * radiusBase; } } - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk2C != 0.0f) { - var_r31->unk34.y -= var_r31->unk08.x; - var_r31->unk2C -= var_r31->unk08.y; - if (var_r31->unk2C <= 0.0f) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C != 0.0f) { + particleDataP->unk34.y -= particleDataP->unk08.x; + particleDataP->unk2C -= particleDataP->unk08.y; + if (particleDataP->unk2C <= 0.0f) { + particleDataP->unk2C = 0.0f; } } } } -static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) +static void ItemGetEff2Hook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *var_r31; - float temp_f29; - float temp_f30; - float temp_f31; - s32 var_r28; - s32 var_r29; + HsfanimStruct01 *particleDataP; + float angle2; + float angle; + float radius; + s32 j; + s32 i; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - var_r31->unk40.a = 0; - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk40.a = 0; + particleDataP->unk2C = 0.0f; } particle->unk_00 = 0; } if (particle->unk_00 == 0) { - var_r31 = particle->unk_48; - for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - temp_f30 = 0.003921569f * frand8() * 360.0f; - temp_f31 = 0.003921569f * frand8() * 50.0f; - var_r31->unk08.x = temp_f31 * cosd(temp_f30); - var_r31->unk08.y = 2.0f + 0.003921569f * frand8() * 4.0f; - var_r31->unk08.z = temp_f31 * sind(temp_f30); - temp_f29 = 60.0f + 20.0f * frand8() * 0.003921569f; - temp_f31 = 4.0f + 5.0f * frand8() * 0.003921569f; - var_r31->unk14.x = temp_f31 * sind(temp_f30) * cosd(temp_f29); - var_r31->unk14.y = temp_f31 * sind(temp_f29); - var_r31->unk14.z = temp_f31 * cosd(temp_f30) * cosd(temp_f29); - var_r31->unk20 = 1.0f; - var_r31->unk40.a = 0xB4; - var_r31->unk2C = 9.0f + 0.003921569f * frand8() * 4.0f; + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + angle = 0.003921569f * frand8() * 360.0f; + radius = 0.003921569f * frand8() * 50.0f; + particleDataP->unk08.x = radius * cosd(angle); + particleDataP->unk08.y = 2.0f + 0.003921569f * frand8() * 4.0f; + particleDataP->unk08.z = radius * sind(angle); + angle2 = 60.0f + 20.0f * frand8() * 0.003921569f; + radius = 4.0f + 5.0f * frand8() * 0.003921569f; + particleDataP->unk14.x = radius * sind(angle) * cosd(angle2); + particleDataP->unk14.y = radius * sind(angle2); + particleDataP->unk14.z = radius * cosd(angle) * cosd(angle2); + particleDataP->unk20 = 1.0f; + particleDataP->unk40.a = 0xB4; + particleDataP->unk2C = 9.0f + 0.003921569f * frand8() * 4.0f; } particle->unk_00 = 1; } - var_r31 = particle->unk_48; - for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk2C != 0.0f) { - var_r31->unk34.x = var_r31->unk08.x + var_r31->unk14.x * var_r31->unk20; - var_r31->unk34.z = var_r31->unk08.z + var_r31->unk14.z * var_r31->unk20; - var_r31->unk34.y = var_r31->unk08.y + var_r31->unk14.y * var_r31->unk20 - 0.2f * var_r31->unk20 * var_r31->unk20; - var_r31->unk2C -= 0.25f; - var_r31->unk20 += 1.0f; - if (var_r31->unk2C <= 0.0f) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C != 0.0f) { + particleDataP->unk34.x = particleDataP->unk08.x + particleDataP->unk14.x * particleDataP->unk20; + particleDataP->unk34.z = particleDataP->unk08.z + particleDataP->unk14.z * particleDataP->unk20; + particleDataP->unk34.y = particleDataP->unk08.y + particleDataP->unk14.y * particleDataP->unk20 - 0.2f * particleDataP->unk20 * particleDataP->unk20; + particleDataP->unk2C -= 0.25f; + particleDataP->unk20 += 1.0f; + if (particleDataP->unk2C <= 0.0f) { + particleDataP->unk2C = 0.0f; } } } diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c index 8da93e44..ab699fc7 100644 --- a/src/REL/w02Dll/main.c +++ b/src/REL/w02Dll/main.c @@ -2,22 +2,22 @@ #include "game/frand.h" // Temporary defines -#define BOARD_ITEM_MINI 0x0 -#define BOARD_ITEM_MEGA 0x1 -#define BOARD_ITEM_SUPERMINI 0x2 -#define BOARD_ITEM_SUPERMEGA 0x3 -#define BOARD_ITEM_HAMMER 0x4 -#define BOARD_ITEM_PIPE 0x5 -#define BOARD_ITEM_CARD 0x6 -#define BOARD_ITEM_SPARKY 0x7 -#define BOARD_ITEM_GADDLIGHT 0x8 -#define BOARD_ITEM_CHOMPCALL 0x9 -#define BOARD_ITEM_SUIT 0xA -#define BOARD_ITEM_BOO 0xB -#define BOARD_ITEM_LAMP 0xC -#define BOARD_ITEM_BAG 0xD -#define BOARD_ITEM_MAX 0xE -#define BOARD_ITEM_NONE -1 +#define BOARD_ITEM_MINI 0x0 +#define BOARD_ITEM_MEGA 0x1 +#define BOARD_ITEM_SUPERMINI 0x2 +#define BOARD_ITEM_SUPERMEGA 0x3 +#define BOARD_ITEM_HAMMER 0x4 +#define BOARD_ITEM_PIPE 0x5 +#define BOARD_ITEM_CARD 0x6 +#define BOARD_ITEM_SPARKY 0x7 +#define BOARD_ITEM_GADDLIGHT 0x8 +#define BOARD_ITEM_CHOMPCALL 0x9 +#define BOARD_ITEM_SUIT 0xA +#define BOARD_ITEM_BOO 0xB +#define BOARD_ITEM_LAMP 0xC +#define BOARD_ITEM_BAG 0xD +#define BOARD_ITEM_MAX 0xE +#define BOARD_ITEM_NONE -1 /* BSS */ s16 lbl_1_bss_30[0x10]; // Model List @@ -25,30 +25,29 @@ s16 lbl_1_bss_2E; s16 lbl_1_bss_2C; Vec lbl_1_bss_20; Vec lbl_1_bss_14; -s32* lbl_1_bss_10; +s32 *lbl_1_bss_10; s16 lbl_1_bss_8[4]; // Item List -Process* lbl_1_bss_4; -u8* lbl_1_bss_0; +Process *lbl_1_bss_4; +u8 *lbl_1_bss_0; /* DATA */ -static BoardMapObject lbl_1_data_0[0x10] = { - {{2550.0f, 0.0f, -450.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000C)}, - {{-3150.0f, 0.0f, -1350.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000D)}, - {{-3150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000E)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0008)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0009)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000A)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000B)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0011)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0012)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0015)}, - {{-300.0f, 0.0f, -900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0016)}, - {{1175.0f, 0.0f, -125.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{-525.0f, 0.0f, -825.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{-2225.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{1925.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)} -}; +static BoardMapObject lbl_1_data_0[0x10] + = { { { 2550.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000C) }, + { { -3150.0f, 0.0f, -1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000D) }, + { { -3150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000E) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0008) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0009) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000A) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000B) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0011) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0012) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0015) }, + { { -300.0f, 0.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0016) }, + { { 1175.0f, 0.0f, -125.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { -525.0f, 0.0f, -825.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { -2225.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { 1925.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { 150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) } }; // Special Models s16 lbl_1_data_280 = -1; @@ -56,21 +55,15 @@ s16 lbl_1_data_282 = -1; s16 lbl_1_data_284 = -1; s16 lbl_1_data_286 = -1; -s32 lbl_1_data_288[] = { - DATA_MAKE_NUM(DATADIR_W02, 0x0004), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_288[] = { DATA_MAKE_NUM(DATADIR_W02, 0x0004), DATA_NUM_LISTEND }; s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), - DATA_NUM_LISTEND, + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), DATA_NUM_LISTEND, 0x00000000 // Padding }; /* Functions */ -//Actual externs +// Actual externs extern void BoardMusStart(s32, s32, s32, s32); extern void BoardAudSeqPause(s32, s32, s32); s8 BoardComPreferItemCheck(s32, s8, s8, s8); @@ -79,13 +72,15 @@ extern void BoardComKeySetRight(); extern void CharModelDataClose(s16); // function is probably global. only inlined in rels? -inline s32 get_current_board(void) { +inline s32 get_current_board(void) +{ return GWSystem.board; } -void BoardCreate(void) { +void BoardCreate(void) +{ s32 i, boardData; - BoardMapObject* modelTransform; + BoardMapObject *modelTransform; boardData = get_current_board(); lbl_1_bss_0 = GWSystem.board_data; @@ -106,12 +101,13 @@ void BoardCreate(void) { BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001); BoardLightHookSet(fn_1_72C, fn_1_770); - for(i = 0; i < 0x10; i++) { + for (i = 0; i < 0x10; i++) { modelTransform = &lbl_1_data_0[i]; if (modelTransform->data_num != -1) { if ((i == 0xB) || (i == 0xC) || (i == 0xD) || (i == 0xE) || (i == 0xF)) { lbl_1_bss_10 = lbl_1_data_290; - } else { + } + else { lbl_1_bss_10 = NULL; } lbl_1_bss_30[i] = BoardModelCreate(modelTransform->data_num, lbl_1_bss_10, 0); @@ -146,7 +142,8 @@ void BoardCreate(void) { BoardJunctionMaskSet(0x30); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ /* Kill Model List */ s32 i; for (i = 0; i < 0x10; i++) { @@ -176,17 +173,17 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -void fn_1_72C(void) { +void fn_1_72C(void) +{ s16 var = BoardModelIDGet(lbl_1_data_280); Hu3DModelLightInfoSet(var, 1); } -void fn_1_770(void) { - -} +void fn_1_770(void) { } /* Decrement current space's [UNKNOWN] flag */ -s32 fn_1_774(void) { +s32 fn_1_774(void) +{ u32 unkFlag; u32 currPlayer; u32 currSpace; @@ -194,7 +191,7 @@ s32 fn_1_774(void) { currPlayer = GWSystem.player_curr; currSpace = GWPlayer[currPlayer].space_curr; spaceFlags = BoardSpaceFlagGet(0, currSpace); - //temp_r31 = (temp_r) + // temp_r31 = (temp_r) unkFlag = (spaceFlags & 0x1C0) >> 6; if (unkFlag != 0) { unkFlag--; @@ -203,8 +200,9 @@ s32 fn_1_774(void) { } /* Check if can iteract with board object? */ -s32 fn_1_800(void) { - BoardSpace* currSpace; +s32 fn_1_800(void) +{ + BoardSpace *currSpace; s32 currPlayer; s32 var_r29; @@ -212,7 +210,6 @@ s32 fn_1_800(void) { currSpace = BoardSpaceGet(0, GWPlayer[currPlayer].space_curr); if ((currSpace->flag & 0x30) != 0) { - // If mega mushroom state return if (BoardPlayerSizeGet(currPlayer) == 2) { return 0; @@ -224,9 +221,11 @@ s32 fn_1_800(void) { if ((currSpace->flag & 0x20) != 0 && (currSpace->flag & 0x10) != 0) { var_r29 = 2; - } else if ((currSpace->flag & 0x20) != 0) { + } + else if ((currSpace->flag & 0x20) != 0) { var_r29 = 1; - } else { + } + else { var_r29 = 0; } fn_1_394C(var_r29); @@ -239,22 +238,23 @@ s32 fn_1_800(void) { return 0; } -void fn_1_92C(void) { +void fn_1_92C(void) +{ fn_1_39F4(); fn_1_5CF8(); } -void fn_1_950(void) { +void fn_1_950(void) { } -} - -void fn_1_954(void) { +void fn_1_954(void) +{ HuPrcSleep(0x3C); BoardMusStart(1, 0x12, 0x7F, 0); HuPrcEnd(); } -void fn_1_990(void) { +void fn_1_990(void) +{ Vec rotation; Vec offset; Vec boardSpacePos; @@ -264,13 +264,13 @@ void fn_1_990(void) { s32 currSpace; s32 spaceLinkFlag; - currPlayer = GWSystem.player_curr; BoardWinCreateChoice(2, MAKE_MESSID(19, 17), 4, 0); if (GWPlayer[currPlayer].com) { if (frandBool() != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -317,7 +317,8 @@ void fn_1_990(void) { BoardPlayerMotionStart(currPlayer, 1, 0x40000001); } -void fn_1_C50(void) { +void fn_1_C50(void) +{ Vec rotation; Vec offset; s32 currSpace; @@ -327,7 +328,7 @@ void fn_1_C50(void) { s32 i, j; currPlayer = GWSystem.player_curr; - if (BoardPlayerItemCount((s32) currPlayer) == 3) { + if (BoardPlayerItemCount((s32)currPlayer) == 3) { BoardWinCreate(2, MAKE_MESSID(19, 26), 4); BoardWinWait(); BoardWinKill(); @@ -351,7 +352,7 @@ void fn_1_C50(void) { } if (lbl_1_bss_8[i] != BOARD_ITEM_NONE) { i++; - } + } } } fn_1_79BC(lbl_1_bss_8); @@ -361,7 +362,8 @@ void fn_1_C50(void) { if (GWPlayer[currPlayer].com) { if (BoardComPreferItemCheck(currPlayer, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -387,14 +389,14 @@ void fn_1_C50(void) { offset.x = 0.0f; offset.y = 0.0f; offset.z = -250.0f; - BoardCameraMotionStartEx(lbl_1_bss_30[10], (Point3d* ) &rotation, (Point3d* ) &offset, 1500.0f, 25.0f, 0x15); + BoardCameraMotionStartEx(lbl_1_bss_30[10], (Vec *)&rotation, (Vec *)&offset, 1500.0f, 25.0f, 0x15); currSpace = GWPlayer[currPlayer].space_curr; spaceLinkFlags = BoardSpaceLinkFlagSearch(0, currSpace, 0x02000000U); BoardPlayerMoveBetween(currPlayer, currSpace, spaceLinkFlags); while (GWPlayer[currPlayer].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001); BoardPlayerMotBlendSet(currPlayer, 0xB4, 0xF); while (BoardPlayerMotBlendCheck(currPlayer) == 0) { HuPrcVSleep(); @@ -409,17 +411,19 @@ void fn_1_C50(void) { HuPrcVSleep(); } fn_1_5F90(); - BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001); HuPrcEnd(); } -void fn_1_1070(void) { +void fn_1_1070(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = 0; } -void fn_1_10A8(void) { +void fn_1_10A8(void) +{ lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); while (lbl_1_bss_4) { @@ -427,7 +431,8 @@ void fn_1_10A8(void) { } } -s32 fn_1_1128(void) { +s32 fn_1_1128(void) +{ u32 spaceFlags; s16 currSpace; currSpace = GWPlayer[GWSystem.player_curr].space_curr; @@ -436,7 +441,8 @@ s32 fn_1_1128(void) { if (spaceFlags & 0x200000) { fn_1_990(); - } else if (spaceFlags & 0x400000) { + } + else if (spaceFlags & 0x400000) { lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); while (lbl_1_bss_4) { @@ -447,7 +453,8 @@ s32 fn_1_1128(void) { BoardRollDispSet(1); } -void fn_1_121C(u32 mesg) { +void fn_1_121C(u32 mesg) +{ BoardWinCreate(2, mesg, 4); BoardWinWait(); BoardWinKill(); diff --git a/src/REL/w02Dll/mg_coin.c b/src/REL/w02Dll/mg_coin.c index d8678d53..054d750b 100644 --- a/src/REL/w02Dll/mg_coin.c +++ b/src/REL/w02Dll/mg_coin.c @@ -253,7 +253,7 @@ void fn_1_4378(omObjData *object) HuAudFXPlay(1067); object->work[0] &= ~temp_r28; temp_r31->unkC[temp_r30] = 0; - lbl_1_bss_A8->work[2] = 60; + lbl_1_bss_A8->work[2] = REFRESH_RATE; if (temp_r30 != 2) { lbl_1_bss_A8->func = fn_1_5290; } @@ -468,7 +468,7 @@ void fn_1_5290(omObjData *object) if (object->work[2] == 0) { temp_r31 = object->data; temp_r31->unk18 = 5; - temp_r31->unk1A = 60; + temp_r31->unk1A = REFRESH_RATE; temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x15)); temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); @@ -495,7 +495,7 @@ void fn_1_53B8(omObjData *object) temp_r31 = object->data; temp_r28 = GWPlayer[lbl_1_bss_86].port; if (--temp_r31->unk1A == 0) { - temp_r31->unk1A = 60; + temp_r31->unk1A = REFRESH_RATE; if (--temp_r31->unk18 >= 0) { MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); } diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index 9429bc92..fd0f4073 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -10,21 +10,27 @@ #include "game/minigame_seq.h" +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_428[14] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; char *lbl_1_data_474[3] = { "item", "item1", "item2" }; @@ -92,11 +98,11 @@ void fn_1_5D28(void) HuPrcVSleep(); } BoardPlayerIdleSet(lbl_1_bss_196); - HuPrcSleep(120); + HuPrcSleep(REFRESH_RATE*2); BoardAudSeqPause(0, 1, 1000); HuAudFXPlay(781); fn_1_8570(); - HuPrcSleep(60); + HuPrcSleep(REFRESH_RATE); lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); @@ -155,7 +161,7 @@ void fn_1_606C(omObjData *object) temp_r31->unk44[1].x += lbl_1_bss_110; BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); BoardMusStart(1, 19, 127, 0); - object->work[0] = 300; + object->work[0] = REFRESH_RATE*5; object->work[1] = 0; object->func = fn_1_6248; } @@ -199,7 +205,7 @@ void fn_1_6248(omObjData *object) temp_r31->unk2A[1] = temp_r31->unk24[1]; sp28 = lbl_1_bss_160[0]; sp34 = lbl_1_bss_160[1]; - temp_f31 = 15; + temp_f31 = (VERSION_PAL) ? 13 : 15; break; case 1: @@ -207,13 +213,13 @@ void fn_1_6248(omObjData *object) temp_r31->unk2A[1] = temp_r31->unk24[2]; sp28 = lbl_1_bss_160[1]; sp34 = lbl_1_bss_160[2]; - temp_f31 = 15; + temp_f31 = (VERSION_PAL) ? 13 : 15; break; case 2: temp_r31->unk2A[0] = temp_r31->unk24[0]; temp_r31->unk2A[1] = temp_r31->unk24[2]; - temp_f31 = 22.5f; + temp_f31 = (VERSION_PAL) ? 19.5f : 22.5f; break; } temp_r31->unk68 = temp_r28; @@ -429,8 +435,8 @@ void fn_1_6EA8(void) sp20.y = sp2C.y = 0; VECSubtract(&sp20, &sp2C, &sp14); temp_f30 = VECMag(&sp14); - VECScale(&sp14, &sp14, 1.0f / 60.0f); - for (temp_r30 = 0; temp_r30 < 60; temp_r30++) { + VECScale(&sp14, &sp14, 1.0f / REFRESH_RATE); + for (temp_r30 = 0; temp_r30 < REFRESH_RATE; temp_r30++) { BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); VECAdd(&sp2C, &sp14, &sp2C); BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); @@ -452,9 +458,9 @@ void fn_1_6EA8(void) BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); temp_f31 = sp8.x; temp_f29 = -0.04f; - temp_f30 = (sp20.y - sp2C.y) / 30.0f; + temp_f30 = (sp20.y - sp2C.y) / (REFRESH_RATE/2); temp_r29 = 0; - HuAudFXFadeOut(lbl_1_bss_D8, 499); + HuAudFXFadeOut(lbl_1_bss_D8, (((REFRESH_RATE*500)+30)/60)-1); while (!temp_r29) { sp2C.y += temp_f30; temp_f31 += temp_f29; @@ -476,7 +482,7 @@ void fn_1_6EA8(void) while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { HuPrcVSleep(); } - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(temp_r28)) { HuPrcVSleep(); } @@ -505,7 +511,7 @@ void fn_1_732C(s32 arg0) void fn_1_7358(WorkMGItem *arg0) { if (--arg0->unk2 == 0) { - arg0->unk2 = 60; + arg0->unk2 = REFRESH_RATE; if (--arg0->unk0 >= 0) { MGSeqParamSet(arg0->unk4, 1, arg0->unk0); } @@ -520,7 +526,7 @@ void fn_1_73C8(omObjData *object) WorkMGItem *temp_r31; temp_r31 = object->data; temp_r31->unk0 = 5; - temp_r31->unk2 = 60; + temp_r31->unk2 = REFRESH_RATE; temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1B)); temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); @@ -564,14 +570,14 @@ void fn_1_74E4(omObjData *object) else if (spC & PAD_BUTTON_LEFT) { if (temp_r31->unk8 != 0) { temp_r31->unk8--; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5); object->func = fn_1_7750; } } else if (spC & PAD_BUTTON_RIGHT) { if (temp_r31->unk8 != 2) { temp_r31->unk8++; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5); object->func = fn_1_7750; } } diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 24797857..b21e0dbe 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -1,26 +1,21 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/frand.h" #include "game/chrman.h" +#include "game/frand.h" #include "game/pad.h" + #include "ext_math.h" - /* DATA */ -s32 lbl_1_data_4D0[] = { - -1, 2, 2, 2, - -1, 1, 1, 1, - -1, 0, 0, 0, - -1, 3, 3, 3 -}; +s32 lbl_1_data_4D0[] = { -1, 2, 2, 2, -1, 1, 1, 1, -1, 0, 0, 0, -1, 3, 3, 3 }; Process *lbl_1_bss_38C; s16 lbl_1_bss_388; s32 lbl_1_bss_384; float lbl_1_bss_380; -//Local Functions +// Local Functions void fn_1_D3AC(void); s32 fn_1_D8C4(void); void fn_1_DF48(void); @@ -34,10 +29,10 @@ typedef struct UnkPoint { Vec point; } UnkPoint; - /* FUNCTIONS */ -void fn_1_BC1C(void) { - Point3d sp8; +void fn_1_BC1C(void) +{ + Vec sp8; BoardModelPosGet(lbl_1_bss_30[15], &sp8); sp8.z -= 90.0f; @@ -50,13 +45,14 @@ void fn_1_BC1C(void) { BoardModelRotSetV(lbl_1_bss_30[15], &sp8); } -void fn_1_BCFC(void) { +void fn_1_BCFC(void) +{ s32 spaceLinkFlags; s32 temp_r30; s32 temp_r29; - + BoardRollDispSet(0); - spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32) GWPlayer[lbl_1_bss_388].space_curr, 2U); + spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32)GWPlayer[lbl_1_bss_388].space_curr, 2U); BoardPlayerMoveToAsync(lbl_1_bss_388, spaceLinkFlags); while (GWPlayer[lbl_1_bss_388].moving) { HuPrcVSleep(); @@ -64,8 +60,8 @@ void fn_1_BCFC(void) { BoardPlayerIdleSet(lbl_1_bss_388); BoardCameraViewSet(2); BoardCameraMotionWait(); - BoardPlayerMotBlendSet((s32) lbl_1_bss_388, 0x5A, 0xF); - while (BoardPlayerMotBlendCheck((s32) lbl_1_bss_388) == 0) { + BoardPlayerMotBlendSet((s32)lbl_1_bss_388, 0x5A, 0xF); + while (BoardPlayerMotBlendCheck((s32)lbl_1_bss_388) == 0) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_30[15], -90.0f); @@ -81,16 +77,18 @@ void fn_1_BCFC(void) { BoardCameraMotionWait(); BoardRollDispSet(1); HuPrcKill(NULL); - while(TRUE) { - HuPrcVSleep(); + while (TRUE) { + HuPrcVSleep(); } } -s32 fn_1_BE74(void) { +s32 fn_1_BE74(void) +{ lbl_1_bss_38C = 0; } -s32 fn_1_BE88(void) { +s32 fn_1_BE88(void) +{ s32 coinAmount; s32 var_r30; s16 playerCoinRegion; @@ -100,7 +98,7 @@ s32 fn_1_BE88(void) { s32 mesg; var_r30 = -1; - coinAmount = BoardPlayerCoinsGet((s32) lbl_1_bss_388); + coinAmount = BoardPlayerCoinsGet((s32)lbl_1_bss_388); if (coinAmount < 5) { return var_r30; } @@ -112,7 +110,8 @@ s32 fn_1_BE88(void) { if (GWPlayer[lbl_1_bss_388].com) { if (frandBool()) { BoardComKeySetRight(); - } else { + } + else { BoardComKeySetLeft(); } } @@ -136,49 +135,50 @@ s32 fn_1_BE88(void) { if (GWPlayer[lbl_1_bss_388].com) { if (playerCoinRegion < 2) { BoardComKeySetUp(); - } else if (frandBool()) { + } + else if (frandBool()) { BoardComKeySetUp(); - } else { + } + else { BoardComKeySetDown(); } } BoardWinWait(); BoardWinKill(); bribeChoice = BoardWinChoiceGet(); - if (bribeChoice == -1 || - bribeChoice == 3) { + if (bribeChoice == -1 || bribeChoice == 3) { continue; } // Coin amount is now the bribe amount in coins switch (bribeChoice) { - case 0: - mesg = MAKE_MESSID(0x13, 0x04); - coinAmount = 0x14; - var_r30 = 0x5A; // 90% - break; - case 1: - mesg = MAKE_MESSID(0x13, 0x05); - coinAmount = 0xA; - var_r30 = 0x3C; // 60% - break; - case 2: - mesg = MAKE_MESSID(0x13, 0x06); - coinAmount = 5; - var_r30 = 0x1E; // 30% - break; + case 0: + mesg = MAKE_MESSID(0x13, 0x04); + coinAmount = 0x14; + var_r30 = 0x5A; // 90% + break; + case 1: + mesg = MAKE_MESSID(0x13, 0x05); + coinAmount = 0xA; + var_r30 = 0x3C; // 60% + break; + case 2: + mesg = MAKE_MESSID(0x13, 0x06); + coinAmount = 5; + var_r30 = 0x1E; // 30% + break; } fn_1_121C(mesg); - for (i = 0; i < coinAmount; i++) { BoardPlayerCoinsAdd(lbl_1_bss_388, -1); HuAudFXPlay(0xE); HuPrcSleep(6); } HuAudFXPlay(0xF); - // If chose to view map - } else if (rouletteChoice == 2) { + // If chose to view map + } + else if (rouletteChoice == 2) { BoardViewMapExec(lbl_1_bss_388); } } while (rouletteChoice == 2); // While viewing map @@ -188,13 +188,13 @@ s32 fn_1_BE88(void) { return var_r30; } -s32 fn_1_C108(s32 arg0) { +s32 fn_1_C108(s32 arg0) +{ Vec sp34; Vec sp28; Vec sp1C; Vec sp10; - f32 var_f27; f32 var_f26; f32 var_f25; @@ -210,15 +210,16 @@ s32 fn_1_C108(s32 arg0) { s32 var_r29; s32 i; - if ((s32) frandmod(0x64U) < arg0) { + if ((s32)frandmod(0x64U) < arg0) { s32 temp_r25 = fn_1_E2AC(); var_r27 = 4; var_r29 = frandmod(3U); - if ((s32) frandmod(0x64U) < 0x14) { + if ((s32)frandmod(0x64U) < 0x14) { var_r29 += 1; } var_r29 = var_r29 + (3 - temp_r25) * 4; - } else { + } + else { var_r29 = frandmod(0x10U); var_r27 = frandmod(4U); } @@ -249,7 +250,7 @@ s32 fn_1_C108(s32 arg0) { HuAudFXPitchSet(lbl_1_bss_384, var_r28); HuPrcVSleep(); } - + var_f29 = -22.5f; HuAudFXPitchSet(lbl_1_bss_384, 0); BoardModelMotionStart(lbl_1_bss_30[15], 2, 0x40000001); @@ -269,7 +270,7 @@ s32 fn_1_C108(s32 arg0) { } BoardModelMotionStart(lbl_1_bss_30[15], 3, 0x40000001); BoardModelMotionSpeedSet(lbl_1_bss_30[15], 4.0f); - + for (i = 0; i < 0xA; i++) { sp34.z -= 6.2999997f; BoardModelPosSetV(lbl_1_bss_30[15], &sp34); @@ -287,7 +288,7 @@ s32 fn_1_C108(s32 arg0) { sp1C.z = -50.0f; // Roulette motion and ball ? - while(TRUE) { + while (TRUE) { sp1C.y = var_f27 - (0.55833334f * (0.25f * (var_f31 * var_f31))); var_f31 += 1.0f; BoardModelPosGet(lbl_1_bss_30[6], &sp28); @@ -295,11 +296,11 @@ s32 fn_1_C108(s32 arg0) { var_f25 = VECDistanceXZ(&sp28, &sp10); if (var_f25 >= 430.0f) { if (sp28.y <= (55.0f + sp10.y)) { - VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec *)&sp1C); + VECNormalize((Vec *)&sp1C, (Vec *)&sp1C); sp1C.y = 0.0f; - VECScale((Vec* ) &sp1C, (Vec* ) &sp1C, 429.0f); - VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECScale((Vec *)&sp1C, (Vec *)&sp1C, 429.0f); + VECAdd((Vec *)&sp1C, &sp10, (Vec *)&sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; sp1C.x = -5.0f; @@ -309,34 +310,34 @@ s32 fn_1_C108(s32 arg0) { if (sp28.y < sp10.y) { sp28.y = sp10.y; - if (var_r27 >= 3) { + if (var_r27 >= 3) { break; } - //var_f31 = ((1.0f/255.0f) * (6.0f * frand8())); - var_f27 = 6.0f + ((1.0f/255.0f) * (6.0f * frand8())); + // var_f31 = ((1.0f/255.0f) * (6.0f * frand8())); + var_f27 = 6.0f + ((1.0f / 255.0f) * (6.0f * frand8())); var_f31 = 1.0f; var_r27 += 1; - //var_f31 = ((1.0f/255.0f) * (5.0f * frand8())); - sp1C.x = 15.0f + ((1.0f/255.0f) * (5.0f * frand8())); - sp1C.z = 15.0f + ((1.0f/255.0f) * (5.0f * frand8())); + // var_f31 = ((1.0f/255.0f) * (5.0f * frand8())); + sp1C.x = 15.0f + ((1.0f / 255.0f) * (5.0f * frand8())); + sp1C.z = 15.0f + ((1.0f / 255.0f) * (5.0f * frand8())); HuAudFXPlay(0x41E); } - - BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + + BoardModelPosSetV(lbl_1_bss_30[6], (Vec *)&sp28); fn_1_E310(var_f29); HuPrcVSleep(); } HuAudFXPlay(0x41E); - VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec *)&sp1C); + VECNormalize((Vec *)&sp1C, (Vec *)&sp1C); var_f31 = atan2d(-sp1C.z, sp1C.x); BoardModelRotGet(lbl_1_bss_30[4], &sp34); var_f31 = var_f31 - sp34.y; if (var_f31 < 0.0f) { var_f31 += 360.0f; } - var_r30 = (s32) (var_f31 / 22.5f); + var_r30 = (s32)(var_f31 / 22.5f); if (fmod(var_f31, 22.5) > 11.25) { var_r30 += 1; } @@ -345,7 +346,7 @@ s32 fn_1_C108(s32 arg0) { } sp1C.y = 0.0f; - while(TRUE) { + while (TRUE) { fn_1_E310(var_f29); BoardModelRotGet(lbl_1_bss_30[4], &sp34); var_f31 = (22.5f * var_r30) + sp34.y; // TODO: Update rodata for asm change @@ -356,8 +357,7 @@ s32 fn_1_C108(s32 arg0) { sp28.x = sp1C.x; sp28.z = sp1C.z; BoardModelPosSetV(lbl_1_bss_30[6], &sp28); - if (sp34.y >= 292.5f && - sp34.y < 315.0f) { + if (sp34.y >= 292.5f && sp34.y < 315.0f) { break; } HuPrcVSleep(); @@ -367,14 +367,14 @@ s32 fn_1_C108(s32 arg0) { var_f29 += 0.375f; fn_1_E310(var_f29); BoardModelRotGet(lbl_1_bss_30[4], &sp34); - var_f31 = (22.5f * (f32) var_r30) + sp34.y; + var_f31 = (22.5f * (f32)var_r30) + sp34.y; sp1C.x = cosd(var_f31); sp1C.z = -sind(var_f31); VECScale(&sp1C, &sp1C, 429.0f); - VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECAdd((Vec *)&sp1C, &sp10, (Vec *)&sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; - BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + BoardModelPosSetV(lbl_1_bss_30[6], (Vec *)&sp28); var_r28 += -136.51666f; HuAudFXPitchSet(lbl_1_bss_384, var_r28); HuPrcVSleep(); @@ -385,7 +385,8 @@ s32 fn_1_C108(s32 arg0) { } // Place player on space post roulette? -void fn_1_CD04(s32 arg0) { +void fn_1_CD04(s32 arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -393,25 +394,25 @@ void fn_1_CD04(s32 arg0) { f32 temp_f30; f32 temp_f29; f32 var_f31; - + s16 var_r25; u32 var_r26; s32 var_r27; s32 var_r29; s32 var_r28; s32 var_r30; - BoardSpace* temp_r31; + BoardSpace *temp_r31; if (arg0 < 0) { fn_1_D3AC(); arg0 = fn_1_D8C4(); } temp_r31 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); - + for (var_r28 = 0; var_r28 < temp_r31->link_cnt; var_r28++) { var_r29 = temp_r31->link[var_r28]; - var_r26 = ( (BoardSpaceFlagGet(0, var_r29) & 0xE) >> 1U); - if ( var_r26 == (arg0 + 2)) { + var_r26 = ((BoardSpaceFlagGet(0, var_r29) & 0xE) >> 1U); + if (var_r26 == (arg0 + 2)) { break; } } @@ -427,7 +428,7 @@ void fn_1_CD04(s32 arg0) { while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < 30.0f) { spC.x -= 0.25f; spC.y -= 0.25f; - //temp_f1 = spC.z; + // temp_f1 = spC.z; spC.z = spC.z - 0.25f; BoardPlayerScaleSetV(lbl_1_bss_388, &spC); HuPrcVSleep(); @@ -443,7 +444,8 @@ void fn_1_CD04(s32 arg0) { if (GWPlayer[lbl_1_bss_388].bowser_suit) { BoardModelVisibilitySet(BoardBowserSuitModelGet(), 0); BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(), 0); - } else { + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 0); } HuAudFXPlay(0x421); @@ -454,7 +456,7 @@ void fn_1_CD04(s32 arg0) { } BoardModelPosGet(lbl_1_bss_30[5], &sp18); - temp_f30 = atan2d(sp24.x - sp18.x, sp24.z - sp18.z)/30; + temp_f30 = atan2d(sp24.x - sp18.x, sp24.z - sp18.z) / 30; while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < 90.0f) { BoardModelRotYSet(lbl_1_bss_30[5], temp_f30 + BoardModelRotYGet(lbl_1_bss_30[5])); @@ -464,22 +466,23 @@ void fn_1_CD04(s32 arg0) { omVibrate(lbl_1_bss_388, 0xC, 4, 2); if (GWPlayer[lbl_1_bss_388].bowser_suit) { - BoardModelVisibilitySet(BoardBowserSuitModelGet(),1); - BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(),1); - } else { + BoardModelVisibilitySet(BoardBowserSuitModelGet(), 1); + BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(), 1); + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 1); } - GWPlayer[lbl_1_bss_388].space_curr =(s16) var_r29; + GWPlayer[lbl_1_bss_388].space_curr = (s16)var_r29; BoardPlayerPosSetV(lbl_1_bss_388, &sp24); temp_r31 = BoardSpaceGet(0, var_r29); - - for ( var_r30 = 0; var_r30 < (s32) temp_r31->link_cnt; var_r30++) { + + for (var_r30 = 0; var_r30 < (s32)temp_r31->link_cnt; var_r30++) { if (BoardSpaceTypeGet(0, temp_r31->link[var_r30])) { break; } } - if (var_r30 != (s32) temp_r31->link_cnt) { + if (var_r30 != (s32)temp_r31->link_cnt) { BoardSpacePosGet(0, temp_r31->link[var_r30], &sp18); BoardPlayerRotYSet(lbl_1_bss_388, atan2d(sp18.x - sp24.x, sp18.z - sp24.z)); } @@ -507,289 +510,290 @@ void fn_1_CD04(s32 arg0) { void fn_1_D3AC(void) { - float temp_f31; - float temp_f30; - s32 temp_r31; - s32 temp_r30; - s16 sp38[20]; - Vec sp2C; - Vec sp20; - Vec sp14; - float sp8[3] = { 1.0f, 0.3f, 2.5f }; - fn_1_121C(MAKE_MESSID(0x13, 0x08)); - BoardStatusShowSetAll(1); - BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); - BoardPlayerPosGet(lbl_1_bss_388, &sp14); - for(temp_r31=0; temp_r31<20; temp_r31++) { - sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); - sp2C.x = (sp14.x-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); - sp2C.y = (sp14.y+1200.0f)+(temp_r31*130.0f)+((1.0f/255.0f)*(frand8()*60.0f)); - sp2C.z = (sp14.z-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); - BoardModelPosSetV(sp38[temp_r31], &sp2C); - sp20.x = sp20.z = 0; - sp20.y = (1.0f/255.0f)*(frand8()*360.0f); - BoardModelRotSetV(sp38[temp_r31], &sp20); - } - temp_f31 = -4; - temp_r30 = 0; - temp_f30 = sp8[BoardPlayerSizeGet(lbl_1_bss_388)]; - while(1) { - for(temp_r31=0; temp_r31<20; temp_r31++) { - if(temp_r31 < temp_r30) { - continue; - } - BoardModelPosGet(sp38[temp_r31], &sp2C); - BoardModelRotGet(sp38[temp_r31], &sp20); - sp2C.y += temp_f31; - sp20.y += 45.0f; - BoardModelPosSetV(sp38[temp_r31], &sp2C); - BoardModelRotSetV(sp38[temp_r31], &sp20); - if(sp2C.y <= sp14.y+(180.0f*temp_f30)) { - CharModelCoinEffectCreate(1, &sp2C); - BoardModelVisibilitySet(sp38[temp_r31], 0); - temp_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_388, 1); - HuAudFXPlay(7); - omVibrate(lbl_1_bss_388, 12, 6, 6); - - } - } - temp_f31 *= 1.05f; - if(temp_f31 < -40.0f) { - temp_f31 = -40.0f; - } - if(temp_r30 == 20) { - BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, HU3D_MOTATTR_NONE); - break; - } - HuPrcVSleep(); - } - while(!BoardPlayerMotionEndCheck(lbl_1_bss_388)) { - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - BoardModelKill(sp38[temp_r31]); - } - HuPrcSleep(60); - BoardPlayerMotBlendSet(lbl_1_bss_388, 180, 15); - BoardStatusShowSetAll(0); - while(!BoardPlayerMotBlendCheck(lbl_1_bss_388)) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + s32 temp_r31; + s32 temp_r30; + s16 sp38[20]; + Vec sp2C; + Vec sp20; + Vec sp14; + float sp8[3] = { 1.0f, 0.3f, 2.5f }; + fn_1_121C(MAKE_MESSID(0x13, 0x08)); + BoardStatusShowSetAll(1); + BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); + BoardPlayerPosGet(lbl_1_bss_388, &sp14); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); + sp2C.x = (sp14.x - 25.0f) + ((1.0f / 255.0f) * (frand8() * 50.0f)); + sp2C.y = (sp14.y + 1200.0f) + (temp_r31 * 130.0f) + ((1.0f / 255.0f) * (frand8() * 60.0f)); + sp2C.z = (sp14.z - 25.0f) + ((1.0f / 255.0f) * (frand8() * 50.0f)); + BoardModelPosSetV(sp38[temp_r31], &sp2C); + sp20.x = sp20.z = 0; + sp20.y = (1.0f / 255.0f) * (frand8() * 360.0f); + BoardModelRotSetV(sp38[temp_r31], &sp20); + } + temp_f31 = -4; + temp_r30 = 0; + temp_f30 = sp8[BoardPlayerSizeGet(lbl_1_bss_388)]; + while (1) { + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + if (temp_r31 < temp_r30) { + continue; + } + BoardModelPosGet(sp38[temp_r31], &sp2C); + BoardModelRotGet(sp38[temp_r31], &sp20); + sp2C.y += temp_f31; + sp20.y += 45.0f; + BoardModelPosSetV(sp38[temp_r31], &sp2C); + BoardModelRotSetV(sp38[temp_r31], &sp20); + if (sp2C.y <= sp14.y + (180.0f * temp_f30)) { + CharModelCoinEffectCreate(1, &sp2C); + BoardModelVisibilitySet(sp38[temp_r31], 0); + temp_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_388, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_388, 12, 6, 6); + } + } + temp_f31 *= 1.05f; + if (temp_f31 < -40.0f) { + temp_f31 = -40.0f; + } + if (temp_r30 == 20) { + BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, HU3D_MOTATTR_NONE); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_388)) { + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + BoardModelKill(sp38[temp_r31]); + } + HuPrcSleep(60); + BoardPlayerMotBlendSet(lbl_1_bss_388, 180, 15); + BoardStatusShowSetAll(0); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_388)) { + HuPrcVSleep(); + } } s32 fn_1_D8C4(void) { - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - s16 sp14[4]; - float spC[2]; - s32 sp8; - - float temp_f31; - float temp_f30; - - s32 temp_r31; - s16 temp_r30; - BoardSpace *temp_r29; - s32 temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - - u32 temp_r21; - fn_1_121C(MAKE_MESSID(0x13, 0x09)); - temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); - BoardModelPosGet(lbl_1_bss_30[3], &sp40); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); - BoardModelLayerSet(sp14[temp_r31], 2); - for(temp_r28=0; temp_r28link_cnt; temp_r28++) { - temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; - if(temp_r21 == temp_r31+2) { - break; - } - } - sp8 = BoardSpacePosGet(0, temp_r29->link[temp_r28], &sp28); - VECSubtract(&sp28, &sp40, &sp34); - BoardModelRotYSet(sp14[temp_r31], atan2d(sp34.x, sp34.z)); - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp34, 400); - VECAdd(&sp34, &sp40, &sp34); - sp34.y += 300.0f; - BoardModelPosSetV(sp14[temp_r31], &sp34); - sp1C.x = sp1C.y = sp1C.z = 3; - BoardModelScaleSetV(sp14[temp_r31], &sp1C); - } - temp_r25 = fn_1_E2AC(); - HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); - temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); - HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); - HuWinBGTPLvlSet(temp_r30, 0); - HuWinMesSpeedSet(temp_r30, 0); - temp_r23 = GWPlayer[lbl_1_bss_388].port; - temp_f30 = 0; - temp_r22 = frandmod(20)+20; - restart: - while(1) { - if(GWPlayer[lbl_1_bss_388].com) { - temp_r27 = 0; - temp_r26 = 0; - if(temp_r22) { - temp_r22--; - temp_r24 = 0; - } else { - temp_r24 = PAD_BUTTON_A; - } - break; - } - temp_r24 = HuPadBtnDown[temp_r23]; - temp_r27 = HuPadStkX[temp_r23]; - temp_r26 = HuPadStkY[temp_r23]; - if(!(temp_r24 & PAD_TRIGGER_Z)) { - break; - } - HuAudFXPlay(1); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelVisibilitySet(sp14[temp_r31], 0); - } - HuWinDispOff(temp_r30); - BoardViewMapExec(lbl_1_bss_388); - HuWinDispOn(temp_r30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelVisibilitySet(sp14[temp_r31], 1); - } - } - if(!(temp_r24 & PAD_BUTTON_A)) { - if(abs(temp_r27) < 10) { - temp_r27 = 0; - } - if(abs(temp_r26) < 10) { - temp_r26 = 0; - } - if(temp_r27 != 0 || temp_r26 != 0) { - temp_f31 = atan2d(-temp_r27, -temp_r26); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - temp_r31 = temp_f31/90.0f; - temp_f31 = fmod(temp_f31, 90.0); - if(temp_r31 != temp_r25 && temp_f31 >= 20.0f && temp_f31 <= 70.0f){ - temp_f30 = 0; - temp_r25 = temp_r31; - HuAudFXPlay(0); - } - - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 == temp_r25) { - sp1C.x = sp1C.y = sp1C.z = sind(temp_f30)+3.0; - temp_f30 += 8.0f; - if(temp_f30 > 180.0f) { - temp_f30 -= 180.0f; - } - } else { - sp1C.x = sp1C.y = sp1C.z = 3.0f; - } - - - BoardModelScaleSetV(sp14[temp_r31], &sp1C); - } - HuPrcVSleep(); - goto restart; - } else { - HuAudFXPlay(2); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelKill(sp14[temp_r31]); - } - HuWinKill(temp_r30); - return temp_r25; - } + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + s16 sp14[4]; + float spC[2]; + s32 sp8; + + float temp_f31; + float temp_f30; + + s32 temp_r31; + s16 temp_r30; + BoardSpace *temp_r29; + s32 temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + + u32 temp_r21; + fn_1_121C(MAKE_MESSID(0x13, 0x09)); + temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); + BoardModelPosGet(lbl_1_bss_30[3], &sp40); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); + BoardModelLayerSet(sp14[temp_r31], 2); + for (temp_r28 = 0; temp_r28 < temp_r29->link_cnt; temp_r28++) { + temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; + if (temp_r21 == temp_r31 + 2) { + break; + } + } + sp8 = BoardSpacePosGet(0, temp_r29->link[temp_r28], &sp28); + VECSubtract(&sp28, &sp40, &sp34); + BoardModelRotYSet(sp14[temp_r31], atan2d(sp34.x, sp34.z)); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 400); + VECAdd(&sp34, &sp40, &sp34); + sp34.y += 300.0f; + BoardModelPosSetV(sp14[temp_r31], &sp34); + sp1C.x = sp1C.y = sp1C.z = 3; + BoardModelScaleSetV(sp14[temp_r31], &sp1C); + } + temp_r25 = fn_1_E2AC(); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); + temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); + HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); + HuWinBGTPLvlSet(temp_r30, 0); + HuWinMesSpeedSet(temp_r30, 0); + temp_r23 = GWPlayer[lbl_1_bss_388].port; + temp_f30 = 0; + temp_r22 = frandmod(20) + 20; +restart: + while (1) { + if (GWPlayer[lbl_1_bss_388].com) { + temp_r27 = 0; + temp_r26 = 0; + if (temp_r22) { + temp_r22--; + temp_r24 = 0; + } + else { + temp_r24 = PAD_BUTTON_A; + } + break; + } + temp_r24 = HuPadBtnDown[temp_r23]; + temp_r27 = HuPadStkX[temp_r23]; + temp_r26 = HuPadStkY[temp_r23]; + if (!(temp_r24 & PAD_TRIGGER_Z)) { + break; + } + HuAudFXPlay(1); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelVisibilitySet(sp14[temp_r31], 0); + } + HuWinDispOff(temp_r30); + BoardViewMapExec(lbl_1_bss_388); + HuWinDispOn(temp_r30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelVisibilitySet(sp14[temp_r31], 1); + } + } + if (!(temp_r24 & PAD_BUTTON_A)) { + if (abs(temp_r27) < 10) { + temp_r27 = 0; + } + if (abs(temp_r26) < 10) { + temp_r26 = 0; + } + if (temp_r27 != 0 || temp_r26 != 0) { + temp_f31 = atan2d(-temp_r27, -temp_r26); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + temp_r31 = temp_f31 / 90.0f; + temp_f31 = fmod(temp_f31, 90.0); + if (temp_r31 != temp_r25 && temp_f31 >= 20.0f && temp_f31 <= 70.0f) { + temp_f30 = 0; + temp_r25 = temp_r31; + HuAudFXPlay(0); + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 == temp_r25) { + sp1C.x = sp1C.y = sp1C.z = sind(temp_f30) + 3.0; + temp_f30 += 8.0f; + if (temp_f30 > 180.0f) { + temp_f30 -= 180.0f; + } + } + else { + sp1C.x = sp1C.y = sp1C.z = 3.0f; + } + + BoardModelScaleSetV(sp14[temp_r31], &sp1C); + } + HuPrcVSleep(); + goto restart; + } + else { + HuAudFXPlay(2); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelKill(sp14[temp_r31]); + } + HuWinKill(temp_r30); + return temp_r25; + } } void fn_1_DF48(void) { - Vec sp14; - Vec sp8; - s32 temp_r31; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - BoardModelMotionTimeSet(lbl_1_bss_30[5], 0); - BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002); - temp_f31 = BoardModelRotYGet(lbl_1_bss_30[5]); - temp_f29 = -temp_f31/20.0f; - temp_f30 = BoardModelRotYGet(lbl_1_bss_30[15]); - temp_f28 = -temp_f30/20.0f; - BoardModelScaleGet(lbl_1_bss_30[6], &sp14); - for(temp_r31=0; temp_r31<10; temp_r31++) { - sp14.x = sp14.y = sp14.z = 1.0f-(temp_r31*0.1f); - if(sp14.x < 0.0f) { - sp14.x = sp14.y = sp14.z = 0.0f; - } - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - temp_f31 += temp_f29; - BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); - temp_f30 += temp_f28; - BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); - HuPrcVSleep(); - } - BoardModelPosGet(lbl_1_bss_30[15], &sp8); - sp8.z -= 90.0f; - sp8.y += 50.0f; - BoardModelPosSetV(lbl_1_bss_30[6], &sp8); - for(temp_r31=0; temp_r31<10; temp_r31++) { - sp14.x = sp14.y = sp14.z = temp_r31*0.1f; - if(sp14.x > 1.0f) { - sp14.x = sp14.y = sp14.z = 1.0f; - } - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - temp_f31 += temp_f29; - BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); - temp_f30 += temp_f28; - BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); - HuPrcVSleep(); - } - sp14.x = sp14.y = sp14.z = 1.0f; - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - BoardModelRotYSet(lbl_1_bss_30[5], 0); - BoardModelRotYSet(lbl_1_bss_30[15], 0); - HuPrcEnd(); + Vec sp14; + Vec sp8; + s32 temp_r31; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + BoardModelMotionTimeSet(lbl_1_bss_30[5], 0); + BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002); + temp_f31 = BoardModelRotYGet(lbl_1_bss_30[5]); + temp_f29 = -temp_f31 / 20.0f; + temp_f30 = BoardModelRotYGet(lbl_1_bss_30[15]); + temp_f28 = -temp_f30 / 20.0f; + BoardModelScaleGet(lbl_1_bss_30[6], &sp14); + for (temp_r31 = 0; temp_r31 < 10; temp_r31++) { + sp14.x = sp14.y = sp14.z = 1.0f - (temp_r31 * 0.1f); + if (sp14.x < 0.0f) { + sp14.x = sp14.y = sp14.z = 0.0f; + } + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + temp_f31 += temp_f29; + BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); + temp_f30 += temp_f28; + BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_30[15], &sp8); + sp8.z -= 90.0f; + sp8.y += 50.0f; + BoardModelPosSetV(lbl_1_bss_30[6], &sp8); + for (temp_r31 = 0; temp_r31 < 10; temp_r31++) { + sp14.x = sp14.y = sp14.z = temp_r31 * 0.1f; + if (sp14.x > 1.0f) { + sp14.x = sp14.y = sp14.z = 1.0f; + } + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + temp_f31 += temp_f29; + BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); + temp_f30 += temp_f28; + BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); + HuPrcVSleep(); + } + sp14.x = sp14.y = sp14.z = 1.0f; + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + BoardModelRotYSet(lbl_1_bss_30[5], 0); + BoardModelRotYSet(lbl_1_bss_30[15], 0); + HuPrcEnd(); } s32 fn_1_E2AC(void) { - switch(GWSystem.star_pos) { - case 0: - return 3; - - case 1: - case 2: - return 0; - - case 3: - case 4: - return 1; - - case 5: - case 6: - case 7: - return 2; - - default: - return -1; - } + switch (GWSystem.star_pos) { + case 0: + return 3; + + case 1: + case 2: + return 0; + + case 3: + case 4: + return 1; + + case 5: + case 6: + case 7: + return 2; + + default: + return -1; + } } /* Rotate (yaw) of model 4 */ -void fn_1_E310(f32 degrees) { - Point3d spC; +void fn_1_E310(f32 degrees) +{ + Vec spC; lbl_1_bss_380 += degrees; if (lbl_1_bss_380 >= 360.0f) { lbl_1_bss_380 -= 360.0f; @@ -804,11 +808,11 @@ void fn_1_E310(f32 degrees) { void fn_1_E41C(void) { - lbl_1_bss_388 = GWSystem.player_curr; - OSReport("Roulette Player %d\n", lbl_1_bss_388); - lbl_1_bss_38C = HuPrcChildCreate(fn_1_BCFC, 8195, 8192, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_38C, (void *)fn_1_BE74); //fn_1_BE74 requires implicit return - while(lbl_1_bss_38C) { - HuPrcVSleep(); - } + lbl_1_bss_388 = GWSystem.player_curr; + OSReport("Roulette Player %d\n", lbl_1_bss_388); + lbl_1_bss_38C = HuPrcChildCreate(fn_1_BCFC, 8195, 8192, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_38C, (void *)fn_1_BE74); // fn_1_BE74 requires implicit return + while (lbl_1_bss_38C) { + HuPrcVSleep(); + } } diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index 15ea43a8..c42f53b3 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -12,6 +12,8 @@ #include "game/pad.h" #include "game/wipe.h" +#include "ext_math.h" + // structs typedef struct w03UnkStruct5 { @@ -172,8 +174,8 @@ void fn_1_3304(void) var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); BoardSpacePosGet(0, var_r31, &sp8); temp_f31 = 0.0f; - sp8.x = sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0)); - sp8.z = sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0)); + sp8.x += -300.0 * sind(temp_f31); + sp8.z += -300.0 * cosd(temp_f31); sp8.y = 45.0f + sp8.y; BoardModelPosSetV(lbl_1_data_310, &sp8); BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); @@ -211,7 +213,7 @@ s32 fn_1_3478(s32 arg0) temp = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); BoardSpacePosGet(0, temp, &sp38); VECSubtract(&sp38, &sp2C, &sp20); - float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; + float_temp = atan2d(sp20.x, sp20.z); BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); while (BoardPlayerMotBlendCheck(arg0) == 0) { @@ -473,14 +475,14 @@ void fn_1_3F5C(s32 arg0) var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); BoardSpacePosGet(0, var_r31, &sp8); temp_f31 = 0.0f; - sp8.x = (sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0f))); - sp8.z = (sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0f))); + sp8.x += -300.0 * sind(temp_f31); + sp8.z += -300.0 * cosd(temp_f31); sp8.y = 45.0f + sp8.y; BoardModelPosSetV(lbl_1_data_310, &sp8); BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001); BoardModelRotYSet(lbl_1_data_310, 0.0f); - PSMTXIdentity(sp38); + MTXIdentity(sp38); BoardModelMtxSet(lbl_1_data_310, &sp38); sp20.x = 0.0f; @@ -589,7 +591,7 @@ void fn_1_4424(w03StructUnk2 *arg0) VECSubtract(&sp60, &sp6C, &sp3C); } - sp10_2 = 180.0f * (atan2(-sp3C.x, -sp3C.z) / M_PI); + sp10_2 = atan2d(-sp3C.x, -sp3C.z); BoardModelMotionStart(lbl_1_data_314, 0, 0U); BoardModelMotionSpeedSet(lbl_1_data_314, 8.0f); HuPrcSleep(1); @@ -604,7 +606,7 @@ void fn_1_4424(w03StructUnk2 *arg0) for (i = var_r25 = 0; i < 20;) { Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54); - temp_r28->unk_64 = (f32)(temp_r28->unk_64 + temp_r28->unk_68); + temp_r28->unk_64 += temp_r28->unk_68; if (temp_r28->unk_64 > 400.0f) { break; @@ -622,13 +624,13 @@ void fn_1_4424(w03StructUnk2 *arg0) sp30 = sp48; sp18 = sp54; BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); - PSMTXTranspose(spA8, spA8); + MTXTranspose(spA8, spA8); MTXRotDeg(spD8, 'z', temp_f30); - PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f); - PSMTXConcat(spD8, sp108, sp108); - PSMTXConcat(spA8, sp108, sp108); - PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z); - PSMTXConcat(sp78, sp108, sp78); + MTXTrans(sp108, 0.0f, -350.0f, 0.0f); + MTXConcat(spD8, sp108, sp108); + MTXConcat(spA8, sp108, sp108); + MTXTrans(sp78, sp54.x, sp54.y, sp54.z); + MTXConcat(sp78, sp108, sp78); Hu3DMtxTransGet(sp78, &temp_r27->unk_08); BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08); BoardModelVisibilitySet(temp_r27->model, 1); @@ -770,9 +772,9 @@ void fn_1_4D60(w03StructUnk2 *arg0) temp_r31->unk_00 = 1; temp_f31 = 360.0f * BoardRandFloat(); temp_f30 = 5.0f * BoardRandFloat(); - temp_r31->unk_14.x = temp_f30 * sin((M_PI * temp_f31) / 180.0); + temp_r31->unk_14.x = temp_f30 * sind(temp_f31); temp_r31->unk_14.y = 50.0f + (20.0f * BoardRandFloat()); - temp_r31->unk_14.z = temp_f30 * cos((M_PI * temp_f31) / 180.0); + temp_r31->unk_14.z = temp_f30 * cosd(temp_f31); temp_r31->unk_08.x = sp8.x; temp_r31->unk_08.y = sp8.y; temp_r31->unk_08.z = sp8.z; @@ -1076,19 +1078,19 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) sp20.y = 1.0f; BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8); - PSMTXTranspose(sp110, sp110); + MTXTranspose(sp110, sp110); MTXRotDeg(spE0, 'z', -arg1->unk_04); - PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f); - PSMTXConcat(spE0, sp50, sp50); - PSMTXConcat(sp110, sp50, sp50); - PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z); - PSMTXConcat(sp80, sp50, sp80); + MTXTrans(sp50, 0.0f, -600.0f, 0.0f); + MTXConcat(spE0, sp50, sp50); + MTXConcat(sp110, sp50, sp50); + MTXTrans(sp80, sp44.x, sp44.y, sp44.z); + MTXConcat(sp80, sp50, sp80); Hu3DMtxTransGet(sp80, &sp44); - MTXRotDeg(spB0, 'y', (180.0 * (atan2(-sp2C.x, -sp2C.z) / M_PI))); - PSMTXConcat(spB0, spE0, sp110); + MTXRotDeg(spB0, 'y', atan2d(-sp2C.x, -sp2C.z)); + MTXConcat(spB0, spE0, sp110); BoardModelMtxSet(lbl_1_data_310, &sp110); BoardModelPosSetV(lbl_1_data_310, &sp44); - BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI))); + BoardCameraRotSet(-20.0f, atan2d(sp2C.x, sp2C.z)); } void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1) diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index 0d0e6f64..dc05b755 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -10,6 +10,8 @@ #include "game/object.h" #include "game/pad.h" +#include "ext_math.h" + // structs typedef struct someBits3 { // make sure this is defined correctly /* 0x00 */ struct { @@ -132,9 +134,9 @@ void fn_1_7C98(void) s32 fn_1_7D18(s32 arg0) { - Point3d sp38; - Point3d sp2C; - Point3d sp20; + Vec sp38; + Vec sp2C; + Vec sp20; Vec sp14; Vec sp8; f32 var_f31; @@ -175,7 +177,7 @@ s32 fn_1_7D18(s32 arg0) BoardSpacePosGet(0, temp_r28, &sp38); VECSubtract(&sp38, &sp2C, &sp20); VECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); + BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); HuPrcSleep(0x1E); model = BoardModelIDGet(lbl_1_bss_C[7]); Hu3DModelObjPosGet(model, "phei", &sp38); @@ -187,8 +189,8 @@ s32 fn_1_7D18(s32 arg0) var_f31 = 39.0f; } - sp38.x = sp38.x + (var_f31 * sin((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); - sp38.z = sp38.z + (var_f31 * cos((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); + sp38.x += var_f31 * sind(180.0f + BoardModelRotYGet(lbl_1_data_456)); + sp38.z += var_f31 * cosd(180.0f + BoardModelRotYGet(lbl_1_data_456)); BoardPlayerPosGet(arg0, &sp2C); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); @@ -197,7 +199,7 @@ s32 fn_1_7D18(s32 arg0) BoardModelPosGet(lbl_1_bss_C[10], &sp2C); BoardPlayerPosGet(arg0, &sp38); VECSubtract(&sp38, &sp2C, &sp20); - arctan = atan2(sp20.x, sp20.z) / M_PI * 180.0; + arctan = atan2d(sp20.x, sp20.z); BoardModelRotYSet(lbl_1_bss_C[10], arctan); HuPrcVSleep(); } @@ -257,7 +259,7 @@ s32 lbl_1_data_490[] = { void fn_1_81E0(s32 arg0) { - Point3d sp8; + Vec sp8; omObjData *temp_r3; f32 temp_f31; s32 temp_r28; @@ -497,7 +499,7 @@ s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000 void fn_1_8C08(omObjData *arg0, someBits3 *arg1) { - Point3d spC; + Vec spC; f32 temp_f31; f32 temp_f30; s8 temp_r27; @@ -533,7 +535,7 @@ void fn_1_8C08(omObjData *arg0, someBits3 *arg1) void fn_1_8E44(omObjData *arg0, someBits3 *arg1) { - Point3d sp8; + Vec sp8; f32 temp_f1; f32 temp_f31; @@ -589,7 +591,7 @@ void fn_1_9044(omObjData *arg0, someBits3 *arg1) } } - sp8.z = arg0->trans.x * sin((M_PI * arg0->trans.y) / 180.0); + sp8.z = arg0->trans.x * sind(arg0->trans.y); BoardModelRotSetV(lbl_1_data_456, &sp8); } @@ -609,9 +611,9 @@ void fn_1_91B8(void) void fn_1_9230(s32 arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; s16 temp_r30; f32 rotY; @@ -626,7 +628,7 @@ void fn_1_9230(s32 arg0) BoardModelPosGet(lbl_1_bss_C[10], &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp14, &sp20, &sp8); - rotY = atan2(sp8.x, sp8.z) / M_PI * 180.0; + rotY = atan2d(sp8.x, sp8.z); BoardModelRotYSet(lbl_1_bss_C[10], rotY); HuPrcVSleep(); } @@ -745,7 +747,7 @@ void fn_1_95B8(omObjData *arg0) void fn_1_97F8(s32 arg0) { - Point3d sp8; + Vec sp8; f32 temp_f2; f32 var_f31; f64 temp_f1; @@ -773,8 +775,8 @@ void fn_1_97F8(s32 arg0) } temp_r31 = &temp_r30->unk_0C[i]; temp_r31->unk0 = 1; - temp_r31->unk8.x = sp8.x + (50.0f * sin((M_PI * var_f31) / 180.0)); - temp_r31->unk8.z = sp8.z + (50.0f * cos((M_PI * var_f31) / 180.0)); + temp_r31->unk8.x = sp8.x + (50.0f * sind(var_f31)); + temp_r31->unk8.z = sp8.z + (50.0f * cosd(var_f31)); temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat()); temp_r31->unk1 = 0; temp_r31->unk4 = BoardRandFloat() * 360.0f; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 349a7176..9b9ccfa3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -106,21 +106,27 @@ s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; char *lbl_1_data_508[] = { "item", "item1", "item2" }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_514[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; // BSS @@ -249,7 +255,7 @@ s32 fn_1_9CF4(s32 arg0) BoardSpacePosGet(0, temp_r29, &sp38); VECSubtract(&sp38, &sp2C, &sp20); VECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); + BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); while (GWPlayer[arg0].moving != 0) { @@ -282,11 +288,11 @@ void fn_1_9FE4(void) f32 var_f31; BoardModelPosGet(lbl_1_bss_C[11], &sp24); - sp18.x = (-3179.800048828125 + (200.0 * sin(0.0))); - sp18.z = (-907.7000122070313 + 200.0 * cos(0.0)); + sp18.x = -3179.8f + 200.0 * sin(0.0); + sp18.z = -907.7f + 200.0 * cos(0.0); sp18.y = sp24.y; VECSubtract(&sp18, &sp24, &spC); - temp_f30 = (atan2(spC.z, spC.x) / M_PI * 180.0); + temp_f30 = atan2d(spC.z, spC.x); sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, HU3D_MOTATTR_LOOP); @@ -736,12 +742,12 @@ void fn_1_B0A4(s32 arg0) } if (temp_r29 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } if ((temp_r29 == 6) || (temp_r29 == 7)) { - PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f); + MTXTrans(sp18, 0.0f, 0.0f, 8.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } } @@ -788,9 +794,9 @@ void fn_1_B350(omObjData *arg0) void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp_f31; s8 temp_r0; s32 i; @@ -821,7 +827,7 @@ void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) void fn_1_B688(omObjData *arg0, someBits2 *arg1) { - Point3d sp8; + Vec sp8; if (arg1->unk1-- != 0) { BoardModelPosGet(arg1->unk_06[arg1->unk2], &sp8); @@ -838,7 +844,7 @@ void fn_1_B688(omObjData *arg0, someBits2 *arg1) void fn_1_B748(omObjData *arg0, someBits2 *arg1) { Vec sp14; - Point3d sp8; + Vec sp8; f32 temp_f0; s16 temp_r29; @@ -855,7 +861,7 @@ void fn_1_B748(omObjData *arg0, someBits2 *arg1) BoardModelPosSetV(temp_r29, &sp8); BoardModelRotYSet(temp_r29, 8.0f + BoardModelRotYGet(temp_r29)); BoardModelScaleGet(temp_r29, &sp14); - sp14.x = sp14.y = sp14.z = cos(M_PI * temp_f0 / 180.0); + sp14.x = sp14.y = sp14.z = cosd(temp_f0); BoardModelScaleSetV(temp_r29, &sp14); arg1->unk1 += 4; return; @@ -871,8 +877,8 @@ void fn_1_B748(omObjData *arg0, someBits2 *arg1) void fn_1_B8E8(s32 arg0) { - Point3d sp14; - Point3d sp8; + Vec sp14; + Vec sp8; f32 temp_f31; someBits2 *temp_r31; f32 temp; @@ -969,7 +975,7 @@ void fn_1_BDAC(void) void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { - Point3d sp8; + Vec sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 98423294..810ab586 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -1,26 +1,29 @@ -#include "dolphin.h" -#include "game/object.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/hsfdraw.h" +#include "game/object.h" -//BSS + +#include "ext_math.h" + +// BSS char lbl_1_bss_130[8]; -omObjData* lbl_1_bss_12C; +omObjData *lbl_1_bss_12C; s16 lbl_1_bss_128; s32 lbl_1_bss_124; -Process* lbl_1_bss_120; +Process *lbl_1_bss_120; -//function signatures +// function signatures void fn_1_67F8(void); void fn_1_6884(void); -void fn_1_767C(omObjData* arg0); +void fn_1_767C(omObjData *arg0); s32 fn_1_6898(s32 arg0); void fn_1_6B98(s32 arg0); void fn_1_6F9C(s32 arg0); -void fn_1_767C(omObjData* arg0); +void fn_1_767C(omObjData *arg0); void fn_1_735C(s32 arg0); void fn_1_77E4(s32 arg0); @@ -32,43 +35,37 @@ typedef struct unkWorkStruct { f32 unk_04; } unkWorkStruct; -//data -s32 lbl_1_data_368[] = { - 0x00000105, 0x00000145, 0x00000185, - 0x000001C5, 0x00000205, 0x00000245, - 0x00000285, 0x000002C5 -}; +// data +s32 lbl_1_data_368[] = { 0x00000105, 0x00000145, 0x00000185, 0x000001C5, 0x00000205, 0x00000245, 0x00000285, 0x000002C5 }; s16 lbl_1_data_388 = -1; s16 lbl_1_data_38A = -1; s16 lbl_1_data_38C = -1; -s32 lbl_1_data_390[] = { - DATA_MAKE_NUM(DATADIR_W03, 0x26), - DATA_MAKE_NUM(DATADIR_W03, 0x27), - DATA_MAKE_NUM(DATADIR_W03, 0x28), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_390[] = { DATA_MAKE_NUM(DATADIR_W03, 0x26), DATA_MAKE_NUM(DATADIR_W03, 0x27), DATA_MAKE_NUM(DATADIR_W03, 0x28), DATA_NUM_LISTEND }; -void fn_1_63F4(s32 arg0) { +void fn_1_63F4(s32 arg0) +{ Vec spC; - unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); + unkWorkStruct *work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); work->unk_04 = 0.0f; BoardModelPosGet(lbl_1_data_388, &spC); if (arg0 != 0) { spC.y = -185.0f; - } else { + } + else { spC.y = 10.0f; } BoardModelPosSetV(lbl_1_data_388, &spC); } -void fn_1_6494(void) { +void fn_1_6494(void) +{ Vec sp14; Vec sp8; - unkWorkStruct* temp_r31; + unkWorkStruct *temp_r31; lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0); lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0); @@ -81,14 +78,15 @@ void fn_1_6494(void) { sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); BoardModelPosSetV(lbl_1_data_388, &sp14); - lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C); + lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_767C); temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); temp_r31->temp1 = 0; temp_r31->unk_04 = 0.0f; lbl_1_bss_124 = 0; } -s32 fn_1_6698(void) { +s32 fn_1_6698(void) +{ Vec sp14; Vec sp8; @@ -96,11 +94,12 @@ s32 fn_1_6698(void) { BoardSpaceFlagPosGet(0, 0x200, &sp8); sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); - BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14); + BoardModelPosSetV(lbl_1_data_388, (Vec *)&sp14); return 1; } -s16 fn_1_675C(void) { +s16 fn_1_675C(void) +{ BoardRollDispSet(0); lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884); @@ -113,7 +112,8 @@ s16 fn_1_675C(void) { return lbl_1_bss_128; } -void fn_1_67F8(void) { +void fn_1_67F8(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -131,7 +131,8 @@ void fn_1_67F8(void) { HuPrcEnd(); } -void fn_1_6884(void) { +void fn_1_6884(void) +{ lbl_1_bss_120 = 0; } @@ -142,15 +143,16 @@ typedef struct unkPos { } unkPos; unkPos lbl_1_data_3B8[6] = { - {5, 20, 5}, - {21, 35, 7}, - {31, 50, 10}, - {51, 80, 15}, - {81, 100, 17}, - {101, 999, 20}, + { 5, 20, 5 }, + { 21, 35, 7 }, + { 31, 50, 10 }, + { 51, 80, 15 }, + { 81, 100, 17 }, + { 101, 999, 20 }, }; -s32 fn_1_6898(s32 arg0) { +s32 fn_1_6898(s32 arg0) +{ Vec sp20; Vec sp14; Vec sp8; @@ -163,11 +165,11 @@ s32 fn_1_6898(s32 arg0) { BoardPlayerIdleSet(arg0); BoardCameraViewSet(2); BoardCameraMotionWait(); - + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp20, &sp14, &sp8); - temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / M_PI); + temp_f31 = atan2d(sp8.x, sp8.z); BoardCameraTargetModelSet(lbl_1_data_388); BoardPlayerMotBlendSet(arg0, temp_f31, 15); @@ -195,7 +197,7 @@ s32 fn_1_6898(s32 arg0) { var_r27 = lbl_1_data_3B8[i].z; break; } - } + } } sprintf(lbl_1_bss_130, "%d", var_r27); @@ -214,24 +216,24 @@ s32 fn_1_6898(s32 arg0) { BoardWinKill(); switch (BoardWinChoiceGet()) { - case 0: - j = 1; - break; - case 1: - case -1: - BoardWinCreate(2, MAKE_MESSID(22, 14), 2); - BoardWinWait(); - BoardWinKill(); - return 0; - default: - BoardViewMapExec(arg0); + case 0: + j = 1; + break; + case 1: + case -1: + BoardWinCreate(2, MAKE_MESSID(22, 14), 2); + BoardWinWait(); + BoardWinKill(); + return 0; + default: + BoardViewMapExec(arg0); } } for (i = 0; i < var_r27; i++) { BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(0xE); - HuPrcSleep(6); + HuPrcSleep(6); } HuAudFXPlay(0xF); @@ -243,11 +245,12 @@ s32 fn_1_6898(s32 arg0) { s32 BoardDAngleCalcRange(float *value, float min, float range); -void fn_1_6B98(s32 arg0) { +void fn_1_6B98(s32 arg0) +{ Vec sp30; - Point3d sp24; + Vec sp24; Vec sp18; - Point3d spC; + Vec spC; f32 sp8; f32 temp_f1; f32 temp_f31; @@ -285,19 +288,19 @@ void fn_1_6B98(s32 arg0) { VECAdd(&spC, &sp24, &sp24); temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A); - if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) { + if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16)var_r31 == 0)) { HuAudFXPlay(0x451); var_r31 = 1; } - if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) { + if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16)var_r31 != 0)) { var_r31 = 0; } BoardModelPosSetV(lbl_1_data_388, &sp24); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardModelPosSetV(lbl_1_data_388, &sp18); BoardCameraTargetModelSet(-1); BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, HU3D_MOTATTR_REV); @@ -319,7 +322,8 @@ void fn_1_6B98(s32 arg0) { extern s32 lbl_1_data_368[]; // extern w03State* lbl_1_bss_0; -void fn_1_6F9C(s32 arg0) { +void fn_1_6F9C(s32 arg0) +{ Vec sp20; Vec sp14; Vec sp8; @@ -342,7 +346,8 @@ void fn_1_6F9C(s32 arg0) { var_f30 = 10.0f; var_f29 = 0.21f; sp14.y += sp20.y; - } else { + } + else { var_f30 = 0.0f; var_f29 = 0.15f; } @@ -362,16 +367,17 @@ void fn_1_6F9C(s32 arg0) { } } BoardPlayerPosSetV(arg0, &sp14); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); BoardPlayerIdleSet(arg0); if (GWPlayer[arg0].bowser_suit != 0) { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); - } else { + } + else { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); } @@ -379,10 +385,11 @@ void fn_1_6F9C(s32 arg0) { lbl_1_bss_124 = 0; } -void fn_1_735C(s32 arg0) { +void fn_1_735C(s32 arg0) +{ Vec sp20; Vec sp14; - Point3d sp8; + Vec sp8; f32 temp_f1; f32 var_f30; f32 var_f31; @@ -395,19 +402,20 @@ void fn_1_735C(s32 arg0) { BoardPlayerPosSetV(arg0, &sp14); BoardModelHookObjReset(lbl_1_data_388, "chara01"); VECSubtract(&sp20, &sp14, &sp8); - + sp8.x = sp8.x / 60.0f; sp8.z = sp8.z / 60.0f; sp8.y = 0.0f; - + HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_0->unk0 != 0) { var_f30 = 0.25f; - } else { + } + else { var_f30 = 0.2f; } - + for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { VECAdd(&sp14, &sp8, &sp14); sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31)); @@ -419,9 +427,9 @@ void fn_1_735C(s32 arg0) { } } BoardPlayerPosSetV(arg0, &sp14); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardPlayerPosSetV(arg0, &sp20); HuPrcSleep(0xA); BoardPlayerMotBlendSet(arg0, 0, 15); @@ -439,15 +447,15 @@ void fn_1_735C(s32 arg0) { BoardWinKill(); } - -void fn_1_767C(omObjData* arg0) { - Point3d sp8; +void fn_1_767C(omObjData *arg0) +{ + Vec sp8; s32 temp_r30; - unkWorkStruct* temp_r31; + unkWorkStruct *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct); - if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) { + if ((temp_r31->temp1 != 0) || (BoardIsKill() != 0)) { lbl_1_bss_12C = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); return; @@ -456,15 +464,16 @@ void fn_1_767C(omObjData* arg0) { if ((lbl_1_data_388 != -1) && (lbl_1_bss_124 == 0)) { temp_r31->unk_04 += 3.0f; if (temp_r31->unk_04 >= 360.0f) { - temp_r31->unk_04 = (f32) (temp_r31->unk_04 - 360.0f); + temp_r31->unk_04 -= 360.0f; } BoardModelPosGet(lbl_1_data_388, &sp8); - sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((M_PI * (f64) temp_r31->unk_04) / 180.0)))); + sp8.y += 0.25 * (2.0 * sind(temp_r31->unk_04)); BoardModelPosSetV(lbl_1_data_388, &sp8); } } -void fn_1_77E4(s32 arg0) { +void fn_1_77E4(s32 arg0) +{ s32 boardIndex; s32 var_r30 = 0; diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 914ee853..2d4d9102 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -1,17 +1,19 @@ -#include "dolphin.h" #include "REL/executor.h" -#include "game/process.h" -#include "game/data.h" -#include "game/gamework_data.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/audio.h" +#include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" #include "game/board/ui.h" +#include "game/data.h" +#include "game/gamework_data.h" #include "game/hsfman.h" -#include "game/board/main.h" #include "game/objsub.h" +#include "game/process.h" + +#include "ext_math.h" void fn_1_1358(void); void fn_1_152C(void); @@ -26,19 +28,17 @@ void fn_1_2AC0(void); void fn_1_2818(void); void fn_1_2A40(void); void fn_1_2B44(void); -double atan2(double y, double x); -//data +// data 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; -//BSS Extern +// BSS Extern - -//BSS +// BSS s8 lbl_1_bss_6F; s8 lbl_1_bss_6E; s16 lbl_1_bss_6C; @@ -47,12 +47,13 @@ s16 lbl_1_bss_68; GXTexObj lbl_1_bss_48; char lbl_1_bss_44[4]; char lbl_1_bss_38[12]; -void* lbl_1_bss_34; +void *lbl_1_bss_34; f32 lbl_1_bss_30; s8 lbl_1_bss_2C; -Process* lbl_1_bss_28; +Process *lbl_1_bss_28; -void fn_1_12C8(void) { +void fn_1_12C8(void) +{ BoardRollDispSet(0); lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C); @@ -64,7 +65,8 @@ void fn_1_12C8(void) { BoardRollDispSet(1); } -void fn_1_1358(void) { +void fn_1_1358(void) +{ s32 cur_player_index; s32 unkC; @@ -75,7 +77,8 @@ void fn_1_1358(void) { if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) { lbl_1_bss_6E = 0; lbl_1_bss_6C = lbl_1_bss_C[3]; - } else { + } + else { lbl_1_bss_6E = 1; lbl_1_bss_6C = lbl_1_bss_C[4]; } @@ -83,7 +86,8 @@ void fn_1_1358(void) { if (fn_1_1650(cur_player_index) != 0) { if (fn_1_1D1C() != 0) { fn_1_1ED4(cur_player_index); - } else { + } + else { fn_1_20E0(cur_player_index); } if (lbl_1_bss_2C) { @@ -105,7 +109,8 @@ void fn_1_1358(void) { HuPrcEnd(); } -void fn_1_152C(void) { +void fn_1_152C(void) +{ BoardConfettiKill(); if (lbl_1_data_282 != -1) { @@ -122,7 +127,8 @@ void fn_1_152C(void) { lbl_1_bss_28 = NULL; } -s32 fn_1_15E8(void) { +s32 fn_1_15E8(void) +{ BoardModelVisibilitySet(lbl_1_bss_6C, 1); if (lbl_1_data_284 != -1) { @@ -133,29 +139,30 @@ s32 fn_1_15E8(void) { return 1; } -s32 fn_1_1650(s32 arg0) { - Point3d sp38; - Point3d sp2C; - Point3d sp20; - Point3d sp14; - Point3d sp8; +s32 fn_1_1650(s32 arg0) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp; s32 temp2; BoardPlayerIdleSet(arg0); - + if (lbl_1_bss_0->unk2) { BoardWinCreate(0, MAKE_MESSID(22, 0), -1); BoardWinWait(); BoardWinKill(); return 0; } - + temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000); BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); VECSubtract(&sp38, &sp2C, &sp20); - temp = (atan2(-sp20.x, -sp20.z) / M_PI) * 180.0f; + temp = atan2d(-sp20.x, -sp20.z); BoardPlayerRotYSet(arg0, temp); sp14.x = 0.0f; sp14.y = 100.0f; @@ -169,14 +176,14 @@ s32 fn_1_1650(s32 arg0) { while (GWPlayer[arg0].moving) { HuPrcVSleep(); } - + BoardStatusShowSetAll(0); BoardPlayerMotBlendSet(arg0, 0xB4, 0xF); while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardPlayerIdleSet(arg0); BoardWinCreate(2, MAKE_MESSID(22, 1), 2); BoardWinWait(); @@ -186,7 +193,8 @@ s32 fn_1_1650(s32 arg0) { if (GWPlayer[arg0].com) { if (BoardRandMod(0x64) > 0x32U) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -199,56 +207,35 @@ s32 fn_1_1650(s32 arg0) { BoardMusStart(1, 0x19, 0x7F, 0); HuAudFXPlay(0x435); sp8.y = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) { BoardModelRotYSet(lbl_1_bss_6C, sp8.y); HuPrcVSleep(); } - + HuAudFXPlay(0x445); BoardModelRotYSet(lbl_1_bss_6C, 180.0f); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } return 1; } -s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) -}; +s32 lbl_1_data_290[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) }; -s32 lbl_1_data_2B0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) -}; +s32 lbl_1_data_2B0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; -s32 lbl_1_data_2D0[] = { - 0x00000125, 0x00000165, 0x000001A5, - 0x000001E5, 0x00000225, 0x00000265, - 0x000002A5, 0x000002E5 -}; +s32 lbl_1_data_2D0[] = { 0x00000125, 0x00000165, 0x000001A5, 0x000001E5, 0x00000225, 0x00000265, 0x000002A5, 0x000002E5 }; -s32 lbl_1_data_2F0[] = { - 0x0000012E, 0x0000016E, 0x000001AE, - 0x000001EE, 0x0000022E, 0x0000026E, - 0x000002AE, 0x000002EE -}; +s32 lbl_1_data_2F0[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE }; -void fn_1_19DC(s32 arg0, s32 arg1) { +void fn_1_19DC(s32 arg0, s32 arg1) +{ s32 temp_r30; s32 temp_r5; s32 temp_r5_2; @@ -262,7 +249,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { lbl_1_bss_6A = 8; lbl_1_bss_68 = lbl_1_data_282; var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character]; - } else { + } + else { lbl_1_bss_6A = 7; lbl_1_bss_68 = 1; var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character]; @@ -283,11 +271,10 @@ void fn_1_19DC(s32 arg0, s32 arg1) { while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); - } HuPrcSleep(60); - + if (arg1 != 0) { BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); @@ -314,7 +301,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { } } -s32 fn_1_1D1C(void) { +s32 fn_1_1D1C(void) +{ s32 sp34; s32 sp30; s32 sp2C; @@ -329,11 +317,7 @@ s32 fn_1_1D1C(void) { s32 maxTurn; s32 sp8[3] = { 70, 50, 45 }; - s32 sp14[3][3] = { - {3, 5, 22}, - {5, 10, 35}, - {5, 15, 35} - }; + s32 sp14[3][3] = { { 3, 5, 22 }, { 5, 10, 35 }, { 5, 15, 35 } }; while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); @@ -351,24 +335,27 @@ s32 fn_1_1D1C(void) { } modRand = BoardRandMod(100); - if (modRand < sp8[var_r31] ) { + if (modRand < sp8[var_r31]) { return 1; } modRand2 = BoardRandMod(100 - sp8[var_r31]); if (modRand2 < sp14[var_r31][0]) { lbl_1_bss_2C = 3; - } else if (modRand2 < sp14[var_r31][1]) { + } + else if (modRand2 < sp14[var_r31][1]) { lbl_1_bss_2C = 2; - } else { + } + else { lbl_1_bss_2C = 1; } return 0; } -void fn_1_1ED4(s32 arg0) { - Point3d spC; +void fn_1_1ED4(s32 arg0) +{ + Vec spC; f32 sp8; lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0); @@ -382,12 +369,12 @@ void fn_1_1ED4(s32 arg0) { spC.y += 700.0f; BoardConfettiCreate(&spC, 0x64, 300.0f); sp8 = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) { BoardModelRotYSet(lbl_1_data_284, sp8); HuPrcVSleep(); } - + omVibrate(arg0, 0xC, 4, 2); BoardMusStart(1, 0x1A, 0x7F, 0); BoardModelRotYSet(lbl_1_data_284, 0.0f); @@ -398,7 +385,7 @@ void fn_1_1ED4(s32 arg0) { } BoardPlayerIdleSet(arg0); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } @@ -410,10 +397,11 @@ void fn_1_1ED4(s32 arg0) { BoardConfettiStop(); } -void fn_1_20E0(s32 arg0) { - Point3d sp24; - Point3d sp18; - Point3d spC; +void fn_1_20E0(s32 arg0) +{ + Vec sp24; + Vec sp18; + Vec spC; f32 sp8; f32 var_f31; s32 i; @@ -435,28 +423,28 @@ void fn_1_20E0(s32 arg0) { omVibrate(arg0, 0xC, 4, 2); BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_bss_6C, 0.0f); - + while (BoardFilterFadePauseCheck() == 0) { HuPrcVSleep(); } - + BoardMusStart(1, 0x1B, 0x7F, 0); HuAudFXPlay(0x44A); fn_1_2A40(); lbl_1_bss_30 = 0.0f; - + while (lbl_1_bss_30 < 128.0f) { HuPrcVSleep(); lbl_1_bss_30 += 12.0f; } - + if (lbl_1_bss_30 > 128.0f) { lbl_1_bss_30 = 128.0f; } HuPrcSleep(40); lbl_1_bss_30 = 128.0f; - + while (lbl_1_bss_30 > 0.0f) { HuPrcVSleep(); lbl_1_bss_30 -= 12.0f; @@ -474,13 +462,13 @@ void fn_1_20E0(s32 arg0) { BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13); BoardCameraMotionWait(); } - + BoardPlayerIdleSet(arg0); while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } - + BoardAudSeqPause(0, 0, 1000); BoardWinCreate(2, MAKE_MESSID(22, 5), 2); BoardWinWait(); @@ -503,16 +491,16 @@ void fn_1_20E0(s32 arg0) { for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) { BoardCameraQuakeSet(0xA, var_f31); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardCameraQuakeReset(); if (lbl_1_data_288 != 0) { HuAudFXStop(lbl_1_data_288); lbl_1_data_288 = -1; } - + fn_1_2818(); omVibrate(arg0, 0xC, 0xC, 0); HuAudFXPlay(0x438); @@ -529,17 +517,18 @@ void fn_1_20E0(s32 arg0) { HuPrcSleep(0x3C); } -void fn_1_26E0(s32 arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; +void fn_1_26E0(s32 arg0) +{ + Vec sp20; + Vec sp14; + Vec sp8; f32 temp; BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp20, &sp14, &sp8); VECNormalize(&sp8, &sp8); - temp = (180.0f * (atan2(-sp8.x, -sp8.z) / M_PI)); + temp = atan2d(-sp8.x, -sp8.z); BoardPlayerRotYSet(arg0, temp); BoardCameraViewSet(1); BoardCameraTargetPlayerSet(arg0); @@ -554,11 +543,12 @@ void fn_1_26E0(s32 arg0) { BoardPlayerIdleSet(arg0); } -void fn_1_2818(void) { +void fn_1_2818(void) +{ s16 temp_r29; s16 temp_r30; s16 j; - s16 sp8[3] = {0x0002, 0x003E, 0x007A}; + s16 sp8[3] = { 0x0002, 0x003E, 0x007A }; temp_r29 = (4 - lbl_1_bss_2C) * 60; BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); @@ -569,19 +559,21 @@ void fn_1_2818(void) { for (j = 0; j < ARRAY_COUNT(sp8); j++) { if (temp_r30 == sp8[j]) { HuAudFXPlay(0x446); - } + } } HuPrcVSleep(); - } else { + } + else { break; - } + } } BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002); HuPrcSleep(0x3C); } -s32 fn_1_2930(s32 arg0) { +s32 fn_1_2930(s32 arg0) +{ lbl_1_bss_0->unk0--; if (lbl_1_bss_0->unk0 <= 0) { @@ -604,14 +596,16 @@ s32 fn_1_2930(s32 arg0) { return 0; } -void fn_1_2A40(void) { +void fn_1_2A40(void) +{ lbl_1_bss_30 = 0.0f; lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); - lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44); + lbl_1_data_286 = Hu3DHookFuncCreate((void *)&fn_1_2B44); Hu3DModelLayerSet(lbl_1_data_286, 3); } -void fn_1_2AC0(void) { +void fn_1_2AC0(void) +{ if (lbl_1_bss_34) { HuMemDirectFree(lbl_1_bss_34); lbl_1_bss_34 = NULL; @@ -623,15 +617,16 @@ void fn_1_2AC0(void) { } } -void fn_1_2B44(void) { +void fn_1_2B44(void) +{ Mtx44 sp50; Mtx sp20; GXColor sp14; GXColor sp10; GXColor spC; u8 sp8; - GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF}; - GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF}; + GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF }; + GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; f32 temp_f28 = 0.0f; f32 temp_f30 = 640.0f; @@ -643,7 +638,7 @@ void fn_1_2B44(void) { GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0); C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f); GXSetProjection(sp50, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp20); + MTXIdentity(sp20); GXLoadPosMtxImm(sp20, 0); GXSetCurrentMtx(0); GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f); diff --git a/src/REL/w04Dll/big_boo.c b/src/REL/w04Dll/big_boo.c index ddc030bc..16df9492 100755 --- a/src/REL/w04Dll/big_boo.c +++ b/src/REL/w04Dll/big_boo.c @@ -913,9 +913,13 @@ static void fn_1_8A60(void) { HuPrcVSleep(); } fn_1_7300(); + #if VERSION_ENG sprintf(sp10, "%d", var_r29); BoardWinCreate(2, MAKE_MESSID(32, 11), 9); BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0); + #else + BoardWinCreate(2, MAKE_MESSID(32, 11), 9); + #endif BoardWinWait(); BoardWinKill(); BoardAudSeqFadeOut(1, 1000); diff --git a/src/REL/w04Dll/mg_coin.c b/src/REL/w04Dll/mg_coin.c index 11ce6a4e..72baaaff 100755 --- a/src/REL/w04Dll/mg_coin.c +++ b/src/REL/w04Dll/mg_coin.c @@ -273,7 +273,7 @@ static void fn_1_D2A4(omObjData *arg0) { sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); BoardModelPosGet(lbl_1_bss_14[9], &spC); if (arg0->scale.x != 0.0f) { - arg0->scale.x -= 8.5f; + arg0->scale.x -= 510.0f/REFRESH_RATE; if (arg0->scale.x < 0.0f) { arg0->scale.x = 0.0f; } @@ -294,7 +294,7 @@ static void fn_1_D2A4(omObjData *arg0) { Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0); } lbl_1_bss_31C->work[0] = 60; - lbl_1_bss_31C->unk10 = frandmod(40) + 10; + lbl_1_bss_31C->unk10 = frandmod((REFRESH_RATE*2)/3) + (REFRESH_RATE/6); lbl_1_bss_31C->work[1] = arg0->work[1]; lbl_1_bss_31C->func = fn_1_E18C; } @@ -304,7 +304,7 @@ static void fn_1_D554(omObjData *arg0) { float sp8; sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); - arg0->scale.x += 8.5f; + arg0->scale.x += 510.0f/REFRESH_RATE; if (arg0->scale.x > 255.0f) { arg0->scale.x = 255.0f; } @@ -567,7 +567,7 @@ static void fn_1_E4C0(omObjData *arg0) { sp14.z = arg0->scale.z; sp20.x = arg0->trans.x; sp20.z = arg0->trans.z; - sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f; + sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * ((VERSION_PAL) ? 0.1125f : 0.075f); arg0->rot.x += 1.0f; VECAdd(&sp2C, &sp20, &sp2C); sp8 = sp2C; diff --git a/src/REL/w04Dll/mg_item.c b/src/REL/w04Dll/mg_item.c index 6f22fb6b..cbda9008 100755 --- a/src/REL/w04Dll/mg_item.c +++ b/src/REL/w04Dll/mg_item.c @@ -45,21 +45,27 @@ static s32 lbl_1_data_534[] = { 0x00000468 }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + static s32 lbl_1_data_540[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 109), - DATA_MAKE_NUM(DATADIR_BOARD, 110), - DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), - DATA_MAKE_NUM(DATADIR_BOARD, 113), - DATA_MAKE_NUM(DATADIR_BOARD, 114), - DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), - DATA_MAKE_NUM(DATADIR_BOARD, 118), - DATA_MAKE_NUM(DATADIR_BOARD, 119), - DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), - DATA_MAKE_NUM(DATADIR_BOARD, 122), - DATA_MAKE_NUM(DATADIR_BOARD, 123), + DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT), DATA_MAKE_NUM(DATADIR_W02, 24), DATA_MAKE_NUM(DATADIR_W02, 25), DATA_MAKE_NUM(DATADIR_W02, 26), @@ -130,9 +136,9 @@ void fn_1_A1F0(void) { BoardAudSeqPause(0, 1, 1000); BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); - HuPrcSleep(20); + HuPrcSleep((REFRESH_RATE+2)/3); HuAudFXPlay(0x469); - HuPrcSleep(50); + HuPrcSleep(((REFRESH_RATE*5)+3)/6); BoardMusStart(1, 0x1E, 0x7F, 0); HuAudFXPlay(0x46C); while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) { @@ -349,7 +355,7 @@ static void fn_1_A7E8(void) { } BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]); BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); HuAudFXPlay(0x310); while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) { HuPrcVSleep(); @@ -471,7 +477,7 @@ static void fn_1_A7E8(void) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_14[10], 0.0f); - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(sp8) != 0) { HuPrcVSleep(); } diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index 6870e9c0..46cc5a9e 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -11,6 +11,8 @@ #include "game/board/player.h" #include "game/board/window.h" +#include "ext_math.h" + // bss s16 lbl_1_bss_72[2]; s16 lbl_1_bss_6C[3]; @@ -179,7 +181,7 @@ void fn_1_4034(s32 arg0) var_r27 = arg0 + 1; } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34); - temp_f25 = (180.0 * (atan2((sp34.x - sp40.x), (sp34.z - sp40.z)) / M_PI)); + temp_f25 = atan2d(sp34.x - sp40.x, sp34.z - sp40.z); BoardModelMotionShiftSet(lbl_1_bss_64, 2, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) { @@ -236,7 +238,7 @@ loop_37: } BoardModelPosGet(lbl_1_bss_64, &sp40); BoardPlayerPosGet(lbl_1_bss_68, &sp28); - var_f27 = 180.0 * (atan2((sp40.x - sp28.x), (sp40.z - sp28.z)) / M_PI); + var_f27 = atan2d(sp40.x - sp28.x, sp40.z - sp28.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f27, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -352,7 +354,7 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); BoardSpacePosGet(0, arg2, &sp3C); - var_f28 = 180.0 * (atan2((sp3C.x - sp30.x), (sp3C.z - sp30.z)) / M_PI); + var_f28 = atan2d(sp3C.x - sp30.x, sp3C.z - sp30.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f28, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -486,7 +488,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) VECAdd(&sp58, &sp40, &sp58); sp64 = sp58; if (var_r29 == 0) { - sp58.y += 250.0 * sin((M_PI * var_f28) / 180.0); + sp58.y += 250.0 * sind(var_f28); var_f28 -= 2.5f; if (var_f28 < -540.0f) { var_f28 = -540.0f; @@ -521,7 +523,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) var_r29--; } BoardModelPosSetV(lbl_1_bss_64, &sp58); - sp28.x = sp34.x = (45.0 * -sin((M_PI * var_f28) / 180.0)); + sp28.x = sp34.x = 45.0 * -sind(var_f28); BoardModelRotSetV(lbl_1_bss_64, &sp34); BoardPlayerRotSetV(lbl_1_bss_68, &sp28); sp4C = sp58; @@ -540,7 +542,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); BoardSpacePosGet(0, arg1, &sp58); - var_f27 = (180.0 * (atan2((sp58.x - sp4C.x), (sp58.z - sp4C.z)) / M_PI)); + var_f27 = atan2d(sp58.x - sp4C.x, sp58.z - sp4C.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f27, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -599,8 +601,8 @@ void fn_1_62AC(s32 arg0, Vec *arg1) sp1C = sp28; sp10 = sp28; VECScale(&sp1C, &sp1C, sp8[arg0]); - sp1C.y += (250.0 * sin((M_PI * var_f31) / 180.0)); - var_f30 = (250.0 * -cos((M_PI * var_f31) / 180.0)); + sp1C.y += 250.0 * sind(var_f31); + var_f30 = 250.0 * -cosd(var_f31); VECScale(&sp10, &sp10, var_f30); VECAdd(&sp10, &sp1C, &sp1C); VECAdd(&sp1C, &sp34, &sp1C); diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index d05260b2..bebb63c7 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -10,6 +10,8 @@ #include "game/board/player.h" #include "game/board/window.h" +#include "ext_math.h" + // data s32 lbl_1_data_150[5] = { DATA_MAKE_NUM(DATADIR_W05, 0x21), DATA_MAKE_NUM(DATADIR_W05, 0x22), DATA_MAKE_NUM(DATADIR_W05, 0x23), @@ -75,7 +77,7 @@ void fn_1_155C(void) { temp_f30 = BoardPlayerRotYGet(lbl_1_bss_28); BoardPlayerPosGet(lbl_1_bss_28, &sp58); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), "hotel1", &sp64); - temp_f31 = 180.0 * (atan2((sp64.x - sp58.x), (sp64.z - sp58.z)) / M_PI); + temp_f31 = atan2d(sp64.x - sp58.x, sp64.z - sp58.z); BoardPlayerMotBlendSet(lbl_1_bss_28, temp_f31, 0xF); BoardCameraViewSet(2); @@ -103,7 +105,7 @@ void fn_1_155C(void) { HuPrcVSleep(); } BoardModelPosSetV(lbl_1_bss_14[4], &sp28); - temp_f31 = (180.0 * (atan2((sp58.x - sp28.x), (sp58.z - sp28.z)) / M_PI)); + temp_f31 = atan2d(sp58.x - sp28.x, sp58.z - sp28.z); while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); @@ -266,13 +268,13 @@ void fn_1_1E44(void) { HuPrcVSleep(); } BoardModelPosSetV(lbl_1_bss_14[4], &sp2C); - temp_f31 = (180.0 * (atan2((sp50.x - sp2C.x), (sp50.z - sp2C.z)) / M_PI)); + temp_f31 = atan2d(sp50.x - sp2C.x, sp50.z - sp2C.z); while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); } BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); - temp_f31 = 180.0 * (atan2((sp2C.x - sp50.x), (sp2C.z - sp50.z)) / M_PI); + temp_f31 = atan2d(sp2C.x - sp50.x, sp2C.z - sp50.z); BoardPlayerMotBlendSet(lbl_1_bss_28, temp_f31, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_28) == 0) { diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index 36c2269a..c2f8d938 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -14,6 +14,9 @@ #include "game/board/window.h" +#include "ext_math.h" + + s16 lbl_1_bss_102[3]; s16 lbl_1_bss_100; s16 lbl_1_bss_FE; @@ -226,7 +229,7 @@ void fn_1_9F24(omObjData *arg0) temp_r31->unk_08++; } sp18 = temp_r31->unk_0C[temp_r31->unk_08]; - var_f31 = (180.0 * (atan2((sp18.x - sp24.x), (sp18.z - sp24.z)) / M_PI)); + var_f31 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z); BoardPlayerRotYSet(lbl_1_bss_C0, var_f31); spC = temp_r31->unk_0C[temp_r31->unk_08]; spC.y += 50.0f; @@ -387,7 +390,7 @@ void fn_1_AB24(void) spC = temp_r30->data; BoardPlayerPosGet(lbl_1_bss_C0, &sp28); BoardModelPosGet(lbl_1_bss_14[5], &sp1C); - var_f30 = (180.0 * (atan2((sp1C.z - sp28.z), (sp1C.x - sp28.x)) / M_PI)); + var_f30 = atan2d(sp1C.z - sp28.z, sp1C.x - sp28.x); BoardPlayerMotBlendSet(lbl_1_bss_C0, var_f30, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 4a58d846..0e942bef 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -12,6 +12,8 @@ #include "game/board/model.h" #include "game/board/window.h" +#include "ext_math.h" + // data s32 lbl_1_data_310[2] = { 0x79, 0x7A }; char *lbl_1_data_330[3] = { "suika1", "suika2", "suika3" }; @@ -80,7 +82,7 @@ void fn_1_6B7C(void) BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002); BoardMusStart(1, 0x22, 0x7F, 0); BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); - HuPrcSleep(0x1E); + HuPrcSleep(REFRESH_RATE/2); BoardModelVisibilitySet(lbl_1_bss_A2, 1); BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2); Hu3DModelObjPosGet(BoardModelIDGet(*lbl_1_bss_14), "chara1", &sp10); @@ -172,21 +174,27 @@ void fn_1_7400(void) HuPrcEnd(); } +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_350[14] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0, @@ -353,7 +361,7 @@ void fn_1_799C(void) while (BoardPlayerMotionEndCheck(lbl_1_bss_B6) == 0) { HuPrcVSleep(); } - HuPrcSleep(0x1E); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(temp_r27) != 0) { HuPrcVSleep(); @@ -453,7 +461,7 @@ void fn_1_80D8(omObjData *arg0) } if ((spC != 0) || (sp10 != 0)) { var_r29 = -1; - var_f31 = (180.0 * (atan2(spC, sp10) / M_PI)); + var_f31 = atan2d(spC, sp10); if (var_f31 < 0.0f) { var_f31 += 360.0f; } @@ -605,10 +613,10 @@ void fn_1_896C(void) } } if ((temp_r30 & 0x80) != 0) { - HuPrcSleep(0x19); + HuPrcSleep(((REFRESH_RATE*5)+6)/12); } else { - HuPrcSleep(0xF); + HuPrcSleep((REFRESH_RATE+2)/4); } spC.x = spC.y = spC.z = 0.0f; @@ -689,7 +697,7 @@ void fn_1_896C(void) var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); - sp18.y = (sp18.y + (0.25 * sin((M_PI * var_f30) / 180.0))); + sp18.y += 0.25 * sind(var_f30); BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18); } } @@ -706,7 +714,7 @@ void fn_1_896C(void) for (var_r31 = 0; var_r31 < 3; var_r31++) { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0x28, 0x46); } - HuPrcSleep(13); + HuPrcSleep((REFRESH_RATE*2)/9); var_f31 = -8.0f; while (1) { for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) { @@ -804,8 +812,8 @@ void fn_1_9268(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) if (var_r28 != particle->unk_30) { temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF)); temp_f29 = temp_f31 * (20.0f + (60.0f * (0.003921569f * (s32)(frand() & 0xFF)))); - var_r31->unk34.x = sp8.x + (temp_f29 * sin((M_PI * temp_f30) / 180.0)); - var_r31->unk34.z = sp8.z + (temp_f29 * cos((M_PI * temp_f30) / 180.0)); + var_r31->unk34.x = sp8.x + temp_f29 * sind(temp_f30); + var_r31->unk34.z = sp8.z + temp_f29 * cosd(temp_f30); var_r31->unk34.y = sp8.y + (temp_f31 * (-30.0f + (40.0f * (0.003921569f * (s32)(frand() & 0xFF))))); var_r31->unk08.x = 0.5f + (3.0f * (0.003921569f * (s32)(frand() & 0xFF))); var_r31->unk08.y = 0.3f + (2.0f * (0.003921569f * (s32)(frand() & 0xFF))); diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index c2590736..bce6d422 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -89,6 +89,12 @@ static s32 lbl_1_data_4CC[8] = { 0x000002E3 }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + static s32 lbl_1_data_4EC[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), DATA_MAKE_NUM(DATADIR_BKOOPA, 10), @@ -1036,7 +1042,7 @@ static void fn_1_C40C(void) { BoardCameraMotionWait(); BoardCameraTargetModelSet(-1); BoardModelRotYSet(lbl_1_data_498, var_f30); - lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); + lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 98 + MDL_ID_SHIFT), NULL, 0); BoardModelVisibilitySet(lbl_1_data_4A0, 0); BoardModelLayerSet(lbl_1_data_4A0, 2); var_r29 = BoardSpaceStarGet(lbl_1_bss_0->unk04 - 1); diff --git a/src/REL/w06Dll/fire.c b/src/REL/w06Dll/fire.c index 2fcc6899..f9fb964b 100755 --- a/src/REL/w06Dll/fire.c +++ b/src/REL/w06Dll/fire.c @@ -49,6 +49,24 @@ static s16 lbl_1_data_22A = -1; static s16 lbl_1_data_22C = -1; static s16 lbl_1_data_22E = -1; +#if VERSION_PAL +static s32 lbl_1_data_230[] = { + MAKE_MESSID(8, 0), + MAKE_MESSID(8, 1), + MAKE_MESSID(8, 2), + MAKE_MESSID(8, 3), + MAKE_MESSID(8, 4), + MAKE_MESSID(8, 5), + MAKE_MESSID(8, 6), + MAKE_MESSID(8, 7), + MAKE_MESSID(8, 8), + MAKE_MESSID(8, 9), + MAKE_MESSID(8, 10), + MAKE_MESSID(8, 11), + MAKE_MESSID(8, 12), + MAKE_MESSID(8, 13) +}; +#else static s32 lbl_1_data_230[] = { MAKE_MESSID(8, 14), MAKE_MESSID(8, 15), @@ -65,7 +83,7 @@ static s32 lbl_1_data_230[] = { MAKE_MESSID(8, 26), MAKE_MESSID(8, 27) }; - +#endif void fn_1_6EF0(void) { BoardRollDispSet(0); lbl_1_bss_90 = HuPrcChildCreate(fn_1_6F80, 0x2003, 0x3800, 0, boardMainProc); @@ -203,9 +221,12 @@ static void fn_1_74BC(s32 arg0) { static void fn_1_7574(void) { s32 temp_r3; s32 temp_r29; + #if VERSION_PAL + s32 playerNo = GWSystem.player_curr; + #endif s32 temp_r28; s32 i; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_C2[i] == 0) { continue; @@ -218,11 +239,17 @@ static void fn_1_7574(void) { BoardWinCreate(0, MAKE_MESSID(48, 16), -1); BoardWinInsertMesSet(temp_r28, 0); BoardWinInsertMesSet(lbl_1_data_230[temp_r29], 1); + #if VERSION_PAL + GWSystem.player_curr = i; + #endif BoardWinPlayerSet(i); BoardWinWait(); BoardWinKill(); } } + #if VERSION_PAL + GWSystem.player_curr = playerNo; + #endif } static void fn_1_7674(s32 arg0) { diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c index 0c83a033..6313eb6d 100755 --- a/src/REL/w06Dll/mg_item.c +++ b/src/REL/w06Dll/mg_item.c @@ -1,6 +1,15 @@ #include "REL/w06Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" @@ -10,15 +19,7 @@ #include "game/process.h" #include "game/sprite.h" #include "game/window.h" -#include "game/frand.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/ui.h" -#include "game/board/window.h" + #include "dolphin.h" #include "ext_math.h" @@ -132,7 +133,8 @@ static s8 lbl_1_data_1AD[3] = { 0, 0, 0 }; static s16 lbl_1_data_1B0 = -1; static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL }; -void fn_1_D70(void) { +void fn_1_D70(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -157,7 +159,8 @@ void fn_1_D70(void) { } } -void fn_1_F6C(void) { +void fn_1_F6C(void) +{ s32 i; for (i = 0; i < 3; i++) { @@ -173,7 +176,8 @@ void fn_1_F6C(void) { } } -void fn_1_1054(void) { +void fn_1_1054(void) +{ BoardRollDispSet(0); lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4); @@ -183,7 +187,8 @@ void fn_1_1054(void) { BoardRollDispSet(1); } -static void fn_1_10E4(void) { +static void fn_1_10E4(void) +{ fn_1_43DC(); if (lbl_1_data_1A8 != -1) { HuWinKill(lbl_1_data_1A8); @@ -192,7 +197,8 @@ static void fn_1_10E4(void) { lbl_1_bss_18 = NULL; } -static void fn_1_1148(void) { +static void fn_1_1148(void) +{ s32 temp_r3; s32 temp_r31; @@ -205,7 +211,8 @@ static void fn_1_1148(void) { HuPrcEnd(); } -static void fn_1_11B0(void) { +static void fn_1_11B0(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -219,7 +226,8 @@ static void fn_1_11B0(void) { HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25)); } -static s32 fn_1_12A0(s32 arg0) { +static s32 fn_1_12A0(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -285,7 +293,8 @@ static s32 fn_1_12A0(s32 arg0) { return 1; } -static void fn_1_15CC(s32 arg0) { +static void fn_1_15CC(s32 arg0) +{ s8 sp8[] = { 80, 50 }; s32 var_r28; s16 temp_r26; @@ -343,7 +352,8 @@ static void fn_1_15CC(s32 arg0) { BoardWinCreate(2, MAKE_MESSID(48, 41), 6); BoardWinWait(); BoardWinKill(); - } else { + } + else { for (var_r31 = 0; var_r31 < 3; var_r31++) { if (lbl_1_bss_30[var_r31] == 0) { lbl_1_bss_33 = var_r31; @@ -400,7 +410,8 @@ static void fn_1_15CC(s32 arg0) { } } -static void fn_1_1BE0(s32 arg0, s32 arg1) { +static void fn_1_1BE0(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; s16 temp_r30; @@ -420,7 +431,8 @@ static void fn_1_1BE0(s32 arg0, s32 arg1) { fn_1_2048(-1, 4); } -static void fn_1_1CB0(s32 arg0) { +static void fn_1_1CB0(s32 arg0) +{ while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) { HuPrcVSleep(); } @@ -430,7 +442,8 @@ static void fn_1_1CB0(s32 arg0) { } } -static void fn_1_1D5C(s32 arg0) { +static void fn_1_1D5C(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -442,7 +455,8 @@ static void fn_1_1D5C(s32 arg0) { } } -static void fn_1_1E30(s32 arg0) { +static void fn_1_1E30(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -454,7 +468,8 @@ static void fn_1_1E30(s32 arg0) { } } -static void fn_1_1F08(s32 arg0) { +static void fn_1_1F08(s32 arg0) +{ s32 i; s32 j; @@ -477,7 +492,8 @@ static void fn_1_1F08(s32 arg0) { } } -static void fn_1_2048(s32 arg0, s32 arg1) { +static void fn_1_2048(s32 arg0, s32 arg1) +{ Data1B4Work *temp_r30; s32 i; @@ -490,7 +506,8 @@ static void fn_1_2048(s32 arg0, s32 arg1) { } } -static void fn_1_20CC(s32 arg0) { +static void fn_1_20CC(s32 arg0) +{ Data1B4Work *temp_r30; s32 i; @@ -504,7 +521,8 @@ static void fn_1_20CC(s32 arg0) { } } -static s32 fn_1_2174(s32 arg0) { +static s32 fn_1_2174(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -514,7 +532,8 @@ static s32 fn_1_2174(s32 arg0) { return temp_r31->unk02; } -static s16 fn_1_21CC(s32 arg0) { +static s16 fn_1_21CC(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -524,7 +543,8 @@ static s16 fn_1_21CC(s32 arg0) { return temp_r31->unk06; } -static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { +static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) +{ Mtx sp18; Vec spC; omObjData *temp_r3; @@ -555,7 +575,7 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { temp_r3->rot.y = 0.0f; temp_r3->rot.z = 0.0f; if (arg2 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r31->unk06, &sp18); } BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z); @@ -563,7 +583,8 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { BoardModelLayerSet(temp_r31->unk06, 2); } -static void fn_1_243C(omObjData *arg0) { +static void fn_1_243C(omObjData *arg0) +{ Vec sp14; Vec sp8; Data1B4Work *temp_r31; @@ -592,7 +613,8 @@ static void fn_1_243C(omObjData *arg0) { sp8.y += 200.0f; arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 0.01f; - } else { + } + else { arg0->rot.z += 0.033333335f; if (arg0->rot.z > 1.0f) { arg0->rot.z = 1.0f; @@ -617,7 +639,8 @@ static void fn_1_243C(omObjData *arg0) { BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8); arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 1.0f; - } else { + } + else { arg0->rot.z -= 0.033333335f; if (arg0->rot.z < 0.001f) { arg0->rot.z = 0.001f; @@ -644,11 +667,13 @@ static void fn_1_243C(omObjData *arg0) { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->rot.x = (sp8.x - sp14.x) / 30.0f; arg0->rot.z = (sp8.z - sp14.z) / 30.0f; - } else if (temp_r31->unk08 < 30) { + } + else if (temp_r31->unk08 < 30) { sp14.x += arg0->rot.x; sp14.z += arg0->rot.z; BoardModelPosSetV(temp_r31->unk06, &sp14); - } else { + } + else { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->trans.x = sp8.x; arg0->trans.y = sp8.y; @@ -669,13 +694,10 @@ static void fn_1_243C(omObjData *arg0) { } } -static s8 lbl_1_data_1C5[14] = { - 1, 1, 3, 3, 2, - 2, 2, 1, 2, 3, - 0, 4, 5, 0 -}; +static s8 lbl_1_data_1C5[14] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; -static s32 fn_1_2A1C(s32 arg0) { +static s32 fn_1_2A1C(s32 arg0) +{ s32 var_r29; s32 var_r28; s32 var_r30; @@ -696,24 +718,30 @@ static s32 fn_1_2A1C(s32 arg0) { if (var_r29 > var_r28) { if (var_r29 > var_r30) { var_r31 = 0; - } else if (var_r30 > var_r28) { + } + else if (var_r30 > var_r28) { var_r31 = 2; - } else { + } + else { var_r31 = 1; } - } else { + } + else { if (var_r28 > var_r30) { var_r31 = 1; - } else if (var_r30 > var_r29) { + } + else if (var_r30 > var_r29) { var_r31 = 2; - } else { + } + else { var_r31 = 0; } } return var_r31; } -static void fn_1_2B60(s32 arg0) { +static void fn_1_2B60(s32 arg0) +{ omObjData *temp_r3; Bss24Work *temp_r31; @@ -728,7 +756,8 @@ static void fn_1_2B60(s32 arg0) { temp_r31->unk02 = 1; } -static void fn_1_2C18(void) { +static void fn_1_2C18(void) +{ Bss24Work *var_r27; if (lbl_1_bss_24) { @@ -737,7 +766,8 @@ static void fn_1_2C18(void) { } } -static void fn_1_2D90(s32 arg0) { +static void fn_1_2D90(s32 arg0) +{ Bss24Work *var_r31; if (lbl_1_bss_24) { @@ -746,7 +776,8 @@ static void fn_1_2D90(s32 arg0) { } } -static s32 fn_1_2DD0(void) { +static s32 fn_1_2DD0(void) +{ Bss24Work *var_r31; if (!lbl_1_bss_24) { @@ -756,7 +787,8 @@ static s32 fn_1_2DD0(void) { return var_r31->unk01; } -static u32 fn_1_2E18(Bss24Work *arg0) { +static u32 fn_1_2E18(Bss24Work *arg0) +{ s32 temp_r31; s32 var_r30; @@ -774,7 +806,8 @@ static u32 fn_1_2E18(Bss24Work *arg0) { return var_r30; } -static void fn_1_2EF4(omObjData *arg0) { +static void fn_1_2EF4(omObjData *arg0) +{ Vec sp14; Vec sp8; float var_f30; @@ -794,12 +827,14 @@ static void fn_1_2EF4(omObjData *arg0) { } if (lbl_1_bss_30[0] != 0) { var_r25 = 1; - } else { + } + else { var_r25 = 0; } if (lbl_1_bss_30[2] != 0) { var_r26 = 1; - } else { + } + else { var_r26 = 2; } switch (temp_r30->unk01) { @@ -820,13 +855,16 @@ static void fn_1_2EF4(omObjData *arg0) { if (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) { if (BoardRandMod(100) < 50) { var_r29 = 1; - } else { + } + else { var_r29 = 2; } - } else { + } + else { if (lbl_1_bss_30[0] == 0) { var_r29 = 2; - } else if (lbl_1_bss_30[1] == 0) { + } + else if (lbl_1_bss_30[1] == 0) { var_r29 = 1; } } @@ -884,7 +922,8 @@ static void fn_1_2EF4(omObjData *arg0) { } } -static void fn_1_3470(void) { +static void fn_1_3470(void) +{ omObjData *temp_r3; Bss28Work *temp_r31; @@ -901,7 +940,8 @@ static void fn_1_3470(void) { temp_r31->unk0A = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 23)); } -static void fn_1_3560(s32 arg0) { +static void fn_1_3560(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -910,13 +950,15 @@ static void fn_1_3560(s32 arg0) { temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); temp_r31->unk00_field1 = arg0; if (arg0 != 1) { - (void) 0; - } else { + (void)0; + } + else { temp_r31->unk06 = 20; } } -static s32 fn_1_35BC(void) { +static s32 fn_1_35BC(void) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -926,7 +968,8 @@ static s32 fn_1_35BC(void) { return temp_r31->unk00_field1; } -static void fn_1_3604(s32 arg0) { +static void fn_1_3604(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -949,7 +992,8 @@ static void fn_1_3604(s32 arg0) { } } -static void fn_1_3698(s8 arg0) { +static void fn_1_3698(s8 arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -976,7 +1020,8 @@ static void fn_1_3698(s8 arg0) { if (ABS(temp_f31) >= 300.0f) { var_f30 = 40.0f; temp_r31->unk06 *= 2; - } else { + } + else { var_f30 = 20.0f; } VECSubtract(&sp18, &sp24, &spC); @@ -986,7 +1031,8 @@ static void fn_1_3698(s8 arg0) { BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); } -static void fn_1_3974(omObjData *arg0) { +static void fn_1_3974(omObjData *arg0) +{ Vec sp30; Vec sp24; s32 sp8; @@ -1012,7 +1058,8 @@ static void fn_1_3974(omObjData *arg0) { fn_1_3560(4); return; } - } else { + } + else { temp_r31->unk03++; } fn_1_3560(1); @@ -1062,7 +1109,8 @@ static void fn_1_3974(omObjData *arg0) { } } -static void fn_1_4070(void) { +static void fn_1_4070(void) +{ Bss2CWork *temp_r31; lbl_1_bss_1C = 0; @@ -1074,7 +1122,8 @@ static void fn_1_4070(void) { temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64); } -static void fn_1_4124(void) { +static void fn_1_4124(void) +{ Bss2CWork *temp_r31; if (!lbl_1_bss_2C) { @@ -1086,7 +1135,8 @@ static void fn_1_4124(void) { temp_r31->unk00_field0 = 1; } -static void fn_1_4194(omObjData *arg0) { +static void fn_1_4194(omObjData *arg0) +{ Bss2CWork *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork); @@ -1107,7 +1157,8 @@ static void fn_1_4194(omObjData *arg0) { } if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } else { + } + else { MGSeqParamSet(temp_r31->unk04, 2, -1); temp_r31->unk04 = -1; lbl_1_bss_1C = 1; @@ -1117,7 +1168,8 @@ static void fn_1_4194(omObjData *arg0) { temp_r31->unk02 = 60; } -static void fn_1_42AC(s16 arg0) { +static void fn_1_42AC(s16 arg0) +{ ParticleData *var_r31; lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); @@ -1132,7 +1184,8 @@ static void fn_1_42AC(s16 arg0) { var_r31->unk_02 = arg0; } -static void fn_1_43DC(void) { +static void fn_1_43DC(void) +{ if (lbl_1_data_1B0 != -1) { Hu3DModelKill(lbl_1_data_1B0); lbl_1_data_1B0 = -1; @@ -1143,7 +1196,8 @@ static void fn_1_43DC(void) { } } -static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; Vec sp8; float var_f31; diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index fe081d17..74f9608a 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -1,8 +1,11 @@ -#include "game/sprite.h" #include "game/minigame_seq.h" +#include "game/sprite.h" #include "REL/ztardll.h" +#define FONT_CHAR_MAX 100 + +#if VERSION_ENG s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05), @@ -54,115 +57,210 @@ s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; +#elif VERSION_PAL +s32 lbl_1_data_B0[0x130] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0x00140025, 0x00140026, 0x00140027, 0x00140028, 0x00140029, 0x0014002A, 0x0014002B, 0x0014002C, 0x0014002D, 0x0014002E, + 0x00140025, 0x00140025, 0x00140025, 0x0014002F, 0x00140025, 0x00140025, 0x00140025, 0x00140035, 0x00140036, 0x00140037, 0x00140038, 0x00140039, + 0x0014003A, 0x0014003B, 0x0014003C, 0x0014003D, 0x0014003E, 0x0014003F, 0x00140040, 0x00140041, 0x00140042, 0x00140043, 0x00140044, 0x00140045, + 0x00140046, 0x00140047, 0x00140048, 0x00140049, 0x0014004A, 0x0014004B, 0x0014004C, 0x0014004D, 0x0014004E, 0x00140043, 0x00140032, 0x00140043, + 0x00140043, 0x00140043, 0x00140043, 0x0014004F, 0x00140050, 0x00140051, 0x00140052, 0x00140053, 0x00140054, 0x00140055, 0x00140056, 0x00140057, + 0x00140058, 0x00140059, 0x0014005A, 0x0014005B, 0x0014005C, 0x0014005D, 0x0014005E, 0x0014005F, 0x00140060, 0x00140061, 0x00140062, 0x00140063, + 0x00140064, 0x00140065, 0x00140066, 0x00140067, 0x00140068, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x0014002F, 0x00140033, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140069, 0x0014006A, 0x0014006B, 0x0014006C, 0x0014006D, 0x0014006E, 0x0014006F, 0x00140070, 0x00140071, + 0x00140072, 0x00140073, 0x00140074, 0x00140075, 0x00140076, 0x00140077, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140030, 0x00140031, 0x00140025, 0x00140025, 0x0014008F, 0x0014008E, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140078, 0x00140079, 0x0014007A, 0x0014007B, 0x0014007C, + 0x0014007D, 0x0014007E, 0x0014007F, 0x00140080, 0x00140081, 0x00140082, 0x00140083, 0x00140084, 0x00140085, 0x00140086, 0x00140087, 0x00140088, + 0x00140089, 0x0014008A, 0x0014008B, 0x0014008C, 0x0014008D, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025 }; +#else +s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0x00150000, 0x00150001, 0x00150002, 0x00150003, 0x00150004, 0x00150005, 0x00150006, 0x00150007, 0x00150008, 0x00150009, + 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x00130014, 0x00130015, 0x00130016, 0x00130017, 0x00130018, + 0x00130019, 0x001500AE, 0x0013001B, 0x0013001C, 0x0013001D, 0x0013001E, 0x0013001F, 0x00130020, 0x00130021, 0x001500AF, 0x00130023, 0x00130024, + 0x00130025, 0x00130026, 0x00130027, 0x00130028, 0x00130029, 0x0013002A, 0x0013002B, 0x0013002C, 0x0013002D, 0x00130022, 0x00130022, 0x00130022, + 0x00130022, 0x00130022, 0x00130022, 0x0013002E, 0x0013002F, 0x00130030, 0x00130031, 0x00130032, 0x00130033, 0x00130034, 0x00130035, 0x00130036, + 0x00130037, 0x00130038, 0x00130039, 0x0013003A, 0x0013003B, 0x0013003C, 0x0013003D, 0x0013003E, 0x0013003F, 0x00130040, 0x00130041, 0x00130042, + 0x00130043, 0x00130044, 0x00130045, 0x00130046, 0x00130047, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, + 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0015008A, 0x0015008C, 0x0015008D, 0x0015008E, 0x0015008F, 0x00150090, 0x00150091, 0x00150092, + 0x00150093, 0x00150094, 0x0013000A, 0x0015005E, 0x0015005F, 0x00150060, 0x00150061, 0x00150062, 0x00150063, 0x00150064, 0x00150065, 0x00150066, + 0x00150067, 0x00150068, 0x00150069, 0x0015006A, 0x0015006B, 0x0015006C, 0x0015006D, 0x0015006E, 0x0015006F, 0x00150070, 0x00150071, 0x00150072, + 0x00150073, 0x00150074, 0x00150075, 0x00150076, 0x00150077, 0x00150078, 0x00150079, 0x0015007A, 0x0015007B, 0x0015007C, 0x0015007D, 0x0015007E, + 0x0015007F, 0x00150080, 0x00150081, 0x00150082, 0x00150083, 0x00150084, 0x00150085, 0x00150086, 0x00150087, 0x00150088, 0x00150089, 0x0015008B, + 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000B, 0x0015000C, 0x0013000A, 0x0013000A, 0x0015003A, 0x0015003C, 0x0015003D, 0x0015003E, + 0x0015003F, 0x00150040, 0x00150041, 0x00150042, 0x00150043, 0x00150044, 0x0013000A, 0x0015000E, 0x0015000F, 0x00150010, 0x00150011, 0x00150012, + 0x00150013, 0x00150014, 0x00150015, 0x00150016, 0x00150017, 0x00150018, 0x00150019, 0x0015001A, 0x0015001B, 0x0015001C, 0x0015001D, 0x0015001E, + 0x0015001F, 0x00150020, 0x00150021, 0x00150022, 0x00150023, 0x00150024, 0x00150025, 0x00150026, 0x00150027, 0x00150028, 0x00150029, 0x0015002A, + 0x0015002B, 0x0015002C, 0x0015002D, 0x0015002E, 0x0015002F, 0x00150030, 0x00150031, 0x00150032, 0x00150033, 0x00150034, 0x00150035, 0x00150036, + 0x00150037, 0x00150038, 0x00150039, 0x0015003B, 0x0013000A, 0x0013000A, 0x00150095, 0x00150096, 0x00150097, 0x00150098, 0x00150099, 0x0015009A, + 0x0015009B, 0x0015009C, 0x0015009D, 0x0015009E, 0x0015009F, 0x001500A0, 0x001500A1, 0x001500A2, 0x001500A3, 0x001500A4, 0x001500A5, 0x001500A6, + 0x001500A7, 0x001500A8, 0x001500A9, 0x001500AA, 0x001500AB, 0x001500AC, 0x001500AD, 0x00150045, 0x00150046, 0x00150047, 0x00150048, 0x00150049, + 0x0015004A, 0x0015004B, 0x0015004C, 0x0015004D, 0x0015004E, 0x0015004F, 0x00150050, 0x00150051, 0x00150052, 0x00150053, 0x00150054, 0x00150055, + 0x00150056, 0x00150057, 0x00150058, 0x00150059, 0x0015005A, 0x0015005B, 0x0015005C, 0x0015005D }; +#endif s32 fn_1_7754(SeqWork *work, char *mess) { - char *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s16 var_r25; - s32 var_r24; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char* str; + s16 len; + s16* posY; + s16 charNum; + s32* fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; + s32 var_r19_2; - var_r27 = lbl_1_data_B0; - for (var_r25 = 0; var_r25 < 0x10; var_r25++) { - if (work->spr_grp[var_r25] == -1) { + fileTbl = lbl_1_data_B0; + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (work->spr_grp[grpNo] == -1) { break; } } - if (var_r25 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); + + for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += VERSION_JP ? 0x1C : 0xE; } - else if (var_r31[0] < 0x30) { +#if VERSION_PAL + else if (*str >= 0x30) { + var_r19_2 = fileTbl[*str]; + animP[charNum] = HuSprAnimReadFile(var_r19_2); + posX[charNum] = len; + if ((*str >= 0x61) && (*str <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; + } + else if ((*str == 0xC2) || (*str == 0xC3) || (*str == 0xC7)) { + posY[charNum] = 0; + len += 0x12; + } + else if (*str == 0xC6) { + posY[charNum] = 0; + len += 0x18; + } + else if (*str == 0x5C) { + posY[charNum] = 0; + len += 8; + } + else if ((*str >= 0x90) && (*str <= 0x9F)) { + posY[charNum] = -2; + len += 0x18; + } + else if ((*str >= 0xD0) && (*str <= 0xEF)) { + posY[charNum] = -2; + len += 0x12; + } + else if ((*str == 0x3D) || (*str == 0x84)) { + posY[charNum] = 0; + len += 0x14; + } + else { + posY[charNum] = 0; + len += 0x1C; + } + charNum++; } - else if (var_r31[0] == 0x80) { +#else + else if (str[0] < 0x30) { } - else if (var_r31[0] == 0x81) { + else if (str[0] == 0x80) { + } + else if (str[0] == 0x81) { } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r24 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r24); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; +#if !VERSION_JP + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } +#endif else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } +#endif } - var_r20 = HuSprGrpCreate(var_r28); - work->spr_grp[var_r25] = var_r20; - work->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + work->spr_grp[grpNo] = gid; + work->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - work->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r25; + work->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return grpNo; } diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 0c0b8ce0..0d20bade 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -13,6 +13,8 @@ #include "REL/ztardll.h" +extern s32 charVoiceGroupStat[8]; + void fn_1_1774(void); void fn_1_1CF0(void); void fn_1_1DA0(void); @@ -763,7 +765,7 @@ void fn_1_33B0(void) var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1); } HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30); - HuSprPosSet(lbl_1_bss_50, 1, 342.0f, 80.0f); + HuSprPosSet(lbl_1_bss_50, 1, VERSION_JP ? 234.0f : 342.0f, 80.0f); HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f); HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); @@ -1096,17 +1098,41 @@ void fn_1_4948(void) void fn_1_51BC(s16 arg0) { - omOvlHisData *var_r31; + s16 var_r31; + omOvlHisData *var_r30; + u32 var_r29; WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); HuAudSeqAllFadeOut(0x3E8); - while (WipeStatGet() != 0) { HuPrcVSleep(); } - var_r31 = omOvlHisGet(0); - omOvlHisChg(0, OVL_ZTAR, arg0, var_r31->stat); +#if !VERSION_ENG + if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) { + msmMusStopAll(1, 0); + msmSeStopAll(1, 0); + var_r29 = OSGetTick(); + while (TRUE) { + if ((msmMusGetNumPlay(1) != 0) || (msmSeGetNumPlay(1) != 0)) { + if (((OSGetTick() - var_r29) / (*((u32 *)0x800000F8) / 4 / 1000)) >= 0x1F4) { + break; + } + } + else { + break; + } + } + msmSysDelGroupBase(0); +#if VERSION_PAL + for (var_r31 = 0; var_r31 < 8; var_r31++) { + charVoiceGroupStat[var_r31] = 0; + } +#endif + } +#endif + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_ZTAR, arg0, var_r30->stat); omOvlCallEx(OVL_M433, 1, 0, 0); while (TRUE) { HuPrcVSleep(); @@ -1239,6 +1265,9 @@ s32 fn_1_524C(s32 arg0) var_r22 = &winData[var_r24]; HuWinPriSet(var_r24, 5); HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); +#if VERSION_PAL + HuWinScaleSet(var_r24, 0.95f, 1.0f); +#endif HuWinAttrSet(var_r24, 0x800); var_r30 = 0; var_r23 = 0; @@ -1400,6 +1429,11 @@ void fn_1_66F8(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { GWPlayerCfg[var_r31].character = -1; } +#if VERSION_PAL + for (var_r31 = 0; var_r31 < 8; var_r31++) { + charVoiceGroupStat[var_r31] = 0; + } +#endif mgPracticeEnableF = 0; omOvlReturnEx(1, 1); HuPrcEnd(); @@ -1481,10 +1515,10 @@ void fn_1_7414(ModelData *model, Mtx matrix) GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&spC, GX_TEXMAP0); - PSMTXInverse(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, matrix, sp8C); - PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); - PSMTXConcat(sp2C, sp8C, sp8C); + MTXInverse(Hu3DCameraMtx, sp5C); + MTXConcat(sp5C, matrix, sp8C); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); + MTXConcat(sp2C, sp8C, sp8C); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index b092f9b5..0076979e 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -2511,7 +2511,7 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) var_r28 = 0; var_r26 = arg0->unk_54; if (HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54++; var_r28 = 1; if (arg0->unk_54 > 3) { @@ -2527,7 +2527,7 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) } } else if (HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54--; var_r28 = -1; if (arg0->unk_54 < 0) { @@ -3028,6 +3028,12 @@ void fn_1_114EC(u32 arg0, s32 arg1) s32 var_r29; s32 var_r28; +#if VERSION_JP + if (lbl_1_data_670 != -1) { + HuWinMesSet(lbl_1_data_670, arg0); + return; + } +#endif HuWinMesMaxSizeGet(1, spC, arg0); var_r29 = spC[0]; var_r31 = spC[1]; @@ -3038,6 +3044,9 @@ void fn_1_114EC(u32 arg0, s32 arg1) else { var_r30 = 0x181 - var_r31; } +#if VERSION_JP + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); +#else if (lbl_1_data_670 != -1) { fn_1_1190C(); lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); @@ -3045,6 +3054,7 @@ void fn_1_114EC(u32 arg0, s32 arg1) else { lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); } +#endif HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); HuWinDispOn(lbl_1_data_670); HuWinMesSet(lbl_1_data_670, arg0); @@ -3059,11 +3069,21 @@ void fn_1_11708(u32 arg0) s32 var_r29; s32 var_r28; +#if VERSION_JP + if (lbl_1_data_670 != -1) { + HuWinMesSet(lbl_1_data_670, arg0); + return; + } +#endif HuWinMesMaxSizeGet(1, sp8, arg0); var_r30 = sp8[0]; var_r31 = sp8[1]; var_r28 = (0x240 - var_r30) / 2.0f; var_r29 = 0x181 - var_r31; +#if VERSION_JP + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + (void)var_r29; +#else if (lbl_1_data_670 != -1) { fn_1_1190C(); lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); @@ -3071,6 +3091,7 @@ void fn_1_11708(u32 arg0) else { lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); } +#endif HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); HuWinDispOn(lbl_1_data_670); HuWinMesSet(lbl_1_data_670, arg0); diff --git a/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c b/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c new file mode 100644 index 00000000..c36465e2 --- /dev/null +++ b/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c @@ -0,0 +1,30 @@ +#include "dolphin/os.h" + +inline static void InitDefaultHeap(void) { + void* arenaLo; + void* arenaHi; + + OSReport("GCN_Mem_Alloc.c : InitDefaultHeap. No Heap Available\n"); + OSReport("Metrowerks CW runtime library initializing default heap\n"); + + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + + arenaLo = OSRoundUpPtr(arenaLo, 0x20); + arenaHi = OSRoundDownPtr(arenaHi, 0x20); + + OSSetCurrentHeap(OSCreateHeap(arenaLo, arenaHi)); + OSSetArenaLo(arenaLo = arenaHi); +} + +/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ +void __sys_free(void* p) { + if (__OSCurrHeap == -1) { + InitDefaultHeap(); + } + + OSFreeToHeap(__OSCurrHeap, p); +} diff --git a/src/Runtime.PPCEABI.H/GCN_mem_alloc.c b/src/Runtime.PPCEABI.H/GCN_mem_alloc.c new file mode 100755 index 00000000..c36465e2 --- /dev/null +++ b/src/Runtime.PPCEABI.H/GCN_mem_alloc.c @@ -0,0 +1,30 @@ +#include "dolphin/os.h" + +inline static void InitDefaultHeap(void) { + void* arenaLo; + void* arenaHi; + + OSReport("GCN_Mem_Alloc.c : InitDefaultHeap. No Heap Available\n"); + OSReport("Metrowerks CW runtime library initializing default heap\n"); + + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + + arenaLo = OSRoundUpPtr(arenaLo, 0x20); + arenaHi = OSRoundDownPtr(arenaHi, 0x20); + + OSSetCurrentHeap(OSCreateHeap(arenaLo, arenaHi)); + OSSetArenaLo(arenaLo = arenaHi); +} + +/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ +void __sys_free(void* p) { + if (__OSCurrHeap == -1) { + InitDefaultHeap(); + } + + OSFreeToHeap(__OSCurrHeap, p); +} diff --git a/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp b/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp new file mode 100755 index 00000000..faa1385f --- /dev/null +++ b/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp @@ -0,0 +1,1052 @@ +#include "PowerPC_EABI_Support/Runtime/MWCPlusLib.h" +#include "PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h" +#include "PowerPC_EABI_Support/Runtime/NMWException.h" +#include "PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h" + +#define RETURN_ADDRESS 4 + +union MWE_GeckoVector64 { + f64 d; + f32 f[2]; +}; + +typedef union MWE_GeckoVector64 MWE_GeckoVector64; + +struct GeckoFPRContext { + f64 d; + MWE_GeckoVector64 v; +}; + +typedef struct GeckoFPRContext GeckoFPRContext; + +typedef struct ThrowContext { + GeckoFPRContext FPR[32]; + s32 GPR[32]; + s32 CR; + char* SP; + char* FP; + char* throwSP; + char* returnaddr; + char* throwtype; + void* location; + void* dtor; + CatchInfo* catchinfo; +} ThrowContext; + +typedef ThrowContext* ThrowContextPtr; + +typedef struct MWExceptionInfo { + ExceptionTableSmall* exception_record; + char* current_function; + char* action_pointer; + char* code_section; + char* data_section; + char* TOC; +} MWExceptionInfo; + +typedef struct FragmentInfo { + ExceptionTableIndex* exception_start; + ExceptionTableIndex* exception_end; + char* code_start; + char* code_end; + char* data_start; + char* data_end; + char* TOC; + int active; +} FragmentInfo; + +typedef struct ProcessInfo { + __eti_init_info* exception_info; + char* TOC; + int active; +} ProcessInfo; + +typedef struct ActionIterator { + MWExceptionInfo info; + char* current_SP; + char* current_FP; + s32 current_R31; +} ActionIterator; + +#define MAXFRAGMENTS 1 +static ProcessInfo fragmentinfo[MAXFRAGMENTS]; + +typedef void (*DeleteFunc)(void*); + +/** + * @note Address: 0x800C2374 + * @note Size: 0x34 + */ +int __register_fragment(struct __eti_init_info* info, char* TOC) +{ + + ProcessInfo* f = fragmentinfo; + int i; + + for (i = 0; i < MAXFRAGMENTS; i++, f++) { + if (f->active == 0) { + f->exception_info = info; + f->TOC = TOC; + f->active = 1; + return i; + } + } + + return -1; +} + +/** + * @note Address: 0x800C2340 + * @note Size: 0x34 + */ +void __unregister_fragment(int fragmentID) +{ + ProcessInfo* f; + + if (fragmentID >= 0 && fragmentID < MAXFRAGMENTS) { + f = &fragmentinfo[fragmentID]; + f->exception_info = 0; + f->TOC = 0; + f->active = 0; + } +} + +/** + * @note Address: N/A + * @note Size: 0x88 + */ +static inline int ExPPC_FindExceptionFragment(char* returnaddr, FragmentInfo* frag) +{ + ProcessInfo* f; + int i; + __eti_init_info* eti_info; + + for (i = 0, f = fragmentinfo; i < MAXFRAGMENTS; ++i, ++f) { + if (f->active) { + eti_info = f->exception_info; + while (1) { + if (eti_info->code_size == 0) + break; + if (returnaddr >= eti_info->code_start && returnaddr < (char*)eti_info->code_start + eti_info->code_size) { + frag->exception_start = (ExceptionTableIndex*)eti_info->eti_start; + frag->exception_end = (ExceptionTableIndex*)eti_info->eti_end; + frag->code_start = 0; + frag->code_end = 0; + frag->data_start = 0; + frag->data_end = 0; + frag->TOC = f->TOC; + frag->active = f->active; + return 1; + } + eti_info++; + } + } + } + + return 0; +} + +/** + * @note Address: N/A + * @note Size: 0x204 + */ +static void ExPPC_FindExceptionRecord(char* returnaddr, MWExceptionInfo* info) +{ + FragmentInfo* fragment; + FragmentInfo frag; + ExceptionTableIndex *exceptionindex, *p; + u32 returnoffset; + s32 i, m, n; + + info->exception_record = 0; + info->action_pointer = 0; + + if ((ExPPC_FindExceptionFragment(returnaddr, &frag)) == 0) + return; + fragment = &frag; + + info->code_section = fragment->code_start; + info->data_section = fragment->data_start; + info->TOC = fragment->TOC; + + returnoffset = returnaddr - fragment->code_start; + exceptionindex = fragment->exception_start; + for (i = 0, n = fragment->exception_end - fragment->exception_start;;) { + if (i > n) + return; + p = &exceptionindex[m = (i + n) / 2]; + + if (returnoffset < p->functionoffset) { + n = m - 1; + } else if (returnoffset > p->functionoffset + ETI_GetFunctionSize(p->eti_field)) { + i = m + 1; + } else + break; + } + info->current_function = fragment->code_start + p->functionoffset; + info->exception_record = ETI_GetDirectStore(p->eti_field) ? (ExceptionTableSmall*)(&p->exceptionoffset) + : (ExceptionTableSmall*)(fragment->data_start + p->exceptionoffset); + + returnoffset -= p->functionoffset; + + if (ET_IsLargeTable(info->exception_record->et_field)) { + ExceptionTableLarge* etl = (ExceptionTableLarge*)info->exception_record; + ExceptionRangeLarge* erl; + + for (erl = etl->ranges; erl->start != 0; erl++) { + u32 range_end = erl->start + (erl->size * 4); + + if (erl->start <= returnoffset && range_end >= returnoffset) { + info->action_pointer = (char*)etl + erl->action; + break; + } + } + } else { + ExceptionTableSmall* ets = (ExceptionTableSmall*)info->exception_record; + ExceptionRangeSmall* ers; + + for (ers = ets->ranges; ers->start != 0; ers++) { + if (ers->start <= returnoffset && ers->end >= returnoffset) { + info->action_pointer = (char*)ets + ers->action; + break; + } + } + } +} + +/** + * @note Address: N/A + * @note Size: 0x18 + */ +static inline s32 ExPPC_PopR31(char* SP, MWExceptionInfo* info) +{ + f64* FPR_save_area; + s32* GPR_save_area; + int saved_GPRs, saved_FPRs; + + saved_FPRs = ET_GetSavedFPRs(info->exception_record->et_field); + FPR_save_area = (f64*)(SP - saved_FPRs * 8); + saved_GPRs = ET_GetSavedGPRs(info->exception_record->et_field); + GPR_save_area = (s32*)FPR_save_area; + + return GPR_save_area[-1]; +} + +/** + * @note Address: N/A + * @note Size: 0x20 + */ +static inline exaction_type ExPPC_CurrentAction(const ActionIterator* iter) +{ + if (iter->info.action_pointer == 0) { + return EXACTION_ENDOFLIST; + } + + return ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; +} + +/** + * @note Address: N/A + * @note Size: 0x1C0 + */ +static exaction_type ExPPC_NextAction(ActionIterator* iter) +{ + exaction_type action; + + for (;;) { + if (iter->info.action_pointer == 0 || ((action = ((ex_destroylocal*)iter->info.action_pointer)->action) & EXACTION_ENDBIT) != 0) { + char *return_addr, *callers_SP; + + callers_SP = *(char**)iter->current_SP; + + if (ET_GetSavedGPRs(iter->info.exception_record->et_field)) { + iter->current_R31 = ExPPC_PopR31(callers_SP, &iter->info); + } + + return_addr = *(char**)(callers_SP + RETURN_ADDRESS); + + ExPPC_FindExceptionRecord(return_addr, &iter->info); + + if (iter->info.exception_record == 0) { + terminate(); + } + + iter->current_SP = callers_SP; + iter->current_FP = (ET_GetHasFramePtr(iter->info.exception_record->et_field)) ? (char*)iter->current_R31 : iter->current_SP; + + if (iter->info.action_pointer == 0) + continue; + } else { + switch (action) { + case EXACTION_DESTROYLOCAL: + iter->info.action_pointer += sizeof(ex_destroylocal); + break; + case EXACTION_DESTROYLOCALCOND: + iter->info.action_pointer += sizeof(ex_destroylocalcond); + break; + case EXACTION_DESTROYLOCALPOINTER: + iter->info.action_pointer += sizeof(ex_destroylocalpointer); + break; + case EXACTION_DESTROYLOCALARRAY: + iter->info.action_pointer += sizeof(ex_destroylocalarray); + break; + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + iter->info.action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBERCOND: + iter->info.action_pointer += sizeof(ex_destroymembercond); + break; + case EXACTION_DESTROYMEMBERARRAY: + iter->info.action_pointer += sizeof(ex_destroymemberarray); + break; + case EXACTION_DELETEPOINTER: + iter->info.action_pointer += sizeof(ex_deletepointer); + break; + case EXACTION_DELETEPOINTERCOND: + iter->info.action_pointer += sizeof(ex_deletepointercond); + break; + case EXACTION_CATCHBLOCK: + iter->info.action_pointer += sizeof(ex_catchblock); + break; + case EXACTION_CATCHBLOCK_32: + iter->info.action_pointer += sizeof(ex_catchblock_32); + break; + case EXACTION_ACTIVECATCHBLOCK: + iter->info.action_pointer += sizeof(ex_activecatchblock); + break; + case EXACTION_SPECIFICATION: + iter->info.action_pointer + += sizeof(ex_specification) + ((ex_specification*)iter->info.action_pointer)->specs * sizeof(void*); + break; + default: + terminate(); + } + } + + action = ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; + + if (action == EXACTION_BRANCH) { + iter->info.action_pointer = ((char*)iter->info.exception_record) + ((ex_branch*)iter->info.action_pointer)->target; + action = ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; + } + return action; + } +} + +/** + * @note Address: N/A + * @note Size: 0x248 + */ +static char* ExPPC_PopStackFrame(ThrowContext* context, MWExceptionInfo* info) +{ + char *SP, *callers_SP; + f64* FPR_save_area; + s32* GPR_save_area; + int saved_GPRs, saved_FPRs; + GeckoFPRContext* Vector_save_area; + int i, j; + + SP = context->SP; + callers_SP = *(char**)SP; + saved_FPRs = ET_GetSavedFPRs(info->exception_record->et_field); + + if (ET_HasElfVector(info->exception_record->et_field)) { + Vector_save_area = (GeckoFPRContext*)(callers_SP - saved_FPRs * 16); + FPR_save_area = (f64*)Vector_save_area; + } else { + FPR_save_area = (f64*)(callers_SP - saved_FPRs * 8); + } + + if (ET_HasElfVector(info->exception_record->et_field)) { + for (i = 32 - saved_FPRs, j = 0; i < 32; ++i, ++j) { + context->FPR[i].v.f[0] = Vector_save_area[j].v.f[0]; + context->FPR[i].v.f[1] = Vector_save_area[j].v.f[1]; + context->FPR[i].d = Vector_save_area[j].d; + } + } else { + for (i = 32 - saved_FPRs, j = 0; i < 32; ++i, ++j) { + context->FPR[i].d = FPR_save_area[j]; + } + } + + saved_GPRs = ET_GetSavedGPRs(info->exception_record->et_field); + GPR_save_area = (s32*)FPR_save_area; + GPR_save_area -= saved_GPRs; + + for (i = 32 - saved_GPRs, j = 0; i < 32; ++i, ++j) { + context->GPR[i] = GPR_save_area[j]; + } + + context->SP = callers_SP; + return *(char**)(callers_SP + RETURN_ADDRESS); +} + +/** + * @note Address: N/A + * @note Size: 0x3C + */ +static inline void ExPPC_DestroyLocal(ThrowContext* context, const ex_destroylocal* ex) { DTORCALL_COMPLETE(ex->dtor, context->FP + ex->local); } + +/** + * @note Address: N/A + * @note Size: 0x74 + */ +static inline void ExPPC_DestroyLocalCond(ThrowContext* context, const ex_destroylocalcond* ex) +{ + int cond = ex_destroylocalcond_GetRegCond(ex->dlc_field) ? (local_cond_type)context->GPR[ex->cond] + : *(local_cond_type*)(context->FP + ex->cond); + + if (cond) { + DTORCALL_COMPLETE(ex->dtor, context->FP + ex->local); + } +} + +/** + * @note Address: N/A + * @note Size: 0x58 + */ +static inline void ExPPC_DestroyLocalPointer(ThrowContext* context, const ex_destroylocalpointer* ex) +{ + void* pointer + = ex_destroylocalpointer_GetRegPointer(ex->dlp_field) ? (void*)context->GPR[ex->pointer] : *(void**)(context->FP + ex->pointer); + + DTORCALL_COMPLETE(ex->dtor, pointer); +} + +/** + * @note Address: N/A + * @note Size: 0x84 + */ +static inline void ExPPC_DestroyLocalArray(ThrowContext* context, const ex_destroylocalarray* ex) +{ + char* ptr = context->FP + ex->localarray; + s32 n = ex->elements; + s32 size = ex->element_size; + + for (ptr = ptr + size * n; n > 0; n--) { + ptr -= size; + DTORCALL_COMPLETE(ex->dtor, ptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x64 + */ +static inline void ExPPC_DestroyMember(ThrowContext* context, const ex_destroymember* ex) +{ + char* objectptr + = ex_destroymember_GetRegPointer(ex->dm_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + DTORCALL_COMPLETE(ex->dtor, objectptr + ex->offset); +} + +/** + * @note Address: N/A + * @note Size: 0x64 + */ +static inline void ExPPC_DestroyBase(ThrowContext* context, const ex_destroymember* ex) +{ + char* objectptr + = ex_destroymember_GetRegPointer(ex->dm_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + DTORCALL_PARTIAL(ex->dtor, objectptr + ex->offset); +} + +/** + * @note Address: N/A + * @note Size: 0x98 + */ +static inline void ExPPC_DestroyMemberCond(ThrowContext* context, const ex_destroymembercond* ex) +{ + char* objectptr + = ex_destroymembercond_GetRegPointer(ex->dmc_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + int cond = ex_destroymembercond_GetRegCond(ex->dmc_field) ? (vbase_ctor_arg_type)context->GPR[ex->cond] + : *(vbase_ctor_arg_type*)(context->FP + ex->cond); + + if (cond) { + DTORCALL_PARTIAL(ex->dtor, objectptr + ex->offset); + } +} + +/** + * @note Address: N/A + * @note Size: 0xAC + */ +static inline void ExPPC_DestroyMemberArray(ThrowContext* context, const ex_destroymemberarray* ex) +{ + char* ptr + = ex_destroymemberarray_GetRegPointer(ex->dma_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + s32 n = ex->elements; + s32 size = ex->element_size; + + ptr += ex->offset; + + for (ptr = ptr + size * n; n > 0; n--) { + ptr -= size; + DTORCALL_COMPLETE(ex->dtor, ptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x54 + */ +static inline void ExPPC_DeletePointer(ThrowContext* context, const ex_deletepointer* ex) +{ + char* objectptr + = ex_deletepointer_GetRegPointer(ex->dp_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + ((DeleteFunc)ex->deletefunc)(objectptr); +} + +/** + * @note Address: N/A + * @note Size: 0x8C + */ +static inline void ExPPC_DeletePointerCond(ThrowContext* context, const ex_deletepointercond* ex) +{ + char* objectptr + = ex_deletepointercond_GetRegPointer(ex->dpc_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + int cond = ex_deletepointercond_GetRegCond(ex->dpc_field) ? (local_cond_type)context->GPR[ex->cond] + : *(local_cond_type*)(context->FP + ex->cond); + + if (cond) { + ((DeleteFunc)ex->deletefunc)(objectptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x50C + */ +static void ExPPC_UnwindStack(ThrowContext* context, MWExceptionInfo* info, void* catcher) +{ + exaction_type action; + +#pragma exception_terminate + + for (;;) { + if (info->action_pointer == 0) { + char* return_addr; + + return_addr = ExPPC_PopStackFrame(context, info); + ExPPC_FindExceptionRecord(return_addr, info); + + if (info->exception_record == 0) { + terminate(); + } + + context->FP = (ET_GetHasFramePtr(info->exception_record->et_field)) ? (char*)context->GPR[31] : context->SP; + continue; + } + + action = ((ex_destroylocal*)info->action_pointer)->action; + + switch (action & EXACTION_MASK) { + case EXACTION_BRANCH: + info->action_pointer = ((char*)info->exception_record) + ((ex_branch*)info->action_pointer)->target; + break; + case EXACTION_DESTROYLOCAL: + ExPPC_DestroyLocal(context, (ex_destroylocal*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocal); + break; + case EXACTION_DESTROYLOCALCOND: + ExPPC_DestroyLocalCond(context, (ex_destroylocalcond*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalcond); + break; + case EXACTION_DESTROYLOCALPOINTER: + ExPPC_DestroyLocalPointer(context, (ex_destroylocalpointer*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalpointer); + break; + case EXACTION_DESTROYLOCALARRAY: + ExPPC_DestroyLocalArray(context, (ex_destroylocalarray*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalarray); + break; + case EXACTION_DESTROYBASE: + ExPPC_DestroyBase(context, (ex_destroymember*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBER: + ExPPC_DestroyMember(context, (ex_destroymember*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBERCOND: + ExPPC_DestroyMemberCond(context, (ex_destroymembercond*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymembercond); + break; + case EXACTION_DESTROYMEMBERARRAY: + ExPPC_DestroyMemberArray(context, (ex_destroymemberarray*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymemberarray); + break; + case EXACTION_DELETEPOINTER: + ExPPC_DeletePointer(context, (ex_deletepointer*)info->action_pointer); + info->action_pointer += sizeof(ex_deletepointer); + break; + case EXACTION_DELETEPOINTERCOND: + ExPPC_DeletePointerCond(context, (ex_deletepointercond*)info->action_pointer); + info->action_pointer += sizeof(ex_deletepointercond); + break; + case EXACTION_CATCHBLOCK: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_catchblock); + break; + case EXACTION_CATCHBLOCK_32: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_catchblock_32); + break; + case EXACTION_ACTIVECATCHBLOCK: { + CatchInfo* catchinfo; + + catchinfo = (CatchInfo*)(context->FP + ((ex_activecatchblock*)info->action_pointer)->cinfo_ref); + + if (catchinfo->dtor) { + if (context->location == catchinfo->location) { + context->dtor = catchinfo->dtor; + } else { + DTORCALL_COMPLETE(catchinfo->dtor, catchinfo->location); + } + } + info->action_pointer += sizeof(ex_activecatchblock); + } break; + case EXACTION_SPECIFICATION: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_specification) + ((ex_specification*)info->action_pointer)->specs * sizeof(void*); + break; + default: + terminate(); + } + + if (action & EXACTION_ENDBIT) + info->action_pointer = 0; + } +} + +/** + * @note Address: N/A + * @note Size: 0x88 + */ +static inline int ExPPC_IsInSpecification(char* extype, ex_specification* spec) +{ + s32 i, offset; + + for (i = 0; i < spec->specs; i++) { + if (__throw_catch_compare(extype, spec->spec[i], &offset)) + return 1; + } + + return 0; +} + +/** + * @note Address: N/A + * @note Size: 0x1B4 + */ +extern void __unexpected(CatchInfo* catchinfo) +{ + ex_specification* unexp = (ex_specification*)catchinfo->stacktop; + +#pragma exception_magic // allow access to __exception_magic in try/catch blocks + + try { + unexpected(); + } catch (...) { + if (ExPPC_IsInSpecification((char*)((CatchInfo*)&__exception_magic)->typeinfo, unexp)) { + throw; + } + if (ExPPC_IsInSpecification("!bad_exception!!", unexp)) { + throw bad_exception(); + } + if (ExPPC_IsInSpecification("!std::bad_exception!!", unexp)) { + throw bad_exception(); + } + } + terminate(); +} + +/** + * @note Address: N/A + * @note Size: 0x104 + */ +asm static void ExPPC_LongJump(register ThrowContext* context, register void* newRTOC, register void* newPC) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + mr r8, newPC + mr RTOC, newRTOC + lwz r0, context->CR + mtcrf 255, r0 + + lmw r13, context->GPR[13] + + la r7, context->FPR[14].v + psq_lx fp14, 0, r7, 0, 0 + lfd fp14, context->FPR[14].d + + la r7, context->FPR[15].v + psq_lx fp15, 0, r7, 0, 0 + lfd fp15, context->FPR[15].d + + la r7, context->FPR[16].v + psq_lx fp16, 0, r7, 0, 0 + lfd fp16, context->FPR[16].d + + la r7, context->FPR[17].v + psq_lx fp17, 0, r7, 0, 0 + lfd fp17, context->FPR[17].d + + la r7, context->FPR[18].v + psq_lx fp18, 0, r7, 0, 0 + lfd fp18, context->FPR[18].d + + la r7, context->FPR[19].v + psq_lx fp19, 0, r7, 0, 0 + lfd fp19, context->FPR[19].d + + la r7, context->FPR[20].v + psq_lx fp20, 0, r7, 0, 0 + lfd fp20, context->FPR[20].d + + la r7, context->FPR[21].v + psq_lx fp21, 0, r7, 0, 0 + lfd fp21, context->FPR[21].d + + la r7, context->FPR[22].v + psq_lx fp22, 0, r7, 0, 0 + lfd fp22, context->FPR[22].d + + la r7, context->FPR[23].v + psq_lx fp23, 0, r7, 0, 0 + lfd fp23, context->FPR[23].d + + la r7, context->FPR[24].v + psq_lx fp24, 0, r7, 0, 0 + lfd fp24, context->FPR[24].d + + la r7, context->FPR[25].v + psq_lx fp25, 0, r7, 0, 0 + lfd fp25, context->FPR[25].d + + la r7, context->FPR[26].v + psq_lx fp26, 0, r7, 0, 0 + lfd fp26, context->FPR[26].d + + la r7, context->FPR[27].v + psq_lx fp27, 0, r7, 0, 0 + lfd fp27, context->FPR[27].d + + la r7, context->FPR[28].v + psq_lx fp28, 0, r7, 0, 0 + lfd fp28, context->FPR[28].d + + la r7, context->FPR[29].v + psq_lx fp29, 0, r7, 0, 0 + lfd fp29, context->FPR[29].d + + la r7, context->FPR[30].v + psq_lx fp30, 0, r7, 0, 0 + lfd fp30, context->FPR[30].d + + la r7, context->FPR[31].v + psq_lx fp31, 0, r7, 0, 0 + lfd fp31, context->FPR[31].d + + mtlr r8 + + lwz SP, context->throwSP + lwz r3, context->SP + lwz r3, 0(r3) + stw r3, 0(SP) + blr +#endif // clang-format on +} + +/** + * @note Address: N/A + * @note Size: 0x84 + */ +static inline void ExPPC_HandleUnexpected(ThrowContext* context, MWExceptionInfo* info, ex_specification* unexp) +{ + CatchInfo* catchinfo; + +#pragma exception_terminate + + ExPPC_UnwindStack(context, info, unexp); + + catchinfo = (CatchInfo*)(context->FP + unexp->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + catchinfo->stacktop = unexp; + + ExPPC_LongJump(context, info->TOC, info->current_function + unexp->pcoffset); +} + +/** + * @note Address: N/A + * @note Size: 0x410 + */ +static void ExPPC_ThrowHandler(ThrowContext* context) +{ + ActionIterator iter; + MWExceptionInfo info; + exaction_type action; + CatchInfo* catchinfo; + s32 offset; + + ExPPC_FindExceptionRecord(context->returnaddr, &info); + + if (info.exception_record == 0) { + terminate(); + } + + context->FP = (ET_GetHasFramePtr(info.exception_record->et_field)) ? (char*)context->GPR[31] : context->SP; + + if (context->throwtype == 0) { + iter.info = info; + iter.current_SP = context->SP; + iter.current_FP = context->FP; + iter.current_R31 = context->GPR[31]; + + for (action = ExPPC_CurrentAction(&iter);; action = ExPPC_NextAction(&iter)) { + switch (action) { + case EXACTION_ACTIVECATCHBLOCK: + break; + case EXACTION_ENDOFLIST: + case EXACTION_DESTROYLOCAL: + case EXACTION_DESTROYLOCALCOND: + case EXACTION_DESTROYLOCALPOINTER: + case EXACTION_DESTROYLOCALARRAY: + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + case EXACTION_DESTROYMEMBERCOND: + case EXACTION_DESTROYMEMBERARRAY: + case EXACTION_DELETEPOINTER: + case EXACTION_DELETEPOINTERCOND: + case EXACTION_CATCHBLOCK: + case EXACTION_CATCHBLOCK_32: + case EXACTION_SPECIFICATION: + continue; + case EXACTION_TERMINATE: + default: + terminate(); + } + break; + } + + catchinfo = (CatchInfo*)(iter.current_FP + ((ex_activecatchblock*)iter.info.action_pointer)->cinfo_ref); + context->throwtype = (char*)catchinfo->typeinfo; + context->location = catchinfo->location; + context->dtor = 0; + context->catchinfo = catchinfo; + } else { + context->catchinfo = 0L; + } + + iter.info = info; + iter.current_SP = context->SP; + iter.current_FP = context->FP; + iter.current_R31 = context->GPR[31]; + + for (action = ExPPC_CurrentAction(&iter);; action = ExPPC_NextAction(&iter)) { + switch (action) { + case EXACTION_CATCHBLOCK_32: + if (__throw_catch_compare(context->throwtype, ((ex_catchblock_32*)iter.info.action_pointer)->catch_type, &offset)) { + break; + } + continue; + case EXACTION_CATCHBLOCK: + if (__throw_catch_compare(context->throwtype, ((ex_catchblock*)iter.info.action_pointer)->catch_type, &offset)) { + break; + } + continue; + case EXACTION_SPECIFICATION: + if (!ExPPC_IsInSpecification(context->throwtype, (ex_specification*)iter.info.action_pointer)) { + ExPPC_HandleUnexpected(context, &info, (ex_specification*)iter.info.action_pointer); + } + continue; + case EXACTION_ENDOFLIST: + case EXACTION_DESTROYLOCAL: + case EXACTION_DESTROYLOCALCOND: + case EXACTION_DESTROYLOCALPOINTER: + case EXACTION_DESTROYLOCALARRAY: + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + case EXACTION_DESTROYMEMBERCOND: + case EXACTION_DESTROYMEMBERARRAY: + case EXACTION_DELETEPOINTER: + case EXACTION_DELETEPOINTERCOND: + case EXACTION_ACTIVECATCHBLOCK: + continue; + case EXACTION_TERMINATE: + default: + terminate(); + } + break; + } + + if (action == EXACTION_CATCHBLOCK_32) { + ex_catchblock_32* catchblock_32; + catchblock_32 = (ex_catchblock_32*)iter.info.action_pointer; + + ExPPC_UnwindStack(context, &info, catchblock_32); + + catchinfo = (CatchInfo*)(context->FP + catchblock_32->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + + if (*context->throwtype == '*') { + catchinfo->sublocation = &catchinfo->pointercopy; + catchinfo->pointercopy = *(s32*)context->location + offset; + } else { + catchinfo->sublocation = (char*)context->location + offset; + } + + ExPPC_LongJump(context, info.TOC, info.current_function + catchblock_32->catch_pcoffset); + } else { + ex_catchblock* catchblock; + + catchblock = (ex_catchblock*)iter.info.action_pointer; + ExPPC_UnwindStack(context, &info, catchblock); + + catchinfo = (CatchInfo*)(context->FP + catchblock->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + + if (*context->throwtype == '*') { + catchinfo->sublocation = &catchinfo->pointercopy; + catchinfo->pointercopy = *(s32*)context->location + offset; + } else { + catchinfo->sublocation = (char*)context->location + offset; + } + + ExPPC_LongJump(context, info.TOC, info.current_function + catchblock->catch_pcoffset); + } +} + +/** + * @note Address: N/A + * @note Size: 0x44 + */ +void __end__catch(CatchInfo* catchinfo) +{ + if (catchinfo->location && catchinfo->dtor) { + DTORCALL_COMPLETE(catchinfo->dtor, catchinfo->location); + } +} + +/** + * @note Address: N/A + * @note Size: 0x144 + */ +asm void __throw(char* throwtype, void* location, void* dtor) +{ +#ifdef __MWERKS__ // clang-format off + ThrowContext throwcontext; + + fralloc + + stmw r13, throwcontext.GPR[13] + + stfd fp14, throwcontext.FPR[14].d + la r3, throwcontext.FPR[14].v + psq_stx fp14, 0, r3,0,0 + + stfd fp15, throwcontext.FPR[15].d + la r3, throwcontext.FPR[15].v + psq_stx fp15, 0, r3, 0, 0 + + stfd fp16, throwcontext.FPR[16].d + la r3, throwcontext.FPR[16].v + psq_stx fp16, 0, r3, 0, 0 + + stfd fp17, throwcontext.FPR[17].d + la r3, throwcontext.FPR[17].v + psq_stx fp17, 0, r3, 0, 0 + + stfd fp18, throwcontext.FPR[18].d + la r3, throwcontext.FPR[18].v + psq_stx fp18, 0, r3, 0, 0 + + stfd fp19, throwcontext.FPR[19].d + la r3, throwcontext.FPR[19].v + psq_stx fp19, 0, r3, 0, 0 + + stfd fp20, throwcontext.FPR[20].d + la r3, throwcontext.FPR[20].v + psq_stx fp20, 0, r3, 0, 0 + + stfd fp21, throwcontext.FPR[21].d + la r3, throwcontext.FPR[21].v + psq_stx fp21, 0, r3, 0, 0 + + stfd fp22, throwcontext.FPR[22].d + la r3, throwcontext.FPR[22].v + psq_stx fp22, 0, r3, 0, 0 + + stfd fp23, throwcontext.FPR[23].d + la r3, throwcontext.FPR[23].v + psq_stx fp23, 0, r3, 0, 0 + + stfd fp24, throwcontext.FPR[24].d + la r3, throwcontext.FPR[24].v + psq_stx fp24, 0, r3, 0, 0 + + stfd fp25, throwcontext.FPR[25].d + la r3, throwcontext.FPR[25].v + psq_stx fp25, 0, r3, 0, 0 + + stfd fp26, throwcontext.FPR[26].d + la r3, throwcontext.FPR[26].v + psq_stx fp26, 0, r3, 0, 0 + + stfd fp27, throwcontext.FPR[27].d + la r3, throwcontext.FPR[27].v + psq_stx fp27, 0, r3, 0, 0 + + stfd fp28, throwcontext.FPR[28].d + la r3, throwcontext.FPR[28].v + psq_stx fp28, 0, r3, 0, 0 + + stfd fp29, throwcontext.FPR[29].d + la r3, throwcontext.FPR[29].v + psq_stx fp29, 0, r3, 0, 0 + + stfd fp30, throwcontext.FPR[30].d + la r3, throwcontext.FPR[30].v + psq_stx fp30, 0, r3, 0, 0 + + stfd fp31, throwcontext.FPR[31].d + la r3, throwcontext.FPR[31].v + psq_stx fp31, 0, r3, 0, 0 + + + mfcr r3 + stw r3, throwcontext.CR; + + lwz r3, 0(sp) + lwz r4, RETURN_ADDRESS(r3) + stw r3, throwcontext.SP; + stw r3, throwcontext.throwSP; + stw r4, throwcontext.returnaddr; + + lwz r3,throwtype + stw r3, throwcontext.throwtype + lwz r3,location + stw r3, throwcontext.location + lwz r3,dtor + stw r3, throwcontext.dtor + la r3, throwcontext + bl ExPPC_ThrowHandler + nop + frfree + blr +#endif // clang-format on +} diff --git a/src/Runtime.PPCEABI.H/NMWException.cpp b/src/Runtime.PPCEABI.H/NMWException.cpp new file mode 100755 index 00000000..b5f722de --- /dev/null +++ b/src/Runtime.PPCEABI.H/NMWException.cpp @@ -0,0 +1,157 @@ +#include "PowerPC_EABI_Support/Runtime/NMWException.h" +#include "PowerPC_EABI_Support/Runtime/MWCPlusLib.h" + +#define ARRAY_HEADER_SIZE 16 + +extern "C" { +extern void abort(); +} + +namespace std { +/** + * @note Address: N/A + * @note Size: 0x20 + */ +static void dthandler() { abort(); } + +static terminate_handler thandler = dthandler; + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +static void duhandler() { terminate(); } + +static unexpected_handler uhandler = duhandler; + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +extern void terminate() { thandler(); } + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +extern void unexpected() { uhandler(); } +} // namespace std + +/** + * @note Address: N/A + * @note Size: 0x22C + */ +extern char __throw_catch_compare(const char* throwtype, const char* catchtype, s32* offset_result) +{ + const char *cptr1, *cptr2; + + *offset_result = 0; + + if ((cptr2 = catchtype) == 0) { + return true; + } + + cptr1 = throwtype; + + if (*cptr2 == 'P') { + cptr2++; + if (*cptr2 == 'C') + cptr2++; + if (*cptr2 == 'V') + cptr2++; + if (*cptr2 == 'v') { + if (*cptr1 == 'P' || *cptr1 == '*') { + return true; + } + } + cptr2 = catchtype; + } + + switch (*cptr1) { + case '*': + case '!': + if (*cptr1++ != *cptr2++) + return false; + for (;;) { + if (*cptr1 == *cptr2++) { + if (*cptr1++ == '!') { + s32 offset; + + for (offset = 0; *cptr1 != '!';) { + offset = offset * 10 + *cptr1++ - '0'; + } + *offset_result = offset; + return true; + } + } else { + while (*cptr1++ != '!') { } + while (*cptr1++ != '!') { } + if (*cptr1 == 0) + return false; + + cptr2 = catchtype + 1; + } + } + return false; + } + + while ((*cptr1 == 'P' || *cptr1 == 'R') && *cptr1 == *cptr2) { + cptr1++; + cptr2++; + + if (*cptr2 == 'C') { + if (*cptr1 == 'C') + cptr1++; + cptr2++; + } + if (*cptr1 == 'C') + return false; + + if (*cptr2 == 'V') { + if (*cptr1 == 'V') + cptr1++; + cptr2++; + } + if (*cptr1 == 'V') + return false; + } + + for (; *cptr1 == *cptr2; cptr1++, cptr2++) { + if (*cptr1 == 0) + return true; + } + + return false; +} + +class __partial_array_destructor { +private: + void* p; + size_t size; + size_t n; + ConstructorDestructor dtor; + +public: + size_t i; + + __partial_array_destructor(void* array, size_t elementsize, size_t nelements, ConstructorDestructor destructor) + { + p = array; + size = elementsize; + n = nelements; + dtor = destructor; + i = n; + } + + ~__partial_array_destructor() + { + char* ptr; + + if (i < n && dtor) { + for (ptr = (char*)p + size * i; i > 0; i--) { + ptr -= size; + DTORCALL_COMPLETE(dtor, ptr); + } + } + } +}; diff --git a/src/Runtime.PPCEABI.H/New.cp b/src/Runtime.PPCEABI.H/New.cp new file mode 100644 index 00000000..c92b6c29 --- /dev/null +++ b/src/Runtime.PPCEABI.H/New.cp @@ -0,0 +1,8 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h" +#include "PowerPC_EABI_Support/Runtime/New.h" + +void operator delete(void* arg0) throw() { + if (arg0 != 0) { + free(arg0); + } +} diff --git a/src/Runtime.PPCEABI.H/NewMore.cp b/src/Runtime.PPCEABI.H/NewMore.cp new file mode 100644 index 00000000..c2ed6fe8 --- /dev/null +++ b/src/Runtime.PPCEABI.H/NewMore.cp @@ -0,0 +1,15 @@ +#include "PowerPC_EABI_Support/Runtime/New.h" + +namespace std { + class exception { + public: + virtual ~exception(); + virtual const char *what() const; + }; +} + +const char *std::exception::what() const { + return "exception"; +}; + +std::exception::~exception() {}; diff --git a/src/Runtime.PPCEABI.H/__mem.c b/src/Runtime.PPCEABI.H/__mem.c new file mode 100644 index 00000000..08da3972 --- /dev/null +++ b/src/Runtime.PPCEABI.H/__mem.c @@ -0,0 +1,91 @@ +#include "dol2asm.h" +#include "stddef.h" +#include + + +/* 80003540-80003590 000440 0050+00 1/1 63/63 6/6 .init memcpy */ +SECTION_INIT void* memcpy(void* dst, const void* src, size_t n) { + const unsigned char* s; + unsigned char* d; + + if ((unsigned long)src >= (unsigned long)dst) { + s = (const unsigned char*)src - 1; + d = (unsigned char*)dst - 1; + n++; + while (--n != 0) + *++d = *++s; + } else { + s = (const unsigned char*)src + n; + d = (unsigned char*)dst + n; + n++; + while (--n != 0) + *--d = *--s; + } + return dst; +} + +/* 80003488-80003540 000388 00B8+00 1/1 0/0 0/0 .init __fill_mem */ +SECTION_INIT void __fill_mem(void* dst, int val, size_t n) { + unsigned long v = (unsigned char)val; + unsigned long i; + + ((unsigned char*)dst) = ((unsigned char*)dst) - 1; + + if (n >= 32) { + i = (~(unsigned long)dst) & 3; + + if (i) { + n -= i; + + do { + *++(((unsigned char*)dst)) = v; + } while (--i); + } + + if (v) + v |= v << 24 | v << 16 | v << 8; + + ((unsigned long*)dst) = ((unsigned long*)(((unsigned char*)dst) + 1)) - 1; + + i = n >> 5; + + if (i) { + do { + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + } while (--i); + } + + i = (n & 31) >> 2; + + if (i) { + do { + *++((unsigned long*)dst) = v; + } while (--i); + } + + ((unsigned char*)dst) = ((unsigned char*)(((unsigned long*)dst) + 1)) - 1; + + n &= 3; + } + + if (n) + do { + *++((unsigned char*)dst) = v; + } while (--n); + + return; +} + +/* 80003458-80003488 000358 0030+00 1/1 55/55 137/137 .init memset */ +SECTION_INIT void* memset(void* dst, int val, size_t n) { + __fill_mem(dst, val, n); + + return dst; +} diff --git a/src/Runtime.PPCEABI.H/__va_arg.c b/src/Runtime.PPCEABI.H/__va_arg.c new file mode 100644 index 00000000..c6e8bc63 --- /dev/null +++ b/src/Runtime.PPCEABI.H/__va_arg.c @@ -0,0 +1,50 @@ +#include "Runtime.PPCEABI.H/__va_arg.h" + +#undef __va_arg + +/* 80361B14-80361BDC 35C454 00C8+00 0/0 3/3 0/0 .text __va_arg */ +void* __va_arg(_va_list_struct* list, int type) { + char* addr; + char* reg = &(list->gpr); + int g_reg = list->gpr; + int maxsize = 8; + int size = 4; + int increment = 1; + int even = 0; + int fpr_offset = 0; + int regsize = 4; + + if (type == 3) { + reg = &(list->fpr); + g_reg = list->fpr; + size = 8; + fpr_offset = 32; + regsize = 8; + } + + if (type == 2) { + size = 8; + maxsize--; + if (g_reg & 1) { + even = 1; + } + increment = 2; + } + + if (g_reg < maxsize) { + g_reg += even; + addr = list->reg_save_area + fpr_offset + (g_reg * regsize); + *reg = g_reg + increment; + } else { + *reg = 8; + addr = list->input_arg_area; + addr = (char*)(((u32)(addr) + ((size)-1)) & ~((size)-1)); + list->input_arg_area = addr + size; + } + + if (type == 0) { + addr = *((char**)addr); + } + + return addr; +} diff --git a/src/Runtime.PPCEABI.H/runtime.c b/src/Runtime.PPCEABI.H/runtime.c new file mode 100644 index 00000000..8616931a --- /dev/null +++ b/src/Runtime.PPCEABI.H/runtime.c @@ -0,0 +1,827 @@ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* macros for GPR/FPR resting and saving */ +#define SAVE_FPR(reg) _savefpr_##reg +#define RESTORE_FPR(reg) _restfpr_##reg +#define SAVE_GPR(reg) _savegpr_##reg +#define RESTORE_GPR(reg) _restgpr_##reg + +#define ENTRY_SAVE_FPR(reg) entry SAVE_FPR(reg) +#define ENTRY_RESTORE_FPR(reg) entry RESTORE_FPR(reg) +#define ENTRY_SAVE_GPR(reg) entry SAVE_GPR(reg) +#define ENTRY_RESTORE_GPR(reg) entry RESTORE_GPR(reg) + +#define save_restore_reg r11 + +asm void __div2u(void); +asm void __div2i(void); +asm void __mod2u(void); +asm void __mod2i(void); +asm void __shl2i(void); +asm void __shr2u(void); +asm void __shr2i(void); +asm void __cvt_dbl_usll(void); + +void SAVE_FPR(14)(void); +void SAVE_FPR(15)(void); +void SAVE_FPR(16)(void); +void SAVE_FPR(17)(void); +void SAVE_FPR(18)(void); +void SAVE_FPR(19)(void); +void SAVE_FPR(20)(void); +void SAVE_FPR(21)(void); +void SAVE_FPR(22)(void); +void SAVE_FPR(23)(void); +void SAVE_FPR(24)(void); +void SAVE_FPR(25)(void); +void SAVE_FPR(26)(void); +void SAVE_FPR(27)(void); +void SAVE_FPR(28)(void); +void SAVE_FPR(29)(void); +void SAVE_FPR(30)(void); +void SAVE_FPR(31)(void); + +void RESTORE_FPR(14)(void); +void RESTORE_FPR(15)(void); +void RESTORE_FPR(16)(void); +void RESTORE_FPR(17)(void); +void RESTORE_FPR(18)(void); +void RESTORE_FPR(19)(void); +void RESTORE_FPR(20)(void); +void RESTORE_FPR(21)(void); +void RESTORE_FPR(22)(void); +void RESTORE_FPR(23)(void); +void RESTORE_FPR(24)(void); +void RESTORE_FPR(25)(void); +void RESTORE_FPR(26)(void); +void RESTORE_FPR(27)(void); +void RESTORE_FPR(28)(void); +void RESTORE_FPR(29)(void); +void RESTORE_FPR(30)(void); +void RESTORE_FPR(31)(void); + +void SAVE_GPR(14)(void); +void SAVE_GPR(15)(void); +void SAVE_GPR(16)(void); +void SAVE_GPR(17)(void); +void SAVE_GPR(18)(void); +void SAVE_GPR(19)(void); +void SAVE_GPR(20)(void); +void SAVE_GPR(21)(void); +void SAVE_GPR(22)(void); +void SAVE_GPR(23)(void); +void SAVE_GPR(24)(void); +void SAVE_GPR(25)(void); +void SAVE_GPR(26)(void); +void SAVE_GPR(27)(void); +void SAVE_GPR(28)(void); +void SAVE_GPR(29)(void); +void SAVE_GPR(30)(void); +void SAVE_GPR(31)(void); + +void RESTORE_GPR(14)(void); +void RESTORE_GPR(15)(void); +void RESTORE_GPR(16)(void); +void RESTORE_GPR(17)(void); +void RESTORE_GPR(18)(void); +void RESTORE_GPR(19)(void); +void RESTORE_GPR(20)(void); +void RESTORE_GPR(21)(void); +void RESTORE_GPR(22)(void); +void RESTORE_GPR(23)(void); +void RESTORE_GPR(24)(void); +void RESTORE_GPR(25)(void); +void RESTORE_GPR(26)(void); +void RESTORE_GPR(27)(void); +void RESTORE_GPR(28)(void); +void RESTORE_GPR(29)(void); +void RESTORE_GPR(30)(void); +void RESTORE_GPR(31)(void); + +static const u32 __constants[] = { + 0x00000000, 0x00000000, 0x41F00000, 0x00000000, 0x41E00000, 0x00000000, +}; + +/* 803620AC-80362108 35C9EC 005C+00 0/0 42/42 89/89 .text __cvt_fp2unsigned */ +asm u32 __cvt_fp2unsigned(register f64 d) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + lis r4, __constants@h + ori r4, r4, __constants@l + li r3,0 + lfd fp0,0(r4) + lfd fp3,8(r4) + lfd fp4,16(r4) + fcmpu cr0,fp1,fp0 + fcmpu cr6,fp1,fp3 + blt cr0, @exit + addi r3,r3,-1 + bge cr6,@exit + fcmpu cr7,fp1,fp4 + fmr fp2,fp1 + blt cr7,@1 + fsub fp2,fp1,fp4 +@1 fctiwz fp2,fp2 + stfd fp2,8(r1) + lwz r3,12(r1) + blt cr7,@exit + addis r3,r3,-0x8000 +@exit: + addi r1,r1,16 + blr +#endif // clang-format on +} + +/* 80362108-80362134 35CA48 002C+00 0/0 0/0 0/0 .text __save_fpr */ +asm void __save_fpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_SAVE_FPR(14) + stfd fp14,-144(save_restore_reg) + ENTRY_SAVE_FPR(15) + stfd fp15,-136(save_restore_reg) + ENTRY_SAVE_FPR(16) + stfd fp16,-128(save_restore_reg) + ENTRY_SAVE_FPR(17) + stfd fp17,-120(save_restore_reg) + ENTRY_SAVE_FPR(18) + stfd fp18,-112(save_restore_reg) + ENTRY_SAVE_FPR(19) + stfd fp19,-104(save_restore_reg) + ENTRY_SAVE_FPR(20) + stfd fp20,-96(save_restore_reg) + ENTRY_SAVE_FPR(21) + stfd fp21,-88(save_restore_reg) + ENTRY_SAVE_FPR(22) + stfd fp22,-80(save_restore_reg) + ENTRY_SAVE_FPR(23) + stfd fp23,-72(save_restore_reg) + ENTRY_SAVE_FPR(24) + stfd fp24,-64(save_restore_reg) + ENTRY_SAVE_FPR(25) + stfd fp25,-56(save_restore_reg) + ENTRY_SAVE_FPR(26) + stfd fp26,-48(save_restore_reg) + ENTRY_SAVE_FPR(27) + stfd fp27,-40(save_restore_reg) + ENTRY_SAVE_FPR(28) + stfd fp28,-32(save_restore_reg) + ENTRY_SAVE_FPR(29) + stfd fp29,-24(save_restore_reg) + ENTRY_SAVE_FPR(30) + stfd fp30,-16(save_restore_reg) + ENTRY_SAVE_FPR(31) + stfd fp31,-8(save_restore_reg) + blr +#endif // clang-format on +} + +/* 80362154-80362180 35CA94 002C+00 0/0 0/0 0/0 .text __restore_fpr */ +asm void __restore_fpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_RESTORE_FPR(14) + lfd fp14,-144(save_restore_reg) + ENTRY_RESTORE_FPR(15) + lfd fp15,-136(save_restore_reg) + ENTRY_RESTORE_FPR(16) + lfd fp16,-128(save_restore_reg) + ENTRY_RESTORE_FPR(17) + lfd fp17,-120(save_restore_reg) + ENTRY_RESTORE_FPR(18) + lfd fp18,-112(save_restore_reg) + ENTRY_RESTORE_FPR(19) + lfd fp19,-104(save_restore_reg) + ENTRY_RESTORE_FPR(20) + lfd fp20,-96(save_restore_reg) + ENTRY_RESTORE_FPR(21) + lfd fp21,-88(save_restore_reg) + ENTRY_RESTORE_FPR(22) + lfd fp22,-80(save_restore_reg) + ENTRY_RESTORE_FPR(23) + lfd fp23,-72(save_restore_reg) + ENTRY_RESTORE_FPR(24) + lfd fp24,-64(save_restore_reg) + ENTRY_RESTORE_FPR(25) + lfd fp25,-56(save_restore_reg) + ENTRY_RESTORE_FPR(26) + lfd fp26,-48(save_restore_reg) + ENTRY_RESTORE_FPR(27) + lfd fp27,-40(save_restore_reg) + ENTRY_RESTORE_FPR(28) + lfd fp28,-32(save_restore_reg) + ENTRY_RESTORE_FPR(29) + lfd fp29,-24(save_restore_reg) + ENTRY_RESTORE_FPR(30) + lfd fp30,-16(save_restore_reg) + ENTRY_RESTORE_FPR(31) + lfd fp31,-8(save_restore_reg) + blr +#endif // clang-format on +} + +/* 803621A0-803621A4 35CAE0 0004+00 0/0 22/22 13/13 .text _savegpr_14 */ +asm void __save_gpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_SAVE_GPR(14) + stw r14,-72(save_restore_reg) + ENTRY_SAVE_GPR(15) + stw r15,-68(save_restore_reg) + ENTRY_SAVE_GPR(16) + stw r16,-64(save_restore_reg) + ENTRY_SAVE_GPR(17) + stw r17,-60(save_restore_reg) + ENTRY_SAVE_GPR(18) + stw r18,-56(save_restore_reg) + ENTRY_SAVE_GPR(19) + stw r19,-52(save_restore_reg) + ENTRY_SAVE_GPR(20) + stw r20,-48(save_restore_reg) + ENTRY_SAVE_GPR(21) + stw r21,-44(save_restore_reg) + ENTRY_SAVE_GPR(22) + stw r22,-40(save_restore_reg) + ENTRY_SAVE_GPR(23) + stw r23,-36(save_restore_reg) + ENTRY_SAVE_GPR(24) + stw r24,-32(save_restore_reg) + ENTRY_SAVE_GPR(25) + stw r25,-28(save_restore_reg) + ENTRY_SAVE_GPR(26) + stw r26,-24(save_restore_reg) + ENTRY_SAVE_GPR(27) + stw r27,-20(save_restore_reg) + ENTRY_SAVE_GPR(28) + stw r28,-16(save_restore_reg) + ENTRY_SAVE_GPR(29) + stw r29,-12(save_restore_reg) + ENTRY_SAVE_GPR(30) + stw r30,-8(save_restore_reg) + ENTRY_SAVE_GPR(31) + stw r31,-4(save_restore_reg) + blr +#endif // clang-format on +} + +/* 803621EC-803621F0 35CB2C 0004+00 0/0 22/22 13/13 .text _restgpr_14 */ +asm void __restore_gpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_RESTORE_GPR(14) + lwz r14,-72(save_restore_reg) + ENTRY_RESTORE_GPR(15) + lwz r15,-68(save_restore_reg) + ENTRY_RESTORE_GPR(16) + lwz r16,-64(save_restore_reg) + ENTRY_RESTORE_GPR(17) + lwz r17,-60(save_restore_reg) + ENTRY_RESTORE_GPR(18) + lwz r18,-56(save_restore_reg) + ENTRY_RESTORE_GPR(19) + lwz r19,-52(save_restore_reg) + ENTRY_RESTORE_GPR(20) + lwz r20,-48(save_restore_reg) + ENTRY_RESTORE_GPR(21) + lwz r21,-44(save_restore_reg) + ENTRY_RESTORE_GPR(22) + lwz r22,-40(save_restore_reg) + ENTRY_RESTORE_GPR(23) + lwz r23,-36(save_restore_reg) + ENTRY_RESTORE_GPR(24) + lwz r24,-32(save_restore_reg) + ENTRY_RESTORE_GPR(25) + lwz r25,-28(save_restore_reg) + ENTRY_RESTORE_GPR(26) + lwz r26,-24(save_restore_reg) + ENTRY_RESTORE_GPR(27) + lwz r27,-20(save_restore_reg) + ENTRY_RESTORE_GPR(28) + lwz r28,-16(save_restore_reg) + ENTRY_RESTORE_GPR(29) + lwz r29,-12(save_restore_reg) + ENTRY_RESTORE_GPR(30) + lwz r30,-8(save_restore_reg) + ENTRY_RESTORE_GPR(31) + lwz r31,-4(save_restore_reg) + blr +#endif // clang-format on +} + +/* 80362238-80362324 35CB78 00EC+00 0/0 2/2 0/0 .text __div2u */ +asm void __div2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + adde r4,r4,r4 + adde r3,r3,r3 + blr +lab9: + li r4,0 + li r3,0 + blr +#endif // clang-format on +} + +/* 80362324-8036245C 35CC64 0138+00 0/0 16/16 1/1 .text __div2i */ +asm void __div2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + rlwinm. r9,r3,0,0,0 + beq cr0,positive1 + subfic r4,r4,0 + subfze r3,r3 +positive1: + stw r9,8(r1) + rlwinm. r10,r5,0,0,0 + beq cr0,positive2 + subfic r6,r6,0 + subfze r5,r5 +positive2: + stw r10,12(r1) + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + adde r4,r4,r4 + adde r3,r3,r3 + lwz r9,8(r1) + lwz r10,12(r1) + xor. r7,r9,r10 + beq cr0,no_adjust + cmpwi cr0,r9,0 + subfic r4,r4,0 + subfze r3,r3 + +no_adjust: + b func_end + +lab9: + li r4,0 + li r3,0 +func_end: + addi r1,r1,16 + blr +#endif // clang-format on +} + +/* 8036245C-80362540 35CD9C 00E4+00 0/0 2/2 0/0 .text __mod2u */ +asm void __mod2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + mr r4,r8 + mr r3,r7 + blr +lab9: + blr +#endif // clang-format on +} + +/* 80362540-8036264C 35CE80 010C+00 0/0 2/2 0/0 .text __mod2i */ +asm void __mod2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + + cmpwi cr7,r3,0 + bge cr7,positive1 + subfic r4,r4,0 + subfze r3,r3 +positive1: + cmpwi cr0,r5,0 + bge cr0,positive2 + subfic r6,r6,0 + subfze r5,r5 +positive2: + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + mr r4,r8 + mr r3,r7 +lab9: + bge cr7,no_adjust + subfic r4,r4,0 + subfze r3,r3 +no_adjust: + blr +#endif // clang-format on +} + +/* 8036264C-80362670 35CF8C 0024+00 0/0 2/2 0/0 .text __shl2i */ +asm void __shl2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8,r5,32 + subic r9,r5,32 + slw r3,r3,r5 + srw r10,r4,r8 + or r3,r3,r10 + slw r10,r4,r9 + or r3,r3,r10 + slw r4,r4,r5 + blr +#endif // clang-format on +} + +/* 80362670-80362694 35CFB0 0024+00 0/0 2/2 0/0 .text __shr2u */ +asm void __shr2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8,r5,32 + subic r9,r5,32 + srw r4,r4,r5 + slw r10,r3,r8 + or r4,r4,r10 + srw r10,r3,r9 + or r4,r4,r10 + srw r3,r3,r5 + blr +#endif // clang-format on +} + +/* 80362694-803626BC 35CFD4 0028+00 0/0 3/3 0/0 .text __shr2i */ +asm void __shr2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8, r5, 0x20 + addic. r9, r5, -0x20 + srw r4, r4, r5 + slw r10, r3, r8 + or r4, r4, r10 + sraw r10, r3, r9 + ble around + or r4, r4, r10 +around: + sraw r3, r3, r5 + blr +#endif // clang-format on +} + +/* 803626BC-80362770 35CFFC 00B4+00 0/0 1/1 0/0 .text __cvt_sll_flt */ +asm void __cvt_sll_flt(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1, -0x10(r1) + rlwinm. r5, r3, 0, 0, 0 + beq lbl_803626D0 + subfic r4, r4, 0 + subfze r3, r3 +lbl_803626D0: + or. r7, r3, r4 + li r6, 0 + beq lbl_80362758 + cntlzw r7, r3 + cntlzw r8, r4 + rlwinm r9, r7, 0x1a, 0, 4 + srawi r9, r9, 0x1f + and r9, r9, r8 + add r7, r7, r9 + subfic r8, r7, 0x20 + addic r9, r7, -32 + slw r3, r3, r7 + srw r10, r4, r8 + or r3, r3, r10 + slw r10, r4, r9 + or r3, r3, r10 + slw r4, r4, r7 + subf r6, r7, r6 + clrlwi r7, r4, 0x15 + cmpwi r7, 0x400 + addi r6, r6, 0x43e + blt lbl_80362740 + bgt lbl_80362734 + rlwinm. r7, r4, 0, 0x14, 0x14 + beq lbl_80362740 +lbl_80362734: + addic r4, r4, 0x800 + addze r3, r3 + addze r6, r6 +lbl_80362740: + rotlwi r4, r4, 0x15 + rlwimi r4, r3, 0x15, 0, 0xa + rlwinm r3, r3, 0x15, 0xc, 0x1f + slwi r6, r6, 0x14 + or r3, r6, r3 + or r3, r5, r3 +lbl_80362758: + stw r3, 8(r1) + stw r4, 0xc(r1) + lfd f1, 8(r1) + frsp f1, f1 + addi r1, r1, 0x10 + blr +#endif // clang-format on +} + +/* 80362770-8036283C 35D0B0 00CC+00 0/0 2/2 0/0 .text __cvt_dbl_usll */ +asm void __cvt_dbl_usll(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + stfd f1,8(r1) + lwz r3,8(r1) + lwz r4,12(r1) + rlwinm r5,r3,12,21,31 + cmpli cr0,0,r5,1023 + bge cr0,not_fraction + li r3,0 + li r4,0 + b func_end +not_fraction: + mr r6,r3 + rlwinm r3,r3,0,12,31 + oris r3,r3,0x0010 + addi r5,r5,-1075 + cmpwi cr0,r5,0 + bge cr0,left + neg r5,r5 + subfic r8,r5,32 + subic r9,r5,32 + srw r4,r4,r5 + slw r10,r3,r8 + or r4,r4,r10 + srw r10,r3,r9 + or r4,r4,r10 + srw r3,r3,r5 + b around +left: + cmpwi cr0,r5,10 + ble+ no_overflow + rlwinm. r6,r6,0,0,0 + beq cr0,max_positive + lis r3,0x8000 + li r4,0 + b func_end +max_positive: + lis r3,0x7FFF + ori r3,r3,0xFFFF + li r4,-1 + b func_end +no_overflow: + subfic r8,r5,32 + subic r9,r5,32 + slw r3,r3,r5 + srw r10,r4,r8 + or r3,r3,r10 + slw r10,r4,r9 + or r3,r3,r10 + slw r4,r4,r5 +around: + rlwinm. r6,r6,0,0,0 + beq cr0,positive + subfic r4,r4,0 + subfze r3,r3 +positive: +func_end: + addi r1,r1,16 + blr +#endif // clang-format on +} + +#ifdef __cplusplus +} +#endif diff --git a/src/TRK_MINNOW_DOLPHIN/__exception.s b/src/TRK_MINNOW_DOLPHIN/__exception.s new file mode 100644 index 00000000..a5c63065 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/__exception.s @@ -0,0 +1,2018 @@ +.include "macros.inc" +.file "__exception.s" + +# 0x80003534..0x80005468 | size: 0x1F34 +.section .init, "ax" +.balign 4 +# .init:0x0 | 0x80003534 | size: 0x0 +.sym gTRKInterruptVectorTable, global + +# .init:0x0 | 0x80003534 | size: 0x1F34 +.fn pad_00_80003534_init, local +.4byte 0x4D657472 +xoris r23, r27, 0x6572 +xori r19, r27, 0x2054 +ori r18, r11, 0x6765 +andis. r0, r1, 0x5265 +andi. r9, r27, 0x6465 +xoris r20, r19, 0x204b +oris r18, r11, 0x6e65 +xoris r0, r1, 0x666f +andi. r0, r17, 0x506f +andis. r5, r27, 0x7250 +.L_80003560: + .4byte 0x43000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + b 0x1e34 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfsrr0 r2 + icbi r0, r2 + mfdar r2 + dcbi r0, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x200 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x300 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 +# .init:0x348 | 0x8000387C | size: 0x0 +.sym lbl_8000387C, global + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 +# .init:0x3AC | 0x800038E0 | size: 0x0 +.sym lbl_800038E0, global + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x400 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x500 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x600 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x700 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x800 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x900 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xc00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xd00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xe00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + b .L_80004488 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xf20 + rfi +.L_80004488: + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xf00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004564 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004564: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1000 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004664 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004664: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1100 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004764 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004764: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1200 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1300 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1400 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1600 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1700 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1c00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1d00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1e00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1f00 + rfi +.endfn pad_00_80003534_init diff --git a/src/TRK_MINNOW_DOLPHIN/dispatch.c b/src/TRK_MINNOW_DOLPHIN/dispatch.c new file mode 100644 index 00000000..9e3fc1e2 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dispatch.c @@ -0,0 +1,44 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" + +u32 gTRKDispatchTableSize; + +struct DispatchEntry { + int (*fn)(TRKBuffer*); +}; + +struct DispatchEntry gTRKDispatchTable[33] = { + { &TRKDoUnsupported }, { &TRKDoConnect }, { &TRKDoDisconnect }, + { &TRKDoReset }, { &TRKDoVersions }, { &TRKDoSupportMask }, + { &TRKDoCPUType }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoReadMemory }, { &TRKDoWriteMemory }, + { &TRKDoReadRegisters }, { &TRKDoWriteRegisters }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoFlushCache }, { &TRKDoSetOption }, + { &TRKDoContinue }, { &TRKDoStep }, { &TRKDoStop }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, +}; + +DSError TRKInitializeDispatcher() +{ + gTRKDispatchTableSize = 32; + return DS_NoError; +} + +DSError TRKDispatchMessage(TRKBuffer* buffer) +{ + DSError error; + u8 command; + + error = DS_DispatchError; + TRKSetBufferPosition(buffer, 0); + TRKReadBuffer1_ui8(buffer, &command); + command &= 0xFF; + if (command < gTRKDispatchTableSize) { + error = gTRKDispatchTable[command].fn(buffer); + } + return error; +} diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c new file mode 100644 index 00000000..b8ffd29d --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c @@ -0,0 +1,138 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" +#include "dolphin/ar.h" +#include "stddef.h" + +#define EXCEPTIONMASK_ADDR 0x80000044 + +static u32 lc_base; +extern u32 _db_stack_addr; + +static u32 TRK_ISR_OFFSETS[15] = { PPC_SystemReset, + PPC_MachineCheck, + PPC_DataStorage, + PPC_InstructionStorage, + PPC_ExternalInterrupt, + PPC_Alignment, + PPC_Program, + PPC_FloatingPointUnavaiable, + PPC_Decrementer, + PPC_SystemCall, + PPC_Trace, + PPC_PerformanceMonitor, + PPC_InstructionAddressBreakpoint, + PPC_SystemManagementInterrupt, + PPC_ThermalManagementInterrupt }; + +__declspec(section ".init") void __TRK_reset(void) { __TRK_copy_vectors(); } + +asm void InitMetroTRK() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + addi r1, r1, -4 + stw r3, 0(r1) + lis r3, gTRKCPUState@h + ori r3, r3, gTRKCPUState@l + stmw r0, ProcessorState_PPC.Default.GPR(r3) //Save the gprs + lwz r4, 0(r1) + addi r1, r1, 4 + stw r1, ProcessorState_PPC.Default.GPR[1](r3) + stw r4, ProcessorState_PPC.Default.GPR[3](r3) + mflr r4 + stw r4, ProcessorState_PPC.Default.LR(r3) + stw r4, ProcessorState_PPC.Default.PC(r3) + mfcr r4 + stw r4, ProcessorState_PPC.Default.CR(r3) + //??? + mfmsr r4 + ori r3, r4, (1 << (31 - 16)) + xori r3, r3, (1 << (31 - 16)) + mtmsr r3 + mtsrr1 r4 //Copy msr to srr1 + //Save misc registers to gTRKCPUState + bl TRKSaveExtended1Block + lis r3, gTRKCPUState@h + ori r3, r3, gTRKCPUState@l + lmw r0, ProcessorState_PPC.Default.GPR(r3) //Restore the gprs + //Reset IABR and DABR + li r0, 0 + mtspr 0x3f2, r0 + mtspr 0x3f5, r0 + //Restore stack pointer + lis r1, _db_stack_addr@h + ori r1, r1, _db_stack_addr@l + mr r3, r5 + bl InitMetroTRKCommTable //Initialize comm table + /* + If InitMetroTRKCommTable returned 1 (failure), an invalid hardware + id or the id for GDEV was somehow passed. Since only BBA or NDEV + are supported, we return early. Otherwise, we proceed with + starting up TRK. + */ + cmpwi r3, 1 + bne initCommTableSuccess + /* + BUG: The code probably orginally reloaded gTRKCPUState here, but + as is it will read the returned value of InitMetroTRKCommTable + as a TRKCPUState struct pointer, causing the CPU to return to + a garbage code address. + */ + lwz r4, ProcessorState_PPC.Default.LR(r3) + mtlr r4 + lmw r0, ProcessorState_PPC.Default.GPR(r3) //Restore the gprs + blr +initCommTableSuccess: + b TRK_main //Jump to TRK_main +#endif // clang-format on +} + +void EnableMetroTRKInterrupts(void) { EnableEXI2Interrupts(); } + +u32 TRKTargetTranslate(u32 param_0) +{ + if (param_0 >= lc_base) { + if ((param_0 < lc_base + 0x4000) + && ((gTRKCPUState.Extended1.DBAT3U & 3) != 0)) { + return param_0; + } + } + + return param_0 & 0x3FFFFFFF | 0x80000000; +} + +extern u8 gTRKInterruptVectorTable[]; + +void TRK_copy_vector(u32 offset) +{ + void* destPtr = (void*)TRKTargetTranslate(offset); + TRK_memcpy(destPtr, gTRKInterruptVectorTable + offset, 0x100); + TRK_flush_cache(destPtr, 0x100); +} + +void __TRK_copy_vectors(void) +{ + int i; + u32 mask; + + mask = *(u32*)TRKTargetTranslate(0x44); + + for (i = 0; i <= 14; ++i) { + if (mask & (1 << i)) { + TRK_copy_vector(TRK_ISR_OFFSETS[i]); + } + } +} + +DSError TRKInitializeTarget() +{ + gTRKState.isStopped = TRUE; + gTRKState.msr = __TRK_get_MSR(); + lc_base = 0xE0000000; + return DS_NoError; +} diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c new file mode 100644 index 00000000..46eb1107 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -0,0 +1,173 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "OdemuExi2/odemuexi/DebuggerDriver.h" +#include "amcstubs/AmcExi2Stubs.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#define BUFF_LEN 4362 + +u8 gWriteBuf[BUFF_LEN]; +u8 gReadBuf[BUFF_LEN]; +s32 _MetroTRK_Has_Framing; +s32 gReadCount; +s32 gReadPos; +s32 gWritePos; + +DBCommTable gDBCommTable = {}; + +asm void TRKLoadContext(OSContext* ctx, u32) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lwz r0, OSContext.gpr[0](r3) + lwz r1, OSContext.gpr[1](r3) + lwz r2, OSContext.gpr[2](r3) + lhz r5, OSContext.state(r3) + rlwinm. r6, r5, 0, 0x1e, 0x1e + beq lbl_80371C1C + rlwinm r5, r5, 0, 0x1f, 0x1d + sth r5, OSContext.state(r3) + lmw r5, OSContext.gpr[5](r3) + b lbl_80371C20 +lbl_80371C1C: + lmw r13, OSContext.gpr[13](r3) +lbl_80371C20: + mr r31, r3 + mr r3, r4 + lwz r4, OSContext.cr(r31) + mtcrf 0xff, r4 + lwz r4, OSContext.lr(r31) + mtlr r4 + lwz r4, OSContext.ctr(r31) + mtctr r4 + lwz r4, OSContext.xer(r31) + mtxer r4 + mfmsr r4 + rlwinm r4, r4, 0, 0x11, 0xf //Turn off external exceptions + rlwinm r4, r4, 0, 0x1f, 0x1d //Turn off recoverable exception flag + mtmsr r4 + mtsprg 1, r2 + lwz r4, OSContext.gpr[3](r31) + mtsprg 2, r4 + lwz r4, OSContext.gpr[4](r31) + mtsprg 3, r4 + lwz r2, OSContext.srr0(r31) + lwz r4, OSContext.srr1(r31) + lwz r31, OSContext.gpr[31](r31) + b TRKInterruptHandler +#endif // clang-format on +} + +void TRKEXICallBack(__OSInterrupt param_0, OSContext* ctx) +{ + OSEnableScheduler(); + TRKLoadContext(ctx, 0x500); +} + +int InitMetroTRKCommTable(int hwId) +{ + int result; + + if (hwId == HARDWARE_GDEV) { + OSReport("MetroTRK : Set to GDEV hardware\n"); + result = Hu_IsStub(); + + gDBCommTable.initialize_func = DBInitComm; + gDBCommTable.init_interrupts_func = DBInitInterrupts; + gDBCommTable.peek_func = DBQueryData; + gDBCommTable.read_func = DBRead; + gDBCommTable.write_func = DBWrite; + gDBCommTable.open_func = DBOpen; + gDBCommTable.close_func = DBClose; + } else { + OSReport("MetroTRK : Set to AMC DDH hardware\n"); + result = AMC_IsStub(); + + gDBCommTable.initialize_func = EXI2_Init; + gDBCommTable.init_interrupts_func = EXI2_EnableInterrupts; + gDBCommTable.peek_func = EXI2_Poll; + gDBCommTable.read_func = EXI2_ReadN; + gDBCommTable.write_func = EXI2_WriteN; + gDBCommTable.open_func = EXI2_Reserve; + gDBCommTable.close_func = EXI2_Unreserve; + } + + return result; +} + +DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, + volatile u8** param_3) +{ + gDBCommTable.initialize_func(param_3, TRKEXICallBack); + return DS_NoError; +} + +void EnableEXI2Interrupts(void) { gDBCommTable.init_interrupts_func(); } + +inline int TRKPollUART(void) { return gDBCommTable.peek_func(); } + +inline UARTError TRKReadUARTN(void* bytes, u32 length) +{ + int readErr = gDBCommTable.read_func(bytes, length); + return readErr == 0 ? 0 : -1; +} + +inline UARTError TRKWriteUARTN(const void* bytes, u32 length) +{ + int writeErr = gDBCommTable.write_func(bytes, length); + return writeErr == 0 ? 0 : -1; +} + +UARTError WriteUARTFlush(void) +{ + UARTError readErr = 0; + + while (gWritePos < 0x800) { + gWriteBuf[gWritePos] = 0; + gWritePos++; + } + if (gWritePos != 0) { + readErr = TRKWriteUARTN(gWriteBuf, gWritePos); + gWritePos = 0; + } + return readErr; +} + +UARTError WriteUART1(u8 arg0) +{ + gWriteBuf[gWritePos++] = arg0; + return 0; +} + +UARTError TRKReadUARTPoll(u8* arg0) +{ + UARTError readErr = 4; + s32 cnt; + + if (gReadPos >= gReadCount) { + gReadPos = 0; + cnt = gReadCount = TRKPollUART(); + if (cnt > 0) { + if (cnt > BUFF_LEN) { + gReadCount = BUFF_LEN; + } + readErr = TRKReadUARTN(gReadBuf, gReadCount); + if (readErr != 0) { + gReadCount = 0; + } + } + } + if (gReadPos < gReadCount) { + *arg0 = gReadBuf[gReadPos++]; + readErr = 0; + } + return readErr; +} + +void ReserveEXI2Port(void) { gDBCommTable.open_func(); } + +void UnreserveEXI2Port(void) { gDBCommTable.close_func(); } + +void TRK_board_display(char* str) { OSReport(str); } + +void TRKUARTInterruptHandler() { } diff --git a/src/TRK_MINNOW_DOLPHIN/flush_cache.c b/src/TRK_MINNOW_DOLPHIN/flush_cache.c new file mode 100644 index 00000000..116d8d72 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/flush_cache.c @@ -0,0 +1,26 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" + +asm void TRK_flush_cache(register void* param_1, register int param_2) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + lis r5, 0xFFFF + ori r5, r5, 0xFFF1 + and r5, r5, param_1 + subf r3, r5, param_1 + add r4, param_2, r3 + +loop: + dcbst 0, r5 + dcbf 0, r5 + sync + icbi 0, r5 + addic r5, r5, 8 + addic. r4, r4, -8 + bge loop + + isync + blr +#endif // clang-format on +} diff --git a/src/TRK_MINNOW_DOLPHIN/main_TRK.c b/src/TRK_MINNOW_DOLPHIN/main_TRK.c new file mode 100644 index 00000000..0ce137a8 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/main_TRK.c @@ -0,0 +1,17 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" + +static DSError TRK_mainError; + +DSError TRK_main(void) +{ + TRK_mainError = TRKInitializeNub(); + + if (TRK_mainError == DS_NoError) { + TRKNubWelcome(); + TRKNubMainLoop(); + } + + TRK_mainError = TRKTerminateNub(); + return TRK_mainError; +} diff --git a/src/TRK_MINNOW_DOLPHIN/mainloop.c b/src/TRK_MINNOW_DOLPHIN/mainloop.c new file mode 100644 index 00000000..62783f82 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mainloop.c @@ -0,0 +1,70 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +void TRKHandleRequestEvent(TRKEvent* event) +{ + TRKBuffer* buffer = TRKGetBuffer(event->msgBufID); + TRKDispatchMessage(buffer); +} + +void TRKHandleSupportEvent(TRKEvent* event) { TRKTargetSupportRequest(); } + +void TRKIdle() +{ + if (TRKTargetStopped() == FALSE) { + TRKTargetContinue(); + } +} + +void TRKNubMainLoop(void) +{ + void* msg; + TRKEvent event; + BOOL isShutdownRequested; + BOOL isNewInput; + + isShutdownRequested = FALSE; + isNewInput = FALSE; + while (isShutdownRequested == FALSE) { + if (TRKGetNextEvent(&event) != FALSE) { + isNewInput = FALSE; + + switch (event.eventType) { + case NUBEVENT_Null: + break; + + case NUBEVENT_Request: + TRKHandleRequestEvent(&event); + break; + + case NUBEVENT_Shutdown: + isShutdownRequested = TRUE; + break; + + case NUBEVENT_Breakpoint: + case NUBEVENT_Exception: + TRKTargetInterrupt(&event); + break; + + case NUBEVENT_Support: + TRKHandleSupportEvent(&event); + break; + } + + TRKDestructEvent(&event); + continue; + } + + if ((isNewInput == FALSE) || (*(u8*)gTRKInputPendingPtr != '\0')) { + isNewInput = TRUE; + TRKGetInput(); + continue; + } + + TRKIdle(); + isNewInput = FALSE; + } +} diff --git a/src/TRK_MINNOW_DOLPHIN/mem_TRK.c b/src/TRK_MINNOW_DOLPHIN/mem_TRK.c new file mode 100644 index 00000000..b25259fe --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mem_TRK.c @@ -0,0 +1,83 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "dolphin/types.h" + +void TRK_fill_mem(void *dest, int value, unsigned long length) +{ +#define cDest ((unsigned char *)dest) +#define lDest ((unsigned long *)dest) + unsigned long val = (unsigned char)value; + unsigned long i; + lDest = (unsigned long *)dest; + cDest = (unsigned char *)dest; + + cDest--; + + if (length >= 32) { + i = ~(unsigned long)dest & 3; + + if (i) { + length -= i; + do { + *++cDest = val; + } while (--i); + } + + if (val) { + val |= val << 24 | val << 16 | val << 8; + } + + lDest = (unsigned long *)(cDest + 1) - 1; + + i = length >> 5; + if (i) { + do { + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + } while (--i); + } + + i = (length & 31) >> 2; + + if (i) { + do { + *++lDest = val; + } while (--i); + } + + cDest = (unsigned char *)(lDest + 1) - 1; + + length &= 3; + } + + if (length) { + do { + *++cDest = val; + } while (--length); + } + +#undef cDest +#undef lDest +} + +__declspec(section ".init") void *TRK_memcpy(void *dst, const void *src, size_t n) +{ + const char *p; + char *q; + + for (p = (const char *)src - 1, q = (char *)dst - 1, n++; --n;) + *++q = *++p; + + return dst; +} + +__declspec(section ".init") void *TRK_memset(void *dst, int val, size_t n) +{ + TRK_fill_mem(dst, val, n); + return dst; +} diff --git a/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c new file mode 100644 index 00000000..921aa79d --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c @@ -0,0 +1,248 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +extern u8 gTRKRestoreFlags[9 + 3 /* padding */]; + +asm void TRKSaveExtended1Block() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKCPUState@h /* 0x8044F338@h */ + ori r2, r2, gTRKCPUState@l /* 0x8044F338@l */ + mfsr r16, 0 + mfsr r17, 1 + mfsr r18, 2 + mfsr r19, 3 + mfsr r20, 4 + mfsr r21, 5 + mfsr r22, 6 + mfsr r23, 7 + mfsr r24, 8 + mfsr r25, 9 + mfsr r26, 0xa + mfsr r27, 0xb + mfsr r28, 0xc + mfsr r29, 0xd + mfsr r30, 0xe + mfsr r31, 0xf + stmw r16, 0x1a8(r2) + mftb r10, 0x10c + mftbu r11 + mfspr r12, 0x3f0 + mfspr r13, 0x3f1 + mfspr r14, 0x1b + mfpvr r15 + mfibatu r16, 0 + mfibatl r17, 0 + mfibatu r18, 1 + mfibatl r19, 1 + mfibatu r20, 2 + mfibatl r21, 2 + mfibatu r22, 3 + mfibatl r23, 3 + mfdbatu r24, 0 + mfdbatl r25, 0 + mfdbatu r26, 1 + mfdbatl r27, 1 + mfdbatu r28, 2 + mfdbatl r29, 2 + mfdbatu r30, 3 + mfdbatl r31, 3 + stmw r10, 0x1e8(r2) + mfspr r22, 0x19 + mfdar r23 + mfdsisr r24 + mfspr r25, 0x110 + mfspr r26, 0x111 + mfspr r27, 0x112 + mfspr r28, 0x113 + li r29, 0 + mfspr r30, 0x3f2 + mfspr r31, 0x11a + stmw r22, 0x25c(r2) + mfspr r20, 0x390 + mfspr r21, 0x391 + mfspr r22, 0x392 + mfspr r23, 0x393 + mfspr r24, 0x394 + mfspr r25, 0x395 + mfspr r26, 0x396 + mfspr r27, 0x397 + mfspr r28, 0x398 + mfspr r29, 0x399 + mfspr r30, 0x39a + mfspr r31, 0x39b + stmw r20, 0x2fc(r2) + b lbl_80371340 + mfspr r16, 0x3a0 + mfspr r17, 0x3a7 + mfspr r18, 0x3a8 + mfspr r19, 0x3a9 + mfspr r20, 0x3aa + mfspr r21, 0x3ab + mfspr r22, 0x3ac + mfspr r23, 0x3ad + mfspr r24, 0x3ae + mfspr r25, 0x3af + mfspr r26, 0x3b0 + mfspr r27, 0x3b7 + mfspr r28, 0x3bf + mfspr r29, 0x3f6 + mfspr r30, 0x3f7 + mfspr r31, 0x3ff + stmw r16, 0x2b8(r2) + +lbl_80371340: + mfspr r19, 0x3f5 + mfspr r20, 0x3b9 + mfspr r21, 0x3ba + mfspr r22, 0x3bd + mfspr r23, 0x3be + mfspr r24, 0x3bb + mfspr r25, 0x3b8 + mfspr r26, 0x3bc + mfspr r27, 0x3fc + mfspr r28, 0x3fd + mfspr r29, 0x3fe + mfspr r30, 0x3FB + mfspr r31, 0x3f9 + stmw r19, 0x284(r2) + b end + + mfspr r25, 0x3d0 + mfspr r26, 0x3d1 + mfspr r27, 0x3d2 + mfspr r28, 0x3d3 + mfspr r29, 0x3D4 + mfspr r30, 0x3D5 + mfspr r31, 0x3d6 + stmw r25, 0x240(r2) + mfspr r31, 0x16 + stw r31, 0x278(r2) +end: + blr +#endif // clang-format on +} + +asm void TRKRestoreExtended1Block() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKCPUState@h /* 0x8044F338@h */ + ori r2, r2, gTRKCPUState@l /* 0x8044F338@l */ + lis r5, gTRKRestoreFlags@h /* 0x803D3238@h */ + ori r5, r5, gTRKRestoreFlags@l /* 0x803D3238@l */ + lbz r3, 0(r5) + lbz r6, 1(r5) + li r0, 0 + stb r0, 0(r5) + stb r0, 1(r5) + cmpwi r3, 0 + beq lbl_803713E4 + lwz r24, 0x1e8(r2) + lwz r25, 0x1ec(r2) + mttbl r24 + mttbu r25 +lbl_803713E4: + lmw r20, 0x2fc(r2) + mtspr 0x390, r20 + mtspr 0x391, r21 + mtspr 0x392, r22 + mtspr 0x393, r23 + mtspr 0x394, r24 + mtspr 0x395, r25 + mtspr 0x396, r26 + mtspr 0x397, r27 + mtspr 0x398, r28 + mtspr 0x39a, r30 + mtspr 0x39b, r31 + b lbl_80371430 + lmw r26, 0x2e0(r2) + mtspr 0x3b0, r26 + mtspr 0x3b7, r27 + mtspr 0x3f6, r29 + mtspr 0x3f7, r30 + mtspr 0x3ff, r31 +lbl_80371430: + lmw r19, 0x284(r2) + mtspr 0x3f5, r19 + mtspr 0x3b9, r20 + mtspr 0x3ba, r21 + mtspr 0x3bd, r22 + mtspr 0x3be, r23 + mtspr 0x3bb, r24 + mtspr 0x3b8, r25 + mtspr 0x3bc, r26 + mtspr 0x3fc, r27 + mtspr 0x3fd, r28 + mtspr 0x3fe, r29 + mtspr 0x3FB, r30 + mtspr 0x3f9, r31 + b lbl_8037149C + cmpwi r6, 0 + beq lbl_8037147C + lwz r26, 0x278(r2) + mtspr 0x16, r26 +lbl_8037147C: + lmw r25, 0x240(r2) + mtspr 0x3d0, r25 + mtspr 0x3d1, r26 + mtspr 0x3d2, r27 + mtspr 0x3d3, r28 + mtspr 0x3D4, r29 + mtspr 0x3D5, r30 + mtspr 0x3d6, r31 +lbl_8037149C: + lmw r16, 0x1a8(r2) + mtsr 0, r16 + mtsr 1, r17 + mtsr 2, r18 + mtsr 3, r19 + mtsr 4, r20 + mtsr 5, r21 + mtsr 6, r22 + mtsr 7, r23 + mtsr 8, r24 + mtsr 9, r25 + mtsr 0xa, r26 + mtsr 0xb, r27 + mtsr 0xc, r28 + mtsr 0xd, r29 + mtsr 0xe, r30 + mtsr 0xf, r31 + lmw r12, 0x1f0(r2) + mtspr 0x3f0, r12 + mtspr 0x3f1, r13 + mtspr 0x1b, r14 + mtspr 0x11f, r15 + mtibatu 0, r16 + mtibatl 0, r17 + mtibatu 1, r18 + mtibatl 1, r19 + mtibatu 2, r20 + mtibatl 2, r21 + mtibatu 3, r22 + mtibatl 3, r23 + mtdbatu 0, r24 + mtdbatl 0, r25 + mtdbatu 1, r26 + mtdbatl 1, r27 + mtdbatu 2, r28 + mtdbatl 2, r29 + mtdbatu 3, r30 + mtdbatl 3, r31 + lmw r22, 0x25c(r2) + mtspr 0x19, r22 + mtdar r23 + mtdsisr r24 + mtspr 0x110, r25 + mtspr 0x111, r26 + mtspr 0x112, r27 + mtspr 0x113, r28 + mtspr 0x3f2, r30 + mtspr 0x11a, r31 + blr +#endif // clang-format on +} + +u8 TRKTargetCPUMinorType(void) { return 0x54; } diff --git a/src/TRK_MINNOW_DOLPHIN/msg.c b/src/TRK_MINNOW_DOLPHIN/msg.c new file mode 100644 index 00000000..09f5de11 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msg.c @@ -0,0 +1,61 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +// Incorrect signature? Should be u8. +UARTError WriteUART1(s8 arg0); + +DSError TRKMessageSend(TRK_Msg* msg) +{ + u8 var_r30; + u8 var_r28; + u8 var_r28_2; + s32 var_r3; + s32 i; + + var_r30 = 0; + for (i = 0; i < msg->m_msgLength; i++) { + var_r30 = var_r30 + msg->m_msg[i]; + } + var_r30 = var_r30 ^ 0xFF; + var_r3 = WriteUART1(0x7E); + if (var_r3 == 0) { + for (i = 0; i < msg->m_msgLength; i++) { + var_r28 = msg->m_msg[i]; + if (var_r28 == 0x7E || var_r28 == 0x7D) { + var_r3 = WriteUART1(0x7D); + var_r28 ^= 0x20; + if (var_r3 != 0) { + break; + } + } + var_r3 = WriteUART1(var_r28); + if (var_r3 != 0) { + break; + } + } + } + if (var_r3 == 0) { + var_r28_2 = var_r30; + for (i = 0; i < 1; i++) { + if (var_r28_2 == 0x7E || var_r28_2 == 0x7D) { + var_r3 = WriteUART1(0x7D); + var_r28_2 ^= 0x20; + if (var_r3 != 0) { + break; + } + } + var_r3 = WriteUART1(var_r28_2); + if (var_r3 != 0) { + break; + } + } + } + if (var_r3 == 0) { + var_r3 = WriteUART1(0x7E); + } + if (var_r3 == 0) { + var_r3 = WriteUARTFlush(); + } + return var_r3; +} diff --git a/src/TRK_MINNOW_DOLPHIN/msgbuf.c b/src/TRK_MINNOW_DOLPHIN/msgbuf.c new file mode 100644 index 00000000..71702e8c --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msgbuf.c @@ -0,0 +1,365 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "stddef.h" + +TRKBuffer gTRKMsgBufs[3]; + +void TRKSetBufferUsed(TRKBuffer* msg, BOOL state) { msg->isInUse = state; } + +DSError TRKInitializeMessageBuffers(void) +{ + int i; + for (i = 0; i < 3; i++) { + TRKInitializeMutex(&gTRKMsgBufs[i]); + TRKAcquireMutex(&gTRKMsgBufs[i]); + TRKSetBufferUsed(&gTRKMsgBufs[i], FALSE); + TRKReleaseMutex(&gTRKMsgBufs[i]); + } + + return DS_NoError; +} + +DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg) +{ + TRKBuffer* buf; + DSError error = DS_NoMessageBufferAvailable; + int i; + + *outMsg = NULL; + + for (i = 0; i < 3; i++) { + buf = TRKGetBuffer(i); + + TRKAcquireMutex(buf); + if (!buf->isInUse) { + TRKResetBuffer(buf, 1); + TRKSetBufferUsed(buf, TRUE); + error = DS_NoError; + *outMsg = buf; + *msgID = i; + i = 3; // why not break? weird choice + } + TRKReleaseMutex(buf); + } + + if (error == DS_NoMessageBufferAvailable) { + usr_puts_serial("ERROR : No buffer available\n"); + } + + return error; +} + +void* TRKGetBuffer(int idx) +{ + TRKBuffer* buf = NULL; + if (idx >= 0 && idx < 3) { + buf = &gTRKMsgBufs[idx]; + } + + return buf; +} + +void TRKReleaseBuffer(int idx) +{ + TRKBuffer* msg; + if (idx != -1 && idx >= 0 && idx < 3) { + msg = &gTRKMsgBufs[idx]; + TRKAcquireMutex(msg); + TRKSetBufferUsed(msg, FALSE); + TRKReleaseMutex(msg); + } +} + +void TRKResetBuffer(TRKBuffer* msg, u8 keepData) +{ + msg->length = 0; + msg->position = 0; + + if (!keepData) { + TRK_memset(msg->data, 0, TRKMSGBUF_SIZE); + } +} + +DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos) +{ + DSError error = DS_NoError; + + if (pos > 0x880) { + error = DS_MessageBufferOverflow; + } else { + msg->position = pos; + // If the new position is past the current length, + // update the length + if (pos > msg->length) { + msg->length = pos; + } + } + + return error; +} + +#pragma dont_inline on +DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length) +{ + DSError error = DS_NoError; // r31 + u32 bytesLeft; + + // Return if no bytes to append + if (length == 0) { + return DS_NoError; + } + + bytesLeft = 0x880 - msg->position; + + // If there isn't enough space left in the buffer, change the number + // of bytes to append to the remaning number of bytes + if (bytesLeft < length) { + error = DS_MessageBufferOverflow; + length = bytesLeft; + } + + if (length == 1) { + // If the length of bytes to append is 1, just copy the byte over + msg->data[msg->position] = ((u8*)data)[0]; + } else { + // Otherwise, use memcpy + TRK_memcpy(msg->data + msg->position, data, length); + } + + // Update the position and length + msg->position += length; + msg->length = msg->position; + + return error; +} +#pragma dont_inline reset + +DSError TRKReadBuffer(TRKBuffer* msg, void* data, size_t length) +{ + DSError error = DS_NoError; + unsigned int + bytesLeft; // this has to be unsigned int not u32 to match lmfao. + + // Return if no bytes to read + if (length == 0) { + return DS_NoError; + } + + bytesLeft = msg->length - msg->position; + + // If the number of bytes to read exceeds the buffer length, change + // the length to the remaining number of bytes + if (length > bytesLeft) { + error = DS_MessageBufferReadError; + length = bytesLeft; + } + + TRK_memcpy(data, msg->data + msg->position, length); + msg->position += length; + return error; +} + +DSError TRKAppendBuffer1_ui16(TRKBuffer* buffer, const u16 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[1]; + bigEndianData[1] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer1_ui32(TRKBuffer* buffer, const u32 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[3]; + bigEndianData[1] = byteData[2]; + bigEndianData[2] = byteData[1]; + bigEndianData[3] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer1_ui64(TRKBuffer* buffer, const u64 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[7]; + bigEndianData[1] = byteData[6]; + bigEndianData[2] = byteData[5]; + bigEndianData[3] = byteData[4]; + bigEndianData[4] = byteData[3]; + bigEndianData[5] = byteData[2]; + bigEndianData[6] = byteData[1]; + bigEndianData[7] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer_ui8(TRKBuffer* buffer, const u8* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKAppendBuffer1_ui8(buffer, data[i]); + } + + return err; +} + +DSError TRKAppendBuffer_ui32(TRKBuffer* buffer, const u32* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKAppendBuffer1_ui32(buffer, data[i]); + } + + return err; +} + +DSError TRKReadBuffer1_ui8(TRKBuffer* buffer, u8* data) +{ + return TRKReadBuffer(buffer, (void*)data, 1); +} + +DSError TRKReadBuffer1_ui16(TRKBuffer* buffer, u16* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == DS_NoError) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[1]; + byteData[1] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer1_ui32(TRKBuffer* buffer, u32* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == DS_NoError) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[3]; + byteData[1] = bigEndianData[2]; + byteData[2] = bigEndianData[1]; + byteData[3] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer1_ui64(TRKBuffer* buffer, u64* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == 0) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[7]; + byteData[1] = bigEndianData[6]; + byteData[2] = bigEndianData[5]; + byteData[3] = bigEndianData[4]; + byteData[4] = bigEndianData[3]; + byteData[5] = bigEndianData[2]; + byteData[6] = bigEndianData[1]; + byteData[7] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer_ui8(TRKBuffer* buffer, u8* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKReadBuffer1_ui8(buffer, &(data[i])); + } + + return err; +} + +DSError TRKReadBuffer_ui32(TRKBuffer* buffer, u32* data, int count) +{ + DSError err; + s32 i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKReadBuffer1_ui32(buffer, &(data[i])); + } + + return err; +} diff --git a/src/TRK_MINNOW_DOLPHIN/msghndlr.c b/src/TRK_MINNOW_DOLPHIN/msghndlr.c new file mode 100644 index 00000000..c8ede7e7 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msghndlr.c @@ -0,0 +1,724 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +BOOL IsTRKConnected; + +BOOL GetTRKConnected() +{ + return IsTRKConnected; +} + +void SetTRKConnected(BOOL connected) +{ + IsTRKConnected = connected; +} + +static void TRKMessageIntoReply(TRKBuffer* buffer, u8 ackCmd, + DSReplyError errSentInAck) +{ + TRKResetBuffer(buffer, 1); + + TRKAppendBuffer1_ui8(buffer, ackCmd); + TRKAppendBuffer1_ui8(buffer, errSentInAck); +} + +DSError TRKSendACK(TRKBuffer* buffer) +{ + DSError err; + int ackTries; + + ackTries = 3; + do { + err = TRKMessageSend((TRK_Msg*)buffer); + --ackTries; + } while (err != DS_NoError && ackTries > 0); + + return err; +} + +DSError TRKStandardACK(TRKBuffer* buffer, MessageCommandID commandID, + DSReplyError replyError) +{ + TRKMessageIntoReply(buffer, commandID, replyError); + return TRKSendACK(buffer); +} + +DSError TRKDoUnsupported(TRKBuffer* buffer) +{ + return TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedCommandError); +} + +DSError TRKDoConnect(TRKBuffer* buffer) +{ + SetTRKConnected(TRUE); + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); +} + +DSError TRKDoDisconnect(TRKBuffer* buffer) +{ + DSError error = DS_NoError; + TRKEvent event; + SetTRKConnected(FALSE); + + if ((error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError)) + == DS_NoError) { + TRKConstructEvent(&event, 1); + TRKPostEvent(&event); + } + return error; +} + +DSError TRKDoReset(TRKBuffer* buffer) +{ + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + __TRK_reset(); + return DS_NoError; +} + +DSError TRKDoVersions(TRKBuffer* buffer) +{ + DSError error; + DSVersions versions; + + if (buffer->length != 1) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + } else { + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + error = TRKTargetVersions(&versions); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.kernelMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.kernelMinor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.protocolMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.protocolMinor); + + if (error != DS_NoError) + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + error = TRKSendACK(buffer); + } +} + +DSError TRKDoSupportMask(TRKBuffer* buffer) +{ + DSError error; + u8 mask[32]; + + if (buffer->length != 1) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + } else { + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + error = TRKTargetSupportMask(mask); + + if (error == DS_NoError) + error = TRKAppendBuffer(buffer, mask, 32); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, 2); + + if (error != DS_NoError) + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + TRKSendACK(buffer); + } +} + +DSError TRKDoCPUType(TRKBuffer* buffer) +{ + DSError error; + DSCPUType cputype; + + if (buffer->length != 1) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + error = TRKTargetCPUType(&cputype); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.cpuMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.cpuMinor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.bigEndian); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.defaultTypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.fpTypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.extended1TypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.extended2TypeSize); + + if (error != DS_NoError) + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + error = TRKSendACK(buffer); +} + +DSError TRKDoReadMemory(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + u8 tempBuf[0x800]; + u32 msg_start; + u32 length; + u16 msg_length; + u8 msg_command; + u8 msg_options; + + if (buffer->length != 8) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_length); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + + if (msg_options & 2) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedOptionError); + return error; + } + + if (msg_length > 0x800) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return error; + } + + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error == DS_NoError) { + length = (u32)msg_length; + error = TRKTargetAccessMemory( + tempBuf, msg_start, &length, + (msg_options & 8) ? MEMACCESS_UserMemory : MEMACCESS_DebuggerMemory, + 1); + msg_length = (u16)length; + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, msg_length); + if (error == DS_NoError) + error = TRKAppendBuffer(buffer, tempBuf, length); + } + + if (error != DS_NoError) { + switch (error) { + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidMemory: + replyError = DSREPLY_InvalidMemoryRange; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + break; + } + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + + return error; +} + +DSError TRKDoWriteMemory(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + u8 tmpBuffer[0x800]; + u32 msg_start; + u32 length; + u16 msg_length; + u8 msg_command; + u8 msg_options; + + if (buffer->length <= 8) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_length); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + + if (msg_options & 2) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedOptionError); + return error; + } + + if ((buffer->length != msg_length + 8) || (msg_length > 0x800)) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + } else { + if (error == DS_NoError) { + length = (u32)msg_length; + error = TRKReadBuffer(buffer, tmpBuffer, length); + if (error == DS_NoError) { + error = TRKTargetAccessMemory(tmpBuffer, msg_start, &length, + (msg_options & 8) + ? MEMACCESS_UserMemory + : MEMACCESS_DebuggerMemory, + FALSE); + } + msg_length = (u16)length; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, msg_length); + + if (error != DS_NoError) { + switch (error) { + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidMemory: + replyError = DSREPLY_InvalidMemoryRange; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + break; + } + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + } + + return error; +} + +DSError TRKDoReadRegisters(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + DSMessageRegisterOptions options; + u32 registerDataLength; + u16 msg_firstRegister; + u16 msg_lastRegister; + u8 msg_command; + u8 msg_options; + + if (buffer->length != 6) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_firstRegister); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_lastRegister); + + if (msg_firstRegister > msg_lastRegister) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidRegisterRange); + return; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + options = (DSMessageRegisterOptions)(msg_options & 7); + switch (options) { + case DSREG_Default: + error = TRKTargetAccessDefault(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + case DSREG_FP: + error = TRKTargetAccessFP(msg_firstRegister, msg_lastRegister, buffer, + ®isterDataLength, TRUE); + break; + case DSREG_Extended1: + error = TRKTargetAccessExtended1(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + case DSREG_Extended2: + error = TRKTargetAccessExtended2(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + default: + error = DS_UnsupportedError; + break; + } + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyError = DSREPLY_UnsupportedOptionError; + break; + case DS_InvalidRegister: + replyError = DSREPLY_InvalidRegisterRange; + break; + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } +} + +DSError TRKDoWriteRegisters(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + DSMessageRegisterOptions options; + u32 registerDataLength; + u16 msg_firstRegister; + u16 msg_lastRegister; + u8 msg_command; + u8 msg_options; + + if (buffer->length <= 6) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_firstRegister); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_lastRegister); + + if (msg_firstRegister > msg_lastRegister) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidRegisterRange); + return; + } + + options = (DSMessageRegisterOptions)msg_options; + switch (options) { + case DSREG_Default: + error = TRKTargetAccessDefault(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + case DSREG_FP: + error = TRKTargetAccessFP(msg_firstRegister, msg_lastRegister, buffer, + ®isterDataLength, FALSE); + break; + case DSREG_Extended1: + error = TRKTargetAccessExtended1(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + case DSREG_Extended2: + error = TRKTargetAccessExtended2(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + default: + error = DS_UnsupportedError; + break; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyError = DSREPLY_UnsupportedOptionError; + break; + case DS_InvalidRegister: + replyError = DSREPLY_InvalidRegisterRange; + break; + case DS_MessageBufferReadError: + replyError = DSREPLY_PacketSizeError; + break; + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } +} + +DSError TRKDoFlushCache(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyErr; + u32 msg_start; + u32 msg_end; + u8 msg_command; + u8 msg_options; + + if (buffer->length != 10) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_end); + + if (msg_start > msg_end) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidMemoryRange); + return; + } + + if (error == DS_NoError) + error = TRKTargetFlushCache(msg_options, (void*)msg_start, + (void*)msg_end); + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyErr = DSREPLY_UnsupportedOptionError; + break; + default: + replyErr = DSREPLY_CWDSError; + break; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyErr); + } else { + error = TRKSendACK(buffer); + } +} + +DSError TRKDoContinue(TRKBuffer* buffer) +{ + DSError error; + + error = TRKTargetStopped(); + if (error == DS_NoError) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); + return; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + if (error == DS_NoError) + error = TRKTargetContinue(); +} + +DSError TRKDoStep(TRKBuffer* buffer) +{ + DSError error; + u8 msg_command; + u8 msg_options; + u8 msg_count; + u32 msg_rangeStart; + u32 msg_rangeEnd; + u32 pc; + + if (buffer->length < 3) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + switch (msg_options) { + case DSSTEP_IntoCount: + case DSSTEP_OverCount: + if (error == DS_NoError) + TRKReadBuffer1_ui8(buffer, &msg_count); + if (msg_count >= 1) { + break; + } + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return; + case DSSTEP_IntoRange: + case DSSTEP_OverRange: + if (buffer->length != 10) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_rangeStart); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_rangeEnd); + + pc = TRKTargetGetPC(); + if (pc >= msg_rangeStart && pc <= msg_rangeEnd) { + break; + } + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return; + default: + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_UnsupportedOptionError); + return; + } + + if (!TRKTargetStopped()) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); + return; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + if (error == DS_NoError) + switch (msg_options) { + case DSSTEP_IntoCount: + case DSSTEP_OverCount: + error = TRKTargetSingleStep(msg_count, + (msg_options == DSSTEP_OverCount)); + break; + case DSSTEP_IntoRange: + case DSSTEP_OverRange: + error = TRKTargetStepOutOfRange( + msg_rangeStart, msg_rangeEnd, + (msg_options == DSSTEP_OverRange)); + break; + } +} + +DSError TRKDoStop(TRKBuffer* b) +{ + DSReplyError replyError; + + switch (TRKTargetStop()) { + case DS_NoError: + replyError = DSREPLY_NoError; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_Error; + break; + } + + return TRKStandardACK(b, DSMSG_ReplyACK, replyError); +} + +DSError TRKDoSetOption(TRKBuffer* buffer) { + DSError error; + u8 spA; + u8 sp9; + u8 sp8; + + spA = 0; + sp9 = 0; + sp8 = 0; + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &spA); + if (error == DS_NoError) { + error = TRKReadBuffer1_ui8(buffer, &sp9); + } + if (error == DS_NoError) { + error = TRKReadBuffer1_ui8(buffer, &sp8); + } + if (error != DS_NoError) { + TRKResetBuffer(buffer, 1); + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0x80; + buffer->length++; + } + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 1; + buffer->length++; + } + TRKSendACK(buffer); + } else if (sp9 == 1) { + SetUseSerialIO(sp8); + } + TRKResetBuffer(buffer, 1); + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0x80; + buffer->length++; + } + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0; + buffer->length++; + } + return TRKSendACK(buffer); +} diff --git a/src/TRK_MINNOW_DOLPHIN/mslsupp.c b/src/TRK_MINNOW_DOLPHIN/mslsupp.c new file mode 100755 index 00000000..cbcfc85f --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mslsupp.c @@ -0,0 +1,112 @@ +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include + +// forward declares +DSIOResult __read_file(u32 handle, u8* buffer, size_t* count, void* ref_con); +DSIOResult __write_file(u32 handle, u8* buffer, size_t* count, void* ref_con); +DSIOResult __access_file(u32 handle, u8* buffer, size_t* count, void* ref_con, MessageCommandID cmd); + +/** + * @note Address: 0x800C0B4C + * @note Size: 0xBC + */ +DSIOResult __read_console(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + if (GetUseSerialIO() == 0) { + return DS_IOError; + } + return __read_file(DS_Stdin, buffer, count, ref_con); +} + +/** + * @note Address: 0x800C0A90 + * @note Size: 0xBC + */ +DSIOResult __TRK_write_console(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + if (GetUseSerialIO() == 0) { + return DS_IOError; + } + return __write_file(DS_Stdout, buffer, count, ref_con); +} + +/** + * @note Address: N/A + * @note Size: 0xB4 + */ +DSIOResult __read_file(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + return __access_file(handle, buffer, count, ref_con, DSMSG_ReadFile); +} + +/** + * @note Address: N/A + * @note Size: 0xB4 + */ +DSIOResult __write_file(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + return __access_file(handle, buffer, count, ref_con, DSMSG_WriteFile); +} + +/** + * @note Address: N/A + * @note Size: 0x17C + */ +void __open_file(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xDC + */ +void __position_file(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xE0 + */ +void convertFileMode(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xC0 + */ +DSIOResult __access_file(u32 handle, u8* buffer, size_t* count, void* ref_con, MessageCommandID cmd) +{ + size_t countTemp; + u32 r0; + + if (GetTRKConnected() == DS_NoError) { + return DS_IOError; + } + + countTemp = *count; + r0 = TRKAccessFile(cmd, handle, &countTemp, buffer); + *count = countTemp; + + switch ((u8)r0) { + case DS_IONoError: + return DS_IONoError; + case DS_IOEOF: + return DS_IOEOF; + } + + return DS_IOError; +} + +/** + * @note Address: N/A + * @note Size: 0x1D0 + */ +void __open_temp_file(void) +{ + // UNUSED FUNCTION +} diff --git a/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c b/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c new file mode 100644 index 00000000..37e09501 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c @@ -0,0 +1,7 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" + +DSError TRKInitializeMutex(void*) { return DS_NoError; } + +DSError TRKAcquireMutex(void*) { return DS_NoError; } + +DSError TRKReleaseMutex(void*) { return DS_NoError; } diff --git a/src/TRK_MINNOW_DOLPHIN/notify.c b/src/TRK_MINNOW_DOLPHIN/notify.c new file mode 100644 index 00000000..bd41e2f7 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/notify.c @@ -0,0 +1,47 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +inline DSError TRKDoNotifyStopped_Inline(TRKBuffer* msg, MessageCommandID cmd) { + DSError err; + + if (msg->position >= 0x880) { + err = DS_MessageBufferOverflow; + } else { + msg->data[msg->position++] = cmd; + msg->length+=1; + err = 0; + } + return err; +} + +DSError TRKDoNotifyStopped(MessageCommandID cmd) +{ + DSError err; + int reqIdx; + int bufIdx; + TRKBuffer* msg; + + err = TRKGetFreeBuffer(&bufIdx, &msg); + if (err == DS_NoError) { + err = TRKDoNotifyStopped_Inline(msg, cmd); + + if (err == DS_NoError) { + if (cmd == DSMSG_NotifyStopped) { + TRKTargetAddStopInfo(msg); + } else { + TRKTargetAddExceptionInfo(msg); + } + } + + err = TRKRequestSend(msg, &reqIdx, 2, 3, 1); + if (err == DS_NoError) { + TRKReleaseBuffer(reqIdx); + } + TRKReleaseBuffer(bufIdx); + } + + return err; +} diff --git a/src/TRK_MINNOW_DOLPHIN/nubevent.c b/src/TRK_MINNOW_DOLPHIN/nubevent.c new file mode 100644 index 00000000..a35a43cd --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/nubevent.c @@ -0,0 +1,72 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" + +TRKEventQueue gTRKEventQueue; + +DSError TRKInitializeEventQueue() +{ + TRKInitializeMutex(&gTRKEventQueue); + TRKAcquireMutex(&gTRKEventQueue); + gTRKEventQueue.count = 0; + gTRKEventQueue.next = 0; + gTRKEventQueue.eventID = 0x100; + TRKReleaseMutex(&gTRKEventQueue); + return DS_NoError; +} + +void TRKCopyEvent(TRKEvent* dstEvent, const TRKEvent* srcEvent) +{ + TRK_memcpy(dstEvent, srcEvent, sizeof(TRKEvent)); +} + +BOOL TRKGetNextEvent(TRKEvent* event) +{ + BOOL status = 0; + TRKAcquireMutex(&gTRKEventQueue); + if (0 < gTRKEventQueue.count) { + TRKCopyEvent(event, &gTRKEventQueue.events[gTRKEventQueue.next]); + gTRKEventQueue.count--; + gTRKEventQueue.next++; + if (gTRKEventQueue.next == 2) + gTRKEventQueue.next = 0; + + status = 1; + } + TRKReleaseMutex(&gTRKEventQueue); + return status; +} + +DSError TRKPostEvent(TRKEvent* event) +{ + DSError ret = DS_NoError; + int nextEventID; + + TRKAcquireMutex(&gTRKEventQueue); + + if (gTRKEventQueue.count == 2) { + ret = DS_EventQueueFull; + } else { + nextEventID = (gTRKEventQueue.next + gTRKEventQueue.count) % 2; + TRKCopyEvent(&gTRKEventQueue.events[nextEventID], event); + gTRKEventQueue.events[nextEventID].eventID = gTRKEventQueue.eventID; + gTRKEventQueue.eventID++; + if (gTRKEventQueue.eventID < 0x100) + gTRKEventQueue.eventID = 0x100; + + gTRKEventQueue.count++; + } + + TRKReleaseMutex(&gTRKEventQueue); + return ret; +} + +void TRKConstructEvent(TRKEvent* event, NubEventType eventType) +{ + event->eventType = eventType; + event->eventID = 0; + event->msgBufID = -1; +} + +void TRKDestructEvent(TRKEvent* event) { TRKReleaseBuffer(event->msgBufID); } diff --git a/src/TRK_MINNOW_DOLPHIN/nubinit.c b/src/TRK_MINNOW_DOLPHIN/nubinit.c new file mode 100644 index 00000000..fc08e85e --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/nubinit.c @@ -0,0 +1,80 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +BOOL gTRKBigEndian; + +BOOL TRKInitializeEndian(void); + +DSError TRKInitializeNub(void) +{ + DSError ret; + DSError uartErr; + + ret = TRKInitializeEndian(); + + if (ret == DS_NoError) + usr_put_initialize(); + if (ret == DS_NoError) + ret = TRKInitializeEventQueue(); + if (ret == DS_NoError) + ret = TRKInitializeMessageBuffers(); + if (ret == DS_NoError) + ret = TRKInitializeDispatcher(); + + if (ret == DS_NoError) { + uartErr = TRKInitializeIntDrivenUART(0x0000e100, 1, 0, + (volatile u8**)&gTRKInputPendingPtr); + TRKTargetSetInputPendingPtr(gTRKInputPendingPtr); + if (uartErr != DS_NoError) { + ret = uartErr; + } + } + + if (ret == DS_NoError) + ret = TRKInitializeSerialHandler(); + if (ret == DS_NoError) + ret = TRKInitializeTarget(); + + return ret; +} + +DSError TRKTerminateNub(void) +{ + TRKTerminateSerialHandler(); + return DS_NoError; +} + +void TRKNubWelcome(void) +{ + TRK_board_display("MetroTRK for GAMECUBE v0.10"); + return; +} + +BOOL TRKInitializeEndian(void) +{ + u8 bendian[4]; + BOOL result = FALSE; + gTRKBigEndian = TRUE; + + bendian[0] = 0x12; + bendian[1] = 0x34; + bendian[2] = 0x56; + bendian[3] = 0x78; + + if (*(u32*)bendian == 0x12345678) { + gTRKBigEndian = TRUE; + } else if (*(u32*)bendian == 0x78563412) { + gTRKBigEndian = FALSE; + } else { + result = TRUE; + } + return result; +} diff --git a/src/TRK_MINNOW_DOLPHIN/serpoll.c b/src/TRK_MINNOW_DOLPHIN/serpoll.c new file mode 100644 index 00000000..c21fde38 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/serpoll.c @@ -0,0 +1,141 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +static TRKFramingState gTRKFramingState; + +void* gTRKInputPendingPtr; + +static inline BOOL serpoll_inline_00(TRKBuffer* buffer) { + if (buffer->length < 2) { + TRKStandardACK(buffer, DSMSG_ReplyNAK, DSREPLY_PacketSizeError); + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + return FALSE; + } + buffer->position = 0; + buffer->length--; + return TRUE; +} + +MessageBufferID TRKTestForPacket(void) { + s32 var_r29; + s32 var_r3; + s8 sp8; + s32 temp_r3; + + var_r29 = 0; + var_r3 = TRKReadUARTPoll(&sp8); + while (var_r3 == 0 && var_r29 == 0) { + if (gTRKFramingState.receiveState != DSRECV_InFrame) { + gTRKFramingState.isEscape = FALSE; + } + switch (gTRKFramingState.receiveState) { + case DSRECV_Wait: + if (sp8 == 0x7E) { + var_r29 = TRKGetFreeBuffer(&gTRKFramingState.msgBufID, &gTRKFramingState.buffer); + gTRKFramingState.fcsType = 0; + gTRKFramingState.receiveState = DSRECV_Found; + } + break; + case DSRECV_Found: + if (sp8 == 0x7E) { + break; + } + gTRKFramingState.receiveState = DSRECV_InFrame; + /* fallthrough */ + case DSRECV_InFrame: + if (sp8 == 0x7E) { + if (gTRKFramingState.isEscape) { + TRKStandardACK(gTRKFramingState.buffer, DSMSG_ReplyNAK, DSREPLY_EscapeError); + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + break; + } + if (serpoll_inline_00(gTRKFramingState.buffer)) { + temp_r3 = gTRKFramingState.msgBufID; + gTRKFramingState.msgBufID = -1; + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + return temp_r3; + } + gTRKFramingState.receiveState = DSRECV_Wait; + } else { + if (gTRKFramingState.isEscape) { + sp8 ^= 0x20; + gTRKFramingState.isEscape = FALSE; + } else if (sp8 == 0x7D) { + gTRKFramingState.isEscape = TRUE; + break; + } + var_r29 = TRKAppendBuffer1_ui8(gTRKFramingState.buffer, sp8); + gTRKFramingState.fcsType += sp8; + } + break; + case DSRECV_FrameOverflow: + if (sp8 == 0x7E) { + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + } + break; + } + var_r3 = TRKReadUARTPoll(&sp8); + } + return -1; +} + +void TRKGetInput(void) +{ + TRKBuffer* msgBuffer; + MessageBufferID id; + u8 command; + + id = TRKTestForPacket(); + if (id == -1) + return; + + msgBuffer = TRKGetBuffer(id); + TRKSetBufferPosition(msgBuffer, 0); + TRKReadBuffer1_ui8(msgBuffer, &command); + if (command < DSMSG_ReplyACK) { + TRKProcessInput(id); + } else { + TRKReleaseBuffer(id); + } +} + +void TRKProcessInput(int bufferIdx) +{ + TRKEvent event; + + TRKConstructEvent(&event, NUBEVENT_Request); + gTRKFramingState.msgBufID = -1; + event.msgBufID = bufferIdx; + TRKPostEvent(&event); +} + +DSError TRKInitializeSerialHandler(void) +{ + gTRKFramingState.msgBufID = -1; + gTRKFramingState.receiveState = DSRECV_Wait; + gTRKFramingState.isEscape = FALSE; + + return DS_NoError; +} + +DSError TRKTerminateSerialHandler(void) { return DS_NoError; } diff --git a/src/TRK_MINNOW_DOLPHIN/support.c b/src/TRK_MINNOW_DOLPHIN/support.c new file mode 100644 index 00000000..3f1e54c1 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/support.c @@ -0,0 +1,288 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "stddef.h" +#include "string.h" + +DSError TRKSuppAccessFile(u32 file_handle, u8* data, size_t* count, + DSIOResult* io_result, BOOL need_reply, BOOL read) +{ + DSError error; + int replyBufferId; + TRKBuffer* replyBuffer; + int bufferId; + TRKBuffer* buffer; + u32 length; + u32 done; + u8 replyIOResult; + u16 replyLength; + BOOL exit; + + if (data == NULL || *count == 0) { + return DS_ParameterError; + } + + exit = FALSE; + *io_result = DS_IONoError; + done = 0; + error = DS_NoError; + while (!exit && done < *count && error == DS_NoError && *io_result == DS_IONoError) { + if (*count - done > 0x800) { + length = 0x800; + } else { + length = *count - done; + } + + error = TRKGetFreeBuffer(&bufferId, &buffer); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, read ? DSMSG_ReadFile + : DSMSG_WriteFile); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui32(buffer, file_handle); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, length); + + if (!read && error == DS_NoError) + error = TRKAppendBuffer_ui8(buffer, data + done, length); + + if (error == DS_NoError) { + if (need_reply) { + replyLength = 0; + replyIOResult = 0; + + error = TRKRequestSend(buffer, &replyBufferId, read ? 5 : 5, 3, + !(read && file_handle == 0)); + if (error == DS_NoError) { + replyBuffer = (TRKBuffer*)TRKGetBuffer(replyBufferId); + TRKSetBufferPosition(replyBuffer, 2); + } + + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(replyBuffer, &replyIOResult); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(replyBuffer, &replyLength); + + if (read && error == DS_NoError) { + if (replyBuffer->length != replyLength + 5) { + replyLength = replyBuffer->length - 5; + if (replyIOResult == 0) + replyIOResult = 1; + } + + if (replyLength <= length) + error = TRKReadBuffer_ui8(replyBuffer, data + done, + replyLength); + } + + if (replyLength != length) { + if ((!read || replyLength >= length) && replyIOResult == 0) + replyIOResult = 1; + length = replyLength; + exit = TRUE; + } + + *io_result = (DSIOResult)replyIOResult; + TRKReleaseBuffer(replyBufferId); + } else { + error = TRKMessageSend((TRK_Msg*)buffer); + } + } + + TRKReleaseBuffer(bufferId); + done += length; + } + + *count = done; + return error; +} + +DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, int p3) +{ + int error = DS_NoError; + TRKBuffer* buffer; + u32 timer; + int tries; + u8 msg_command; + u8 msg_error; + BOOL badReply = TRUE; + + *bufferId = -1; + + for (tries = p2 + 1; tries != 0 && *bufferId == -1 && error == DS_NoError; + tries--) { + error = TRKMessageSend((TRK_Msg*)msgBuf); + if (error == DS_NoError) { + if (p3) { + timer = 0; + } + + while (TRUE) { + do { + *bufferId = TRKTestForPacket(); + if (*bufferId != -1) + break; + } while (!p3 || ++timer < 79999980); + + if (*bufferId == -1) + break; + + badReply = FALSE; + + buffer = TRKGetBuffer(*bufferId); + TRKSetBufferPosition(buffer, 0); + + if ((error = TRKReadBuffer1_ui8(buffer, &msg_command)) + != DS_NoError) + break; + + if (msg_command >= DSMSG_ReplyACK) + break; + + TRKProcessInput(*bufferId); + *bufferId = -1; + } + + if (*bufferId != -1) { + if (buffer->length < p1) { + badReply = TRUE; + } + if (error == DS_NoError && !badReply) { + error = TRKReadBuffer1_ui8(buffer, &msg_error); + } + if (error == DS_NoError && !badReply) { + if (msg_command != DSMSG_ReplyACK + || msg_error != DSREPLY_NoError) { + badReply = TRUE; + } + } + if (error != DS_NoError || badReply) { + TRKReleaseBuffer(*bufferId); + *bufferId = -1; + } + } + } + } + + if (*bufferId == -1) { + error = DS_Error800; + } + + return error; +} + +DSError HandleOpenFileSupportRequest(const char* path, u8 replyError, u32* param_3, u8* ioResult) { + int sp10; + int spC; + TRKBuffer* sp8; + TRKBuffer* var_r31; + DSError var_r26; + + *param_3 = 0; + var_r26 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui8(sp8, 0xD2); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui8(sp8, replyError); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui16(sp8, strlen(path) + 1); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer_ui8(sp8, (u8*) path, strlen(path) + 1); + } + if (var_r26 == DS_NoError) { + *ioResult = 0; + var_r26 = TRKRequestSend(sp8, &sp10, 7, 3, 0); + if (var_r26 == DS_NoError) { + var_r31 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r31, 2); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKReadBuffer1_ui8(var_r31, ioResult); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKReadBuffer1_ui32(var_r31, param_3); + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r26; +} + +DSError HandleCloseFileSupportRequest(int replyError, u8* ioResult) { + int sp10; + int spC; + DSError var_r31; + TRKBuffer* sp8; + TRKBuffer* var_r30; + + var_r31 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r31 == DS_NoError) { + var_r31 = TRKAppendBuffer1_ui8(sp8, 0xD3); + } + if (var_r31 == DS_NoError) { + var_r31 = TRKAppendBuffer1_ui32(sp8, replyError); + } + if (var_r31 == DS_NoError) { + *ioResult = DS_IONoError; + var_r31 = TRKRequestSend(sp8, &sp10, 3, 3, 0); + if (var_r31 == DS_NoError) { + var_r30 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r30, 2); + } + if (var_r31 == DS_NoError) { + var_r31 = TRKReadBuffer1_ui8(var_r30, ioResult); + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r31; +} + +DSError HandlePositionFileSupportRequest(u32 replyErr, u32* param_2, u8 param_3, u8* ioResult) { + int sp10; + int spC; + TRKBuffer* sp8; + TRKBuffer* var_r31; + DSError var_r27; + + var_r27 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui8(sp8, 0xD4); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui32(sp8, replyErr); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui32(sp8, *param_2); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui8(sp8, param_3); + } + if (var_r27 == DS_NoError) { + *ioResult = DS_IONoError; + var_r27 = TRKRequestSend(sp8, &sp10, 3, 3, 0); + if (var_r27 == DS_NoError) { + var_r31 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r31, 2); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKReadBuffer1_ui8(var_r31, ioResult); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKReadBuffer1_ui32(var_r31, param_2); + } else { + *param_2 = -1; + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r27; +} diff --git a/src/TRK_MINNOW_DOLPHIN/targcont.c b/src/TRK_MINNOW_DOLPHIN/targcont.c new file mode 100644 index 00000000..1827ae1a --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targcont.c @@ -0,0 +1,12 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +DSError TRKTargetContinue(void) +{ + TRKTargetSetStopped(0); + UnreserveEXI2Port(); + TRKSwapAndGo(); + ReserveEXI2Port(); + return 0; +} diff --git a/src/TRK_MINNOW_DOLPHIN/target_options.c b/src/TRK_MINNOW_DOLPHIN/target_options.c new file mode 100755 index 00000000..22cc3e98 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/target_options.c @@ -0,0 +1,11 @@ +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +static u8 bUseSerialIO; + +void SetUseSerialIO(u8 sio) { + bUseSerialIO = sio; +} + +u8 GetUseSerialIO(void) { + return bUseSerialIO; +} diff --git a/src/TRK_MINNOW_DOLPHIN/targimpl.c b/src/TRK_MINNOW_DOLPHIN/targimpl.c new file mode 100644 index 00000000..ba77ff35 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targimpl.c @@ -0,0 +1,1202 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h" +#include "stddef.h" +#include "string.h" + +typedef struct memRange { + u8* start; + u8* end; + BOOL readable; + BOOL writeable; +} memRange; + +const memRange gTRKMemMap[1] = { { (u8*)0, (u8*)-1, TRUE, TRUE } }; + +typedef struct StopInfo_PPC { + u32 PC; + u32 PCInstruction; + u16 exceptionID; +} StopInfo_PPC; + +typedef struct TRKExceptionStatus { + StopInfo_PPC exceptionInfo; + u8 inTRK; + u8 exceptionDetected; +} TRKExceptionStatus; + +typedef struct TRKStepStatus { + BOOL active; // 0x0 + DSMessageStepOptions type; // 0x4 + u32 count; // 0x8 + u32 rangeStart; // 0xC + u32 rangeEnd; // 0x10 +} TRKStepStatus; + +ProcessorRestoreFlags_PPC gTRKRestoreFlags = { FALSE, FALSE }; + +static TRKExceptionStatus gTRKExceptionStatus = { { 0, 0, 0 }, TRUE, 0 }; + +static TRKStepStatus gTRKStepStatus = { FALSE, DSSTEP_IntoCount, 0, 0 }; + +static u16 TRK_saved_exceptionID = 0; +ProcessorState_PPC gTRKCPUState; +TRKState gTRKState; + +typedef unsigned char u128[16]; +u128 TRKvalue128_temp; + +Default_PPC gTRKSaveState; + +// Instruction macros +#define INSTR_NOP 0x60000000 +#define INSTR_BLR 0x4E800020 +#define INSTR_PSQ_ST(psr, offset, rDest, w, gqr) \ + (0xF0000000 | (psr << 21) | (rDest << 16) | (w << 15) | (gqr << 12) \ + | offset) +#define INSTR_PSQ_L(psr, offset, rSrc, w, gqr) \ + (0xE0000000 | (psr << 21) | (rSrc << 16) | (w << 15) | (gqr << 12) | offset) +#define INSTR_STW(rSrc, offset, rDest) \ + (0x90000000 | (rSrc << 21) | (rDest << 16) | offset) +#define INSTR_LWZ(rDest, offset, rSrc) \ + (0x80000000 | (rDest << 21) | (rSrc << 16) | offset) +#define INSTR_STFD(fprSrc, offset, rDest) \ + (0xD8000000 | (fprSrc << 21) | (rDest << 16) | offset) +#define INSTR_LFD(fprDest, offset, rSrc) \ + (0xC8000000 | (fprDest << 21) | (rSrc << 16) | offset) +#define INSTR_MFSPR(rDest, spr) \ + (0x7C000000 | (rDest << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x2A6) +#define INSTR_MTSPR(spr, rSrc) \ + (0x7C000000 | (rSrc << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x3A6) + +#define DSFetch_u32(_p_) (*((u32*)_p_)) +#define DSFetch_u64(_p_) (*((u64*)_p_)) + +DSError TRKPPCAccessSPR(void* value, u32 spr_register_num, BOOL read); +DSError TRKPPCAccessPairedSingleRegister(void* srcDestPtr, u32 psr, BOOL read); +DSError TRKPPCAccessFPRegister(void* srcDestPtr, u32 fpr, BOOL read); +DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read); +static void TRKExceptionHandler(u16); +void TRKInterruptHandlerEnableInterrupts(void); +void WriteFPSCR(register f64*); +void ReadFPSCR(register f64*); +void __TRK_set_MSR(u32 msr); +u32 __TRK_get_MSR(); +static void TRK_ppc_memcpy(register void* dest, register const void* src, + register int n, register u32 param_4, + register u32 param_5); + +void TRKRestoreExtended1Block(); +void TRKUARTInterruptHandler(); +DSError TRKTargetReadInstruction(void* data, u32 start); + +static BOOL TRKTargetCheckStep(); + +asm u32 __TRK_get_MSR() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + mfmsr r3 + blr +#endif // clang-format on +} + +asm void __TRK_set_MSR(register u32 msr) { +#ifdef __MWERKS__ // clang-format off + nofralloc + mtmsr msr + blr +#endif // clang-format on +} + +#pragma dont_inline on +DSError TRKValidMemory32(const void* addr, size_t length, + ValidMemoryOptions readWriteable) +{ + DSError err = DS_InvalidMemory; /* assume range is invalid */ + + const u8* start; + const u8* end; + + s32 i; + + /* + ** Get start and end addresses for the memory range and + ** verify that they are reasonable. + */ + + start = (const u8*)addr; + end = ((const u8*)addr + (length - 1)); + + if (end < start) + return DS_InvalidMemory; + + /* + ** Iterate through the gTRKMemMap array to determine if the requested + ** range falls within the valid ranges in the map. + */ + + for (i = 0; (i < (s32)(sizeof(gTRKMemMap) / sizeof(memRange))); i++) { + /* + ** If the requested range is not completely above + ** the valid range AND it is not completely below + ** the valid range then it must overlap somewhere. + ** If the requested range overlaps with one of the + ** valid ranges, do some additional checking. + ** + */ + + if ((start <= (const u8*)gTRKMemMap[i].end) + && (end >= (const u8*)gTRKMemMap[i].start)) { + /* + ** First, verify that the read/write attributes are + ** acceptable. If so, then recursively check any + ** part of the requested range that falls before or + ** after the valid range. + */ + + if (((readWriteable == VALIDMEM_Readable) + && !gTRKMemMap[i].readable) + || ((readWriteable == VALIDMEM_Writeable) + && !gTRKMemMap[i].writeable)) { + err = DS_InvalidMemory; + } else { + err = DS_NoError; + + /* + ** If a portion of the requested range falls before + ** the current valid range, then recursively + ** check it. + */ + + if (start < (const u8*)gTRKMemMap[i].start) + err = TRKValidMemory32( + start, (u32)((const u8*)gTRKMemMap[i].start - start), + readWriteable); + + /* + ** If a portion of the requested range falls after + ** the current valid range, then recursively + ** check it. + ** Note: Only do this step if the previous check + ** did not detect invalid access. + */ + + if ((err == DS_NoError) && (end > (const u8*)gTRKMemMap[i].end)) + err = TRKValidMemory32( + (const u8*)gTRKMemMap[i].end, + (u32)(end - (const u8*)gTRKMemMap[i].end), + readWriteable); + } + + break; + } + } + + return err; +} +#pragma dont_inline reset + +static asm void TRK_ppc_memcpy(register void* dest, register const void* src, + register int n, register u32 param_4, + register u32 param_5) { +#ifdef __MWERKS__ // clang-format off +#define msr r8 +#define byte r9 +#define count r10 + nofralloc + + mfmsr msr + li count, 0 + +top_loop: + cmpw count, n + beq out_loop + + mtmsr param_5 + sync + + lbzx byte, count, src + + mtmsr param_4 + sync + + stbx byte, count, dest + + addi count, count, 1 + + b top_loop +out_loop: + mtmsr msr + sync + + blr +#undef count +#undef byte +#undef msr +#endif // clang-format on +} + +#pragma dont_inline on +DSError TRKTargetAccessMemory(void* data, u32 start, size_t* length, + MemoryAccessOptions accessOptions, BOOL read) +{ + DSError error; + u32 target_msr; + void* addr; + u32 trk_msr; + TRKExceptionStatus tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + addr = (void*)TRKTargetTranslate(start); + error = TRKValidMemory32(addr, *length, + read ? VALIDMEM_Readable : VALIDMEM_Writeable); + + if (error != DS_NoError) { + *length = 0; + } else { + target_msr = __TRK_get_MSR(); + trk_msr = target_msr | gTRKCPUState.Extended1.MSR & 0x10; + + if (read) { + TRK_ppc_memcpy(data, addr, *length, target_msr, trk_msr); + } else { + TRK_ppc_memcpy(addr, data, *length, trk_msr, target_msr); + TRK_flush_cache(addr, *length); + if ((void*)start != addr) { + TRK_flush_cache((void*)start, *length); + } + } + } + + if (gTRKExceptionStatus.exceptionDetected) { + *length = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} +#pragma dont_inline reset + +DSError TRKTargetReadInstruction(void* data, u32 start) +{ + DSError error; + size_t registersLength = 4; + + error = TRKTargetAccessMemory(data, start, ®istersLength, + MEMACCESS_UserMemory, TRUE); + + if (error == DS_NoError && registersLength != 4) { + error = DS_InvalidMemory; + } + + return error; +} + +DSError TRKTargetAccessDefault(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read) +{ + DSError error; + u32 count; + u32* data; + TRKExceptionStatus tempExceptionStatus; + + if (lastRegister > 0x24) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + + gTRKExceptionStatus.exceptionDetected = FALSE; + + data = gTRKCPUState.Default.GPR + firstRegister; + + count = (lastRegister - firstRegister) + 1; + + *registersLengthPtr = count * sizeof(u32); + + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + error = TRKReadBuffer_ui32(b, data, count); + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessFP(u32 firstRegister, u32 lastRegister, TRKBuffer* b, + size_t* registersLengthPtr, BOOL read) +{ + u64 temp; + DSError error; + TRKExceptionStatus tempExceptionStatus; + u32 current; + + if (lastRegister > 0x21) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + __TRK_set_MSR(__TRK_get_MSR() | 0x2000); + + *registersLengthPtr = 0; + error = DS_NoError; + + for (current = firstRegister; + (current <= lastRegister) && (error == DS_NoError); + current++, *registersLengthPtr += sizeof(f64)) { + if (read) { + TRKPPCAccessFPRegister(&temp, current, read); + error = TRKAppendBuffer1_ui64(b, temp); + } else { + TRKReadBuffer1_ui64(b, &temp); + error = TRKPPCAccessFPRegister(&temp, current, read); + } + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessExtended1(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read) +{ + TRKExceptionStatus tempExceptionStatus; + int error; + u32* data; + int count; + + if (lastRegister > 0x60) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + *registersLengthPtr = 0; + + if (firstRegister <= lastRegister) { + data = (u32*)&gTRKCPUState.Extended1 + firstRegister; + count = lastRegister - firstRegister + 1; + *registersLengthPtr += count * sizeof(u32); + + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + if (data <= &gTRKCPUState.Extended1.TBU + && (data + count - 1) >= &gTRKCPUState.Extended1.TBL) { + gTRKRestoreFlags.TBR = 1; + } + + if (data <= &gTRKCPUState.Extended1.DEC + && (data + count - 1) >= &gTRKCPUState.Extended1.DEC) { + gTRKRestoreFlags.DEC = 1; + } + error = TRKReadBuffer_ui32(b, data, count); + } + } + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessExtended2(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registerStorageSize, + BOOL read) +{ + TRKExceptionStatus savedException; + u32 i; + u32 value_buf0[1]; + u32 value_buf[2]; + DSError err; + u32 access_func[10]; + + if (lastRegister > 0x1f) + return DS_InvalidRegister; + + /* + ** Save any existing exception status and clear the exception flag. + ** This allows detection of exceptions that occur ONLY within this + ** function. + */ + + savedException = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + TRKPPCAccessSPR(value_buf0, SPR_HID2, TRUE); + + value_buf0[0] |= 0xA0000000; + TRKPPCAccessSPR(value_buf0, SPR_HID2, FALSE); + + value_buf0[0] = 0; + TRKPPCAccessSPR(value_buf0, SPR_GQR0, FALSE); + + *registerStorageSize = 0; + err = DS_NoError; + + for (i = firstRegister; (i <= lastRegister) && (err == DS_NoError); i++) { + if (read) { + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + err = TRKAppendBuffer1_ui64(b, *(u64*)value_buf); + } else { + err = TRKReadBuffer1_ui64(b, (u64*)value_buf); + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + } + + *registerStorageSize += sizeof(u64); + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registerStorageSize = 0; + err = DS_CWDSException; + } + + gTRKExceptionStatus = savedException; + + return err; +} + +DSError TRKTargetVersions(DSVersions* versions) +{ + versions->kernelMajor = 0; + versions->kernelMinor = 10; + versions->protocolMajor = 1; + versions->protocolMinor = 10; + return DS_NoError; +} + +DSError TRKTargetSupportMask(u8 mask[32]) +{ + mask[0] = 0x7a; + mask[1] = 0; + mask[2] = 0x4f; + mask[3] = 7; + mask[4] = 0; + mask[5] = 0; + mask[6] = 0; + mask[7] = 0; + mask[8] = 0; + mask[9] = 0; + mask[10] = 0; + mask[0xb] = 0; + mask[0xc] = 0; + mask[0xd] = 0; + mask[0xe] = 0; + mask[0xf] = 0; + mask[0x10] = 1; + mask[0x11] = 0; + mask[0x12] = 3; + mask[0x13] = 0; + mask[0x14] = 0; + mask[0x15] = 0; + mask[0x16] = 0; + mask[0x17] = 0; + mask[0x18] = 0; + mask[0x19] = 0; + mask[0x1a] = 3; + mask[0x1b] = 0; + mask[0x1c] = 0; + mask[0x1d] = 0; + mask[0x1e] = 0; + mask[0x1f] = 0x80; + return DS_NoError; +} + +extern BOOL gTRKBigEndian; + +DSError TRKTargetCPUType(DSCPUType* cpuType) +{ + cpuType->cpuMajor = 0; + cpuType->cpuMinor = TRKTargetCPUMinorType(); + cpuType->bigEndian = gTRKBigEndian; + cpuType->defaultTypeSize = 4; + cpuType->fpTypeSize = 8; + cpuType->extended1TypeSize = 4; + cpuType->extended2TypeSize = 8; + return DS_NoError; +} + +asm void TRKInterruptHandler() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + mtsrr0 r2 + mtsrr1 r4 + mfsprg r4, 3 + mfcr r2 + mtsprg 3, r2 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.MSR(r2) + ori r2, r2, 0x8002 + xori r2, r2, 0x8002 + sync + mtmsr r2 + sync + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + sth r3, 0(r2) + cmpwi r3, 0x500 + bne L_802CF694 + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + mflr r3 + stw r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + bl TRKUARTInterruptHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lwz r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + mtlr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF678 + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 1 + beq L_802CF678 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b L_802CF694 +L_802CF678: + lis r2, gTRKSaveState@h + ori r2, r2, gTRKSaveState@l + lwz r3, Default_PPC.CR(r2) + mtcrf 0xff, r3 + lwz r3, Default_PPC.GPR[3](r2) + lwz r2, Default_PPC.GPR[2](r2) + rfi +L_802CF694: + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + lhz r3, 0(r2) + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 0 + bne TRKExceptionHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + stw r0, ProcessorState_PPC.Default.GPR[0](r2) + stw r1, ProcessorState_PPC.Default.GPR[1](r2) + mfsprg r0, 1 + stw r0, ProcessorState_PPC.Default.GPR[2](r2) + sth r3, ProcessorState_PPC.Extended1.exceptionID(r2) + sth r3, (ProcessorState_PPC.Extended1.exceptionID + 2)(r2) + mfsprg r0, 2 + stw r0, ProcessorState_PPC.Default.GPR[3](r2) + stmw r4, ProcessorState_PPC.Default.GPR[4](r2) + mfsrr0 r27 + mflr r28 + mfsprg r29, 3 + mfctr r30 + mfxer r31 + stmw r27, ProcessorState_PPC.Default.PC(r2) + bl TRKSaveExtended1Block + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 1 + stb r3, TRKExceptionStatus.inTRK(r2) + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent +#endif // clang-format on +} + +static asm void TRKExceptionHandler(u16) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + sth r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + mfsrr0 r3 + stw r3, TRKExceptionStatus.exceptionInfo.PC(r2) + lhz r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + cmpwi r3, 0x200 + beq LAB_00010ba4 + cmpwi r3, 0x300 + beq LAB_00010ba4 + cmpwi r3, 0x400 + beq LAB_00010ba4 + cmpwi r3, 0x600 + beq LAB_00010ba4 + cmpwi r3, 0x700 + beq LAB_00010ba4 + cmpwi r3, 0x800 + beq LAB_00010ba4 + cmpwi r3, 0x1000 + beq LAB_00010ba4 + cmpwi r3, 0x1100 + beq LAB_00010ba4 + cmpwi r3, 0x1200 + beq LAB_00010ba4 + cmpwi r3, 0x1300 + beq LAB_00010ba4 + b LAB_00010bb0 +LAB_00010ba4: + mfsrr0 r3 + addi r3, r3, 0x4 + mtsrr0 r3 +LAB_00010bb0: + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0x1 + stb r3, TRKExceptionStatus.exceptionDetected(r2) + mfsprg r3, 3 + mtcrf 0xff, r3 + mfsprg r2, 1 + mfsprg r3, 2 + rfi +#endif // clang-format on +} + +void TRKPostInterruptEvent(void) +{ + NubEventType eventType; + u32 inst; + TRKEvent event; + + if (gTRKState.inputActivated) { + gTRKState.inputActivated = FALSE; + } else { + switch (gTRKCPUState.Extended1.exceptionID & 0xFFFF) { + case 0xd00: + case 0x700: + TRKTargetReadInstruction(&inst, gTRKCPUState.Default.PC); + + if (inst == 0xfe00000) { + eventType = NUBEVENT_Support; + } else { + eventType = NUBEVENT_Breakpoint; + } + break; + default: + eventType = NUBEVENT_Exception; + break; + } + + TRKConstructEvent(&event, eventType); + TRKPostEvent(&event); + } +} + +asm void TRKSwapAndGo() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r3, gTRKState@h + ori r3, r3, gTRKState@l + stmw r0, TRKState_PPC.GPR[0](r3) + mfmsr r0 + stw r0, TRKState_PPC.MSR(r3) + mflr r0 + stw r0, TRKState_PPC.LR(r3) + mfctr r0 + stw r0, TRKState_PPC.CTR(r3) + mfxer r0 + stw r0, TRKState_PPC.XER(r3) + mfdsisr r0 + stw r0, TRKState_PPC.DSISR(r3) + mfdar r0 + stw r0, TRKState_PPC.DAR(r3) + li r1, -0x7ffe + nor r1, r1, r1 + mfmsr r3 + and r3, r3, r1 + mtmsr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF930 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b TRKInterruptHandlerEnableInterrupts +L_802CF930: + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0 + stb r3, 0xc(r2) + bl TRKRestoreExtended1Block + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lmw r27, ProcessorState_PPC.Default.PC(r2) + mtsrr0 r27 + mtlr r28 + mtcrf 0xff, r29 + mtctr r30 + mtxer r31 + lmw r3, ProcessorState_PPC.Default.GPR[3](r2) + lwz r0, ProcessorState_PPC.Default.GPR[0](r2) + lwz r1, ProcessorState_PPC.Default.GPR[1](r2) + lwz r2, ProcessorState_PPC.Default.GPR[2](r2) + rfi +#endif // clang-format on +} + +asm void TRKInterruptHandlerEnableInterrupts(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent +#endif // clang-format on +} + +DSError TRKTargetInterrupt(TRKEvent* event) +{ + DSError error = DS_NoError; + switch (event->eventType) { + case NUBEVENT_Breakpoint: + case NUBEVENT_Exception: + if (TRKTargetCheckStep() == FALSE) { + TRKTargetSetStopped(TRUE); + error = TRKDoNotifyStopped(DSMSG_NotifyStopped); + } + break; + default: + break; + } + + return error; +} + +DSError TRKTargetAddStopInfo(TRKBuffer* buffer) +{ + DSError error; + u32 instruction; + s32 i; + + error = TRKAppendBuffer1_ui32(buffer, gTRKCPUState.Default.PC); + if (error == DS_NoError) { + error = TRKTargetReadInstruction(&instruction, gTRKCPUState.Default.PC); + } + if (error == DS_NoError) + error = TRKAppendBuffer1_ui32(buffer, instruction); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, gTRKCPUState.Extended1.exceptionID); + + if (error == DS_NoError) { + for (i = 0; i < 32; i++) { + error = TRKAppendBuffer1_ui32(buffer, (u16) gTRKCPUState.Default.GPR[i]); + } + for (i = 0; i < 32; i++) { + error = TRKAppendBuffer1_ui64(buffer, (u16) gTRKCPUState.Float.FPR[i]); + } + } + + return error; +} + +DSError TRKTargetAddExceptionInfo(TRKBuffer* buffer) +{ + DSError error; + u32 local_10; + + error = TRKAppendBuffer1_ui32(buffer, gTRKExceptionStatus.exceptionInfo.PC); + if (error == 0) { + error = TRKTargetReadInstruction(&local_10, + gTRKExceptionStatus.exceptionInfo.PC); + } + if (error == 0) { + error = TRKAppendBuffer1_ui32(buffer, local_10); + } + if (error == 0) { + error = TRKAppendBuffer1_ui16( + buffer, gTRKExceptionStatus.exceptionInfo.exceptionID); + } + + return error; +} + +static DSError TRKTargetEnableTrace(BOOL val) +{ + if (val) { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR | 0x400); + } else { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR & ~0x400); + } + return DS_NoError; +} + +static BOOL TRKTargetStepDone() +{ + BOOL result = TRUE; + + if (gTRKStepStatus.active + && ((u16)gTRKCPUState.Extended1.exceptionID) == PPC_Trace) { + switch (gTRKStepStatus.type) { + case DSSTEP_IntoCount: + if (gTRKStepStatus.count > 0) { + result = FALSE; + } + break; + case DSSTEP_IntoRange: + if (gTRKCPUState.Default.PC >= gTRKStepStatus.rangeStart + && gTRKCPUState.Default.PC <= gTRKStepStatus.rangeEnd) { + result = FALSE; + } + break; + default: + break; + } + } + + return result; +} + +static DSError TRKTargetDoStep() +{ + gTRKStepStatus.active = TRUE; + TRKTargetEnableTrace(TRUE); + + if (gTRKStepStatus.type == DSSTEP_IntoCount + || gTRKStepStatus.type == DSSTEP_OverCount) { + gTRKStepStatus.count--; + } + + TRKTargetSetStopped(FALSE); + return DS_NoError; +} + +static BOOL TRKTargetCheckStep() +{ + if (gTRKStepStatus.active) { + TRKTargetEnableTrace(FALSE); + + if (TRKTargetStepDone()) { + gTRKStepStatus.active = FALSE; + } else { + TRKTargetDoStep(); + } + } + + return gTRKStepStatus.active; +} + +DSError TRKTargetSingleStep(u32 count, BOOL stepOver) +{ + DSError error = DS_NoError; + + if (stepOver) { + error = DS_UnsupportedError; + } else { + gTRKStepStatus.type = DSSTEP_IntoCount; + gTRKStepStatus.count = count; + error = TRKTargetDoStep(); + } + + return error; +} + +DSError TRKTargetStepOutOfRange(u32 rangeStart, u32 rangeEnd, BOOL stepOver) +{ + DSError error = DS_NoError; + + if (stepOver) { + // Stepping over isn't supported for PowerPC + error = DS_UnsupportedError; + } else { + gTRKStepStatus.type = DSSTEP_IntoRange; + // gTRKStepStatus.active = TRUE; + gTRKStepStatus.rangeStart = rangeStart; + gTRKStepStatus.rangeEnd = rangeEnd; + error = TRKTargetDoStep(); + } + + return error; +} + +u32 TRKTargetGetPC() { return gTRKCPUState.Default.PC; } + +DSError TRKTargetSupportRequest(void) { + DSError error; + u32 spC; + size_t* length; + MessageCommandID commandId; + TRKEvent event; + u8 ioResult; + + commandId = (u8) gTRKCPUState.Default.GPR[3]; + if (commandId != DSMSG_ReadFile && commandId != DSMSG_WriteFile && commandId != DSMSG_OpenFile && commandId != DSMSG_CloseFile && commandId != DSMSG_PositionFile) { + TRKConstructEvent(&event, NUBEVENT_Exception); + TRKPostEvent(&event); + return DS_NoError; + } + if (commandId == DSMSG_OpenFile) { + error = HandleOpenFileSupportRequest((char*) gTRKCPUState.Default.GPR[4], gTRKCPUState.Default.GPR[5], (u32*) gTRKCPUState.Default.GPR[6], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + } else if (commandId == DSMSG_CloseFile) { + error = HandleCloseFileSupportRequest(gTRKCPUState.Default.GPR[4], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + } else if (commandId == DSMSG_PositionFile) { + spC = *((u32*) gTRKCPUState.Default.GPR[5]); + error = HandlePositionFileSupportRequest(gTRKCPUState.Default.GPR[4], &spC, gTRKCPUState.Default.GPR[6], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + *((u32*) gTRKCPUState.Default.GPR[5]) = spC; + } else { + length = (size_t*) gTRKCPUState.Default.GPR[5]; + error = TRKSuppAccessFile((u8) gTRKCPUState.Default.GPR[4], (u8*) gTRKCPUState.Default.GPR[6], length, (DSIOResult*) &ioResult, TRUE, commandId == DSMSG_ReadFile); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + if (commandId == DSMSG_ReadFile) { + TRK_flush_cache((void*) gTRKCPUState.Default.GPR[6], *length); + } + } + gTRKCPUState.Default.PC += 4; + return error; +} + +DSError TRKTargetFlushCache(u8, void* start, void* end) +{ + if (start < end) { + TRK_flush_cache(start, (u8*)end - (u8*)start); + return DS_NoError; + } + + return DS_InvalidMemory; +} + +BOOL TRKTargetStopped() { return gTRKState.isStopped; } + +void TRKTargetSetStopped(unsigned int stopped) +{ + gTRKState.isStopped = stopped; +} + +u32 TRKTargetStop() +{ + TRKTargetSetStopped(1); + return 0; +} + +DSError TRKPPCAccessSPR(void* value, u32 spr_register_num, BOOL read) +{ + /* Initialize instruction array with nop */ + + u32 access_func[10] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** read: + ** mfspr r4, spr_register_num + ** stw r4, 0(r3) + ** blr + ** + ** write: + ** lwz r4, 0(r3) + ** mtspr spr_register_num, r4 + ** blr + ** + */ + + if (read) { + access_func[0] = INSTR_MFSPR(4, spr_register_num); + access_func[1] = (u32)INSTR_STW(4, 0, 3); + } else { + access_func[0] = (u32)INSTR_LWZ(4, 0, 3); + access_func[1] = INSTR_MTSPR(spr_register_num, 4); + } + + return TRKPPCAccessSpecialReg(value, access_func, read); +} + +DSError TRKPPCAccessPairedSingleRegister(void* srcDestPtr, u32 psr, BOOL read) +{ + // all nop by default + u32 instructionData[] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; + + if (read) { + instructionData[0] + = INSTR_PSQ_ST(psr, 0, 3, 0, 0); // psq_st psr, 0(r3), 0, 0 + } else { + instructionData[0] + = INSTR_PSQ_L(psr, 0, 3, 0, 0); // psq_l psr, 0(r3), 0, 0 + } + + return TRKPPCAccessSpecialReg(srcDestPtr, instructionData, read); +} + +#pragma dont_inline on +DSError TRKPPCAccessFPRegister(void* srcDestPtr, u32 fpr, BOOL read) +{ + DSError error = DS_NoError; + // all nop by default + u32 instructionData1[] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; + + if (fpr < 0x20) { + if (read) { + instructionData1[0] = INSTR_STFD(fpr, 0, 3); // stfd fpr, 0(r3) + } else { + instructionData1[0] = INSTR_LFD(fpr, 0, 3); // lfd fpr, 0(r3) + } + + error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); + } else if (fpr == 0x20) { + *(u64*)srcDestPtr &= 0xFFFFFFFF; + } else if (fpr == 0x21) { + if (!read) { + *(u32*)srcDestPtr = *((u32*)(srcDestPtr) + 1); + } + error = TRKPPCAccessSPR(srcDestPtr, 1022, read); + if (read) { + DSFetch_u64(srcDestPtr) = DSFetch_u32(srcDestPtr) & 0xffffffffLL; + } + } + + return error; +} +#pragma dont_inline reset + +#define DEBUG_VECTORREG_ACCESS 0 + +DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read) +{ + typedef void (*asm_access_type)(void*, void*); + + asm_access_type asm_access; + + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** + ** blr + */ + + /* + ** Put blr instruction at the end of access function (it should be + ** a 5-instruction array w/the last one empty). + */ + + access_func[9] = INSTR_BLR; + + /* + ** Now that the instruction array is built, get a function pointer to it. + */ + + asm_access = (asm_access_type)access_func; + +#if DEBUG_VECTORREG_ACCESS + + __puts("\r\nasm_access: "); + __puthex8((u32)asm_access); + __puts(" access_func: "); + __puthex8((u32)access_func); + + for (i = 0; i < 10; i++) { + __puts("\r\ninst["); + __puthex2(i); + __puts("]: "); + __puthex8(access_func[i]); + __puts(" ; "); + __puthex8(*((u32*)asm_access + i)); + } + + __puts("\r\n"); + +#endif + + // Flush cache + TRK_flush_cache((void*)(u32)access_func, (sizeof(access_func) * 10)); + (*asm_access)((u32*)value, (void*)&TRKvalue128_temp); + + return DS_NoError; +} + +void TRKTargetSetInputPendingPtr(void* ptr) { gTRKState.inputPendingPtr = ptr; } diff --git a/src/TRK_MINNOW_DOLPHIN/targsupp.s b/src/TRK_MINNOW_DOLPHIN/targsupp.s new file mode 100644 index 00000000..0244131b --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targsupp.s @@ -0,0 +1,25 @@ +.include "macros.inc" +.file "targsupp.s" + +.text +.balign 16 + +.fn TRKAccessFile, global + twui r0, 0x0 + blr +.endfn TRKAccessFile + +.fn TRKOpenFile, global + twui r0, 0x0 + blr +.endfn TRKOpenFile + +.fn TRKCloseFile, global + twui r0, 0x0 + blr +.endfn TRKCloseFile + +.fn TRKPositionFile, global + twui r0, 0x0 + blr +.endfn TRKPositionFile diff --git a/src/TRK_MINNOW_DOLPHIN/usr_put.c b/src/TRK_MINNOW_DOLPHIN/usr_put.c new file mode 100644 index 00000000..7ba2dc21 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/usr_put.c @@ -0,0 +1,26 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +BOOL usr_puts_serial(const char* msg) +{ + BOOL connect_ = FALSE; + char c; + char buf[2]; + + while (!connect_ && (c = *msg++) != '\0') { + BOOL connect = GetTRKConnected(); + + buf[0] = c; + buf[1] = '\0'; + + SetTRKConnected(FALSE); + OSReport(buf); + + SetTRKConnected(connect); + connect_ = FALSE; + } + return connect_; +} + +void usr_put_initialize(void) { } diff --git a/src/dolphin/ar/ar.c b/src/dolphin/ar/ar.c index 7f43c1a7..94954318 100644 --- a/src/dolphin/ar/ar.c +++ b/src/dolphin/ar/ar.c @@ -2,6 +2,7 @@ #include "dolphin/hw_regs.h" #include "dolphin/os.h" +#include "dolphin/os/OSCache.h" static ARCallback __AR_Callback; static u32 __AR_Size; @@ -10,242 +11,333 @@ static u32 __AR_ExpansionSize; static u32 __AR_StackPointer; static u32 __AR_FreeBlocks; -static u32* __AR_BlockLength; +static u32 *__AR_BlockLength; static volatile BOOL __AR_init_flag = FALSE; -static void __ARHandler(__OSInterrupt interrupt, OSContext* context); +static void __ARHandler(__OSInterrupt interrupt, OSContext *context); static void __ARChecksize(void); static void __ARClearArea(u32 start_addr, u32 length); -ARCallback ARRegisterDMACallback(ARCallback callback) { - ARCallback oldCb; - BOOL enabled; - oldCb = __AR_Callback; - enabled = OSDisableInterrupts(); - __AR_Callback = callback; - OSRestoreInterrupts(enabled); - return oldCb; -} +// TODO import defines for magic numbers from other repos -u32 ARGetDMAStatus() { - BOOL enabled; - u32 val; - enabled = OSDisableInterrupts(); - val = __DSPRegs[5] & 0x0200; - OSRestoreInterrupts(enabled); - return val; -} - -void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) { - BOOL enabled; - - enabled = OSDisableInterrupts(); - - __DSPRegs[16] = (u16)(__DSPRegs[16] & ~0x3ff) | (u16)(mainmem_addr >> 16); - __DSPRegs[17] = (u16)(__DSPRegs[17] & ~0xffe0) | (u16)(mainmem_addr & 0xffff); - __DSPRegs[18] = (u16)(__DSPRegs[18] & ~0x3ff) | (u16)(aram_addr >> 16); - __DSPRegs[19] = (u16)(__DSPRegs[19] & ~0xffe0) | (u16)(aram_addr & 0xffff); - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x8000) | (type << 15)); - __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x3ff) | (u16)(length >> 16); - __DSPRegs[21] = (u16)(__DSPRegs[21] & ~0xffe0) | (u16)(length & 0xffff); - OSRestoreInterrupts(enabled); -} - -u32 ARAlloc(u32 length) { - u32 tmp; - BOOL enabled; - - enabled = OSDisableInterrupts(); - tmp = __AR_StackPointer; - __AR_StackPointer += length; - *__AR_BlockLength = length; - __AR_BlockLength++; - __AR_FreeBlocks--; - OSRestoreInterrupts(enabled); - - return tmp; -} - -#if NONMATCHING -u32 ARFree(u32* length) { - BOOL old; - - old = OSDisableInterrupts(); - - __AR_BlockLength--; - - if (length) { - *length = *__AR_BlockLength; - } - - __AR_StackPointer -= *__AR_BlockLength; - - __AR_FreeBlocks++; - - OSRestoreInterrupts(old); - - return __AR_StackPointer; -} -#else -/* clang-format off */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 ARFree(u32* length) { - nofralloc - mflr r0 - stw r0, 4(r1) - stwu r1, -0x18(r1) - stw r31, 0x14(r1) - mr r31, r3 - bl OSDisableInterrupts - lwz r4, __AR_BlockLength - cmplwi r31, 0 - addi r0, r4, -4 - stw r0, __AR_BlockLength - beq lbl_8036DAB4 - lwz r4, __AR_BlockLength - lwz r0, 0(r4) - stw r0, 0(r31) -lbl_8036DAB4: - lwz r5, __AR_BlockLength - lwz r4, __AR_FreeBlocks - lwz r6, 0(r5) - addi r0, r4, 1 - lwz r5, __AR_StackPointer - stw r0, __AR_FreeBlocks - subf r0, r6, r5 - stw r0, __AR_StackPointer - bl OSRestoreInterrupts - lwz r3, __AR_StackPointer - lwz r0, 0x1c(r1) - lwz r31, 0x14(r1) - addi r1, r1, 0x18 - mtlr r0 - blr -} -#pragma pop -/* clang-format on */ -#endif - -BOOL ARCheckInit() { return __AR_init_flag; } - -u32 ARInit(u32* stack_index_addr, u32 num_entries) { - - BOOL old; - u16 refresh; - - if (__AR_init_flag == TRUE) { - return 0x4000; - } - - old = OSDisableInterrupts(); - - __AR_Callback = NULL; - - __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler); - __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); - - __AR_StackPointer = 0x4000; - __AR_FreeBlocks = num_entries; - __AR_BlockLength = stack_index_addr; - - refresh = (u16)(__DSPRegs[13] & 0x000000ff); - - __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); - - __ARChecksize(); - - __AR_init_flag = TRUE; - - OSRestoreInterrupts(old); - - return __AR_StackPointer; -} - -u32 ARGetBaseAddress(void) { return 0x4000; } - -void ARSetSize(void) +ARCallback ARRegisterDMACallback(ARCallback callback) { - + ARCallback oldCb; + BOOL enabled; + oldCb = __AR_Callback; + enabled = OSDisableInterrupts(); + __AR_Callback = callback; + OSRestoreInterrupts(enabled); + return oldCb; } -u32 ARGetSize() { return __AR_Size; } +u32 ARGetDMAStatus() +{ + BOOL enabled; + u32 val; + enabled = OSDisableInterrupts(); + val = __DSPRegs[5] & 0x0200; + OSRestoreInterrupts(enabled); + return val; +} -static void __ARHandler(__OSInterrupt interrupt, OSContext* context) { +void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) +{ + BOOL enabled; - OSContext exceptionContext; - u16 tmp; + enabled = OSDisableInterrupts(); - tmp = __DSPRegs[5]; - tmp = (u16)((tmp & ~0x00000088) | 0x20); - __DSPRegs[5] = tmp; + __DSPRegs[16] = (u16)(__DSPRegs[16] & ~0x3ff) | (u16)(mainmem_addr >> 16); + __DSPRegs[17] = (u16)(__DSPRegs[17] & ~0xffe0) | (u16)(mainmem_addr & 0xffff); + __DSPRegs[18] = (u16)(__DSPRegs[18] & ~0x3ff) | (u16)(aram_addr >> 16); + __DSPRegs[19] = (u16)(__DSPRegs[19] & ~0xffe0) | (u16)(aram_addr & 0xffff); + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x8000) | (type << 15)); + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x3ff) | (u16)(length >> 16); + __DSPRegs[21] = (u16)(__DSPRegs[21] & ~0xffe0) | (u16)(length & 0xffff); + OSRestoreInterrupts(enabled); +} - OSClearContext(&exceptionContext); - OSSetCurrentContext(&exceptionContext); +u32 ARAlloc(u32 length) +{ + u32 tmp; + BOOL enabled; - if (__AR_Callback) { - (*__AR_Callback)(); - } + enabled = OSDisableInterrupts(); + tmp = __AR_StackPointer; + __AR_StackPointer += length; + *__AR_BlockLength = length; + __AR_BlockLength++; + __AR_FreeBlocks--; + OSRestoreInterrupts(enabled); - OSClearContext(&exceptionContext); - OSSetCurrentContext(context); + return tmp; +} + +u32 ARFree(u32 *length) +{ + BOOL old; + + old = OSDisableInterrupts(); + + __AR_BlockLength--; + + if (length) { + *length = *__AR_BlockLength; + } + + __AR_StackPointer -= *__AR_BlockLength; + + __AR_FreeBlocks++; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; +} + +BOOL ARCheckInit() +{ + return __AR_init_flag; +} + +u32 ARInit(u32 *stack_index_addr, u32 num_entries) +{ + + BOOL old; + u16 refresh; + + if (__AR_init_flag == TRUE) { + return 0x4000; + } + + old = OSDisableInterrupts(); + + __AR_Callback = NULL; + + __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); + + __AR_StackPointer = 0x4000; + __AR_FreeBlocks = num_entries; + __AR_BlockLength = stack_index_addr; + + refresh = (u16)(__DSPRegs[13] & 0x000000ff); + + __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); + + __ARChecksize(); + + __AR_init_flag = TRUE; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; +} + +void ARSetSize(void) { } + +u32 ARGetBaseAddress(void) +{ + return 0x4000; +} + +u32 ARGetSize() +{ + return __AR_Size; +} + +static void __ARHandler(__OSInterrupt interrupt, OSContext *context) +{ + + OSContext exceptionContext; + u16 tmp; + + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~0x00000088) | 0x20); + __DSPRegs[5] = tmp; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + if (__AR_Callback) { + (*__AR_Callback)(); + } + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); } #define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1)) -void __ARClearInterrupt(void) { +void __ARClearInterrupt(void) +{ - u16 tmp; - tmp = __DSPRegs[5]; - tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); - __DSPRegs[5] = tmp; + u16 tmp; + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); + __DSPRegs[5] = tmp; } -u16 __ARGetInterruptStatus(void) { return ((u16)(__DSPRegs[5] & 0x0200)); } - -static void __ARWaitForDMA(void) { - - while (__DSPRegs[5] & 0x0200) { - } +u16 __ARGetInterruptStatus(void) +{ + return ((u16)(__DSPRegs[5] & 0x0200)); } -static void __ARWriteDMA(u32 mmem_addr, u32 aram_addr, u32 length) { +static void __ARWaitForDMA(void) +{ - __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); - __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); - - __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); - __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); - - __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x8000); - - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); - __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); - - __ARWaitForDMA(); - - __ARClearInterrupt(); + while (__DSPRegs[5] & 0x0200) { } } -static void __ARReadDMA(u32 mmem_addr, u32 aram_addr, u32 length) { +static void __ARWriteDMA(u32 mmem_addr, u32 aram_addr, u32 length) +{ - __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); - __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); - __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); - __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); - __DSPRegs[20] = (u16)(__DSPRegs[20] | 0x8000); + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x8000); - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); - __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); - __ARWaitForDMA(); + __ARWaitForDMA(); - __ARClearInterrupt(); + __ARClearInterrupt(); } -static void __ARChecksize(void) { - //TODO: Implement for this SDK version -} \ No newline at end of file +static void __ARReadDMA(u32 mmem_addr, u32 aram_addr, u32 length) +{ + + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + + __DSPRegs[20] = (u16)(__DSPRegs[20] | 0x8000); + + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + + __ARWaitForDMA(); + + __ARClearInterrupt(); +} + +void __ARChecksize(void) +{ + u8 test_data_pad[0x20 + 31]; + u8 dummy_data_pad[0x20 + 31]; + u8 buffer_pad[0x20 + 31]; + + u32 *test_data; + u32 *dummy_data; + u32 *buffer; + + u16 ARAM_mode; + u32 ARAM_size; + + u32 i; + + while (!(__DSPRegs[11] & 1)) + ; + + ARAM_mode = 3; + ARAM_size = __AR_InternalSize = 0x1000000; + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1); + + test_data = (u32 *)(RoundUP32((u32)(test_data_pad))); + dummy_data = (u32 *)(RoundUP32((u32)(dummy_data_pad))); + buffer = (u32 *)(RoundUP32((u32)(buffer_pad))); + + for (i = 0; i < 8; i++) { + *(test_data + i) = 0xdeadbeef; + *(dummy_data + i) = 0xbad0bad0; + } + + DCFlushRange((void *)test_data, 0x20); + DCFlushRange((void *)dummy_data, 0x20); + + __AR_ExpansionSize = 0; + + __ARWriteDMA((u32)dummy_data, ARAM_size, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x200000, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x01000000, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x200, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x400000, 0x20U); + + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + DCInvalidateRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0200000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 0 << 1; + ARAM_size += 0x0200000; + __AR_ExpansionSize = 0x0200000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x1000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 4 << 1; + ARAM_size += 0x0400000; + __AR_ExpansionSize = 0x0400000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000200, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 8 << 1; + ARAM_size += 0x800000; + __AR_ExpansionSize = 0x0800000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0400000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 12 << 1; + ARAM_size += 0x1000000; + __AR_ExpansionSize = 0x1000000; + } + else { + ARAM_mode |= 16 << 1; + ARAM_size += 0x2000000; + __AR_ExpansionSize = 0x2000000; + } + } + } + } + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x07 | 0x38)) | ARAM_mode); + } + + *(u32 *)OSPhysicalToUncached(0x00D0) = ARAM_size; + + __AR_Size = ARAM_size; +} diff --git a/src/dolphin/gx/GXAttr.c b/src/dolphin/gx/GXAttr.c new file mode 100644 index 00000000..721027db --- /dev/null +++ b/src/dolphin/gx/GXAttr.c @@ -0,0 +1,586 @@ +#include +#include + +#include + +#define CHECK_ATTRPTR(line, attrPtr) ASSERTMSGLINE(line, (attrPtr) != NULL, "GXSetVtxDescv: attrPtr is NULL") +#define CHECK_ATTRNAME(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_PNMTXIDX && (attr) < GX_VA_MAX_ATTR, "GXSetVtxDesc: Invalid vertex attribute name") +#define CHECK_ATTRNAME2(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_POS && (attr) <= GX_VA_MAX_ATTR, "GXSetVtxAttrFmt: Invalid vertex attribute name") +#define CHECK_ATTRNAME3(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_POS && (attr) <= GX_LIGHT_ARRAY, "GXSetArray: Invalid vertex attribute name") +#define CHECK_ATTRTYPE(line, type) ASSERTMSGLINE(line, (type) >= GX_NONE && (type) <= GX_INDEX16, "GXSetVtxDesc: Invalid vertex attribute type") +#define CHECK_VTXFMT(line, vtxfmt) ASSERTMSGLINE(line, (vtxfmt) < GX_MAX_VTXFMT, "GXSetVtxAttrFmt: Format Index is out of range") +#define CHECK_FRAC(line, frac) ASSERTMSGLINE(line, (frac) < 32, "GXSetVtxAttrFmt: Frac value is >= 32") +#define CHECK_LISTPTR(line, list) ASSERTMSGLINE(line, (list) != NULL, "GXSetVtxAttrFmt: list pointer is NULL") + +static void __GXXfVtxSpecs(void) +{ + u32 nCols = 0; + u32 nNrm; + u32 nTex; + u32 reg; + + nCols = GET_REG_FIELD(gx->vcdLo, 2, 13) ? 1 : 0; + nCols += GET_REG_FIELD(gx->vcdLo, 2, 15) ? 1 : 0; + nNrm = gx->hasBiNrms ? 2 : gx->hasNrms ? 1 : 0; + nTex = 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 0) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 2) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 4) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 6) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 8) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 10) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 12) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 14) ? 1 : 0; + reg = (nCols) | (nNrm << 2) | (nTex << 4); + GX_WRITE_XF_REG(8, reg); + gx->bpSentNot = 1; +} + +static inline void SETVCDATTR(GXAttr Attr, GXAttrType Type) +{ + switch (Attr) { + case GX_VA_PNMTXIDX: SET_REG_FIELD(0xD4, gx->vcdLo, 1, 0, Type); break; + case GX_VA_TEX0MTXIDX: SET_REG_FIELD(0xD5, gx->vcdLo, 1, 1, Type); break; + case GX_VA_TEX1MTXIDX: SET_REG_FIELD(0xD6, gx->vcdLo, 1, 2, Type); break; + case GX_VA_TEX2MTXIDX: SET_REG_FIELD(0xD7, gx->vcdLo, 1, 3, Type); break; + case GX_VA_TEX3MTXIDX: SET_REG_FIELD(0xD8, gx->vcdLo, 1, 4, Type); break; + case GX_VA_TEX4MTXIDX: SET_REG_FIELD(0xD9, gx->vcdLo, 1, 5, Type); break; + case GX_VA_TEX5MTXIDX: SET_REG_FIELD(0xDA, gx->vcdLo, 1, 6, Type); break; + case GX_VA_TEX6MTXIDX: SET_REG_FIELD(0xDB, gx->vcdLo, 1, 7, Type); break; + case GX_VA_TEX7MTXIDX: SET_REG_FIELD(0xDC, gx->vcdLo, 1, 8, Type); break; + case GX_VA_POS: SET_REG_FIELD(0xDD, gx->vcdLo, 2, 9, Type); break; + case GX_VA_NRM: + if (Type != GX_NONE) { + gx->hasNrms = 1; + gx->hasBiNrms = 0; + gx->nrmType = Type; + } else { + gx->hasNrms = 0; + } + break; + case GX_VA_NBT: + if (Type != GX_NONE) { + gx->hasBiNrms = 1; + gx->hasNrms = 0; + gx->nrmType = Type; + } else { + gx->hasBiNrms = 0; + } + break; + case GX_VA_CLR0: SET_REG_FIELD(0xF6, gx->vcdLo, 2, 13, Type); break; + case GX_VA_CLR1: SET_REG_FIELD(0xF7, gx->vcdLo, 2, 15, Type); break; + case GX_VA_TEX0: SET_REG_FIELD(0xF8, gx->vcdHi, 2, 0, Type); break; + case GX_VA_TEX1: SET_REG_FIELD(0xF9, gx->vcdHi, 2, 2, Type); break; + case GX_VA_TEX2: SET_REG_FIELD(0xFA, gx->vcdHi, 2, 4, Type); break; + case GX_VA_TEX3: SET_REG_FIELD(0xFB, gx->vcdHi, 2, 6, Type); break; + case GX_VA_TEX4: SET_REG_FIELD(0xFC, gx->vcdHi, 2, 8, Type); break; + case GX_VA_TEX5: SET_REG_FIELD(0xFD, gx->vcdHi, 2, 10, Type); break; + case GX_VA_TEX6: SET_REG_FIELD(0xFE, gx->vcdHi, 2, 12, Type); break; + case GX_VA_TEX7: SET_REG_FIELD(0xFF, gx->vcdHi, 2, 14, Type); break; + } +} + +void GXSetVtxDesc(GXAttr attr, GXAttrType type) +{ + CHECK_GXBEGIN(0xCC, "GXSetVtxDesc"); + CHECK_ATTRNAME(0xCF, attr); + CHECK_ATTRTYPE(0xD1, type); + + SETVCDATTR(attr, type); + if (gx->hasNrms || gx->hasBiNrms) { + SET_REG_FIELD(0xD7, gx->vcdLo, 2, 11, gx->nrmType); + } else { + SET_REG_FIELD(0x00, gx->vcdLo, 2, 11, 0); + } + gx->dirtyState |= 8; +} + +void GXSetVtxDescv(GXVtxDescList *attrPtr) +{ + CHECK_GXBEGIN(0xF5, "GXSetVtxDescv"); + CHECK_ATTRPTR(0xF6, attrPtr); + while (attrPtr->attr != 0xFF) { + CHECK_ATTRNAME(0xFB, attrPtr->attr); + CHECK_ATTRTYPE(0xFE, attrPtr->type); + SETVCDATTR(attrPtr->attr, attrPtr->type); + attrPtr++; + } + if (gx->hasNrms || gx->hasBiNrms) { + SET_REG_FIELD(0x107, gx->vcdLo, 2, 11, gx->nrmType); + } else { + SET_REG_FIELD(0x107, gx->vcdLo, 2, 11, 0); + } + gx->dirtyState |= 8; +} + +void __GXSetVCD(void) +{ + GX_WRITE_SOME_REG4(8, 0x50, gx->vcdLo, -12); + GX_WRITE_SOME_REG4(8, 0x60, gx->vcdHi, -12); + __GXXfVtxSpecs(); +} + +void __GXCalculateVLim() { + static u8 tbl1[] = { 0, 4, 1, 2 }; + static u8 tbl2[] = { 0, 8, 1, 2 }; + static u8 tbl3[] = { 0, 12, 1, 2 }; + + GXCompCnt nc = 0; + unsigned long vlm; + unsigned long b; + unsigned long vl; + unsigned long vh; + unsigned long va; + + if (gx->vNum != 0) { + vl = gx->vcdLo; + vh = gx->vcdHi; + va = gx->vatA[0]; + nc = GET_REG_FIELD(va, 1, 9); + + vlm = GET_REG_FIELD(vl, 1, 0); + vlm += (u8)GET_REG_FIELD(vl, 1, 1); + vlm += (u8)GET_REG_FIELD(vl, 1, 2); + vlm += (u8)GET_REG_FIELD(vl, 1, 3); + vlm += (u8)GET_REG_FIELD(vl, 1, 4); + vlm += (u8)GET_REG_FIELD(vl, 1, 5); + vlm += (u8)GET_REG_FIELD(vl, 1, 6); + vlm += (u8)GET_REG_FIELD(vl, 1, 7); + vlm += (u8)GET_REG_FIELD(vl, 1, 8); + vlm += tbl3[(u8)GET_REG_FIELD(vl, 2, 9)]; + + if (nc == 1) { + b = 3; + } else { + b = 1; + } + + vlm += tbl3[(u8)GET_REG_FIELD(vl, 2, 11)] * b; + vlm += tbl1[(u8)GET_REG_FIELD(vl, 2, 13)]; + vlm += tbl1[(u8)GET_REG_FIELD(vl, 2, 15)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 0)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 2)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 4)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 6)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 8)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 10)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 12)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 14)]; + gx->vLim = vlm; + } +} + +void GXGetVtxDesc(GXAttr attr, GXAttrType *type) +{ + u32 cpType; + + CHECK_GXBEGIN(0x185, "GXGetVtxDesc"); + CHECK_ATTRNAME(0x187, attr); + + switch (attr) { + case GX_VA_PNMTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 0); break; + case GX_VA_TEX0MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 1); break; + case GX_VA_TEX1MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 2); break; + case GX_VA_TEX2MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 3); break; + case GX_VA_TEX3MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 4); break; + case GX_VA_TEX4MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 5); break; + case GX_VA_TEX5MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 6); break; + case GX_VA_TEX6MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 7); break; + case GX_VA_TEX7MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 8); break; + case GX_VA_POS: cpType = GET_REG_FIELD(gx->vcdLo, 2, 9); break; + case GX_VA_NRM: cpType = gx->hasNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break; + case GX_VA_NBT: cpType = gx->hasBiNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break; + case GX_VA_CLR0: cpType = GET_REG_FIELD(gx->vcdLo, 2, 13); break; + case GX_VA_CLR1: cpType = GET_REG_FIELD(gx->vcdLo, 2, 15); break; + case GX_VA_TEX0: cpType = GET_REG_FIELD(gx->vcdHi, 2, 0); break; + case GX_VA_TEX1: cpType = GET_REG_FIELD(gx->vcdHi, 2, 2); break; + case GX_VA_TEX2: cpType = GET_REG_FIELD(gx->vcdHi, 2, 4); break; + case GX_VA_TEX3: cpType = GET_REG_FIELD(gx->vcdHi, 2, 6); break; + case GX_VA_TEX4: cpType = GET_REG_FIELD(gx->vcdHi, 2, 8); break; + case GX_VA_TEX5: cpType = GET_REG_FIELD(gx->vcdHi, 2, 10); break; + case GX_VA_TEX6: cpType = GET_REG_FIELD(gx->vcdHi, 2, 12); break; + case GX_VA_TEX7: cpType = GET_REG_FIELD(gx->vcdHi, 2, 14); break; + default: cpType = 0; break; + } + *type = cpType; +} + +void GXGetVtxDescv(GXVtxDescList *vcd) +{ + GXAttr attr; + + CHECK_GXBEGIN(0x1BA, "GXGetVtxDescv"); + CHECK_ATTRPTR(0x1BC, vcd); + for (attr = 0; attr < GX_VA_MAX_ATTR; attr++) { + vcd[attr].attr = attr; + GXGetVtxDesc(attr, &vcd[attr].type); + } + vcd[attr].attr = 0xFF; +} + +void GXClearVtxDesc(void) +{ + CHECK_GXBEGIN(0x1D3, "GXClearVtxDesc"); + gx->vcdLo = 0; + SET_REG_FIELD(0x00, gx->vcdLo, 2, 9, 1); + gx->vcdHi = 0; + gx->hasNrms = 0; + gx->hasBiNrms = 0; + gx->dirtyState |= 8; +} + +static inline void SETVAT(u32 *va, u32 *vb, u32 *vc, GXAttr attr, GXCompCnt cnt, GXCompType type, u8 shft) +{ + switch (attr) { + case GX_VA_POS: + SET_REG_FIELD(511, *va, 1, 0, cnt); + SET_REG_FIELD(512, *va, 3, 1, type); + SET_REG_FIELD(513, *va, 5, 4, shft); + break; + case GX_VA_NRM: + case GX_VA_NBT: + SET_REG_FIELD(521, *va, 3, 10, type); + if (cnt == GX_NRM_NBT3) { + SET_REG_FIELD(0, *va, 1, 9, 1); + SET_REG_FIELD(0, *va, 1, 31, 1); + } else { + SET_REG_FIELD(527, *va, 1, 9, cnt); + SET_REG_FIELD(528, *va, 1, 31, 0); + } + break; + case GX_VA_CLR0: + SET_REG_FIELD(0x215, *va, 1, 13, cnt); + SET_REG_FIELD(0x216, *va, 3, 14, type); + break; + case GX_VA_CLR1: + SET_REG_FIELD(0x219, *va, 1, 0x11, cnt); + SET_REG_FIELD(0x21A, *va, 3, 18, type); + break; + case GX_VA_TEX0: + SET_REG_FIELD(0x21D, *va, 1, 0x15, cnt); + SET_REG_FIELD(0x21E, *va, 3, 0x16, type); + SET_REG_FIELD(0x21F, *va, 5, 0x19, shft); + break; + case GX_VA_TEX1: + SET_REG_FIELD(0x222, *vb, 1, 0, cnt); + SET_REG_FIELD(0x223, *vb, 3, 1, type); + SET_REG_FIELD(0x224, *vb, 5, 4, shft); + break; + case GX_VA_TEX2: + SET_REG_FIELD(0x227, *vb, 1, 9, cnt); + SET_REG_FIELD(0x228, *vb, 3, 10, type); + SET_REG_FIELD(0x229, *vb, 5, 13, shft); + break; + case GX_VA_TEX3: + SET_REG_FIELD(0x22C, *vb, 1, 18, cnt); + SET_REG_FIELD(0x22D, *vb, 3, 19, type); + SET_REG_FIELD(0x22E, *vb, 5, 22, shft); + break; + case GX_VA_TEX4: + SET_REG_FIELD(0x231, *vb, 1, 27, cnt); + SET_REG_FIELD(0x232, *vb, 3, 28, type); + SET_REG_FIELD(0x233, *vc, 5, 0, shft); + break; + case GX_VA_TEX5: + SET_REG_FIELD(0x236, *vc, 1, 5, cnt); + SET_REG_FIELD(0x237, *vc, 3, 6, type); + SET_REG_FIELD(0x238, *vc, 5, 9, shft); + break; + case GX_VA_TEX6: + SET_REG_FIELD(0x23B, *vc, 1, 14, cnt); + SET_REG_FIELD(0x23C, *vc, 3, 15, type); + SET_REG_FIELD(0x23D, *vc, 5, 18, shft); + break; + case GX_VA_TEX7: + SET_REG_FIELD(0x240, *vc, 1, 23, cnt); + SET_REG_FIELD(0x241, *vc, 3, 24, type); + SET_REG_FIELD(0x242, *vc, 5, 27, shft); + break; + } +} + +void GXSetVtxAttrFmt(GXVtxFmt vtxfmt, GXAttr attr, GXCompCnt cnt, GXCompType type, u8 frac) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x252, "GXSetVtxAttrFmt"); + CHECK_VTXFMT(0x253, vtxfmt); + CHECK_ATTRNAME2(0x255, attr); + CHECK_FRAC(0x256, frac); + va = &gx->vatA[vtxfmt]; + vb = &gx->vatB[vtxfmt]; + vc = &gx->vatC[vtxfmt]; + SETVAT(va, vb, vc, attr, cnt, type, frac); + gx->dirtyState |= 0x10; + gx->dirtyVAT |= (u8)(1 << (u8)vtxfmt); +} + +void GXSetVtxAttrFmtv(GXVtxFmt vtxfmt, const GXVtxAttrFmtList *list) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x27B, "GXSetVtxAttrFmtv"); + CHECK_LISTPTR(0x27C, list); + CHECK_VTXFMT(0x27D, vtxfmt); + va = &gx->vatA[vtxfmt]; + vb = &gx->vatB[vtxfmt]; + vc = &gx->vatC[vtxfmt]; + while (list->attr != GX_VA_NULL) { + CHECK_ATTRNAME2(0x286, list->attr); + CHECK_FRAC(0x287, list->frac); + SETVAT(va, vb, vc, list->attr, list->cnt, list->type, list->frac); + list++; + } + gx->dirtyState |= 0x10; + gx->dirtyVAT |= (u8)(1 << (u8)vtxfmt); +} + +void __GXSetVAT(void) +{ + u8 i; + + for (i = 0; i < 8; i++) { + if (gx->dirtyVAT & (1 << (u8)i)) { + GX_WRITE_SOME_REG4(8, i | 0x70, gx->vatA[i], i - 12); + GX_WRITE_SOME_REG4(8, i | 0x80, gx->vatB[i], i - 12); + GX_WRITE_SOME_REG4(8, i | 0x90, gx->vatC[i], i - 12); + } + } + gx->dirtyVAT = 0; +} + +void GXGetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt *cnt, GXCompType *type, u8 *frac) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x2CF, "GXGetVtxAttrFmt"); + CHECK_VTXFMT(0x2D0, fmt); + va = &gx->vatA[fmt]; + vb = &gx->vatB[fmt]; + vc = &gx->vatC[fmt]; + switch (attr) { + case GX_VA_POS: + *cnt = GET_REG_FIELD(*va, 1, 0); + *type = GET_REG_FIELD(*va, 3, 1); + *frac = (u8)(*va >> 4) & 0x1F; // GET_REG_FIELD(*va, 5, 4) + return; + case GX_VA_NRM: + case GX_VA_NBT: + *cnt = GET_REG_FIELD(*va, 1, 9); + if (*cnt == GX_TEX_ST && (u8)(*va >> 0x1F) != 0) { + *cnt = GX_NRM_NBT3; + } + *type = GET_REG_FIELD(*va, 3, 10); + *frac = 0; + return; + case GX_VA_CLR0: + *cnt = GET_REG_FIELD(*va, 1, 13); + *type = GET_REG_FIELD(*va, 3, 14); + *frac = 0; + return; + case GX_VA_CLR1: + *cnt = GET_REG_FIELD(*va, 1, 17); + *type = GET_REG_FIELD(*va, 3, 18); + *frac = 0; + return; + case GX_VA_TEX0: + *cnt = GET_REG_FIELD(*va, 1, 21); + *type = GET_REG_FIELD(*va, 3, 22); + *frac = (u8)(*va >> 0x19U) & 0x1F; + return; + case GX_VA_TEX1: + *cnt = GET_REG_FIELD(*vb, 1, 0); + *type = GET_REG_FIELD(*vb, 3, 1); + *frac = (u8)(*vb >> 4U) & 0x1F; + return; + case GX_VA_TEX2: + *cnt = GET_REG_FIELD(*vb, 1, 9); + *type = GET_REG_FIELD(*vb, 3, 10); + *frac = (u8)(*vb >> 0xDU) & 0x1F; + return; + case GX_VA_TEX3: + *cnt = GET_REG_FIELD(*vb, 1, 18); + *type = GET_REG_FIELD(*vb, 3, 19); + *frac = (u8)(*vb >> 0x16U) & 0x1F; + return; + case GX_VA_TEX4: + *cnt = GET_REG_FIELD(*vb, 1, 27); + *type = GET_REG_FIELD(*vb, 3, 28); + *frac = GET_REG_FIELD(*vc, 5, 0); + return; + case GX_VA_TEX5: + *cnt = GET_REG_FIELD(*vc, 1, 5); + *type = GET_REG_FIELD(*vc, 3, 6); + *frac = (u8)(*vc >> 9U) & 0x1F; + return; + case GX_VA_TEX6: + *cnt = GET_REG_FIELD(*vc, 1, 14); + *type = GET_REG_FIELD(*vc, 3, 15); + *frac = (u8)(*vc >> 0x12) & 0x1F; + return; + case GX_VA_TEX7: + *cnt = GET_REG_FIELD(*vc, 1, 23); + *type = GET_REG_FIELD(*vc, 3, 24); + *frac = (int)(*vc >> 0x1BU); + return; + default: + *cnt = GX_TEX_ST; + *type = GX_RGB565; + *frac = 0; + return; + } +} + +void GXGetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList *vat) +{ + GXAttr attr; + + CHECK_GXBEGIN(0x330, "GXGetVtxAttrFmtv"); + CHECK_LISTPTR(0x331, vat); + CHECK_VTXFMT(0x332, fmt); + for (attr = GX_VA_POS; attr < GX_VA_MAX_ATTR; attr++) { + vat->attr = attr; + GXGetVtxAttrFmt(fmt, attr, &vat->cnt, &vat->type, &vat->frac); + vat++; + } + vat->attr = GX_VA_NULL; +} + +void GXSetArray(GXAttr attr, const void *base_ptr, u8 stride) +{ + GXAttr cpAttr; + unsigned long phyAddr; + + attr; // needed to match + + CHECK_GXBEGIN(0x34F, "GXSetArray"); + if (attr == GX_VA_NBT) { + attr = GX_VA_NRM; + } + CHECK_ATTRNAME3(0x352, attr); + cpAttr = attr - GX_VA_POS; + phyAddr = (u32)base_ptr & 0x3FFFFFFF; + GX_WRITE_SOME_REG2(8, cpAttr | 0xA0, phyAddr, cpAttr - 12); + GX_WRITE_SOME_REG3(8, cpAttr | 0xB0, stride, cpAttr - 12); +} + +void GXInvalidateVtxCache(void) +{ + CHECK_GXBEGIN(0x368, "GXInvalidateVtxCache"); + GX_WRITE_U8(0x48); +} + +void GXSetTexCoordGen2(GXTexCoordID dst_coord, GXTexGenType func, GXTexGenSrc src_param, u32 mtx, GXBool normalize, u32 pt_texmtx) +{ + u32 reg = 0; + u32 row; + u32 bumprow; // unused + u32 form; + GXAttr mtxIdAttr; + + CHECK_GXBEGIN(0x392, "GXSetTexCoordGen"); + ASSERTMSGLINE(0x393, dst_coord < 8, "GXSetTexCoordGen: Invalid coordinate Id"); + form = 0; + row = 5; + switch (src_param) { + case GX_TG_POS: row = 0; form = 1; break; + case GX_TG_NRM: row = 1; form = 1; break; + case GX_TG_BINRM: row = 3; form = 1; break; + case GX_TG_TANGENT: row = 4; form = 1; break; + case GX_TG_COLOR0: row = 2; break; + case GX_TG_COLOR1: row = 2; break; + case GX_TG_TEX0: row = 5; break; + case GX_TG_TEX1: row = 6; break; + case GX_TG_TEX2: row = 7; break; + case GX_TG_TEX3: row = 8; break; + case GX_TG_TEX4: row = 9; break; + case GX_TG_TEX5: row = 10; break; + case GX_TG_TEX6: row = 11; break; + case GX_TG_TEX7: row = 12; break; + case GX_TG_TEXCOORD0: bumprow; break; + case GX_TG_TEXCOORD1: bumprow; break; + case GX_TG_TEXCOORD2: bumprow; break; + case GX_TG_TEXCOORD3: bumprow; break; + case GX_TG_TEXCOORD4: bumprow; break; + case GX_TG_TEXCOORD5: bumprow; break; + case GX_TG_TEXCOORD6: bumprow; break; + default: + ASSERTMSGLINE(0x3AF, 0, "GXSetTexCoordGen: Invalid source parameter"); + break; + } + switch (func) + { + case GX_TG_MTX2x4: + SET_REG_FIELD(0x3B8, reg, 1, 1, 0); + SET_REG_FIELD(0x3B9, reg, 1, 2, form); + SET_REG_FIELD(0x3BA, reg, 3, 4, 0); + SET_REG_FIELD(0x3BB, reg, 5, 7, row); + break; + case GX_TG_MTX3x4: + SET_REG_FIELD(0x3BF, reg, 1, 1, 1); + SET_REG_FIELD(0x3C0, reg, 1, 2, form); + SET_REG_FIELD(0x3C1, reg, 3, 4, 0); + SET_REG_FIELD(0x3C2, reg, 5, 7, row); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + ASSERTMSGLINE(0x3CF, src_param >= 12 && src_param <= 18, "GXSetTexCoordGen: Bump source texture value is invalid"); + SET_REG_FIELD(0x3D0, reg, 1, 1, 0); + SET_REG_FIELD(0x3D1, reg, 1, 2, form); + SET_REG_FIELD(0x3D2, reg, 3, 4, 1); + SET_REG_FIELD(0x3D3, reg, 5, 7, row); + SET_REG_FIELD(0x3D4, reg, 3, 12, src_param - 12); + SET_REG_FIELD(0x3D5, reg, 3, 15, func - 2); + break; + case GX_TG_SRTG: + SET_REG_FIELD(0x3D9, reg, 1, 1, 0); + SET_REG_FIELD(0x3DA, reg, 1, 2, form); + if (src_param == GX_TG_COLOR0) { + SET_REG_FIELD(0, reg, 3, 4, 2); + } else { + SET_REG_FIELD(0, reg, 3, 4, 3); + } + SET_REG_FIELD(0, reg, 5, 7, 2); + break; + default: + ASSERTMSGLINE(0x3E5, 0, "GXSetTexCoordGen: Invalid function"); + break; + } + GX_WRITE_XF_REG(dst_coord + 0x40, reg); + reg = 0; + SET_REG_FIELD(0x3F8, reg, 6, 0, pt_texmtx - 64); + SET_REG_FIELD(0x3F9, reg, 1, 8, normalize); + GX_WRITE_XF_REG(dst_coord + 0x50, reg); + switch (dst_coord) { + case GX_TEXCOORD0: SET_REG_FIELD(0x402, gx->matIdxA, 6, 6, mtx); break; + case GX_TEXCOORD1: SET_REG_FIELD(0x403, gx->matIdxA, 6, 12, mtx); break; + case GX_TEXCOORD2: SET_REG_FIELD(0x404, gx->matIdxA, 6, 18, mtx); break; + case GX_TEXCOORD3: SET_REG_FIELD(0x405, gx->matIdxA, 6, 24, mtx); break; + case GX_TEXCOORD4: SET_REG_FIELD(0x406, gx->matIdxB, 6, 0, mtx); break; + case GX_TEXCOORD5: SET_REG_FIELD(0x407, gx->matIdxB, 6, 6, mtx); break; + case GX_TEXCOORD6: SET_REG_FIELD(0x408, gx->matIdxB, 6, 12, mtx); break; + default: SET_REG_FIELD(0x409, gx->matIdxB, 6, 18, mtx); break; + } + mtxIdAttr = dst_coord + 1; + __GXSetMatrixIndex(mtxIdAttr); +} + +void GXSetNumTexGens(u8 nTexGens) +{ + CHECK_GXBEGIN(0x41B, "GXSetNumTexGens"); + SET_REG_FIELD(0x41D, gx->genMode, 4, 0, nTexGens); + GX_WRITE_XF_REG(0x3F, nTexGens); + gx->dirtyState |= 4; +} diff --git a/src/dolphin/gx/GXBump.c b/src/dolphin/gx/GXBump.c new file mode 100644 index 00000000..910370d8 --- /dev/null +++ b/src/dolphin/gx/GXBump.c @@ -0,0 +1,335 @@ +#include +#include + +#include + +#if DEBUG +#define GX_WRITE_SOME_REG5(a, b) \ + do { \ + GX_WRITE_U8(a); \ + GX_WRITE_U32(b); \ + __gxVerif->rasRegs[(b >> 24) & 0xFF] = b; \ + } while (0) +#else +#define GX_WRITE_SOME_REG5(a, b) \ + do { \ + GX_WRITE_U8(a); \ + GX_WRITE_U32(b); \ + } while (0) +#endif + +void GXSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexFormat format, GXIndTexBiasSel bias_sel, GXIndTexMtxID matrix_sel, + GXIndTexWrap wrap_s, GXIndTexWrap wrap_t, GXBool add_prev, GXBool utc_lod, GXIndTexAlphaSel alpha_sel) +{ + u32 reg; + + CHECK_GXBEGIN(0x92, "GXInitIndTexture"); + reg = 0; + SET_REG_FIELD(0x81, reg, 2, 0, ind_stage); + SET_REG_FIELD(0x82, reg, 2, 2, format); + SET_REG_FIELD(0x83, reg, 3, 4, bias_sel); + SET_REG_FIELD(0x84, reg, 2, 7, alpha_sel); + SET_REG_FIELD(0x85, reg, 4, 9, matrix_sel); + SET_REG_FIELD(0x86, reg, 3, 13, wrap_s); + SET_REG_FIELD(0x87, reg, 3, 16, wrap_t); + SET_REG_FIELD(0x88, reg, 1, 19, utc_lod); + SET_REG_FIELD(0x89, reg, 1, 20, add_prev); + SET_REG_FIELD(0x8A, reg, 8, 24, tev_stage + 16); + GX_WRITE_SOME_REG5(0x61, reg); + gx->bpSentNot = 0; +} + +void GXSetIndTexMtx(GXIndTexMtxID mtx_id, f32 offset[2][3], s8 scale_exp) +{ + s32 mtx[6]; + u32 reg; + u32 id; + + CHECK_GXBEGIN(0xBA, "GXSetIndTexMtx"); + + switch (mtx_id) { + case GX_ITM_0: + case GX_ITM_1: + case GX_ITM_2: + id = mtx_id - 1; + break; + case GX_ITM_S0: + case GX_ITM_S1: + case GX_ITM_S2: + id = mtx_id - 5; + break; + case GX_ITM_T0: + case GX_ITM_T1: + case GX_ITM_T2: + id = mtx_id - 9; + break; + default: + id = 0; + break; + } + + mtx[0] = (int)(1024.0f * offset[0][0]) & 0x7FF; + mtx[1] = (int)(1024.0f * offset[1][0]) & 0x7FF; + scale_exp += 0x11; + reg = 0; + SET_REG_FIELD(0xBD, reg, 11, 0, mtx[0]); + SET_REG_FIELD(0xBE, reg, 11, 11, mtx[1]); + SET_REG_FIELD(0xBF, reg, 2, 22, scale_exp & 3); + SET_REG_FIELD(0xC0, reg, 8, 24, id * 3 + 6); + GX_WRITE_SOME_REG5(0x61, reg); + + mtx[2] = (int)(1024.0f * offset[0][1]) & 0x7FF; + mtx[3] = (int)(1024.0f * offset[1][1]) & 0x7FF; + reg = 0; + SET_REG_FIELD(0xC6, reg, 11, 0, mtx[2]); + SET_REG_FIELD(0xC7, reg, 11, 11, mtx[3]); + SET_REG_FIELD(0xC8, reg, 2, 22, (scale_exp >> 2) & 3); + SET_REG_FIELD(0xC9, reg, 8, 24, id * 3 + 7); + GX_WRITE_SOME_REG5(0x61, reg); + + mtx[4] = (int)(1024.0f * offset[0][2]) & 0x7FF; + mtx[5] = (int)(1024.0f * offset[1][2]) & 0x7FF; + reg = 0; + SET_REG_FIELD(0xCF, reg, 11, 0, mtx[4]); + SET_REG_FIELD(0xD0, reg, 11, 11, mtx[5]); + SET_REG_FIELD(0xD1, reg, 2, 22, (scale_exp >> 4) & 3); + SET_REG_FIELD(0xD2, reg, 8, 24, id * 3 + 8); + GX_WRITE_SOME_REG5(0x61, reg); + + gx->bpSentNot = 0; +} + +void GXSetIndTexCoordScale(GXIndTexStageID ind_state, GXIndTexScale scale_s, GXIndTexScale scale_t) +{ + CHECK_GXBEGIN(0xF9, "GXSetIndTexScale"); + + switch (ind_state) { + case GX_INDTEXSTAGE0: + SET_REG_FIELD(0xEA, gx->IndTexScale0, 4, 0, scale_s); + SET_REG_FIELD(0xEB, gx->IndTexScale0, 4, 4, scale_t); + SET_REG_FIELD(0xEC, gx->IndTexScale0, 8, 24, 0x25); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale0); + break; + case GX_INDTEXSTAGE1: + SET_REG_FIELD(0xF0, gx->IndTexScale0, 4, 8, scale_s); + SET_REG_FIELD(0xF1, gx->IndTexScale0, 4, 12, scale_t); + SET_REG_FIELD(0xF2, gx->IndTexScale0, 8, 24, 0x25); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale0); + break; + case GX_INDTEXSTAGE2: + SET_REG_FIELD(0xF6, gx->IndTexScale1, 4, 0, scale_s); + SET_REG_FIELD(0xF7, gx->IndTexScale1, 4, 4, scale_t); + SET_REG_FIELD(0xF8, gx->IndTexScale1, 8, 24, 0x26); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale1); + break; + case GX_INDTEXSTAGE3: + SET_REG_FIELD(0xFC, gx->IndTexScale1, 4, 8, scale_s); + SET_REG_FIELD(0xFD, gx->IndTexScale1, 4, 12, scale_t); + SET_REG_FIELD(0xFE, gx->IndTexScale1, 8, 24, 0x26); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale1); + break; + default: + ASSERTMSGLINE(0x115, 0, "GXSetIndTexCoordScale: Invalid Indirect Stage Id"); + break; + } + gx->bpSentNot = 0; +} + +void GXSetIndTexOrder(GXIndTexStageID ind_stage, GXTexCoordID tex_coord, GXTexMapID tex_map) +{ + CHECK_GXBEGIN(0x12E, "GXSetIndTexOrder"); + + ASSERTMSGLINE(0x11D, tex_map < 8, "GXSetIndTexOrder: Invalid direct texture Id"); + ASSERTMSGLINE(0x11E, tex_coord < 8, "GXSetIndTexOrder: Invalid texture coord"); + switch (ind_stage) { + case GX_INDTEXSTAGE0: + SET_REG_FIELD(0x122, gx->iref, 3, 0, tex_map); + SET_REG_FIELD(0x123, gx->iref, 3, 3, tex_coord); + break; + case GX_INDTEXSTAGE1: + SET_REG_FIELD(0x126, gx->iref, 3, 6, tex_map); + SET_REG_FIELD(0x127, gx->iref, 3, 9, tex_coord); + break; + case GX_INDTEXSTAGE2: + SET_REG_FIELD(0x12A, gx->iref, 3, 12, tex_map); + SET_REG_FIELD(0x12B, gx->iref, 3, 15, tex_coord); + break; + case GX_INDTEXSTAGE3: + SET_REG_FIELD(0x12E, gx->iref, 3, 18, tex_map); + SET_REG_FIELD(0x12F, gx->iref, 3, 21, tex_coord); + break; + default: + ASSERTMSGLINE(0x132, 0, "GXSetIndTexOrder: Invalid Indirect Stage Id"); + break; + } + GX_WRITE_SOME_REG5(0x61, gx->iref); + gx->dirtyState |= 3; + gx->bpSentNot = 0; +} + +void GXSetNumIndStages(u8 nIndStages) +{ + CHECK_GXBEGIN(0x144, "GXSetNumIndStages"); + ASSERTMSGLINE(0x146, nIndStages <= 4, "GXSetNumIndStages: Exceeds max. number of indirect texture stages"); + SET_REG_FIELD(0x147, gx->genMode, 3, 16, nIndStages); + gx->dirtyState |= 6; +} + +#pragma dont_inline on +void GXSetTevDirect(GXTevStageID tev_stage) +{ + CHECK_GXBEGIN(0x158, "GXSetTevDirect"); + GXSetTevIndirect(tev_stage, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, 0U, 0, 0); +} + +void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u8 signed_offset, u8 replace_mode, GXIndTexMtxID matrix_sel) +{ + GXIndTexWrap wrap = (replace_mode != 0) ? GX_ITW_0 : GX_ITW_OFF; + + CHECK_GXBEGIN(0x16E, "GXSetTevIndWarp"); + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, (signed_offset != 0) ? GX_ITB_STU : GX_ITB_NONE, matrix_sel, wrap, wrap, 0U, 0, 0); +} + +void GXSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, u16 tilespacing_t, + GXIndTexFormat format, GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel) +{ + GXIndTexWrap wrap_s; + GXIndTexWrap wrap_t; + f32 mtx[2][3]; + + CHECK_GXBEGIN(0x190, "GXSetTevIndTile"); + ASSERTMSGLINE(0x191, tev_stage < 16, "GXSetTevIndTile: Invalid tev stage id"); + ASSERTMSGLINE(0x192, ind_stage < 4, "GXSetTevIndTile: Invalid indirect stage id"); + switch (tilesize_s) { + case 256: + wrap_s = GX_ITW_256; + break; + case 128: + wrap_s = GX_ITW_128; + break; + case 64: + wrap_s = GX_ITW_64; + break; + case 32: + wrap_s = GX_ITW_32; + break; + case 16: + wrap_s = GX_ITW_16; + break; + default: + ASSERTMSGLINE(0x19B, 0, "GXSetTevIndTile: Invalid tilesize for S coordinate"); + wrap_s = GX_ITW_OFF; + break; + } + switch (tilesize_t) { + case 256: + wrap_t = GX_ITW_256; + break; + case 128: + wrap_t = GX_ITW_128; + break; + case 64: + wrap_t = GX_ITW_64; + break; + case 32: + wrap_t = GX_ITW_32; + break; + case 16: + wrap_t = GX_ITW_16; + break; + default: + ASSERTMSGLINE(0x1A7, 0, "GXSetTevIndTile: Invalid tilesize for T coordinate"); + wrap_t = GX_ITW_OFF; + break; + } + mtx[0][0] = tilespacing_s / 1024.0f; + mtx[0][1] = mtx[0][2] = 0.0f; + mtx[1][1] = tilespacing_t / 1024.0f; + mtx[1][0] = mtx[1][2] = 0.0f; + GXSetIndTexMtx(matrix_sel, mtx, 0xA); + GXSetTevIndirect(tev_stage, ind_stage, format, bias_sel, matrix_sel, wrap_s, wrap_t, 0U, 1, alpha_sel); +} +#pragma dont_inline off + +void GXSetTevIndBumpST(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel) +{ + GXIndTexMtxID sm; + GXIndTexMtxID tm; + + CHECK_GXBEGIN(0x1CF, "GXSetTevIndBumpST"); + switch (matrix_sel) { + case GX_ITM_0: + sm = GX_ITM_S0; + tm = GX_ITM_T0; + break; + case GX_ITM_1: + sm = GX_ITM_S1; + tm = GX_ITM_T1; + break; + case GX_ITM_2: + sm = GX_ITM_S2; + tm = GX_ITM_T2; + break; + default: + ASSERTMSGLINE(0x1E0, 0, "GXSetTevIndBumpST: Invalid matrix selection"); + break; + } + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, GX_ITB_ST, sm, GX_ITW_0, GX_ITW_0, 0U, 0, 0); + GXSetTevIndirect(tev_stage + 1, ind_stage, GX_ITF_8, GX_ITB_ST, tm, GX_ITW_0, GX_ITW_0, 1U, 0, 0); + GXSetTevIndirect(tev_stage + 2, ind_stage, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, 1U, 0, 0); +} + +void GXSetTevIndBumpXYZ(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel) +{ + CHECK_GXBEGIN(0x214, "GXSetTevIndBumpXYZ"); + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, GX_ITB_STU, matrix_sel, GX_ITW_OFF, GX_ITW_OFF, 0U, 0, 0); +} + +void GXSetTevIndRepeat(GXTevStageID tev_stage) +{ + CHECK_GXBEGIN(0x231, "GXSetTevIndRepeat"); + GXSetTevIndirect(tev_stage, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_0, GX_ITW_0, 1U, 0, 0); +} + +void __GXUpdateBPMask(void) +{ + u32 nIndStages; + u32 i; + u32 tmap; + u32 new_imask; + u32 nStages; + u32 new_dmask; + + new_imask = 0; + new_dmask = 0; + nIndStages = GET_REG_FIELD(gx->genMode, 3, 16); + for (i = 0; i < nIndStages; i++) { + switch (i) { + case 0: + tmap = GET_REG_FIELD(gx->iref, 3, 0); + break; + case 1: + tmap = GET_REG_FIELD(gx->iref, 3, 6); + break; + case 2: + tmap = GET_REG_FIELD(gx->iref, 3, 12); + break; + case 3: + tmap = GET_REG_FIELD(gx->iref, 3, 18); + break; + } + new_imask |= 1 << tmap; + } + + if ((u8)gx->bpMask != new_imask) { + SET_REG_FIELD(0x26E, gx->bpMask, 8, 0, new_imask); + GX_WRITE_SOME_REG5(0x61, gx->bpMask); + gx->bpSentNot = 0; + } +} + +void __GXFlushTextureState(void) +{ + GX_WRITE_SOME_REG5(0x61, gx->bpMask); + gx->bpSentNot = 0; +} diff --git a/src/dolphin/gx/GXDisplayList.c b/src/dolphin/gx/GXDisplayList.c new file mode 100644 index 00000000..cc751606 --- /dev/null +++ b/src/dolphin/gx/GXDisplayList.c @@ -0,0 +1,83 @@ +#include + +#include +#include + +#include + +static struct __GXFifoObj DisplayListFifo; +static volatile struct __GXFifoObj *OldCPUFifo; +static struct __GXData_struct __savedGXdata; + +void GXBeginDisplayList(void *list, u32 size) +{ + struct __GXFifoObj *CPUFifo = (struct __GXFifoObj *)GXGetCPUFifo(); + + CHECK_GXBEGIN(0x89, "GXBeginDisplayList"); + ASSERTMSGLINE(0x8A, !__GXData->inDispList, "GXBeginDisplayList: display list already in progress"); + ASSERTMSGLINE(0x8B, (size & 0x1F) == 0, "GXBeginDisplayList: size is not 32 byte aligned"); + ASSERTMSGLINE(0x8C, ((u32)list & 0x1F) == 0, "GXBeginDisplayList: list is not 32 byte aligned"); + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (gx->dlSaveContext != 0) { + memcpy(&__savedGXdata, gx, sizeof(__savedGXdata)); + } + DisplayListFifo.base = (u8 *)list; + DisplayListFifo.top = (u8 *)list + size - 4; + DisplayListFifo.size = size; + DisplayListFifo.count = 0; + DisplayListFifo.rdPtr = list; + DisplayListFifo.wrPtr = list; + gx->inDispList = 1; + GXSaveCPUFifo((GXFifoObj *)CPUFifo); + OldCPUFifo = CPUFifo; + GXSetCPUFifo((GXFifoObj *)&DisplayListFifo); +} + +unsigned long GXEndDisplayList(void) +{ + u32 ov; + BOOL enabled; + u32 cpenable; + + CHECK_GXBEGIN(0xB5, "GXEndDisplayList"); + ASSERTMSGLINE(0xB6, gx->inDispList == TRUE, "GXEndDisplayList: no display list in progress"); + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + ov = (__piReg[5] >> 26) & 1; + __GXSaveCPUFifoAux(&DisplayListFifo); + ASSERTMSGLINE(0xC3, !ov, "GXEndDisplayList: display list commands overflowed buffer"); + GXSetCPUFifo((GXFifoObj *)OldCPUFifo); + if (gx->dlSaveContext != 0) { + enabled = OSDisableInterrupts(); + cpenable = gx->cpEnable; + memcpy(gx, &__savedGXdata, sizeof(*gx)); + gx->cpEnable = cpenable; + OSRestoreInterrupts(enabled); + } + gx->inDispList = 0; + if (!ov) { + return DisplayListFifo.count; + } + return 0; +} + +void GXCallDisplayList(const void *list, u32 nbytes) +{ + CHECK_GXBEGIN(0xEC, "GXCallDisplayList"); + ASSERTMSGLINE(0xED, !gx->inDispList, "GXCallDisplayList: display list already in progress"); + ASSERTMSGLINE(0xEE, (nbytes & 0x1F) == 0, "GXCallDisplayList: nbytes is not 32 byte aligned"); + ASSERTMSGLINE(0xEF, ((u32)list & 0x1F) == 0, "GXCallDisplayList: list is not 32 byte aligned"); + + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (*(u32 *)&gx->vNumNot == 0) { // checks both vNum and bpSent + __GXSendFlushPrim(); + } + GX_WRITE_U8(0x40); + GX_WRITE_U32((u32)list); + GX_WRITE_U32(nbytes); +} diff --git a/src/dolphin/gx/GXFifo.c b/src/dolphin/gx/GXFifo.c new file mode 100644 index 00000000..583303a0 --- /dev/null +++ b/src/dolphin/gx/GXFifo.c @@ -0,0 +1,559 @@ +#include +#include +#include +#include + + +#include + +static struct __GXFifoObj* CPUFifo; +static struct __GXFifoObj* GPFifo; +static OSThread* __GXCurrentThread; +static GXBool CPGPLinked; +static BOOL GXOverflowSuspendInProgress; +static GXBreakPtCallback BreakPointCB; +static u32 __GXOverflowCount; + +void* __GXCurrentBP; + +static void __GXFifoReadEnable(void); +static void __GXFifoReadDisable(void); +static void __GXFifoLink(u8 arg0); +static void __GXWriteFifoIntEnable(u8 arg0, u8 arg1); +static void __GXWriteFifoIntReset(u8 arg0, u8 arg1); + +static void GXOverflowHandler(s16 interrupt, OSContext *context) +{ + ASSERTLINE(0x179, !GXOverflowSuspendInProgress); + + __GXOverflowCount++; + __GXWriteFifoIntEnable(0, 1); + __GXWriteFifoIntReset(1, 0); + GXOverflowSuspendInProgress = TRUE; + + OSSuspendThread(__GXCurrentThread); +} + +static void GXUnderflowHandler(s16 interrupt, OSContext *context) +{ + ASSERTLINE(0x1A3, GXOverflowSuspendInProgress); + + OSResumeThread(__GXCurrentThread); + GXOverflowSuspendInProgress = FALSE; + __GXWriteFifoIntReset(1U, 1U); + __GXWriteFifoIntEnable(1U, 0U); +} + +#define SOME_SET_REG_MACRO(reg, size, shift, val) \ + do { \ + (reg) = (u32)__rlwimi((u32)(reg), (val), (shift), (32 - (shift) - (size)), (31 - (shift))); \ + } while (0); + +static void GXBreakPointHandler(s16 interrupt, OSContext *context) +{ + OSContext exceptionContext; + + gx->cpEnable = gx->cpEnable & 0xFFFFFFDF; + __cpReg[1] = gx->cpEnable; + if (BreakPointCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + BreakPointCB(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +static void GXCPInterruptHandler(s16 interrupt, OSContext *context) +{ + gx->cpStatus = GX_GET_CP_REG(0); + if (GET_REG_FIELD(gx->cpEnable, 1, 3) && GET_REG_FIELD(gx->cpStatus, 1, 1)) { + GXUnderflowHandler(interrupt, context); + } + if (GET_REG_FIELD(gx->cpEnable, 1, 2) && GET_REG_FIELD(gx->cpStatus, 1, 0)) { + GXOverflowHandler(interrupt, context); + } + if (GET_REG_FIELD(gx->cpEnable, 1, 5) && GET_REG_FIELD(gx->cpStatus, 1, 4)) { + GXBreakPointHandler(interrupt, context); + } +} + +void GXInitFifoBase(GXFifoObj *fifo, void *base, u32 size) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + ASSERTMSGLINE(0x21E, realFifo != CPUFifo, "GXInitFifoBase: fifo is attached to CPU"); + ASSERTMSGLINE(0x220, realFifo != GPFifo, "GXInitFifoBase: fifo is attached to GP"); + ASSERTMSGLINE(0x222, ((u32)base & 0x1F) == 0, "GXInitFifoBase: base must be 32B aligned"); + ASSERTMSGLINE(0x224, base != NULL, "GXInitFifoBase: base pointer is NULL"); + ASSERTMSGLINE(0x226, (size & 0x1F) == 0, "GXInitFifoBase: size must be 32B aligned"); + ASSERTMSGLINE(0x228, size >= 0x10000, "GXInitFifoBase: fifo is not large enough"); + + realFifo->base = base; + realFifo->top = (u8 *)base + size - 4; + realFifo->size = size; + realFifo->count = 0; + GXInitFifoLimits(fifo, size - 0x4000, (size >> 1) & ~0x1F); + GXInitFifoPtrs(fifo, base, base); +} + +void GXInitFifoPtrs(GXFifoObj *fifo, void *readPtr, void *writePtr) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled; + + ASSERTMSGLINE(0x250, realFifo != CPUFifo, "GXInitFifoPtrs: fifo is attached to CPU"); + ASSERTMSGLINE(0x252, realFifo != GPFifo, "GXInitFifoPtrs: fifo is attached to GP"); + ASSERTMSGLINE(0x254, ((u32)readPtr & 0x1F) == 0, "GXInitFifoPtrs: readPtr not 32B aligned"); + ASSERTMSGLINE(0x256, ((u32)writePtr & 0x1F) == 0, "GXInitFifoPtrs: writePtr not 32B aligned"); + ASSERTMSGLINE(0x259, realFifo->base <= readPtr && readPtr < realFifo->top, "GXInitFifoPtrs: readPtr not in fifo range"); + ASSERTMSGLINE(0x25C, realFifo->base <= writePtr && writePtr < realFifo->top, "GXInitFifoPtrs: writePtr not in fifo range"); + + enabled = OSDisableInterrupts(); + realFifo->rdPtr = readPtr; + realFifo->wrPtr = writePtr; + realFifo->count = (u8 *)writePtr - (u8 *)readPtr; + if (realFifo->count < 0) { + realFifo->count += realFifo->size; + } + OSRestoreInterrupts(enabled); +} + +void GXInitFifoLimits(GXFifoObj *fifo, u32 hiWatermark, u32 loWatermark) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + ASSERTMSGLINE(0x281, realFifo != GPFifo, "GXInitFifoLimits: fifo is attached to GP"); + ASSERTMSGLINE(0x283, (hiWatermark & 0x1F) == 0, "GXInitFifoLimits: hiWatermark not 32B aligned"); + ASSERTMSGLINE(0x285, (loWatermark & 0x1F) == 0, "GXInitFifoLimits: loWatermark not 32B aligned"); + ASSERTMSGLINE(0x287, hiWatermark < realFifo->top - realFifo->base, "GXInitFifoLimits: hiWatermark too large"); + ASSERTMSGLINE(0x289, loWatermark < hiWatermark, "GXInitFifoLimits: hiWatermark below lo watermark"); + + realFifo->hiWatermark = hiWatermark; + realFifo->loWatermark = loWatermark; +} + +void GXSetCPUFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled = OSDisableInterrupts(); + + CPUFifo = realFifo; + if (CPUFifo == GPFifo) + { + u32 reg = 0; + + __piReg[3] = (u32)realFifo->base & 0x3FFFFFFF; + __piReg[4] = (u32)realFifo->top & 0x3FFFFFFF; + SET_REG_FIELD(0x294, reg, 21, 5, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x295, reg, 1, 26, 0); + __piReg[5] = reg; + CPGPLinked = GX_TRUE; + __GXWriteFifoIntReset(1, 1); + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + else + { + u32 reg; + + if (CPGPLinked) + { + __GXFifoLink(0); + CPGPLinked = GX_FALSE; + } + __GXWriteFifoIntEnable(0, 0); + reg = 0; + __piReg[3] = (u32)realFifo->base & 0x3FFFFFFF; + __piReg[4] = (u32)realFifo->top & 0x3FFFFFFF; + SET_REG_FIELD(0x2B7, reg, 21, 5, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x2B8, reg, 1, 26, 0); + __piReg[5] = reg; + } + + __sync(); + + OSRestoreInterrupts(enabled); +} + +void GXSetGPFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled = OSDisableInterrupts(); + + __GXFifoReadDisable(); + __GXWriteFifoIntEnable(0, 0); + GPFifo = realFifo; + + GX_SET_CP_REG(16, (u32)realFifo->base & 0xFFFF); + GX_SET_CP_REG(18, (u32)realFifo->top & 0xFFFF); + GX_SET_CP_REG(24, realFifo->count & 0xFFFF); + GX_SET_CP_REG(26, (u32)realFifo->wrPtr & 0xFFFF); + GX_SET_CP_REG(28, (u32)realFifo->rdPtr & 0xFFFF); + GX_SET_CP_REG(20, (u32)realFifo->hiWatermark & 0xFFFF); + GX_SET_CP_REG(22, (u32)realFifo->loWatermark & 0xFFFF); + GX_SET_CP_REG(17, ((u32)realFifo->base & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(19, ((u32)realFifo->top & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(25, realFifo->count >> 16); + GX_SET_CP_REG(27, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(29, ((u32)realFifo->rdPtr & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(21, (u32)realFifo->hiWatermark >> 16); + GX_SET_CP_REG(23, (u32)realFifo->loWatermark >> 16); + + __sync(); + + if (CPUFifo == GPFifo) { + CPGPLinked = GX_TRUE; + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + else { + CPGPLinked = GX_FALSE; + __GXWriteFifoIntEnable(0, 0); + __GXFifoLink(0); + } + __GXWriteFifoIntReset(1, 1); + __GXFifoReadEnable(); + OSRestoreInterrupts(enabled); +} + +void GXSaveCPUFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + ASSERTMSGLINE(0x343, realFifo == CPUFifo, "GXSaveCPUFifo: fifo is not attached to CPU"); + __GXSaveCPUFifoAux(realFifo); +} + +#define SOME_MACRO1(fifo) \ + do { \ + u32 temp = GX_GET_CP_REG(29) << 16; \ + temp |= GX_GET_CP_REG(28); \ + fifo->rdPtr = OSPhysicalToCached(temp); \ + } while (0) + +#define SOME_MACRO2(fifo) \ + do { \ + u32 temp = GX_GET_CP_REG(25) << 16; \ + temp |= GX_GET_CP_REG(24); \ + fifo->count = temp; \ + } while (0) + +void __GXSaveCPUFifoAux(struct __GXFifoObj *realFifo) +{ + BOOL enabled = OSDisableInterrupts(); + + GXFlush(); + realFifo->base = OSPhysicalToCached(__piReg[3]); + realFifo->top = OSPhysicalToCached(__piReg[4]); + realFifo->wrPtr = OSPhysicalToCached(__piReg[5] & 0xFBFFFFFF); + if (CPGPLinked) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } else { + realFifo->count = (u8 *)realFifo->wrPtr - (u8 *)realFifo->rdPtr; + if (realFifo->count < 0) + realFifo->count += realFifo->size; + } + OSRestoreInterrupts(enabled); +} + +void GXSaveGPFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + unsigned long cpStatus; + unsigned char readIdle; + unsigned long temp; + + ASSERTMSGLINE(0x38C, realFifo == GPFifo, "GXSaveGPFifo: fifo is not attached to GP"); + cpStatus = GX_GET_CP_REG(0); + readIdle = GET_REG_FIELD(cpStatus, 1, 2); + ASSERTMSGLINE(0x393, readIdle, "GXSaveGPFifo: GP is not idle"); + + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); +} + +void GXGetGPStatus(GXBool *overhi, GXBool *underlow, GXBool *readIdle, GXBool *cmdIdle, GXBool *brkpt) +{ + gx->cpStatus = GX_GET_CP_REG(0); + *overhi = GET_REG_FIELD(gx->cpStatus, 1, 0); + *underlow = (int)GET_REG_FIELD(gx->cpStatus, 1, 1); + *readIdle = (int)GET_REG_FIELD(gx->cpStatus, 1, 2); + *cmdIdle = (int)GET_REG_FIELD(gx->cpStatus, 1, 3); + *brkpt = (int)GET_REG_FIELD(gx->cpStatus, 1, 4); +} + +void GXGetFifoStatus(GXFifoObj *fifo, GXBool *overhi, GXBool *underflow, u32 *fifoCount, GXBool *cpuWrite, GXBool *gpRead, GXBool *fifowrap) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + *underflow = GX_FALSE; + *overhi = GX_FALSE; + *fifoCount = 0; + *fifowrap = GX_FALSE; + if (realFifo == GPFifo) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } + if (realFifo == CPUFifo) { + GXFlush(); + __GXSaveCPUFifoAux(realFifo); + *fifowrap = (int)GET_REG_FIELD(GX_GET_PI_REG(5), 1, 26); + } + *overhi = (realFifo->count > realFifo->hiWatermark); + *underflow = (realFifo->count < realFifo->loWatermark); + *fifoCount = (realFifo->count); + *cpuWrite = (CPUFifo == realFifo); + *gpRead = (GPFifo == realFifo); +} + +void GXGetFifoPtrs(GXFifoObj *fifo, void **readPtr, void **writePtr) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + if (realFifo == CPUFifo) { + realFifo->wrPtr = OSPhysicalToCached(GX_GET_PI_REG(5) & 0xFBFFFFFF); + } + if (realFifo == GPFifo) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } + else { + realFifo->count = (u8 *)realFifo->wrPtr - (u8 *)realFifo->rdPtr; + if (realFifo->count < 0) { + realFifo->count += realFifo->size; + } + } + *readPtr = realFifo->rdPtr; + *writePtr = realFifo->wrPtr; +} + +void *GXGetFifoBase(const GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + return realFifo->base; +} + +u32 GXGetFifoSize(const GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + return realFifo->size; +} + +void GXGetFifoLimits(const GXFifoObj *fifo, u32 *hi, u32 *lo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + *hi = realFifo->hiWatermark; + *lo = realFifo->loWatermark; +} + +GXBreakPtCallback GXSetBreakPtCallback(GXBreakPtCallback cb) +{ + GXBreakPtCallback oldcb = BreakPointCB; + BOOL enabled = OSDisableInterrupts(); + + BreakPointCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +void *__GXCurrentBP; + +void GXEnableBreakPt(void *break_pt) +{ + BOOL enabled = OSDisableInterrupts(); + + __GXFifoReadDisable(); + GX_SET_CP_REG(30, (u32)break_pt); + GX_SET_CP_REG(31, ((u32)break_pt >> 16) & 0x3FFF); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 1, 1); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 1); + GX_SET_CP_REG(1, gx->cpEnable); + __GXCurrentBP = break_pt; + __GXFifoReadEnable(); + OSRestoreInterrupts(enabled); +} + +void GXDisableBreakPt(void) +{ + BOOL enabled = OSDisableInterrupts(); + + SOME_SET_REG_MACRO(gx->cpEnable, 1, 1, 0); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 0); + GX_SET_CP_REG(1, gx->cpEnable); + __GXCurrentBP = NULL; + OSRestoreInterrupts(enabled); +} + +void __GXFifoInit(void) +{ + __OSSetInterruptHandler(0x11, GXCPInterruptHandler); + __OSUnmaskInterrupts(0x4000); + __GXCurrentThread = OSGetCurrentThread(); + GXOverflowSuspendInProgress = FALSE; + CPUFifo = NULL; + GPFifo = NULL; +} + +static void __GXFifoReadEnable(void) +{ + SET_REG_FIELD(0, gx->cpEnable, 1, 0, 1); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXFifoReadDisable(void) +{ + SET_REG_FIELD(0, gx->cpEnable, 1, 0, 0); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXFifoLink(u8 en) +{ + SET_REG_FIELD(0x4DA, gx->cpEnable, 1, 4, (en != 0) ? 1 : 0); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXWriteFifoIntEnable(u8 hiWatermarkEn, u8 loWatermarkEn) +{ + SET_REG_FIELD(0x4F0, gx->cpEnable, 1, 2, hiWatermarkEn); + SET_REG_FIELD(0x4F1, gx->cpEnable, 1, 3, loWatermarkEn); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXWriteFifoIntReset(u8 hiWatermarkClr, u8 loWatermarkClr) +{ + SET_REG_FIELD(0x508, gx->cpClr, 1, 0, hiWatermarkClr); + SET_REG_FIELD(0x509, gx->cpClr, 1, 1, loWatermarkClr); + GX_SET_CP_REG(2, gx->cpClr); +} + +void __GXInsaneWatermark(void) +{ + struct __GXFifoObj *realFifo = GPFifo; + + realFifo->hiWatermark = realFifo->loWatermark + 512; + GX_SET_CP_REG(20, (realFifo->hiWatermark & 0x3FFFFFFF) & 0xFFFF); + GX_SET_CP_REG(21, (realFifo->hiWatermark & 0x3FFFFFFF) >> 16); +} + +void __GXCleanGPFifo(void) +{ + GXFifoObj dummyFifo; + GXFifoObj *gpFifo = GXGetGPFifo(); + GXFifoObj *cpuFifo = GXGetCPUFifo(); + void *base = GXGetFifoBase(gpFifo); + + dummyFifo = *gpFifo; + GXInitFifoPtrs(&dummyFifo, base, base); + GXSetGPFifo(&dummyFifo); + if (cpuFifo == gpFifo) { + GXSetCPUFifo(&dummyFifo); + } + GXInitFifoPtrs(gpFifo, base, base); + GXSetGPFifo(gpFifo); + if (cpuFifo == gpFifo) { + GXSetCPUFifo(cpuFifo); + } +} + +OSThread *GXSetCurrentGXThread(void) +{ + BOOL enabled; + struct OSThread *prev; + + enabled = OSDisableInterrupts(); + prev = __GXCurrentThread; + ASSERTMSGLINE(0x561, !GXOverflowSuspendInProgress, "GXSetCurrentGXThread: Two threads cannot generate GX commands at the same time!"); + __GXCurrentThread = OSGetCurrentThread(); + OSRestoreInterrupts(enabled); + return prev; +} + +OSThread *GXGetCurrentGXThread(void) +{ + return __GXCurrentThread; +} + +GXFifoObj *GXGetCPUFifo(void) +{ + return (GXFifoObj *)CPUFifo; +} + +GXFifoObj *GXGetGPFifo(void) +{ + return (GXFifoObj *)GPFifo; +} + +u32 GXGetOverflowCount(void) +{ + return __GXOverflowCount; +} + +u32 GXResetOverflowCount(void) +{ + u32 oldcount; + + oldcount = __GXOverflowCount; + __GXOverflowCount = 0; + return oldcount; +} + +// NONMATCHING +volatile void *GXRedirectWriteGatherPipe(void *ptr) +{ + u32 reg = 0; + BOOL enabled = OSDisableInterrupts(); + + CHECK_GXBEGIN(0x5D5, "GXRedirectWriteGatherPipe"); + ASSERTLINE(0x5D6, OFFSET(ptr, 32) == 0); + ASSERTLINE(0x5D8, !IsWGPipeRedirected); + + GXFlush(); + while (PPCMfwpar() & 1) { } + PPCMtwpar((u32)OSUncachedToPhysical((void *)GXFIFO_ADDR)); + if (CPGPLinked) { + __GXFifoLink(0); + __GXWriteFifoIntEnable(0, 0); + } + CPUFifo->wrPtr = OSPhysicalToCached(GX_GET_PI_REG(5) & 0xFBFFFFFF); + GX_SET_PI_REG(3, 0); + GX_SET_PI_REG(4, 0x04000000); + SET_REG_FIELD(0x5F7, reg, 21, 5, ((u32)ptr & 0x3FFFFFFF) >> 5); + reg &= 0xFBFFFFFF; + GX_SET_PI_REG(5, reg); + PPCSync(); + OSRestoreInterrupts(enabled); + return (volatile void *)GXFIFO_ADDR; +} + +// NONMATCHING +void GXRestoreWriteGatherPipe(void) +{ + u32 reg = 0; // r31 + u32 i; // r29 + BOOL enabled; // r28 + + ASSERTLINE(0x610, IsWGPipeRedirected); + enabled = OSDisableInterrupts(); + for (i = 0; i < 31; i++) { + GXWGFifo.u8 = 0; + } + PPCSync(); + while (PPCMfwpar() & 1) { } + PPCMtwpar((u32)OSUncachedToPhysical((void *)GXFIFO_ADDR)); + GX_SET_PI_REG(3, (u32)CPUFifo->base & 0x3FFFFFFF); + GX_SET_PI_REG(4, (u32)CPUFifo->top & 0x3FFFFFFF); + SET_REG_FIELD(0x62A, reg, 21, 5, ((u32)CPUFifo->wrPtr & 0x3FFFFFFF) >> 5); + reg &= 0xFBFFFFFF; + GX_SET_PI_REG(5, reg); + if (CPGPLinked) { + __GXWriteFifoIntReset(1, 1); + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + PPCSync(); + OSRestoreInterrupts(enabled); +} diff --git a/src/dolphin/gx/GXFrameBuf.c b/src/dolphin/gx/GXFrameBuf.c new file mode 100644 index 00000000..9c12a892 --- /dev/null +++ b/src/dolphin/gx/GXFrameBuf.c @@ -0,0 +1,603 @@ +#include +#include + +#include + +GXRenderModeObj GXNtsc240Ds = { 1, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240DsAa = { 1, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240Int = { 0, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240IntAa = { 0, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480IntDf = { 0, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; + +GXRenderModeObj GXNtsc480Int = { 0, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480IntAa = { 0, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; + +GXRenderModeObj GXNtsc480Prog = { 2, 640, 480, 480, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480ProgSoft = { 2, 640, 480, 480, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; + +GXRenderModeObj GXNtsc480ProgAa = { 2, 640, 242, 480, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; + +GXRenderModeObj GXMpal240Ds = { 9, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240DsAa = { 9, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240Int = { 8, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240IntAa = { 8, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal480IntDf = { 8, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXMpal480Int = { 8, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal480IntAa = { 8, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXPal264Ds = { 5, 640, 264, 264, 40, 11, 640, 528, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264DsAa = { 5, 640, 264, 264, 40, 11, 640, 528, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264Int = { 4, 640, 264, 264, 40, 23, 640, 528, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264IntAa = { 4, 640, 264, 264, 40, 23, 640, 528, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal528IntDf = { 4, 640, 528, 528, 40, 23, 640, 528, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXPal528Int = { 4, 640, 528, 528, 40, 23, 640, 528, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal524IntAa = { 4, 640, 264, 524, 40, 23, 640, 524, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXEurgb60Hz240Ds = { 21, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240DsAa = { 21, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240Int = { 20, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240IntAa = { 20, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz480IntDf = { 20, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXEurgb60Hz480Int = { 20, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz480IntAa = { 20, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXRmHW = { 1, 320, 240, 240, 40, 0, 640, 480, 0, 0, 0, { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, + { 0, 0, 21, 22, 21, 0, 0 } }; + +void GXAdjustForOverscan(GXRenderModeObj *rmin, GXRenderModeObj *rmout, u16 hor, u16 ver) +{ + u16 hor2 = hor * 2; + u16 ver2 = ver * 2; + u32 verf; + u32 mode; + + if (rmin != rmout) { + *rmout = *rmin; + } + + mode = rmin->viTVmode & 3; + rmout->fbWidth = rmin->fbWidth - hor2; + verf = (ver2 * rmin->efbHeight) / (u32)rmin->xfbHeight; + rmout->efbHeight = rmin->efbHeight - verf; + if (rmin->xFBmode == VI_XFBMODE_SF && ((rmin->viTVmode & 2) != 2)) { + rmout->xfbHeight = rmin->xfbHeight - ver; + } + else { + rmout->xfbHeight = rmin->xfbHeight - ver2; + } + + rmout->viWidth = rmin->viWidth - hor2; + rmout->viHeight = rmin->viHeight - ver2; + rmout->viXOrigin = rmin->viXOrigin + hor; + rmout->viYOrigin = rmin->viYOrigin + ver; +} + +void GXSetDispCopySrc(u16 left, u16 top, u16 wd, u16 ht) +{ + CHECK_GXBEGIN(0x4D3, "GXSetDispCopySrc"); + + gx->cpDispSrc = 0; + SET_REG_FIELD(0x4D6, gx->cpDispSrc, 10, 0, left); + SET_REG_FIELD(0x4D7, gx->cpDispSrc, 10, 10, top); + SET_REG_FIELD(0x4D7, gx->cpDispSrc, 8, 24, 0x49); + + gx->cpDispSize = 0; + SET_REG_FIELD(0x4DB, gx->cpDispSize, 10, 0, wd - 1); + SET_REG_FIELD(0x4DC, gx->cpDispSize, 10, 10, ht - 1); + SET_REG_FIELD(0x4DC, gx->cpDispSize, 8, 24, 0x4A); +} + +void GXSetTexCopySrc(u16 left, u16 top, u16 wd, u16 ht) +{ + CHECK_GXBEGIN(0x4EF, "GXSetTexCopySrc"); + + gx->cpTexSrc = 0; + SET_REG_FIELD(0x4F2, gx->cpTexSrc, 10, 0, left); + SET_REG_FIELD(0x4F3, gx->cpTexSrc, 10, 10, top); + SET_REG_FIELD(0x4F3, gx->cpTexSrc, 8, 24, 0x49); + + gx->cpTexSize = 0; + SET_REG_FIELD(0x4F7, gx->cpTexSize, 10, 0, wd - 1); + SET_REG_FIELD(0x4F8, gx->cpTexSize, 10, 10, ht - 1); + SET_REG_FIELD(0x4F8, gx->cpTexSize, 8, 24, 0x4A); +} + +void GXSetDispCopyDst(u16 wd, u16 ht) +{ + u16 stride; + + ASSERTMSGLINE(0x50D, (wd & 0xF) == 0, "GXSetDispCopyDst: Width must be a multiple of 16"); + CHECK_GXBEGIN(0x50E, "GXSetDispCopyDst"); + + stride = (int)wd * 2; + gx->cpDispStride = 0; + SET_REG_FIELD(0x514, gx->cpDispStride, 10, 0, (stride >> 5)); + SET_REG_FIELD(0x514, gx->cpDispStride, 8, 24, 0x4D); +} + +void GXSetTexCopyDst(u16 wd, u16 ht, GXTexFmt fmt, GXBool mipmap) +{ + u32 rowTiles; + u32 colTiles; + u32 cmpTiles; + u32 peTexFmt; + u32 peTexFmtH; + + CHECK_GXBEGIN(0x52F, "GXSetTexCopyDst"); + + gx->cpTexZ = 0; + peTexFmt = fmt & 0xF; + ASSERTMSGLINEV(0x54E, peTexFmt < 13, "%s: invalid texture format", "GXSetTexCopyDst"); + + if (fmt == GX_TF_Z16) { + peTexFmt = 0xB; + } + switch (fmt) { + case GX_TF_I4: + case GX_TF_I8: + case GX_TF_IA4: + case GX_TF_IA8: + case GX_CTF_YUVA8: + SET_REG_FIELD(0, gx->cpTex, 2, 15, 3); + break; + default: + SET_REG_FIELD(0, gx->cpTex, 2, 15, 2); + break; + } + + gx->cpTexZ = (fmt & _GX_TF_ZTF) == _GX_TF_ZTF; + peTexFmtH = (peTexFmt >> 3) & 1; + !peTexFmt; + SET_REG_FIELD(0x565, gx->cpTex, 1, 3, peTexFmtH); + peTexFmt = peTexFmt & 7; + __GetImageTileCount(fmt, wd, ht, &rowTiles, &colTiles, &cmpTiles); + + gx->cpTexStride = 0; + SET_REG_FIELD(0x56E, gx->cpTexStride, 10, 0, rowTiles * cmpTiles); + SET_REG_FIELD(0x570, gx->cpTexStride, 8, 24, 0x4D); + SET_REG_FIELD(0x570, gx->cpTex, 1, 9, mipmap); + SET_REG_FIELD(0x571, gx->cpTex, 3, 4, peTexFmt); +} + +void GXSetDispCopyFrame2Field(GXCopyMode mode) +{ + CHECK_GXBEGIN(0x582, "GXSetDispCopyFrame2Field"); + SET_REG_FIELD(0x583, gx->cpDisp, 2, 12, mode); + SET_REG_FIELD(0x583, gx->cpTex, 2, 12, 0); +} + +void GXSetCopyClamp(GXFBClamp clamp) +{ + u8 clmpB; + u8 clmpT; + + CHECK_GXBEGIN(0x597, "GXSetCopyClamp"); + + clmpT = (clamp & 1) == 1; + clmpB = (clamp & 2) == 2; + + SET_REG_FIELD(0x59B, gx->cpDisp, 1, 0, clmpT); + SET_REG_FIELD(0x59C, gx->cpDisp, 1, 1, clmpB); + + SET_REG_FIELD(0x59E, gx->cpTex, 1, 0, clmpT); + SET_REG_FIELD(0x59F, gx->cpTex, 1, 1, clmpB); +} + +static u32 __GXGetNumXfbLines(u32 efbHt, u32 iScale) +{ + u32 count; + u32 realHt; + u32 iScaleD; + + count = (efbHt - 1) * 0x100; + realHt = (count / iScale) + 1; + + iScaleD = iScale; + + if (iScaleD > 0x80 && iScaleD < 0x100) { + while (iScaleD % 2 == 0) { + iScaleD /= 2; + } + + if (efbHt % iScaleD == 0) { + realHt++; + } + } + + if (realHt > 0x400) { + realHt = 0x400; + } + + return realHt; +} + +u16 GXGetNumXfbLines(u16 efbHeight, f32 yScale) +{ + u32 iScale; + ASSERTMSGLINE(0x5CE, yScale >= 1.0f, "GXGetNumXfbLines: Vertical scale must be >= 1.0"); + + iScale = (u32)(256.0f / yScale) & 0x1FF; + return __GXGetNumXfbLines(efbHeight, iScale); +} + +f32 GXGetYScaleFactor(u16 efbHeight, u16 xfbHeight) +{ + f32 fScale; + f32 yScale; + u32 iScale; + u32 tgtHt; + u32 realHt; + + ASSERTMSGLINE(0x5E6, xfbHeight <= 1024, "GXGetYScaleFactor: Display copy only supports up to 1024 lines.\n"); + ASSERTMSGLINE(0x5E8, efbHeight <= xfbHeight, "GXGetYScaleFactor: EFB height should not be greater than XFB height.\n"); + + tgtHt = xfbHeight; + yScale = (f32)xfbHeight / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + + while (realHt > xfbHeight) { + tgtHt--; + yScale = (f32)tgtHt / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + } + + fScale = yScale; + while (realHt < xfbHeight) { + fScale = yScale; + tgtHt++; + yScale = (f32)tgtHt / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + } + + return fScale; +} + +u32 GXSetDispCopyYScale(f32 vscale) +{ + u32 scale; + GXBool check; + u32 height; + u32 reg; + + scale = (u32)(256.0f / vscale) & 0x1FF; + check = (scale != 0x100); + + reg = 0; + SET_REG_FIELD(0, reg, 9, 0, scale); + SET_REG_FIELD(0, reg, 8, 24, 0x4E); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = GX_FALSE; + + SET_REG_FIELD(0, gx->cpDisp, 1, 10, check); + + height = (gx->cpDispSize >> 10 & 0x3FF) + 1; + + return __GXGetNumXfbLines(height, scale); +} + +void GXSetCopyClear(GXColor clear_clr, u32 clear_z) +{ + u32 reg; + + CHECK_GXBEGIN(0x63C, "GXSetCopyClear"); + ASSERTMSGLINE(0x63E, clear_z <= 0xFFFFFF, "GXSetCopyClear: Z clear value is out of range"); + + reg = 0; + SET_REG_FIELD(0x641, reg, 8, 0, clear_clr.r); + SET_REG_FIELD(0x642, reg, 8, 8, clear_clr.a); + SET_REG_FIELD(0x642, reg, 8, 24, 0x4F); + GX_WRITE_RAS_REG(reg); + + reg = 0; + SET_REG_FIELD(0x647, reg, 8, 0, clear_clr.b); + SET_REG_FIELD(0x648, reg, 8, 8, clear_clr.g); + SET_REG_FIELD(0x648, reg, 8, 24, 0x50); + GX_WRITE_RAS_REG(reg); + + reg = 0; + SET_REG_FIELD(0x64D, reg, 24, 0, clear_z); + SET_REG_FIELD(0x64D, reg, 8, 24, 0x51); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetCopyFilter(GXBool aa, u8 sample_pattern[12][2], GXBool vf, u8 vfilter[7]) +{ + u32 msLoc[4]; + u32 coeff0; + u32 coeff1; + + CHECK_GXBEGIN(0x669, "GXSetCopyFilter"); + + if (aa != 0) { + msLoc[0] = 0; + SET_REG_FIELD(0x66D, msLoc[0], 4, 0, sample_pattern[0][0]); + SET_REG_FIELD(0x66E, msLoc[0], 4, 4, sample_pattern[0][1]); + SET_REG_FIELD(0x66F, msLoc[0], 4, 8, sample_pattern[1][0]); + SET_REG_FIELD(0x670, msLoc[0], 4, 12, sample_pattern[1][1]); + SET_REG_FIELD(0x671, msLoc[0], 4, 16, sample_pattern[2][0]); + SET_REG_FIELD(0x672, msLoc[0], 4, 20, sample_pattern[2][1]); + SET_REG_FIELD(0x673, msLoc[0], 8, 24, 1); + + msLoc[1] = 0; + SET_REG_FIELD(0x676, msLoc[1], 4, 0, sample_pattern[3][0]); + SET_REG_FIELD(0x677, msLoc[1], 4, 4, sample_pattern[3][1]); + SET_REG_FIELD(0x678, msLoc[1], 4, 8, sample_pattern[4][0]); + SET_REG_FIELD(0x679, msLoc[1], 4, 12, sample_pattern[4][1]); + SET_REG_FIELD(0x67A, msLoc[1], 4, 16, sample_pattern[5][0]); + SET_REG_FIELD(0x67B, msLoc[1], 4, 20, sample_pattern[5][1]); + SET_REG_FIELD(0x67C, msLoc[1], 8, 24, 2); + + msLoc[2] = 0; + SET_REG_FIELD(0x67F, msLoc[2], 4, 0, sample_pattern[6][0]); + SET_REG_FIELD(0x680, msLoc[2], 4, 4, sample_pattern[6][1]); + SET_REG_FIELD(0x681, msLoc[2], 4, 8, sample_pattern[7][0]); + SET_REG_FIELD(0x682, msLoc[2], 4, 12, sample_pattern[7][1]); + SET_REG_FIELD(0x683, msLoc[2], 4, 16, sample_pattern[8][0]); + SET_REG_FIELD(0x684, msLoc[2], 4, 20, sample_pattern[8][1]); + SET_REG_FIELD(0x685, msLoc[2], 8, 24, 3); + + msLoc[3] = 0; + SET_REG_FIELD(0x688, msLoc[3], 4, 0, sample_pattern[9][0]); + SET_REG_FIELD(0x689, msLoc[3], 4, 4, sample_pattern[9][1]); + SET_REG_FIELD(0x68A, msLoc[3], 4, 8, sample_pattern[10][0]); + SET_REG_FIELD(0x68B, msLoc[3], 4, 12, sample_pattern[10][1]); + SET_REG_FIELD(0x68C, msLoc[3], 4, 16, sample_pattern[11][0]); + SET_REG_FIELD(0x68D, msLoc[3], 4, 20, sample_pattern[11][1]); + SET_REG_FIELD(0x68E, msLoc[3], 8, 24, 4); + } + else { + msLoc[0] = 0x01666666; + msLoc[1] = 0x02666666; + msLoc[2] = 0x03666666; + msLoc[3] = 0x04666666; + } + GX_WRITE_RAS_REG(msLoc[0]); + GX_WRITE_RAS_REG(msLoc[1]); + GX_WRITE_RAS_REG(msLoc[2]); + GX_WRITE_RAS_REG(msLoc[3]); + + coeff0 = 0; + SET_REG_FIELD(0, coeff0, 8, 24, 0x53); + coeff1 = 0; + SET_REG_FIELD(0, coeff1, 8, 24, 0x54); + if (vf != 0) { + SET_REG_FIELD(0x6A6, coeff0, 6, 0, vfilter[0]); + SET_REG_FIELD(0x6A7, coeff0, 6, 6, vfilter[1]); + SET_REG_FIELD(0x6A8, coeff0, 6, 12, vfilter[2]); + SET_REG_FIELD(0x6A9, coeff0, 6, 18, vfilter[3]); + SET_REG_FIELD(0x6AA, coeff1, 6, 0, vfilter[4]); + SET_REG_FIELD(0x6AB, coeff1, 6, 6, vfilter[5]); + SET_REG_FIELD(0x6AC, coeff1, 6, 12, vfilter[6]); + } + else { + SET_REG_FIELD(0, coeff0, 6, 0, 0); + SET_REG_FIELD(0, coeff0, 6, 6, 0); + SET_REG_FIELD(0, coeff0, 6, 12, 21); + SET_REG_FIELD(0, coeff0, 6, 18, 22); + SET_REG_FIELD(0, coeff1, 6, 0, 21); + SET_REG_FIELD(0, coeff1, 6, 6, 0); + SET_REG_FIELD(0, coeff1, 6, 12, 0); + } + GX_WRITE_RAS_REG(coeff0); + GX_WRITE_RAS_REG(coeff1); + gx->bpSentNot = 0; +} + +void GXSetDispCopyGamma(GXGamma gamma) +{ + CHECK_GXBEGIN(0x6CD, "GXSetDispCopyGamma"); + SET_REG_FIELD(0x6CE, gx->cpDisp, 2, 7, gamma); +} + +#if DEBUG +static void __GXVerifCopy(void *dest, u8 clear) +{ + u8 clmpT; + u8 clmpB; + u32 x0; + u32 y0; + u32 dx; + u32 dy; + + CHECK_GXBEGIN(0x6E2, "GXCopyDisp"); + + clmpT = GET_REG_FIELD(gx->cpDisp, 1, 0); + clmpB = (u32)GET_REG_FIELD(gx->cpDisp, 1, 1); + x0 = GET_REG_FIELD(gx->cpDispSrc, 10, 0); + dx = GET_REG_FIELD(gx->cpDispSize, 10, 0) + 1; + y0 = GET_REG_FIELD(gx->cpDispSrc, 10, 10); + dy = GET_REG_FIELD(gx->cpDispSize, 10, 10) + 1; + + ASSERTMSGLINE(0x6EC, clmpT || y0 != 0, "GXCopy: Have to set GX_CLAMP_TOP if source top == 0"); + ASSERTMSGLINE(0x6EE, clmpB || y0 + dy <= 528, "GXCopy: Have to set GX_CLAMP_BOTTOM if source bottom > 528"); + ASSERTMSGLINE(0x6F3, (gx->peCtrl & 7) != 3 || clear == 0, "GXCopy: Can not do clear while pixel type is Z"); + if ((u32)(gx->peCtrl & 7) == 5) { + ASSERTMSGLINE(0x6F9, clear == 0, "GXCopy: Can not clear YUV framebuffer"); + ASSERTMSGLINE(0x6FB, (x0 & 3) == 0, "GXCopy: Source x is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x6FD, (y0 & 3) == 0, "GXCopy: Source y is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x6FF, (dx & 3) == 0, "GXCopy: Source width is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x701, (dy & 3) == 0, "GXCopy: Source height is not multiple of 4 for YUV copy"); + } + else { + ASSERTMSGLINE(0x705, (x0 & 1) == 0, "GXCopy: Source x is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x707, (y0 & 1) == 0, "GXCopy: Source y is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x709, (dx & 1) == 0, "GXCopy: Source width is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x70B, (dy & 1) == 0, "GXCopy: Source height is not multiple of 2 for RGB copy"); + } + ASSERTMSGLINE(0x70F, ((u32)dest & 0x1F) == 0, "GXCopy: Display destination address not 32B aligned"); +} +#endif + +void GXCopyDisp(void *dest, GXBool clear) +{ + u32 reg; + u32 tempPeCtrl; + u32 phyAddr; + u8 changePeCtrl; + + CHECK_GXBEGIN(0x729, "GXCopyDisp"); + +#if DEBUG + __GXVerifCopy(dest, clear); +#endif + if (clear) { + reg = gx->zmode; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 3, 1, 7); + GX_WRITE_RAS_REG(reg); + + reg = gx->cmode0; + SET_REG_FIELD(0, reg, 1, 0, 0); + SET_REG_FIELD(0, reg, 1, 1, 0); + GX_WRITE_RAS_REG(reg); + } + changePeCtrl = FALSE; + if ((clear || (u32)GET_REG_FIELD(gx->peCtrl, 3, 0) == 3) && (u32)GET_REG_FIELD(gx->peCtrl, 1, 6) == 1) { + changePeCtrl = TRUE; + tempPeCtrl = gx->peCtrl; + SET_REG_FIELD(0, tempPeCtrl, 1, 6, 0); + GX_WRITE_RAS_REG(tempPeCtrl); + } + GX_WRITE_RAS_REG(gx->cpDispSrc); + GX_WRITE_RAS_REG(gx->cpDispSize); + GX_WRITE_RAS_REG(gx->cpDispStride); + + phyAddr = (u32)dest & 0x3FFFFFFF; + reg = 0; + SET_REG_FIELD(0x750, reg, 21, 0, phyAddr >> 5); + SET_REG_FIELD(0x754, reg, 8, 24, 0x4B); + GX_WRITE_RAS_REG(reg); + + SET_REG_FIELD(0x754, gx->cpDisp, 1, 11, clear); + SET_REG_FIELD(0x754, gx->cpDisp, 1, 14, 1); + SET_REG_FIELD(0x754, gx->cpDisp, 8, 24, 0x52); + GX_WRITE_RAS_REG(gx->cpDisp); + + if (clear) { + GX_WRITE_RAS_REG(gx->zmode); + GX_WRITE_RAS_REG(gx->cmode0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + } + gx->bpSentNot = 0; +} + +void GXCopyTex(void *dest, GXBool clear) +{ + u32 reg; + u32 tempPeCtrl; + u32 phyAddr; + u8 changePeCtrl; + + CHECK_GXBEGIN(0x77C, "GXCopyTex"); + +#if DEBUG + __GXVerifCopy(dest, clear); +#endif + if (clear) { + reg = gx->zmode; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 3, 1, 7); + GX_WRITE_RAS_REG(reg); + + reg = gx->cmode0; + SET_REG_FIELD(0, reg, 1, 0, 0); + SET_REG_FIELD(0, reg, 1, 1, 0); + GX_WRITE_RAS_REG(reg); + } + changePeCtrl = 0; + tempPeCtrl = gx->peCtrl; + if (gx->cpTexZ && ((tempPeCtrl & 7) != 3)) { + changePeCtrl = 1; + SET_REG_FIELD(0, tempPeCtrl, 3, 0, 3); + } + if (((clear != 0) || ((u32)(tempPeCtrl & 7) == 3)) && ((u32)((tempPeCtrl >> 6U) & 1) == 1)) { + changePeCtrl = 1; + SET_REG_FIELD(0, tempPeCtrl, 1, 6, 0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(tempPeCtrl); + } + GX_WRITE_RAS_REG(gx->cpTexSrc); + GX_WRITE_RAS_REG(gx->cpTexSize); + GX_WRITE_RAS_REG(gx->cpTexStride); + + phyAddr = (u32)dest & 0x3FFFFFFF; + reg = 0; + SET_REG_FIELD(0x7AD, reg, 21, 0, phyAddr >> 5); + SET_REG_FIELD(0x7AD, reg, 8, 24, 0x4B); + GX_WRITE_RAS_REG(reg); + + SET_REG_FIELD(0x7B1, gx->cpTex, 1, 11, clear); + SET_REG_FIELD(0x7B1, gx->cpTex, 1, 14, 0); + SET_REG_FIELD(0x7B1, gx->cpTex, 8, 24, 0x52); + GX_WRITE_RAS_REG(gx->cpTex); + + if (clear != 0) { + GX_WRITE_RAS_REG(gx->zmode); + GX_WRITE_RAS_REG(gx->cmode0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + } + gx->bpSentNot = 0; +} + +void GXClearBoundingBox(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x7D3, "GXClearBoundingBox"); + reg = 0x550003FF; + GX_WRITE_RAS_REG(reg); + reg = 0x560003FF; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXReadBoundingBox(u16 *left, u16 *top, u16 *right, u16 *bottom) +{ + *left = GX_GET_PE_REG(8); + *top = GX_GET_PE_REG(10); + *right = GX_GET_PE_REG(9); + *bottom = GX_GET_PE_REG(11); +} diff --git a/src/dolphin/gx/GXGeometry.c b/src/dolphin/gx/GXGeometry.c new file mode 100644 index 00000000..853e2989 --- /dev/null +++ b/src/dolphin/gx/GXGeometry.c @@ -0,0 +1,146 @@ +#include +#include +#include + +#include + +void __GXSetDirtyState(void) +{ + if (gx->dirtyState & 1) { + __GXSetSUTexRegs(); + } + if (gx->dirtyState & 2) { + __GXUpdateBPMask(); + } + if (gx->dirtyState & 4) { + __GXSetGenMode(); + } + if (gx->dirtyState & 8) { + __GXSetVCD(); + } + if (gx->dirtyState & 0x10) { + __GXSetVAT(); + } + if (gx->dirtyState & 0x18) { + __GXCalculateVLim(); + } + gx->dirtyState = 0; +} + +void GXBegin(GXPrimitive type, GXVtxFmt vtxfmt, u16 nverts) +{ + ASSERTMSGLINE(0x167, vtxfmt < 8, "GXBegin: Format Index is out of range"); + ASSERTMSGLINE(0x168, !__GXinBegin, "GXBegin: called inside another GXBegin/GXEnd"); + + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (*(u32 *)&gx->vNumNot == 0) { // checks both vNum and bpSentNot + __GXSendFlushPrim(); + } + GX_WRITE_U8(vtxfmt | type); + GX_WRITE_U16(nverts); +} + +void __GXSendFlushPrim(void) +{ + u32 i; + u32 numD = gx->vNum * gx->vLim; + + GX_WRITE_U8(0x98); + GX_WRITE_U16(gx->vNum); + for (i = 0; i < numD; i += 4) { + GX_WRITE_U32(0); + } + gx->bpSentNot = 1; +} + +void GXSetLineWidth(u8 width, GXTexOffset texOffsets) +{ + CHECK_GXBEGIN(0x1B8, "GXSetLineWidth"); + SET_REG_FIELD(0x1B9, gx->lpSize, 8, 0, width); + SET_REG_FIELD(0x1BA, gx->lpSize, 3, 16, texOffsets); + GX_WRITE_RAS_REG(gx->lpSize); + gx->bpSentNot = 0; +} + +void GXGetLineWidth(u8 *width, GXTexOffset *texOffsets) +{ + ASSERTMSGLINE(0x1CF, width != NULL && texOffsets != NULL, "GXGet*: invalid null pointer"); + + *width = GET_REG_FIELD(gx->lpSize, 8, 0); + *texOffsets = GET_REG_FIELD(gx->lpSize, 3, 16); +} + +void GXSetPointSize(u8 pointSize, GXTexOffset texOffsets) +{ + CHECK_GXBEGIN(0x1E4, "GXSetPointSize"); + SET_REG_FIELD(0x1E5, gx->lpSize, 8, 8, pointSize); + SET_REG_FIELD(0x1E6, gx->lpSize, 3, 19, texOffsets); + GX_WRITE_RAS_REG(gx->lpSize); + gx->bpSentNot = 0; +} + +void GXGetPointSize(u8 *pointSize, GXTexOffset *texOffsets) +{ + ASSERTMSGLINE(0x1FB, pointSize != NULL && texOffsets != NULL, "GXGet*: invalid null pointer"); + + *pointSize = (int)GET_REG_FIELD(gx->lpSize, 8, 8); + *texOffsets = GET_REG_FIELD(gx->lpSize, 3, 19); +} + +void GXEnableTexOffsets(GXTexCoordID coord, u8 line_enable, u8 point_enable) +{ + CHECK_GXBEGIN(0x211, "GXEnableTexOffsets"); + + ASSERTMSGLINE(0x213, coord < 8, "GXEnableTexOffsets: Invalid coordinate Id"); + + SET_REG_FIELD(0x215, gx->suTs0[coord], 1, 18, line_enable); + SET_REG_FIELD(0x216, gx->suTs0[coord], 1, 19, point_enable); + GX_WRITE_RAS_REG(gx->suTs0[coord]); + gx->bpSentNot = 0; +} + +void GXSetCullMode(GXCullMode mode) +{ + GXCullMode hwMode; + + CHECK_GXBEGIN(0x21D, "GXSetCullMode"); + switch (mode) { + case GX_CULL_FRONT: + hwMode = GX_CULL_BACK; + break; + case GX_CULL_BACK: + hwMode = GX_CULL_FRONT; + break; + default: + hwMode = mode; + break; + } + SET_REG_FIELD(0x225, gx->genMode, 2, 14, hwMode); + gx->dirtyState |= 4; +} + +void GXGetCullMode(GXCullMode *mode) +{ + GXCullMode hwMode = gx->genMode; + *mode = ((hwMode >> 0xD) & 0x2) | (((((int)hwMode >> 0xE) & 0x2) >> 0x1)); +} + +void GXSetCoPlanar(GXBool enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x265, "GXSetCoPlanar"); + + SET_REG_FIELD(0x267, gx->genMode, 1, 19, enable); + reg = 0xFE080000; + GX_WRITE_RAS_REG(reg); + GX_WRITE_RAS_REG(gx->genMode); +} + +void __GXSetGenMode(void) +{ + GX_WRITE_RAS_REG(gx->genMode); + gx->bpSentNot = 0; +} diff --git a/src/dolphin/gx/GXInit.c b/src/dolphin/gx/GXInit.c new file mode 100644 index 00000000..e6774ba7 --- /dev/null +++ b/src/dolphin/gx/GXInit.c @@ -0,0 +1,356 @@ +#include + +#include +#include +#include +#include + +#include + +void __GXInitGX(); + +static struct __GXData_struct gxData; +struct __GXData_struct *gx = &gxData; +// DWARF info lists all of these as "void *", but these types make more sense. +u16 *__memReg; +u16 *__peReg; +u16 *__cpReg; +u32 *__piReg; + +// clang-format off +asm BOOL IsWriteGatherBufferEmpty(void) +{ + sync + mfspr r3, WPAR + andi. r3, r3, 1 +} +// clang-format on + +static void EnableWriteGatherPipe(void) +{ + u32 hid2 = PPCMfhid2(); + + PPCMtwpar(OSUncachedToPhysical((void *)GXFIFO_ADDR)); + hid2 |= 0x40000000; + PPCMthid2(hid2); +} + +static void DisableWriteGatherPipe(void) +{ + u32 hid2 = PPCMfhid2(); + + hid2 &= ~0x40000000; + PPCMthid2(hid2); +} + +static GXTexRegion *__GXDefaultTexRegionCallback(GXTexObj *t_obj, GXTexMapID unused) +{ + GXTexFmt fmt = GXGetTexObjFmt(t_obj); + + if (fmt != GX_TF_C4 && fmt != GX_TF_C8 && fmt != GX_TF_C14X2) { + return &gx->TexRegions[gx->nextTexRgn++ & 7]; + } + else { + return &gx->TexRegionsCI[gx->nextTexRgnCI++ & 3]; + } +} + +static GXTlutRegion *__GXDefaultTlutRegionCallback(u32 idx) +{ + if (idx >= 0x14U) { + return NULL; + } + return &gx->TlutRegions[idx]; +} + +GXFifoObj FifoObj; + +GXFifoObj* GXInit(void* base, u32 size) +{ + u32 i; + u32 reg; + u32 freqBase; + char stack_padding[8]; + + gx->inDispList = FALSE; + gx->dlSaveContext = TRUE; + + gx->tcsManEnab = FALSE; + gx->tevTcEnab = 0; + GXSetMisc(GX_MT_XF_FLUSH, 0); + __piReg = OSPhysicalToUncached(0xC003000); + __cpReg = OSPhysicalToUncached(0xC000000); + __peReg = OSPhysicalToUncached(0xC001000); + __memReg = OSPhysicalToUncached(0xC004000); + __GXFifoInit(); + GXInitFifoBase(&FifoObj, base, size); + GXSetCPUFifo(&FifoObj); + GXSetGPFifo(&FifoObj); + __GXPEInit(); + EnableWriteGatherPipe(); + + gx->genMode = 0; + SET_REG_FIELD(0, gx->genMode, 8, 24, 0); + gx->bpMask = 255; + SET_REG_FIELD(0, gx->bpMask, 8, 24, 0x0F); + gx->lpSize = 0; + SET_REG_FIELD(0, gx->lpSize, 8, 24, 0x22); + for (i = 0; i < 16; ++i) { + gx->tevc[i] = 0; + gx->teva[i] = 0; + gx->tref[i / 2] = 0; + gx->texmapId[i] = GX_TEXMAP_NULL; + SET_REG_FIELD(0x2F2, gx->tevc[i], 8, 24, 0xC0 + i * 2); + SET_REG_FIELD(0x2F3, gx->teva[i], 8, 24, 0xC1 + i * 2); + SET_REG_FIELD(0x2F5, gx->tevKsel[i / 2], 8, 24, 0xF6 + i / 2); + SET_REG_FIELD(0x2F7, gx->tref[i / 2], 8, 24, 0x28 + i / 2); + } + gx->iref = 0; + SET_REG_FIELD(0, gx->iref, 8, 24, 0x27); + for (i = 0; i < 8; ++i) { + gx->suTs0[i] = 0; + gx->suTs1[i] = 0; + SET_REG_FIELD(0x300, gx->suTs0[i], 8, 24, 0x30 + i * 2); + SET_REG_FIELD(0x301, gx->suTs1[i], 8, 24, 0x31 + i * 2); + } + SET_REG_FIELD(0, gx->suScis0, 8, 24, 0x20); + SET_REG_FIELD(0, gx->suScis1, 8, 24, 0x21); + SET_REG_FIELD(0, gx->cmode0, 8, 24, 0x41); + SET_REG_FIELD(0, gx->cmode1, 8, 24, 0x42); + SET_REG_FIELD(0, gx->zmode, 8, 24, 0x40); + SET_REG_FIELD(0, gx->peCtrl, 8, 24, 0x43); + SET_REG_FIELD(0, gx->cpTex, 2, 7, 0); + gx->dirtyState = 0; + gx->dirtyVAT = FALSE; + + freqBase = __OSBusClock / 500; + __GXFlushTextureState(); + reg = (freqBase >> 11) | 0x400 | 0x69000000; + GX_WRITE_RAS_REG(reg); + + __GXFlushTextureState(); + reg = (freqBase / 0x1080) | 0x200 | 0x46000000; + GX_WRITE_RAS_REG(reg); + + for (i = GX_VTXFMT0; i < GX_MAX_VTXFMT; i++) { + SET_REG_FIELD(0, gx->vatA[i], 1, 30, 1); + SET_REG_FIELD(0, gx->vatB[i], 1, 31, 1); + do { + s32 regAddr; + GX_WRITE_U8(GX_LOAD_CP_REG); + GX_WRITE_U8(i | 0x80); + GX_WRITE_U32(gx->vatB[i]); + regAddr = i - 12; + } while (0); + } + { + u32 reg1 = 0; + u32 reg2 = 0; + SET_REG_FIELD(0, reg1, 1, 0, 1); + SET_REG_FIELD(0, reg1, 1, 1, 1); + SET_REG_FIELD(0, reg1, 1, 2, 1); + SET_REG_FIELD(0, reg1, 1, 3, 1); + SET_REG_FIELD(0, reg1, 1, 4, 1); + SET_REG_FIELD(0, reg1, 1, 5, 1); + GX_WRITE_XF_REG(0, reg1); + SET_REG_FIELD(0, reg2, 1, 0, 1); + GX_WRITE_XF_REG(0x12, reg2); + } + { + u32 reg = 0; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 1, 1, 1); + SET_REG_FIELD(0, reg, 1, 2, 1); + SET_REG_FIELD(0, reg, 1, 3, 1); + SET_REG_FIELD(0, reg, 8, 24, 0x58); + GX_WRITE_RAS_REG(reg); + } + for (i = 0; i < 8; i++) + GXInitTexCacheRegion(&gx->TexRegions[i], 0, i * 0x8000, 0, + 0x80000 + i * 0x8000, 0); + for (i = 0; i < 4; i++) + GXInitTexCacheRegion(&gx->TexRegionsCI[i], 0, (i * 2 + 8) * 0x8000, 0, + (i * 2 + 9) * 0x8000, 0); + for (i = 0; i < 16; i++) + GXInitTlutRegion(&gx->TlutRegions[i], 0xC0000 + i * 0x2000, 16); + for (i = 0; i < 4; i++) + GXInitTlutRegion(&gx->TlutRegions[i + 16], 0xE0000 + i * 0x8000, 64); + __cpReg[3] = 0; + + { + SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); + GX_WRITE_U8(GX_LOAD_CP_REG); + GX_WRITE_U8(0x20); + GX_WRITE_U32(gx->perfSel); + GX_WRITE_U8(GX_LOAD_XF_REG); + GX_WRITE_U32(0x1006); + GX_WRITE_U32(0); + GX_WRITE_RAS_REG(0x23000000); + GX_WRITE_RAS_REG(0x24000000); + GX_WRITE_RAS_REG(0x67000000); + } + + __GXSetTmemConfig(0); + __GXInitGX(); + return &FifoObj; +} + +void __GXInitGX() +{ + GXRenderModeObj *rmode; + GXAttr var_r30; + f32 identity_mtx[3][4]; + GXColor clear = { 64, 64, 64, 255 }; + GXColor black = { 0, 0, 0, 0 }; + GXColor white = { 255, 255, 255, 255 }; + u32 i; + + switch (VIGetTvFormat()) { + case 0: + rmode = &GXNtsc480IntDf; + break; + case 1: + rmode = &GXPal528IntDf; + break; + case 5: + rmode = &GXEurgb60Hz480IntDf; + break; + case 2: + rmode = &GXMpal480IntDf; + break; + default: + rmode = &GXNtsc480IntDf; + break; + } + + GXSetCopyClear(clear, 0xFFFFFF); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, 0x3CU); + GXSetNumTexGens(1); + GXClearVtxDesc(); + GXInvalidateVtxCache(); + for (var_r30 = GX_VA_POS; (u32)var_r30 <= 0x18; var_r30++) { + GXSetArray(var_r30, gx, 0); + } + GXSetLineWidth(6, 0); + GXSetPointSize(6, 0); + GXEnableTexOffsets(0, 0, 0); + GXEnableTexOffsets(1, 0, 0); + GXEnableTexOffsets(2, 0, 0); + GXEnableTexOffsets(3, 0, 0); + GXEnableTexOffsets(4, 0, 0); + GXEnableTexOffsets(5, 0, 0); + GXEnableTexOffsets(6, 0, 0); + GXEnableTexOffsets(7, 0, 0); + identity_mtx[0][0] = 1.0f; + identity_mtx[0][1] = 0.0f; + identity_mtx[0][2] = 0.0f; + identity_mtx[0][3] = 0.0f; + identity_mtx[1][0] = 0.0f; + identity_mtx[1][1] = 1.0f; + identity_mtx[1][2] = 0.0f; + identity_mtx[1][3] = 0.0f; + identity_mtx[2][0] = 0.0f; + identity_mtx[2][1] = 0.0f; + identity_mtx[2][2] = 1.0f; + identity_mtx[2][3] = 0.0f; + GXLoadPosMtxImm(identity_mtx, GX_PNMTX0); + GXLoadNrmMtxImm(identity_mtx, GX_PNMTX0); + GXSetCurrentMtx(GX_PNMTX0); + GXLoadTexMtxImm(identity_mtx, GX_IDENTITY, GX_MTX3x4); + GXLoadTexMtxImm(identity_mtx, GX_PTIDENTITY, GX_MTX3x4); + GXSetViewport(0.0f, 0.0f, rmode->fbWidth, rmode->xfbHeight, 0.0f, 1.0f); + GXSetCoPlanar(GX_DISABLE); + GXSetCullMode(GX_CULL_BACK); + GXSetClipMode(GX_CLIP_ENABLE); + GXSetScissor(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetScissorBoxOffset(0, 0); + GXSetNumChans(0); + GXSetChanCtrl(GX_COLOR0A0, GX_DISABLE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR0A0, black); + GXSetChanMatColor(GX_COLOR0A0, white); + GXSetChanCtrl(GX_COLOR1A1, GX_DISABLE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR1A1, black); + GXSetChanMatColor(GX_COLOR1A1, white); + GXInvalidateTexAll(); + gx->nextTexRgnCI = gx->nextTexRgn = i = GX_TEVSTAGE0; + GXSetTexRegionCallback((void *)__GXDefaultTexRegionCallback); + GXSetTlutRegionCallback(__GXDefaultTlutRegionCallback); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD2, GX_TEXMAP2, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD3, GX_TEXMAP3, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD4, GX_TEXMAP4, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD5, GX_TEXMAP5, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD6, GX_TEXMAP6, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD7, GX_TEXMAP7, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + + GXSetNumTevStages(1); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); + for (; i < GX_MAX_TEVSTAGE; i++) { + GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4); + GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1); + GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0); + } + GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + + for (i = GX_TEVSTAGE0; i < GX_MAX_TEVSTAGE; i++) + GXSetTevDirect((GXTevStageID)i); + GXSetNumIndStages(0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1); + + GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, black); + GXSetFogRangeAdj(GX_DISABLE, 0, 0); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); + GXSetColorUpdate(GX_ENABLE); + GXSetAlphaUpdate(GX_ENABLE); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetZCompLoc(GX_TRUE); + GXSetDither(GX_ENABLE); + GXSetDstAlpha(GX_DISABLE, 0); + GXSetPixelFmt(GX_PF_RGB8_Z24, GX_ZC_LINEAR); + GXSetFieldMask(GX_ENABLE, GX_ENABLE); + GXSetFieldMode(rmode->field_rendering, ((rmode->viHeight == 2 * rmode->xfbHeight) ? GX_ENABLE : GX_DISABLE)); + + GXSetDispCopySrc(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetDispCopyDst(rmode->fbWidth, rmode->efbHeight); + GXSetDispCopyYScale((f32)(rmode->xfbHeight) / (f32)(rmode->efbHeight)); + GXSetCopyClamp((GXFBClamp)(GX_CLAMP_TOP | GX_CLAMP_BOTTOM)); + GXSetCopyFilter(rmode->aa, rmode->sample_pattern, GX_TRUE, rmode->vfilter); + GXSetDispCopyGamma(GX_GM_1_0); + GXSetDispCopyFrame2Field(GX_COPY_PROGRESSIVE); + GXClearBoundingBox(); + + GXPokeColorUpdate(GX_TRUE); + GXPokeAlphaUpdate(GX_TRUE); + GXPokeDither(GX_FALSE); + GXPokeBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ONE, GX_LO_SET); + GXPokeAlphaMode(GX_ALWAYS, 0); + GXPokeAlphaRead(GX_READ_FF); + GXPokeDstAlpha(GX_DISABLE, 0); + GXPokeZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + GXClearGPMetric(); +} diff --git a/src/dolphin/gx/GXLight.c b/src/dolphin/gx/GXLight.c new file mode 100644 index 00000000..a084fd84 --- /dev/null +++ b/src/dolphin/gx/GXLight.c @@ -0,0 +1,620 @@ +#include +#include + +#include + +float cosf(float x); +inline float sqrtf(float x) +{ + static const double _half = .5; + static const double _three = 3.0; + volatile float y; + if (x > 0.0f) + { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits + y = (float)(x*guess); + return y ; + } + return x; +} + +// GXLightObj private data +struct __GXLightObjInt_struct { + u32 reserved[3]; + u32 Color; + f32 a[3]; + f32 k[3]; + f32 lpos[3]; + f32 ldir[3]; +}; + +void GXInitLightAttn(GXLightObj *lt_obj, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x62, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x63, "GXInitLightAttn"); + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXInitLightAttnA(GXLightObj *lt_obj, f32 a0, f32 a1, f32 a2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x70, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x71, "GXInitLightAttnA"); + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; +} + +void GXGetLightAttnA(GXLightObj *lt_obj, f32 *a0, f32 *a1, f32 *a2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x7A, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x7B, "GXGetLightAttnA"); + *a0 = obj->a[0]; + *a1 = obj->a[1]; + *a2 = obj->a[2]; +} + +void GXInitLightAttnK(GXLightObj *lt_obj, f32 k0, f32 k1, f32 k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x84, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x85, "GXInitLightAttnK"); + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXGetLightAttnK(GXLightObj *lt_obj, f32 *k0, f32 *k1, f32 *k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x8E, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x8F, "GXGetLightAttnK"); + *k0 = obj->k[0]; + *k1 = obj->k[1]; + *k2 = obj->k[2]; +} + +void GXInitLightSpot(GXLightObj *lt_obj, f32 cutoff, GXSpotFn spot_func) +{ + float a0, a1, a2; + float d; + float cr; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0xA7, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0xA9, "GXInitLightSpot"); + + if (cutoff <= 0.0f || cutoff > 90.0f) + spot_func = GX_SP_OFF; + + cr = cosf((3.1415927f * cutoff) / 180.0f); + switch (spot_func) { + case GX_SP_FLAT: + a0 = -1000.0f * cr; + a1 = 1000.0f; + a2 = 0.0f; + break; + case GX_SP_COS: + a0 = -cr / (1.0f - cr); + a1 = 1.0f / (1.0f - cr); + a2 = 0.0f; + break; + case GX_SP_COS2: + a0 = 0.0f; + a1 = -cr / (1.0f - cr); + a2 = 1.0f / (1.0f - cr); + break; + case GX_SP_SHARP: + d = (1.0f - cr) * (1.0f - cr); + a0 = (cr * (cr - 2.0f)) / d; + a1 = 2.0f / d; + a2 = -1.0f / d; + break; + case GX_SP_RING1: + d = (1.0f - cr) * (1.0f - cr); + a0 = (-4.0f * cr) / d; + a1 = (4.0f * (1.0f + cr)) / d; + a2 = -4.0f / d; + break; + case GX_SP_RING2: + d = (1.0f - cr) * (1.0f - cr); + a0 = 1.0f - ((2.0f * cr * cr) / d); + a1 = (4.0f * cr) / d; + a2 = -2.0f / d; + break; + case GX_SP_OFF: + default: + a0 = 1.0f; + a1 = 0.0f; + a2 = 0.0f; + break; + } + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; +} + +void GXInitLightDistAttn(GXLightObj *lt_obj, f32 ref_dist, f32 ref_br, GXDistAttnFn dist_func) +{ + f32 k0, k1, k2; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0xF2, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0xF4, "GXInitLightDistAttn"); + + if (ref_dist < 0.0f) + dist_func = GX_DA_OFF; + if (ref_br <= 0.0f || ref_br >= 1.0f) + dist_func = GX_DA_OFF; + + switch (dist_func) { + case GX_DA_GENTLE: + k0 = 1.0f; + k1 = (1.0f - ref_br) / (ref_br * ref_dist); + k2 = 0.0f; + break; + case GX_DA_MEDIUM: + k0 = 1.0f; + k1 = (0.5f * (1.0f - ref_br)) / (ref_br * ref_dist); + k2 = (0.5f * (1.0f - ref_br)) / (ref_br * ref_dist * ref_dist); + break; + case GX_DA_STEEP: + k0 = 1.0f; + k1 = 0.0f; + k2 = (1.0f - ref_br) / (ref_br * ref_dist * ref_dist); + break; + case GX_DA_OFF: + default: + k0 = 1.0f; + k1 = 0.0f; + k2 = 0.0f; + break; + } + + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXInitLightPos(GXLightObj *lt_obj, f32 x, f32 y, f32 z) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x129, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x12B, "GXInitLightPos"); + + obj->lpos[0] = x; + obj->lpos[1] = y; + obj->lpos[2] = z; +} + +void GXGetLightPos(const GXLightObj *lt_obj, f32 *x, f32 *y, f32 *z) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x134, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x136, "GXGetLightPos"); + + *x = obj->lpos[0]; + *y = obj->lpos[1]; + *z = obj->lpos[2]; +} + +void GXInitLightDir(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x149, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + + obj->ldir[0] = -nx; + obj->ldir[1] = -ny; + obj->ldir[2] = -nz; +} + +void GXGetLightDir(GXLightObj *lt_obj, f32 *nx, f32 *ny, f32 *nz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x155, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + + *nx = -obj->ldir[0]; + *ny = -obj->ldir[1]; + *nz = -obj->ldir[2]; +} + +void GXInitSpecularDir(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz) +{ + float mag; + float vx; + float vy; + float vz; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x16F, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x170, "GXInitSpecularDir"); + + vx = -nx; + vy = -ny; + vz = -nz + 1.0f; + mag = 1.0f / sqrtf((vx * vx) + (vy * vy) + (vz * vz)); + obj->ldir[0] = vx * mag; + obj->ldir[1] = vy * mag; + obj->ldir[2] = vz * mag; + obj->lpos[0] = -nx * 1048576.0f; + obj->lpos[1] = -ny * 1048576.0f; + obj->lpos[2] = -nz * 1048576.0f; +} + +void GXInitSpecularDirHA(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz, f32 hx, f32 hy, f32 hz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x18E, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x18F, "GXInitSpecularHA"); + + obj->ldir[0] = hx; + obj->ldir[1] = hy; + obj->ldir[2] = hz; + obj->lpos[0] = -nx * 1048576.0f; + obj->lpos[1] = -ny * 1048576.0f; + obj->lpos[2] = -nz * 1048576.0f; +} + +void GXInitLightColor(GXLightObj *lt_obj, GXColor color) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1A8, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1A9, "GXInitLightColor"); + + obj->Color = (color.r << 24) | (color.g << 16) | (color.b << 8) | color.a; +} + +void GXGetLightColor(const GXLightObj *lt_obj, GXColor *color) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1B2, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1B3, "GXGetLightColor"); + + color->r = (obj->Color >> 24) & 0xFF; + color->g = (obj->Color >> 16) & 0xFF; + color->b = (obj->Color >> 8) & 0xFF; + color->a = obj->Color & 0xFF; +} + +#if DEBUG +#define WRITE_SOME_LIGHT_REG1(val, addr) \ + do { \ + u32 xfData = val; \ + GX_WRITE_U32(val); \ + VERIF_MTXLIGHT(addr, xfData); \ + } while (0) + +#define WRITE_SOME_LIGHT_REG2(val, addr) \ + do { \ + f32 xfData = val; \ + GX_WRITE_F32(val); \ + VERIF_MTXLIGHT(addr, *(u32 *)&xfData); \ + } while (0) +#else +#define WRITE_SOME_LIGHT_REG1(val, addr) GX_WRITE_U32(val) +#define WRITE_SOME_LIGHT_REG2(val, addr) GX_WRITE_F32(val) +#endif + +void GXLoadLightObjImm(GXLightObj *lt_obj, GXLightID light) +{ + unsigned long addr; + unsigned long idx; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1C9, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1CA, "GXLoadLightObjImm"); + + switch (light) { + case GX_LIGHT0: + idx = 0; + break; + case GX_LIGHT1: + idx = 1; + break; + case GX_LIGHT2: + idx = 2; + break; + case GX_LIGHT3: + idx = 3; + break; + case GX_LIGHT4: + idx = 4; + break; + case GX_LIGHT5: + idx = 5; + break; + case GX_LIGHT6: + idx = 6; + break; + case GX_LIGHT7: + idx = 7; + break; + default: + idx = 0; + ASSERTMSGLINE(0x1DA, 0, "GXLoadLightStateImm: Invalid Light Id"); + break; + } + + addr = idx * 0x10 + 0x600; + GX_WRITE_U8(0x10); + GX_WRITE_U32(addr | 0xF0000); + + WRITE_SOME_LIGHT_REG1(0, addr); + WRITE_SOME_LIGHT_REG1(0, addr + 1); + WRITE_SOME_LIGHT_REG1(0, addr + 2); + WRITE_SOME_LIGHT_REG1(obj->Color, addr + 3); + WRITE_SOME_LIGHT_REG2(obj->a[0], addr + 4); + WRITE_SOME_LIGHT_REG2(obj->a[1], addr + 5); + WRITE_SOME_LIGHT_REG2(obj->a[2], addr + 6); + WRITE_SOME_LIGHT_REG2(obj->k[0], addr + 7); + WRITE_SOME_LIGHT_REG2(obj->k[1], addr + 8); + WRITE_SOME_LIGHT_REG2(obj->k[2], addr + 9); + WRITE_SOME_LIGHT_REG2(obj->lpos[0], addr + 10); + WRITE_SOME_LIGHT_REG2(obj->lpos[1], addr + 11); + WRITE_SOME_LIGHT_REG2(obj->lpos[2], addr + 12); + WRITE_SOME_LIGHT_REG2(obj->ldir[0], addr + 13); + WRITE_SOME_LIGHT_REG2(obj->ldir[1], addr + 14); + WRITE_SOME_LIGHT_REG2(obj->ldir[2], addr + 15); + + gx->bpSentNot = 1; +} + +void GXLoadLightObjIndx(u32 lt_obj_indx, GXLightID light) +{ + unsigned long reg; + unsigned long addr; + unsigned long idx; + + CHECK_GXBEGIN(0x209, "GXLoadLightObjIndx"); + + switch (light) { + case GX_LIGHT0: + idx = 0; + break; + case GX_LIGHT1: + idx = 1; + break; + case GX_LIGHT2: + idx = 2; + break; + case GX_LIGHT3: + idx = 3; + break; + case GX_LIGHT4: + idx = 4; + break; + case GX_LIGHT5: + idx = 5; + break; + case GX_LIGHT6: + idx = 6; + break; + case GX_LIGHT7: + idx = 7; + break; + default: + idx = 0; + ASSERTMSGLINE(0x216, 0, "GXLoadLightObjIndx: Invalid Light Id"); + break; + } + + addr = idx * 0x10 + 0x600; + reg = 0; + SET_REG_FIELD(0x21C, reg, 12, 0, addr); + SET_REG_FIELD(0x21D, reg, 4, 12, 0xF); + SET_REG_FIELD(0x21E, reg, 16, 16, lt_obj_indx); + GX_WRITE_U8(0x38); + GX_WRITE_U32(reg); +#if DEBUG + __GXShadowIndexState(7, reg); +#endif + gx->bpSentNot = 1; +} + +void GXSetChanAmbColor(GXChannelID chan, GXColor amb_color) +{ + u32 reg = 0; + u32 colIdx; + u32 alpha; + + CHECK_GXBEGIN(0x239, "GXSetChanAmbColor"); + + switch (chan) { + case GX_COLOR0: + alpha = gx->ambColor[0] & 0xFF; + SET_REG_FIELD(0x23E, reg, 8, 0, alpha); + SET_REG_FIELD(0x23F, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x240, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x241, reg, 8, 24, amb_color.r); + colIdx = 0; + break; + case GX_COLOR1: + alpha = gx->ambColor[1] & 0xFF; + SET_REG_FIELD(0x247, reg, 8, 0, alpha); + SET_REG_FIELD(0x248, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x249, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x24A, reg, 8, 24, amb_color.r); + colIdx = 1; + break; + case GX_ALPHA0: + reg = gx->ambColor[0]; + SET_REG_FIELD(0x250, reg, 8, 0, amb_color.a); + colIdx = 0; + break; + case GX_ALPHA1: + reg = gx->ambColor[1]; + SET_REG_FIELD(0x256, reg, 8, 0, amb_color.a); + colIdx = 1; + break; + case GX_COLOR0A0: + SET_REG_FIELD(0x25B, reg, 8, 0, amb_color.a); + SET_REG_FIELD(0x25C, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x25D, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x25E, reg, 8, 24, amb_color.r); + colIdx = 0; + break; + case GX_COLOR1A1: + SET_REG_FIELD(0x263, reg, 8, 0, amb_color.a); + SET_REG_FIELD(0x264, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x265, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x266, reg, 8, 24, amb_color.r); + colIdx = 1; + break; + default: + ASSERTMSGLINE(0x26B, 0, "GXSetChanAmbColor: Invalid Channel Id"); + return; + } + + GX_WRITE_XF_REG(colIdx + 10, reg); + gx->bpSentNot = 1; + gx->ambColor[colIdx] = reg; +} + +void GXSetChanMatColor(GXChannelID chan, GXColor mat_color) +{ + u32 reg = 0; + u32 alpha; + u32 colIdx; + + CHECK_GXBEGIN(0x28A, "GXSetChanMatColor"); + + switch (chan) { + case GX_COLOR0: + alpha = gx->matColor[0] & 0xFF; + SET_REG_FIELD(0x28F, reg, 8, 0, alpha); + SET_REG_FIELD(0x290, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x291, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x292, reg, 8, 24, mat_color.r); + colIdx = 0; + break; + case GX_COLOR1: + alpha = gx->matColor[1] & 0xFF; + SET_REG_FIELD(0x298, reg, 8, 0, alpha); + SET_REG_FIELD(0x299, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x29A, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x29B, reg, 8, 24, mat_color.r); + colIdx = 1; + break; + case GX_ALPHA0: + reg = gx->matColor[0]; + SET_REG_FIELD(0x2A1, reg, 8, 0, mat_color.a); + colIdx = 0; + break; + case GX_ALPHA1: + reg = gx->matColor[1]; + SET_REG_FIELD(0x2A7, reg, 8, 0, mat_color.a); + colIdx = 1; + break; + case GX_COLOR0A0: + SET_REG_FIELD(0x2AC, reg, 8, 0, mat_color.a); + SET_REG_FIELD(0x2AD, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x2AE, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x2AF, reg, 8, 24, mat_color.r); + colIdx = 0; + break; + case GX_COLOR1A1: + SET_REG_FIELD(0x2B4, reg, 8, 0, mat_color.a); + SET_REG_FIELD(0x2B5, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x2B6, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x2B7, reg, 8, 24, mat_color.r); + colIdx = 1; + break; + default: + ASSERTMSGLINE(0x2BC, 0, "GXSetChanMatColor: Invalid Channel Id"); + return; + } + + GX_WRITE_XF_REG(colIdx + 12, reg); + gx->bpSentNot = 1; + gx->matColor[colIdx] = reg; +} + +void GXSetNumChans(u8 nChans) +{ + CHECK_GXBEGIN(0x2D5, "GXSetNumChans"); + ASSERTMSGLINE(0x2D6, nChans <= 2, "GXSetNumChans: nChans > 2"); + + SET_REG_FIELD(0x2D8, gx->genMode, 3, 4, nChans); + GX_WRITE_XF_REG(9, nChans); + gx->dirtyState |= 4; +} + +void GXSetChanCtrl(GXChannelID chan, GXBool enable, GXColorSrc amb_src, GXColorSrc mat_src, u32 light_mask, GXDiffuseFn diff_fn, GXAttnFn attn_fn) +{ + u32 reg; // r31 + u32 idx; // r26 + + CHECK_GXBEGIN(0x2F8, "GXSetChanCtrl"); + + ASSERTMSGLINE(0x2FB, chan >= 0 && chan <= 5, "GXSetChanCtrl: Invalid Channel Id"); + + if (chan == 4) + idx = 0; + else if (chan == 5) + idx = 1; + else + idx = chan; + + reg = 0; + SET_REG_FIELD(0x302, reg, 1, 1, enable); + SET_REG_FIELD(0x303, reg, 1, 0, mat_src); + SET_REG_FIELD(0x304, reg, 1, 6, amb_src); + SET_REG_FIELD(0x305, reg, 1, 2, (light_mask & GX_LIGHT0) != 0); + SET_REG_FIELD(0x306, reg, 1, 3, (light_mask & GX_LIGHT1) != 0); + SET_REG_FIELD(0x307, reg, 1, 4, (light_mask & GX_LIGHT2) != 0); + SET_REG_FIELD(0x308, reg, 1, 5, (light_mask & GX_LIGHT3) != 0); + SET_REG_FIELD(0x309, reg, 1, 11, (light_mask & GX_LIGHT4) != 0); + SET_REG_FIELD(0x30A, reg, 1, 12, (light_mask & GX_LIGHT5) != 0); + SET_REG_FIELD(0x30B, reg, 1, 13, (light_mask & GX_LIGHT6) != 0); + SET_REG_FIELD(0x30C, reg, 1, 14, (light_mask & GX_LIGHT7) != 0); + SET_REG_FIELD(0x30E, reg, 2, 7, (attn_fn == 0) ? 0 : diff_fn); + SET_REG_FIELD(0x30F, reg, 1, 9, (attn_fn != 2)); + SET_REG_FIELD(0x310, reg, 1, 10, (attn_fn != 0)); + + GX_WRITE_XF_REG(idx + 14, reg); + gx->bpSentNot = 1; + if (chan == GX_COLOR0A0) { + GX_WRITE_XF_REG(16, reg); + } + else if (chan == GX_COLOR1A1) { + GX_WRITE_XF_REG(17, reg); + } +} diff --git a/src/dolphin/gx/GXMisc.c b/src/dolphin/gx/GXMisc.c new file mode 100644 index 00000000..1b7bea94 --- /dev/null +++ b/src/dolphin/gx/GXMisc.c @@ -0,0 +1,485 @@ +#include +#include +#include +#include + + +#include + +static GXDrawSyncCallback TokenCB; +static GXDrawDoneCallback DrawDoneCB; +static u8 DrawDone; +static OSThreadQueue FinishQueue; + +void GXSetMisc(GXMiscToken token, u32 val) +{ + switch (token) { + case GX_MT_XF_FLUSH: + gx->vNum = val; + gx->vNumNot = !gx->vNum; + gx->bpSentNot = 1; + if (gx->vNum != 0) { + gx->dirtyState |= 8; + } + break; + case GX_MT_DL_SAVE_CONTEXT: + ASSERTMSGLINE(0xC4, !gx->inDispList, "GXSetMisc: Cannot change DL context setting while making a display list"); + gx->dlSaveContext = (val > 0); + break; + case GX_MT_NULL: + break; + default: + break; + } +} + +void GXFlush(void) +{ + CHECK_GXBEGIN(0x10E, "GXFlush"); + if (gx->dirtyState) { + __GXSetDirtyState(); + } + + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + + PPCSync(); +} + +void GXResetWriteGatherPipe(void) +{ + while (PPCMfwpar() & 1) { } + PPCMtwpar(OSUncachedToPhysical((void *)GXFIFO_ADDR)); +} + +static inline void __GXAbortWait(u32 clocks) +{ + OSTime time0; + OSTime time1; + + time0 = OSGetTime(); + do { + time1 = OSGetTime(); + } while (time1 - time0 <= (clocks / 4)); +} + +void __GXAbortWaitPECopyDone(void) +{ + __piReg[6] = 1; + __GXAbortWait(0xC8U); + __piReg[6] = 0; + __GXAbortWait(0x14U); + __GXCleanGPFifo(); +} + +void GXSetDrawSync(u16 token) +{ + BOOL enabled; + u32 reg; + + CHECK_GXBEGIN(0x162, "GXSetDrawSync"); + + enabled = OSDisableInterrupts(); + reg = token | 0x48000000; + GX_WRITE_RAS_REG(reg); + SET_REG_FIELD(0x16F, reg, 16, 0, token); + SET_REG_FIELD(0x170, reg, 8, 24, 0x47); + GX_WRITE_RAS_REG(reg); + GXFlush(); + OSRestoreInterrupts(enabled); + gx->bpSentNot = 0; +} + +u16 GXReadDrawSync(void) +{ + u16 token = __peReg[7]; + return token; +} + +void GXSetDrawDone(void) +{ + u32 reg; + BOOL enabled; + + CHECK_GXBEGIN(0x19C, "GXSetDrawDone"); + enabled = OSDisableInterrupts(); + reg = 0x45000002; + GX_WRITE_RAS_REG(reg); + GXFlush(); + DrawDone = 0; + OSRestoreInterrupts(enabled); +} + +void GXWaitDrawDone(void) +{ + BOOL enabled; + + CHECK_GXBEGIN(0x1CA, "GXWaitDrawDone"); + + enabled = OSDisableInterrupts(); + while (!DrawDone) { + OSSleepThread(&FinishQueue); + } + OSRestoreInterrupts(enabled); +} + +void GXDrawDone(void) +{ + CHECK_GXBEGIN(0x1EA, "GXDrawDone"); + GXSetDrawDone(); + GXWaitDrawDone(); +} + +void GXPixModeSync(void) +{ + CHECK_GXBEGIN(0x20D, "GXPixModeSync"); + GX_WRITE_RAS_REG(gx->peCtrl); + gx->bpSentNot = 0; +} + +void GXTexModeSync(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x225, "GXTexModeSync"); + reg = 0x63000000; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXPokeAlphaMode(GXCompare func, u8 threshold) +{ + u32 reg; + + CHECK_GXBEGIN(0x25F, "GXPokeAlphaMode"); + reg = (func << 8) | threshold; + __peReg[3] = reg; +} + +void GXPokeAlphaRead(GXAlphaReadMode mode) +{ + u32 reg; + + CHECK_GXBEGIN(0x26A, "GXPokeAlphaRead"); + reg = 0; + SET_REG_FIELD(0x26D, reg, 2, 0, mode); + SET_REG_FIELD(0x26E, reg, 1, 2, 1); + __peReg[4] = reg; +} + +void GXPokeAlphaUpdate(GXBool update_enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x277, "GXPokeAlphaUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x27A, reg, 1, 4, update_enable); + __peReg[1] = reg; +} + +void GXPokeBlendMode(GXBlendMode type, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) +{ + u32 reg; + + CHECK_GXBEGIN(0x284, "GXPokeBlendUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x28C, reg, 1, 0, (type == GX_BM_BLEND) || (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x28D, reg, 1, 11, (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x28F, reg, 1, 1, (type == GX_BM_LOGIC)); + SET_REG_FIELD(0x290, reg, 4, 12, op); + SET_REG_FIELD(0x291, reg, 3, 8, src_factor); + SET_REG_FIELD(0x292, reg, 3, 5, dst_factor); + SET_REG_FIELD(0x293, reg, 8, 24, 0x41); + __peReg[1] = reg; +} + +void GXPokeColorUpdate(GXBool update_enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x29D, "GXPokeColorUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x2A0, reg, 1, 3, update_enable); + __peReg[1] = reg; +} + +void GXPokeDstAlpha(GXBool enable, u8 alpha) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x2A9, "GXPokeDstAlpha"); + SET_REG_FIELD(0x2AB, reg, 8, 0, alpha); + SET_REG_FIELD(0x2AC, reg, 1, 8, enable); + __peReg[2] = reg; +} + +void GXPokeDither(GXBool dither) +{ + u32 reg; + + CHECK_GXBEGIN(0x2B5, "GXPokeDither"); + reg = __peReg[1]; + SET_REG_FIELD(0x2B8, reg, 1, 2, dither); + __peReg[1] = reg; +} + +void GXPokeZMode(GXBool compare_enable, GXCompare func, GXBool update_enable) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x2C1, "GXPokeZMode"); + + SET_REG_FIELD(0x2C3, reg, 1, 0, compare_enable); + SET_REG_FIELD(0x2C4, reg, 3, 1, func); + SET_REG_FIELD(0x2C5, reg, 1, 4, update_enable); + __peReg[0] = reg; +} + +void GXPeekARGB(u16 x, u16 y, u32 *color) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2DC, addr, 10, 2, x); + SET_REG_FIELD(0x2DD, addr, 10, 12, y); + SET_REG_FIELD(0x2DE, addr, 2, 22, 0); + *color = *(u32 *)addr; +} + +void GXPokeARGB(u16 x, u16 y, u32 color) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2E6, addr, 10, 2, x); + SET_REG_FIELD(0x2E7, addr, 10, 12, y); + SET_REG_FIELD(0x2E8, addr, 2, 22, 0); + *(u32 *)addr = color; +} + +void GXPeekZ(u16 x, u16 y, u32 *z) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2F0, addr, 10, 2, x); + SET_REG_FIELD(0x2F1, addr, 10, 12, y); + SET_REG_FIELD(0x2F2, addr, 2, 22, 1); + *z = *(u32 *)addr; +} + +void GXPokeZ(u16 x, u16 y, u32 z) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2FA, addr, 10, 2, x); + SET_REG_FIELD(0x2FB, addr, 10, 12, y); + SET_REG_FIELD(0x2FC, addr, 2, 22, 1); + *(u32 *)addr = z; +} + +GXDrawSyncCallback GXSetDrawSyncCallback(GXDrawSyncCallback cb) +{ + GXDrawSyncCallback oldcb; + BOOL enabled; + + oldcb = TokenCB; + enabled = OSDisableInterrupts(); + TokenCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +static void GXTokenInterruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + u16 token; + OSContext exceptionContext; + u32 reg; + + token = __peReg[7]; + if (TokenCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + TokenCB(token); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 2, 1); + __peReg[5] = reg; +} + +GXDrawDoneCallback GXSetDrawDoneCallback(GXDrawDoneCallback cb) +{ + GXDrawDoneCallback oldcb; + BOOL enabled; + + oldcb = DrawDoneCB; + enabled = OSDisableInterrupts(); + DrawDoneCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +static void GXFinishInterruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + OSContext exceptionContext; + u32 reg; + + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 3, 1); + __peReg[5] = reg; + DrawDone = 1; + if (DrawDoneCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + DrawDoneCB(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } + OSWakeupThread(&FinishQueue); +} + +void __GXPEInit(void) +{ + u32 reg; + __OSSetInterruptHandler(0x12, GXTokenInterruptHandler); + __OSSetInterruptHandler(0x13, GXFinishInterruptHandler); + OSInitThreadQueue(&FinishQueue); + __OSUnmaskInterrupts(0x2000); + __OSUnmaskInterrupts(0x1000); + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 2, 1); + SET_REG_FIELD(0, reg, 1, 3, 1); + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 1, 1, 1); + __peReg[5] = reg; +} + +u32 GXCompressZ16(u32 z24, GXZFmt16 zfmt) +{ + u32 z16; + u32 z24n; + s32 exp; + s32 shift; + s32 temp; + u8 unused[4]; + + z24n = ~(z24 << 8); + temp = __cntlzw(z24n); + switch (zfmt) { + case GX_ZC_LINEAR: + z16 = (z24 >> 8) & 0xFFFF; + break; + case GX_ZC_NEAR: + if (temp > 3) { + exp = 3; + } + else { + exp = temp; + } + if (exp == 3) { + shift = 7; + } + else { + shift = 9 - exp; + } + z16 = ((z24 >> shift) & 0x3FFF & ~0xFFFFC000) | (exp << 14); + break; + case GX_ZC_MID: + if (temp > 7) { + exp = 7; + } + else { + exp = temp; + } + if (exp == 7) { + shift = 4; + } + else { + shift = 10 - exp; + } + z16 = ((z24 >> shift) & 0x1FFF & ~0xFFFFE000) | (exp << 13); + break; + case GX_ZC_FAR: + if (temp > 12) { + exp = 12; + } + else { + exp = temp; + } + if (exp == 12) { + shift = 0; + } + else { + shift = 11 - exp; + } + z16 = ((z24 >> shift) & 0xFFF & ~0xFFFFF000) | (exp << 12); + break; + default: + OSPanic(__FILE__, 0x3B0, "GXCompressZ16: Invalid Z format\n"); + break; + } + return z16; +} + +u32 GXDecompressZ16(u32 z16, GXZFmt16 zfmt) +{ + u32 z24; + u32 cb1; + long exp; + long shift; + + cb1; + cb1; + cb1; + z16; + z16; + z16; // needed to match + + switch (zfmt) { + case GX_ZC_LINEAR: + z24 = (z16 << 8) & 0xFFFF00; + break; + case GX_ZC_NEAR: + exp = (z16 >> 14) & 3; + if (exp == 3) { + shift = 7; + } + else { + shift = 9 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0x3FFF) << shift)) & 0xFFFFFF; + break; + case GX_ZC_MID: + exp = (z16 >> 13) & 7; + if (exp == 7) { + shift = 4; + } + else { + shift = 10 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0x1FFF) << shift)) & 0xFFFFFF; + break; + case GX_ZC_FAR: + exp = (z16 >> 12) & 0xF; + if (exp == 12) { + shift = 0; + } + else { + shift = 11 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0xFFF) << shift)) & 0xFFFFFF; + break; + default: + OSPanic(__FILE__, 0x3E2, "GXDecompressZ16: Invalid Z format\n"); + break; + } + return z24; +} diff --git a/src/dolphin/gx/GXPerf.c b/src/dolphin/gx/GXPerf.c new file mode 100644 index 00000000..34b4d0ae --- /dev/null +++ b/src/dolphin/gx/GXPerf.c @@ -0,0 +1,577 @@ +#include +#include + +#include + +void GXSetGPMetric(GXPerf0 perf0, GXPerf1 perf1) +{ + u32 reg; + + CHECK_GXBEGIN(0x6A, "GXSetGPMetric"); + + switch (gx->perf0) { + case GX_PERF0_VERTICES: + case GX_PERF0_CLIP_VTX: + case GX_PERF0_CLIP_CLKS: + case GX_PERF0_XF_WAIT_IN: + case GX_PERF0_XF_WAIT_OUT: + case GX_PERF0_XF_XFRM_CLKS: + case GX_PERF0_XF_LIT_CLKS: + case GX_PERF0_XF_BOT_CLKS: + case GX_PERF0_XF_REGLD_CLKS: + case GX_PERF0_XF_REGRD_CLKS: + case GX_PERF0_CLIP_RATIO: + case GX_PERF0_CLOCKS: + reg = 0; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_TRIANGLES: + case GX_PERF0_TRIANGLES_CULLED: + case GX_PERF0_TRIANGLES_PASSED: + case GX_PERF0_TRIANGLES_SCISSORED: + case GX_PERF0_TRIANGLES_0TEX: + case GX_PERF0_TRIANGLES_1TEX: + case GX_PERF0_TRIANGLES_2TEX: + case GX_PERF0_TRIANGLES_3TEX: + case GX_PERF0_TRIANGLES_4TEX: + case GX_PERF0_TRIANGLES_5TEX: + case GX_PERF0_TRIANGLES_6TEX: + case GX_PERF0_TRIANGLES_7TEX: + case GX_PERF0_TRIANGLES_8TEX: + case GX_PERF0_TRIANGLES_0CLR: + case GX_PERF0_TRIANGLES_1CLR: + case GX_PERF0_TRIANGLES_2CLR: + reg = 0x23000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_0CVG: + case GX_PERF0_QUAD_NON0CVG: + case GX_PERF0_QUAD_1CVG: + case GX_PERF0_QUAD_2CVG: + case GX_PERF0_QUAD_3CVG: + case GX_PERF0_QUAD_4CVG: + case GX_PERF0_AVG_QUAD_CNT: + reg = 0x24000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_NONE: + break; + default: + ASSERTMSGLINE(0xA6, 0, "GXSetGPMetric: Invalid GXPerf0 metric name"); + break; + } + + switch (gx->perf1) { + case GX_PERF1_TEXELS: + case GX_PERF1_TX_IDLE: + case GX_PERF1_TX_REGS: + case GX_PERF1_TX_MEMSTALL: + case GX_PERF1_TC_CHECK1_2: + case GX_PERF1_TC_CHECK3_4: + case GX_PERF1_TC_CHECK5_6: + case GX_PERF1_TC_CHECK7_8: + case GX_PERF1_TC_MISS: + case GX_PERF1_CLOCKS: + reg = 0x67000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_VC_ELEMQ_FULL: + case GX_PERF1_VC_MISSQ_FULL: + case GX_PERF1_VC_MEMREQ_FULL: + case GX_PERF1_VC_STATUS7: + case GX_PERF1_VC_MISSREP_FULL: + case GX_PERF1_VC_STREAMBUF_LOW: + case GX_PERF1_VC_ALL_STALLS: + case GX_PERF1_VERTICES: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_FIFO_REQ: + case GX_PERF1_CALL_REQ: + case GX_PERF1_VC_MISS_REQ: + case GX_PERF1_CP_ALL_REQ: + reg = 0; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_NONE: + break; + default: + ASSERTMSGLINE(0xD8, 0, "GXSetGPMetric: Invalid GXPerf1 metric name"); + break; + } + + gx->perf0 = perf0; + switch (gx->perf0) { + case GX_PERF0_VERTICES: + reg = 0x273; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_VTX: + reg = 0x14A; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_CLKS: + reg = 0x16B; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_WAIT_IN: + reg = 0x84; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_WAIT_OUT: + reg = 0xC6; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_XFRM_CLKS: + reg = 0x210; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_LIT_CLKS: + reg = 0x252; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_BOT_CLKS: + reg = 0x231; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_REGLD_CLKS: + reg = 0x1AD; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_REGRD_CLKS: + reg = 0x1CE; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLOCKS: + reg = 0x21; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_RATIO: + reg = 0x153; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_TRIANGLES: + reg = 0x2300AE7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_CULLED: + reg = 0x23008E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_PASSED: + reg = 0x23009E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_SCISSORED: + reg = 0x23001E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_0TEX: + reg = 0x2300AC3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_1TEX: + reg = 0x2300AC7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_2TEX: + reg = 0x2300ACBF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_3TEX: + reg = 0x2300ACFF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_4TEX: + reg = 0x2300AD3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_5TEX: + reg = 0x2300AD7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_6TEX: + reg = 0x2300ADBF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_7TEX: + reg = 0x2300ADFF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_8TEX: + reg = 0x2300AE3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_0CLR: + reg = 0x2300A27F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_1CLR: + reg = 0x2300A67F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_2CLR: + reg = 0x2300AA7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_0CVG: + reg = 0x2402C0C6; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_NON0CVG: + reg = 0x2402C16B; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_1CVG: + reg = 0x2402C0E7; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_2CVG: + reg = 0x2402C108; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_3CVG: + reg = 0x2402C129; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_4CVG: + reg = 0x2402C14A; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_AVG_QUAD_CNT: + reg = 0x2402C1AD; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_NONE: + break; + default: + ASSERTMSGLINE(0x1DA, 0, "GXSetGPMetric: Invalid GXPerf0 metric name"); + break; + } + + gx->perf1 = perf1; + switch (gx->perf1) { + case GX_PERF1_TEXELS: + reg = 0x67000042; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_IDLE: + reg = 0x67000084; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_REGS: + reg = 0x67000063; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_MEMSTALL: + reg = 0x67000129; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_MISS: + reg = 0x67000252; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_CLOCKS: + reg = 0x67000021; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK1_2: + reg = 0x6700014B; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK3_4: + reg = 0x6700018D; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK5_6: + reg = 0x670001CF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK7_8: + reg = 0x67000211; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_VC_ELEMQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 2); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MISSQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 3); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MEMREQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 4); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_STATUS7: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 5); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MISSREP_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 6); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_STREAMBUF_LOW: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 7); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_ALL_STALLS: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 9); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VERTICES: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 8); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_FIFO_REQ: + reg = 2; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_CALL_REQ: + reg = 3; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_VC_MISS_REQ: + reg = 4; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_CP_ALL_REQ: + reg = 5; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_NONE: + break; + default: + ASSERTMSGLINE(0x26B, 0, "GXSetGPMetric: Invalid GXPerf1 metric name"); + break; + } + + gx->bpSentNot = 0; +} + +#pragma scheduling off +void GXReadGPMetric(u32 *cnt0, u32 *cnt1) +{ + u32 cpCtr0, cpCtr1, cpCtr2, cpCtr3; + + ASSERTMSGLINE(0x286, !gx->inDispList, "GXReadGPMetric: don't use in a display list"); + + cpCtr0 = __GXReadCPCounterU32(32, 33); + cpCtr1 = __GXReadCPCounterU32(34, 35); + cpCtr2 = __GXReadCPCounterU32(36, 37); + cpCtr3 = __GXReadCPCounterU32(38, 39); + + switch (gx->perf0) { + case GX_PERF0_CLIP_RATIO: + *cnt0 = cpCtr1 * 0x3E8 / cpCtr0; + break; + case GX_PERF0_VERTICES: + case GX_PERF0_CLIP_VTX: + case GX_PERF0_CLIP_CLKS: + case GX_PERF0_XF_WAIT_IN: + case GX_PERF0_XF_WAIT_OUT: + case GX_PERF0_XF_XFRM_CLKS: + case GX_PERF0_XF_LIT_CLKS: + case GX_PERF0_XF_BOT_CLKS: + case GX_PERF0_XF_REGLD_CLKS: + case GX_PERF0_XF_REGRD_CLKS: + case GX_PERF0_TRIANGLES: + case GX_PERF0_TRIANGLES_CULLED: + case GX_PERF0_TRIANGLES_PASSED: + case GX_PERF0_TRIANGLES_SCISSORED: + case GX_PERF0_TRIANGLES_0TEX: + case GX_PERF0_TRIANGLES_1TEX: + case GX_PERF0_TRIANGLES_2TEX: + case GX_PERF0_TRIANGLES_3TEX: + case GX_PERF0_TRIANGLES_4TEX: + case GX_PERF0_TRIANGLES_5TEX: + case GX_PERF0_TRIANGLES_6TEX: + case GX_PERF0_TRIANGLES_7TEX: + case GX_PERF0_TRIANGLES_8TEX: + case GX_PERF0_TRIANGLES_0CLR: + case GX_PERF0_TRIANGLES_1CLR: + case GX_PERF0_TRIANGLES_2CLR: + case GX_PERF0_QUAD_0CVG: + case GX_PERF0_QUAD_NON0CVG: + case GX_PERF0_QUAD_1CVG: + case GX_PERF0_QUAD_2CVG: + case GX_PERF0_QUAD_3CVG: + case GX_PERF0_QUAD_4CVG: + case GX_PERF0_AVG_QUAD_CNT: + case GX_PERF0_CLOCKS: + *cnt0 = cpCtr0; + break; + case GX_PERF0_NONE: + *cnt0 = 0; + break; + default: + ASSERTMSGLINE(0x2CF, 0, "GXReadGPMetric: Invalid GXPerf0 metric name"); + *cnt0 = 0; + break; + } + + switch (gx->perf1) { + case GX_PERF1_TEXELS: + *cnt1 = cpCtr3 * 4; + break; + case GX_PERF1_TC_CHECK1_2: + *cnt1 = cpCtr2 + (cpCtr3 * 2); + break; + case GX_PERF1_TC_CHECK3_4: + *cnt1 = (cpCtr2 * 3) + (cpCtr3 * 4); + break; + case GX_PERF1_TC_CHECK5_6: + *cnt1 = (cpCtr2 * 5) + (cpCtr3 * 6); + break; + case GX_PERF1_TC_CHECK7_8: + *cnt1 = (cpCtr2 * 7) + (cpCtr3 * 8); + break; + case GX_PERF1_TX_IDLE: + case GX_PERF1_TX_REGS: + case GX_PERF1_TX_MEMSTALL: + case GX_PERF1_TC_MISS: + case GX_PERF1_VC_ELEMQ_FULL: + case GX_PERF1_VC_MISSQ_FULL: + case GX_PERF1_VC_MEMREQ_FULL: + case GX_PERF1_VC_STATUS7: + case GX_PERF1_VC_MISSREP_FULL: + case GX_PERF1_VC_STREAMBUF_LOW: + case GX_PERF1_VC_ALL_STALLS: + case GX_PERF1_VERTICES: + case GX_PERF1_CLOCKS: + *cnt1 = cpCtr3; + break; + case GX_PERF1_FIFO_REQ: + case GX_PERF1_CALL_REQ: + case GX_PERF1_VC_MISS_REQ: + case GX_PERF1_CP_ALL_REQ: + *cnt1 = cpCtr2; + break; + case GX_PERF1_NONE: + *cnt1 = 0; + break; + default: + ASSERTMSGLINE(0x30A, 0, "GXReadGPMetric: Invalid GXPerf1 metric name"); + *cnt1 = 0; + break; + } +} +#pragma scheduling reset + +void GXClearGPMetric(void) +{ + u32 reg; + + ASSERTMSGLINE(0x322, !gx->inDispList, "GXClearGPMetric: don't use in a display list"); + reg = 4; + __cpReg[2] = reg; +} + +u32 GXReadGP0Metric(void) +{ + u32 cnt0, cnt1; + + GXReadGPMetric(&cnt0, &cnt1); + return cnt0; +} + +u32 GXReadGP1Metric(void) +{ + u32 cnt0, cnt1; + + GXReadGPMetric(&cnt0, &cnt1); + return cnt1; +} + +#pragma scheduling off +void GXReadMemMetric( + u32 *cp_req, u32 *tc_req, u32 *cpu_rd_req, u32 *cpu_wr_req, u32 *dsp_req, u32 *io_req, u32 *vi_req, u32 *pe_req, u32 *rf_req, u32 *fi_req) +{ + ASSERTMSGLINE(0x380, !gx->inDispList, "GXReadMemMetric: don't use in a display list"); + + *cp_req = __GXReadMEMCounterU32(26, 25); + *tc_req = __GXReadMEMCounterU32(28, 27); + *cpu_rd_req = __GXReadMEMCounterU32(30, 29); + *cpu_wr_req = __GXReadMEMCounterU32(32, 31); + *dsp_req = __GXReadMEMCounterU32(34, 33); + *io_req = __GXReadMEMCounterU32(36, 35); + *vi_req = __GXReadMEMCounterU32(38, 37); + *pe_req = __GXReadMEMCounterU32(40, 39); + *rf_req = __GXReadMEMCounterU32(42, 41); + *fi_req = __GXReadMEMCounterU32(44, 43); +} +#pragma scheduling reset + +void GXClearMemMetric(void) +{ + ASSERTMSGLINE(0x3B9, !gx->inDispList, "GXClearMemMetric: don't use in a display list"); + + GX_SET_MEM_REG(25, 0); + GX_SET_MEM_REG(26, 0); + GX_SET_MEM_REG(27, 0); + GX_SET_MEM_REG(28, 0); + GX_SET_MEM_REG(30, 0); + GX_SET_MEM_REG(29, 0); + GX_SET_MEM_REG(32, 0); + GX_SET_MEM_REG(31, 0); + GX_SET_MEM_REG(34, 0); + GX_SET_MEM_REG(33, 0); + GX_SET_MEM_REG(36, 0); + GX_SET_MEM_REG(35, 0); + GX_SET_MEM_REG(38, 0); + GX_SET_MEM_REG(37, 0); + GX_SET_MEM_REG(40, 0); + GX_SET_MEM_REG(39, 0); + GX_SET_MEM_REG(42, 0); + GX_SET_MEM_REG(41, 0); + GX_SET_MEM_REG(44, 0); + GX_SET_MEM_REG(43, 0); +} + +#pragma scheduling off +void GXReadPixMetric(u32 *top_pixels_in, u32 *top_pixels_out, u32 *bot_pixels_in, u32 *bot_pixels_out, u32 *clr_pixels_in, u32 *copy_clks) +{ + *top_pixels_in = __GXReadPECounterU32(12, 13) * 4; + *top_pixels_out = __GXReadPECounterU32(14, 15) * 4; + *bot_pixels_in = __GXReadPECounterU32(16, 17) * 4; + *bot_pixels_out = __GXReadPECounterU32(18, 19) * 4; + *clr_pixels_in = __GXReadPECounterU32(20, 21) * 4; + *copy_clks = __GXReadPECounterU32(22, 23); +} +#pragma scheduling reset + +void GXClearPixMetric(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x48B, "GXClearPixMetric"); + reg = 0x57000000; + GX_WRITE_RAS_REG(reg); + reg = 0x57000AAA; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetVCacheMetric(GXVCachePerf attr) +{ + u32 reg; + + SET_REG_FIELD(0x43C, gx->perfSel, 4, 0, attr); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + reg = 1; + GX_WRITE_SOME_REG4(8, 0x10, reg, -12); +} + +#pragma scheduling off +void GXReadVCacheMetric(u32 *check, u32 *miss, u32 *stall) +{ + *check = __GXReadCPCounterU32(40, 41); + *miss = __GXReadCPCounterU32(42, 43); + *stall = __GXReadCPCounterU32(44, 45); +} +#pragma scheduling on + +void GXClearVCacheMetric(void) +{ + GX_WRITE_SOME_REG4(8, 0, 0, -12); +} diff --git a/src/dolphin/gx/GXPixel.c b/src/dolphin/gx/GXPixel.c new file mode 100644 index 00000000..5460b4b6 --- /dev/null +++ b/src/dolphin/gx/GXPixel.c @@ -0,0 +1,290 @@ +#include +#include +#include + +#include + +void GXSetFog(GXFogType type, f32 startz, f32 endz, f32 nearz, f32 farz, GXColor color) +{ + u32 fogclr; + u32 fog0; + u32 fog1; + u32 fog2; + u32 fog3; + f32 A; + f32 B; + f32 B_mant; + f32 C; + f32 a; + f32 c; + u32 B_expn; + u32 b_m; + u32 b_s; + u32 a_hex; + u32 c_hex; + + CHECK_GXBEGIN(0x8A, "GXSetFog"); + + ASSERTMSGLINE(0x8C, farz >= 0.0f, "GXSetFog: The farz should be positive value"); + ASSERTMSGLINE(0x8D, farz >= nearz, "GXSetFog: The farz should be larger than nearz"); + + if (farz == nearz || endz == startz) { + A = 0.0f; + B = 0.5f; + C = 0.0f; + } + else { + A = (farz * nearz) / ((farz - nearz) * (endz - startz)); + B = farz / (farz - nearz); + C = startz / (endz - startz); + } + + B_mant = B; + B_expn = 0; + while (B_mant > 1.0) { + B_mant *= 0.5f; + B_expn++; + } + while (B_mant > 0.0f && B_mant < 0.5) { + B_mant *= 2.0f; + B_expn--; + } + + a = A / (f32)(1 << (B_expn + 1)); + b_m = 8.388638e6f * B_mant; + b_s = B_expn + 1; + c = C; + + fog1 = 0; + SET_REG_FIELD(0x94, fog1, 24, 0, b_m); + SET_REG_FIELD(0x95, fog1, 8, 24, 0xEF); + + fog2 = 0; + SET_REG_FIELD(0x98, fog2, 5, 0, b_s); + SET_REG_FIELD(0x99, fog2, 8, 24, 0xF0); + + a_hex = *(u32 *)&a; + c_hex = *(u32 *)&c; + + fog0 = 0; + SET_REG_FIELD(0xA0, fog0, 11, 0, (a_hex >> 12) & 0x7FF); + SET_REG_FIELD(0xA1, fog0, 8, 11, (a_hex >> 23) & 0xFF); + SET_REG_FIELD(0xA2, fog0, 1, 19, (a_hex >> 31)); + SET_REG_FIELD(0xA3, fog0, 8, 24, 0xEE); + + fog3 = 0; + SET_REG_FIELD(0xA6, fog3, 11, 0, (c_hex >> 12) & 0x7FF); + SET_REG_FIELD(0xA7, fog3, 8, 11, (c_hex >> 23) & 0xFF); + SET_REG_FIELD(0xA8, fog3, 1, 19, (c_hex >> 31)); + SET_REG_FIELD(0xA9, fog3, 1, 20, 0); + SET_REG_FIELD(0xAA, fog3, 3, 21, type); + SET_REG_FIELD(0xAB, fog3, 8, 24, 0xF1); + + fogclr = 0; + SET_REG_FIELD(0xAE, fogclr, 8, 0, color.b); + SET_REG_FIELD(0xAF, fogclr, 8, 8, color.g); + SET_REG_FIELD(0xB0, fogclr, 8, 16, color.r); + SET_REG_FIELD(0xB1, fogclr, 8, 24, 0xF2); + + GX_WRITE_RAS_REG(fog0); + GX_WRITE_RAS_REG(fog1); + GX_WRITE_RAS_REG(fog2); + GX_WRITE_RAS_REG(fog3); + GX_WRITE_RAS_REG(fogclr); + gx->bpSentNot = 0; +} + +void GXSetFogColor(GXColor color) +{ + unsigned long rgba; + unsigned long fogclr = 0xF2000000; + + rgba = *(u32 *)&color; + SET_REG_FIELD(0xFA, fogclr, 24, 0, rgba >> 8); + GX_WRITE_RAS_REG(fogclr); + gx->bpSentNot = 0; +} + +void GXInitFogAdjTable(GXFogAdjTable *table, u16 width, const f32 projmtx[4][4]) +{ + f32 xi; + f32 iw; + f32 rangeVal; + f32 nearZ; + f32 sideX; + u32 i; + + CHECK_GXBEGIN(0x113, "GXInitFogAdjTable"); + ASSERTMSGLINE(0x114, table != NULL, "GXInitFogAdjTable: table pointer is null"); + ASSERTMSGLINE(0x115, width <= 640, "GXInitFogAdjTable: invalid width value"); + + if (0.0 == projmtx[3][3]) { + nearZ = projmtx[2][3] / (projmtx[2][2] - 1.0f); + sideX = nearZ / projmtx[0][0]; + } + else { + sideX = 1.0f / projmtx[0][0]; + nearZ = 1.73205f * sideX; + } + + iw = 2.0f / width; + for (i = 0; i < 10; i++) { + xi = (i + 1) << 5; + xi *= iw; + xi *= sideX; + rangeVal = sqrtf(1.0f + ((xi * xi) / (nearZ * nearZ))); + table->r[i] = (u32)(256.0f * rangeVal) & 0xFFF; + } +} + +void GXSetFogRangeAdj(GXBool enable, u16 center, const GXFogAdjTable *table) +{ + u32 i; + u32 range_adj; + u32 range_c; + + CHECK_GXBEGIN(0x14B, "GXSetFogRangeAdj"); + + if (enable) { + ASSERTMSGLINE(0x14E, table != NULL, "GXSetFogRangeAdj: table pointer is null"); + for (i = 0; i < 10; i += 2) { + range_adj = 0; + SET_REG_FIELD(0x152, range_adj, 12, 0, table->r[i]); + SET_REG_FIELD(0x153, range_adj, 12, 12, table->r[i + 1]); + SET_REG_FIELD(0x154, range_adj, 8, 24, (i >> 1) + 0xE9); + GX_WRITE_RAS_REG(range_adj); + } + } + range_c = 0; + SET_REG_FIELD(0x15A, range_c, 10, 0, center + 342); + SET_REG_FIELD(0x15B, range_c, 1, 10, enable); + SET_REG_FIELD(0x15C, range_c, 8, 24, 0xE8); + GX_WRITE_RAS_REG(range_c); + gx->bpSentNot = 0; +} + +void GXSetBlendMode(GXBlendMode type, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) +{ + CHECK_GXBEGIN(0x177, "GXSetBlendMode"); + + SET_REG_FIELD(0x135, gx->cmode0, 1, 0, (type == GX_BM_BLEND || type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x136, gx->cmode0, 1, 11, (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x138, gx->cmode0, 1, 1, (type == GX_BM_LOGIC)); + SET_REG_FIELD(0x139, gx->cmode0, 4, 12, op); + SET_REG_FIELD(0x13A, gx->cmode0, 3, 8, src_factor); + SET_REG_FIELD(0x13B, gx->cmode0, 3, 5, dst_factor); + SET_REG_FIELD(0x13C, gx->cmode0, 8, 24, 0x41); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetColorUpdate(GXBool update_enable) +{ + CHECK_GXBEGIN(0x1A3, "GXSetColorUpdate"); + + SET_REG_FIELD(0x150, gx->cmode0, 1, 3, update_enable); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetAlphaUpdate(GXBool update_enable) +{ + CHECK_GXBEGIN(0x1B0, "GXSetAlphaUpdate"); + + SET_REG_FIELD(0x159, gx->cmode0, 1, 4, update_enable); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetZMode(GXBool compare_enable, GXCompare func, GXBool update_enable) +{ + CHECK_GXBEGIN(0x1CB, "GXSetZMode"); + + SET_REG_FIELD(0x171, gx->zmode, 1, 0, compare_enable); + SET_REG_FIELD(0x172, gx->zmode, 3, 1, func); + SET_REG_FIELD(0x173, gx->zmode, 1, 4, update_enable); + GX_WRITE_RAS_REG(gx->zmode); + gx->bpSentNot = 0; +} + +void GXSetZCompLoc(GXBool before_tex) +{ + CHECK_GXBEGIN(0x1DA, "GXSetZCompLoc"); + + SET_REG_FIELD(0x1DB, gx->peCtrl, 1, 6, before_tex); + GX_WRITE_RAS_REG(gx->peCtrl); + gx->bpSentNot = 0; +} + +void GXSetPixelFmt(GXPixelFmt pix_fmt, GXZFmt16 z_fmt) +{ + u32 oldPeCtrl; + u8 aa; + static u32 p2f[8] = { 0, 1, 2, 3, 4, 4, 4, 5 }; + + CHECK_GXBEGIN(0x1FF, "GXSetPixelFmt"); + oldPeCtrl = gx->peCtrl; + ASSERTMSGLINE(0x203, pix_fmt >= 0 && pix_fmt <= 7, "Invalid Pixel format"); + SET_REG_FIELD(0x205, gx->peCtrl, 3, 0, p2f[pix_fmt]); + SET_REG_FIELD(0x206, gx->peCtrl, 3, 3, z_fmt); + if (oldPeCtrl != gx->peCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + if (pix_fmt == GX_PF_RGB565_Z16) + aa = 1; + else + aa = 0; + SET_REG_FIELD(0x20F, gx->genMode, 1, 9, aa); + gx->dirtyState |= 4; + } + if (p2f[pix_fmt] == 4) { + SET_REG_FIELD(0x216, gx->cmode1, 2, 9, (pix_fmt - 4) & 0x3); + SET_REG_FIELD(0x216, gx->cmode1, 8, 24, 0x42); + GX_WRITE_RAS_REG(gx->cmode1); + } + gx->bpSentNot = 0; +} + +void GXSetDither(GXBool dither) +{ + CHECK_GXBEGIN(0x22C, "GXSetDither"); + + SET_REG_FIELD(0x1CE, gx->cmode0, 1, 2, dither); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetDstAlpha(GXBool enable, u8 alpha) +{ + CHECK_GXBEGIN(0x245, "GXSetDstAlpha"); + + SET_REG_FIELD(0x1E2, gx->cmode1, 8, 0, alpha); + SET_REG_FIELD(0x1E3, gx->cmode1, 1, 8, enable); + GX_WRITE_RAS_REG(gx->cmode1); + gx->bpSentNot = 0; +} + +void GXSetFieldMask(GXBool odd_mask, GXBool even_mask) +{ + u32 reg; + + CHECK_GXBEGIN(0x260, "GXSetFieldMask"); + reg = 0; + SET_REG_FIELD(0x262, reg, 1, 0, even_mask); + SET_REG_FIELD(0x263, reg, 1, 1, odd_mask); + SET_REG_FIELD(0x263, reg, 8, 24, 0x44); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetFieldMode(GXBool field_mode, GXBool half_aspect_ratio) +{ + u32 reg; + + CHECK_GXBEGIN(0x27D, "GXSetFieldMode"); + SET_REG_FIELD(0x281, gx->lpSize, 1, 22, half_aspect_ratio); + GX_WRITE_RAS_REG(gx->lpSize); + __GXFlushTextureState(); + reg = field_mode | 0x68000000; + GX_WRITE_RAS_REG(reg); + __GXFlushTextureState(); +} diff --git a/src/dolphin/gx/GXStubs.c b/src/dolphin/gx/GXStubs.c new file mode 100644 index 00000000..85f05a89 --- /dev/null +++ b/src/dolphin/gx/GXStubs.c @@ -0,0 +1,5 @@ +#include + +#include + +void __GXSetRange(float nearz, float fgSideX) {} diff --git a/src/dolphin/gx/GXTev.c b/src/dolphin/gx/GXTev.c new file mode 100644 index 00000000..c2f6d67a --- /dev/null +++ b/src/dolphin/gx/GXTev.c @@ -0,0 +1,403 @@ +#include +#include + +#include + +void GXSetTevOp(GXTevStageID id, GXTevMode mode) +{ + GXTevColorArg carg = GX_CC_RASC; + GXTevAlphaArg aarg = GX_CA_RASA; + + CHECK_GXBEGIN(0x1A4, "GXSetTevOp"); + ASSERTMSGLINE(0x1A5, id < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x1A6, mode <= 4, "GXSetTevOp: Invalid Tev Mode"); + + if (id != GX_TEVSTAGE0) { + carg = GX_CC_CPREV; + aarg = GX_CA_APREV; + } + + switch (mode) { + case GX_MODULATE: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_TEXC, carg, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_TEXA, aarg, GX_CA_ZERO); + break; + case GX_DECAL: + GXSetTevColorIn(id, carg, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, aarg); + break; + case GX_BLEND: + GXSetTevColorIn(id, carg, GX_CC_ONE, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_TEXA, aarg, GX_CA_ZERO); + break; + case GX_REPLACE: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + break; + case GX_PASSCLR: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, carg); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, aarg); + break; + } + GXSetTevColorOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); +} + +void GXSetTevColorIn(GXTevStageID stage, GXTevColorArg a, GXTevColorArg b, GXTevColorArg c, GXTevColorArg d) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x242, "GXSetTevColorIn"); + ASSERTMSGLINE(0x243, stage < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x244, a <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x245, b <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x246, c <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x247, d <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + + pTevReg = &gx->tevc[stage]; + SET_REG_FIELD(0xED, *pTevReg, 4, 12, a); + SET_REG_FIELD(0xEE, *pTevReg, 4, 8, b); + SET_REG_FIELD(0xEF, *pTevReg, 4, 4, c); + SET_REG_FIELD(0xF0, *pTevReg, 4, 0, d); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevAlphaIn(GXTevStageID stage, GXTevAlphaArg a, GXTevAlphaArg b, GXTevAlphaArg c, GXTevAlphaArg d) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x266, "GXSetTevAlphaIn"); + ASSERTMSGLINE(0x267, stage < 16, "GXSetTevAlpha*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x268, a <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x269, b <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x26A, c <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x26B, d <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x110, *pTevReg, 3, 13, a); + SET_REG_FIELD(0x111, *pTevReg, 3, 10, b); + SET_REG_FIELD(0x112, *pTevReg, 3, 7, c); + SET_REG_FIELD(0x113, *pTevReg, 3, 4, d); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevColorOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, GXTevRegID out_reg) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x28D, "GXSetTevColorOp"); + ASSERTMSGLINE(0x28E, stage < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + + pTevReg = &gx->tevc[stage]; + SET_REG_FIELD(0x137, *pTevReg, 1, 18, op & 1); + if (op <= 1) { + SET_REG_FIELD(0x139, *pTevReg, 2, 20, scale); + SET_REG_FIELD(0x13A, *pTevReg, 2, 16, bias); + } + else { + SET_REG_FIELD(0x13C, *pTevReg, 2, 20, (op >> 1) & 3); + SET_REG_FIELD(0x13D, *pTevReg, 2, 16, 3); + } + SET_REG_FIELD(0x140, *pTevReg, 1, 19, clamp & 0xFF); + SET_REG_FIELD(0x141, *pTevReg, 2, 22, out_reg); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevAlphaOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, GXTevRegID out_reg) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x2BB, "GXSetTevAlphaOp"); + ASSERTMSGLINE(0x2BC, stage < 16, "GXSetTevAlpha*: Invalid Tev Stage Index"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x163, *pTevReg, 1, 18, op & 1); + if (op <= 1) { + SET_REG_FIELD(0x165, *pTevReg, 2, 20, scale); + SET_REG_FIELD(0x166, *pTevReg, 2, 16, bias); + } + else { + SET_REG_FIELD(0x168, *pTevReg, 2, 20, (op >> 1) & 3); + SET_REG_FIELD(0x169, *pTevReg, 2, 16, 3); + } + SET_REG_FIELD(0x16C, *pTevReg, 1, 19, clamp & 0xFF); + SET_REG_FIELD(0x16D, *pTevReg, 2, 22, out_reg); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevColor(GXTevRegID id, GXColor color) +{ + u32 regRA; + u32 regBG; + + CHECK_GXBEGIN(0x2E4, "GXSetTevColor"); + regRA = 0; + SET_REG_FIELD(0x185, regRA, 11, 0, color.r); + SET_REG_FIELD(0x186, regRA, 11, 12, color.a); + SET_REG_FIELD(0x187, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x18A, regBG, 11, 0, color.b); + SET_REG_FIELD(0x18B, regBG, 11, 12, color.g); + SET_REG_FIELD(0x18C, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevColorS10(GXTevRegID id, GXColorS10 color) +{ + u32 regRA; + u32 regBG; + + ASSERTMSGLINE(0x309, color.r >= -1024 && color.r < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30A, color.g >= -1024 && color.g < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30B, color.b >= -1024 && color.b < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30C, color.a >= -1024 && color.a < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + + CHECK_GXBEGIN(0x30E, "GXSetTevColorS10"); + regRA = 0; + SET_REG_FIELD(0x1AF, regRA, 11, 0, color.r & 0x7FF); + SET_REG_FIELD(0x1B0, regRA, 11, 12, color.a & 0x7FF); + SET_REG_FIELD(0x1B1, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x1B4, regBG, 11, 0, color.b & 0x7FF); + SET_REG_FIELD(0x1B5, regBG, 11, 12, color.g & 0x7FF); + SET_REG_FIELD(0x1B6, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevKColor(GXTevKColorID id, GXColor color) +{ + u32 regRA; + u32 regBG; + + CHECK_GXBEGIN(0x341, "GXSetTevKColor"); + regRA = 0; + SET_REG_FIELD(0x1E0, regRA, 8, 0, color.r); + SET_REG_FIELD(0x1E1, regRA, 8, 12, color.a); + SET_REG_FIELD(0x1E2, regRA, 4, 20, 8); + SET_REG_FIELD(0x1E3, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x1E6, regBG, 8, 0, color.b); + SET_REG_FIELD(0x1E7, regBG, 8, 12, color.g); + SET_REG_FIELD(0x1E8, regBG, 4, 20, 8); + SET_REG_FIELD(0x1E9, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevKColorSel(GXTevStageID stage, GXTevKColorSel sel) +{ + u32 *Kreg; + + CHECK_GXBEGIN(0x368, "GXSetTevKColorSel"); + ASSERTMSGLINE(0x369, stage < 16, "GXSetTevKColor*: Invalid Tev Stage Index"); + + Kreg = &gx->tevKsel[stage >> 1]; + if (stage & 1) { + SET_REG_FIELD(0x20A, *Kreg, 5, 14, sel); + } + else { + SET_REG_FIELD(0x20C, *Kreg, 5, 4, sel); + } + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevKAlphaSel(GXTevStageID stage, GXTevKAlphaSel sel) +{ + u32 *Kreg; + + CHECK_GXBEGIN(0x389, "GXSetTevKAlphaSel"); + ASSERTMSGLINE(0x38A, stage < 16, "GXSetTevKColor*: Invalid Tev Stage Index"); + + Kreg = &gx->tevKsel[stage >> 1]; + if (stage & 1) { + SET_REG_FIELD(0x22B, *Kreg, 5, 19, sel); + } + else { + SET_REG_FIELD(0x22D, *Kreg, 5, 9, sel); + } + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevSwapMode(GXTevStageID stage, GXTevSwapSel ras_sel, GXTevSwapSel tex_sel) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x3AE, "GXSetTevSwapMode"); + ASSERTMSGLINE(0x3AF, stage < 16, "GXSetTevSwapMode: Invalid Tev Stage Index"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x24E, *pTevReg, 2, 0, ras_sel); + SET_REG_FIELD(0x24F, *pTevReg, 2, 2, tex_sel); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevSwapModeTable(GXTevSwapSel table, GXTevColorChan red, GXTevColorChan green, GXTevColorChan blue, GXTevColorChan alpha) +{ + u32 *Kreg; +#if !DEBUG + // not a real variable, but needed to match release + int index = table * 2; +#endif + + CHECK_GXBEGIN(0x3D2, "GXSetTevSwapModeTable"); + ASSERTMSGLINE(0x3D3, table < 4, "GXSetTevSwapModeTable: Invalid Swap Selection Index"); + +#if DEBUG + Kreg = &gx->tevKsel[table * 2]; +#else + Kreg = &gx->tevKsel[index]; +#endif + SET_REG_FIELD(0x272, *Kreg, 2, 0, red); + SET_REG_FIELD(0x273, *Kreg, 2, 2, green); + + GX_WRITE_RAS_REG(*Kreg); + + Kreg = &gx->tevKsel[table * 2 + 1]; + SET_REG_FIELD(0x277, *Kreg, 2, 0, blue); + SET_REG_FIELD(0x278, *Kreg, 2, 2, alpha); + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevClampMode(void) +{ + ASSERTMSGLINE(0x3F4, 0, "GXSetTevClampMode: not available on this hardware"); +} + +void GXSetAlphaCompare(GXCompare comp0, u8 ref0, GXAlphaOp op, GXCompare comp1, u8 ref1) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x416, "GXSetAlphaCompare"); + SET_REG_FIELD(0x2B4, reg, 8, 0, ref0); + SET_REG_FIELD(0x2B5, reg, 8, 8, ref1); + SET_REG_FIELD(0x2B6, reg, 3, 16, comp0); + SET_REG_FIELD(0x2B7, reg, 3, 19, comp1); + SET_REG_FIELD(0x2B8, reg, 2, 22, op); + SET_REG_FIELD(0x2B9, reg, 8, 24, 0xF3); + + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetZTexture(GXZTexOp op, GXTexFmt fmt, u32 bias) +{ + u32 zenv0; + u32 zenv1; + u32 type; + + CHECK_GXBEGIN(0x435, "GXSetZTexture"); + + zenv0 = 0; + SET_REG_FIELD(0x2D4, zenv0, 24, 0, bias); + SET_REG_FIELD(0x2D5, zenv0, 8, 24, 0xF4); + + zenv1 = 0; + switch (fmt) { + case GX_TF_Z8: + type = 0; + break; + case GX_TF_Z16: + type = 1; + break; + case GX_TF_Z24X8: + type = 2; + break; + default: + ASSERTMSGLINE(0x441, 0, "GXSetZTexture: Invalid z-texture format"); + type = 2; + break; + } + SET_REG_FIELD(0x2E0, zenv1, 2, 0, type); + SET_REG_FIELD(0x2E1, zenv1, 2, 2, op); + SET_REG_FIELD(0x2E2, zenv1, 8, 24, 0xF5); + + GX_WRITE_RAS_REG(zenv0); + GX_WRITE_RAS_REG(zenv1); + gx->bpSentNot = 0; +} + +void GXSetTevOrder(GXTevStageID stage, GXTexCoordID coord, GXTexMapID map, GXChannelID color) +{ + u32 *ptref; + u32 tmap; + u32 tcoord; + static int c2r[] = { 0, 1, 0, 1, 0, 1, 7, 5, 6 }; + + CHECK_GXBEGIN(0x46B, "GXSetTevOrder"); + ASSERTMSGLINE(0x46C, stage < 16, "GXSetTevOrder: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x46E, coord < 8 || coord == 0xFF, "GXSetTevOrder: Invalid Texcoord"); + ASSERTMSGLINE(0x470, (map & ~0x100) < 8 || map == 0xFF, "GXSetTevOrder: Invalid Tex Map"); + ASSERTMSGLINE(0x472, color >= 4 && color <= 0xFF, "GXSetTevOrder: Invalid Color Channel ID"); + + ptref = &gx->tref[stage / 2]; + gx->texmapId[stage] = map; + + tmap = map & ~0x100; + tmap = (tmap >= GX_MAX_TEXMAP) ? GX_TEXMAP0 : tmap; + + if (coord >= GX_MAX_TEXCOORD) { + tcoord = GX_TEXCOORD0; + gx->tevTcEnab = gx->tevTcEnab & ~(1 << stage); + } + else { + tcoord = coord; + gx->tevTcEnab = gx->tevTcEnab | (1 << stage); + } + + if (stage & 1) { + SET_REG_FIELD(0x486, *ptref, 3, 12, tmap); + SET_REG_FIELD(0x487, *ptref, 3, 15, tcoord); + SET_REG_FIELD(0x489, *ptref, 3, 19, (color == GX_COLOR_NULL) ? 7 : c2r[color]); + SET_REG_FIELD(0x48B, *ptref, 1, 18, (map != GX_TEXMAP_NULL && !(map & 0x100))); + } + else { + SET_REG_FIELD(0x48E, *ptref, 3, 0, tmap); + SET_REG_FIELD(0x48F, *ptref, 3, 3, tcoord); + SET_REG_FIELD(0x491, *ptref, 3, 7, (color == GX_COLOR_NULL) ? 7 : c2r[color]); + SET_REG_FIELD(0x493, *ptref, 1, 6, (map != GX_TEXMAP_NULL && !(map & 0x100))); + } + + GX_WRITE_RAS_REG(*ptref); + gx->bpSentNot = 0; + gx->dirtyState |= 1; +} + +void GXSetNumTevStages(u8 nStages) +{ + CHECK_GXBEGIN(0x4A3, "GXSetNumTevStages"); + + ASSERTMSGLINE(0x4A5, nStages != 0 && nStages <= 16, "GXSetNumTevStages: Exceed max number of tex stages"); + SET_REG_FIELD(0x334, gx->genMode, 4, 10, nStages - 1); + gx->dirtyState |= 4; +} diff --git a/src/dolphin/gx/GXTexture.c b/src/dolphin/gx/GXTexture.c new file mode 100644 index 00000000..ec67f795 --- /dev/null +++ b/src/dolphin/gx/GXTexture.c @@ -0,0 +1,1269 @@ +#include +#include + +#include + +// GXTexObj internal data +typedef struct __GXTexObjInt_struct { + u32 mode0; + u32 mode1; + u32 image0; + u32 image3; + void *userData; + GXTexFmt fmt; + u32 tlutName; + u16 loadCnt; + u8 loadFmt; + u8 flags; +} __GXTexObjInt; + +// GXTexRegion internal data +typedef struct __GXTexRegionInt_struct { + u32 image1; + u32 image2; + u16 sizeEven; + u16 sizeOdd; + u8 is32bMipmap; + u8 isCached; +} __GXTexRegionInt; + +// GXTlutObj internal data +typedef struct __GXTlutObjInt_struct { + u32 tlut; + u32 loadTlut0; + u16 numEntries; +} __GXTlutObjInt; + +// GXTlutRegion internal data +typedef struct __GXTlutRegionInt_struct { + u32 loadTlut1; + __GXTlutObjInt tlutObj; +} __GXTlutRegionInt; + +u8 GXTexMode0Ids[8] = { 0x80, 0x81, 0x82, 0x83, 0xA0, 0xA1, 0xA2, 0xA3 }; +u8 GXTexMode1Ids[8] = { 0x84, 0x85, 0x86, 0x87, 0xA4, 0xA5, 0xA6, 0xA7 }; +u8 GXTexImage0Ids[8] = { 0x88, 0x89, 0x8A, 0x8B, 0xA8, 0xA9, 0xAA, 0xAB }; +u8 GXTexImage1Ids[8] = { 0x8C, 0x8D, 0x8E, 0x8F, 0xAC, 0xAD, 0xAE, 0xAF }; +u8 GXTexImage2Ids[8] = { 0x90, 0x91, 0x92, 0x93, 0xB0, 0xB1, 0xB2, 0xB3 }; +u8 GXTexImage3Ids[8] = { 0x94, 0x95, 0x96, 0x97, 0xB4, 0xB5, 0xB6, 0xB7 }; +u8 GXTexTlutIds[8] = { 0x98, 0x99, 0x9A, 0x9B, 0xB8, 0xB9, 0xBA, 0xBB }; +static u8 GX2HWFiltConv[6] = { 0x00, 0x04, 0x01, 0x05, 0x02, 0x06 }; +static u8 HW2GXFiltConv[8] = { 0x00, 0x02, 0x04, 0x00, 0x01, 0x03, 0x05, 0x00 }; + +static void __GXGetTexTileShift(GXTexFmt fmt, u32 *rowTileS, u32 *colTileS) +{ + switch (fmt) { + case GX_TF_I4: + case 0x8: + case GX_TF_CMPR: + case GX_CTF_R4: + case GX_CTF_Z4: + *rowTileS = 3; + *colTileS = 3; + break; + case GX_TF_I8: + case GX_TF_IA4: + case 0x9: + case GX_TF_Z8: + case GX_CTF_RA4: + case GX_TF_A8: + case GX_CTF_R8: + case GX_CTF_G8: + case GX_CTF_B8: + case GX_CTF_Z8M: + case GX_CTF_Z8L: + *rowTileS = 3; + *colTileS = 2; + break; + case GX_TF_IA8: + case GX_TF_RGB565: + case GX_TF_RGB5A3: + case GX_TF_RGBA8: + case 0xA: + case GX_TF_Z16: + case GX_TF_Z24X8: + case GX_CTF_RA8: + case GX_CTF_RG8: + case GX_CTF_GB8: + case GX_CTF_Z16L: + *rowTileS = 2; + *colTileS = 2; + break; + default: + *rowTileS = *colTileS = 0; + ASSERTMSGLINEV(0x1BC, 0, "%s: invalid texture format", "GX"); + break; + } +} + +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, u8 mipmap, u8 max_lod) +{ + u32 tileShiftX; + u32 tileShiftY; + u32 tileBytes; + u32 bufferSize; + u32 nx; + u32 ny; + u32 level; + + ASSERTMSGLINEV(0x1CC, width <= 1024, "%s: width too large", "GXGetTexBufferSize"); + ASSERTMSGLINEV(0x1CD, height <= 1024, "%s: height too large", "GXGetTexBufferSize"); + + __GXGetTexTileShift(format, &tileShiftX, &tileShiftY); + if (format == GX_TF_RGBA8 || format == GX_TF_Z24X8) { + tileBytes = 64; + } + else { + tileBytes = 32; + } + if (mipmap == 1) { + nx = 1 << (31 - __cntlzw(width)); + ASSERTMSGLINEV(0x1DF, width == nx, "%s: width must be a power of 2", "GXGetTexBufferSize"); + ny = 1 << (31 - __cntlzw(height)); + ASSERTMSGLINEV(0x1E2, height == ny, "%s: height must be a power of 2", "GXGetTexBufferSize"); + + bufferSize = 0; + for (level = 0; level < max_lod; level++) { + nx = (width + (1 << tileShiftX) - 1) >> tileShiftX; + ny = (height + (1 << tileShiftY) - 1) >> tileShiftY; + bufferSize += tileBytes * (nx * ny); + if (width == 1 && height == 1) { + break; + } + width = (width > 1) ? width >> 1 : 1; + height = (height > 1) ? height >> 1 : 1; + } + } + else { + nx = (width + (1 << tileShiftX) - 1) >> tileShiftX; + ny = (height + (1 << tileShiftY) - 1) >> tileShiftY; + bufferSize = nx * ny * tileBytes; + } + return bufferSize; +} + +void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles) +{ + u32 texRowShift; + u32 texColShift; + + __GXGetTexTileShift(fmt, &texRowShift, &texColShift); + if (wd == 0) { + wd = 1; + } + if (ht == 0) { + ht = 1; + } + *rowTiles = (wd + (1 << texRowShift) - 1) >> texRowShift; + *colTiles = (ht + (1 << texColShift) - 1) >> texColShift; + *cmpTiles = (fmt == GX_TF_RGBA8 || fmt == GX_TF_Z24X8) ? 2 : 1; +} + +#define SOME_SET_REG_MACRO(reg, val) \ + do { \ + (reg) = (u32)__rlwinm((u32)(reg), 0, 27, 23) | val; \ + } while (0); + +void GXInitTexObj(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap) +{ + u32 imageBase; + u32 maxLOD; + u16 rowT; + u16 colT; + u32 rowC; + u32 colC; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x235, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x237, "GXInitTexObj"); + ASSERTMSGLINEV(0x238, width <= 1024, "%s: width too large", "GXInitTexObj"); + ASSERTMSGLINEV(0x239, height <= 1024, "%s: height too large", "GXInitTexObj"); + ASSERTMSGLINEV(0x23B, !(format & 0x20), "%s: invalid texture format", "GXInitTexObj"); + memset(t, 0, 0x20); + SET_REG_FIELD(0x258, t->mode0, 2, 0, wrap_s); + SET_REG_FIELD(0x259, t->mode0, 2, 2, wrap_t); + SET_REG_FIELD(0x25A, t->mode0, 1, 4, 1); + if (mipmap != 0) { + u8 lmax; + t->flags |= 1; + + if (format == 8 || format == 9 || format == 10) { + SOME_SET_REG_MACRO(t->mode0, 0xa0); + } + else { + SOME_SET_REG_MACRO(t->mode0, 0xc0); + } + + if (width > height) { + maxLOD = 31 - __cntlzw(width); + } + else { + maxLOD = 31 - __cntlzw(height); + } + lmax = 16.0f * maxLOD; + SET_REG_FIELD(0x278, t->mode1, 8, 8, lmax); + } + else { + SOME_SET_REG_MACRO(t->mode0, 0x80); + } + t->fmt = format; + SET_REG_FIELD(0x286, t->image0, 10, 0, width - 1); + SET_REG_FIELD(0x287, t->image0, 10, 10, height - 1); + SET_REG_FIELD(0x288, t->image0, 4, 20, format & 0xF); + ASSERTMSGLINEV(0x28E, ((u32)image_ptr & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexObj", "image"); + imageBase = (u32)((u32)image_ptr >> 5) & 0x01FFFFFF; + SET_REG_FIELD(0x290, t->image3, 21, 0, imageBase); + switch (format & 0xF) { + case 0: + case 8: + t->loadFmt = 1; + rowT = 3; + colT = 3; + break; + case 1: + case 2: + case 9: + t->loadFmt = 2; + rowT = 3; + colT = 2; + break; + case 3: + case 4: + case 5: + case 10: + t->loadFmt = 2; + rowT = 2; + colT = 2; + break; + case 6: + t->loadFmt = 3; + rowT = 2; + colT = 2; + break; + case 14: + t->loadFmt = 0; + rowT = 3; + colT = 3; + break; + default: + ASSERTMSGLINEV(0x2BB, 0, "%s: invalid texture format", "GXPreLoadEntireTexture"); + t->loadFmt = 2; + rowT = 2; + colT = 2; + break; + } + rowC = (width + (1 << rowT) - 1) >> rowT; + colC = (height + (1 << colT) - 1) >> colT; + t->loadCnt = (rowC * colC) & 0x7FFF; + t->flags |= 2; +} + +void GXInitTexObjCI( + GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXCITexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap, u32 tlut_name) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x2E1, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x2E3, "GXInitTexObjCI"); + GXInitTexObj(obj, image_ptr, width, height, format, wrap_s, wrap_t, mipmap); + t->flags &= 0xFFFFFFFD; + t->tlutName = tlut_name; +} + +void GXInitTexObjLOD(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt, f32 min_lod, f32 max_lod, f32 lod_bias, u8 bias_clamp, u8 do_edge_lod, + GXAnisotropy max_aniso) +{ + u8 lbias; + u8 lmin; + u8 lmax; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x308, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x30A, "GXInitTexObjLOD"); + + if (lod_bias < -4.0f) { + lod_bias = -4.0f; + } + else if (lod_bias >= 4.0f) { + lod_bias = 3.99f; + } + lbias = 32.0f * lod_bias; + SET_REG_FIELD(0x314, t->mode0, 8, 9, lbias); + ASSERTMSG1LINE(0x317, (u32)mag_filt <= 1, "%s: invalid mag_filt value", "GXInitTexObjLOD"); + SET_REG_FIELD(0x318, t->mode0, 1, 4, (mag_filt == GX_LINEAR) ? 1 : 0); + ASSERTMSG1LINE(0x31B, (u32)min_filt <= 5, "%s: invalid min_filt value", "GXInitTexObjLOD"); + SET_REG_FIELD(0x31C, t->mode0, 3, 5, GX2HWFiltConv[min_filt]); + SET_REG_FIELD(0x31E, t->mode0, 1, 8, do_edge_lod ? 0 : 1); + SET_REG_FIELD(0x321, t->mode0, 1, 17, 0); + SET_REG_FIELD(0x321, t->mode0, 1, 18, 0); + SET_REG_FIELD(0x321, t->mode0, 2, 19, max_aniso); + SET_REG_FIELD(0x322, t->mode0, 1, 21, bias_clamp); + + if (min_lod < 0.0f) { + min_lod = 0.0f; + } + else if (min_lod > 10.0f) { + min_lod = 10.0f; + } + lmin = 16.0f * min_lod; + if (max_lod < 0.0f) { + max_lod = 0.0f; + } + else if (max_lod > 10.0f) { + max_lod = 10.0f; + } + lmax = 16.0f * max_lod; + SET_REG_FIELD(0x330, t->mode1, 8, 0, lmin); + SET_REG_FIELD(0x331, t->mode1, 8, 8, lmax); +} + +void GXInitTexObjData(GXTexObj *obj, void *image_ptr) +{ + u32 imageBase; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x343, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x345, "GXInitTexObjData"); + ASSERTMSGLINEV(0x348, ((u32)image_ptr & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexObjData", "image"); + imageBase = ((u32)image_ptr >> 5) & 0x01FFFFFF; + SET_REG_FIELD(0x34B, t->image3, 21, 0, imageBase); +} + +void GXInitTexObjWrapMode(GXTexObj *obj, GXTexWrapMode sm, GXTexWrapMode tm) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x35C, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x35E, "GXInitTexObjWrapMode"); + SET_REG_FIELD(0x360, t->mode0, 2, 0, sm); + SET_REG_FIELD(0x361, t->mode0, 2, 2, tm); +} + +void GXInitTexObjTlut(GXTexObj *obj, u32 tlut_name) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x371, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x373, "GXInitTexObjTlut"); + t->tlutName = tlut_name; +} + +void GXInitTexObjFilter(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x386, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x388, "GXInitTexObjFilter"); + + ASSERTMSG1LINE(0x38B, (u32)mag_filt <= 1, "%s: invalid mag_filt value", "GXInitTexObjFilter"); + SET_REG_FIELD(0x38C, t->mode0, 1, 4, mag_filt == 1 ? 1 : 0); + + ASSERTMSG1LINE(0x38F, (u32)min_filt <= 5, "%s: invalid min_filt value", "GXInitTexObjFilter"); + SET_REG_FIELD(0x390, t->mode0, 3, 5, GX2HWFiltConv[min_filt]); +} + +void GXInitTexObjMaxLOD(GXTexObj *obj, f32 max_lod) +{ + u8 lmax; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x3A2, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3A4, "GXInitTexObjMaxLOD"); + + if (max_lod < 0.0f) { + max_lod = 0.0f; + } + else if (max_lod > 10.0f) { + max_lod = 10.0f; + } + lmax = 16.0f * max_lod; + SET_REG_FIELD(0x3AA, t->mode1, 8, 8, lmax); +} + +void GXInitTexObjMinLOD(GXTexObj *obj, f32 min_lod) +{ + u8 lmin; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x3BC, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3BE, "GXInitTexObjMinLOD"); + + if (min_lod < 0.0f) { + min_lod = 0.0f; + } + else if (min_lod > 10.0f) { + min_lod = 10.0f; + } + lmin = 16.0f * min_lod; + SET_REG_FIELD(0x3C4, t->mode1, 8, 0, lmin); +} + +void GXInitTexObjLODBias(GXTexObj *obj, f32 lod_bias) +{ + u8 lbias; // r30 + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r29 + + ASSERTMSGLINE(0x3D6, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3D8, "GXInitTexObjLODBias"); + + if (lod_bias < -4.0f) { + lod_bias = -4.0f; + } + else if (lod_bias >= 4.0f) { + lod_bias = 3.99f; + } + lbias = 32.0f * lod_bias; + SET_REG_FIELD(0x3DF, t->mode0, 8, 9, lbias); +} + +void GXInitTexObjBiasClamp(GXTexObj *obj, u8 bias_clamp) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x3EF, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3F1, "GXInitTexObjBiasClamp"); + + SET_REG_FIELD(0x3F3, t->mode0, 1, 21, bias_clamp); +} + +void GXInitTexObjEdgeLOD(GXTexObj *obj, u8 do_edge_lod) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x403, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x405, "GXInitTexObjEdgeLOD"); + + SET_REG_FIELD(0x407, t->mode0, 1, 8, do_edge_lod ? 0 : 1); +} + +void GXInitTexObjMaxAniso(GXTexObj *obj, GXAnisotropy max_aniso) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x417, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x419, "GXInitTexObjMaxAniso"); + + SET_REG_FIELD(0x41B, t->mode0, 2, 19, max_aniso); +} + +void GXInitTexObjUserData(GXTexObj *obj, void *user_data) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x42C, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x42D, "GXInitTexObjUserData"); + t->userData = user_data; +} + +void *GXGetTexObjUserData(const GXTexObj *obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)obj; + + ASSERTMSGLINE(0x433, obj, "Texture Object Pointer is null"); + return t->userData; +} + +void GXGetTexObjAll( + const GXTexObj *obj, void **image_ptr, u16 *width, u16 *height, GXTexFmt *format, GXTexWrapMode *wrap_s, GXTexWrapMode *wrap_t, u8 *mipmap) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)obj; + + ASSERTMSGLINE(0x447, obj, "Texture Object Pointer is null"); + *image_ptr = (void *)(GET_REG_FIELD(t->image3, 21, 0) << 5); + *width = (u32)GET_REG_FIELD(t->image0, 10, 0) + 1; + *height = (u32)GET_REG_FIELD(t->image0, 10, 10) + 1; + *format = t->fmt; + *wrap_s = GET_REG_FIELD(t->mode0, 2, 0); + *wrap_t = GET_REG_FIELD(t->mode0, 2, 2); + *mipmap = (t->flags & 1) == 1; +} + +void *GXGetTexObjData(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x454, to, "Texture Object Pointer is null"); + return (void *)(GET_REG_FIELD(t->image3, 21, 0) << 5); +} + +u16 GXGetTexObjWidth(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x45A, to, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->image0, 10, 0) + 1; +} + +u16 GXGetTexObjHeight(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x460, to, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->image0, 10, 10) + 1; +} + +GXTexFmt GXGetTexObjFmt(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x466, to, "Texture Object Pointer is null"); + return t->fmt; +} + +GXTexWrapMode GXGetTexObjWrapS(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x46C, to, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 0); +} + +GXTexWrapMode GXGetTexObjWrapT(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x472, to, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 2); +} + +GXBool GXGetTexObjMipMap(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x478, to, "Texture Object Pointer is null"); + return (t->flags & 1) == 1; +} + +// NONMATCHING +void GXGetTexObjLODAll(const GXTexObj *tex_obj, GXTexFilter *min_filt, GXTexFilter *mag_filt, f32 *min_lod, f32 *max_lod, f32 *lod_bias, + u8 *bias_clamp, u8 *do_edge_lod, GXAnisotropy *max_aniso) +{ + s16 tmp; // r30 + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x48E, tex_obj, "Texture Object Pointer is null"); + *min_filt = HW2GXFiltConv[GET_REG_FIELD(t->mode0, 3, 5)]; + *mag_filt = GET_REG_FIELD(t->mode0, 1, 4); + *min_lod = (u8)t->mode1 / 16.0f; + *max_lod = (u32)GET_REG_FIELD(t->mode1, 8, 8) / 16.0f; + tmp = (s32)GET_REG_FIELD(t->mode0, 8, 9); + *lod_bias = (s8)tmp * 0.03125f; + *bias_clamp = (u32)GET_REG_FIELD(t->mode0, 1, 21); + *do_edge_lod = !GET_REG_FIELD(t->mode0, 1, 8); + *max_aniso = GET_REG_FIELD(t->mode0, 2, 19); +} + +GXTexFilter GXGetTexObjMinFilt(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x49E, tex_obj, "Texture Object Pointer is null"); + return HW2GXFiltConv[GET_REG_FIELD(t->mode0, 3, 5)]; +} + +GXTexFilter GXGetTexObjMagFilt(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4A5, tex_obj, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 1, 4); +} + +f32 GXGetTexObjMinLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4AB, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode1, 8, 0) / 16.0f; +} + +f32 GXGetTexObjMaxLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4B1, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode1, 8, 8) / 16.0f; +} + +// NONMATCHING +f32 GXGetTexObjLODBias(const GXTexObj *tex_obj) +{ + s16 tmp; + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4B8, tex_obj, "Texture Object Pointer is null"); + tmp = (s32)GET_REG_FIELD(t->mode0, 8, 9); + return (s8)tmp * 0.03125f; +} + +GXBool GXGetTexObjBiasClamp(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4BF, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode0, 1, 21); +} + +GXBool GXGetTexObjEdgeLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4C5, tex_obj, "Texture Object Pointer is null"); + return !GET_REG_FIELD(t->mode0, 1, 8); +} + +GXAnisotropy GXGetTexObjMaxAniso(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4CB, tex_obj, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 19); +} + +u32 GXGetTexObjTlut(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4D1, tex_obj, "Texture Object Pointer is null"); + return t->tlutName; +} + +void GXLoadTexObjPreLoaded(GXTexObj *obj, GXTexRegion *region, GXTexMapID id) +{ + __GXTlutRegionInt *tlr; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x4E9, obj, "Texture Object Pointer is null"); + ASSERTMSGLINE(0x4E9, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x4EB, "GXLoadTexObjPreLoaded"); + ASSERTMSGLINEV(0x4EC, id < 8, "%s: invalid texture map ID", "GXLoadTexObj"); + + SET_REG_FIELD(0x4F7, t->mode0, 8, 24, GXTexMode0Ids[id]); + SET_REG_FIELD(0x4F8, t->mode1, 8, 24, GXTexMode1Ids[id]); + SET_REG_FIELD(0x4F9, t->image0, 8, 24, GXTexImage0Ids[id]); + SET_REG_FIELD(0x4FA, r->image1, 8, 24, GXTexImage1Ids[id]); + SET_REG_FIELD(0x4FB, r->image2, 8, 24, GXTexImage2Ids[id]); + SET_REG_FIELD(0x4FC, t->image3, 8, 24, GXTexImage3Ids[id]); + + GX_WRITE_RAS_REG(t->mode0); + GX_WRITE_RAS_REG(t->mode1); + GX_WRITE_RAS_REG(t->image0); + GX_WRITE_RAS_REG(r->image1); + GX_WRITE_RAS_REG(r->image2); + GX_WRITE_RAS_REG(t->image3); + + if (!(t->flags & 2)) { + ASSERTMSGLINEV(0x507, gx->tlutRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTexObj/PreLoaded"); + tlr = (__GXTlutRegionInt *)gx->tlutRegionCallback(t->tlutName); + ASSERTMSGLINEV(0x509, tlr, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTexObj/PreLoaded"); + + SET_REG_FIELD(0x50B, tlr->tlutObj.tlut, 8, 24, GXTexTlutIds[id]); + GX_WRITE_RAS_REG(tlr->tlutObj.tlut); + } + gx->tImage0[id] = t->image0; + gx->tMode0[id] = t->mode0; + gx->dirtyState |= 1; + gx->bpSentNot = 0; +} + +void GXLoadTexObj(GXTexObj *obj, GXTexMapID id) +{ + GXTexRegion *r; + + CHECK_GXBEGIN(0x526, "GXLoadTexObj"); + ASSERTMSGLINEV(0x527, id < 8, "%s: invalid texture map ID", "GXLoadTexObj"); + ASSERTMSGLINEV(0x52C, gx->texRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTexObj"); + r = gx->texRegionCallback(obj, id); + ASSERTMSGLINEV(0x52E, r, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTexObj"); + GXLoadTexObjPreLoaded(obj, r, id); +} + +void GXInitTlutObj(GXTlutObj *tlut_obj, void *lut, GXTlutFmt fmt, u16 n_entries) +{ + __GXTlutObjInt *t = (__GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x546, tlut_obj, "TLut Object Pointer is null"); + CHECK_GXBEGIN(0x547, "GXInitTlutObj"); + ASSERTMSGLINEV(0x54A, n_entries <= 0x4000, "%s: number of entries exceeds maximum", "GXInitTlutObj"); + ASSERTMSGLINEV(0x54C, ((u32)lut & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTlutObj", "Tlut"); + t->tlut = 0; + SET_REG_FIELD(0x54F, t->tlut, 2, 10, fmt); + SET_REG_FIELD(0x550, t->loadTlut0, 21, 0, ((u32)lut & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x551, t->loadTlut0, 8, 24, 0x64); + t->numEntries = n_entries; +} + +void GXGetTlutObjAll(const GXTlutObj *tlut_obj, void **data, GXTlutFmt *format, u16 *numEntries) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x566, tlut_obj, "TLut Object Pointer is null"); + *data = (void *)(GET_REG_FIELD(t->loadTlut0, 21, 0) << 5); + *format = GET_REG_FIELD(t->tlut, 2, 10); + *numEntries = t->numEntries; +} + +void *GXGetTlutObjData(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x56F, tlut_obj, "TLut Object Pointer is null"); + return (void *)(GET_REG_FIELD(t->loadTlut0, 21, 0) << 5); +} + +GXTlutFmt GXGetTlutObjFmt(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x576, tlut_obj, "TLut Object Pointer is null"); + return GET_REG_FIELD(t->tlut, 2, 10); +} + +u16 GXGetTlutObjNumEntries(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x57D, tlut_obj, "TLut Object Pointer is null"); + return t->numEntries; +} + +void GXLoadTlut(GXTlutObj *tlut_obj, u32 tlut_name) +{ + __GXTlutRegionInt *r; + u32 tlut_offset; + __GXTlutObjInt *t = (__GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x598, tlut_obj, "TLut Object Pointer is null"); + CHECK_GXBEGIN(0x59A, "GXLoadTlut"); + ASSERTMSGLINEV(0x59B, gx->tlutRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTlut"); + r = (__GXTlutRegionInt *)gx->tlutRegionCallback(tlut_name); + ASSERTMSGLINEV(0x59D, r, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTlut"); + __GXFlushTextureState(); + GX_WRITE_RAS_REG(t->loadTlut0); + GX_WRITE_RAS_REG(r->loadTlut1); + __GXFlushTextureState(); + tlut_offset = r->loadTlut1 & 0x3FF; + SET_REG_FIELD(0x5AD, t->tlut, 10, 0, tlut_offset); + r->tlutObj = *t; +} + +void GXInitTexCacheRegion(GXTexRegion *region, u8 is_32b_mipmap, u32 tmem_even, GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd) +{ + u32 WidthExp2; + __GXTexRegionInt *t = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x5CC, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x5CE, "GXInitTexCacheRegion"); + ASSERTMSGLINEV(0x5D0, (tmem_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexCacheRegion", "tmem even"); + ASSERTMSGLINEV(0x5D2, (tmem_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexCacheRegion", "tmem odd"); + switch (size_even) { + case GX_TEXCACHE_32K: + WidthExp2 = 3; + break; + case GX_TEXCACHE_128K: + WidthExp2 = 4; + break; + case GX_TEXCACHE_512K: + WidthExp2 = 5; + break; + default: + ASSERTMSGLINEV(0x5DA, 0, "%s: Invalid %s size", "GXInitTexCacheRegion", "tmem even"); + break; + } + t->image1 = 0; + SET_REG_FIELD(0x5DF, t->image1, 15, 0, tmem_even >> 5); + SET_REG_FIELD(0x5E0, t->image1, 3, 15, WidthExp2); + SET_REG_FIELD(0x5E1, t->image1, 3, 18, WidthExp2); + SET_REG_FIELD(0x5E2, t->image1, 1, 21, 0); + + switch (size_odd) { + case GX_TEXCACHE_32K: + WidthExp2 = 3; + break; + case GX_TEXCACHE_128K: + WidthExp2 = 4; + break; + case GX_TEXCACHE_512K: + WidthExp2 = 5; + break; + case GX_TEXCACHE_NONE: + WidthExp2 = 0; + break; + default: + ASSERTMSGLINEV(0x5EA, 0, "%s: Invalid %s size", "GXInitTexCacheRegion", "tmem odd"); + break; + } + t->image2 = 0; + SET_REG_FIELD(0x5EF, t->image2, 15, 0, tmem_odd >> 5); + SET_REG_FIELD(0x5F0, t->image2, 3, 15, WidthExp2); + SET_REG_FIELD(0x5F1, t->image2, 3, 18, WidthExp2); + t->is32bMipmap = is_32b_mipmap; + t->isCached = 1; +} + +void GXInitTexPreLoadRegion(GXTexRegion *region, u32 tmem_even, u32 size_even, u32 tmem_odd, u32 size_odd) +{ + __GXTexRegionInt *t = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x60E, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x610, "GXInitTexPreLoadRegion"); + ASSERTMSGLINEV(0x612, (tmem_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "tmem even"); + ASSERTMSGLINEV(0x614, (tmem_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "tmem odd"); + ASSERTMSGLINEV(0x616, (size_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "size even"); + ASSERTMSGLINEV(0x618, (size_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "size odd"); + + t->image1 = 0; + SET_REG_FIELD(0x61C, t->image1, 15, 0, tmem_even >> 5); + SET_REG_FIELD(0x61D, t->image1, 3, 15, 0); + SET_REG_FIELD(0x61E, t->image1, 3, 18, 0); + SET_REG_FIELD(0x61F, t->image1, 1, 21, 1); + + t->image2 = 0; + SET_REG_FIELD(0x622, t->image2, 15, 0, tmem_odd >> 5); + SET_REG_FIELD(0x623, t->image2, 3, 15, 0); + SET_REG_FIELD(0x624, t->image2, 3, 18, 0); + t->is32bMipmap = 0; + t->isCached = 0; + t->sizeEven = (u16)(size_even >> 5U); + t->sizeOdd = (u16)(size_odd >> 5U); +} + +void GXGetTexRegionAll(const GXTexRegion *region, u8 *is_cached, u8 *is_32b_mipmap, u32 *tmem_even, u32 *size_even, u32 *tmem_odd, u32 *size_odd) +{ + const __GXTexRegionInt *t = (const __GXTexRegionInt *)region; + + ASSERTMSGLINE(0x641, region, "TexRegion Object Pointer is null"); + *tmem_even = GET_REG_FIELD(t->image1, 15, 0) << 5; + *tmem_odd = GET_REG_FIELD(t->image2, 15, 0) << 5; + if (t->isCached) { + switch (GET_REG_FIELD(t->image1, 3, 15)) { + case 3: + *size_even = 0x8000; + break; + case 4: + *size_even = 0x20000; + break; + case 5: + *size_even = 0x80000; + break; + default: + *size_even = 0; + break; + } + switch (GET_REG_FIELD(t->image2, 3, 15)) { + case 3: + *size_odd = 0x8000; + break; + case 4: + *size_odd = 0x20000; + break; + case 5: + *size_odd = 0x80000; + break; + default: + *size_odd = 0; + break; + } + } + else { + *size_even = t->sizeEven << 5; + *size_odd = t->sizeOdd << 5; + } + *is_32b_mipmap = t->is32bMipmap; + *is_cached = t->isCached; +} + +void GXInitTlutRegion(GXTlutRegion *region, u32 tmem_addr, GXTlutSize tlut_size) +{ + __GXTlutRegionInt *t = (__GXTlutRegionInt *)region; + + ASSERTMSGLINE(0x674, region, "TLutRegion Object Pointer is null"); + CHECK_GXBEGIN(0x676, "GXInitTlutRegion"); + ASSERTMSGLINEV(0x677, (tmem_addr & 0x1FF) == 0, "%s: tmem pointer is not aligned to 512B", "GXInitTlutRegion"); + ASSERTMSGLINEV(0x678, tlut_size <= 0x400, "%s: tlut size exceeds 16K", "GXInitTlutRegion"); + t->loadTlut1 = 0; + tmem_addr -= 0x80000; + SET_REG_FIELD(0x67C, t->loadTlut1, 10, 0, tmem_addr >> 9); + SET_REG_FIELD(0x67D, t->loadTlut1, 11, 10, tlut_size); + SET_REG_FIELD(0x67E, t->loadTlut1, 8, 24, 0x65); +} + +void GXGetTlutRegionAll(const GXTlutRegion *region, u32 *tmem_addr, GXTlutSize *tlut_size) +{ + const __GXTlutRegionInt *t = (const __GXTlutRegionInt *)region; + + ASSERTMSGLINE(0x692, region, "TLutRegion Object Pointer is null"); + *tmem_addr = (GET_REG_FIELD(t->loadTlut1, 10, 0) << 9) + 0x80000; + *tlut_size = GET_REG_FIELD(t->loadTlut1, 11, 10); +} + +void GXInvalidateTexRegion(GXTexRegion *region) +{ + s32 wle; + s32 hle; + s32 wlo; + s32 hlo; + s32 count; + u32 reg0; + u32 reg1; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x6A9, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x6AB, "GXInvalidateTexRegion"); + + wle = GET_REG_FIELD(r->image1, 3, 15) - 1; + hle = GET_REG_FIELD(r->image1, 3, 18) - 1; + wlo = GET_REG_FIELD(r->image2, 3, 15) - 1; + hlo = GET_REG_FIELD(r->image2, 3, 18) - 1; + if (wle < 0) { + wle = 0; + } + if (hle < 0) { + hle = 0; + } + if (wlo < 0) { + wlo = 0; + } + if (hlo < 0) { + hlo = 0; + } + count = wle + hle; + if (r->is32bMipmap) { + count = wlo + hlo - 2 + count; + } + reg0 = 0; + SET_REG_FIELD(0x6BC, reg0, 9, 0, GET_REG_FIELD(r->image1, 9, 6)); + SET_REG_FIELD(0x6BD, reg0, 4, 9, count); + SET_REG_FIELD(0x6BC, reg0, 8, 24, 0x66); + if (wlo != 0) { + count = wlo + hlo; + if (r->is32bMipmap) { + count = wle + hle - 2 + count; + } + reg1 = 0; + SET_REG_FIELD(0x6C8, reg1, 9, 0, GET_REG_FIELD(r->image2, 9, 6)); + SET_REG_FIELD(0x6C9, reg1, 4, 9, count); + SET_REG_FIELD(0x6CA, reg1, 8, 24, 0x66); + } + __GXFlushTextureState(); + GX_WRITE_RAS_REG(reg0); + if (wlo != 0) { + GX_WRITE_RAS_REG(reg1); + } + __GXFlushTextureState(); + + reg0; + reg1; + r; // needed to match +} + +void GXInvalidateTexAll(void) +{ + u32 reg0; + u32 reg1; + + CHECK_GXBEGIN(0x6DB, "GXInvalidateTexAll"); + reg0 = 0x66001000; + reg1 = 0x66001100; + __GXFlushTextureState(); + GX_WRITE_RAS_REG(reg0); + GX_WRITE_RAS_REG(reg1); + __GXFlushTextureState(); +} + +GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback f) +{ + GXTexRegionCallback oldcb = gx->texRegionCallback; + + gx->texRegionCallback = f; + return oldcb; +} + +GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback f) +{ + GXTlutRegionCallback oldcb = gx->tlutRegionCallback; + + gx->tlutRegionCallback = f; + return oldcb; +} + +void GXPreLoadEntireTexture(GXTexObj *tex_obj, GXTexRegion *region) +{ + u8 isMipMap; + u8 is32bit; + u32 wd; + u32 ht; + u32 maxLevelIndex; + u32 loadImage0; + u32 loadImage1; + u32 loadImage2; + u32 loadImage3; + u32 base; + u32 tmem1; + u32 tmem2; + u32 tmemAR; + u32 tmemGB; + u32 nTiles; + u32 rowTiles; + u32 colTiles; + u32 cmpTiles; + u32 i; + __GXTexObjInt *t = (__GXTexObjInt *)tex_obj; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x71C, tex_obj, "Texture Object Pointer is null"); + ASSERTMSGLINE(0x71C, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x71E, "GXPreLoadEntireTexture"); + isMipMap = (t->flags & 1) == 1; + is32bit = GET_REG_FIELD(t->image0, 4, 20) == 6; + + loadImage0 = 0; + SET_REG_FIELD(0, loadImage0, 8, 24, 0x60); + base = t->image3 & 0x1FFFFF; + SET_REG_FIELD(0x727, loadImage0, 21, 0, base); + + loadImage1 = 0; + SET_REG_FIELD(0, loadImage1, 8, 24, 0x61); + tmem1 = r->image1 & 0x7FFF; + SET_REG_FIELD(0x72D, loadImage1, 15, 0, tmem1); + + loadImage2 = 0; + SET_REG_FIELD(0, loadImage2, 8, 24, 0x62); + tmem2 = r->image2 & 0x7FFF; + SET_REG_FIELD(0x733, loadImage2, 15, 0, tmem2); + + loadImage3 = 0; + SET_REG_FIELD(0, loadImage3, 8, 24, 0x63); + SET_REG_FIELD(0x738, loadImage3, 15, 0, t->loadCnt); + SET_REG_FIELD(0x739, loadImage3, 2, 15, t->loadFmt); + maxLevelIndex = 0; + nTiles = t->loadCnt; + if (isMipMap != 0) { + wd = GET_REG_FIELD(t->image0, 10, 0) + 1; + ht = GET_REG_FIELD(t->image0, 10, 10) + 1; + if (wd > ht) { + maxLevelIndex = (u16)(31 - __cntlzw(wd)); + } + else { + maxLevelIndex = (u16)(31 - __cntlzw(ht)); + } + } + __GXFlushTextureState(); + GX_WRITE_RAS_REG(loadImage0); + GX_WRITE_RAS_REG(loadImage1); + GX_WRITE_RAS_REG(loadImage2); + GX_WRITE_RAS_REG(loadImage3); + if (maxLevelIndex != 0) { + tmemAR = tmem1; + tmemGB = tmem2; + for (i = 0; i < maxLevelIndex; i++) { + if (is32bit != 0) { + base += nTiles * 2; + tmemAR += nTiles; + tmemGB += nTiles; + } + else { + base += nTiles; + if (i & 1) { + tmemGB += nTiles; + } + else { + tmemAR += nTiles; + } + } + tmem1 = (i & 1) ? tmemAR : tmemGB; + tmem2 = (i & 1) ? tmemGB : tmemAR; + __GetImageTileCount(t->fmt, (u16)(wd >> (i + 1)), (u16)(ht >> (i + 1)), &rowTiles, &colTiles, &cmpTiles); + nTiles = rowTiles * colTiles; + SET_REG_FIELD(0x7A5, loadImage0, 21, 0, base); + SET_REG_FIELD(0x7A6, loadImage1, 15, 0, tmem1); + SET_REG_FIELD(0x7A7, loadImage2, 15, 0, tmem2); + SET_REG_FIELD(0x7A8, loadImage3, 15, 0, nTiles); + GX_WRITE_RAS_REG(loadImage0); + GX_WRITE_RAS_REG(loadImage1); + GX_WRITE_RAS_REG(loadImage2); + GX_WRITE_RAS_REG(loadImage3); + } + } + __GXFlushTextureState(); +} + +void GXSetTexCoordScaleManually(GXTexCoordID coord, u8 enable, u16 ss, u16 ts) +{ + CHECK_GXBEGIN(0x7C5, "GXSetTexCoordScaleManually"); + ASSERTMSGLINEV(0x7C7, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordScaleManually"); + gx->tcsManEnab = (gx->tcsManEnab & ~(1 << coord)) | (enable << coord); + if (enable != 0) { + SET_REG_FIELD(0x7CD, gx->suTs0[coord], 16, 0, (u16)(ss - 1)); + SET_REG_FIELD(0x7CE, gx->suTs1[coord], 16, 0, (u16)(ts - 1)); + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +void GXSetTexCoordCylWrap(GXTexCoordID coord, u8 s_enable, u8 t_enable) +{ + CHECK_GXBEGIN(0x7E7, "GXSetTexCoordCylWrap"); + ASSERTMSGLINEV(0x7E9, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordCylWrap"); + SET_REG_FIELD(0x7EB, gx->suTs0[coord], 1, 17, s_enable); + SET_REG_FIELD(0x7EC, gx->suTs1[coord], 1, 17, t_enable); + if (gx->tcsManEnab & (1 << coord)) { + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +void GXSetTexCoordBias(GXTexCoordID coord, u8 s_enable, u8 t_enable) +{ + CHECK_GXBEGIN(0x806, "GXSetTexCoordBias"); + ASSERTMSGLINEV(0x808, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordBias"); + SET_REG_FIELD(0x80A, gx->suTs0[coord], 1, 16, s_enable); + SET_REG_FIELD(0x80B, gx->suTs1[coord], 1, 16, t_enable); + if (gx->tcsManEnab & (1 << coord)) { + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +static void __SetSURegs(u32 tmap, u32 tcoord) +{ + u32 w; + u32 h; + u8 s_bias; + u8 t_bias; + + w = GET_REG_FIELD(gx->tImage0[tmap], 10, 0); + h = GET_REG_FIELD(gx->tImage0[tmap], 10, 10); + SET_REG_FIELD(0x829, gx->suTs0[tcoord], 16, 0, w); + SET_REG_FIELD(0x82A, gx->suTs1[tcoord], 16, 0, h); + s_bias = GET_REG_FIELD(gx->tMode0[tmap], 2, 0) == 1; + t_bias = GET_REG_FIELD(gx->tMode0[tmap], 2, 2) == 1; + SET_REG_FIELD(0x830, gx->suTs0[tcoord], 1, 16, s_bias); + SET_REG_FIELD(0x831, gx->suTs1[tcoord], 1, 16, t_bias); + GX_WRITE_RAS_REG(gx->suTs0[tcoord]); + GX_WRITE_RAS_REG(gx->suTs1[tcoord]); + gx->bpSentNot = 0; +} + +void __GXSetSUTexRegs(void) +{ + u32 nStages; + u32 nIndStages; + u32 i; + u32 map; + u32 tmap; + u32 coord; + u32 *ptref; + + if (gx->tcsManEnab != 0xFF) { + nStages = GET_REG_FIELD(gx->genMode, 4, 10) + 1; + nIndStages = GET_REG_FIELD(gx->genMode, 3, 16); + for (i = 0; i < nIndStages; i++) { + switch (i) { + case 0: + tmap = GET_REG_FIELD(gx->iref, 3, 0); + coord = GET_REG_FIELD(gx->iref, 3, 3); + break; + case 1: + tmap = GET_REG_FIELD(gx->iref, 3, 6); + coord = GET_REG_FIELD(gx->iref, 3, 9); + break; + case 2: + tmap = GET_REG_FIELD(gx->iref, 3, 12); + coord = GET_REG_FIELD(gx->iref, 3, 15); + break; + case 3: + tmap = GET_REG_FIELD(gx->iref, 3, 18); + coord = GET_REG_FIELD(gx->iref, 3, 21); + break; + } + if (!(gx->tcsManEnab & (1 << coord))) { + __SetSURegs(tmap, coord); + } + } + i = 0; + for (i = 0; i < nStages; i++) { + ptref = &gx->tref[i / 2]; + map = gx->texmapId[i]; + tmap = map & 0xFFFFFEFF; + if (i & 1) { + coord = GET_REG_FIELD(*ptref, 3, 15); + } + else { + coord = GET_REG_FIELD(*ptref, 3, 3); + } + if ((tmap != 0xFF) && !(gx->tcsManEnab & (1 << coord)) && (gx->tevTcEnab & (1 << i))) { + __SetSURegs(tmap, coord); + } + } + } +} + +void __GXGetSUTexSize(GXTexCoordID coord, u16 *width, u16 *height) +{ + *width = (u16)gx->suTs0[coord] + 1; + *height = (u16)gx->suTs1[coord] + 1; +} + +void __GXSetTmemConfig(u32 config) +{ + switch (config) { + case 1: + GX_WRITE_RAS_REG(0x8c0d8000); + GX_WRITE_RAS_REG(0x900dc000); + + GX_WRITE_RAS_REG(0x8d0d8800); + GX_WRITE_RAS_REG(0x910dc800); + + GX_WRITE_RAS_REG(0x8e0d9000); + GX_WRITE_RAS_REG(0x920dd000); + + GX_WRITE_RAS_REG(0x8f0d9800); + GX_WRITE_RAS_REG(0x930dd800); + + GX_WRITE_RAS_REG(0xac0da000); + GX_WRITE_RAS_REG(0xb00de000); + + GX_WRITE_RAS_REG(0xad0da800); + GX_WRITE_RAS_REG(0xb10de800); + + GX_WRITE_RAS_REG(0xae0db000); + GX_WRITE_RAS_REG(0xb20df000); + + GX_WRITE_RAS_REG(0xaf0db800); + GX_WRITE_RAS_REG(0xb30df800); + + break; + case 0: + default: + GX_WRITE_RAS_REG(0x8c0d8000); + GX_WRITE_RAS_REG(0x900dc000); + + GX_WRITE_RAS_REG(0x8d0d8400); + GX_WRITE_RAS_REG(0x910dc400); + + GX_WRITE_RAS_REG(0x8e0d8800); + GX_WRITE_RAS_REG(0x920dc800); + + GX_WRITE_RAS_REG(0x8f0d8c00); + GX_WRITE_RAS_REG(0x930dcc00); + + GX_WRITE_RAS_REG(0xac0d9000); + GX_WRITE_RAS_REG(0xb00dd000); + + GX_WRITE_RAS_REG(0xad0d9400); + GX_WRITE_RAS_REG(0xb10dd400); + + GX_WRITE_RAS_REG(0xae0d9800); + GX_WRITE_RAS_REG(0xb20dd800); + + GX_WRITE_RAS_REG(0xaf0d9c00); + GX_WRITE_RAS_REG(0xb30ddc00); + + break; + } +} diff --git a/src/dolphin/gx/GXTransform.c b/src/dolphin/gx/GXTransform.c new file mode 100644 index 00000000..dbe9d5d1 --- /dev/null +++ b/src/dolphin/gx/GXTransform.c @@ -0,0 +1,372 @@ +#include +#include +#include + +#include + +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz) +{ + Vec peye; + f32 xc; + f32 yc; + f32 zc; + f32 wc; + + ASSERTMSGLINE(0xA8, pm && vp && sx && sy && sz, "GXGet*: invalid null pointer"); + + peye.x = mtx[0][3] + ((mtx[0][2] * z) + ((mtx[0][0] * x) + (mtx[0][1] * y))); + peye.y = mtx[1][3] + ((mtx[1][2] * z) + ((mtx[1][0] * x) + (mtx[1][1] * y))); + peye.z = mtx[2][3] + ((mtx[2][2] * z) + ((mtx[2][0] * x) + (mtx[2][1] * y))); + if (pm[0] == 0.0f) { + xc = (peye.x * pm[1]) + (peye.z * pm[2]); + yc = (peye.y * pm[3]) + (peye.z * pm[4]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f / -peye.z; + } + else { + xc = pm[2] + (peye.x * pm[1]); + yc = pm[4] + (peye.y * pm[3]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f; + } + *sx = (vp[2] / 2.0f) + (vp[0] + (wc * (xc * vp[2] / 2.0f))); + *sy = (vp[3] / 2.0f) + (vp[1] + (wc * (-yc * vp[3] / 2.0f))); + *sz = vp[5] + (wc * (zc * (vp[5] - vp[4]))); +} + +static void WriteProjPS(const register f32 proj[6], register volatile void *dest) +{ + register f32 p01, p23, p45; + + asm { + psq_l p01, 0(proj), 0, 0 + psq_l p23, 8(proj), 0, 0 + psq_l p45, 16(proj), 0, 0 + psq_st p01, 0(dest), 0, 0 + psq_st p23, 0(dest), 0, 0 + psq_st p45, 0(dest), 0, 0 + } +} + +static void __GXSetProjection(void) +{ + u32 reg = 0x00061020; + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + GX_WRITE_XF_REG_F(32, gx->projMtx[0]); + GX_WRITE_XF_REG_F(33, gx->projMtx[1]); + GX_WRITE_XF_REG_F(34, gx->projMtx[2]); + GX_WRITE_XF_REG_F(35, gx->projMtx[3]); + GX_WRITE_XF_REG_F(36, gx->projMtx[4]); + GX_WRITE_XF_REG_F(37, gx->projMtx[5]); + GX_WRITE_XF_REG_2(38, gx->projType); +} + +void GXSetProjection(f32 mtx[4][4], GXProjectionType type) +{ + CHECK_GXBEGIN(0x127, "GXSetProjection"); + + gx->projType = type; + gx->projMtx[0] = mtx[0][0]; + gx->projMtx[2] = mtx[1][1]; + gx->projMtx[4] = mtx[2][2]; + gx->projMtx[5] = mtx[2][3]; + if (type == GX_ORTHOGRAPHIC) { + gx->projMtx[1] = mtx[0][3]; + gx->projMtx[3] = mtx[1][3]; + } + else { + gx->projMtx[1] = mtx[0][2]; + gx->projMtx[3] = mtx[1][2]; + } + + __GXSetProjection(); + gx->bpSentNot = 1; +} + +#define qr0 0 + +void GXGetProjectionv(f32 *ptr) +{ + ASSERTMSGLINE(0x172, ptr, "GXGet*: invalid null pointer"); + + ptr[0] = gx->projType; + + ptr[1] = gx->projMtx[0]; + ptr[2] = gx->projMtx[1]; + ptr[3] = gx->projMtx[2]; + ptr[4] = gx->projMtx[3]; + ptr[5] = gx->projMtx[4]; + ptr[6] = gx->projMtx[5]; +} + +static void WriteMTXPS4x3(const register f32 mtx[3][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + register f32 a20_a21; + register f32 a22_a23; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + psq_l a02_a03, 0x08(mtx), 0, qr0 + psq_l a10_a11, 0x10(mtx), 0, qr0 + psq_l a12_a13, 0x18(mtx), 0, qr0 + psq_l a20_a21, 0x20(mtx), 0, qr0 + psq_l a22_a23, 0x28(mtx), 0, qr0 + psq_st a00_a01, 0(dest), 0, qr0 + psq_st a02_a03, 0(dest), 0, qr0 + psq_st a10_a11, 0(dest), 0, qr0 + psq_st a12_a13, 0(dest), 0, qr0 + psq_st a20_a21, 0(dest), 0, qr0 + psq_st a22_a23, 0(dest), 0, qr0 + } +} + +static void WriteMTXPS3x3from3x4(register f32 mtx[3][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + register f32 a20_a21; + register f32 a22_a23; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + lfs a02_a03, 0x08(mtx) + psq_l a10_a11, 0x10(mtx), 0, qr0 + lfs a12_a13, 0x18(mtx) + psq_l a20_a21, 0x20(mtx), 0, qr0 + lfs a22_a23, 0x28(mtx) + psq_st a00_a01, 0(dest), 0, qr0 + stfs a02_a03, 0(dest) + psq_st a10_a11, 0(dest), 0, qr0 + stfs a12_a13, 0(dest) + psq_st a20_a21, 0(dest), 0, qr0 + stfs a22_a23, 0(dest) + } +} + +static void WriteMTXPS4x2(const register f32 mtx[2][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + psq_l a02_a03, 0x08(mtx), 0, qr0 + psq_l a10_a11, 0x10(mtx), 0, qr0 + psq_l a12_a13, 0x18(mtx), 0, qr0 + psq_st a00_a01, 0(dest), 0, qr0 + psq_st a02_a03, 0(dest), 0, qr0 + psq_st a10_a11, 0(dest), 0, qr0 + psq_st a12_a13, 0(dest), 0, qr0 + } +} + +#pragma peephole off +#pragma dont_inline on +void GXLoadPosMtxImm(f32 mtx[3][4], u32 id) +{ + u32 reg; + u32 addr; + + CHECK_GXBEGIN(0x1FB, "GXLoadPosMtxImm"); + + addr = id * 4; + reg = addr | 0xB0000; + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + WriteMTXPS4x3(mtx, &GXWGFifo.f32); +} + +void GXLoadNrmMtxImm(f32 mtx[3][4], u32 id) +{ + u32 reg; + u32 addr; + + CHECK_GXBEGIN(0x24C, "GXLoadNrmMtxImm"); + + addr = id * 3 + 0x400; + reg = addr | 0x80000; + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + WriteMTXPS3x3from3x4((void *)mtx, &GXWGFifo.f32); +} + +void GXSetCurrentMtx(u32 id) +{ + CHECK_GXBEGIN(0x2C4, "GXSetCurrentMtx"); + SET_REG_FIELD(0x2C8, gx->matIdxA, 6, 0, id); + __GXSetMatrixIndex(GX_VA_PNMTXIDX); +} + +void GXLoadTexMtxImm(f32 mtx[][4], u32 id, GXTexMtxType type) +{ + u32 reg; + u32 addr; + u32 count; + + CHECK_GXBEGIN(0x2E5, "GXLoadTexMtxImm"); + + if (id >= GX_PTTEXMTX0) { + addr = (id - GX_PTTEXMTX0) * 4 + 0x500; + ASSERTMSGLINE(0x2EF, type == GX_MTX3x4, "GXLoadTexMtx: Invalid matrix type"); + } + else { + addr = id * 4; + } + count = (type == GX_MTX2x4) ? 8 : 12; + reg = addr | ((count - 1) << 16); + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + if (type == GX_MTX3x4) { + WriteMTXPS4x3(mtx, &GXWGFifo.f32); + } + else { + WriteMTXPS4x2(mtx, &GXWGFifo.f32); + } +} +#pragma dont_inline reset + +void GXSetViewportJitter(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field) +{ + f32 sx; + f32 sy; + f32 sz; + f32 ox; + f32 oy; + f32 oz; + f32 zmin; + f32 zmax; + u32 reg; + + CHECK_GXBEGIN(0x387, "GXSetViewport"); // not the correct function name + + if (field == 0) { + top -= 0.5f; + } + sx = wd / 2.0f; + sy = -ht / 2.0f; + ox = 342.0f + (left + (wd / 2.0f)); + oy = 342.0f + (top + (ht / 2.0f)); + zmin = 1.6777215e7f * nearz; + zmax = 1.6777215e7f * farz; + sz = zmax - zmin; + oz = zmax; + gx->vpLeft = left; + gx->vpTop = top; + gx->vpWd = wd; + gx->vpHt = ht; + gx->vpNearz = nearz; + gx->vpFarz = farz; + if (gx->fgRange != 0) { + __GXSetRange(nearz, gx->fgSideX); + } + reg = 0x5101A; + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + GX_WRITE_XF_REG_F(26, sx); + GX_WRITE_XF_REG_F(27, sy); + GX_WRITE_XF_REG_F(28, sz); + GX_WRITE_XF_REG_F(29, ox); + GX_WRITE_XF_REG_F(30, oy); + GX_WRITE_XF_REG_F(31, oz); + gx->bpSentNot = 1; +} + +void GXSetViewport(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz) +{ + GXSetViewportJitter(left, top, wd, ht, nearz, farz, 1U); +} + +void GXGetViewportv(f32 *vp) +{ + ASSERTMSGLINE(0x3C8, vp, "GXGet*: invalid null pointer"); + + vp[0] = gx->vpLeft; + vp[1] = gx->vpTop; + vp[2] = gx->vpWd; + vp[3] = gx->vpHt; + vp[4] = gx->vpNearz; + vp[5] = gx->vpFarz; +} + +// maybe get it from melee? +void GXSetScissor(u32 left, u32 top, u32 wd, u32 ht) +{ + u32 tp; + u32 lf; + u32 bm; + u32 rt; + + CHECK_GXBEGIN(0x418, "GXSetScissor"); + ASSERTMSGLINE(0x419, left < 1706, "GXSetScissor: Left origin > 1708"); + ASSERTMSGLINE(0x41A, top < 1706, "GXSetScissor: top origin > 1708"); + ASSERTMSGLINE(0x41B, left + wd < 1706, "GXSetScissor: right edge > 1708"); + ASSERTMSGLINE(0x41C, top + ht < 1706, "GXSetScissor: bottom edge > 1708"); + + tp = top + 342; + lf = left + 342; + bm = tp + ht - 1; + rt = lf + wd - 1; + + SET_REG_FIELD(0x423, gx->suScis0, 11, 0, tp); + SET_REG_FIELD(0x424, gx->suScis0, 11, 12, lf); + SET_REG_FIELD(0x426, gx->suScis1, 11, 0, bm); + SET_REG_FIELD(0x427, gx->suScis1, 11, 12, rt); + + GX_WRITE_RAS_REG(gx->suScis0); + GX_WRITE_RAS_REG(gx->suScis1); + gx->bpSentNot = 0; +} + +void GXSetScissorBoxOffset(s32 x_off, s32 y_off) +{ + u32 reg = 0; + u32 hx; + u32 hy; + + CHECK_GXBEGIN(0x45F, "GXSetScissorBoxOffset"); + + ASSERTMSGLINE(0x462, (u32)(x_off + 342) < 2048, "GXSetScissorBoxOffset: Invalid X offset"); + ASSERTMSGLINE(0x464, (u32)(y_off + 342) < 2048, "GXSetScissorBoxOffset: Invalid Y offset"); + + hx = (u32)(x_off + 342) >> 1; + hy = (u32)(y_off + 342) >> 1; + + SET_REG_FIELD(0x469, reg, 10, 0, hx); + SET_REG_FIELD(0x46A, reg, 10, 10, hy); + SET_REG_FIELD(0x46B, reg, 8, 24, 0x59); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} +#pragma peephole on + +void GXSetClipMode(GXClipMode mode) +{ + CHECK_GXBEGIN(0x47F, "GXSetClipMode"); + GX_WRITE_XF_REG(5, mode); + gx->bpSentNot = 1; +} + +void __GXSetMatrixIndex(GXAttr matIdxAttr) +{ + if (matIdxAttr < GX_VA_TEX4MTXIDX) { + GX_WRITE_SOME_REG4(8, 0x30, gx->matIdxA, -12); + GX_WRITE_XF_REG(24, gx->matIdxA); + } + else { + GX_WRITE_SOME_REG4(8, 0x40, gx->matIdxB, -12); + GX_WRITE_XF_REG(25, gx->matIdxB); + } + gx->bpSentNot = 1; +} diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c index a8f2bb06..558d4d03 100644 --- a/src/dolphin/mtx/mtx.c +++ b/src/dolphin/mtx/mtx.c @@ -3,6 +3,8 @@ static f32 Unit01[] = { 0.0f, 1.0f }; extern f32 sinf(f32); +extern f32 cosf(f32); +extern f32 tanf(f32); void C_MTXIdentity(Mtx mtx) { @@ -648,12 +650,12 @@ void C_MTXRotRad(Mtx m, char axis, f32 rad) #ifdef GEKKO void PSMTXRotRad(Mtx m, char axis, f32 rad) { - // f32 sinA, cosA; + f32 sinA, cosA; - // sinA = sinf(rad); - // cosA = cosf(rad); + sinA = sinf(rad); + cosA = cosf(rad); - // PSMTXRotTrig(m, axis, sinA, cosA); + PSMTXRotTrig(m, axis, sinA, cosA); } #endif @@ -717,68 +719,63 @@ void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA) #ifdef GEKKO void PSMTXRotTrig(register Mtx m, register char axis, register f32 sinA, register f32 cosA) { -// register f32 fc0, fc1, nsinA; -// register f32 fw0, fw1, fw2, fw3; -// // clang-format off -// asm -// { -// frsp sinA, sinA -// frsp cosA, cosA -// } + register f32 fc0, fc1, nsinA; + register f32 fw0, fw1, fw2, fw3; + // clang-format off -// fc0 = 0.0F; -// fc1 = 1.0F; -// asm -// { -// ori axis, axis, 0x20 -// ps_neg nsinA, sinA -// cmplwi axis, 'x' -// beq _case_x -// cmplwi axis, 'y' -// beq _case_y -// cmplwi axis, 'z' -// beq _case_z -// b _end + fc0 = 0.0F; + fc1 = 1.0F; + asm + { + ori axis, axis, 0x20 + ps_neg nsinA, sinA + cmplwi axis, 'x' + beq _case_x + cmplwi axis, 'y' + beq _case_y + cmplwi axis, 'z' + beq _case_z + b _end -// _case_x: -// psq_st fc1, 0(m), 1, 0 -// psq_st fc0, 4(m), 0, 0 -// ps_merge00 fw0, sinA, cosA -// psq_st fc0, 12(m), 0, 0 -// ps_merge00 fw1, cosA, nsinA -// psq_st fc0, 28(m), 0, 0 -// psq_st fc0, 44(m), 1, 0 -// psq_st fw0, 36(m), 0, 0 -// psq_st fw1, 20(m), 0, 0 -// b _end; +_case_x: + psq_st fc1, 0(m), 1, 0 + psq_st fc0, 4(m), 0, 0 + ps_merge00 fw0, sinA, cosA + psq_st fc0, 12(m), 0, 0 + ps_merge00 fw1, cosA, nsinA + psq_st fc0, 28(m), 0, 0 + psq_st fc0, 44(m), 1, 0 + psq_st fw0, 36(m), 0, 0 + psq_st fw1, 20(m), 0, 0 + b _end; -// _case_y: -// ps_merge00 fw0, cosA, fc0 -// ps_merge00 fw1, fc0, fc1 -// psq_st fc0, 24(m), 0, 0 -// psq_st fw0, 0(m), 0, 0 -// ps_merge00 fw2, nsinA, fc0 -// ps_merge00 fw3, sinA, fc0 -// psq_st fw0, 40(m), 0, 0; -// psq_st fw1, 16(m), 0, 0; -// psq_st fw3, 8(m), 0, 0; -// psq_st fw2, 32(m), 0, 0; -// b _end; +_case_y: + ps_merge00 fw0, cosA, fc0 + ps_merge00 fw1, fc0, fc1 + psq_st fc0, 24(m), 0, 0 + psq_st fw0, 0(m), 0, 0 + ps_merge00 fw2, nsinA, fc0 + ps_merge00 fw3, sinA, fc0 + psq_st fw0, 40(m), 0, 0; + psq_st fw1, 16(m), 0, 0; + psq_st fw3, 8(m), 0, 0; + psq_st fw2, 32(m), 0, 0; + b _end; -// _case_z: -// psq_st fc0, 8(m), 0, 0 -// ps_merge00 fw0, sinA, cosA -// ps_merge00 fw2, cosA, nsinA -// psq_st fc0, 24(m), 0, 0 -// psq_st fc0, 32(m), 0, 0 -// ps_merge00 fw1, fc1, fc0 -// psq_st fw0, 16(m), 0, 0 -// psq_st fw2, 0(m), 0, 0 -// psq_st fw1, 40(m), 0, 0 +_case_z: + psq_st fc0, 8(m), 0, 0 + ps_merge00 fw0, sinA, cosA + ps_merge00 fw2, cosA, nsinA + psq_st fc0, 24(m), 0, 0 + psq_st fc0, 32(m), 0, 0 + ps_merge00 fw1, fc1, fc0 + psq_st fw0, 16(m), 0, 0 + psq_st fw2, 0(m), 0, 0 + psq_st fw1, 40(m), 0, 0 -// _end: -// } -// // clang-format on +_end: + } + // clang-format on } #endif @@ -822,70 +819,58 @@ void C_MTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) } #ifdef GEKKO -static void __PSMTXRotAxisRadInternal(register Mtx m, const register Vec *axis, register f32 sT, register f32 cT) +#define qr0 0 + +void PSMTXRotAxisRad(register Mtx m, const Vec *axis, register f32 rad) { - register f32 tT, fc0; register f32 tmp0, tmp1, tmp2, tmp3, tmp4; register f32 tmp5, tmp6, tmp7, tmp8, tmp9; - tmp9 = 0.5F; - tmp8 = 3.0F; - // clang-format off - asm - { - frsp cT, cT - psq_l tmp0, 0(axis), 0, 0 - frsp sT, sT - lfs tmp1, 8(axis) - ps_mul tmp2, tmp0, tmp0 - fadds tmp7, tmp9, tmp9 - ps_madd tmp3, tmp1, tmp1, tmp2 - fsubs fc0, tmp9, tmp9 - ps_sum0 tmp4, tmp3, tmp1, tmp2 - fsubs tT, tmp7, cT - frsqrte tmp5, tmp4 - fmuls tmp2, tmp5, tmp5 - fmuls tmp3, tmp5, tmp9 - fnmsubs tmp2, tmp2, tmp4, tmp8 - fmuls tmp5, tmp2, tmp3 - ps_merge00 cT, cT, cT - ps_muls0 tmp0, tmp0, tmp5 - ps_muls0 tmp1, tmp1, tmp5 - ps_muls0 tmp4, tmp0, tT - ps_muls0 tmp9, tmp0, sT - ps_muls0 tmp5, tmp1, tT - ps_muls1 tmp3, tmp4, tmp0 - ps_muls0 tmp2, tmp4, tmp0 - ps_muls0 tmp4, tmp4, tmp1 - fnmsubs tmp6, tmp1, sT, tmp3 - fmadds tmp7, tmp1, sT, tmp3 - ps_neg tmp0, tmp9 - ps_sum0 tmp8, tmp4, fc0, tmp9 - ps_sum0 tmp2, tmp2, tmp6, cT - ps_sum1 tmp3, cT, tmp7, tmp3 - ps_sum0 tmp6, tmp0, fc0 ,tmp4 - psq_st tmp8, 8(m), 0, 0 - ps_sum0 tmp0, tmp4, tmp4, tmp0 - psq_st tmp2, 0(m), 0, 0 - ps_muls0 tmp5, tmp5, tmp1 - psq_st tmp3, 16(m), 0, 0 - ps_sum1 tmp4, tmp9, tmp0, tmp4 - psq_st tmp6, 24(m), 0, 0 - ps_sum0 tmp5, tmp5, fc0, cT - psq_st tmp4, 32(m), 0, 0 - psq_st tmp5, 40(m), 0, 0 + register f32 sT; + register f32 cT; + register f32 oneMinusCosT; + register f32 zero; + Vec axisNormalized; + register Vec *axisNormalizedPtr; + + zero = 0.0f; + axisNormalizedPtr = &axisNormalized; + sT = sinf(rad); + cT = cosf(rad); + oneMinusCosT = 1.0f - cT; + + PSVECNormalize(axis, axisNormalizedPtr); + +#ifdef __MWERKS__ // clang-format off + asm { + psq_l rad, 0x0(axisNormalizedPtr), 0, qr0 + lfs tmp1, 0x8(axisNormalizedPtr) + ps_merge00 tmp0, cT, cT + ps_muls0 tmp4, rad, oneMinusCosT + ps_muls0 tmp5, tmp1, oneMinusCosT + ps_muls1 tmp3, tmp4, rad + ps_muls0 tmp2, tmp4, rad + ps_muls0 rad, rad, sT + ps_muls0 tmp4, tmp4, tmp1 + fnmsubs tmp6, tmp1, sT, tmp3 + fmadds tmp7, tmp1, sT, tmp3 + ps_neg tmp9, rad + ps_sum0 tmp8, tmp4, zero, rad + ps_sum0 tmp2, tmp2, tmp6, tmp0 + ps_sum1 tmp3, tmp0, tmp7, tmp3 + ps_sum0 tmp6, tmp9, zero, tmp4 + ps_sum0 tmp9, tmp4, tmp4, tmp9 + psq_st tmp8, 0x8(m), 0, qr0 + ps_muls0 tmp5, tmp5, tmp1 + psq_st tmp2, 0x0(m), 0, qr0 + ps_sum1 tmp4, rad, tmp9, tmp4 + psq_st tmp3, 0x10(m), 0, qr0 + ps_sum0 tmp5, tmp5, zero, tmp0 + psq_st tmp6, 0x18(m), 0, qr0 + psq_st tmp4, 0x20(m), 0, qr0 + psq_st tmp5, 0x28(m), 0, qr0 } - // clang-format on -} - -void PSMTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) -{ - // f32 sinT, cosT; - - // sinT = sinf(rad); - // cosT = cosf(rad); - - // __PSMTXRotAxisRadInternal(m, axis, sinT, cosT); +#endif // clang-format on } #endif @@ -1217,32 +1202,32 @@ void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n) } #endif -void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target) +void C_MTXLookAt(Mtx m, const Vec *camPos, const Vec *camUp, const Vec *target) { - // Vec vLook, vRight, vUp; + Vec vLook, vRight, vUp; - // vLook.x = camPos->x - target->x; - // vLook.y = camPos->y - target->y; - // vLook.z = camPos->z - target->z; - // VECNormalize(&vLook, &vLook); - // VECCrossProduct(camUp, &vLook, &vRight); - // VECNormalize(&vRight, &vRight); - // VECCrossProduct(&vLook, &vRight, &vUp); + vLook.x = camPos->x - target->x; + vLook.y = camPos->y - target->y; + vLook.z = camPos->z - target->z; + VECNormalize(&vLook, &vLook); + VECCrossProduct(camUp, &vLook, &vRight); + VECNormalize(&vRight, &vRight); + VECCrossProduct(&vLook, &vRight, &vUp); - // m[0][0] = vRight.x; - // m[0][1] = vRight.y; - // m[0][2] = vRight.z; - // m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); + m[0][0] = vRight.x; + m[0][1] = vRight.y; + m[0][2] = vRight.z; + m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); - // m[1][0] = vUp.x; - // m[1][1] = vUp.y; - // m[1][2] = vUp.z; - // m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); + m[1][0] = vUp.x; + m[1][1] = vUp.y; + m[1][2] = vUp.z; + m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); - // m[2][0] = vLook.x; - // m[2][1] = vLook.y; - // m[2][2] = vLook.z; - // m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); + m[2][0] = vLook.x; + m[2][1] = vLook.y; + m[2][2] = vLook.z; + m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); } void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float scaleS, float scaleT, float transS, float transT) @@ -1269,28 +1254,28 @@ void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, float scaleS, float scaleT, float transS, float transT) { - // f32 angle; - // f32 cot; + f32 angle; + f32 cot; - // angle = fovY * 0.5f; - // angle = MTXDegToRad(angle); + angle = fovY * 0.5f; + angle = MTXDegToRad(angle); - // cot = 1.0f / tanf(angle); + cot = 1.0f / tanf(angle); - // m[0][0] = (cot / aspect) * scaleS; - // m[0][1] = 0.0f; - // m[0][2] = -transS; - // m[0][3] = 0.0f; + m[0][0] = (cot / aspect) * scaleS; + m[0][1] = 0.0f; + m[0][2] = -transS; + m[0][3] = 0.0f; - // m[1][0] = 0.0f; - // m[1][1] = cot * scaleT; - // m[1][2] = -transT; - // m[1][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cot * scaleT; + m[1][2] = -transT; + m[1][3] = 0.0f; - // m[2][0] = 0.0f; - // m[2][1] = 0.0f; - // m[2][2] = -1.0f; - // m[2][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = -1.0f; + m[2][3] = 0.0f; } void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, float scaleS, float scaleT, float transS, float transT) diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c index 66964bf0..f3e15a87 100644 --- a/src/dolphin/mtx/quat.c +++ b/src/dolphin/mtx/quat.c @@ -1,3 +1,4 @@ +#include "dolphin/math.h" #include "dolphin/mtx.h" float acosf(float x); @@ -5,6 +6,28 @@ float acosf(float x); float sinf(float x); float cosf(float x); +void C_QUATAdd(const Quaternion *p, const Quaternion *q, Qtrn *r) +{ + r->x = p->x + q->x; + r->y = p->y + q->y; + r->z = p->z + q->z; + r->w = p->w + q->w; +} + +void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r) +{ + asm { + psq_l f0, 0x0(r3), 0, 0 + psq_l f1, 0x0(r4), 0, 0 + ps_add f0, f0, f1 + psq_st f0, 0x0(r5), 0, 0 + psq_l f0, 0x8(r3), 0, 0 + psq_l f1, 0x8(r4), 0, 0 + ps_add f0, f0, f1 + psq_st f0, 0x8(r5), 0, 0 + } +} + void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) { asm { @@ -33,6 +56,77 @@ void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, } } +void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit) +{ + // sdata2 + (void)0.00001f; + (void)0.0f; + (void)0.5; + (void)3.0; + (void)1.0f; + (void)0.5f; + (void)3.0f; + { + register f32 vv1, vv2, vv3; + register f32 vv4, vv5, vv6; + register f32 vv7, vv8; + register f32 vv9 = 0.00001f; + register f32 vvA = 0.5F; + register f32 vvB = 3.0F; + asm + { + psq_l vv1, 0(src), 0, 0; + ps_mul vv3, vv1, vv1; + psq_l vv2, 8(src), 0, 0; + ps_sub vv6, vv9, vv9; + ps_madd vv3, vv2, vv2, vv3; + ps_sum0 vv3, vv3, vv3, vv3; + frsqrte vv4, vv3; + ps_sub vv5, vv3, vv9; + fmul vv7, vv4, vv4; + fmul vv8, vv4, vvA; + fnmsub vv7, vv7, vv3, vvB; + fmul vv4, vv7, vv8; + ps_sel vv4, vv5, vv4, vv6; + ps_muls0 vv1, vv1, vv4; + ps_muls0 vv2, vv2, vv4; + psq_st vv1, 0(unit), 0, 0; + psq_st vv2, 8(unit), 0, 0; + } + } +} + +void PSQUATInverse(const register Quaternion *src, register Quaternion *inv) +{ + register f32 vv1, vv2, vv3, vv4; + register f32 vv5, vv6, vv7, vv8, vv9, vvA, vvB; + register f32 vvC = 1.0F; + asm { + psq_l vv1, 0(src), 0, 0; + ps_mul vv5, vv1, vv1; + psq_l vv2, 8(src), 0, 0; + ps_madd vv5, vv2, vv2, vv5; + ps_add vvA, vvC, vvC; + ps_sum0 vv5, vv5, vv5, vv5; + fres vv7, vv5; + ps_neg vv6, vv5; + ps_nmsub vv9, vv5, vv7, vvA; + ps_mul vv7, vv7, vv9; + ps_sel vv7, vv6, vvC, vv7 + b loc1; + loc0: + fmr vv7, vvC; + loc1: + ps_neg vv8, vv7; + ps_muls1 vv4, vv7, vv2; + ps_muls0 vv1, vv1, vv8; + psq_st vv4, 12(inv), 1, 0; + ps_muls0 vv3, vv2, vv8; + psq_st vv1, 0(inv), 0, 0; + psq_st vv3, 8(inv), 1, 0; + } +} + void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) { f32 tmp, tmp2, tmp3; @@ -52,6 +146,42 @@ void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) q->w = tmp3; } +void C_QUATMtx(Quaternion *r, const Mtx m) +{ + f32 vv0, vv1; + s32 i, j, k; + s32 idx[3] = { 1, 2, 0 }; + f32 vec[3]; + vv0 = m[0][0] + m[1][1] + m[2][2]; + if (vv0 > 0.0f) { + vv1 = (f32)sqrtf(vv0 + 1.0f); + r->w = vv1 * 0.5f; + vv1 = 0.5f / vv1; + r->x = (m[2][1] - m[1][2]) * vv1; + r->y = (m[0][2] - m[2][0]) * vv1; + r->z = (m[1][0] - m[0][1]) * vv1; + } + else { + i = 0; + if (m[1][1] > m[0][0]) + i = 1; + if (m[2][2] > m[i][i]) + i = 2; + j = idx[i]; + k = idx[j]; + vv1 = (f32)sqrtf((m[i][i] - (m[j][j] + m[k][k])) + 1.0f); + vec[i] = vv1 * 0.5f; + if (vv1 != 0.0f) + vv1 = 0.5f / vv1; + r->w = (m[k][j] - m[j][k]) * vv1; + vec[j] = (m[i][j] + m[j][i]) * vv1; + vec[k] = (m[i][k] + m[k][i]) * vv1; + r->x = vec[0]; + r->y = vec[1]; + r->z = vec[2]; + } +} + void C_QUATSlerp(const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t) { f32 ratioA, ratioB; diff --git a/src/dolphin/mtx/vec.c b/src/dolphin/mtx/vec.c index 985a6196..de5ad450 100644 --- a/src/dolphin/mtx/vec.c +++ b/src/dolphin/mtx/vec.c @@ -210,23 +210,23 @@ void C_VECHalfAngle(const Vec *a, const Vec *b, Vec *half) void C_VECReflect(const Vec *src, const Vec *normal, Vec *dst) { - // Vec a0; - // Vec b0; - // f32 dot; + Vec a0; + Vec b0; + f32 dot; - // a0.x = -src->x; - // a0.y = -src->y; - // a0.z = -src->z; + a0.x = -src->x; + a0.y = -src->y; + a0.z = -src->z; - // VECNormalize(&a0, &a0); - // VECNormalize(normal, &b0); + VECNormalize(&a0, &a0); + VECNormalize(normal, &b0); - // dot = VECDotProduct(&a0, &b0); - // dst->x = b0.x * 2.0f * dot - a0.x; - // dst->y = b0.y * 2.0f * dot - a0.y; - // dst->z = b0.z * 2.0f * dot - a0.z; + dot = VECDotProduct(&a0, &b0); + dst->x = b0.x * 2.0f * dot - a0.x; + dst->y = b0.y * 2.0f * dot - a0.y; + dst->z = b0.z * 2.0f * dot - a0.z; - // VECNormalize(dst, dst); + VECNormalize(dst, dst); } asm f32 PSVECSquareDistance(register const Vec *a, register const Vec *b) { diff --git a/src/dolphin/os/OSReboot.c b/src/dolphin/os/OSReboot.c index 381d39c4..5331e90a 100644 --- a/src/dolphin/os/OSReboot.c +++ b/src/dolphin/os/OSReboot.c @@ -3,6 +3,7 @@ #include #include #include +#include typedef struct ApploaderHeader { // total size: 0x20 @@ -13,18 +14,7 @@ typedef struct ApploaderHeader { u32 reserved2; // offset 0x1C, size 0x4 } ApploaderHeader; -struct { - // total size: 0x1C - int valid; // offset 0x0, size 0x4 - unsigned long restartCode; // offset 0x4, size 0x4 - unsigned long bootDol; // offset 0x8, size 0x4 - void *regionStart; // offset 0xC, size 0x4 - void *regionEnd; // offset 0x10, size 0x4 - int argsUseDefault; // offset 0x14, size 0x4 - void *argsAddr; // offset 0x18, size 0x4 -} __OSRebootParams; // size: 0x1C, address: 0x0 - -static ApploaderHeader Header; +static ApploaderHeader Header ATTRIBUTE_ALIGN(32); extern void *__OSSavedRegionStart; extern void *__OSSavedRegionEnd; @@ -34,22 +24,25 @@ static void *SaveEnd = NULL; volatile u8 DAT_800030e2 : 0x800030e2; -extern u32 BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) -extern u32 BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) +extern void *BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) +extern void *BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) extern u32 UNK_HOT_RESET1 AT_ADDRESS(0x817ffff8); extern u32 UNK_HOT_RESET2 AT_ADDRESS(0x817ffffc); -// extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0); -// extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot +extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0); +extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot +extern u32 UNK_817FFFF8 AT_ADDRESS(0x817FFFF8); +extern u32 UNK_817FFFFC AT_ADDRESS(0x817FFFFC); -extern u32 __OSIsGcam; - -static BOOL Prepared = FALSE; +static volatile BOOL Prepared = FALSE; extern void __DVDPrepareResetAsync(DVDCBCallback callback); extern BOOL DVDCheckDisk(void); extern BOOL DVDReadAbsAsyncForBS(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback); -void Run(register u32 addr) +#pragma dont_inline on +// peephole bug with mwcc +static asm void myFunc() { } +static void Run(register void (*addr)()) { OSDisableInterrupts(); ICFlashInvalidate(); @@ -62,33 +55,83 @@ void Run(register u32 addr) } // clang-format on } +#pragma dont_inline reset static void Callback() { Prepared = TRUE; } -void ReadApploader(OSTime time1) { } +inline void ReadApploader(DVDCommandBlock *dvdCmd, void *addr, u32 offset, u32 numBytes) +{ + /* Not sure if this inline is correct - might need to call other inlines */ + while (Prepared == FALSE) { } + DVDReadAbsAsyncForBS(dvdCmd, addr, numBytes, offset + 0x2440, NULL); + + while (TRUE) { + switch (dvdCmd->state) { + case 0: + break; + case 1: + default: + continue; + case -1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + __OSDoHotReset(UNK_817FFFFC); + continue; + } + break; + } +} void __OSReboot(u32 resetCode, u32 bootDol) { - // TODO -} + OSContext exceptionContext; + DVDCommandBlock dvdCmd; + DVDCommandBlock dvdCmd2; + u32 numBytes; + u32 offset; -void OSSetSaveRegion(void *start, void *end) -{ - SaveStart = start; - SaveEnd = end; -} + OSDisableInterrupts(); -void OSGetSaveRegion(void **start, void **end) -{ - *start = SaveStart; - *end = SaveEnd; -} + UNK_817FFFFC = 0; + UNK_817FFFF8 = 0; + OS_REBOOT_BOOL = TRUE; + BOOT_REGION_START = SaveStart; + BOOT_REGION_END = SaveEnd; + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + DVDInit(); + DVDSetAutoInvalidation(TRUE); -void OSGetSavedRegion(void **start, void **end) -{ - *start = __OSSavedRegionStart; - *end = __OSSavedRegionEnd; + __DVDPrepareResetAsync(Callback); + + if (!DVDCheckDisk()) { + __OSDoHotReset(UNK_817FFFFC); + } + + __OSMaskInterrupts(0xffffffe0); + __OSUnmaskInterrupts(0x400); + + OSEnableInterrupts(); + + offset = 0; + numBytes = 32; + ReadApploader(&dvdCmd, (void *)&Header, offset, numBytes); + + offset = Header.size + 0x20; + numBytes = OSRoundUp32B(Header.rebootSize); + ReadApploader(&dvdCmd2, OS_BOOTROM_ADDR, offset, numBytes); + + ICInvalidateRange(OS_BOOTROM_ADDR, numBytes); + Run(OS_BOOTROM_ADDR); } diff --git a/src/dolphin/pad/Padclamp.c b/src/dolphin/pad/Padclamp.c index a96d75c4..bdc9af39 100644 --- a/src/dolphin/pad/Padclamp.c +++ b/src/dolphin/pad/Padclamp.c @@ -103,17 +103,34 @@ static void ClampTrigger(u8 *trigger, u8 min, u8 max) } } -void PADClamp(PADStatus *status) +void PADClamp(PADStatus* status) { - // int i; - // for (i = 0; i < PAD_CHANMAX; i++, status++) { - // if (status->err != PAD_ERR_NONE) { - // continue; - // } + int i; + for (i = 0; i < PAD_CHANMAX; i++, status++) { + if (status->err != PAD_ERR_NONE) { + continue; + } - // ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, ClampRegion.xyStick, ClampRegion.minStick); - // ClampStick(&status->substickX, &status->substickY, ClampRegion.maxSubstick, ClampRegion.xySubstick, ClampRegion.minSubstick); - // ClampTrigger(&status->triggerL, ClampRegion.minTrigger, ClampRegion.maxTrigger); - // ClampTrigger(&status->triggerR, ClampRegion.minTrigger, ClampRegion.maxTrigger); - // } + ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, + ClampRegion.xyStick, ClampRegion.minStick); + ClampStick(&status->substickX, &status->substickY, + ClampRegion.maxSubstick, ClampRegion.xySubstick, + ClampRegion.minSubstick); + if (status->triggerL <= ClampRegion.minTrigger) { + status->triggerL = 0; + } else { + if (ClampRegion.maxTrigger < status->triggerL) { + status->triggerL = ClampRegion.maxTrigger; + } + status->triggerL -= ClampRegion.minTrigger; + } + if (status->triggerR <= ClampRegion.minTrigger) { + status->triggerR = 0; + } else { + if (ClampRegion.maxTrigger < status->triggerR) { + status->triggerR = ClampRegion.maxTrigger; + } + status->triggerR -= ClampRegion.minTrigger; + } + } } diff --git a/src/dolphin/thp/THPAudio.c b/src/dolphin/thp/THPAudio.c index 11a29fe4..e782abcb 100644 --- a/src/dolphin/thp/THPAudio.c +++ b/src/dolphin/thp/THPAudio.c @@ -2,131 +2,147 @@ u32 THPAudioDecode(s16 *audioBuffer, u8 *audioFrame, s32 flag) { - // THPAudioRecordHeader *header; - // THPAudioDecodeInfo decInfo; - // u8 *left, *right; - // s16 *decLeftPtr, *decRightPtr; - // s16 yn1, yn2; - // s32 i; - // s32 step; - // s32 sample; - // s64 yn; + THPAudioRecordHeader *header; + THPAudioDecodeInfo decInfo; + u8 *left, *right; + s16 *decLeftPtr, *decRightPtr; + s16 yn1, yn2; + s32 i; + s32 step; + s32 sample; + s64 yn; - // if (audioBuffer == NULL || audioFrame == NULL) { - // return 0; - // } + if (audioBuffer == NULL || audioFrame == NULL) { + return 0; + } - // header = (THPAudioRecordHeader *)audioFrame; - // left = audioFrame + sizeof(THPAudioRecordHeader); - // right = left + header->offsetNextChannel; + header = (THPAudioRecordHeader *)audioFrame; + left = audioFrame + sizeof(THPAudioRecordHeader); + right = left + header->offsetNextChannel; - // if (flag == 1) { - // decRightPtr = audioBuffer; - // decLeftPtr = audioBuffer + header->sampleSize; - // step = 1; - // } - // else { - // decRightPtr = audioBuffer; - // decLeftPtr = audioBuffer + 1; - // step = 2; - // } + if (flag == 1) { + decRightPtr = audioBuffer; + decLeftPtr = audioBuffer + header->sampleSize; + step = 1; + } + else { + decRightPtr = audioBuffer; + decLeftPtr = audioBuffer + 1; + step = 2; + } - // if (header->offsetNextChannel == 0) { - // __THPAudioInitialize(&decInfo, left); + if (header->offsetNextChannel == 0) { + __THPAudioInitialize(&decInfo, left); - // yn1 = header->lYn1; - // yn2 = header->lYn2; + yn1 = header->lYn1; + yn2 = header->lYn2; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->lCoef[decInfo.predictor][1] * yn2; - // yn += header->lCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->lCoef[decInfo.predictor][1] * yn2; + yn += header->lCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // if (sample > 0x8000) { - // yn += 0x10000; - // } - // else if ((sample == 0x8000) && ((yn & 0x10000) != 0)) { - // yn += 0x10000; - // } + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } - // yn += 0x8000; + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + *decLeftPtr = (s16)(yn >> 16); + decLeftPtr += step; + *decRightPtr = (s16)(yn >> 16); + decRightPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } + } + else { + __THPAudioInitialize(&decInfo, left); - // *decLeftPtr = (s16)(yn >> 16); - // decLeftPtr += step; - // *decRightPtr = (s16)(yn >> 16); - // decRightPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } - // } - // else { - // __THPAudioInitialize(&decInfo, left); + yn1 = header->lYn1; + yn2 = header->lYn2; - // yn1 = header->lYn1; - // yn2 = header->lYn2; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->lCoef[decInfo.predictor][1] * yn2; + yn += header->lCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->lCoef[decInfo.predictor][1] * yn2; - // yn += header->lCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; - // yn += 0x8000; + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else { + if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // *decLeftPtr = (s16)(yn >> 16); - // decLeftPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } + *decLeftPtr = (s16)(yn >> 16); + decLeftPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } - // __THPAudioInitialize(&decInfo, right); + __THPAudioInitialize(&decInfo, right); - // yn1 = header->rYn1; - // yn2 = header->rYn2; + yn1 = header->rYn1; + yn2 = header->rYn2; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->rCoef[decInfo.predictor][1] * yn2; - // yn += header->rCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->rCoef[decInfo.predictor][1] * yn2; + yn += header->rCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // yn += 0x8000; + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else { + if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // *decRightPtr = (s16)(yn >> 16); - // decRightPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } - // } + *decRightPtr = (s16)(yn >> 16); + decRightPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } + } - // return header->sampleSize; + return header->sampleSize; } static s32 __THPAudioGetNewSample(THPAudioDecodeInfo *info) diff --git a/src/game/armem.c b/src/game/armem.c index ec2be64c..66142f66 100644 --- a/src/game/armem.c +++ b/src/game/armem.c @@ -25,7 +25,7 @@ static ARQRequest arqReq; static ARMemBlock ARInfo[64]; static s32 ARBase; -static s32 arqCnt; +static volatile s32 arqCnt; static s16 arqIdx; void HuARInit(void) { diff --git a/src/game/audio.c b/src/game/audio.c index 82810c52..2227c3b7 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -5,11 +5,13 @@ #include "game/wipe.h" #include "game/gamework_data.h" +#define MUSIC_HEAP_SIZE 0x13FC00 + static int HuSePlay(int seId, MSM_SEPARAM *param); extern s16 omSysExitReq; -static s32 charVoiceGroupStat[8]; +s32 charVoiceGroupStat[8]; static s32 sndFXBuf[64][2]; static s16 Hu3DAudVol; @@ -32,7 +34,6 @@ static char *lbl_8012E9AC[] = { "" }; - void HuAudInit(void) { MSM_INIT msmInit; @@ -41,8 +42,8 @@ void HuAudInit(void) s32 result; s16 i; - msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00); - msmInit.heapSize = 0x13FC00; + msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, MUSIC_HEAP_SIZE); + msmInit.heapSize = MUSIC_HEAP_SIZE; msmInit.msmPath = "/sound/mpgcsnd.msm"; msmInit.pdtPath = "/sound/mpgcstr.pdt"; msmInit.open = NULL; @@ -100,10 +101,10 @@ void HuAudAllStop(void) { HuAudSStreamAllStop(); } -void HuAudFadeOut(s32 arg0) { +void HuAudFadeOut(s32 speed) { HuAudFXAllStop(); - HuAudSeqAllFadeOut(arg0); - HuAudSStreamAllFadeOut(arg0); + HuAudSeqAllFadeOut(speed); + HuAudSStreamAllFadeOut(speed); } int HuAudFXPlay(int seId) @@ -228,8 +229,8 @@ void HuAudFXListnerKill(void) { msmSeDelListener(); } -void HuAudFXPauseAll(s32 arg0) { - msmSePauseAll(arg0, 0x64); +void HuAudFXPauseAll(s32 pause) { + msmSePauseAll(pause, 0x64); } s32 HuAudFXStatusGet(int seNo) { @@ -259,35 +260,35 @@ s32 HuAudFXVolSet(int seNo, s16 vol) return msmSeSetParam(seNo, ¶m); } -s32 HuAudSeqPlay(s16 arg0) { - s32 temp_r31; +s32 HuAudSeqPlay(s16 musId) { + s32 channel; if (musicOffF != 0 || omSysExitReq != 0) { return 0; } - temp_r31 = msmMusPlay(arg0, NULL); - return temp_r31; + channel = msmMusPlay(musId, NULL); + return channel; } -void HuAudSeqStop(s32 arg0) { +void HuAudSeqStop(s32 musNo) { if (musicOffF != 0 || omSysExitReq != 0) { return; } - msmMusStop(arg0, 0); + msmMusStop(musNo, 0); } -void HuAudSeqFadeOut(s32 arg0, s32 arg1) { +void HuAudSeqFadeOut(s32 musNo, s32 speed) { if (musicOffF == 0) { - msmMusStop(arg0, arg1); + msmMusStop(musNo, speed); } } -void HuAudSeqAllFadeOut(s32 arg0) { +void HuAudSeqAllFadeOut(s32 speed) { s16 i; for (i = 0; i < 4; i++) { if (msmMusGetStatus(i) == 2) { - msmMusStop(i, arg0); + msmMusStop(i, speed); } } } @@ -296,22 +297,22 @@ void HuAudSeqAllStop(void) { msmMusStopAll(0, 0); } -void HuAudSeqPauseAll(s32 arg0) { - msmMusPauseAll(arg0, 0x64); +void HuAudSeqPauseAll(s32 pause) { + msmMusPauseAll(pause, 0x64); } -void HuAudSeqPause(s32 arg0, s32 arg1, s32 arg2) { +void HuAudSeqPause(s32 musNo, s32 pause, s32 speed) { if (musicOffF != 0 || omSysExitReq != 0) { return; } - msmMusPause(arg0, arg1, arg2); + msmMusPause(musNo, pause, speed); } -s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2) { +s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl) { if (musicOffF != 0 || omSysExitReq != 0) { return 0; } - return msmMusGetMidiCtrl(arg0, arg1, arg2); + return msmMusGetMidiCtrl(musNo, channel, ctrl); } s32 HuAudSStreamPlay(s16 streamId) { @@ -326,28 +327,28 @@ s32 HuAudSStreamPlay(s16 streamId) { return result; } -void HuAudSStreamStop(s32 arg0) { +void HuAudSStreamStop(s32 seNo) { if (musicOffF == 0) { - msmStreamStop(arg0, 0); + msmStreamStop(seNo, 0); } } -void HuAudSStreamFadeOut(s32 arg0, s32 arg1) { +void HuAudSStreamFadeOut(s32 seNo, s32 speed) { if (musicOffF == 0) { - msmStreamStop(arg0, arg1); + msmStreamStop(seNo, speed); } } -void HuAudSStreamAllFadeOut(s32 arg0) { - msmStreamStopAll(arg0); +void HuAudSStreamAllFadeOut(s32 speed) { + msmStreamStopAll(speed); } void HuAudSStreamAllStop(void) { msmStreamStopAll(0); } -s32 HuAudSStreamStatGet(s32 arg0) { - return msmStreamGetStatus(arg0); +s32 HuAudSStreamStatGet(s32 seNo) { + return msmStreamGetStatus(seNo); } SNDGRPTBL sndGrpTable[] = { @@ -445,75 +446,75 @@ SNDGRPTBL sndGrpTable[] = { }; void HuAudDllSndGrpSet(u16 ovl) { - SNDGRPTBL *var_r31; - s16 var_r29; + SNDGRPTBL *sndGrp; + s16 grpSet; - var_r31 = sndGrpTable; + sndGrp = sndGrpTable; while (1) { - if (var_r31->ovl == ovl) { - var_r29 = var_r31->grpSet; + if (sndGrp->ovl == ovl) { + grpSet = sndGrp->grpSet; break; } - if (var_r31->ovl == OVL_INVALID) { - var_r29 = 0x12; + if (sndGrp->ovl == OVL_INVALID) { + grpSet = 0x12; break; } - var_r31++; + sndGrp++; } - if (var_r29 != -1) { + if (grpSet != -1) { OSReport("SOUND ##########################\n"); - HuAudSndGrpSetSet(var_r29); - if (var_r31->auxANo != auxANoBak || var_r31->auxBNo != auxBNoBak) { - msmSysSetAux(var_r31->auxANo, var_r31->auxBNo); - OSReport("Change AUX %d,%d\n", var_r31->auxANo, var_r31->auxBNo); - auxANoBak = var_r31->auxANo; - auxBNoBak = var_r31->auxBNo; + HuAudSndGrpSetSet(grpSet); + if (sndGrp->auxANo != auxANoBak || sndGrp->auxBNo != auxBNoBak) { + msmSysSetAux(sndGrp->auxANo, sndGrp->auxBNo); + OSReport("Change AUX %d,%d\n", sndGrp->auxANo, sndGrp->auxBNo); + auxANoBak = sndGrp->auxANo; + auxBNoBak = sndGrp->auxBNo; HuPrcVSleep(); } - HuAudAUXVolSet(var_r31->auxAVol, var_r31->auxBVol); + HuAudAUXVolSet(sndGrp->auxAVol, sndGrp->auxBVol); OSReport("##########################\n"); } } -void HuAudSndGrpSetSet(s16 arg0) { - void *temp_r3; - OSTick temp_r31; - s32 temp_r26; - s32 temp_r27; +void HuAudSndGrpSetSet(s16 dataSize) { + void *buf; + OSTick osTick; + s32 numPlay; + s32 err; - if (sndGroupBak != arg0) { + if (sndGroupBak != dataSize) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r31 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r31) < 500); - OSReport("%d\n", OSTicksToMilliseconds(OSGetTick() - temp_r31)); - if (OSTicksToMilliseconds(OSGetTick() - temp_r31) >= 500) { - temp_r26 = msmSeGetNumPlay(1); - OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), temp_r26); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); + OSReport("%d\n", OSTicksToMilliseconds(OSGetTick() - osTick)); + if (OSTicksToMilliseconds(OSGetTick() - osTick) >= 500) { + numPlay = msmSeGetNumPlay(1); + OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), numPlay); } - OSReport("GroupSet %d\n", arg0); - sndGroupBak = arg0; - temp_r27 = msmSysDelGroupAll(); - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); - temp_r27 = msmSysLoadGroupSet(arg0, temp_r3); - OSReport("***********GroupSet Error %d\n", temp_r27); - HuMemDirectFree(temp_r3); + OSReport("GroupSet %d\n", dataSize); + sndGroupBak = dataSize; + err = msmSysDelGroupAll(); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); + err = msmSysLoadGroupSet(dataSize, buf);\ + OSReport("***********GroupSet Error %d\n", err); + HuMemDirectFree(buf); } } -void HuAudSndGrpSet(s16 arg0) { - void *temp_r3; +void HuAudSndGrpSet(s16 grpId) { + void *buf; - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(arg0)); - msmSysLoadGroup(arg0, temp_r3, 0); - HuMemDirectFree(temp_r3); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); + msmSysLoadGroup(grpId, buf, 0); + HuMemDirectFree(buf); } -void HuAudSndCommonGrpSet(s16 arg0, s32 arg1) { - s16 temp_r30; - OSTick temp_r27; - void *temp_r3; +void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck) { + s16 err; + OSTick osTick; + void *buf; s16 i; for (i = 0; i < 8; i++) { @@ -521,74 +522,75 @@ void HuAudSndCommonGrpSet(s16 arg0, s32 arg1) { } msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r27 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r27) < 500); - OSReport("CommonGrpSet %d\n", arg0); - if (arg1 != 0) { - temp_r30 = msmSysDelGroupBase(0); - if (temp_r30 < 0) { - OSReport("Del Group Error %d\n", temp_r30); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); + OSReport("CommonGrpSet %d\n", grpId); + if (groupCheck != 0) { + err = msmSysDelGroupBase(0); + if (err < 0) { + OSReport("Del Group Error %d\n", err); } } - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(arg0)); - msmSysLoadGroupBase(arg0, temp_r3); - HuMemDirectFree(temp_r3); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); + msmSysLoadGroupBase(grpId, buf); + HuMemDirectFree(buf); sndGroupBak = -1; } -void HuAudAUXSet(s32 arg0, s32 arg1) { - if (arg0 == -1) { - arg0 = 0; +void HuAudAUXSet(s32 auxA, s32 auxB) { + if (auxA == -1) { + auxA = 0; } - if (arg1 == -1) { - arg1 = 1; + if (auxB == -1) { + auxB = 1; } - msmSysSetAux(arg0, arg1); + msmSysSetAux(auxA, auxB); } -void HuAudAUXVolSet(s8 arg0, s8 arg1) { - HuAuxAVol = arg0; - HuAuxBVol = arg1; +void HuAudAUXVolSet(s8 auxA, s8 auxB) { + HuAuxAVol = auxA; + HuAuxBVol = auxB; } void HuAudVoiceInit(s16 ovl) { - SNDGRPTBL *var_r29; - OSTick temp_r23; - s16 temp_r26; + SNDGRPTBL *sndGrp; + OSTick osTick; + s16 numNotChars; + s16 grpId; s16 temp_r25; - s16 temp_r30; - s16 var_r27; - void *temp_r3; + s16 character; + + void *buf; s16 i; if (ovl != OVL_INVALID) { - var_r29 = sndGrpTable; + sndGrp = sndGrpTable; while (1) { - if (var_r29->ovl == ovl && var_r29->grpSet == -1) { + if (sndGrp->ovl == ovl && sndGrp->grpSet == -1) { return; } - if (var_r29->ovl == OVL_INVALID) { + if (sndGrp->ovl == OVL_INVALID) { break; } - var_r29++; + sndGrp++; } } - for (i = var_r27 = 0; i < 4; i++) { - temp_r30 = GWPlayerCfg[i].character; - if (temp_r30 < 0 || temp_r30 >= 8 || temp_r30 == 0xFF || charVoiceGroupStat[temp_r30] != 0) { - var_r27++; + for (i = numNotChars = 0; i < 4; i++) { + character = GWPlayerCfg[i].character; + if (character < 0 || character >= 8 || character == 0xFF || charVoiceGroupStat[character] != 0) { + numNotChars++; } } - if (var_r27 < 4) { + if (numNotChars < 4) { for (i = 0; i < 8; i++) { charVoiceGroupStat[i] = 0; } msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r23 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r23) < 500); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); OSReport("############CharGrpSet\n"); temp_r25 = msmSysDelGroupBase(0); if (temp_r25 < 0) { @@ -597,35 +599,39 @@ void HuAudVoiceInit(s16 ovl) { OSReport("Del Group OK\n"); } for (i = 0; i < 4; i++) { - temp_r30 = GWPlayerCfg[i].character; - if (temp_r30 >= 0 && temp_r30 < 8 && temp_r30 != 0xFF) { - charVoiceGroupStat[temp_r30] = 1; - temp_r26 = temp_r30 + 0xA; - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(temp_r26)); - msmSysLoadGroupBase(temp_r26, temp_r3); - HuMemDirectFree(temp_r3); + character = GWPlayerCfg[i].character; + if (character >= 0 && character < 8 && character != 0xFF) { + charVoiceGroupStat[character] = 1; + grpId = character + 10; + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); + #if VERSION_NTSC + msmSysLoadGroupBase(grpId, buf); + #else + temp_r25 = msmSysLoadGroupBase(grpId, buf); + #endif + HuMemDirectFree(buf); } } sndGroupBak = -1; } } -s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +s32 HuAudPlayerVoicePlay(s16 player, s16 seId) { + s16 charNo = GWPlayerCfg[player].character; - return HuAudCharVoicePlay(temp_r31, arg1); + return HuAudCharVoicePlay(charNo, seId); } -s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos) { + s16 charNo = GWPlayerCfg[player].character; - return HuAudCharVoicePlayPos(temp_r31, arg1, arg2); + return HuAudCharVoicePlayPos(charNo, seId, pos); } -void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +void HuAudPlayerVoicePlayEntry(s16 player, s16 seId) { + s16 charNo = GWPlayerCfg[player].character; - HuAudCharVoicePlayEntry(temp_r31, arg1); + HuAudCharVoicePlayEntry(charNo, seId); } s32 HuAudCharVoicePlay(s16 charNo, s16 seId) @@ -671,14 +677,14 @@ s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) { } void HuAudCharVoicePlayEntry(s16 charNo, s16 seId) { - int spC[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) - u16 temp_r29; + int seNoTbl[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) + u16 id; u16 i; seId += (charNo << 6); - temp_r29 = msmSeGetEntryID(seId, spC); - for (i = 0; i < temp_r29; i++) { - msmSeStop(spC[i], 0); + id = msmSeGetEntryID(seId, seNoTbl); + for (i = 0; i < id; i++) { + msmSeStop(seNoTbl[i], 0); } } diff --git a/src/game/board/audio.c b/src/game/board/audio.c index e79abe27..d5d8ccda 100755 --- a/src/game/board/audio.c +++ b/src/game/board/audio.c @@ -15,64 +15,64 @@ static s16 boardMusTbl[] = { }; void BoardMusStartBoard(void) { - s16 temp_r31 = boardMusTbl[GWBoardGet()]; + s16 musIdx = boardMusTbl[GWBoardGet()]; - BoardMusStart(0, temp_r31, 0x7F, 0); + BoardMusStart(0, musIdx, 0x7F, 0); BoardAudFXPlay(); } -void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardMusStart(s32 boardNo, s32 musId, s8 vol, u16 speed) { + s16 *board = boardSeq[boardNo]; MSM_MUSPARAM param; - if (arg1 == temp_r31[1]) { + if (musId == board[1]) { return; } - if (temp_r31[0] != -1) { - BoardAudSeqFadeOutFast(temp_r31[0]); + if (board[0] != -1) { + BoardAudSeqFadeOutFast(board[0]); } param.flag = MSM_MUSPARAM_CHAN; - if (arg3 != 0) { + if (speed != 0) { param.flag |= MSM_MUSPARAM_FADESPEED; } - if (arg2 < 0) { + if (vol < 0) { param.flag |= MSM_MUSPARAM_VOL; - arg2 = 0x7F; + vol = 0x7F; } - param.fadeSpeed = arg3; - param.vol = arg2; - param.chan = arg0; - temp_r31[0] = msmMusPlay(arg1, ¶m); - temp_r31[1] = arg1; + param.fadeSpeed = speed; + param.vol = vol; + param.chan = boardNo; + board[0] = msmMusPlay(musId, ¶m); + board[1] = musId; } -void BoardAudSeqFadeOutFast(s32 arg0) { - BoardAudSeqFadeOut(arg0, 0x64); +void BoardAudSeqFadeOutFast(s32 boardNo) { + BoardAudSeqFadeOut(boardNo, 0x64); } -void BoardAudSeqFadeOut(s32 arg0, u16 arg1) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardAudSeqFadeOut(s32 boardNo, u16 speed) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } - HuAudSeqFadeOut(temp_r31[0], arg1); - temp_r31[1] = temp_r31[0] = -1; + HuAudSeqFadeOut(board[0], speed); + board[1] = board[0] = -1; } -void BoardMusLoudSet(s32 arg0, s32 arg1) { - if (arg1 != 0) { - BoardMusVolPanSet(arg0, 0x60, 0x1F4); +void BoardMusLoudSet(s32 boardNo, s32 isQuieter) { + if (isQuieter != 0) { + BoardMusVolPanSet(boardNo, 0x60, 0x1F4); } else { - BoardMusVolPanSet(arg0, 0x7F, 0x1F4); + BoardMusVolPanSet(boardNo, 0x7F, 0x1F4); } } -void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardMusVolPanSet(s32 boardNo, s8 vol, u16 fadeSpeed) { + s16 *board = boardSeq[boardNo]; MSM_MUSPARAM param; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } param.flag = MSM_MUSPARAM_CHAN; @@ -82,32 +82,32 @@ void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) { } param.fadeSpeed = fadeSpeed; param.vol = vol; - msmMusSetParam(temp_r31[0], ¶m); + msmMusSetParam(board[0], ¶m); } -void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardAudSeqPause(s32 boardNo, s32 pause, u16 speed) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } - if (arg1 != 0) { - if (BoardMusStatusGet(arg0) == 3) { + if (pause != 0) { + if (BoardMusStatusGet(boardNo) == 3) { return; } - } else if (BoardMusStatusGet(arg0) != 3) { + } else if (BoardMusStatusGet(boardNo) != 3) { return; } - HuAudSeqPause(temp_r31[0], arg1, arg2); + HuAudSeqPause(board[0], pause, speed); } -s32 BoardMusStatusGet(s32 arg0) { - s16 *temp_r31 = boardSeq[arg0]; +s32 BoardMusStatusGet(s32 boardNo) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return 0; } - return msmMusGetStatus(temp_r31[0]); + return msmMusGetStatus(board[0]); } void BoardAudSeqClear(void) { @@ -134,20 +134,20 @@ void BoardAudSeqFadeOutAll(void) { } void BoardAudFXPlay(void) { - s32 var_r31; + s32 seId; switch (GWBoardGet()) { case BOARD_ID_MAIN5: - var_r31 = 0x48D; + seId = 0x48D; break; case BOARD_ID_MAIN6: - var_r31 = 0x4A2; + seId = 0x4A2; break; default: return; } if (boardFX == -1) { - boardFX = HuAudFXPlay(var_r31); + boardFX = HuAudFXPlay(seId); } } diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index 70df8cf9..abce562c 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -302,7 +302,7 @@ static void CoinChgAppear(omObjData *object, coinChg *coin_chg) { f32 angle; OSu16tof32(&coin_chg->angle, &angle); - angle = sin(M_PI * angle / 180.0); + angle = sind(angle); scale = angle; object->rot.x = 405.0f * angle; BoardModelScaleSet(coin_chg->coin_model, scale, scale, scale); @@ -342,8 +342,8 @@ static void CoinChgSeparate(omObjData *object, coinChg *coin_chg) { } else { spacing = 105.0f; } - y_offset = (200.0 * sin((M_PI * (2.0f * x_scale)) / 180.0)); - x_scale = sin((M_PI * x_scale) / 180.0); + y_offset = 200.0 * sind(2.0f * x_scale); + x_scale = sind(x_scale); object->rot.x = 45.0f + (315.0f * x_scale); if (coin_chg->tens != 0) { coin_x = object->trans.x + (x_scale * -spacing); @@ -374,25 +374,25 @@ static void CoinChgSeparate(omObjData *object, coinChg *coin_chg) { } static void CoinChgShow(omObjData* object, coinChg* coin_chg) { - Vec sp8; + Vec pos; f32 angle; f32 y_pos; OSu16tof32(&coin_chg->angle, &angle); - angle = (f32) sin((M_PI * angle) / 180.0); + angle = sind(angle); if (coin_chg->minus != 0) { y_pos = (-50.0f * angle) + object->trans.y; } else { y_pos = (50.0f * angle) + object->trans.y; } - BoardModelPosGet(coin_chg->coin_model, &sp8); - BoardModelPosSet(coin_chg->coin_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->sign_model, &sp8); - BoardModelPosSet(coin_chg->sign_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->ones_model, &sp8); - BoardModelPosSet(coin_chg->ones_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->tens_model, &sp8); - BoardModelPosSet(coin_chg->tens_model, sp8.x, y_pos, sp8.z); + BoardModelPosGet(coin_chg->coin_model, &pos); + BoardModelPosSet(coin_chg->coin_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->sign_model, &pos); + BoardModelPosSet(coin_chg->sign_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->ones_model, &pos); + BoardModelPosSet(coin_chg->ones_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->tens_model, &pos); + BoardModelPosSet(coin_chg->tens_model, pos.x, y_pos, pos.z); if (coin_chg->angle < 90) { coin_chg->angle += 6; return; diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 2f17e557..2ba67445 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -619,7 +619,7 @@ static void ShowBattleGame(BattleWork *arg0, omObjData *arg1) { arg0->unk01 = 1; arg1->trans.z = 0.01f; arg1->trans.y = 0.0f; - HuSprAttrReset(arg0->unk08, 0, 4); + HuSprAttrReset(arg0->unk08, 0, HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 0, 0.0f, 0.0f); } else { return; @@ -682,8 +682,8 @@ static void UpdateBattleCoin(BattleWork *arg0, omObjData *arg1) { HuSprBankSet(arg0->unk08, 1, temp_r28); return; } - HuSprAttrReset(arg0->unk08, 2, 4); - HuSprAttrReset(arg0->unk08, 1, 5); + HuSprAttrReset(arg0->unk08, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, 1, HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 2, 0.0f, 40.0f); HuSprPosSet(arg0->unk08, 1, 34.0f, 40.0f); HuSprScaleSet(arg0->unk08, 1, 0.9f, 0.9f); @@ -726,10 +726,10 @@ static void InitBattleGameSpr(BattleWork *arg0, omObjData *arg1) { temp_r30 = battleMGIdx[0]; temp_r29 = battleMGIdx[1]; - HuSprAttrReset(arg0->unk08, 3, 4); - HuSprAttrReset(arg0->unk08, 4, 4); - HuSprAttrReset(arg0->unk08, temp_r30 + 5, 4); - HuSprAttrReset(arg0->unk08, temp_r29 + 5, 4); + HuSprAttrReset(arg0->unk08, 3, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, temp_r30 + 5, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, temp_r29 + 5, HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 3, sp8[0][0], sp8[0][1]); HuSprPosSet(arg0->unk08, 4, sp8[1][0], sp8[1][1]); HuSprPosSet(arg0->unk08, temp_r30 + 5, sp8[0][0], sp8[0][1]); diff --git a/src/game/board/block.c b/src/game/board/block.c index 8a70b5c9..0f7f86aa 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -1,3 +1,4 @@ +#include "ext_math.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" @@ -6,7 +7,7 @@ #include "game/flag.h" #include "game/objsub.h" #include "game/process.h" -#include "math.h" + #define BLOCK_SPAWN 0 #define BLOCK_HIT 2 @@ -89,7 +90,7 @@ static void BlockProc(void) s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60), DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) }; - Point3d sp8; + Vec sp8; s32 var_r28; s32 i; s32 player; @@ -191,7 +192,7 @@ static void DestroyBlock(void) static void CreateBlockObj(s32 arg0) { - Point3d player_pos; + Vec player_pos; BlockWork *work; s8 contains_star; @@ -312,7 +313,7 @@ static void SpawnBlock(BlockWork *arg0, omObjData *arg1) } arg1->rot.y = rotY; - arg1->scale.x = arg1->scale.y = arg1->scale.z = sin(M_PI * scaleAngle / 180.0); + arg1->scale.x = arg1->scale.y = arg1->scale.z = sind(scaleAngle); } static void HitBlock(BlockWork *arg0, omObjData *arg1) @@ -325,7 +326,7 @@ static void HitBlock(BlockWork *arg0, omObjData *arg1) } OSs16tof32(&arg0->hit_y_velocity, &var_f30); - arg1->trans.y += 0.2f * sin((M_PI * var_f30) / 180.0); + arg1->trans.y += 0.2f * sind(var_f30); } static void OpenBlock(BlockWork *arg0, omObjData *arg1) @@ -422,7 +423,7 @@ static inline s32 FindCoinModel(s16 *out_model) static void PopupCoin(void) { - Point3d star_pos; + Vec star_pos; omObjData *coinObj; s32 model_index; s16 model; @@ -451,8 +452,8 @@ static void PopupCoin(void) static void PopupCoinExec(omObjData *obj) { - Point3d coin_pos; - Point3d coin_rot; + Vec coin_pos; + Vec coin_rot; CoinWork *work; work = OM_GET_WORK_PTR(obj, CoinWork); diff --git a/src/game/board/boo.c b/src/game/board/boo.c index dc546aeb..56dff9ce 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -1335,7 +1335,7 @@ static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1) { BoardModelPosSetV(arg0->unk00, &arg0->unk04); } -BOOL CheckBallCoinDone(void) { +static BOOL CheckBallCoinDone(void) { BallTakeCoinData *var_r31; s32 i; @@ -1351,7 +1351,7 @@ BOOL CheckBallCoinDone(void) { return TRUE; } -void TakeBallStar(void) { +static void TakeBallStar(void) { BallTakeCoinWork *temp_r31; Vec sp8; @@ -1376,7 +1376,7 @@ void TakeBallStar(void) { HuAudFXPlay(0x361); } -void ExecTakeBallStar(omObjData *arg0) { +static void ExecTakeBallStar(omObjData *arg0) { BallTakeCoinWork *temp_r29 = OM_GET_WORK_PTR(arg0, BallTakeCoinWork); Vec sp8; float var_f30; @@ -1405,7 +1405,7 @@ void ExecTakeBallStar(omObjData *arg0) { BoardModelRotYSet(temp_r29->unk02, arg0->rot.y); } -BOOL CheckTakeBallStarDone(void) { +static BOOL CheckTakeBallStarDone(void) { if (ballTakeCoinObj) { return FALSE; } else { diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index fe5af9e3..bcbe7133 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -12,30 +12,29 @@ #include "game/wipe.h" #include "game/gamework.h" +#include "ext_math.h" #include "string.h" -#define ABS(x) ((x) < 0 ? -(x) : (x)) - typedef struct bowser_event_data { - s16 sprite[3]; - s16 delay[3]; - s16 angle[3]; - s16 group; - s16 model; + s16 sprite[3]; + s16 delay[3]; + s16 angle[3]; + s16 group; + s16 model; } BowserEventData; static BowserEventData bowserEvent; static Vec playerPosTemp[4]; static s32 scareFxTbl[] = { - 0x128, - 0x168, - 0x1A8, - 0x1E8, - 0x228, - 0x268, - 0x2A8, - 0x2E8 + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8 }; @@ -102,701 +101,701 @@ static s32 ExecMiniBowserEvent(void); s32 BoardBowserExec(s32 player, s32 space) { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - HuAudFXPlay(841); - BoardCameraViewSet(2); - BoardPlayerMotBlendSet(player, 0, 15); - while(!BoardPlayerMotBlendCheck(player)) { - HuPrcVSleep(); - } - BoardCameraMotionWait(); - BoardTutorialHookExec(12, 0); - GWPlayer[player].color = 2; - } else { - eventPlayer = player; - eventSpace = space; - playerMot[0] = playerMot[1] = playerMot[2] = playerMot[3] = -1; - bowserProc = HuPrcChildCreate(ExecBowser, 8196, 14336, 0, boardMainProc); - HuPrcDestructorSet2(bowserProc, DestroyBowser); - while(bowserProc) { - HuPrcVSleep(); - } - GWPlayer[player].color = 2; - } + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + HuAudFXPlay(841); + BoardCameraViewSet(2); + BoardPlayerMotBlendSet(player, 0, 15); + while(!BoardPlayerMotBlendCheck(player)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + BoardTutorialHookExec(12, 0); + GWPlayer[player].color = 2; + } else { + eventPlayer = player; + eventSpace = space; + playerMot[0] = playerMot[1] = playerMot[2] = playerMot[3] = -1; + bowserProc = HuPrcChildCreate(ExecBowser, 8196, 14336, 0, boardMainProc); + HuPrcDestructorSet2(bowserProc, DestroyBowser); + while(bowserProc) { + HuPrcVSleep(); + } + GWPlayer[player].color = 2; + } } typedef struct bowser_work { - u8 kill : 1; - u8 state : 3; - u8 mot_active : 1; - u8 fall_done : 1; - u8 jump_done : 1; - u8 jump_state; - u8 idle_timer; + u8 kill : 1; + u8 state : 3; + u8 mot_active : 1; + u8 fall_done : 1; + u8 jump_done : 1; + u8 jump_state; + u8 idle_timer; } BowserWork; typedef struct mini_bowser_work { - u8 kill : 1; - s16 group; - s16 sprite; - s16 angle; + u8 kill : 1; + s16 group; + s16 sprite; + s16 angle; } MiniBowserWork; typedef struct bowser_event_work { - u8 kill : 1; - s8 state; - s16 timer; + u8 kill : 1; + s8 state; + s16 timer; } BowserEventWork; static void ExecBowser(void) { - #define BOWSER_EVENT 0 - #define MINI_BOWSER_EVENT 1 + #define BOWSER_EVENT 0 + #define MINI_BOWSER_EVENT 1 - s32 i; - s32 status; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(841); - omVibrate(eventPlayer, 12, 4, 2); - if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { - boardBowserHook(1); - } - BoardAudSeqPause(0, 1, 1000); - //20% of bowser, 80% chance of koopa kid - if(BoardRandMod(100) < 20) { - eventType = BOWSER_EVENT; - } else { - eventType = MINI_BOWSER_EVENT; - } - } else { - BoardMusStart(1, 6, 127, 0); - } - status = BoardDataDirReadAsync(DATADIR_BKOOPA); - BoardDataAsyncWait(status); - CreatePlayerMot(); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - ExecBowserMain(); - } else { - ExecMGReturn(); - } - for(i=0; i<4; i++) { - if(eventSpace == GWPlayer[i].space_curr) { - BoardPlayerMotionSpeedSet(i, 1.0f); - } - } - BoardAudSeqPause(0, 0, 1000); - if(bowserObj) { - OM_GET_WORK_PTR(bowserObj, BowserWork)->kill = 1; - } - if(miniBowserObj) { - OM_GET_WORK_PTR(miniBowserObj, MiniBowserWork)->kill = 1; - } - if(bowserEventObj) { - OM_GET_WORK_PTR(bowserEventObj, BowserEventWork)->kill = 1; - } - GWPlayer[eventPlayer].show_next = 1; - BoardCameraMotionStartEx(-1, NULL, NULL, 2100.0f, -1.0f, 21); - HuPrcSleep(30); - for(i=0; i<4; i++) { - BoardPlayerIdleSet(i); - } - BoardCameraMotionWait(); - if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { - boardBowserHook(0); - } else { - HuPrcSleep(30); - } - HuPrcEnd(); + s32 i; + s32 status; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(841); + omVibrate(eventPlayer, 12, 4, 2); + if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { + boardBowserHook(1); + } + BoardAudSeqPause(0, 1, 1000); + //20% of bowser, 80% chance of koopa kid + if(BoardRandMod(100) < 20) { + eventType = BOWSER_EVENT; + } else { + eventType = MINI_BOWSER_EVENT; + } + } else { + BoardMusStart(1, 6, 127, 0); + } + status = BoardDataDirReadAsync(DATADIR_BKOOPA); + BoardDataAsyncWait(status); + CreatePlayerMot(); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + ExecBowserMain(); + } else { + ExecMGReturn(); + } + for(i=0; i<4; i++) { + if(eventSpace == GWPlayer[i].space_curr) { + BoardPlayerMotionSpeedSet(i, 1.0f); + } + } + BoardAudSeqPause(0, 0, 1000); + if(bowserObj) { + OM_GET_WORK_PTR(bowserObj, BowserWork)->kill = 1; + } + if(miniBowserObj) { + OM_GET_WORK_PTR(miniBowserObj, MiniBowserWork)->kill = 1; + } + if(bowserEventObj) { + OM_GET_WORK_PTR(bowserEventObj, BowserEventWork)->kill = 1; + } + GWPlayer[eventPlayer].show_next = 1; + BoardCameraMotionStartEx(-1, NULL, NULL, 2100.0f, -1.0f, 21); + HuPrcSleep(30); + for(i=0; i<4; i++) { + BoardPlayerIdleSet(i); + } + BoardCameraMotionWait(); + if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { + boardBowserHook(0); + } else { + HuPrcSleep(30); + } + HuPrcEnd(); } static void ExecBowserMain(void) { - s32 result = 0; - BoardPlayerMotBlendSet(eventPlayer, 0, 15); - while(!BoardPlayerMotBlendCheck(eventPlayer)) { - HuPrcVSleep(); - } - BoardMusStart(1, 5, 127, 0); - BoardCameraViewSet(3); - BoardFilterFadeInit(30, 160); - BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - BoardPlayerMotionSpeedSet(eventPlayer, 2.0f); - HuPrcSleep(120); - ConfigBowserEvent(); - HuAudFXPlay(scareFxTbl[GWPlayer[eventPlayer].character]); - BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - CreateMiniBowser(); - while(!CheckMiniBowser()) { - HuPrcVSleep(); - } - BoardPlayerIdleSet(eventPlayer); - if(eventType) { - result = ExecMiniBowserEvent(); - if(!result) { - return; - } - BoardAudSeqFadeOut(1, 1000); - BoardFilterFadeInit(30, 160); - HuPrcSleep(30); - } - ExecBowserSpecial(); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - HuAudFXPlay(58); - BoardWinCreate(2, MAKE_MESSID(3, 11), 5); - BoardWinWait(); - BoardWinKill(); - BoardAudSeqFadeOut(1, 1000); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(6); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); + s32 result = 0; + BoardPlayerMotBlendSet(eventPlayer, 0, 15); + while(!BoardPlayerMotBlendCheck(eventPlayer)) { + HuPrcVSleep(); + } + BoardMusStart(1, 5, 127, 0); + BoardCameraViewSet(3); + BoardFilterFadeInit(30, 160); + BoardCameraMotionWait(); + BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + BoardPlayerMotionSpeedSet(eventPlayer, 2.0f); + HuPrcSleep(120); + ConfigBowserEvent(); + HuAudFXPlay(scareFxTbl[GWPlayer[eventPlayer].character]); + BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + CreateMiniBowser(); + while(!CheckMiniBowser()) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(eventPlayer); + if(eventType) { + result = ExecMiniBowserEvent(); + if(!result) { + return; + } + BoardAudSeqFadeOut(1, 1000); + BoardFilterFadeInit(30, 160); + HuPrcSleep(30); + } + ExecBowserSpecial(); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + HuAudFXPlay(58); + BoardWinCreate(2, MAKE_MESSID(3, 11), 5); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(6); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); } static void ExecMGReturn(void) { - s32 i; - s32 player; - BoardStatusItemSet(1); - for(i=0; i<4; i++) { - BoardPlayerPosSetV(i, &playerPosTemp[i]); - } - BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(eventPlayer); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - CreateBowserObj(); - SquishPlayers(); - BoardPlayerMotBlendSet(eventPlayer, 0, 15); - BoardCameraViewSet(3); - BoardFilterFadeInit(30, 160); - BoardStatusItemSet(0); - BoardCameraMotionWait(); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - _ClearFlag(0x1001C); - BoardCameraMoveSet(1); - player = GWSystem.player_curr; - GWSystem.player_curr = -1; - DoMGReturnEffect(); - GWSystem.player_curr = player; - BoardStatusShowSetAll(1); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - HuAudFXPlay(58); - BoardWinCreate(2, MAKE_MESSID(3, 11), 5); - BoardWinWait(); - BoardWinKill(); - while(!BoardStatusStopCheck(0)) { - HuPrcVSleep(); - } - BoardAudSeqFadeOut(1, 1000); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(6); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); - BoardMusStartBoard(); + s32 i; + s32 player; + BoardStatusItemSet(1); + for(i=0; i<4; i++) { + BoardPlayerPosSetV(i, &playerPosTemp[i]); + } + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(eventPlayer); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + CreateBowserObj(); + SquishPlayers(); + BoardPlayerMotBlendSet(eventPlayer, 0, 15); + BoardCameraViewSet(3); + BoardFilterFadeInit(30, 160); + BoardStatusItemSet(0); + BoardCameraMotionWait(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + _ClearFlag(0x1001C); + BoardCameraMoveSet(1); + player = GWSystem.player_curr; + GWSystem.player_curr = -1; + DoMGReturnEffect(); + GWSystem.player_curr = player; + BoardStatusShowSetAll(1); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + HuAudFXPlay(58); + BoardWinCreate(2, MAKE_MESSID(3, 11), 5); + BoardWinWait(); + BoardWinKill(); + while(!BoardStatusStopCheck(0)) { + HuPrcVSleep(); + } + BoardAudSeqFadeOut(1, 1000); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(6); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); + BoardMusStartBoard(); } static void DestroyBowser(void) { - KillPlayerMot(); - HuDataDirClose(DATADIR_BKOOPA); - bowserProc = NULL; + KillPlayerMot(); + HuDataDirClose(DATADIR_BKOOPA); + bowserProc = NULL; } static void SquishPlayers(void) { - Vec pos; - Vec pos_space; - s32 i; - BoardPlayerPosGet(eventPlayer, &pos); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(798); - } - pos.y += 6.0f; - BoardPlayerPosSetV(eventPlayer, &pos); - GWPlayer[eventPlayer].show_next = 0; - BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); - for(i=0; i<4; i++) { - if(eventSpace == GWPlayer[i].space_curr) { - BoardPlayerPosGet(i, &pos); - BoardSpacePosGet(0, eventSpace, &pos_space); - pos.y = pos_space.y+2.5f; - BoardPlayerPosSetV(i, &pos); - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - } - } + Vec pos; + Vec pos_space; + s32 i; + BoardPlayerPosGet(eventPlayer, &pos); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(798); + } + pos.y += 6.0f; + BoardPlayerPosSetV(eventPlayer, &pos); + GWPlayer[eventPlayer].show_next = 0; + BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); + for(i=0; i<4; i++) { + if(eventSpace == GWPlayer[i].space_curr) { + BoardPlayerPosGet(i, &pos); + BoardSpacePosGet(0, eventSpace, &pos_space); + pos.y = pos_space.y+2.5f; + BoardPlayerPosSetV(i, &pos); + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + } + } } static void ExecBowserSpecial(void) { - s32 i; - CreateBowserObj(); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - SetBowserState(2); - HuAudFXPlay(58); - BoardMusStart(1, 6, 127, 0); - HuPrcSleep(120); - BoardWinCreate(2, MAKE_MESSID(3, 7), 5); - BoardWinWait(); - BoardWinKill(); - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - for(i=0; i<4; i++) { - omVibrate(i, 12, 12, 0); - } - HuPrcSleep(11); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - CreateBowserEvent(); - HuAudFXPlay(831); - HuAudFXPlay(60); - while(!CheckBowserEvent()) { - HuPrcVSleep(); - } - HuPrcSleep(60); - BoardModelAttrSet(bowserMdl, 0x40000004); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - StopBowserEvent(); - switch(GWSystem.bowser_event) { - case 0: - ExecBowserGame(); - break; - - case 2: - ExecBowserRevo(); - break; - - case 1: - ExecBowserShuffle(); - break; - - case 3: - ExecBowserSuit(); - break; - } + s32 i; + CreateBowserObj(); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + SetBowserState(2); + HuAudFXPlay(58); + BoardMusStart(1, 6, 127, 0); + HuPrcSleep(120); + BoardWinCreate(2, MAKE_MESSID(3, 7), 5); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + for(i=0; i<4; i++) { + omVibrate(i, 12, 12, 0); + } + HuPrcSleep(11); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + CreateBowserEvent(); + HuAudFXPlay(831); + HuAudFXPlay(60); + while(!CheckBowserEvent()) { + HuPrcVSleep(); + } + HuPrcSleep(60); + BoardModelAttrSet(bowserMdl, 0x40000004); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + StopBowserEvent(); + switch(GWSystem.bowser_event) { + case 0: + ExecBowserGame(); + break; + + case 2: + ExecBowserRevo(); + break; + + case 1: + ExecBowserShuffle(); + break; + + case 3: + ExecBowserSuit(); + break; + } } static void ExecBowserGame(void) { - s32 i; - s16 mgTbl[3] = { - 435, - 436, - 437 - }; - s32 messLoss[3] = { - MAKE_MESSID(3, 9), - MAKE_MESSID(3, 12), - MAKE_MESSID(3, 14) - }; - s32 mg; - s32 mess; - s32 fx_stat; - for(i=0; i<4; i++) { - BoardPlayerPosGet(i, &playerPosTemp[i]); - } - BoardWinCreate(2, MAKE_MESSID(3, 8), 5); - BoardWinWait(); - mess = messLoss[GWSystem.bowser_loss]; - BoardWinCreate(2, mess, 5); - BoardWinWait(); - BoardWinKill(); - BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - while(BoardModelMotionTimeGet(bowserMdl) < 80.0f) { - HuPrcVSleep(); - } - fx_stat = HuAudFXPlay(846); - InitBowserFire(); - while(BoardModelMotionTimeGet(bowserMdl) < 200.0f) { - HuPrcVSleep(); - } - BoardAudSeqFadeOut(1, 1000); - BoardMusVolPanSet(0, 0, 1); - BoardAudSeqPause(0, 0, 1); - _SetFlag(0x1000E); - HuAudFXFadeOut(fx_stat, 500); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuAudFXAllStop(); - _SetFlag(0x1001C); - KillBowserFire(); - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0); - mg = (s16)mgTbl[BoardRandMod(3)]; - GWMGAvailSet(mg); - GWSystem.mg_next = mg-401; - _SetFlag(0x10003); - BoardNextOvlSet(OVL_INST); - BoardFilterFadeOut(30); - HuPrcEnd(); + s32 i; + s16 mgTbl[3] = { + 435, + 436, + 437 + }; + s32 messLoss[3] = { + MAKE_MESSID(3, 9), + MAKE_MESSID(3, 12), + MAKE_MESSID(3, 14) + }; + s32 mg; + s32 mess; + s32 fx_stat; + for(i=0; i<4; i++) { + BoardPlayerPosGet(i, &playerPosTemp[i]); + } + BoardWinCreate(2, MAKE_MESSID(3, 8), 5); + BoardWinWait(); + mess = messLoss[GWSystem.bowser_loss]; + BoardWinCreate(2, mess, 5); + BoardWinWait(); + BoardWinKill(); + BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + while(BoardModelMotionTimeGet(bowserMdl) < 80.0f) { + HuPrcVSleep(); + } + fx_stat = HuAudFXPlay(846); + InitBowserFire(); + while(BoardModelMotionTimeGet(bowserMdl) < 200.0f) { + HuPrcVSleep(); + } + BoardAudSeqFadeOut(1, 1000); + BoardMusVolPanSet(0, 0, 1); + BoardAudSeqPause(0, 0, 1); + _SetFlag(0x1000E); + HuAudFXFadeOut(fx_stat, 500); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + HuAudFXAllStop(); + _SetFlag(0x1001C); + KillBowserFire(); + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0); + mg = (s16)mgTbl[BoardRandMod(3)]; + GWMGAvailSet(mg); + GWSystem.mg_next = mg-401; + _SetFlag(0x10003); + BoardNextOvlSet(OVL_INST); + BoardFilterFadeOut(30); + HuPrcEnd(); } static void DoMGReturnEffect(void) { - s32 messTbl[3] = { - MAKE_MESSID(3, 10), - MAKE_MESSID(3, 13), - MAKE_MESSID(3, 15) - }; - s32 player; - s32 coin; - s32 item; - s32 delay; - s32 item_cnt; - s32 mess; - s32 mess_char; - for(player=0; player<4; player++) { - if(GWPlayerCoinWinGet(player) == 1) { - break; - } - } - mess = messTbl[GWSystem.bowser_loss]; - mess_char = BoardPlayerGetCharMess(player); - BoardStatusShowSetForce(player); - BoardStatusShowSet(player, 1); - BoardWinCreate(2, mess, 5); - BoardWinInsertMesSet(mess_char, 1); - BoardWinWait(); - while(!BoardStatusStopCheck(player)) { - HuPrcVSleep(); - } - omVibrate(player, 12, 4, 2); - if(GWSystem.bowser_loss == 2) { - item_cnt = BoardPlayerItemCount(player); - for(item=0; item> 1); - } - if(coin >= 50 ) { - delay = 1; - } else if(coin >= 20) { - delay = 3; - } else { - delay = 6; - } - while(coin != 0 && BoardPlayerCoinsGet(player) != 0) { - BoardPlayerCoinsAdd(player, -1); - HuAudFXPlay(14); - HuPrcSleep(delay); - coin--; - } - HuAudFXPlay(15); - } - BoardStatusShowSet(player, 0); - while(!BoardStatusStopCheck(player)) { - HuPrcVSleep(); - } + s32 messTbl[3] = { + MAKE_MESSID(3, 10), + MAKE_MESSID(3, 13), + MAKE_MESSID(3, 15) + }; + s32 player; + s32 coin; + s32 item; + s32 delay; + s32 item_cnt; + s32 mess; + s32 mess_char; + for(player=0; player<4; player++) { + if(GWPlayerCoinWinGet(player) == 1) { + break; + } + } + mess = messTbl[GWSystem.bowser_loss]; + mess_char = BoardPlayerGetCharMess(player); + BoardStatusShowSetForce(player); + BoardStatusShowSet(player, 1); + BoardWinCreate(2, mess, 5); + BoardWinInsertMesSet(mess_char, 1); + BoardWinWait(); + while(!BoardStatusStopCheck(player)) { + HuPrcVSleep(); + } + omVibrate(player, 12, 4, 2); + if(GWSystem.bowser_loss == 2) { + item_cnt = BoardPlayerItemCount(player); + for(item=0; item> 1); + } + if(coin >= 50 ) { + delay = 1; + } else if(coin >= 20) { + delay = 3; + } else { + delay = 6; + } + while(coin != 0 && BoardPlayerCoinsGet(player) != 0) { + BoardPlayerCoinsAdd(player, -1); + HuAudFXPlay(14); + HuPrcSleep(delay); + coin--; + } + HuAudFXPlay(15); + } + BoardStatusShowSet(player, 0); + while(!BoardStatusStopCheck(player)) { + HuPrcVSleep(); + } } static void ExecBowserShuffle(void) { - Vec pos; - Vec target; - s16 space_old[4]; - s16 space[4]; - s32 i; - s32 player; - s32 player_new; - s32 reset_cam; - BoardWinCreate(2, MAKE_MESSID(3, 16), 5); - BoardWinWait(); - BoardWinKill(); - for(i=0; i<4; i++) { - space_old[i] = GWPlayer[i].space_curr; - } - player=0; - while(player<4) { - player_new = BoardRandMod(4); - if(player_new == player || space_old[player_new] == -1) { - continue; - } - space[player] = space_old[player_new]; - space_old[player_new] = -1; - player++; - } - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(3); - HuPrcSleep(60); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - reset_cam = 0; - for(i=0; i<4; i++) { - GWPlayer[i].space_curr = space[i]; - if(eventSpace == space[i]) { - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - reset_cam = 1; - } else { - BoardPlayerIdleSet(i); - } - BoardPlayerMoveAwayStart(i, GWPlayer[i].space_curr, 1); - } - if(reset_cam) { - BoardCameraTargetGet(&target); - BoardCameraPosGet(&pos); - BoardCameraTargetModelSet(-1); - BoardCameraTargetSet(target.x, target.y, target.z); - BoardCameraPosSet(pos.x, pos.y, pos.z); - } - SetBowserState(4); - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } + Vec pos; + Vec target; + s16 space_old[4]; + s16 space[4]; + s32 i; + s32 player; + s32 player_new; + s32 reset_cam; + BoardWinCreate(2, MAKE_MESSID(3, 16), 5); + BoardWinWait(); + BoardWinKill(); + for(i=0; i<4; i++) { + space_old[i] = GWPlayer[i].space_curr; + } + player=0; + while(player<4) { + player_new = BoardRandMod(4); + if(player_new == player || space_old[player_new] == -1) { + continue; + } + space[player] = space_old[player_new]; + space_old[player_new] = -1; + player++; + } + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(3); + HuPrcSleep(60); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + reset_cam = 0; + for(i=0; i<4; i++) { + GWPlayer[i].space_curr = space[i]; + if(eventSpace == space[i]) { + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + reset_cam = 1; + } else { + BoardPlayerIdleSet(i); + } + BoardPlayerMoveAwayStart(i, GWPlayer[i].space_curr, 1); + } + if(reset_cam) { + BoardCameraTargetGet(&target); + BoardCameraPosGet(&pos); + BoardCameraTargetModelSet(-1); + BoardCameraTargetSet(target.x, target.y, target.z); + BoardCameraPosSet(pos.x, pos.y, pos.z); + } + SetBowserState(4); + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } } static void ExecBowserRevo(void) { - s32 i; - s32 coin; - BoardWinCreate(2, MAKE_MESSID(3, 17), 5); - BoardWinWait(); - BoardWinKill(); - for(coin=i=0; i<4; i++) { - coin += BoardPlayerCoinsGet(i); - } - coin /= 4; - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(3); - HuPrcSleep(60); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - SetBowserState(4); - for(i=0; i<4; i++) { - BoardPlayerCoinsSet(i, coin); - } - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } + s32 i; + s32 coin; + BoardWinCreate(2, MAKE_MESSID(3, 17), 5); + BoardWinWait(); + BoardWinKill(); + for(coin=i=0; i<4; i++) { + coin += BoardPlayerCoinsGet(i); + } + coin /= 4; + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(3); + HuPrcSleep(60); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + SetBowserState(4); + for(i=0; i<4; i++) { + BoardPlayerCoinsSet(i, coin); + } + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } } static void ExecBowserSuit(void) { - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - BoardWinCreate(2, MAKE_MESSID(3, 18), 5); - BoardWinWait(); - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(10); - StartSuitGive(); - while(!CheckSuitGive()) { - HuPrcVSleep(); - } - BoardWinKill(); - BoardModelAttrSet(bowserMdl, 0x40000004); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + BoardWinCreate(2, MAKE_MESSID(3, 18), 5); + BoardWinWait(); + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(10); + StartSuitGive(); + while(!CheckSuitGive()) { + HuPrcVSleep(); + } + BoardWinKill(); + BoardModelAttrSet(bowserMdl, 0x40000004); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } } typedef struct suit_give_work { - u8 kill : 1; - u8 state; - u8 timer; - u8 idle_timer; - s16 model; + u8 kill : 1; + u8 state; + u8 timer; + u8 idle_timer; + s16 model; } SuitGiveWork; static s32 CheckSuitGive(void) { - if(!suitGiveObj) { - return 1; - } else { - return 0; - } + if(!suitGiveObj) { + return 1; + } else { + return 0; + } } static void StartSuitGive(void) { - omObjData *object; - SuitGiveWork *work; - Vec pos; - object = omAddObjEx(boardObjMan, 258, 0, 0, -1, SuitGiveMain); - suitGiveObj = object; - work = OM_GET_WORK_PTR(suitGiveObj, SuitGiveWork); - work->kill = 0; - work->state = 0; - work->idle_timer = 0; - work->timer = 30; - work->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 120), NULL, 0); - BoardModelLayerSet(work->model, 7); - BoardModelScaleSet(work->model, 0.16f, 0.16f, 0.16f); - object->trans.x = 288.0f; - object->trans.y = -64.0f; - pos.x = 288.0f; - pos.y = 240.0f; - object->rot.x = (pos.x-object->trans.x)/30.0f; - object->rot.y = (pos.y-object->trans.y)/30.0f; - object->scale.x = 300.0f; - pos.x = object->trans.x; - pos.y = object->trans.y; - pos.z = object->scale.x; - Hu3D2Dto3D(&pos, 1, &pos); - BoardModelPosSetV(work->model, &pos); + omObjData *object; + SuitGiveWork *work; + Vec pos; + object = omAddObjEx(boardObjMan, 258, 0, 0, -1, SuitGiveMain); + suitGiveObj = object; + work = OM_GET_WORK_PTR(suitGiveObj, SuitGiveWork); + work->kill = 0; + work->state = 0; + work->idle_timer = 0; + work->timer = 30; + work->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 120), NULL, 0); + BoardModelLayerSet(work->model, 7); + BoardModelScaleSet(work->model, 0.16f, 0.16f, 0.16f); + object->trans.x = 288.0f; + object->trans.y = -64.0f; + pos.x = 288.0f; + pos.y = 240.0f; + object->rot.x = (pos.x-object->trans.x)/30.0f; + object->rot.y = (pos.y-object->trans.y)/30.0f; + object->scale.x = 300.0f; + pos.x = object->trans.x; + pos.y = object->trans.y; + pos.z = object->scale.x; + Hu3D2Dto3D(&pos, 1, &pos); + BoardModelPosSetV(work->model, &pos); } static void SuitGiveMain(omObjData *object) { - SuitGiveWork *work = OM_GET_WORK_PTR(object, SuitGiveWork); - s32 effect_active; - Vec pos; - if(work->kill || BoardIsKill()) { - BoardModelKill(work->model); - suitGiveObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->idle_timer) { - work->idle_timer--; - return; - } - - effect_active = 0; - switch(work->state) { - case 0: - if(work->timer == 0) { - work->state = 1; - work->idle_timer = 30; - work->timer = 30; - BoardStatusPosGet(eventPlayer, &pos); - object->rot.x = (pos.x-object->trans.x)/30.0f; - object->rot.y = (pos.y-object->trans.y)/30.0f; - } else { - work->timer--; - } - break; - - case 1: - if(work->timer == 0) { - work->state = 2; - work->idle_timer = 6; - effect_active = 1; - } else { - work->timer--; - } - break; - - case 2: - BoardPlayerItemAdd(eventPlayer, 10); - BoardModelVisibilitySet(work->model, 0); - work->kill = 1; - return; - - default: - break; - } - object->trans.x += object->rot.x; - object->trans.y += object->rot.y; - pos.x = object->trans.x; - pos.y = object->trans.y; - pos.z = object->scale.x; - Hu3D2Dto3D(&pos, 1, &pos); - BoardModelPosSetV(work->model, &pos); - if(effect_active) { - CharModelLayerSetAll(6); - CharModelEffectCreate(1, &pos); - } + SuitGiveWork *work = OM_GET_WORK_PTR(object, SuitGiveWork); + s32 effect_active; + Vec pos; + if(work->kill || BoardIsKill()) { + BoardModelKill(work->model); + suitGiveObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->idle_timer) { + work->idle_timer--; + return; + } + + effect_active = 0; + switch(work->state) { + case 0: + if(work->timer == 0) { + work->state = 1; + work->idle_timer = 30; + work->timer = 30; + BoardStatusPosGet(eventPlayer, &pos); + object->rot.x = (pos.x-object->trans.x)/30.0f; + object->rot.y = (pos.y-object->trans.y)/30.0f; + } else { + work->timer--; + } + break; + + case 1: + if(work->timer == 0) { + work->state = 2; + work->idle_timer = 6; + effect_active = 1; + } else { + work->timer--; + } + break; + + case 2: + BoardPlayerItemAdd(eventPlayer, 10); + BoardModelVisibilitySet(work->model, 0); + work->kill = 1; + return; + + default: + break; + } + object->trans.x += object->rot.x; + object->trans.y += object->rot.y; + pos.x = object->trans.x; + pos.y = object->trans.y; + pos.z = object->scale.x; + Hu3D2Dto3D(&pos, 1, &pos); + BoardModelPosSetV(work->model, &pos); + if(effect_active) { + CharModelLayerSetAll(6); + CharModelEffectCreate(1, &pos); + } } static const s32 bowserMotTbl[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 8), - DATA_MAKE_NUM(DATADIR_BKOOPA, 10), - DATA_MAKE_NUM(DATADIR_BKOOPA, 11), - DATA_MAKE_NUM(DATADIR_BKOOPA, 12), - DATA_MAKE_NUM(DATADIR_BKOOPA, 13), - DATA_NUM_LISTEND + DATA_MAKE_NUM(DATADIR_BKOOPA, 8), + DATA_MAKE_NUM(DATADIR_BKOOPA, 10), + DATA_MAKE_NUM(DATADIR_BKOOPA, 11), + DATA_MAKE_NUM(DATADIR_BKOOPA, 12), + DATA_MAKE_NUM(DATADIR_BKOOPA, 13), + DATA_NUM_LISTEND }; static void CreateBowserObj(void) { - BowserWork *work; - Vec pos; - bowserObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserObj); - work = OM_GET_WORK_PTR(bowserObj, BowserWork); - work->kill = 0; - work->jump_state = 0; - work->idle_timer = 0; - work->mot_active = 0; - work->fall_done = 0; - work->jump_done = 0; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - work->state = 1; - } else { - work->state = 0; - } - bowserMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 7), (s32 *)bowserMotTbl, 0); - BoardModelVisibilitySet(bowserMdl, 0); - BoardModelScaleSet(bowserMdl, 2.0f, 2.0f, 2.0f); - BoardPlayerPosGet(eventPlayer, &pos); - BoardModelLayerSet(bowserMdl, 2); - bowserObj->trans.x = pos.x; - bowserObj->trans.y = pos.y; - bowserObj->trans.z = pos.z; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - suitItemMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); - BoardModelLayerSet(suitItemMdl, 2); - BoardModelVisibilitySet(suitItemMdl, 0); - } else { - s32 space = GWPlayer[eventPlayer].space_curr; - BoardSpacePosGet(0, space, &pos); - bowserObj->trans.x = pos.x; - bowserObj->trans.y = pos.y; - bowserObj->trans.z = pos.z; - BoardModelPosSetV(bowserMdl, &pos); - BoardCameraTargetSpaceSet(space); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - BoardModelVisibilitySet(bowserMdl, 1); - } + BowserWork *work; + Vec pos; + bowserObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserObj); + work = OM_GET_WORK_PTR(bowserObj, BowserWork); + work->kill = 0; + work->jump_state = 0; + work->idle_timer = 0; + work->mot_active = 0; + work->fall_done = 0; + work->jump_done = 0; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + work->state = 1; + } else { + work->state = 0; + } + bowserMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 7), (s32 *)bowserMotTbl, 0); + BoardModelVisibilitySet(bowserMdl, 0); + BoardModelScaleSet(bowserMdl, 2.0f, 2.0f, 2.0f); + BoardPlayerPosGet(eventPlayer, &pos); + BoardModelLayerSet(bowserMdl, 2); + bowserObj->trans.x = pos.x; + bowserObj->trans.y = pos.y; + bowserObj->trans.z = pos.z; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + suitItemMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); + BoardModelLayerSet(suitItemMdl, 2); + BoardModelVisibilitySet(suitItemMdl, 0); + } else { + s32 space = GWPlayer[eventPlayer].space_curr; + BoardSpacePosGet(0, space, &pos); + bowserObj->trans.x = pos.x; + bowserObj->trans.y = pos.y; + bowserObj->trans.z = pos.z; + BoardModelPosSetV(bowserMdl, &pos); + BoardCameraTargetSpaceSet(space); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + BoardModelVisibilitySet(bowserMdl, 1); + } } static void ExecBowserFall(BowserWork *work, omObjData *object); @@ -807,316 +806,316 @@ static void ExecBowserJump(BowserWork *work, omObjData *object); static void ExecBowserObj(omObjData *object) { - BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); - Vec pos; - Vec rot; - - if(work->kill || BoardIsKill()) { - BoardModelKill(bowserMdl); - bowserMdl = -1; - BoardModelKill(suitItemMdl); - suitItemMdl = -1; - omDelObjEx(HuPrcCurrentGet(), object); - bowserObj = NULL; - return; - } - if(work->idle_timer) { - work->idle_timer--; - return; - } - if(work->mot_active && BoardModelMotionEndCheck(bowserMdl)) { - work->mot_active = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - } - switch(work->state) { - case 1: - ExecBowserFall(work, object); - break; - - case 2: - ExecBowserLaugh(work, object); - break; - - case 3: - ExecBowserPowerUp(work, object); - break; - - case 5: - ExecBowserFire(work, object); - break; - - case 6: - ExecBowserJump(work, object); - break; - - case 4: - BoardModelVisibilitySet(suitItemMdl, 0); - work->state = 0; - break; - - case 0: - break; - } - BoardModelPosSet(bowserMdl, object->trans.x, object->trans.y, object->trans.z); - BoardCameraRotGet(&rot); - pos.x = object->trans.x+(-100.0f*sin(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.z = object->trans.z+(-100.0f*cos(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.y = object->trans.y+250.0f; - BoardModelPosSetV(suitItemMdl, &pos); + BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); + Vec pos; + Vec rot; + + if(work->kill || BoardIsKill()) { + BoardModelKill(bowserMdl); + bowserMdl = -1; + BoardModelKill(suitItemMdl); + suitItemMdl = -1; + omDelObjEx(HuPrcCurrentGet(), object); + bowserObj = NULL; + return; + } + if(work->idle_timer) { + work->idle_timer--; + return; + } + if(work->mot_active && BoardModelMotionEndCheck(bowserMdl)) { + work->mot_active = 0; + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + } + switch(work->state) { + case 1: + ExecBowserFall(work, object); + break; + + case 2: + ExecBowserLaugh(work, object); + break; + + case 3: + ExecBowserPowerUp(work, object); + break; + + case 5: + ExecBowserFire(work, object); + break; + + case 6: + ExecBowserJump(work, object); + break; + + case 4: + BoardModelVisibilitySet(suitItemMdl, 0); + work->state = 0; + break; + + case 0: + break; + } + BoardModelPosSet(bowserMdl, object->trans.x, object->trans.y, object->trans.z); + BoardCameraRotGet(&rot); + pos.x = object->trans.x+(-100.0f*sind(BoardModelRotYGet(bowserMdl))); + pos.z = object->trans.z+(-100.0f*cosd(BoardModelRotYGet(bowserMdl))); + pos.y = object->trans.y+250.0f; + BoardModelPosSetV(suitItemMdl, &pos); } static void ExecBowserFall(BowserWork *work, omObjData *object) { - Vec pos; - Vec pos_space; - Vec pos_player; - s32 i; - if(!work->jump_state) { - BoardModelVisibilitySet(bowserMdl, 1); - BoardModelMotionStart(bowserMdl, 2, 0); - BoardModelMotionTimeSet(bowserMdl, 100.0f); - work->jump_state = 1; - return; - } - if(BoardModelMotionEndCheck(bowserMdl)) { - work->state = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - return; - } - if(!work->fall_done && !(BoardModelMotionTimeGet(bowserMdl) < 140.0f)) { - BoardPlayerPosGet(eventPlayer, &pos); - HuAudFXPlay(829); - BoardCameraQuakeSet(60, 100.0f); - object->trans.y = pos.y; - BoardPlayerPosGet(eventPlayer, &pos_player); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(798); - } - pos_player.y += 6.0f; - BoardPlayerPosSetV(eventPlayer, &pos_player); - GWPlayer[eventPlayer].show_next = 0; - BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); - for(i=0; i<4; i++) { - if(eventSpace != GWPlayer[i].space_curr) { - continue; - } - BoardPlayerPosGet(i, &pos_player); - BoardSpacePosGet(0, eventSpace, &pos_space); - pos_player.y = 2.5f+pos_space.y; - BoardPlayerPosSetV(i, &pos_player); - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - } - if(!work->fall_done) { - work->fall_done = 1; - omVibrate(eventPlayer, 12, 4, 2); - } - } - + Vec pos; + Vec pos_space; + Vec pos_player; + s32 i; + if(!work->jump_state) { + BoardModelVisibilitySet(bowserMdl, 1); + BoardModelMotionStart(bowserMdl, 2, 0); + BoardModelMotionTimeSet(bowserMdl, 100.0f); + work->jump_state = 1; + return; + } + if(BoardModelMotionEndCheck(bowserMdl)) { + work->state = 0; + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + return; + } + if(!work->fall_done && !(BoardModelMotionTimeGet(bowserMdl) < 140.0f)) { + BoardPlayerPosGet(eventPlayer, &pos); + HuAudFXPlay(829); + BoardCameraQuakeSet(60, 100.0f); + object->trans.y = pos.y; + BoardPlayerPosGet(eventPlayer, &pos_player); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(798); + } + pos_player.y += 6.0f; + BoardPlayerPosSetV(eventPlayer, &pos_player); + GWPlayer[eventPlayer].show_next = 0; + BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); + for(i=0; i<4; i++) { + if(eventSpace != GWPlayer[i].space_curr) { + continue; + } + BoardPlayerPosGet(i, &pos_player); + BoardSpacePosGet(0, eventSpace, &pos_space); + pos_player.y = 2.5f+pos_space.y; + BoardPlayerPosSetV(i, &pos_player); + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + } + if(!work->fall_done) { + work->fall_done = 1; + omVibrate(eventPlayer, 12, 4, 2); + } + } + } static void ExecBowserLaugh(BowserWork *work, omObjData *object) { - BoardModelMotionStart(bowserMdl, 3, 0); - work->mot_active = 1; - work->state = 0; + BoardModelMotionStart(bowserMdl, 3, 0); + work->mot_active = 1; + work->state = 0; } static void ExecBowserFire(BowserWork *work, omObjData *object) { - BoardModelMotionStart(bowserMdl, 5, 0); - work->state = 0; + BoardModelMotionStart(bowserMdl, 5, 0); + work->state = 0; } static void ExecBowserJump(BowserWork *work, omObjData *object) { - switch(work->jump_state) { - case 0: - BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - work->jump_state = 1; - break; - - case 1: - { - s16 model_id = BoardModelIDGet(bowserMdl); - if(Hu3DMotionShiftIDGet(model_id) == -1) { - work->jump_state = 2; - } - } - break; - - case 2: - { - float time = BoardModelMotionTimeGet(bowserMdl); - if(time < 60.0f) { - break; - } - if(!work->jump_done) { - omVibrate(eventPlayer, 12, 12, 0); - HuAudFXPlay(61); - work->jump_done = 1; - } - if(time >= 100.0f) { - BoardModelVisibilitySet(bowserMdl, 0); - work->state = 0; - work->kill = 1; - } - } - break; - } + switch(work->jump_state) { + case 0: + BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + work->jump_state = 1; + break; + + case 1: + { + s16 model_id = BoardModelIDGet(bowserMdl); + if(Hu3DMotionShiftIDGet(model_id) == -1) { + work->jump_state = 2; + } + } + break; + + case 2: + { + float time = BoardModelMotionTimeGet(bowserMdl); + if(time < 60.0f) { + break; + } + if(!work->jump_done) { + omVibrate(eventPlayer, 12, 12, 0); + HuAudFXPlay(61); + work->jump_done = 1; + } + if(time >= 100.0f) { + BoardModelVisibilitySet(bowserMdl, 0); + work->state = 0; + work->kill = 1; + } + } + break; + } } static void ExecBowserPowerUp(BowserWork *work, omObjData *object) { - Vec pos; - if(work->jump_state == 0) { - BoardModelVisibilitySet(suitItemMdl, 1); - BoardModelMotionStart(suitItemMdl, 0, 0); - BoardModelScaleSet(suitItemMdl, 10.0f, 10.0f, 10.0f); - pos.x = object->trans.x+(-100.0f*sin(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.z = object->trans.z+(-100.0f*cos(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.y = object->trans.y+250.0f; - BoardModelPosSetV(suitItemMdl, &pos); - HuAudFXPlay(850); - } else { - if(work->jump_state >= 100) { - work->state = 0; - } - } - work->jump_state++; + Vec pos; + if(work->jump_state == 0) { + BoardModelVisibilitySet(suitItemMdl, 1); + BoardModelMotionStart(suitItemMdl, 0, 0); + BoardModelScaleSet(suitItemMdl, 10.0f, 10.0f, 10.0f); + pos.x = object->trans.x+(-100.0f*sind(BoardModelRotYGet(bowserMdl))); + pos.z = object->trans.z+(-100.0f*cosd(BoardModelRotYGet(bowserMdl))); + pos.y = object->trans.y+250.0f; + BoardModelPosSetV(suitItemMdl, &pos); + HuAudFXPlay(850); + } else { + if(work->jump_state >= 100) { + work->state = 0; + } + } + work->jump_state++; } static void SetBowserState(s32 state) { - BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); - work->state = state; - work->jump_state = 0; + BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); + work->state = state; + work->jump_state = 0; } static s32 CheckBowserIdle(void) { - BowserWork *work; - if(!bowserObj) { - return 1; - } - work = OM_GET_WORK_PTR(bowserObj, BowserWork); - if(work->state != 0 || work->idle_timer != 0) { - return 0; - } else { - return 1; - } + BowserWork *work; + if(!bowserObj) { + return 1; + } + work = OM_GET_WORK_PTR(bowserObj, BowserWork); + if(work->state != 0 || work->idle_timer != 0) { + return 0; + } else { + return 1; + } } static void CreateMiniBowser(void) { - omObjData *object; - MiniBowserWork *work; - object = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowser); - miniBowserObj = object; - work = OM_GET_WORK_PTR(object, MiniBowserWork); - work->kill = 0; - work->angle = 0; - work->group = HuSprGrpCreate(1); - BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 5), 100, NULL, &work->sprite); - HuSprGrpMemberSet(work->group, 0, work->sprite); - HuSprAttrSet(work->group, 0, HUSPR_ATTR_LINEAR); - HuSprGrpPosSet(work->group, 288.0f, 240.0f); - HuSprGrpScaleSet(work->group, 4.0f, 4.0f); + omObjData *object; + MiniBowserWork *work; + object = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowser); + miniBowserObj = object; + work = OM_GET_WORK_PTR(object, MiniBowserWork); + work->kill = 0; + work->angle = 0; + work->group = HuSprGrpCreate(1); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 5), 100, NULL, &work->sprite); + HuSprGrpMemberSet(work->group, 0, work->sprite); + HuSprAttrSet(work->group, 0, HUSPR_ATTR_LINEAR); + HuSprGrpPosSet(work->group, 288.0f, 240.0f); + HuSprGrpScaleSet(work->group, 4.0f, 4.0f); } static s32 CheckMiniBowser(void) { - if(miniBowserObj) { - return 0; - } else { - return 1; - } + if(miniBowserObj) { + return 0; + } else { + return 1; + } } static void ExecMiniBowser(omObjData *object) { - MiniBowserWork *work = OM_GET_WORK_PTR(object, MiniBowserWork); - float alpha; - if(work->kill || BoardIsKill()) { - HuSprGrpKill(work->group); - miniBowserObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - OSs16tof32(&work->angle, &alpha); - alpha = sin(M_PI*BoardDAngleCalc(alpha)/180.0); - HuSprTPLvlSet(work->group, 0, ABS(alpha)); - if(work->angle == 60) { - HuAudFXPlay(807); - } - work->angle += 2; - if(work->angle == 90 || work->angle == 270 || work->angle == 450) { - omVibrate(eventPlayer, 12, 4, 2); - } - if(work->angle >= 540) { - work->kill = 1; - } + MiniBowserWork *work = OM_GET_WORK_PTR(object, MiniBowserWork); + float alpha; + if(work->kill || BoardIsKill()) { + HuSprGrpKill(work->group); + miniBowserObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + OSs16tof32(&work->angle, &alpha); + alpha = sind(BoardDAngleCalc(alpha)); + HuSprTPLvlSet(work->group, 0, ABS(alpha)); + if(work->angle == 60) { + HuAudFXPlay(807); + } + work->angle += 2; + if(work->angle == 90 || work->angle == 270 || work->angle == 450) { + omVibrate(eventPlayer, 12, 4, 2); + } + if(work->angle >= 540) { + work->kill = 1; + } } static void CreateBowserEvent(void) { - Vec pos_2d; - Vec pos_3d; - s32 eventSpr[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 1), - DATA_MAKE_NUM(DATADIR_BKOOPA, 2), - DATA_MAKE_NUM(DATADIR_BKOOPA, 3), - DATA_MAKE_NUM(DATADIR_BKOOPA, 4), - }; - - - BowserEventData *data; - s32 i; - BowserEventWork *work; - s32 sprite; - bowserEventObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserEvent); - work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - work->kill = 0; - work->state = 0; - work->timer = 0; - memset(&bowserEvent, 0, sizeof(BowserEventData)); - data = &bowserEvent; - data->group = HuSprGrpCreate(3); - sprite = eventSpr[GWSystem.bowser_event]; - for(i=0; i<3; i++) { - BoardSpriteCreate(sprite, 100, NULL, &data->sprite[i]); - HuSprGrpMemberSet(data->group, i, data->sprite[i]); - HuSprTPLvlSet(data->group, i, 0.0f); - HuSprPosSet(data->group, i, 0.0f, 0.0f); - data->delay[i] = i*2; - } - HuSprGrpPosSet(data->group, 288.0f, 240.0f); - data->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 101), NULL, 0); - pos_2d.x = 288.0f; - pos_2d.y = 240.0f; - pos_2d.z = 1000.0f; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - BoardModelMotionStart(data->model, 0, 0x40000001); - BoardModelPosSetV(data->model, &pos_3d); - BoardModelLayerSet(data->model, 2); + Vec pos_2d; + Vec pos_3d; + s32 eventSpr[] = { + DATA_MAKE_NUM(DATADIR_BKOOPA, 1), + DATA_MAKE_NUM(DATADIR_BKOOPA, 2), + DATA_MAKE_NUM(DATADIR_BKOOPA, 3), + DATA_MAKE_NUM(DATADIR_BKOOPA, 4), + }; + + + BowserEventData *data; + s32 i; + BowserEventWork *work; + s32 sprite; + bowserEventObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserEvent); + work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + work->kill = 0; + work->state = 0; + work->timer = 0; + memset(&bowserEvent, 0, sizeof(BowserEventData)); + data = &bowserEvent; + data->group = HuSprGrpCreate(3); + sprite = eventSpr[GWSystem.bowser_event]; + for(i=0; i<3; i++) { + BoardSpriteCreate(sprite, 100, NULL, &data->sprite[i]); + HuSprGrpMemberSet(data->group, i, data->sprite[i]); + HuSprTPLvlSet(data->group, i, 0.0f); + HuSprPosSet(data->group, i, 0.0f, 0.0f); + data->delay[i] = i*2; + } + HuSprGrpPosSet(data->group, 288.0f, 240.0f); + data->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 101), NULL, 0); + pos_2d.x = 288.0f; + pos_2d.y = 240.0f; + pos_2d.z = 1000.0f; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + BoardModelMotionStart(data->model, 0, 0x40000001); + BoardModelPosSetV(data->model, &pos_3d); + BoardModelLayerSet(data->model, 2); } static s32 CheckBowserEvent(void) { - BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - - if(work->state != 2) { - return 0; - } else { - return 1; - } + BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + + if(work->state != 2) { + return 0; + } else { + return 1; + } } static void StopBowserEvent(void) { - BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - work->state = 1; + BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + work->state = 1; } static void ShowBowserEvent(BowserEventWork *work, omObjData *object); @@ -1124,187 +1123,187 @@ static void HideBowserEvent(BowserEventWork *work, omObjData *object); static void ExecBowserEvent(omObjData *object) { - BowserEventWork *work = OM_GET_WORK_PTR(object, BowserEventWork); - BowserEventData *data = &bowserEvent; - if(work->kill || BoardIsKill()) { - HuSprGrpKill(data->group); - BoardModelKill(data->model); - bowserEventObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->timer) { - work->timer--; - return; - } - switch(work->state) { - case 0: - ShowBowserEvent(work, object); - break; - - case 1: - HideBowserEvent(work, object); - break; - - case 2: - break; - } + BowserEventWork *work = OM_GET_WORK_PTR(object, BowserEventWork); + BowserEventData *data = &bowserEvent; + if(work->kill || BoardIsKill()) { + HuSprGrpKill(data->group); + BoardModelKill(data->model); + bowserEventObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->timer) { + work->timer--; + return; + } + switch(work->state) { + case 0: + ShowBowserEvent(work, object); + break; + + case 1: + HideBowserEvent(work, object); + break; + + case 2: + break; + } } static void ShowBowserEvent(BowserEventWork *work, omObjData *object) { - BowserEventData *data; - s32 i; - s32 count; - float angle; - float tplvl; - float scale; - data = &bowserEvent; - for(count=i=0; i<3; i++) { - if(data->delay[i]) { - data->delay[i]--; - } else { - if(data->angle[i] > 90) { - count++; - continue; - } - OSs16tof32(&data->angle[i], &angle); - tplvl = sin(M_PI*angle/180.0); - scale = sin(M_PI*angle/180.0); - HuSprTPLvlSet(data->group, i, tplvl); - HuSprScaleSet(data->group, i, scale, scale); - BoardModelAlphaSet(data->model, 255.0f*tplvl); - data->angle[i] += 9; - if(data->angle[i] > 90 && i != 0) { - HuSprAttrSet(data->group, i, HUSPR_ATTR_DISPOFF); - } - } - } - if(count == 3) { - work->state = 2; - work->timer = 60; - } + BowserEventData *data; + s32 i; + s32 count; + float angle; + float tplvl; + float scale; + data = &bowserEvent; + for(count=i=0; i<3; i++) { + if(data->delay[i]) { + data->delay[i]--; + } else { + if(data->angle[i] > 90) { + count++; + continue; + } + OSs16tof32(&data->angle[i], &angle); + tplvl = sind(angle); + scale = sind(angle); + HuSprTPLvlSet(data->group, i, tplvl); + HuSprScaleSet(data->group, i, scale, scale); + BoardModelAlphaSet(data->model, 255.0f*tplvl); + data->angle[i] += 9; + if(data->angle[i] > 90 && i != 0) { + HuSprAttrSet(data->group, i, HUSPR_ATTR_DISPOFF); + } + } + } + if(count == 3) { + work->state = 2; + work->timer = 60; + } } static void HideBowserEvent(BowserEventWork *work, omObjData *object) { - BowserEventData *data = &bowserEvent; - float angle; - float tplvl; - OSs16tof32(&data->angle[0], &angle); - tplvl = sin(M_PI*angle/180.0); - HuSprTPLvlSet(data->group, 0, tplvl); - BoardModelAlphaSet(data->model, 255.0f*tplvl); - data->angle[0] -= 10; - if(data->angle[0] < 0) { - work->kill = 1; - HuSprAttrSet(data->group, 0, HUSPR_ATTR_DISPOFF); - } + BowserEventData *data = &bowserEvent; + float angle; + float tplvl; + OSs16tof32(&data->angle[0], &angle); + tplvl = sind(angle); + HuSprTPLvlSet(data->group, 0, tplvl); + BoardModelAlphaSet(data->model, 255.0f*tplvl); + data->angle[0] -= 10; + if(data->angle[0] < 0) { + work->kill = 1; + HuSprAttrSet(data->group, 0, HUSPR_ATTR_DISPOFF); + } } static void ConfigBowserEvent(void) { - s32 i; - s32 chance; - s32 coins; - s32 item_full; - item_full = 0; - if(BoardPlayerItemCount(eventPlayer) == 3) { - item_full = 1; - } - for(coins=i=0; i<4; i++) { - coins += BoardPlayerCoinsGet(i); - } - retry: - while(1) { - chance = BoardRandMod(100); - if(chance >= 95) { - if(item_full) { - continue; - } - if(GWSystem.max_turn-GWSystem.turn == 0) { - continue; - } - GWSystem.bowser_event = 3; - break; - } else if(chance >= 85) { - GWSystem.bowser_event = 2; - break; - } else if(chance >= 70) { - GWSystem.bowser_event = 1; - break; - } else { - if(coins == 0) { - continue; - } - GWSystem.bowser_event = 0; - GWSystem.bowser_loss = BoardRandMod(3); - break; - } - } + s32 i; + s32 chance; + s32 coins; + s32 item_full; + item_full = 0; + if(BoardPlayerItemCount(eventPlayer) == 3) { + item_full = 1; + } + for(coins=i=0; i<4; i++) { + coins += BoardPlayerCoinsGet(i); + } + retry: + while(1) { + chance = BoardRandMod(100); + if(chance >= 95) { + if(item_full) { + continue; + } + if(GWSystem.max_turn-GWSystem.turn == 0) { + continue; + } + GWSystem.bowser_event = 3; + break; + } else if(chance >= 85) { + GWSystem.bowser_event = 2; + break; + } else if(chance >= 70) { + GWSystem.bowser_event = 1; + break; + } else { + if(coins == 0) { + continue; + } + GWSystem.bowser_event = 0; + GWSystem.bowser_loss = BoardRandMod(3); + break; + } + } } static void CreatePlayerMot(void) { - s32 scareMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 27), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 27), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 27), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 27), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 27), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 27), - }; - s32 jumpMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 26), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 26), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 26), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 26), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 26), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 26), - }; - s32 playerMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), - }; - s32 i; - s32 character; - character = GWPlayer[eventPlayer].character; - scareMot = BoardPlayerMotionCreate(eventPlayer, scareMotTbl[character]); - jumpMot = BoardPlayerMotionCreate(eventPlayer, jumpMotTbl[character]); - for(i=0; i<4; i++) { - character = GWPlayer[i].character; - playerMot[i] = BoardPlayerMotionCreate(i, playerMotTbl[character]); - } + s32 scareMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 27), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 27), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 27), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 27), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 27), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 27), + }; + s32 jumpMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 26), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 26), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 26), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 26), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 26), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 26), + }; + s32 playerMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), + }; + s32 i; + s32 character; + character = GWPlayer[eventPlayer].character; + scareMot = BoardPlayerMotionCreate(eventPlayer, scareMotTbl[character]); + jumpMot = BoardPlayerMotionCreate(eventPlayer, jumpMotTbl[character]); + for(i=0; i<4; i++) { + character = GWPlayer[i].character; + playerMot[i] = BoardPlayerMotionCreate(i, playerMotTbl[character]); + } } static void KillPlayerMot(void) { - s32 i; - if(scareMot > 0) { - BoardPlayerMotionKill(eventPlayer, scareMot); - scareMot = -1; - } - if(jumpMot > 0) { - BoardPlayerMotionKill(eventPlayer, jumpMot); - jumpMot = -1; - } - for(i=0; i<4; i++) { - if(playerMot[i] > 0) { - BoardPlayerMotionKill(i, playerMot[i]); - playerMot[i] = -1; - } - } + s32 i; + if(scareMot > 0) { + BoardPlayerMotionKill(eventPlayer, scareMot); + scareMot = -1; + } + if(jumpMot > 0) { + BoardPlayerMotionKill(eventPlayer, jumpMot); + jumpMot = -1; + } + for(i=0; i<4; i++) { + if(playerMot[i] > 0) { + BoardPlayerMotionKill(i, playerMot[i]); + playerMot[i] = -1; + } + } } static void BowserFireHook(ModelData *model, ParticleData *particle, Mtx matrix); @@ -1314,103 +1313,103 @@ static s32 CheckBowserFire(HsfanimStruct01 *arg0); static void InitBowserFire(void) { - fireAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 106)); - fireParMan = Hu3DParticleCreate(fireAnim, 30); - Hu3DParticleColSet(fireParMan, 255, 255, 255); - Hu3DParticleScaleSet(fireParMan, 10.0f); - Hu3DParticleHookSet(fireParMan, BowserFireHook); - Hu3DParticleBlendModeSet(fireParMan, 1); - Hu3DModelLayerSet(fireParMan, 2); + fireAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 106)); + fireParMan = Hu3DParticleCreate(fireAnim, 30); + Hu3DParticleColSet(fireParMan, 255, 255, 255); + Hu3DParticleScaleSet(fireParMan, 10.0f); + Hu3DParticleHookSet(fireParMan, BowserFireHook); + Hu3DParticleBlendModeSet(fireParMan, 1); + Hu3DModelLayerSet(fireParMan, 2); } static void BowserFireHook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01* var_r30; - s32 i; - s32 var_r28; - Vec pos; - Hu3DModelObjPosGet(BoardModelIDGet(bowserMdl), "itemhook_M_1", &pos); - if (particle->unk_34 == 0) { - var_r30 = particle->unk_48; + HsfanimStruct01* var_r30; + s32 i; + s32 var_r28; + Vec pos; + Hu3DModelObjPosGet(BoardModelIDGet(bowserMdl), "itemhook_M_1", &pos); + if (particle->unk_34 == 0) { + var_r30 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r30++) { - var_r30->unk2C = 0.0f; - } - particle->unk_34 = 1; - particle->unk_00 = 0; - } - if((particle->unk_34 & 0x3) == 0) { - var_r30 = particle->unk_48; - for(var_r28=0; var_r28unk_30; var_r28++, var_r30++) { - if(var_r30->unk2C == 0.0f) { - break; - } - } - if(var_r28 != particle->unk_30) { - var_r30->unk34 = pos; - particle->unk_00++; - SpawnBowserFire(var_r30); - } - } - var_r30 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r30++) { - if(var_r30->unk2C != 0.0f && CheckBowserFire(var_r30)) { - particle->unk_00--; - } - } + var_r30->unk2C = 0.0f; + } + particle->unk_34 = 1; + particle->unk_00 = 0; + } + if((particle->unk_34 & 0x3) == 0) { + var_r30 = particle->unk_48; + for(var_r28=0; var_r28unk_30; var_r28++, var_r30++) { + if(var_r30->unk2C == 0.0f) { + break; + } + } + if(var_r28 != particle->unk_30) { + var_r30->unk34 = pos; + particle->unk_00++; + SpawnBowserFire(var_r30); + } + } + var_r30 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r30++) { + if(var_r30->unk2C != 0.0f && CheckBowserFire(var_r30)) { + particle->unk_00--; + } + } } static void SpawnBowserFire(HsfanimStruct01 *arg0) { - Vec dir; - BoardCameraDirGet(&dir); - arg0->unk08.x = 0.0f; - arg0->unk08.y = 0.0f; - arg0->unk08.z = 0.0f; - arg0->unk14.x = -dir.x*((0.5f*BoardRandFloat())+0.5f); - arg0->unk14.y = -dir.y*((0.5f*BoardRandFloat())+0.5f); - arg0->unk14.z = -dir.z*((0.5f*BoardRandFloat())+0.5f); - arg0->unk24 = 1.025f; - arg0->unk40.a = 254; - arg0->unk40.r = 255; - arg0->unk40.g = 255; - arg0->unk40.b = 255; - arg0->unk2C = 100.0f; + Vec dir; + BoardCameraDirGet(&dir); + arg0->unk08.x = 0.0f; + arg0->unk08.y = 0.0f; + arg0->unk08.z = 0.0f; + arg0->unk14.x = -dir.x*((0.5f*BoardRandFloat())+0.5f); + arg0->unk14.y = -dir.y*((0.5f*BoardRandFloat())+0.5f); + arg0->unk14.z = -dir.z*((0.5f*BoardRandFloat())+0.5f); + arg0->unk24 = 1.025f; + arg0->unk40.a = 254; + arg0->unk40.r = 255; + arg0->unk40.g = 255; + arg0->unk40.b = 255; + arg0->unk2C = 100.0f; } static s32 CheckBowserFire(HsfanimStruct01 *arg0) { - arg0->unk34.x += arg0->unk08.x; - arg0->unk34.y += arg0->unk08.y; - arg0->unk34.z += arg0->unk08.z; - arg0->unk08.x += arg0->unk14.x; - arg0->unk08.y += arg0->unk14.y; - arg0->unk08.z += arg0->unk14.z; - arg0->unk40.a -= 8; - arg0->unk2C *= arg0->unk24; - if(arg0->unk40.a == 0.0f) { - arg0->unk40.a = 0; - arg0->unk2C = 0.0f; - return 1; - } - return 0; + arg0->unk34.x += arg0->unk08.x; + arg0->unk34.y += arg0->unk08.y; + arg0->unk34.z += arg0->unk08.z; + arg0->unk08.x += arg0->unk14.x; + arg0->unk08.y += arg0->unk14.y; + arg0->unk08.z += arg0->unk14.z; + arg0->unk40.a -= 8; + arg0->unk2C *= arg0->unk24; + if(arg0->unk40.a == 0.0f) { + arg0->unk40.a = 0; + arg0->unk2C = 0.0f; + return 1; + } + return 0; } static void KillBowserFire(void) { - if(fireParMan != -1) { - Hu3DModelKill(fireParMan); - fireParMan = -1; - fireAnim = NULL; - } + if(fireParMan != -1) { + Hu3DModelKill(fireParMan); + fireParMan = -1; + fireAnim = NULL; + } } typedef struct mini_bowser_balloon_work { - u8 kill : 1; - u8 state; - u16 timer; - s16 angle; - float offset; - s16 *models; + u8 kill : 1; + u8 state; + u16 timer; + s16 angle; + float offset; + s16 *models; } MiniBowserBalloonWork; static void MiniBowserTake(void); @@ -1433,384 +1432,384 @@ static void WaitMiniBowserMotion(void); static s32 ExecMiniBowserEvent(void) { - s32 doneF = 0; - CreateMiniBowserBalloon(); - SetMiniBowserBalloonState(0); - while(GetMiniBowserBalloonState() != 2) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); - BoardAudSeqFadeOut(1, 1000); - HuPrcSleep(30); - BoardAudSeqFadeOutFast(1); - BoardMusStart(1, 11, 127, 0); - HuAudFXPlay(62); - BoardWinCreate(2, MAKE_MESSID(3, 0), 6); - BoardWinWait(); - if(BoardRandMod(100) < 70) { - MiniBowserTake(); - } else { - MiniBowserTakeAll(); - } - //5% chance bowser will appear after baby bowser - if(BoardRandMod(100) < 5) { - doneF = 1; - } - if(doneF) { - HuPrcSleep(60); - BoardWinCreate(2, MAKE_MESSID(3, 6), 6); - BoardWinWait(); - BoardWinKill(); - HuAudFXPlay(62); - SetMiniBowserMotion(6, 10, 1); - HuPrcSleep(60); - } else { - HuAudFXPlay(62); - BoardWinCreate(2, MAKE_MESSID(3, 2), 6); - BoardWinWait(); - BoardWinKill(); - BoardAudSeqFadeOut(1, 1000); - SetMiniBowserMotion(4, 10, 1); - HuPrcSleep(30); - } - SetMiniBowserBalloonState(1); - while(GetMiniBowserBalloonState() != 2) { - HuPrcVSleep(); - } - MiniBowserBalloonStop(); - return doneF; + s32 doneF = 0; + CreateMiniBowserBalloon(); + SetMiniBowserBalloonState(0); + while(GetMiniBowserBalloonState() != 2) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); + BoardAudSeqFadeOut(1, 1000); + HuPrcSleep(30); + BoardAudSeqFadeOutFast(1); + BoardMusStart(1, 11, 127, 0); + HuAudFXPlay(62); + BoardWinCreate(2, MAKE_MESSID(3, 0), 6); + BoardWinWait(); + if(BoardRandMod(100) < 70) { + MiniBowserTake(); + } else { + MiniBowserTakeAll(); + } + //5% chance bowser will appear after baby bowser + if(BoardRandMod(100) < 5) { + doneF = 1; + } + if(doneF) { + HuPrcSleep(60); + BoardWinCreate(2, MAKE_MESSID(3, 6), 6); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(62); + SetMiniBowserMotion(6, 10, 1); + HuPrcSleep(60); + } else { + HuAudFXPlay(62); + BoardWinCreate(2, MAKE_MESSID(3, 2), 6); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + SetMiniBowserMotion(4, 10, 1); + HuPrcSleep(30); + } + SetMiniBowserBalloonState(1); + while(GetMiniBowserBalloonState() != 2) { + HuPrcVSleep(); + } + MiniBowserBalloonStop(); + return doneF; } static void MiniBowserTake(void) { - u8 coinSteal[][3] = { - 20, 20, 30, - 20, 20, 30, - 10, 15, 20, - 10, 15, 20 - }; - s32 coin_inc; - s32 game_part; - u8 steal; - s32 i; - u32 mess; - s32 delay; - s32 turn; - s32 turn_max; - turn = GWSystem.turn-1; - turn_max = GWSystem.max_turn; - game_part = turn/(turn_max/3); - if(game_part >= 3) { - game_part = 2; - } - steal = (u8)coinSteal[GWPlayer[eventPlayer].rank][game_part]; - sprintf(coinStealStrAll, "%d", steal); - SetMiniBowserMotion(2, 10, 0); - if(steal >= 20) { - delay = 3; - } else { - delay = 6; - } - if(BoardPlayerCoinsGet(eventPlayer) != 0) { - mess = MAKE_MESSID(3, 1); - coin_inc = -1; - } else { - mess = MAKE_MESSID(3, 3); - steal = 10; - coin_inc = 1; - } - HuAudFXPlay(62); - BoardWinCreate(2, mess, 6); - BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStrAll), 0); - BoardWinWait(); - if(coin_inc > 0) { - SetMiniBowserMotion(5, 10, 0); - } else { - SetMiniBowserMotion(3, 10, 1); - } - if(coin_inc < 0) { - omVibrate(eventPlayer, 12, 6, 6); - } - if(coin_inc < 0) { - BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } else { - BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } - for(i=0; i= 3) { + game_part = 2; + } + steal = (u8)coinSteal[GWPlayer[eventPlayer].rank][game_part]; + sprintf(coinStealStrAll, "%d", steal); + SetMiniBowserMotion(2, 10, 0); + if(steal >= 20) { + delay = 3; + } else { + delay = 6; + } + if(BoardPlayerCoinsGet(eventPlayer) != 0) { + mess = MAKE_MESSID(3, 1); + coin_inc = -1; + } else { + mess = MAKE_MESSID(3, 3); + steal = 10; + coin_inc = 1; + } + HuAudFXPlay(62); + BoardWinCreate(2, mess, 6); + BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStrAll), 0); + BoardWinWait(); + if(coin_inc > 0) { + SetMiniBowserMotion(5, 10, 0); + } else { + SetMiniBowserMotion(3, 10, 1); + } + if(coin_inc < 0) { + omVibrate(eventPlayer, 12, 6, 6); + } + if(coin_inc < 0) { + BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } else { + BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } + for(i=0; i= 3) { - game_part = 2; - } - steal = (u8)coinSteal[game_part]; - sprintf(coinStealStr, "%d", steal); - SetMiniBowserMotion(2, 10, 0); - for(coin_total=j=0; j<4; j++) { - coin_total += BoardPlayerCoinsGet(j); - } - if(coin_total != 0) { - mess = MAKE_MESSID(3, 4); - coin_inc = -1; - } else { - mess = MAKE_MESSID(3, 5); - steal = 10; - coin_inc = 1; - } - HuAudFXPlay(62); - BoardWinCreate(2, mess, 6); - BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStr), 0); - BoardWinWait(); - if(coin_inc > 0) { - SetMiniBowserMotion(5, 10, 0); - } else { - SetMiniBowserMotion(3, 10, 1); - } - if(coin_inc < 0) { - for(i=0; i<4; i++) { - omVibrate(i, 12, 6, 6); - } - } - for(i=0; i<4; i++) { - if(coin_inc < 0) { - BoardPlayerMotionShiftSet(i, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } else { - BoardPlayerMotionShiftSet(i, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } - } - if(steal >= 20) { - delay = 3; - } else { - delay = 6; - } - for(i=0; i= 3) { + game_part = 2; + } + steal = (u8)coinSteal[game_part]; + sprintf(coinStealStr, "%d", steal); + SetMiniBowserMotion(2, 10, 0); + for(coin_total=j=0; j<4; j++) { + coin_total += BoardPlayerCoinsGet(j); + } + if(coin_total != 0) { + mess = MAKE_MESSID(3, 4); + coin_inc = -1; + } else { + mess = MAKE_MESSID(3, 5); + steal = 10; + coin_inc = 1; + } + HuAudFXPlay(62); + BoardWinCreate(2, mess, 6); + BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStr), 0); + BoardWinWait(); + if(coin_inc > 0) { + SetMiniBowserMotion(5, 10, 0); + } else { + SetMiniBowserMotion(3, 10, 1); + } + if(coin_inc < 0) { + for(i=0; i<4; i++) { + omVibrate(i, 12, 6, 6); + } + } + for(i=0; i<4; i++) { + if(coin_inc < 0) { + BoardPlayerMotionShiftSet(i, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } else { + BoardPlayerMotionShiftSet(i, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } + } + if(steal >= 20) { + delay = 3; + } else { + delay = 6; + } + for(i=0; ikill = 1; - } + if(miniBowserBalloonObj) { + OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->kill = 1; + } } static s32 GetMiniBowserBalloonState(void) { - return OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state; + return OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state; } static void SetMiniBowserBalloonState(s32 state) { - OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state = state; + OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state = state; } static void CreateMiniBowserBalloon(void) { - MiniBowserBalloonWork *work; - s16 *models; - Vec pos; - miniBowserBalloonObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowserBalloon); - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - work->kill = 0; - work->state = 0; - work->timer = 0; - work->offset = 0; - work->angle = 0; - work->models = HuMemDirectMallocNum(HEAP_SYSTEM, 9*sizeof(s16), MEMORY_DEFAULT_NUM); - models = work->models; - models[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 14), (s32 *)miniBowserMotTbl, 0); - models[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 0), NULL, 0); - BoardPlayerPosGet(eventPlayer, &pos); - miniBowserBalloonObj->trans.x = pos.x; - miniBowserBalloonObj->trans.y = pos.y+800.0f; - miniBowserBalloonObj->trans.z = pos.z; - BoardModelHookSet(models[1], "minik01", models[0]); - BoardModelPosSet(models[1], miniBowserBalloonObj->trans.x, - miniBowserBalloonObj->trans.y, - miniBowserBalloonObj->trans.z); - SetMiniBowserMotion(1, 0, 1); + MiniBowserBalloonWork *work; + s16 *models; + Vec pos; + miniBowserBalloonObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowserBalloon); + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + work->kill = 0; + work->state = 0; + work->timer = 0; + work->offset = 0; + work->angle = 0; + work->models = HuMemDirectMallocNum(HEAP_SYSTEM, 9*sizeof(s16), MEMORY_DEFAULT_NUM); + models = work->models; + models[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 14), (s32 *)miniBowserMotTbl, 0); + models[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 0), NULL, 0); + BoardPlayerPosGet(eventPlayer, &pos); + miniBowserBalloonObj->trans.x = pos.x; + miniBowserBalloonObj->trans.y = pos.y+800.0f; + miniBowserBalloonObj->trans.z = pos.z; + BoardModelHookSet(models[1], "minik01", models[0]); + BoardModelPosSet(models[1], miniBowserBalloonObj->trans.x, + miniBowserBalloonObj->trans.y, + miniBowserBalloonObj->trans.z); + SetMiniBowserMotion(1, 0, 1); } static void ExecMiniBowserBalloon(omObjData *object) { - MiniBowserBalloonWork *work; - s16 *models; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(work->kill || BoardIsKill()) { - BoardModelKill(models[0]); - BoardModelKill(models[1]); - HuMemDirectFree(work->models); - miniBowserBalloonObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->timer) { - work->timer--; - } else { - switch(work->state) { - case 0: - MiniBowserBalloonFall(work, object); - break; - - case 1: - MiniBowserBalloonRaise(work, object); - break; - - case 2: - MiniBowserBalloonHover(work, object); - break; - } - } - BoardModelPosSet(models[1], object->trans.x, object->trans.y+work->offset, object->trans.z); + MiniBowserBalloonWork *work; + s16 *models; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(work->kill || BoardIsKill()) { + BoardModelKill(models[0]); + BoardModelKill(models[1]); + HuMemDirectFree(work->models); + miniBowserBalloonObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->timer) { + work->timer--; + } else { + switch(work->state) { + case 0: + MiniBowserBalloonFall(work, object); + break; + + case 1: + MiniBowserBalloonRaise(work, object); + break; + + case 2: + MiniBowserBalloonHover(work, object); + break; + } + } + BoardModelPosSet(models[1], object->trans.x, object->trans.y+work->offset, object->trans.z); } static void MiniBowserBalloonHover(MiniBowserBalloonWork *work, omObjData *object) { - float angle; - work->angle++; - if(work->angle >= 360) { - work->angle = 0; - } - OSs16tof32(&work->angle, &angle); - work->offset = 10.0*sin(M_PI*angle/180.0); + float angle; + work->angle++; + if(work->angle >= 360) { + work->angle = 0; + } + OSs16tof32(&work->angle, &angle); + work->offset = 10.0*sind(angle); } static void MiniBowserBalloonFall(MiniBowserBalloonWork *work, omObjData *object) { - Vec pos; - BoardPlayerPosGet(eventPlayer, &pos); - pos.y += 250.0f; - if(object->trans.y < pos.y) { - object->trans.y = pos.y; - work->state = 2; - } else { - object->trans.y += -10.0f; - } + Vec pos; + BoardPlayerPosGet(eventPlayer, &pos); + pos.y += 250.0f; + if(object->trans.y < pos.y) { + object->trans.y = pos.y; + work->state = 2; + } else { + object->trans.y += -10.0f; + } } static void MiniBowserBalloonRaise(MiniBowserBalloonWork *work, omObjData *object) { - Vec pos; - BoardPlayerPosGet(eventPlayer, &pos); - pos.y += 800.0f; - if(object->trans.y > pos.y) { - work->state = 2; - } else { - object->trans.y += 10.0f; - } + Vec pos; + BoardPlayerPosGet(eventPlayer, &pos); + pos.y += 800.0f; + if(object->trans.y > pos.y) { + work->state = 2; + } else { + object->trans.y += 10.0f; + } } static void SetMiniBowserMotion(s32 mot, u8 end, s32 pause) { - s16 *models; - u32 attr; - float shift_end; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(pause) { - attr = HU3D_MOTATTR_LOOP; - } else { - attr = HU3D_MOTATTR_NONE; - } - if(end) { - OSu8tof32(&end, &shift_end); - BoardModelMotionShiftSet(models[0], mot, 0, shift_end, attr); - } else { - BoardModelMotionStart(models[0], mot, attr); - } + s16 *models; + u32 attr; + float shift_end; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(pause) { + attr = HU3D_MOTATTR_LOOP; + } else { + attr = HU3D_MOTATTR_NONE; + } + if(end) { + OSu8tof32(&end, &shift_end); + BoardModelMotionShiftSet(models[0], mot, 0, shift_end, attr); + } else { + BoardModelMotionStart(models[0], mot, attr); + } } static void SetMiniBowserMotionPause(s32 flag) { - s16 *models; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(flag) { - BoardModelAttrSet(models[0], 0x40000001); - } else { - BoardModelAttrReset(models[0], 0x40000001); - } + s16 *models; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(flag) { + BoardModelAttrSet(models[0], 0x40000001); + } else { + BoardModelAttrReset(models[0], 0x40000001); + } } static void WaitMiniBowserMotion(void) { - s16 *models; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - BoardModelAttrReset(models[0], 0x40000001); - while(!BoardModelMotionEndCheck(models[0])) { - HuPrcVSleep(); - } + s16 *models; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + BoardModelAttrReset(models[0], 0x40000001); + while(!BoardModelMotionEndCheck(models[0])) { + HuPrcVSleep(); + } } diff --git a/src/game/board/char_wheel.c b/src/game/board/char_wheel.c index 380fc7bc..bb33564a 100755 --- a/src/game/board/char_wheel.c +++ b/src/game/board/char_wheel.c @@ -132,6 +132,12 @@ static void ExecCharWheel(omObjData *arg0) { temp_r31 = OM_GET_WORK_PTR(arg0, CharWheelWork);; if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { KillCharWheelSpr(); + #if VERSION_PAL + if (wheelFXStat != -1) { + HuAudFXStop(wheelFXStat); + wheelFXStat = -1; + } + #endif charWheelObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); return; @@ -322,7 +328,13 @@ static void UpdateCharWheel(CharWheelWork *arg0) { } var_f23 = 8191.0f - 8191.0f * (var_f25 / wheelSpeed); OSf32tos16(&var_f23, &var_r17); + #if VERSION_PAL + if(wheelFXStat != -1) { + HuAudFXPitchSet(wheelFXStat, -var_r17); + } + #else HuAudFXPitchSet(wheelFXStat, -var_r17); + #endif if (var_f25 > -0.0000001f && var_f25 < 0.0000001f) { arg0->unk00_field3 = 3; if (wheelFXStat != -1) { @@ -356,14 +368,14 @@ static void StopCharWheel(CharWheelWork *arg0) { } var_r30 = arg0->unk03 % 6; if (var_r30 < 3) { - HuSprAttrSet(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrSet(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrReset(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); } if (arg0->unk03 < 90) { arg0->unk03++; } else { - HuSprAttrReset(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrReset(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); arg0->unk00_field3 = 4; } } @@ -379,7 +391,14 @@ static void GrowCharWheel(CharWheelWork *arg0) { } arg0->unk02 = 90; arg0->unk00_field3 = 2; + #if VERSION_PAL + if(!BoardIsKill()) { + wheelFXStat = HuAudFXPlay(0x30A); + } + #else wheelFXStat = HuAudFXPlay(0x30A); + #endif + } OSs8tof32(&arg0->unk02, &temp_f30); HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30)); diff --git a/src/game/board/com.c b/src/game/board/com.c index ed7f1e3c..60ef9620 100755 --- a/src/game/board/com.c +++ b/src/game/board/com.c @@ -47,7 +47,7 @@ static s8 itemUse = -1; #define BOARD_ITEM_ITEM_BAG 13 #define BOARD_ITEMS_END BOARD_ITEM_ITEM_BAG -static s8 comItemPreferTbl[GW_CHARACTER_MAX][SHOP_ITEMS_END] = { +static s8 comItemPreferTbl[CHARNO_MAX ][SHOP_ITEMS_END] = { { //Mario BOARD_ITEM_MAGIC_LAMP, BOARD_ITEM_BOOS_CRYSTAL_BALL, diff --git a/src/game/board/item.c b/src/game/board/item.c index df2f49b1..d2341c9c 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -112,7 +112,7 @@ static AnimData *genieParticleAnim; static s16 geniePlayerMot[3]; static Process *itemProc; -s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 }; +static s32 itemMotTbl[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 }; static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap, ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag }; @@ -1183,7 +1183,7 @@ static void ExecItemSpark(void) BoardModelLayerSet(temp_r30, 3); BoardModelVisibilitySet(temp_r30, 0); HuAudFXPlay(0x350); - suitMdl = BoardModelCreate(itemMdlTbl[currItem], lbl_801D37A0, 0); + suitMdl = BoardModelCreate(itemMdlTbl[currItem], itemMotTbl, 0); BoardModelLayerSet(suitMdl, 2); ItemShowProc(NULL, NULL); temp_r28 = GWPlayer[currItemRestore].space_curr; @@ -1942,7 +1942,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk2C = 25.0f; temp_f30 = 175.0f + frand8() * 0x50 * 0.003921569f; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = temp_f30; - var_r31->unk00_s16 = 0; + var_r31->unk00 = 0; } } } @@ -1952,7 +1952,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { if (var_r31->unk2C != 0.0f) { - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f); var_r31->unk2C += 8.0f; @@ -1963,7 +1963,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk08.x = 6.0 * cosd(temp_f31); var_r31->unk08.y = -4.0f; var_r31->unk08.z = 6.0 * sind(temp_f31); - var_r31->unk00_s16 = 1; + var_r31->unk00 = 1; } var_r31->unk40.a = var_r31->unk14.y; } diff --git a/src/game/board/last5.c b/src/game/board/last5.c index 9860861c..8b9261c9 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -13,6 +13,8 @@ #include "game/data.h" #include "game/wipe.h" +#include "ext_math.h" + static s16 stopWin = -1; static s16 wheelMdl = -1; s16 lbl_801D3854 = -1; @@ -1330,7 +1332,7 @@ static void UpdateLotteryTicket(omObjData *object) switch(work->state) { case 2: if(work->angle < 540) { - float scale = 0.4f+(0.1f*sin(M_PI*(float)(work->angle%180)/180.0)); + float scale = 0.4f+(0.1f*sind((float)(work->angle%180))); HuSprGrpScaleSet(work->group, scale, scale); work->angle += 9; } else { @@ -1511,7 +1513,7 @@ static void StartHostMove(Vec *from, Vec *to, s16 time) omSetTra(object, from->x, from->y, from->z); omSetRot(object, (to->x-from->x)/duration, 0.0f, (to->z-from->z)/duration); omSetSca(object, to->x, to->y, to->z); - angle = 180.0*(atan2(object->rot.x, object->rot.z)/M_PI); + angle = atan2d(object->rot.x, object->rot.z); work->angle = 0; OSf32tos16(&angle, &work->angle_end); BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, HU3D_MOTATTR_LOOP); diff --git a/src/game/board/main.c b/src/game/board/main.c index e244e4df..1ce8c180 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1,5 +1,5 @@ #include "game/gamework_data.h" -#include "math.h" +#include "ext_math.h" #include "game/object.h" #include "game/flag.h" #include "game/data.h" @@ -23,9 +23,9 @@ #include "game/msm.h" typedef struct camera_view { - s16 x_rot; - s16 zoom; - s16 fov; + s16 x_rot; + s16 zoom; + s16 fov; } CameraView; omObjData *boardMainObj; @@ -54,12 +54,12 @@ static BoardCameraData cameraBackup; static OverlayID nextOvl = OVL_INVALID; static CameraView camViewTbl[] = { - { 0, 0, 25 }, - { -33, 3200, 25 }, - { -33, 2100, 25 }, - { -33, 1800, 25 }, - { -33, 12640, 25 }, - { -33, 3200, 25 }, + { 0, 0, 25 }, + { -33, 3200, 25 }, + { -33, 2100, 25 }, + { -33, 1800, 25 }, + { -33, 12640, 25 }, + { -33, 3200, 25 }, }; @@ -83,1178 +83,1181 @@ static void DestroyBoard(void); void BoardObjectSetup(BoardFunc create, BoardFunc destroy) { - omSysPauseEnable(FALSE); - if(!_CheckFlag(FLAG_ID_MAKE(1, 0))) { - _SetFlag(FLAG_ID_MAKE(1, 0)); - _ClearFlag(FLAG_ID_MAKE(2, 1)); - _ClearFlag(FLAG_ID_MAKE(2, 3)); - _ClearFlag(FLAG_ID_MAKE(2, 0)); - _ClearFlag(FLAG_ID_MAKE(2, 2)); - _ClearFlag(FLAG_ID_MAKE(2, 4)); - _ClearFlag(FLAG_ID_MAKE(2, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - _ClearFlag(FLAG_ID_MAKE(0, 8)); - _ClearFlag(FLAG_ID_MAKE(0, 10)); - BoardMGSetupPlayClear(); - } - - nextOvl = OVL_INVALID; - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - _ClearFlag(FLAG_ID_MAKE(1, 16)); - _ClearFlag(FLAG_ID_MAKE(1, 17)); - _ClearFlag(FLAG_ID_MAKE(1, 18)); - _ClearFlag(FLAG_ID_MAKE(1, 19)); - _ClearFlag(FLAG_ID_MAKE(1, 20)); - _ClearFlag(FLAG_ID_MAKE(1, 21)); - _ClearFlag(FLAG_ID_MAKE(1, 23)); - _ClearFlag(FLAG_ID_MAKE(1, 24)); - _ClearFlag(FLAG_ID_MAKE(1, 25)); - _ClearFlag(FLAG_ID_MAKE(1, 27)); - createFunc = create; - destroyFunc = destroy; - boardTurnFunc = NULL; - boardStarShowNextHook = NULL; - boardBowserHook = NULL; - boardStarGiveHook = NULL; - boardTurnStartFunc = NULL; - boardObjMan = omInitObjMan(64, 8192); - omSystemKeyCheckSetup(boardObjMan); - boardMainObj = omAddObjEx(boardObjMan, 0, 0, 0, -1, InitBoardFunc); - switch(omcurovl) { - case OVL_W01: - GWSystem.board = BOARD_ID_MAIN1; - break; - - case OVL_W02: - GWSystem.board = BOARD_ID_MAIN2; - break; - - case OVL_W03: - GWSystem.board = BOARD_ID_MAIN3; - break; - - case OVL_W04: - GWSystem.board = BOARD_ID_MAIN4; - break; - - case OVL_W05: - GWSystem.board = BOARD_ID_MAIN5; - break; - - case OVL_W06: - GWSystem.board = BOARD_ID_MAIN6; - break; - - case OVL_W10: - GWSystem.board = BOARD_ID_TUTORIAL; - break; - - case OVL_W20: - GWSystem.board = BOARD_ID_EXTRA1; - break; - - case OVL_W21: - GWSystem.board = BOARD_ID_EXTRA2; - break; - } + omSysPauseEnable(FALSE); + if(!_CheckFlag(FLAG_ID_MAKE(1, 0))) { + _SetFlag(FLAG_ID_MAKE(1, 0)); + _ClearFlag(FLAG_ID_MAKE(2, 1)); + _ClearFlag(FLAG_ID_MAKE(2, 3)); + _ClearFlag(FLAG_ID_MAKE(2, 0)); + _ClearFlag(FLAG_ID_MAKE(2, 2)); + _ClearFlag(FLAG_ID_MAKE(2, 4)); + _ClearFlag(FLAG_ID_MAKE(2, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + _ClearFlag(FLAG_ID_MAKE(0, 8)); + _ClearFlag(FLAG_ID_MAKE(0, 10)); + BoardMGSetupPlayClear(); + } + + nextOvl = OVL_INVALID; + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + _ClearFlag(FLAG_ID_MAKE(1, 16)); + _ClearFlag(FLAG_ID_MAKE(1, 17)); + _ClearFlag(FLAG_ID_MAKE(1, 18)); + _ClearFlag(FLAG_ID_MAKE(1, 19)); + _ClearFlag(FLAG_ID_MAKE(1, 20)); + _ClearFlag(FLAG_ID_MAKE(1, 21)); + _ClearFlag(FLAG_ID_MAKE(1, 23)); + _ClearFlag(FLAG_ID_MAKE(1, 24)); + _ClearFlag(FLAG_ID_MAKE(1, 25)); + _ClearFlag(FLAG_ID_MAKE(1, 27)); + createFunc = create; + destroyFunc = destroy; + boardTurnFunc = NULL; + boardStarShowNextHook = NULL; + boardBowserHook = NULL; + boardStarGiveHook = NULL; + boardTurnStartFunc = NULL; + boardObjMan = omInitObjMan(64, 8192); + omSystemKeyCheckSetup(boardObjMan); + boardMainObj = omAddObjEx(boardObjMan, 0, 0, 0, -1, InitBoardFunc); + switch(omcurovl) { + case OVL_W01: + GWSystem.board = BOARD_ID_MAIN1; + break; + + case OVL_W02: + GWSystem.board = BOARD_ID_MAIN2; + break; + + case OVL_W03: + GWSystem.board = BOARD_ID_MAIN3; + break; + + case OVL_W04: + GWSystem.board = BOARD_ID_MAIN4; + break; + + case OVL_W05: + GWSystem.board = BOARD_ID_MAIN5; + break; + + case OVL_W06: + GWSystem.board = BOARD_ID_MAIN6; + break; + + case OVL_W10: + GWSystem.board = BOARD_ID_TUTORIAL; + break; + + case OVL_W20: + GWSystem.board = BOARD_ID_EXTRA1; + break; + + case OVL_W21: + GWSystem.board = BOARD_ID_EXTRA2; + break; + } } static void InitBoardFunc(omObjData *object) { - boardMainProc = HuPrcChildCreate(MainFunc, 8194, 0x6000, 0, boardObjMan); - HuPrcDestructorSet2(boardMainProc, DestroyMainFunc); - object->func = ExecBoardFunc; + boardMainProc = HuPrcChildCreate(MainFunc, 8194, 0x6000, 0, boardObjMan); + HuPrcDestructorSet2(boardMainProc, DestroyMainFunc); + object->func = ExecBoardFunc; } static void ExecBoardFunc(omObjData *object) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 16))) { - return; - } - if(!_CheckFlag(FLAG_ID_MAKE(1, 17))) { - if(omSysExitReq) { - BoardKill(); - } else { - if(BoardPauseReqCheck()) { - BoardPauseStart(); - } else { - return; - } - } - } else { - if(boardMainProc) { - HuPrcKill(boardMainProc); - } - object->func = KillBoardFunc; - } + if(!_CheckFlag(FLAG_ID_MAKE(1, 16))) { + return; + } + if(!_CheckFlag(FLAG_ID_MAKE(1, 17))) { + if(omSysExitReq) { + BoardKill(); + } else { + if(BoardPauseReqCheck()) { + BoardPauseStart(); + } else { + return; + } + } + } else { + if(boardMainProc) { + HuPrcKill(boardMainProc); + } + object->func = KillBoardFunc; + } } static void KillBoardFunc(omObjData *object) { - if(boardMainProc) { - return; - } - if(WipeStatGet()) { - return; - return_alt: - return; - } else { - if(HuARDMACheck()) { - goto return_alt; - } - if(nextOvl != OVL_INVALID) { - omOvlCallEx(nextOvl, 1, 0, 0); - } else { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialKill(); - BoardTutorialWorkRestore(); - } - _ClearFlag(FLAG_ID_MAKE(1, 0)); - HuARDirFree(DATADIR_BOARD); - if(_CheckFlag(FLAG_ID_MAKE(1, 27))) { - omOvlReturnEx(2, 1); - } else { - omOvlReturnEx(1, 1); - } - } - } + if(boardMainProc) { + return; + } + if(WipeStatGet()) { + return; + return_alt: + return; + } else { + if(HuARDMACheck()) { + goto return_alt; + } + if(nextOvl != OVL_INVALID) { + omOvlCallEx(nextOvl, 1, 0, 0); + } else { + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialKill(); + BoardTutorialWorkRestore(); + } + _ClearFlag(FLAG_ID_MAKE(1, 0)); + HuARDirFree(DATADIR_BOARD); + if(_CheckFlag(FLAG_ID_MAKE(1, 27))) { + omOvlReturnEx(2, 1); + } else { + omOvlReturnEx(1, 1); + } + } + } } void BoardKill(void) { - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialHookExec(29, 0); - } - HuAudFXAllStop(); - if(!BoardStartCheck()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - boardTutorialF = 1; - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - _SetFlag(FLAG_ID_MAKE(1, 17)); - HuPrcKill(boardMainProc); - DestroyBoard(); + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialHookExec(29, 0); + } + HuAudFXAllStop(); + if(!BoardStartCheck()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + boardTutorialF = 1; + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + _SetFlag(FLAG_ID_MAKE(1, 17)); + HuPrcKill(boardMainProc); + DestroyBoard(); } s32 BoardIsKill(void) { - return (_CheckFlag(FLAG_ID_MAKE(1, 17))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 17))) ? 1 : 0; } void BoardPauseDisableSet(s32 value) { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - _SetFlag(FLAG_ID_MAKE(1, 25)); - omSysPauseEnable(FALSE); - } else { - if(value) { - _SetFlag(FLAG_ID_MAKE(1, 25)); - } else { - _ClearFlag(FLAG_ID_MAKE(1, 25)); - } - } + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + _SetFlag(FLAG_ID_MAKE(1, 25)); + omSysPauseEnable(FALSE); + } else { + if(value) { + _SetFlag(FLAG_ID_MAKE(1, 25)); + } else { + _ClearFlag(FLAG_ID_MAKE(1, 25)); + } + } } s32 BoardPauseDisableGet() { - return (_CheckFlag(FLAG_ID_MAKE(1, 25))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 25))) ? 1 : 0; } void BoardSaveInit(s32 board) { - s32 i; - GWSystem.board = board; - _ClearFlag(FLAG_ID_MAKE(1, 0)); - _ClearFlag(FLAG_ID_MAKE(1, 1)); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - _ClearFlag(FLAG_ID_MAKE(1, 2)); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - _ClearFlag(FLAG_ID_MAKE(1, 7)); - _ClearFlag(FLAG_ID_MAKE(1, 8)); - _ClearFlag(FLAG_ID_MAKE(0, 8)); - _ClearFlag(FLAG_ID_MAKE(1, 12)); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - GWSystem.turn = 1; - GWSystem.star_flag = 0; - GWSystem.star_pos = 0; - GWSystem.star_total = 1; - GWSystem.last5_effect = 0; - GWSystem.player_curr = -1; - GWSystem.bowser_loss = 0; - GWSystem.bowser_event = 0; - GWSystem.lucky_value = 1; - GWSystem.mg_next = 0; - GWMGTypeSet(0); - GWSystem.unk_38 = 0; - GWSystem.block_pos = 0; - memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data)); - for(i=0; i<4; i++) { - s32 party_flag; - BoardPlayerAutoSizeSet(i, 0); - GWPlayer[i].draw_ticket = 0; - GWPlayer[i].color = 0; - GWPlayer[i].bowser_suit = 0; - GWPlayer[i].jump = 0; - GWPlayer[i].space_shock = 0; - GWPlayer[i].spark = 0; - GWPlayer[i].show_next = 1; - BoardPlayerCoinsSet(i, 0); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - GWSystem.team = 0; - } - GWPlayer[i].blue_count = 0; - GWPlayer[i].red_count = 0; - GWPlayer[i].question_count = 0; - GWPlayer[i].fortune_count = 0; - GWPlayer[i].bowser_count = 0; - GWPlayer[i].battle_count = 0; - GWPlayer[i].mushroom_count = 0; - GWPlayer[i].warp_count = 0; - GWPlayer[i].coins_mg = 0; - GWPlayer[i].coins_total = 0; - GWPlayer[i].coins_max = 0; - GWPlayer[i].stars_max = 0; - GWPlayer[i].coins_battle = 0; - GWPlayer[i].coin_collect = 0; - GWPlayer[i].coin_win = 0; - GWPlayer[i].items[0] = -1; - GWPlayer[i].items[1] = -1; - GWPlayer[i].items[2] = -1; - if(GWPartyGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { - GWStarsSet(i, 0); - } else { - GWStarsSet(i, BoardPlayerHandicapGet(i)); - } - } + s32 i; + GWSystem.board = board; + _ClearFlag(FLAG_ID_MAKE(1, 0)); + _ClearFlag(FLAG_ID_MAKE(1, 1)); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + _ClearFlag(FLAG_ID_MAKE(1, 2)); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + _ClearFlag(FLAG_ID_MAKE(1, 7)); + _ClearFlag(FLAG_ID_MAKE(1, 8)); + _ClearFlag(FLAG_ID_MAKE(0, 8)); + _ClearFlag(FLAG_ID_MAKE(1, 12)); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + GWSystem.turn = 1; + GWSystem.star_flag = 0; + GWSystem.star_pos = 0; + GWSystem.star_total = 1; + GWSystem.last5_effect = 0; + GWSystem.player_curr = -1; + GWSystem.bowser_loss = 0; + GWSystem.bowser_event = 0; + GWSystem.lucky_value = 1; + GWSystem.mg_next = 0; + GWMGTypeSet(0); + GWSystem.unk_38 = 0; + GWSystem.block_pos = 0; + memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data)); + for(i=0; i<4; i++) { + s32 party_flag; + BoardPlayerAutoSizeSet(i, 0); + GWPlayer[i].draw_ticket = 0; + GWPlayer[i].color = 0; + GWPlayer[i].bowser_suit = 0; + GWPlayer[i].jump = 0; + GWPlayer[i].space_shock = 0; + GWPlayer[i].spark = 0; + GWPlayer[i].show_next = 1; + BoardPlayerCoinsSet(i, 0); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + GWSystem.team = 0; + } + GWPlayer[i].blue_count = 0; + GWPlayer[i].red_count = 0; + GWPlayer[i].question_count = 0; + GWPlayer[i].fortune_count = 0; + GWPlayer[i].bowser_count = 0; + GWPlayer[i].battle_count = 0; + GWPlayer[i].mushroom_count = 0; + GWPlayer[i].warp_count = 0; + GWPlayer[i].coins_mg = 0; + GWPlayer[i].coins_total = 0; + GWPlayer[i].coins_max = 0; + GWPlayer[i].stars_max = 0; + GWPlayer[i].coins_battle = 0; + GWPlayer[i].coin_collect = 0; + GWPlayer[i].coin_win = 0; + GWPlayer[i].items[0] = -1; + GWPlayer[i].items[1] = -1; + GWPlayer[i].items[2] = -1; + if(GWPartyGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { + GWStarsSet(i, 0); + } else { + GWStarsSet(i, BoardPlayerHandicapGet(i)); + } + } } void BoardStoryConfigSet(s32 mg_list, s32 diff_story) { - GWSystem.party = 0; - GWSystem.team = 0; - GWSystem.diff_story = diff_story; - GWSystem.bonus_star = 0; - GWMGListSet(mg_list); - GWPlayer[0].handicap = 0; - GWPlayer[1].handicap = 0; - GWPlayer[2].handicap = 0; - GWPlayer[3].handicap = 0; - GWSystem.max_turn = 15; - memset(GWPlayer, 0, 4*sizeof(PlayerState)); - _ClearFlag(FLAG_ID_MAKE(0, 2)); - _ClearFlag(FLAG_ID_MAKE(0, 3)); - _ClearFlag(FLAG_ID_MAKE(0, 4)); - _ClearFlag(FLAG_ID_MAKE(0, 5)); - _ClearFlag(FLAG_ID_MAKE(0, 6)); - _ClearFlag(FLAG_ID_MAKE(0, 7)); - _ClearFlag(FLAG_ID_MAKE(1, 11)); - _SetFlag(FLAG_ID_MAKE(0, 11)); - _SetFlag(FLAG_ID_MAKE(1, 10)); + GWSystem.party = 0; + GWSystem.team = 0; + GWSystem.diff_story = diff_story; + GWSystem.bonus_star = 0; + GWMGListSet(mg_list); + GWPlayer[0].handicap = 0; + GWPlayer[1].handicap = 0; + GWPlayer[2].handicap = 0; + GWPlayer[3].handicap = 0; + GWSystem.max_turn = 15; + memset(GWPlayer, 0, 4*sizeof(PlayerState)); + _ClearFlag(FLAG_ID_MAKE(0, 2)); + _ClearFlag(FLAG_ID_MAKE(0, 3)); + _ClearFlag(FLAG_ID_MAKE(0, 4)); + _ClearFlag(FLAG_ID_MAKE(0, 5)); + _ClearFlag(FLAG_ID_MAKE(0, 6)); + _ClearFlag(FLAG_ID_MAKE(0, 7)); + _ClearFlag(FLAG_ID_MAKE(1, 11)); + _SetFlag(FLAG_ID_MAKE(0, 11)); + _SetFlag(FLAG_ID_MAKE(1, 10)); } void BoardPartyConfigSet(s32 team, s32 bonus_star, s32 mg_list, s32 max_turn, s32 p1_handicap, s32 p2_handicap, s32 p3_handicap, s32 p4_handicap) { - GWSystem.party = 1; - GWSystem.team = team; - GWSystem.diff_story = 0; - GWSystem.bonus_star = bonus_star; - GWMGListSet(mg_list); - GWSystem.max_turn = max_turn; - memset(GWPlayer, 0, 4*sizeof(PlayerState)); - GWPlayer[0].handicap = p1_handicap; - GWPlayer[1].handicap = p2_handicap; - GWPlayer[2].handicap = p3_handicap; - GWPlayer[3].handicap = p4_handicap; - _ClearFlag(FLAG_ID_MAKE(1, 11)); - _SetFlag(FLAG_ID_MAKE(0, 11)); - _SetFlag(FLAG_ID_MAKE(1, 10)); + GWSystem.party = 1; + GWSystem.team = team; + GWSystem.diff_story = 0; + GWSystem.bonus_star = bonus_star; + GWMGListSet(mg_list); + GWSystem.max_turn = max_turn; + memset(GWPlayer, 0, 4*sizeof(PlayerState)); + GWPlayer[0].handicap = p1_handicap; + GWPlayer[1].handicap = p2_handicap; + GWPlayer[2].handicap = p3_handicap; + GWPlayer[3].handicap = p4_handicap; + _ClearFlag(FLAG_ID_MAKE(1, 11)); + _SetFlag(FLAG_ID_MAKE(0, 11)); + _SetFlag(FLAG_ID_MAKE(1, 10)); } static void DestroyMainFunc(void) { - boardMainProc = NULL; + boardMainProc = NULL; } #define CHECK_LAST5_TURN() ((s32)(GWSystem.max_turn-GWSystem.turn) < 5) static void MainFunc(void) { - s32 i; - s32 fade_enable, turn_cont, fade_type; - fade_enable = 0; - turn_cont = 0; - BoardPauseDisableSet(1); - if(_CheckFlag(FLAG_ID_MAKE(0, 10))) { - _ClearFlag(FLAG_ID_MAKE(0, 10)); - _SetFlag(FLAG_ID_MAKE(1, 16)); - BoardKill(); - HuPrcSleep(-1); - } - _ClearFlag(FLAG_ID_MAKE(0, 10)); - BoardTutorialInit(); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialWorkSave(); - BoardTutorialPlayerInit(); - GWSystem.mess_speed = 1; - GWSystem.mess_delay = 32; - } - CreateBoard(); - if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) { - GWSystem.player_curr = -1; - BoardStartExec(); - GWSystem.player_curr = 0; - fade_enable = 1; - _SetFlag(FLAG_ID_MAKE(1, 1)); - } else { - fade_enable = 0; - } - if(ExecTurnStart()) { - turn_cont = 1; - } - if(CHECK_LAST5_TURN() && GWSystem.player_curr == 0 && !turn_cont) { - if(!_CheckFlag(FLAG_ID_MAKE(0, 8))) { - BoardLast5Exec(); - _SetFlag(FLAG_ID_MAKE(0, 8)); - } else { - BoardLast5GfxInit(); - } - } - if(!turn_cont) { - fade_type = 1; - } else { - fade_type = 0; - } - _ClearFlag(FLAG_ID_MAKE(1, 28)); - do { - BoardStatusShowSetAll(1); - if(GWBoardGet() == BOARD_ID_MAIN6 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { - GWSystem.player_curr = -1; - boardTurnFunc(); - GWSystem.player_curr = 0; - } - BoardMusStartBoard(); - for(i=GWSystem.player_curr; i<4; i++) { - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - if(CHECK_LAST5_TURN() && i == 0 && !turn_cont) { - BoardLast5GfxInit(); - _SetFlag(FLAG_ID_MAKE(0, 8)); - } - } - if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { - BoardPlayerTurnExec(i); - } else { - if(!turn_cont) { - BoardCameraMoveSet(0); - GWSystem.player_curr = i; - BoardCameraTargetPlayerSet(i); - BoardCameraMotionWait(); - { - Vec pos; - BoardSpacePosGet(0, GWPlayer[i].space_curr, &pos); - BoardPlayerPosSetV(i, &pos); - } - while(WipeStatGet()) { - HuPrcVSleep(); - } - if(!fade_enable) { - if(!fade_type) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } else { - fade_type = 0; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - } else { - fade_enable = 0; - } - BoardPlayerTurnExec(i); - } - } - turn_cont = 0; - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialHookExec(9, 0); - } - if(i != 3 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); - fade_type = 0; - } else { - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - if(GWSystem.turn != GWSystem.max_turn) { - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); - fade_type = 0; - } - } else { - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - } - BoardPlayerPostTurnHookExec(i); - } - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - GWSystem.player_curr = 0; - if(BoardTurnNext()) { - BoardAudSeqFadeOut(0, 500); - BoardKill(); - HuPrcEnd(); - HuPrcSleep(-1); - } - } else { - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - BoardPauseDisableSet(1); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - if(_CheckFlag(FLAG_ID_MAKE(2, 0)) || _CheckFlag(FLAG_ID_MAKE(1, 11)) ) { - for(i=0; i<4; i++) { - GWPlayer[i].color = 0; - } - GWSystem.player_curr = (GWSystem.player_curr+1)&3; - } else { - BoardMGSetupExec(); - HuPrcSleep(-1); - } - } - } while(1); + s32 i; + s32 fade_enable, turn_cont, fade_type; + fade_enable = 0; + turn_cont = 0; + BoardPauseDisableSet(1); + if(_CheckFlag(FLAG_ID_MAKE(0, 10))) { + _ClearFlag(FLAG_ID_MAKE(0, 10)); + _SetFlag(FLAG_ID_MAKE(1, 16)); + BoardKill(); + HuPrcSleep(-1); + } + _ClearFlag(FLAG_ID_MAKE(0, 10)); + BoardTutorialInit(); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialWorkSave(); + BoardTutorialPlayerInit(); + #if VERSION_PAL + GWMessSpeedSet(3); + #else + GWMessSpeedSet(1); + #endif + } + CreateBoard(); + if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) { + GWSystem.player_curr = -1; + BoardStartExec(); + GWSystem.player_curr = 0; + fade_enable = 1; + _SetFlag(FLAG_ID_MAKE(1, 1)); + } else { + fade_enable = 0; + } + if(ExecTurnStart()) { + turn_cont = 1; + } + if(CHECK_LAST5_TURN() && GWSystem.player_curr == 0 && !turn_cont) { + if(!_CheckFlag(FLAG_ID_MAKE(0, 8))) { + BoardLast5Exec(); + _SetFlag(FLAG_ID_MAKE(0, 8)); + } else { + BoardLast5GfxInit(); + } + } + if(!turn_cont) { + fade_type = 1; + } else { + fade_type = 0; + } + _ClearFlag(FLAG_ID_MAKE(1, 28)); + do { + BoardStatusShowSetAll(1); + if(GWBoardGet() == BOARD_ID_MAIN6 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { + GWSystem.player_curr = -1; + boardTurnFunc(); + GWSystem.player_curr = 0; + } + BoardMusStartBoard(); + for(i=GWSystem.player_curr; i<4; i++) { + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + if(CHECK_LAST5_TURN() && i == 0 && !turn_cont) { + BoardLast5GfxInit(); + _SetFlag(FLAG_ID_MAKE(0, 8)); + } + } + if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { + BoardPlayerTurnExec(i); + } else { + if(!turn_cont) { + BoardCameraMoveSet(0); + GWSystem.player_curr = i; + BoardCameraTargetPlayerSet(i); + BoardCameraMotionWait(); + { + Vec pos; + BoardSpacePosGet(0, GWPlayer[i].space_curr, &pos); + BoardPlayerPosSetV(i, &pos); + } + while(WipeStatGet()) { + HuPrcVSleep(); + } + if(!fade_enable) { + if(!fade_type) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } else { + fade_type = 0; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + } else { + fade_enable = 0; + } + BoardPlayerTurnExec(i); + } + } + turn_cont = 0; + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialHookExec(9, 0); + } + if(i != 3 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); + fade_type = 0; + } else { + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + if(GWSystem.turn != GWSystem.max_turn) { + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); + fade_type = 0; + } + } else { + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + } + BoardPlayerPostTurnHookExec(i); + } + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + GWSystem.player_curr = 0; + if(BoardTurnNext()) { + BoardAudSeqFadeOut(0, 500); + BoardKill(); + HuPrcEnd(); + HuPrcSleep(-1); + } + } else { + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + BoardPauseDisableSet(1); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + if(_CheckFlag(FLAG_ID_MAKE(2, 0)) || _CheckFlag(FLAG_ID_MAKE(1, 11)) ) { + for(i=0; i<4; i++) { + GWPlayer[i].color = 0; + } + GWSystem.player_curr = (GWSystem.player_curr+1)&3; + } else { + BoardMGSetupExec(); + HuPrcSleep(-1); + } + } + } while(1); } s32 BoardTurnNext(void) { - s32 i; - for(i=0; i<4; i++) { - GWPlayer[i].color = 0; - } - GWSystem.turn++; - if(GWSystem.turn > GWSystem.max_turn) { - return 1; - } else { - return 0; - } + s32 i; + for(i=0; i<4; i++) { + GWPlayer[i].color = 0; + } + GWSystem.turn++; + if(GWSystem.turn > GWSystem.max_turn) { + return 1; + } else { + return 0; + } } static s32 ExecTurnStart(void) { - s32 player; - s32 space; - if(!BoardStartCheck()) { - return 0; - } - player = GWSystem.player_curr; - space = GWPlayer[player].space_curr; - if(_CheckFlag(FLAG_ID_MAKE(1, 5))) { - BoardFortuneExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 4))) { - BoardMusStartBoard(); - BoardBattleExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 3))) { - BoardBowserExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 2))) { - s32 turn_end = 0; - BoardCameraMoveSet(0); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - turn_end = BoardTurnNext(); - if(turn_end) { - BoardKill(); - HuPrcEnd(); - } - _ClearFlag(FLAG_ID_MAKE(1, 2)); - return 0; - } else if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { - boardTurnStartFunc(player, space); - return 1; - } - BoardPlayerZoomRestore(player); - return 1; + s32 player; + s32 space; + if(!BoardStartCheck()) { + return 0; + } + player = GWSystem.player_curr; + space = GWPlayer[player].space_curr; + if(_CheckFlag(FLAG_ID_MAKE(1, 5))) { + BoardFortuneExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 4))) { + BoardMusStartBoard(); + BoardBattleExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 3))) { + BoardBowserExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 2))) { + s32 turn_end = 0; + BoardCameraMoveSet(0); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + turn_end = BoardTurnNext(); + if(turn_end) { + BoardKill(); + HuPrcEnd(); + } + _ClearFlag(FLAG_ID_MAKE(1, 2)); + return 0; + } else if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { + boardTurnStartFunc(player, space); + return 1; + } + BoardPlayerZoomRestore(player); + return 1; } void BoardNextOvlSet(OverlayID overlay) { - nextOvl = overlay; - BoardAudSeqFadeOut(0, 1000); - BoardKill(); + nextOvl = overlay; + BoardAudSeqFadeOut(0, 1000); + BoardKill(); } s32 BoardStartCheck(void) { - if(_CheckFlag(FLAG_ID_MAKE(1, 2)) || _CheckFlag(FLAG_ID_MAKE(1, 3)) || _CheckFlag(FLAG_ID_MAKE(1, 4)) || _CheckFlag(FLAG_ID_MAKE(1, 5)) || _CheckFlag(FLAG_ID_MAKE(1, 6))) { - return 1; - } else { - return 0; - } + if(_CheckFlag(FLAG_ID_MAKE(1, 2)) || _CheckFlag(FLAG_ID_MAKE(1, 3)) || _CheckFlag(FLAG_ID_MAKE(1, 4)) || _CheckFlag(FLAG_ID_MAKE(1, 5)) || _CheckFlag(FLAG_ID_MAKE(1, 6))) { + return 1; + } else { + return 0; + } } static void CreateBoard(void) { - s32 guest_status; - - GWSystem.mg_next = -1; - if(!GWGameStat.field10E_bit5 && GWMGListGet() == 2) { - GWMGListSet(0); - } - GWMessSpeedSet(GWMessSpeedGet()); - if(GWMGExplainGet()) { - _SetFlag(FLAG_ID_MAKE(0, 11)); - } else { - _ClearFlag(FLAG_ID_MAKE(0, 11)); - } - if(!BoardStartCheck()) { - _ClearFlag(FLAG_ID_MAKE(1, 2)); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - } - _ClearFlag(FLAG_ID_MAKE(1, 8)); - if(!BoardStartCheck()) { - GWSystem.lucky_value = 1; - } - guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); - if(guest_status != -1) { - BoardDataAsyncWait(guest_status); - } - BoardAudSeqClear(); - BoardModelInit(); - BoardRandInit(); - BoardWinInit(); - BoardPlayerModelInit(); - createFunc(); - BoardLightSetExec(); - BoardLotteryInit(); - BoardShopInit(); - BoardBooHouseCreate(); - BoardCameraInit(); - BoardStatusCreate(); - CharModelDataClose(-1); - BoardPlayerInit(); - if(GWSystem.last5_effect == 2) { - BoardSpaceTypeForce(2, 3); - } - if(GWSystem.last5_effect == 3) { - BoardSpaceTypeForce(2, 7); - } - BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(0); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - BoardTauntInit(); - _SetFlag(FLAG_ID_MAKE(1, 14)); - HuDataDirClose(DATADIR_BKOOPASUIT); - HuDataDirClose(DATADIR_BBATTLE); - HuDataDirClose(DATADIR_BKOOPA); - HuDataDirClose(DATADIR_BKUJIYA); - HuDataDirClose(DATADIR_BYOKODORI); - HuDataDirClose(DATADIR_BPAUSE); - HuDataDirClose(DATADIR_BLAST5); - HuDataDirClose(DATADIR_EFFECT); - _SetFlag(FLAG_ID_MAKE(1, 16)); + s32 guest_status; + + GWSystem.mg_next = -1; + if(!GWGameStat.customPackEnable && GWMGListGet() == 2) { + GWMGListSet(0); + } + GWMessSpeedSet(GWMessSpeedGet()); + if(GWMGExplainGet()) { + _SetFlag(FLAG_ID_MAKE(0, 11)); + } else { + _ClearFlag(FLAG_ID_MAKE(0, 11)); + } + if(!BoardStartCheck()) { + _ClearFlag(FLAG_ID_MAKE(1, 2)); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + } + _ClearFlag(FLAG_ID_MAKE(1, 8)); + if(!BoardStartCheck()) { + GWSystem.lucky_value = 1; + } + guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); + if(guest_status != -1) { + BoardDataAsyncWait(guest_status); + } + BoardAudSeqClear(); + BoardModelInit(); + BoardRandInit(); + BoardWinInit(); + BoardPlayerModelInit(); + createFunc(); + BoardLightSetExec(); + BoardLotteryInit(); + BoardShopInit(); + BoardBooHouseCreate(); + BoardCameraInit(); + BoardStatusCreate(); + CharModelDataClose(-1); + BoardPlayerInit(); + if(GWSystem.last5_effect == 2) { + BoardSpaceTypeForce(2, 3); + } + if(GWSystem.last5_effect == 3) { + BoardSpaceTypeForce(2, 7); + } + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(0); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + BoardTauntInit(); + _SetFlag(FLAG_ID_MAKE(1, 14)); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BBATTLE); + HuDataDirClose(DATADIR_BKOOPA); + HuDataDirClose(DATADIR_BKUJIYA); + HuDataDirClose(DATADIR_BYOKODORI); + HuDataDirClose(DATADIR_BPAUSE); + HuDataDirClose(DATADIR_BLAST5); + HuDataDirClose(DATADIR_EFFECT); + _SetFlag(FLAG_ID_MAKE(1, 16)); } static void DestroyBoard(void) { - s32 dir_table[] = { - DATADIR_W01, - DATADIR_W02, - DATADIR_W03, - DATADIR_W04, - DATADIR_W05, - DATADIR_W06, - DATADIR_W10, - DATADIR_W20, - DATADIR_W21 - }; - BoardTauntKill(); - BoardAudSeqFadeOutAll(); - HuAudAllStop(); - BoardRollKill(); - BoardStatusKill(); - BoardBooHouseKill(); - BoardShopKill(); - BoardLotteryKill(); - BoardSpaceDestroy(); - BoardPlayerModelKill(); - if(destroyFunc) { - destroyFunc(); - } - BoardModelKillAll(); - BoardWinKillAll(); - HuDataDirClose(dir_table[GWBoardGet()]); - HuDataDirClose(DATADIR_EFFECT); - HuDataDirClose(DATADIR_BGUEST); - HuDataDirClose(DATADIR_BKOOPASUIT); - HuDataDirClose(DATADIR_BBATTLE); - HuDataDirClose(DATADIR_BKOOPA); - HuDataDirClose(DATADIR_BKUJIYA); - HuDataDirClose(DATADIR_BYOKODORI); - HuDataDirClose(DATADIR_BOARD); - createFunc = destroyFunc = NULL; + s32 dir_table[] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_W20, + DATADIR_W21 + }; + BoardTauntKill(); + BoardAudSeqFadeOutAll(); + HuAudAllStop(); + BoardRollKill(); + BoardStatusKill(); + BoardBooHouseKill(); + BoardShopKill(); + BoardLotteryKill(); + BoardSpaceDestroy(); + BoardPlayerModelKill(); + if(destroyFunc) { + destroyFunc(); + } + BoardModelKillAll(); + BoardWinKillAll(); + HuDataDirClose(dir_table[GWBoardGet()]); + HuDataDirClose(DATADIR_EFFECT); + HuDataDirClose(DATADIR_BGUEST); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BBATTLE); + HuDataDirClose(DATADIR_BKOOPA); + HuDataDirClose(DATADIR_BKUJIYA); + HuDataDirClose(DATADIR_BYOKODORI); + HuDataDirClose(DATADIR_BOARD); + createFunc = destroyFunc = NULL; } void BoardLightHookSet(BoardLightHook set, BoardLightHook reset) { - boardLightSetHook = set; - boardLightResetHook = reset; + boardLightSetHook = set; + boardLightResetHook = reset; } void BoardLightSetExec(void) { - Hu3DBGColorSet(0, 0, 0); - if(boardLightSetHook) { - boardLightSetHook(); - } + Hu3DBGColorSet(0, 0, 0); + if(boardLightSetHook) { + boardLightSetHook(); + } } void BoardLightResetExec(void) { - if(boardLightResetHook) { - boardLightResetHook(); - } - Hu3DBGColorSet(0, 0, 0); - Hu3DFogClear(); - Hu3DReflectNoSet(0); + if(boardLightResetHook) { + boardLightResetHook(); + } + Hu3DBGColorSet(0, 0, 0); + Hu3DFogClear(); + Hu3DReflectNoSet(0); } //Fixes order of boardCamera and cameraBackup static BoardCameraData *BoardCameraGet(void) { - return &boardCamera; + return &boardCamera; } void BoardCameraBackup(void) { - cameraUseBackup = TRUE; - memcpy(&cameraBackup, &boardCamera, sizeof(BoardCameraData)); + cameraUseBackup = TRUE; + memcpy(&cameraBackup, &boardCamera, sizeof(BoardCameraData)); } void BoardCameraRestore(void) { - if(cameraUseBackup) { - memcpy(&boardCamera, &cameraBackup, sizeof(BoardCameraData)); - cameraUseBackup = FALSE; - } + if(cameraUseBackup) { + memcpy(&boardCamera, &cameraBackup, sizeof(BoardCameraData)); + cameraUseBackup = FALSE; + } } void BoardCameraScissorSet(s32 x, s32 y, s32 w, s32 h) { - BoardCameraData *camera = &boardCamera; - Hu3DCameraScissorSet(camera->mask, x, y, w, h); + BoardCameraData *camera = &boardCamera; + Hu3DCameraScissorSet(camera->mask, x, y, w, h); } void BoardCameraViewSet(s32 type) { - BoardCameraData *camera = &boardCamera; - BoardFocusData *focus; - float size; - if(!cameraObj) { - return; - } - focus = &camera->focus; - if(type == 0) { - focus->view_type = 0; - return; - } - OSs16tof32(&camViewTbl[type].fov, &focus->fov_end); - focus->fov_start = camera->fov; - OSs16tof32(&camViewTbl[type].zoom, &focus->zoom_end); - focus->zoom_start = camera->zoom; - OSs16tof32(&camViewTbl[type].x_rot, &focus->rot_end.x); - focus->rot_end.y = 0; - focus->rot_end.z = 0; - focus->rot_start = camera->rot; - focus->target_start = camera->target; - if(BoardPlayerSizeGet(GWSystem.player_curr) == 2 || GWPlayer[GWSystem.player_curr].bowser_suit) { - focus->zoom_end += 400.0f; - size = 2.5f; - } else { - size = 1.0f; - } - BoardCameraTargetModelSet(BoardPlayerModelGet(GWSystem.player_curr)); - BoardPlayerPosGet(GWSystem.player_curr, &focus->target_end); - BoardCameraOffsetSet(0.0f, 100.0f*size, 0.0f); - focus->target_end.y += 100.0f*size; - _SetFlag(FLAG_ID_MAKE(1, 21)); - focus->view_type = type; - focus->time = 0; - if(camera->moving) { - focus->max_time = 21; - } else { - focus->max_time = 1; - } + BoardCameraData *camera = &boardCamera; + BoardFocusData *focus; + float size; + if(!cameraObj) { + return; + } + focus = &camera->focus; + if(type == 0) { + focus->view_type = 0; + return; + } + OSs16tof32(&camViewTbl[type].fov, &focus->fov_end); + focus->fov_start = camera->fov; + OSs16tof32(&camViewTbl[type].zoom, &focus->zoom_end); + focus->zoom_start = camera->zoom; + OSs16tof32(&camViewTbl[type].x_rot, &focus->rot_end.x); + focus->rot_end.y = 0; + focus->rot_end.z = 0; + focus->rot_start = camera->rot; + focus->target_start = camera->target; + if(BoardPlayerSizeGet(GWSystem.player_curr) == 2 || GWPlayer[GWSystem.player_curr].bowser_suit) { + focus->zoom_end += 400.0f; + size = 2.5f; + } else { + size = 1.0f; + } + BoardCameraTargetModelSet(BoardPlayerModelGet(GWSystem.player_curr)); + BoardPlayerPosGet(GWSystem.player_curr, &focus->target_end); + BoardCameraOffsetSet(0.0f, 100.0f*size, 0.0f); + focus->target_end.y += 100.0f*size; + _SetFlag(FLAG_ID_MAKE(1, 21)); + focus->view_type = type; + focus->time = 0; + if(camera->moving) { + focus->max_time = 21; + } else { + focus->max_time = 1; + } } s32 BoardCameraPosGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->pos; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->pos; + return 0; } s32 BoardCameraTargetGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->target; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->target; + return 0; } s32 BoardCameraRotGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->rot; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->rot; + return 0; } float BoardCameraZoomGet() { - BoardCameraData *camera; - camera = &boardCamera; - return camera->zoom; + BoardCameraData *camera; + camera = &boardCamera; + return camera->zoom; } s32 BoardCameraDirGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - if(!camera) { - return -1; - } - VECSubtract(&camera->target, &camera->pos, dst); - if(dst->x != 0 || dst->y != 0 || dst->z != 0) { - VECNormalize(dst, dst); - } - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + if(!camera) { + return -1; + } + VECSubtract(&camera->target, &camera->pos, dst); + if(dst->x != 0 || dst->y != 0 || dst->z != 0) { + VECNormalize(dst, dst); + } + return 0; } s32 BoardCameraPointDirGet(Vec *point, Vec *dst) { - BoardCameraData *camera; - if(!dst || !point) { - return -1; - } - camera = &boardCamera; - if(!camera) { - return -1; - } - VECSubtract(point, &camera->pos, dst); - if(dst->x != 0 || dst->y != 0 || dst->z != 0) { - VECNormalize(dst, dst); - } - return 0; + BoardCameraData *camera; + if(!dst || !point) { + return -1; + } + camera = &boardCamera; + if(!camera) { + return -1; + } + VECSubtract(point, &camera->pos, dst); + if(dst->x != 0 || dst->y != 0 || dst->z != 0) { + VECNormalize(dst, dst); + } + return 0; } void BoardCameraMaskSet(u16 mask) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->mask = mask; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->mask = mask; } void BoardCameraMoveSet(s32 move) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - if(!move) { - camera->moving = 0; - } else { - camera->moving = 1; - } + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + if(!move) { + camera->moving = 0; + } else { + camera->moving = 1; + } } void BoardCameraOffsetSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->offset.x = x; - camera->offset.y = y; - camera->offset.z = z; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->offset.x = x; + camera->offset.y = y; + camera->offset.z = z; } void BoardCameraTargetPlayerSet(s32 player) { - PlayerState *player_ptr = BoardPlayerGet(player); - if(!player_ptr) { - BoardCameraTargetModelSet(-1); - return; - } - BoardCameraTargetModelSet(BoardPlayerModelGet(player)); - BoardCameraOffsetSet(0, 100, 0); + PlayerState *player_ptr = BoardPlayerGet(player); + if(!player_ptr) { + BoardCameraTargetModelSet(-1); + return; + } + BoardCameraTargetModelSet(BoardPlayerModelGet(player)); + BoardCameraOffsetSet(0, 100, 0); } void BoardCameraTargetModelSet(s16 model) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->target_mdl = model; - camera->target_space = -1; - camera->offset.x = camera->offset.y = camera->offset.z = 0; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->target_mdl = model; + camera->target_space = -1; + camera->offset.x = camera->offset.y = camera->offset.z = 0; } void BoardCameraTargetSpaceSet(s32 space) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->target_mdl = -1; - camera->target_space = space; - camera->offset.x = camera->offset.y = camera->offset.z = 0; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->target_mdl = -1; + camera->target_space = space; + camera->offset.x = camera->offset.y = camera->offset.z = 0; } void BoardCameraPosCalcFuncSet(BoardCameraPosCalcFunc func) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->pos_calc = func; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->pos_calc = func; } void BoardCameraQuakeSet(s32 duration, float strength) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->quaking = 1; - camera->quake_strength = strength; - camera->quake_timer = duration; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->quaking = 1; + camera->quake_strength = strength; + camera->quake_timer = duration; } void BoardCameraQuakeReset() { - BoardCameraData *camera = &boardCamera; - camera->quaking = 0; - camera->quake_strength = 0; - camera->quake_timer = 0; + BoardCameraData *camera = &boardCamera; + camera->quaking = 0; + camera->quake_strength = 0; + camera->quake_timer = 0; } void BoardCameraTargetSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - camera->target.x = x; - camera->target.y = y; - camera->target.z = z; + BoardCameraData *camera = &boardCamera; + camera->target.x = x; + camera->target.y = y; + camera->target.z = z; } void BoardCameraPosSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - camera->pos.x = x; - camera->pos.y = y; - camera->pos.z = z; + BoardCameraData *camera = &boardCamera; + camera->pos.x = x; + camera->pos.y = y; + camera->pos.z = z; } void BoardCameraXRotZoomSet(float zoom, float x_rot) { - BoardCameraData *camera = &boardCamera; - camera->zoom = zoom; - camera->rot.x = x_rot; + BoardCameraData *camera = &boardCamera; + camera->zoom = zoom; + camera->rot.x = x_rot; } void BoardCameraZoomSet(float zoom) { - BoardCameraData *camera = &boardCamera; - camera->zoom = zoom; + BoardCameraData *camera = &boardCamera; + camera->zoom = zoom; } void BoardCameraRotSet(float x, float y) { - BoardCameraData *camera = &boardCamera; - camera->rot.x = x; - camera->rot.y = y; + BoardCameraData *camera = &boardCamera; + camera->rot.x = x; + camera->rot.y = y; } void BoardCameraNearFarSet(float near, float far) { - BoardCameraData *camera = &boardCamera; - camera->near = near; - camera->far = far; + BoardCameraData *camera = &boardCamera; + camera->near = near; + camera->far = far; } void BoardCameraNearFarGet(float *near, float *far) { - BoardCameraData *camera = &boardCamera; - if(near) { - *near = camera->near; - } - if(far) { - *far = camera->far; - } + BoardCameraData *camera = &boardCamera; + if(near) { + *near = camera->near; + } + if(far) { + *far = camera->far; + } } void BoardCameraMotionStart(s16 model_target, Vec *rot_target, float zoom_target, float fov_target) { - BoardCameraMotionStartEx(model_target, rot_target, NULL, zoom_target, fov_target, 21); + BoardCameraMotionStartEx(model_target, rot_target, NULL, zoom_target, fov_target, 21); } void BoardCameraMotionStartEx(s16 model_target, Vec *rot_target, Vec *offset_end, float zoom_target, float fov_target, s16 max_time) { - BoardCameraData *camera = &boardCamera; - BoardFocusData *focus; - if(!cameraObj) { - return; - } - focus = &camera->focus; - focus->fov_start = camera->fov; - focus->zoom_start = camera->zoom; - focus->rot_start = camera->rot; - focus->target_start = camera->target; - if(fov_target == -1) { - focus->fov_end = focus->fov_start; - } else { - focus->fov_end = fov_target; - } - if(zoom_target == -1) { - focus->zoom_end = focus->zoom_start; - } else { - focus->zoom_end = zoom_target; - } - if(!rot_target) { - focus->rot_end = focus->rot_start; - } else { - focus->rot_end = *rot_target; - } - if(model_target == -1) { - focus->target_end = focus->target_start; - } else { - BoardCameraTargetModelSet(model_target); - BoardModelPosGet(model_target, &focus->target_end); - } - if(offset_end) { - BoardCameraOffsetSet(offset_end->x, offset_end->y, offset_end->z); - VECAdd(offset_end, &focus->target_end, &focus->target_end); - } - _SetFlag(FLAG_ID_MAKE(1, 21)); - focus->view_type = 5; - focus->time = 0; - if(max_time < 0) { - max_time = 1; - } - focus->max_time = max_time; + BoardCameraData *camera = &boardCamera; + BoardFocusData *focus; + if(!cameraObj) { + return; + } + focus = &camera->focus; + focus->fov_start = camera->fov; + focus->zoom_start = camera->zoom; + focus->rot_start = camera->rot; + focus->target_start = camera->target; + if(fov_target == -1) { + focus->fov_end = focus->fov_start; + } else { + focus->fov_end = fov_target; + } + if(zoom_target == -1) { + focus->zoom_end = focus->zoom_start; + } else { + focus->zoom_end = zoom_target; + } + if(!rot_target) { + focus->rot_end = focus->rot_start; + } else { + focus->rot_end = *rot_target; + } + if(model_target == -1) { + focus->target_end = focus->target_start; + } else { + BoardCameraTargetModelSet(model_target); + BoardModelPosGet(model_target, &focus->target_end); + } + if(offset_end) { + BoardCameraOffsetSet(offset_end->x, offset_end->y, offset_end->z); + VECAdd(offset_end, &focus->target_end, &focus->target_end); + } + _SetFlag(FLAG_ID_MAKE(1, 21)); + focus->view_type = 5; + focus->time = 0; + if(max_time < 0) { + max_time = 1; + } + focus->max_time = max_time; } void BoardCameraFovSet(float fov) { - BoardCameraData *camera = &boardCamera; - camera->fov = fov; + BoardCameraData *camera = &boardCamera; + camera->fov = fov; } s32 BoardCameraCullCheck(Vec *point, float radius) { - Vec dir; - Vec pos; - float dist; - float dot; - BoardCameraData *camera = &boardCamera; - if(!camera->hide_all) { - return 0; - } - BoardCameraDirGet(&dir); - VECSubtract(point, &camera->pos, &pos); - dist = sqrtf((pos.x*pos.x)+(pos.y*pos.y)+(pos.z*pos.z)); - if(25000 < dist-(radius*2.0f)) { - return 0; - } - BoardCameraPointDirGet(point, &pos); - dot = VECDotProduct(&dir, &pos); - if(BOARD_FABS(dot) < cos((camera->fov*M_PI)/180)) { - return 0; - } else { - return 1; - } + Vec dir; + Vec pos; + float dist; + float dot; + BoardCameraData *camera = &boardCamera; + if(!camera->hide_all) { + return 0; + } + BoardCameraDirGet(&dir); + VECSubtract(point, &camera->pos, &pos); + dist = sqrtf((pos.x*pos.x)+(pos.y*pos.y)+(pos.z*pos.z)); + if(25000 < dist-(radius*2.0f)) { + return 0; + } + BoardCameraPointDirGet(point, &pos); + dot = VECDotProduct(&dir, &pos); + if(BOARD_FABS(dot) < cosd(camera->fov)) { + return 0; + } else { + return 1; + } } s32 BoardCameraMotionIsDone(void) { - return (_CheckFlag(FLAG_ID_MAKE(1, 21))) ? 0 : 1; + return (_CheckFlag(FLAG_ID_MAKE(1, 21))) ? 0 : 1; } void BoardCameraMotionWait(void) { - while(!BoardCameraMotionIsDone()) { - HuPrcVSleep(); - } - HuPrcVSleep(); + while(!BoardCameraMotionIsDone()) { + HuPrcVSleep(); + } + HuPrcVSleep(); } void BoardCameraInit(void) { - BoardCameraData *camera; - cameraUseBackup = FALSE; - memset(&cameraBackup, 0, sizeof(BoardCameraData)); - memset(&boardCamera, 0, sizeof(BoardCameraData)); - camera = &boardCamera; - camera->fov = 25; - camera->near = 100; - camera->far = 13000; - camera->aspect = HU_DISP_ASPECT; - camera->viewport_x = 0; - camera->viewport_y = 0; - camera->viewport_h = 480; - camera->viewport_w = 640; - camera->viewport_near = 0; - camera->viewport_far = 1; - camera->up.y = 1; - camera->moving = 0; - camera->quaking = 0; - camera->quake_timer = 0; - camera->pos.x = 0; - camera->pos.y = 5000; - camera->pos.z = 5000; - camera->offset.x = 0; - camera->offset.y = 0; - camera->offset.z = 0; - camera->pos_calc = NULL; - BoardSpaceFlagPosGet(0, 0x80000000, &camera->target); - camera->rot.x = camViewTbl[1].x_rot; - camera->zoom = camViewTbl[1].zoom; - camera->hide_all = 1; - camera->mask = 1; - Hu3DCameraCreate(1); - Hu3DCameraScissorSet(1, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); - Hu3DCameraScissorSet(2, 0, 0, 0, 0); - Hu3DCameraPerspectiveSet(2, -1, 100, 13000, 1.2); - cameraObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, UpdateCamera); + BoardCameraData *camera; + cameraUseBackup = FALSE; + memset(&cameraBackup, 0, sizeof(BoardCameraData)); + memset(&boardCamera, 0, sizeof(BoardCameraData)); + camera = &boardCamera; + camera->fov = 25; + camera->near = 100; + camera->far = 13000; + camera->aspect = HU_DISP_ASPECT; + camera->viewport_x = 0; + camera->viewport_y = 0; + camera->viewport_h = 480; + camera->viewport_w = 640; + camera->viewport_near = 0; + camera->viewport_far = 1; + camera->up.y = 1; + camera->moving = 0; + camera->quaking = 0; + camera->quake_timer = 0; + camera->pos.x = 0; + camera->pos.y = 5000; + camera->pos.z = 5000; + camera->offset.x = 0; + camera->offset.y = 0; + camera->offset.z = 0; + camera->pos_calc = NULL; + BoardSpaceFlagPosGet(0, 0x80000000, &camera->target); + camera->rot.x = camViewTbl[1].x_rot; + camera->zoom = camViewTbl[1].zoom; + camera->hide_all = 1; + camera->mask = 1; + Hu3DCameraCreate(1); + Hu3DCameraScissorSet(1, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); + Hu3DCameraScissorSet(2, 0, 0, 0, 0); + Hu3DCameraPerspectiveSet(2, -1, 100, 13000, 1.2); + cameraObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, UpdateCamera); } static inline void CalcCameraView(void) { - BoardCameraData *camera = &boardCamera; - CalcCameraTarget(camera); - CalcCameraPos(camera); + BoardCameraData *camera = &boardCamera; + CalcCameraTarget(camera); + CalcCameraPos(camera); } static void UpdateCamera(omObjData *object) { - BoardCameraData *camera; - Vec *target; - float x, y, z; - if(BoardIsKill()) { - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - CalcCameraView(); - camera = &boardCamera; - Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect); - Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); - target = &camera->target; - if(camera->pos_calc) { - camera->pos_calc(camera); - } else { - - x = camera->rot.x; - y = camera->rot.y; - camera->pos.x = target->x+(sin((y*M_PI)/180.0)*cos((x*M_PI)/180.0)*camera->zoom); - camera->pos.y = target->y+(-sin((x*M_PI)/180.0)*camera->zoom); - camera->pos.z = target->z+(cos((y*M_PI)/180.0)*cos((x*M_PI)/180.0)*camera->zoom); - camera->up.x = sin((y*M_PI)/180.0)*sin((x*M_PI)/180.0); - camera->up.y = cos((x*M_PI)/180.0); - camera->up.z = cos((y*M_PI)/180.0)*sin((x*M_PI)/180.0); - if(camera->quaking) { - x = BoardRandFloat(); - y = BoardRandFloat(); - z = BoardRandFloat(); - camera->pos.x += (x-0.5f)*camera->quake_strength; - camera->pos.y += (y-0.5f)*camera->quake_strength; - camera->pos.z += (z-0.5f)*camera->quake_strength; - if(--camera->quake_timer <= 0) { - camera->quaking = 0; - camera->quake_timer = 0; - camera->quake_strength = 0; - } - } - } - Hu3DCameraPosSetV(camera->mask, &camera->pos, &camera->up, target); + BoardCameraData *camera; + Vec *target; + float x, y, z; + if(BoardIsKill()) { + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + CalcCameraView(); + camera = &boardCamera; + Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect); + Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); + target = &camera->target; + if(camera->pos_calc) { + camera->pos_calc(camera); + } else { + + x = camera->rot.x; + y = camera->rot.y; + camera->pos.x = target->x+(sind(y)*cosd(x)*camera->zoom); + camera->pos.y = target->y+(-sind(x)*camera->zoom); + camera->pos.z = target->z+(cosd(y)*cosd(x)*camera->zoom); + camera->up.x = sind(y)*sind(x); + camera->up.y = cosd(x); + camera->up.z = cosd(y)*sind(x); + if(camera->quaking) { + x = BoardRandFloat(); + y = BoardRandFloat(); + z = BoardRandFloat(); + camera->pos.x += (x-0.5f)*camera->quake_strength; + camera->pos.y += (y-0.5f)*camera->quake_strength; + camera->pos.z += (z-0.5f)*camera->quake_strength; + if(--camera->quake_timer <= 0) { + camera->quaking = 0; + camera->quake_timer = 0; + camera->quake_strength = 0; + } + } + } + Hu3DCameraPosSetV(camera->mask, &camera->pos, &camera->up, target); } static void CalcCameraTarget(BoardCameraData *camera) { - Vec offset; - Vec pos = { 0, 0, 0 }; - BoardFocusData *focus = &camera->focus; - if(camera->target_mdl != -1) { - BoardModelPosGet(camera->target_mdl, &pos); - } else { - if(camera->target_space != -1) { - BoardSpacePosGet(0, camera->target_space, &pos); - } else { - return; - } - } - VECAdd(&camera->offset, &pos, &pos); - VECSubtract(&pos, &camera->target, &offset); - if(camera->moving) { - VECScale(&offset, &offset, 0.15f); - } - VECAdd(&offset, &camera->target, &camera->target); + Vec offset; + Vec pos = { 0, 0, 0 }; + BoardFocusData *focus = &camera->focus; + if(camera->target_mdl != -1) { + BoardModelPosGet(camera->target_mdl, &pos); + } else { + if(camera->target_space != -1) { + BoardSpacePosGet(0, camera->target_space, &pos); + } else { + return; + } + } + VECAdd(&camera->offset, &pos, &pos); + VECSubtract(&pos, &camera->target, &offset); + if(camera->moving) { + VECScale(&offset, &offset, 0.15f); + } + VECAdd(&offset, &camera->target, &camera->target); } #define CAM_LERP(t, x1, x2, out) \ { \ - float result; \ - float offset; \ - float unit_scale; \ - float lerp_t; \ - lerp_x2 = x2; \ - lerp_x1 = x1; \ - lerp_t = t; \ - if(lerp_t2 == lerp_t1) { \ - result = lerp_x2; \ - } else { \ - unit_scale = (lerp_x1-lerp_x2)/((float)lerp_t1-(float)lerp_t2); \ - offset = lerp_x2-(unit_scale*lerp_t2); \ - result = offset+(unit_scale*lerp_t); \ - } \ - out = result; \ + float result; \ + float offset; \ + float unit_scale; \ + float lerp_t; \ + lerp_x2 = x2; \ + lerp_x1 = x1; \ + lerp_t = t; \ + if(lerp_t2 == lerp_t1) { \ + result = lerp_x2; \ + } else { \ + unit_scale = (lerp_x1-lerp_x2)/((float)lerp_t1-(float)lerp_t2); \ + offset = lerp_x2-(unit_scale*lerp_t2); \ + result = offset+(unit_scale*lerp_t); \ + } \ + out = result; \ } #define CAM_LERP_VEC(t, x1, x2, out) \ @@ -1264,270 +1267,270 @@ CAM_LERP(t, (x1).z, (x2).z, (out).z) static void CalcCameraPos(BoardCameraData *camera) { - //These variables must be volatile to match - volatile u32 lerp_t1, lerp_t2; - volatile float lerp_x1, lerp_x2; - float time; - - BoardFocusData *focus = &camera->focus; - if(focus->time > focus->max_time) { - focus->view_type = 0; - _ClearFlag(FLAG_ID_MAKE(1, 21)); - return; - } - OSs16tof32(&focus->time, &time); - focus->time++; - lerp_t2 = focus->max_time; - lerp_t1 = 0; - CAM_LERP(time, focus->zoom_start, focus->zoom_end, camera->zoom) - CAM_LERP_VEC(time, focus->rot_start, focus->rot_end, camera->rot) - CAM_LERP(time, focus->fov_start, focus->fov_end, camera->fov) - CAM_LERP_VEC(time, focus->target_start, focus->target_end, camera->target) + //These variables must be volatile to match + volatile u32 lerp_t1, lerp_t2; + volatile float lerp_x1, lerp_x2; + float time; + + BoardFocusData *focus = &camera->focus; + if(focus->time > focus->max_time) { + focus->view_type = 0; + _ClearFlag(FLAG_ID_MAKE(1, 21)); + return; + } + OSs16tof32(&focus->time, &time); + focus->time++; + lerp_t2 = focus->max_time; + lerp_t1 = 0; + CAM_LERP(time, focus->zoom_start, focus->zoom_end, camera->zoom) + CAM_LERP_VEC(time, focus->rot_start, focus->rot_end, camera->rot) + CAM_LERP(time, focus->fov_start, focus->fov_end, camera->fov) + CAM_LERP_VEC(time, focus->target_start, focus->target_end, camera->target) } void BoardMGDoneFlagSet(s32 flag) { - if(flag) { - _SetFlag(FLAG_ID_MAKE(1, 20)); - } else { - _ClearFlag(FLAG_ID_MAKE(1, 20)); - } + if(flag) { + _SetFlag(FLAG_ID_MAKE(1, 20)); + } else { + _ClearFlag(FLAG_ID_MAKE(1, 20)); + } } s32 BoardMGDoneFlagGet() { - return (_CheckFlag(FLAG_ID_MAKE(1, 20))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 20))) ? 1 : 0; } void BoardMGExit(void) { - s32 player = GWSystem.player_curr; - BoardPlayerMoveToAsync(player, GWPlayer[GWSystem.player_curr].space_curr); - BoardCameraTargetPlayerSet(player); - BoardCameraMoveSet(1); - BoardCameraViewSet(1); - _ClearFlag(FLAG_ID_MAKE(1, 19)); + s32 player = GWSystem.player_curr; + BoardPlayerMoveToAsync(player, GWPlayer[GWSystem.player_curr].space_curr); + BoardCameraTargetPlayerSet(player); + BoardCameraMoveSet(1); + BoardCameraViewSet(1); + _ClearFlag(FLAG_ID_MAKE(1, 19)); } static void KillBoardMG(omObjData *object) { - if(!BoardMGDoneFlagGet()) { - BoardEventFlagReset(); - omDelObjEx(HuPrcCurrentGet(), object); - } + if(!BoardMGDoneFlagGet()) { + BoardEventFlagReset(); + omDelObjEx(HuPrcCurrentGet(), object); + } } static void ExecBoardMG(omObjData *object) { - if(_CheckFlag(FLAG_ID_MAKE(1, 19))) { - return; - } - if(GWPlayer[GWSystem.player_curr].moving == 0) { - BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - if(!_CheckFlag(FLAG_ID_MAKE(1, 21))) { - _SetFlag(FLAG_ID_MAKE(1, 20)); - object->func = KillBoardMG; - } - } + if(_CheckFlag(FLAG_ID_MAKE(1, 19))) { + return; + } + if(GWPlayer[GWSystem.player_curr].moving == 0) { + BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + if(!_CheckFlag(FLAG_ID_MAKE(1, 21))) { + _SetFlag(FLAG_ID_MAKE(1, 20)); + object->func = KillBoardMG; + } + } } void BoardMGCreate(s32 arg0) { - _SetFlag(FLAG_ID_MAKE(1, 19)); - _ClearFlag(FLAG_ID_MAKE(1, 20)); - GWSystem.unk_38 = arg0; - omAddObjEx(boardObjMan, 0x201, 0, 0, -1, ExecBoardMG); - BoardEventFlagSet(); - BoardSpaceWalkMiniEventExec(); + _SetFlag(FLAG_ID_MAKE(1, 19)); + _ClearFlag(FLAG_ID_MAKE(1, 20)); + GWSystem.unk_38 = arg0; + omAddObjEx(boardObjMan, 0x201, 0, 0, -1, ExecBoardMG); + BoardEventFlagSet(); + BoardSpaceWalkMiniEventExec(); } void BoardEventFlagSet(void) { - _SetFlag(FLAG_ID_MAKE(1, 18)); + _SetFlag(FLAG_ID_MAKE(1, 18)); } void BoardEventFlagReset(void) { - _ClearFlag(FLAG_ID_MAKE(1, 18)); + _ClearFlag(FLAG_ID_MAKE(1, 18)); } s32 BoardEventFlagGet(void) { - return _CheckFlag(FLAG_ID_MAKE(1, 18)) ? 1 : 0; + return _CheckFlag(FLAG_ID_MAKE(1, 18)) ? 1 : 0; } void BoardMTXCalcLookAt(Mtx dest, Vec *eye, Vec *up, Vec *target) { - Vec f, u, s; - f.x = eye->x-target->x; - f.y = eye->y-target->y; - f.z = eye->z-target->z; - VECNormalize(&f, &f); - VECCrossProduct(up, &f, &u); - VECNormalize(&u, &u); - VECCrossProduct(&f, &u, &s); - dest[0][0] = u.x; - dest[0][1] = u.y; - dest[0][2] = u.z; - dest[0][3] = 0; - dest[1][0] = s.x; - dest[1][1] = s.y; - dest[1][2] = s.z; - dest[1][3] = 0; - dest[2][0] = f.x; - dest[2][1] = f.y; - dest[2][2] = f.z; - dest[2][3] = 0; + Vec f, u, s; + f.x = eye->x-target->x; + f.y = eye->y-target->y; + f.z = eye->z-target->z; + VECNormalize(&f, &f); + VECCrossProduct(up, &f, &u); + VECNormalize(&u, &u); + VECCrossProduct(&f, &u, &s); + dest[0][0] = u.x; + dest[0][1] = u.y; + dest[0][2] = u.z; + dest[0][3] = 0; + dest[1][0] = s.x; + dest[1][1] = s.y; + dest[1][2] = s.z; + dest[1][3] = 0; + dest[2][0] = f.x; + dest[2][1] = f.y; + dest[2][2] = f.z; + dest[2][3] = 0; } float BoardArcSin(float value) { - float result; - s32 sign; - if(value < 0) { - sign = 1; - value = BOARD_FABS(value); - } else { - sign = 0; - } - if(value > 1.0f) { - return 0; - } - if(value <= (float)(M_PI/2)) { - result = atanf(value/sqrtf(1-(value*value))); - } else { - result = (float)(M_PI/2)-atanf(sqrtf(1-(value*value))/value); - } - if(sign) { - result = BOARD_FABS(result); - } - return result; + float result; + s32 sign; + if(value < 0) { + sign = 1; + value = BOARD_FABS(value); + } else { + sign = 0; + } + if(value > 1.0f) { + return 0; + } + if(value <= (float)(M_PI/2)) { + result = atanf(value/sqrtf(1-(value*value))); + } else { + result = (float)(M_PI/2)-atanf(sqrtf(1-(value*value))/value); + } + if(sign) { + result = BOARD_FABS(result); + } + return result; } float BoardArcCos(float value) { - if(BOARD_FABS(value) > 1) { - return 0; - } - return (float)(M_PI/2)-BoardArcSin(value); + if(BOARD_FABS(value) > 1) { + return 0; + } + return (float)(M_PI/2)-BoardArcSin(value); } void BoardRandInit(void) { - boardRandSeed = OSGetTime(); + boardRandSeed = OSGetTime(); } u32 BoardRand(void) { - boardRandSeed = (boardRandSeed*0x19660D)+(0x3C6EF35F); - return boardRandSeed; + boardRandSeed = (boardRandSeed*0x19660D)+(0x3C6EF35F); + return boardRandSeed; } u32 BoardRandMod(u32 value) { - return (BoardRand() & 0x7FFFFFFF)%value; + return (BoardRand() & 0x7FFFFFFF)%value; } float BoardRandFloat(void) { - float value; - *((u32 *)&value) = (BoardRand() & 0x7FFFFF)|0x3F800000; //Generate float from 1.0f to 2.0f - return value-1.0f; + float value; + *((u32 *)&value) = (BoardRand() & 0x7FFFFF)|0x3F800000; //Generate float from 1.0f to 2.0f + return value-1.0f; } float BoardVecDistXZCalc(Vec *vec1, Vec *vec2) { - float dx = vec1->x-vec2->x; - float dz = vec1->z-vec2->z; - return sqrtf((dx*dx)+(dz*dz)); + float dx = vec1->x-vec2->x; + float dz = vec1->z-vec2->z; + return sqrtf((dx*dx)+(dz*dz)); } s32 BoardVecMaxDistXZCheck(Vec *vec1, Vec *vec2, float max_dist) { - float dz = vec1->z-vec2->z; - float dx = vec1->x-vec2->x; - float dist = sqrtf((dx*dx)+(dz*dz)); - if(dist <= max_dist) { - return 1; - } else { - return 0; - } + float dz = vec1->z-vec2->z; + float dx = vec1->x-vec2->x; + float dist = sqrtf((dx*dx)+(dz*dz)); + if(dist <= max_dist) { + return 1; + } else { + return 0; + } } void BoardDAngleCalcVec(Vec *vec1) { - s32 i; - float *data = &vec1->x; - for(i=0; i<3; i++) { - while(*data > 180.0f) { - *data -= 360.0f; - } - while(*data < -180.0f) { - *data += 360.0f; - } - data++; - } + s32 i; + float *data = &vec1->x; + for(i=0; i<3; i++) { + while(*data > 180.0f) { + *data -= 360.0f; + } + while(*data < -180.0f) { + *data += 360.0f; + } + data++; + } } float BoardDAngleCalc(float value) { - while(value > 180.0f) { - value -= 360.0f; - } - while(value < -180.0f) { - value += 360.0f; - } - return value; + while(value > 180.0f) { + value -= 360.0f; + } + while(value < -180.0f) { + value += 360.0f; + } + return value; } s32 BoardDAngleCalcRange(float *value, float min, float range) { - float diff = min-(*value); - if(diff >= 180.0f) { - min -= 360.0f; - } - if(diff <= -180.0f) { - min += 360.0f; - } - if(min > *value) { - *value += range; - if(*value >= min) { - *value = BoardDAngleCalc(min); - return 1; - } - } else { - *value -= range; - if(*value <= min) { - *value = BoardDAngleCalc(min); - return 1; - } - } - *value = BoardDAngleCalc(*value); - return 0; + float diff = min-(*value); + if(diff >= 180.0f) { + min -= 360.0f; + } + if(diff <= -180.0f) { + min += 360.0f; + } + if(min > *value) { + *value += range; + if(*value >= min) { + *value = BoardDAngleCalc(min); + return 1; + } + } else { + *value -= range; + if(*value <= min) { + *value = BoardDAngleCalc(min); + return 1; + } + } + *value = BoardDAngleCalc(*value); + return 0; } s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist) { - Vec temp; - VECSubtract(vec1, vec2, &temp); - if(VECSquareMag(&temp) >= (min_dist*min_dist)) { - return 0; - } else { - return 1; - } + Vec temp; + VECSubtract(vec1, vec2, &temp); + if(VECSquareMag(&temp) >= (min_dist*min_dist)) { + return 0; + } else { + return 1; + } } typedef struct filter_work { - struct { - u8 kill : 1; - u8 paused : 1; - }; - u8 max_alpha; - s16 time; - s16 len; - s16 model; - GXColor color; - float speed; + struct { + u8 kill : 1; + u8 paused : 1; + }; + u8 max_alpha; + s16 time; + s16 len; + s16 model; + GXColor color; + float speed; } FilterWork; static void UpdateFilter(omObjData *object); @@ -1535,168 +1538,168 @@ static void DrawFilter(ModelData *model, Mtx matrix); void BoardFilterFadeOut(s16 len) { - FilterWork *work; - float speed; - if(!filterObj) { - return; - } - if(len <= 0) { - len = 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->len = len; - OSs16tof32(&len, &speed); - work->speed = -(work->color.a)/speed; - work->paused = 0; - work->time = work->len; + FilterWork *work; + float speed; + if(!filterObj) { + return; + } + if(len <= 0) { + len = 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->len = len; + OSs16tof32(&len, &speed); + work->speed = -(work->color.a)/speed; + work->paused = 0; + work->time = work->len; } void BoardFilterFadeInit(s16 len, u8 max_alpha) { - FilterWork *work; - if(filterObj) { - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->kill = 1; - while(filterObj) { - HuPrcVSleep(); - } - } - filterObj = omAddObjEx(boardObjMan, 32000, 0, 0, -1, UpdateFilter); - omSetStatBit(filterObj, OM_STAT_NOPAUSE|0x80); - if(len <= 0) { - len = 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->kill = 0; - work->paused = 0; - work->color.r = 0; - work->color.g = 0; - work->color.b = 0; - work->color.a = 0; - work->max_alpha = max_alpha; - work->speed = (float)(max_alpha-work->color.a)/(float)len; - work->time = len; - work->len = len; - work->model = Hu3DHookFuncCreate(DrawFilter); - Hu3DModelLayerSet(work->model, 1); + FilterWork *work; + if(filterObj) { + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->kill = 1; + while(filterObj) { + HuPrcVSleep(); + } + } + filterObj = omAddObjEx(boardObjMan, 32000, 0, 0, -1, UpdateFilter); + omSetStatBit(filterObj, OM_STAT_NOPAUSE|0x80); + if(len <= 0) { + len = 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->kill = 0; + work->paused = 0; + work->color.r = 0; + work->color.g = 0; + work->color.b = 0; + work->color.a = 0; + work->max_alpha = max_alpha; + work->speed = (float)(max_alpha-work->color.a)/(float)len; + work->time = len; + work->len = len; + work->model = Hu3DHookFuncCreate(DrawFilter); + Hu3DModelLayerSet(work->model, 1); } s32 BoardFilterFadePauseCheck(void) { - FilterWork *work; - if(!filterObj) { - return 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - return (work->paused) ? 1 : 0; + FilterWork *work; + if(!filterObj) { + return 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + return (work->paused) ? 1 : 0; } s32 BoardFilterFadeCheck(void) { - return (filterObj != NULL) ? 0 : 1; + return (filterObj != NULL) ? 0 : 1; } static void UpdateFilter(omObjData *object) { - float alpha; - FilterWork *work = OM_GET_WORK_PTR(object, FilterWork); - if(work->kill || BoardIsKill()) { - if(work->model != -1) { - Hu3DModelKill(work->model); - } - filterObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->paused) { - return; - } - OSu8tof32(&work->color.a, &alpha); - alpha += work->speed; - OSf32tou8(&alpha, &work->color.a); - if(work->time > 0) { - work->time--; - return; - } - if(work->speed > 0) { - work->paused = 1; - work->color.a = work->max_alpha; - } else { - work->kill = 1; - } + float alpha; + FilterWork *work = OM_GET_WORK_PTR(object, FilterWork); + if(work->kill || BoardIsKill()) { + if(work->model != -1) { + Hu3DModelKill(work->model); + } + filterObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->paused) { + return; + } + OSu8tof32(&work->color.a, &alpha); + alpha += work->speed; + OSf32tou8(&alpha, &work->color.a); + if(work->time > 0) { + work->time--; + return; + } + if(work->speed > 0) { + work->paused = 1; + work->color.a = work->max_alpha; + } else { + work->kill = 1; + } } static void DrawFilter(ModelData *model, Mtx matrix) { - static GXColor colorN = { 0xFF, 0xFF, 0xFF, 0xFF }; - Mtx44 proj; - Mtx modelview; - - float x1, x2, y1, y2; - FilterWork *work; - if(!filterObj) { - return; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - x1 = 0.0f; - x2 = HU_FB_WIDTH; - y1 = 0.0f; - y2 = HU_FB_HEIGHT; - MTXOrtho(proj, y1, y2, x1, x2, 0, 10); - GXSetProjection(proj, GX_ORTHOGRAPHIC); - MTXIdentity(modelview); - GXLoadPosMtxImm(modelview, GX_PNMTX0); - GXSetCurrentMtx(GX_PNMTX0); - GXSetViewport(0, 0, x2, 1.0f+y2, 0, 1); - GXSetScissor(0, 0, x2, 1.0f+y2); - GXClearVtxDesc(); - GXSetChanMatColor(GX_COLOR0A0, work->color); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); - GXSetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE); - GXSetAlphaUpdate(GX_FALSE); - GXSetColorUpdate(GX_TRUE); - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2u16(x1, y1); - GXPosition2u16(x2, y1); - GXPosition2u16(x2, y2); - GXPosition2u16(x1, y2); - GXEnd(); - GXSetChanMatColor(GX_COLOR0A0, colorN); - + static GXColor colorN = { 0xFF, 0xFF, 0xFF, 0xFF }; + Mtx44 proj; + Mtx modelview; + + float x1, x2, y1, y2; + FilterWork *work; + if(!filterObj) { + return; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + x1 = 0.0f; + x2 = HU_FB_WIDTH; + y1 = 0.0f; + y2 = HU_FB_HEIGHT; + MTXOrtho(proj, y1, y2, x1, x2, 0, 10); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetCurrentMtx(GX_PNMTX0); + GXSetViewport(0, 0, x2, 1.0f+y2, 0, 1); + GXSetScissor(0, 0, x2, 1.0f+y2); + GXClearVtxDesc(); + GXSetChanMatColor(GX_COLOR0A0, work->color); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE); + GXSetAlphaUpdate(GX_FALSE); + GXSetColorUpdate(GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(x1, y1); + GXPosition2u16(x2, y1); + GXPosition2u16(x2, y2); + GXPosition2u16(x1, y2); + GXEnd(); + GXSetChanMatColor(GX_COLOR0A0, colorN); + } typedef struct confetti_particle { - s16 time; - u8 alpha; - u8 light_col; - Vec pos; - Vec rot; - Vec pos_vel; - Vec rot_vel; + s16 time; + u8 alpha; + u8 light_col; + Vec pos; + Vec rot; + Vec pos_vel; + Vec rot_vel; } ConfettiParticle; typedef struct confetti_work { - struct { - u8 kill : 1; - u8 paused : 1; - }; - s8 spawn_speed; - s8 time; - s8 delay; - s16 count; - s16 gfx_mdl; - s16 draw_mdl; - ConfettiParticle *data; + struct { + u8 kill : 1; + u8 paused : 1; + }; + s8 spawn_speed; + s8 time; + s8 delay; + s16 count; + s16 gfx_mdl; + s16 draw_mdl; + ConfettiParticle *data; } ConfettiWork; static void UpdateConfetti(omObjData *object); @@ -1707,497 +1710,501 @@ static void DrawConfetti(ModelData *model, Mtx matrix); void BoardConfettiCreate(Vec *pos, s16 count, float range) { - omObjData *object; - ConfettiWork *work; - if(confettiObj) { - BoardConfettiStop(); - HuPrcSleep(17); - } - object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateConfetti); - confettiObj = object; - work = OM_GET_WORK_PTR(object, ConfettiWork); - work->kill = 0; - work->paused = 0; - work->count = count; - work->spawn_speed = 1; - work->time = 0; - work->delay = 10; - work->draw_mdl = Hu3DHookFuncCreate(DrawConfetti); - work->data = HuMemDirectMallocNum(HEAP_SYSTEM, work->count*sizeof(ConfettiParticle), MEMORY_DEFAULT_NUM); - object->trans.x = pos->x; - object->trans.y = pos->y; - object->trans.z = pos->z; - object->rot.x = range; - work->gfx_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 7), NULL, 0); - BoardModelLayerSet(work->gfx_mdl, 2); - BoardModelVisibilitySet(work->gfx_mdl, 0); - { - ConfettiParticle *particle; - s32 i; - particle = work->data; - for(i=0; icount; i++, particle++) { - particle->time = -1; - } - } - HuAudFXPlay(774); + omObjData *object; + ConfettiWork *work; + if(confettiObj) { + BoardConfettiStop(); + HuPrcSleep(17); + } + object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateConfetti); + confettiObj = object; + work = OM_GET_WORK_PTR(object, ConfettiWork); + work->kill = 0; + work->paused = 0; + work->count = count; + work->spawn_speed = 1; + work->time = 0; + work->delay = 10; + work->draw_mdl = Hu3DHookFuncCreate(DrawConfetti); + work->data = HuMemDirectMallocNum(HEAP_SYSTEM, work->count*sizeof(ConfettiParticle), MEMORY_DEFAULT_NUM); + object->trans.x = pos->x; + object->trans.y = pos->y; + object->trans.z = pos->z; + object->rot.x = range; + work->gfx_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 7), NULL, 0); + BoardModelLayerSet(work->gfx_mdl, 2); + BoardModelVisibilitySet(work->gfx_mdl, 0); + { + ConfettiParticle *particle; + s32 i; + particle = work->data; + for(i=0; icount; i++, particle++) { + particle->time = -1; + } + } + HuAudFXPlay(774); } void BoardConfettiKill(void) { - if(confettiObj) { - OM_GET_WORK_PTR(confettiObj, ConfettiWork)->kill = 1; - } + if(confettiObj) { + OM_GET_WORK_PTR(confettiObj, ConfettiWork)->kill = 1; + } } void BoardConfettiStop(void) { - if(confettiObj) { - s32 i; - ConfettiParticle *particle; - ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); - work->paused = 1; - particle = work->data; - for(i=0; icount; i++, particle++) { - if(particle->time != -1) { - if(particle->time > 16) { - particle->time = 16; - } - } - } - } + if(confettiObj) { + s32 i; + ConfettiParticle *particle; + ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); + work->paused = 1; + particle = work->data; + for(i=0; icount; i++, particle++) { + if(particle->time != -1) { + if(particle->time > 16) { + particle->time = 16; + } + } + } + } } static void UpdateConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - if(work->kill || BoardIsKill()) { - BoardModelKill(work->gfx_mdl); - Hu3DModelKill(work->draw_mdl); - HuMemDirectFree(work->data); - confettiObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - } else { - SpawnConfetti(object); - MoveConfetti(object); - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + if(work->kill || BoardIsKill()) { + BoardModelKill(work->gfx_mdl); + Hu3DModelKill(work->draw_mdl); + HuMemDirectFree(work->data); + confettiObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + } else { + SpawnConfetti(object); + MoveConfetti(object); + } } static void SpawnConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - s32 i; - if(work->paused) { - return; - } - if(work->spawn_speed < 5) { - if(work->time++ > work->delay) { - work->time = 0; - work->spawn_speed++; - } - } - for(i=0; ispawn_speed; i++) { - ConfettiParticle *particle; - float angle; - s32 j; - particle = work->data; - for(j=0; jcount; j++, particle++) { - if(particle->time == -1) { - break; - } - } - if(j == work->count) { - break; - } - particle->time = BoardRandMod(60)+120; - angle = BoardRandFloat()*360.0f; - particle->pos.x = (sin((angle*M_PI)/180.0)*object->rot.x)+object->trans.x; - particle->pos.y = object->trans.y; - particle->pos.z = (cos((angle*M_PI)/180.0)*object->rot.x)+object->trans.z; - particle->pos_vel.x = 2.0f*(BoardRandFloat()-0.5f); - particle->pos_vel.y = (-98.00001f/15.0f)*BoardRandFloat(); - particle->pos_vel.z = 2.0f*(BoardRandFloat()-0.5f); - particle->rot_vel.x = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot_vel.y = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot_vel.z = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot.x = 0; - particle->rot.y = 0; - particle->rot.z = 0; - particle->alpha = 255; - particle->light_col = BoardRandMod(6); - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + s32 i; + if(work->paused) { + return; + } + if(work->spawn_speed < 5) { + if(work->time++ > work->delay) { + work->time = 0; + work->spawn_speed++; + } + } + for(i=0; ispawn_speed; i++) { + ConfettiParticle *particle; + float angle; + s32 j; + particle = work->data; + for(j=0; jcount; j++, particle++) { + if(particle->time == -1) { + break; + } + } + if(j == work->count) { + break; + } + particle->time = BoardRandMod(60)+120; + angle = BoardRandFloat()*360.0f; + particle->pos.x = (sind(angle)*object->rot.x)+object->trans.x; + particle->pos.y = object->trans.y; + particle->pos.z = (cosd(angle)*object->rot.x)+object->trans.z; + particle->pos_vel.x = 2.0f*(BoardRandFloat()-0.5f); + particle->pos_vel.y = (-98.00001f/15.0f)*BoardRandFloat(); + particle->pos_vel.z = 2.0f*(BoardRandFloat()-0.5f); + particle->rot_vel.x = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot_vel.y = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot_vel.z = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot.x = 0; + particle->rot.y = 0; + particle->rot.z = 0; + particle->alpha = 255; + particle->light_col = BoardRandMod(6); + } } static void MoveConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - s32 i; - s32 existF; - ConfettiParticle *particle; - - existF = 0; - particle = work->data; - - for(i=0; icount; i++, particle++) { - if(particle->time == -1) { - continue; - } - if(particle->time <= 0) { - particle->time = -1; - continue; - } - particle->time--; - particle->pos.x += particle->pos_vel.x; - particle->pos.y += particle->pos_vel.y; - particle->pos.z += particle->pos_vel.z; - particle->rot.x += particle->rot_vel.x; - particle->rot.y += particle->rot_vel.y; - particle->rot.z += particle->rot_vel.z; - if(particle->time < 16) { - if(particle->alpha >= 15) { - particle->alpha -= 15; - } else { - particle->alpha = 0; - } - } - if(!existF) { - existF = 1; - } - } - if(existF == 0 && work->paused) { - work->kill = 1; - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + s32 i; + s32 existF; + ConfettiParticle *particle; + + existF = 0; + particle = work->data; + + for(i=0; icount; i++, particle++) { + if(particle->time == -1) { + continue; + } + if(particle->time <= 0) { + particle->time = -1; + continue; + } + particle->time--; + particle->pos.x += particle->pos_vel.x; + particle->pos.y += particle->pos_vel.y; + particle->pos.z += particle->pos_vel.z; + particle->rot.x += particle->rot_vel.x; + particle->rot.y += particle->rot_vel.y; + particle->rot.z += particle->rot_vel.z; + if(particle->time < 16) { + if(particle->alpha >= 15) { + particle->alpha -= 15; + } else { + particle->alpha = 0; + } + } + if(!existF) { + existF = 1; + } + } + if(existF == 0 && work->paused) { + work->kill = 1; + } } static Vec confettiLightTbl[6] = { - { 0.1, 0.4, 1 }, - { 0.2, 1, 0.1 }, - { 0.3, 1, 1 }, - { 1, 0.2, 0.1 }, - { 1, 0.2, 0.8 }, - { 1, 8, 0.3 } + { 0.1, 0.4, 1 }, + { 0.2, 1, 0.1 }, + { 0.3, 1, 1 }, + { 1, 0.2, 0.1 }, + { 1, 0.2, 0.8 }, + { 1, 8, 0.3 } }; static void DrawConfetti(ModelData *model, Mtx matrix) { - if(!confettiObj || BoardIsKill()) { - return; - } else { - ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); - ModelData *model = &Hu3DData[work->gfx_mdl]; - ConfettiParticle *particle; - s32 i; - if(!model->hsfData) { - return; - } - particle = work->data; - for(i=0; icount; i++, particle++) { - Mtx result, temp; - float r, g, b, a; - if(particle->time == -1) { - continue; - } - MTXRotDeg(temp, 'z', particle->rot.z); - MTXRotDeg(result, 'x', particle->rot.x); - MTXConcat(temp, result, result); - MTXRotDeg(temp, 'y', particle->rot.y); - MTXConcat(temp, result, result); - MTXTrans(temp, particle->pos.x, particle->pos.y, particle->pos.z); - MTXConcat(temp, result, result); - MTXConcat(matrix, result, result); - r = confettiLightTbl[particle->light_col].x; - g = confettiLightTbl[particle->light_col].y; - b = confettiLightTbl[particle->light_col].z; - OSu8tof32(&particle->alpha, &a); - a = a*(1.0f/255.0f); - Hu3DModelTPLvlSet(BoardModelIDGet(work->gfx_mdl), a); - Hu3DModelAmbSet(BoardModelIDGet(work->gfx_mdl), r, g, b); - Hu3DModelObjDraw(BoardModelIDGet(work->gfx_mdl), "grid2", result); - } - } + if(!confettiObj || BoardIsKill()) { + return; + } else { + ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); + ModelData *model = &Hu3DData[work->gfx_mdl]; + ConfettiParticle *particle; + s32 i; + if(!model->hsfData) { + return; + } + particle = work->data; + for(i=0; icount; i++, particle++) { + Mtx result, temp; + float r, g, b, a; + if(particle->time == -1) { + continue; + } + MTXRotDeg(temp, 'z', particle->rot.z); + MTXRotDeg(result, 'x', particle->rot.x); + MTXConcat(temp, result, result); + MTXRotDeg(temp, 'y', particle->rot.y); + MTXConcat(temp, result, result); + MTXTrans(temp, particle->pos.x, particle->pos.y, particle->pos.z); + MTXConcat(temp, result, result); + MTXConcat(matrix, result, result); + r = confettiLightTbl[particle->light_col].x; + g = confettiLightTbl[particle->light_col].y; + b = confettiLightTbl[particle->light_col].z; + OSu8tof32(&particle->alpha, &a); + a = a*(1.0f/255.0f); + Hu3DModelTPLvlSet(BoardModelIDGet(work->gfx_mdl), a); + Hu3DModelAmbSet(BoardModelIDGet(work->gfx_mdl), r, g, b); + Hu3DModelObjDraw(BoardModelIDGet(work->gfx_mdl), "grid2", result); + } + } } typedef struct last5_gfx_work { - struct { - u8 kill : 1; - u8 state : 3; - u8 is_last : 1; - u8 : 4; - }; - u8 stop_time; - s16 time; - s16 group; - s16 sprites[3]; + struct { + u8 kill : 1; + u8 state : 3; + u8 is_last : 1; + u8 : 4; + }; + u8 stop_time; + s16 time; + s16 group; + s16 sprites[3]; } Last5GfxWork; static s32 last5GfxSprTbl[3] = { - DATA_MAKE_NUM(DATADIR_BOARD, 95), - DATA_MAKE_NUM(DATADIR_BOARD, 97), - DATA_MAKE_NUM(DATADIR_BOARD, 96), + DATA_MAKE_NUM(DATADIR_BOARD, 95), + DATA_MAKE_NUM(DATADIR_BOARD, 97), + DATA_MAKE_NUM(DATADIR_BOARD, 96), }; static float last5GfxPosTbl[2][3][2] = { - { - { -80, 0 }, - { 0, 0 }, - { 80, 0 } - }, - { - { -52, 0 }, - { 0, 0 }, - { 52, 0 } - } + { + { -80, 0 }, + { 0, 0 }, + { 80, 0 } + }, + { + { -52, 0 }, + { 0, 0 }, + { 52, 0 } + } }; static void UpdateLast5Gfx(omObjData *object); void BoardLast5GfxInit(void) { - Last5GfxWork *work; - omObjData *object; - s32 turn_remain; - s32 lastF; - turn_remain = GWSystem.max_turn-GWSystem.turn; - if(turn_remain > 4 || turn_remain < 0) { - return; - } else { - s32 i; - turn_remain = 4-turn_remain; - object = omAddObjEx(boardObjMan, 0, 0, 0, -1, UpdateLast5Gfx); - last5GfxObj = object; - work = OM_GET_WORK_PTR(object, Last5GfxWork); - work->kill = 0; - work->stop_time = 0; - work->time = 0; - work->group = HuSprGrpCreate(3); - if((s32)(GWSystem.max_turn-GWSystem.turn) == 0) { - work->is_last = 1; - lastF = 1; - } else { - work->is_last = 0; - lastF = 0; - } - for(i=0; i<3; i++) { - s32 prio; - s32 spr_file; - - if(i == 1) { - prio = 1000; - } else { - prio = 1400; - } - spr_file = last5GfxSprTbl[i]; - if(i == 2 && work->is_last && GWLanguageGet() != 0) { - spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); - } - BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); - HuSprGrpMemberSet(work->group, i, work->sprites[i]); - HuSprAttrSet(work->group, i, HUSPR_ATTR_LINEAR); - HuSprPosSet(work->group, i, last5GfxPosTbl[lastF][i][0], last5GfxPosTbl[lastF][i][1]); - } - if(!work->is_last) { - HuSprite *sprite = &HuSprData[HuSprGrpData[work->group].members[1]]; - HuSprBankSet(work->group, 1, 0); - sprite->frame = turn_remain; - } else { - HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); - } - HuSprAttrSet(work->group, 1, HUSPR_ATTR_NOANIM); - object->trans.x = 0.0f; - HuSprGrpTPLvlSet(work->group, object->trans.x); - HuSprGrpPosSet(work->group, HU_DISP_CENTERX, 72); - HuAudFXPlay(838); - work->time = 0; - } + Last5GfxWork *work; + omObjData *object; + s32 turn_remain; + s32 lastF; + turn_remain = GWSystem.max_turn-GWSystem.turn; + if(turn_remain > 4 || turn_remain < 0) { + return; + } else { + s32 i; + turn_remain = 4-turn_remain; + object = omAddObjEx(boardObjMan, 0, 0, 0, -1, UpdateLast5Gfx); + last5GfxObj = object; + work = OM_GET_WORK_PTR(object, Last5GfxWork); + work->kill = 0; + work->stop_time = 0; + work->time = 0; + work->group = HuSprGrpCreate(3); + if((s32)(GWSystem.max_turn-GWSystem.turn) == 0) { + work->is_last = 1; + lastF = 1; + } else { + work->is_last = 0; + lastF = 0; + } + for(i=0; i<3; i++) { + s32 prio; + s32 spr_file; + + if(i == 1) { + prio = 1000; + } else { + prio = 1400; + } +#if !VERSION_JP + spr_file = last5GfxSprTbl[i]; + if(i == 2 && work->is_last && GWLanguageGet() != 0) { + spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); + } + BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); +#else + BoardSpriteCreate(last5GfxSprTbl[i], prio, NULL, &work->sprites[i]); +#endif + HuSprGrpMemberSet(work->group, i, work->sprites[i]); + HuSprAttrSet(work->group, i, HUSPR_ATTR_LINEAR); + HuSprPosSet(work->group, i, last5GfxPosTbl[lastF][i][0], last5GfxPosTbl[lastF][i][1]); + } + if(!work->is_last) { + HuSprite *sprite = &HuSprData[HuSprGrpData[work->group].members[1]]; + HuSprBankSet(work->group, 1, 0); + sprite->frame = turn_remain; + } else { + HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); + } + HuSprAttrSet(work->group, 1, HUSPR_ATTR_NOANIM); + object->trans.x = 0.0f; + HuSprGrpTPLvlSet(work->group, object->trans.x); + HuSprGrpPosSet(work->group, HU_DISP_CENTERX, 72); + HuAudFXPlay(838); + work->time = 0; + } } static void UpdateLast5Gfx(omObjData *object) { - Last5GfxWork *work = OM_GET_WORK_PTR(object, Last5GfxWork); - if(work->kill || BoardIsKill()) { - HuSprGrpKill(work->group); - last5GfxObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->stop_time != 0) { - work->stop_time--; - return; - } - switch(work->state) { - case 0: - object->trans.x += 1.0f/30.0f; - if(object->trans.x > 1.0f) { - object->trans.x = 1.0f; - work->state = 1; - } - HuSprGrpTPLvlSet(work->group, object->trans.x); - break; - - case 1: - if(work->time >= 720) { - work->state = 2; - work->stop_time = 90; - if(work->is_last) { - HuSprGrpScaleSet(work->group, 1.0f, 1.0f); - } else { - HuSprScaleSet(work->group, 1, 1.0f, 1.0f); - } - } else { - s16 angle; - angle = work->time%180; - OSs16tof32(&angle, &object->trans.y); - object->trans.y = sin((object->trans.y*M_PI)/180.0)+0.5; - if(work->is_last) { - HuSprGrpScaleSet(work->group, object->trans.y, object->trans.y); - } else { - HuSprScaleSet(work->group, 1, object->trans.y, object->trans.y); - } - work->time += 9; - } - break; - - case 2: - object->trans.x -= 1.0f/30.0f; - if(object->trans.x < 0.0f) { - object->trans.x = 0.0f; - work->kill = 1; - } - HuSprGrpTPLvlSet(work->group, object->trans.x); - break; - } + Last5GfxWork *work = OM_GET_WORK_PTR(object, Last5GfxWork); + if(work->kill || BoardIsKill()) { + HuSprGrpKill(work->group); + last5GfxObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->stop_time != 0) { + work->stop_time--; + return; + } + switch(work->state) { + case 0: + object->trans.x += 1.0f/30.0f; + if(object->trans.x > 1.0f) { + object->trans.x = 1.0f; + work->state = 1; + } + HuSprGrpTPLvlSet(work->group, object->trans.x); + break; + + case 1: + if(work->time >= 720) { + work->state = 2; + work->stop_time = 90; + if(work->is_last) { + HuSprGrpScaleSet(work->group, 1.0f, 1.0f); + } else { + HuSprScaleSet(work->group, 1, 1.0f, 1.0f); + } + } else { + s16 angle; + angle = work->time%180; + OSs16tof32(&angle, &object->trans.y); + object->trans.y = sind(object->trans.y)+0.5; + if(work->is_last) { + HuSprGrpScaleSet(work->group, object->trans.y, object->trans.y); + } else { + HuSprScaleSet(work->group, 1, object->trans.y, object->trans.y); + } + work->time += 9; + } + break; + + case 2: + object->trans.x -= 1.0f/30.0f; + if(object->trans.x < 0.0f) { + object->trans.x = 0.0f; + work->kill = 1; + } + HuSprGrpTPLvlSet(work->group, object->trans.x); + break; + } } void BoardLast5GfxShowSet(s32 show) { - s32 i; - Last5GfxWork *work; - if(!last5GfxObj) { - return; - } - - work = OM_GET_WORK_PTR(last5GfxObj, Last5GfxWork); - for(i=0; i<3; i++) { - if(show) { - HuSprAttrReset(work->group, i, HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(work->group, i, HUSPR_ATTR_DISPOFF); - } - if(work->is_last) { - HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); - } - } + s32 i; + Last5GfxWork *work; + if(!last5GfxObj) { + return; + } + + work = OM_GET_WORK_PTR(last5GfxObj, Last5GfxWork); + for(i=0; i<3; i++) { + if(show) { + HuSprAttrReset(work->group, i, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrSet(work->group, i, HUSPR_ATTR_DISPOFF); + } + if(work->is_last) { + HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); + } + } } static s32 tauntActiveFXTbl[4] = { -1, -1, -1, -1 }; static s32 tauntFXTbl[8] = { - 294, - 358, - 422, - 486, - 550, - 614, - 678, - 742 + 294, + 358, + 422, + 486, + 550, + 614, + 678, + 742 }; typedef struct taunt_work { - u8 kill : 1; + u8 kill : 1; } TauntWork; static void TauntUpdate(omObjData *object); void BoardTauntInit(void) { - s32 i; - tauntObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, TauntUpdate); - for(i=0; i<4; i++) { - tauntActiveFXTbl[i] = -1; - } - _SetFlag(FLAG_ID_MAKE(1, 14)); + s32 i; + tauntObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, TauntUpdate); + for(i=0; i<4; i++) { + tauntActiveFXTbl[i] = -1; + } + _SetFlag(FLAG_ID_MAKE(1, 14)); } void BoardTauntKill(void) { - TauntWork *work; - if(!tauntObj) { - return; - } - work = OM_GET_WORK_PTR(tauntObj, TauntWork); - work->kill = 1; - _SetFlag(FLAG_ID_MAKE(1, 14)); + TauntWork *work; + if(!tauntObj) { + return; + } + work = OM_GET_WORK_PTR(tauntObj, TauntWork); + work->kill = 1; + _SetFlag(FLAG_ID_MAKE(1, 14)); } static void TauntUpdate(omObjData *object) { - s32 i; - s32 port; - s32 character; - TauntWork *work; - work = OM_GET_WORK_PTR(object, TauntWork); - if(work->kill || BoardIsKill()) { - for(i=0; i<4; i++) { - if(tauntActiveFXTbl[i] >= 0) { - HuAudFXStop(tauntActiveFXTbl[i]); - tauntActiveFXTbl[i] = -1; - } - } - tauntObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - for(i=0; i<4; i++) { - if(tauntActiveFXTbl[i] >= 0 && HuAudFXStatusGet(tauntActiveFXTbl[i]) == 0) { - tauntActiveFXTbl[i] = -1; - } - } - if(BoardPauseActiveCheck()) { - return; - } - if(_CheckFlag(FLAG_ID_MAKE(1, 14))) { - return; - } - if(WipeStatGet()) { - return; - } - if(GWSystem.player_curr == -1) { - return; - } - for(i=0; i<4; i++) { - if(i == GWSystem.player_curr || GWPlayer[i].com) { - continue; - } - port = GWPlayer[i].port & 0x3; - character = GWPlayer[i].character & 0x7; - if(tauntActiveFXTbl[port] >= 0) { - MSM_SEPARAM param; - float vol, pan; - vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f; - pan = 8191.0f*(HuPadSubStkY[port]/59.0f); - memset(¶m, 0, sizeof(MSM_SEPARAM)); - param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN; - OSf32tos8(&vol, ¶m.pan); - OSf32tos16(&pan, ¶m.pitch); - msmSeSetParam(tauntActiveFXTbl[port], ¶m); - } else { - if(HuPadBtnDown[port] & PAD_TRIGGER_L) { - tauntActiveFXTbl[port] = HuAudFXPlay(tauntFXTbl[character]); - } - } - } + s32 i; + s32 port; + s32 character; + TauntWork *work; + work = OM_GET_WORK_PTR(object, TauntWork); + if(work->kill || BoardIsKill()) { + for(i=0; i<4; i++) { + if(tauntActiveFXTbl[i] >= 0) { + HuAudFXStop(tauntActiveFXTbl[i]); + tauntActiveFXTbl[i] = -1; + } + } + tauntObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + for(i=0; i<4; i++) { + if(tauntActiveFXTbl[i] >= 0 && HuAudFXStatusGet(tauntActiveFXTbl[i]) == 0) { + tauntActiveFXTbl[i] = -1; + } + } + if(BoardPauseActiveCheck()) { + return; + } + if(_CheckFlag(FLAG_ID_MAKE(1, 14))) { + return; + } + if(WipeStatGet()) { + return; + } + if(GWSystem.player_curr == -1) { + return; + } + for(i=0; i<4; i++) { + if(i == GWSystem.player_curr || GWPlayer[i].com) { + continue; + } + port = GWPlayer[i].port & 0x3; + character = GWPlayer[i].character & 0x7; + if(tauntActiveFXTbl[port] >= 0) { + MSM_SEPARAM param; + float vol, pan; + vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f; + pan = 8191.0f*(HuPadSubStkY[port]/59.0f); + memset(¶m, 0, sizeof(MSM_SEPARAM)); + param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN; + OSf32tos8(&vol, ¶m.pan); + OSf32tos16(&pan, ¶m.pitch); + msmSeSetParam(tauntActiveFXTbl[port], ¶m); + } else { + if(HuPadBtnDown[port] & PAD_TRIGGER_L) { + tauntActiveFXTbl[port] = HuAudFXPlay(tauntFXTbl[character]); + } + } + } } s32 BoardDataDirReadAsync(s32 data_num) { - s32 status = HuDataDirReadAsync(data_num); - return status; + s32 status = HuDataDirReadAsync(data_num); + return status; } void BoardDataAsyncWait(s32 status) { - if(status == -1) { - return; - } - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } -} \ No newline at end of file + if(status == -1) { + return; + } + while(!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } +} diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 1bca487c..ec5ac7a4 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -12,6 +12,8 @@ #include "game/board/tutorial.h" #include "game/board/window.h" +#include "ext_math.h" + // structs typedef struct structActiveMG { s16 unk_00; @@ -767,7 +769,7 @@ static void SeparateStatus(bitcopy* arg0, omObjData* arg1) { return; } OSu8tof32((u8*)&arg0->unk_03, &temp_f29); - temp_f30 = sin((temp_f29 * M_PI) / 180.0) * 4.0 + 1.0; + temp_f30 = sind(temp_f29) * 4.0 + 1.0; arg0->unk_03 += 6; if (arg0->unk_03 > 0x5A) { arg0->unk_03 = 0x5A; @@ -787,7 +789,7 @@ static void PopupVS(bitcopy* arg0, omObjData* arg1) { temp_r29 = arg0->unk_0C; if (arg0->unk_02 == 0) { - HuSprAttrReset(temp_r29->unk_00[0], 0, 4); + HuSprAttrReset(temp_r29->unk_00[0], 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r29->unk_00[0], 0, 8); HuSprScaleSet(temp_r29->unk_00[0], 0, 0.001f, 0.001f); HuSprPosSet(temp_r29->unk_00[0], 0, 0.0f, 64.0f); @@ -797,9 +799,9 @@ static void PopupVS(bitcopy* arg0, omObjData* arg1) { } OSs16tof32(&arg0->unk_04, &temp_f31); if (arg0->unk_04 < 0x5A) { - var_f30 = 2.0 * sin((M_PI * temp_f31) / 180.0); + var_f30 = 2.0 * sind(temp_f31); } else { - var_f30 = 1.0 + sin((M_PI * temp_f31) / 180.0); + var_f30 = 1.0 + sind(temp_f31); if (arg0->unk_04 >= 0xB4) { var_f30 = 1.0f; temp_r28 = (bitcopy*) mgSetupObj->work; @@ -832,7 +834,7 @@ static void FallMGType(bitcopy* arg0, omObjData* arg1) { temp_r31 = arg0->unk_0C; temp_r30 = sp8[mgType]; if (arg0->unk_02 == 0) { - HuSprAttrReset(temp_r31->unk_00[0], temp_r30, 4); + HuSprAttrReset(temp_r31->unk_00[0], temp_r30, HUSPR_ATTR_DISPOFF); temp_r31->unk_1C[0][temp_r30].y = -284.0f; temp_r31->unk_1C[1][temp_r30].y = -128.0f; arg0->unk_02 = 1; @@ -872,7 +874,7 @@ static void LuckyMGFall(bitcopy* arg0, omObjData* arg1) { temp_r27 = &temp_r29->unk_1C[0][temp_r24]; switch (arg0->unk_02) { case 0: - HuSprAttrReset(temp_r29->unk_00[0], 4, 4); + HuSprAttrReset(temp_r29->unk_00[0], 4, HUSPR_ATTR_DISPOFF); temp_r28->y = -284.0f; temp_r25->y = -128.0f; arg0->unk_02 = 1; @@ -889,7 +891,7 @@ static void LuckyMGFall(bitcopy* arg0, omObjData* arg1) { case 2: temp_r27->y += 10.0f; if (328.0f < temp_r27->y) { - HuSprAttrReset(temp_r29->unk_00[0], temp_r24, 4); + HuSprAttrReset(temp_r29->unk_00[0], temp_r24, HUSPR_ATTR_DISPOFF); temp_r26 = (bitcopy*) mgSetupObj->work; temp_r26->field00_bit1 = 7; temp_r26->unk_02 = 0; @@ -935,8 +937,8 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { temp_r27 = arg0->unk_0C; switch (arg0->unk_02) { case 0: - HuSprAttrReset(temp_r27->unk_00[0], 8, 4); - HuSprAttrReset(temp_r27->unk_00[0], 9, 4); + HuSprAttrReset(temp_r27->unk_00[0], 8, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r27->unk_00[0], 9, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r27->unk_00[0], 8, 8); HuSprAttrSet(temp_r27->unk_00[0], 9, 8); HuSprPosSet(temp_r27->unk_00[0], 8, 0.0f, 0.0f); @@ -958,7 +960,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { case 1: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &temp_f28); - temp_f29 = sin((M_PI * temp_f28) / 180.0); + temp_f29 = sind(temp_f28); HuSprScaleSet(temp_r27->unk_00[0], 8, temp_f29, temp_f29); HuSprScaleSet(temp_r27->unk_00[0], 9, temp_f29, temp_f29); arg0->unk_03 += 2; @@ -1006,7 +1008,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { return; } temp_f28 = (arg0->unk_04 % 360); - temp_f29 = (1.0 + (0.5 * sin((M_PI * temp_f28) / 180.0))); + temp_f29 = (1.0 + (0.5 * sind(temp_f28))); HuSprScaleSet(temp_r27->unk_00[0], 8, temp_f29, temp_f29); HuSprScaleSet(temp_r27->unk_00[0], 9, temp_f29, temp_f29); break; @@ -1042,10 +1044,10 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { temp_r24 = arg0->unk_0C; temp_r22 = mgType + 5; - switch (arg0->unk_02) { /* irregular */ + switch (arg0->unk_02) { case 0: HuSprAttrSet(temp_r24->unk_00[0], temp_r22, 8); - HuSprAttrReset(temp_r24->unk_00[0], temp_r22, 4); + HuSprAttrReset(temp_r24->unk_00[0], temp_r22, HUSPR_ATTR_DISPOFF); HuSprPosSet(temp_r24->unk_00[0], temp_r22, 0.0f, 32.0f); HuSprScaleSet(temp_r24->unk_00[0], temp_r22, 0.001f, 0.001f); arg0->unk_04 = 0; @@ -1075,7 +1077,7 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { case 1: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &var_f26); - temp_f27 = sin((M_PI * var_f26) / 180.0); + temp_f27 = sind(var_f26); arg0->unk_03 += 3; HuSprScaleSet(temp_r24->unk_00[0], temp_r22, temp_f27, temp_f27); return; @@ -1084,11 +1086,11 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { for (var_r23 = 0; var_r23 < arg0->field01_bit0; var_r23++) { HuWinDispOn(activeMG[var_r23].unk_00); } - HuSprAttrReset(temp_r24->unk_00[0], 0xA, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xA, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r24->unk_00[0], 0xA, 8); HuSprPosSet(temp_r24->unk_00[0], 0xA, -148.0f, cursorYTbl[0]); temp_r18 = &hiliteColTbl[mgType]; - HuSprAttrReset(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); HuSprPosSet(temp_r24->unk_00[0], 0xC, 0.0f, hiliteYTbl[0]); HuSprTPLvlSet(temp_r24->unk_00[0], 0xC, 0.7f); HuSprScaleSet(temp_r24->unk_00[0], 0xC, 32.0f, 3.5f); @@ -1158,15 +1160,15 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { hiliteTimer = 0; } if (hiliteShowF != 0) { - HuSprAttrReset(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); return; } - HuSprAttrSet(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrSet(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); return; case 5: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &var_f26); - temp_f27 = (1.0 + (2.0 * sin((M_PI * var_f26) / 180.0))); + temp_f27 = (1.0 + (2.0 * sind(var_f26))); arg0->unk_03 += 4; if (arg0->unk_03 > 0x5A) { arg0->unk_03 = 0x5A; diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 328fc1fe..1b0c57b6 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -300,7 +300,7 @@ static void ExitBox(ItemGiveWork2* arg0, omObjData* arg1) { } arg1->trans.y = spC.y + (700.0f * cosd(arg0->unk_08)); - arg1->rot.y = sin((M_PI * temp) / 180.0); + arg1->rot.y = sind(temp); arg0->unk_08 -= 1.5f; arg0->unk_06 -= 30; } diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 4b5d5401..3ca8058a 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -717,9 +717,9 @@ static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) { SetBoxVisible(1); var_f31 = 0.5f; BoardModelScaleSet(boxModelID[7], var_f31, var_f31, var_f31); - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); if (GWPartyGet() == 0) { - HuSprAttrReset(pauseCursorPos, 1, 4); + HuSprAttrReset(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } break; } @@ -822,7 +822,7 @@ static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) { s32 i; if (arg1->unk07 == 0) { - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); if (arg1->unk00_field2 != 0) { for (i = 0; i < 8; i++) { if (i != 0) { @@ -905,7 +905,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { var_r30 |= 2; } temp_r29 = CheckPort(arg1->unk04); - if (GWGameStat.field10E_bit4 != 0) { + if (GWGameStat.veryHardUnlock != 0) { var_r27 = 4; } else { var_r27 = 3; @@ -962,7 +962,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { arg1->unk09 = 0; } arg1->unk05 += var_r28; - if (GWGameStat.field10E_bit4 == 0 && arg1->unk05 == 4) { + if (GWGameStat.veryHardUnlock == 0 && arg1->unk05 == 4) { arg1->unk05 += var_r28; } if (arg1->unk05 > var_r27) { @@ -1100,7 +1100,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) { u32 temp_r28; Mtx sp8; - if (arg2 == 3 && GWGameStat.field10E_bit5 == 0) { + if (arg2 == 3 && GWGameStat.customPackEnable == 0) { var_r27 = 1; } else { var_r27 = 2; @@ -1332,8 +1332,8 @@ static s32 WaitPauseInput(void) { } HuWinDispOn(controlWin); SetBoxVisible(0); - HuSprAttrReset(pauseSprGrp, 0, 4); - HuSprAttrSet(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseSprGrp, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); PauseCreateNumber(0, GWSystem.turn); PauseCreateNumber(1, GWSystem.max_turn); HuPrcSleep(4); @@ -1376,15 +1376,15 @@ static void ShowPauseConfig(void) { HuWinDispOn(settingsControlWin); HuWinDispOn(settingsWin); SetBoxVisible(1); - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(hostMdl, 1); if (GWPartyGet() == 0) { var_f31 = boxPosTbl[0][0]; var_f30 = boxPosTbl[0][1]; HuSprPosSet(pauseCursorPos, 1, var_f31, var_f30); - HuSprAttrReset(pauseCursorPos, 1, 4); + HuSprAttrReset(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(pauseCursorPos, 1, 4); + HuSprAttrSet(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } while (configObj) { HuPrcVSleep(); @@ -1434,19 +1434,19 @@ static void ShowPadConfigSprite(s32 arg0) { for (i = 0; i < 4; i++) { temp_r31 = GWPlayer[i].port; if (arg0 != 0) { - HuSprAttrReset(padConfigSprGrp, temp_r31, 4); - HuSprAttrReset(padConfigSprGrp, temp_r31 + 4, 4); - HuSprAttrReset(padConfigSprGrp, temp_r31 + 8, 4); + HuSprAttrReset(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(padConfigSprGrp, temp_r31, 4); - HuSprAttrSet(padConfigSprGrp, temp_r31 + 4, 4); - HuSprAttrSet(padConfigSprGrp, temp_r31 + 8, 4); + HuSprAttrSet(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); } } if (arg0 != 0) { - HuSprAttrReset(padConfigSprGrp, 12, 4); + HuSprAttrReset(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(padConfigSprGrp, 12, 4); + HuSprAttrSet(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); } } diff --git a/src/game/board/player.c b/src/game/board/player.c index 6f57f1ea..046aafea 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -18,7 +18,7 @@ #include "game/objsub.h" #include "game/pad.h" -#include "math.h" +#include "ext_math.h" #include "stdlib.h" static void InitJunction(s32, s32, f32); @@ -137,6 +137,18 @@ static s32 bowserSuitCharMdlTbl[] = { static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) }; +#if VERSION_JP +static s32 sparkMotTbl[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x94), + DATA_MAKE_NUM(DATADIR_BOARD, 0x95), + DATA_MAKE_NUM(DATADIR_BOARD, 0x96), + DATA_MAKE_NUM(DATADIR_BOARD, 0x97), + DATA_MAKE_NUM(DATADIR_BOARD, 0x98), + DATA_MAKE_NUM(DATADIR_BOARD, 0x99), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), +}; +#else static s32 sparkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x95), DATA_MAKE_NUM(DATADIR_BOARD, 0x96), @@ -147,6 +159,7 @@ static s32 sparkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), DATA_MAKE_NUM(DATADIR_BOARD, 0x9C), }; +#endif static s32 boardSparkSfxTbl[] = { 0x128, @@ -1139,7 +1152,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) VECSubtract(&sp50, &sp68, &sp44); VECNormalize(&sp44, &sp44); - angle = (180.0 * (atan2(sp44.x, sp44.z) / M_PI)); + angle = atan2d(sp44.x, sp44.z); if (angle < 0.0f) { angle += 360.0f; } @@ -1161,7 +1174,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) temp_r29->unk_06[var_r27] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0), NULL, 1); BoardModelRotSet(temp_r29->unk_06[var_r27], 0.0f, angle, 0.0f); BoardModelLayerSet(temp_r29->unk_06[var_r27], 6); - sp5C.x = sp68.x + (100.0 * sin((M_PI * angle) / 180.0)); + sp5C.x = sp68.x + 100.0 * sind(angle); sp5C.y = 300.0f + sp68.y; sp5C.z = (var_f29 + (sp68.z + (100.0 * cosd(angle)))); BoardModelPosSetV(temp_r29->unk_06[var_r27], &sp5C); @@ -1206,7 +1219,7 @@ static void UpdateJunctionGfx(omObjData *arg0) temp_r30->unk_02 -= 0xB4; } OSs16tof32(&temp_r30->unk_02, &arg0->scale.x); - arg0->scale.x = 3.0 + sin((M_PI * arg0->scale.x) / 180.0); + arg0->scale.x = 3.0 + sind(arg0->scale.x); arg0->scale.y = arg0->scale.x; arg0->scale.z = arg0->scale.x; BoardModelScaleSet(temp_r30->unk_06[temp_r30->field00_bit5], arg0->scale.x, arg0->scale.y, arg0->scale.z); @@ -1342,7 +1355,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) } else { VECSubtract(&sp5C->pos, &sp88, &sp94); - var_f30 = 90.0 - (180.0 * (atan2(sp94.z, sp94.x) / M_PI)); + var_f30 = 90.0 - atan2d(sp94.z, sp94.x); OSf32tos16(&var_f30, &var_r26); if (var_r26 < 0) { var_r26 += 0x168; @@ -1381,7 +1394,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) goto loop_21; } if ((0.0f != spA0.x) || (0.0f != spA0.z)) { - var_f30 = (90.0 + (180.0 * (atan2(spA0.z, spA0.x) / M_PI))); + var_f30 = 90.0 + atan2d(spA0.z, spA0.x); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -1391,7 +1404,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) RestoreJunction(var_f30, 1); sp50 = &boardCamera; VECSubtract(&sp50->target, &sp50->pos, &sp7C); - var_f30 = (var_f30 + (90.0 - (180.0 * (atan2(-sp7C.z, -sp7C.x) / M_PI)))); + var_f30 += 90.0 - atan2d(-sp7C.z, -sp7C.x); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -1522,7 +1535,7 @@ static s32 ExecJunction(s32 arg0, s16 *arg1) } else { VECSubtract(&sp88->pos, &spAC, &spB8); - var_f29 = (90.0 - (180.0 * (atan2(spB8.z, spB8.x) / M_PI))); + var_f29 = 90.0 - atan2d(spB8.z, spB8.x); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -1598,7 +1611,7 @@ static s32 ExecJunction(s32 arg0, s16 *arg1) } else { if ((0.0f != spC4.x) || (0.0f != spC4.z)) { - var_f29 = (90.0 + (180.0 * (atan2(spC4.z, spC4.x) / M_PI))); + var_f29 = 90.0 + atan2d(spC4.z, spC4.x); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -1716,7 +1729,7 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) } VECSubtract(arg2, arg1, &sp18); VECNormalize(&sp18, &sp18); - var_f26 = 90.0 - (180.0 * (atan2(sp18.z, sp18.x) / M_PI)); + var_f26 = 90.0 - atan2d(sp18.z, sp18.x); var_f30 = var_f26; if (var_f30 < 0.0f) { var_f30 += 360.0f; @@ -2114,15 +2127,15 @@ void BoardRollDispSet(s32 arg0) if (arg0 != 0) { temp_r31->field00_bit1 = 1; if ((var_r30 == 1) && (GWPlayer[temp_r31->unk_02].roll / 10 == 0)) { - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(temp_r31->unk_04, var_r30, 4); + HuSprAttrReset(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } } else { temp_r31->field00_bit1 = 0; - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } } UpdateRollSprite(rollObj); @@ -2150,7 +2163,7 @@ static void UpdateRollSprite(omObjData *arg0) for (var_r30 = 0; var_r30 < 2; var_r30++) { if (((var_r30 == 1) && (sp14[1] == 0)) || (temp_r31->field00_bit1 == 0)) { - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } else { if ((sp14[1] == 0) && (var_r30 == 0)) { @@ -2160,7 +2173,7 @@ static void UpdateRollSprite(omObjData *arg0) sp1C.x = spC[var_r30]; } sp1C.y = (HU_DISP_HEIGHTF * 176) / 480; - HuSprAttrReset(temp_r31->unk_04, var_r30, 4); + HuSprAttrReset(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); HuSprBankSet(temp_r31->unk_04, var_r30, sp14[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, sp1C.x, sp1C.y); } @@ -2499,7 +2512,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardCameraMotionWait(); BoardCameraTargetPlayerSet(player); BoardPlayerIdleSet(player); - temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x74), NULL, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x73 : 0x74), NULL, 0); BoardModelMotionStart(temp_r28, 0, 0x40000002); BoardModelMotionTimeSet(temp_r28, 30.0f); BoardModelAttrSet(temp_r28, 0x40000002); @@ -2507,7 +2520,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f); BoardModelVisibilitySet(temp_r28, 0); BoardModelLayerSet(temp_r28, 1); - sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x67), NULL, 0); + sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x66 : 0x67), NULL, 0); BoardModelLayerSet(sp2E, 1); BoardModelMotionStart(sp2E, 0, 0); HuAudFXPlay(796); @@ -2883,7 +2896,7 @@ static s32 MegaPlayerPassFunc(s32 player, s32 space) VECSubtract(&spC4, &spB8, &spAC); spAC.x /= 60.0f; spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerRotYSet(player, 90.0 - atan2d(spAC.z, spAC.x)); sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); BoardPlayerMotionShiftSet(player, 4, 0, 8, HU3D_MOTATTR_NONE); HuPrcSleep(8); @@ -2985,7 +2998,7 @@ static s32 MegaExecJump(s32 player, s32 space) VECSubtract(&spC4, &spB8, &spAC); spAC.x /= 60.0f; spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerRotYSet(player, 90.0 - atan2d(spAC.z, spAC.x)); BoardPlayerIdleSet(player); HuPrcSleep(10); sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); diff --git a/src/game/board/roll.c b/src/game/board/roll.c index fecf6dd3..c52bd6a5 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -139,6 +139,71 @@ s32 BoardRollExec(s32 arg0) return destMode; } +static void RollWinCreate(s32 playerNo) +{ + float sp8[2]; + float posX; + float posY; + s32 var_r29; + s32 var_r27; + s32 temp_r25; + + if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { + var_r27 = BoardPlayerItemCount(playerNo); + if (GWTeamGet()) { + temp_r25 = BoardPlayerSameTeamFind(playerNo); + var_r27 += BoardPlayerItemCount(temp_r25); + } + if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { + var_r29 = MAKE_MESSID(0x09, 0x04); + } + else { + var_r29 = MAKE_MESSID(0x09, 0x02); + } + if (inputTimer != 0) { + var_r29 = MAKE_MESSID(0x30, 0x25); + } + HuWinMesMaxSizeGet(1, sp8, var_r29); + #if VERSION_PAL + posY = HU_DISP_HEIGHT - 176; + switch (GWGameStat.language) { + case 0: + case 4: + posX = -10000.0f; + break; + + case 3: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 32.0f); + break; + + case 5: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + posY = 258; + break; + + default: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + break; + } + #else + switch (GWGameStat.language) { + case 0: + posX = -10000.0f; + break; + case 1: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + break; + } + posY = HU_DISP_HEIGHT - 176; + #endif + + rollWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(rollWin, 0.0f); + HuWinMesSpeedSet(rollWin, 0); + HuWinMesSet(rollWin, var_r29); + } +} + void BoardRollKill(void) { if (rollProc) { @@ -177,15 +242,11 @@ void BoardRollWinDispSet(s32 arg0) static void RollMain(void) { - float sp8[2]; - float var_f31; - float var_f30; + s32 var_r28; - s32 var_r27; - s32 temp_r26; - s32 temp_r25; + s32 var_r30; - s32 var_r29; + s32 i; diceValue[0] = diceValue[1] = diceValue[2] = 0; @@ -195,37 +256,7 @@ static void RollMain(void) BoardCameraMotionWait(); BoardCameraTargetModelSet(-1); for (i = 0; i < numDice; i++) { - temp_r26 = rollPlayer; - if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r27 = BoardPlayerItemCount(temp_r26); - if (GWTeamGet()) { - temp_r25 = BoardPlayerSameTeamFind(temp_r26); - var_r27 += BoardPlayerItemCount(temp_r25); - } - if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { - var_r29 = MAKE_MESSID(0x09, 0x04); - } - else { - var_r29 = MAKE_MESSID(0x09, 0x02); - } - if (inputTimer != 0) { - var_r29 = MAKE_MESSID(0x30, 0x25); - } - HuWinMesMaxSizeGet(1, sp8, var_r29); - switch (GWGameStat.language) { - case 0: - var_f31 = -10000.0f; - break; - case 1: - var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); - break; - } - var_f30 = HU_DISP_HEIGHT - 176; - rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); - HuWinBGTPLvlSet(rollWin, 0.0f); - HuWinMesSpeedSet(rollWin, 0); - HuWinMesSet(rollWin, var_r29); - } + RollWinCreate(rollPlayer); DiceCreate(i); DiceWaitFull(i); DoInput(i); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 92198602..47b332c3 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -984,7 +984,12 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { omObjData *temp_r30; ItemChoiceWork *var_r31; s16 spC; - + s16 i; + #if VERSION_PAL + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = 190; + } + #endif temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice); itemChoiceObj = temp_r30; itemChoice = -1; @@ -996,11 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { var_r31->unk02 = 0; var_r31->unk03 = arg1; var_r31->unk06 = HuSprGrpCreate(1); + #if VERSION_PAL + if (GWLanguageGet() != 0) { + s16 winId = BoardWinIDGet(); + if(winId != -1) { + WindowData *winP = &winData[winId]; + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = winP->pos_x+96; + } + } else { + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = 166; + } + } + } + temp_r30->trans.x = cursorPosTbl[0][0]; + temp_r30->trans.y = cursorPosTbl[0][1]; + #else temp_r30->trans.x = cursorPosTbl[0][0]; temp_r30->trans.y = cursorPosTbl[0][1]; if (GWLanguageGet() != 0) { temp_r30->trans.x -= 24.0f; } + #endif if (GWPlayer[arg0].com) { var_r31->unk01 = GWMessDelayGet(); } @@ -1032,9 +1055,11 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) { temp_r28 = arg1->unk02; arg0->trans.x = cursorPosTbl[arg1->unk02][0]; arg0->trans.y = cursorPosTbl[arg1->unk02][1]; + #if VERSION_NTSC if (GWLanguageGet() != 0) { arg0->trans.x -= 24.0f; } + #endif if (GWPlayer[arg1->unk00_field1].com) { GetShopItemChoiceInput(arg1, arg0, &sp8); } else { diff --git a/src/game/board/space.c b/src/game/board/space.c index 052f2bca..d092af1e 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -14,7 +14,7 @@ #include "game/objsub.h" #include "game/sprite.h" -#include "math.h" +#include "ext_math.h" #include "string.h" static BoardSpace spaceData[2][256]; @@ -156,10 +156,10 @@ void BoardSpaceCornerPosGet(s32 index, s32 corner, Vec *pos) corner_ofs.x = corner_pos[corner][0] * 80.0f; corner_ofs.y = 0; corner_ofs.z = corner_pos[corner][1] * 80.0f; - corner_ofs.x = (cos((M_PI * rot.z) / 180) * corner_ofs.x) + (sin((M_PI * rot.z) / 180) * corner_ofs.y); - corner_ofs.y = (cos((M_PI * rot.x) / 180) * cos((M_PI * rot.z) / 180) * corner_ofs.y) + (sin((M_PI * rot.z) / 180) * corner_ofs.x) - + (sin((M_PI * -rot.x) / 180) * corner_ofs.z); - corner_ofs.z = (sin((M_PI * rot.x) / 180) * corner_ofs.y) + (cos((M_PI * rot.x) / 180) * corner_ofs.z); + corner_ofs.x = (cosd(rot.z) * corner_ofs.x) + (sind(rot.z) * corner_ofs.y); + corner_ofs.y = (cosd(rot.x) * cosd(rot.z) * corner_ofs.y) + (sind(rot.z) * corner_ofs.x) + + (sind(-rot.x) * corner_ofs.z); + corner_ofs.z = (sind(rot.x) * corner_ofs.y) + (cosd(rot.x) * corner_ofs.z); pos->x += corner_ofs.x; pos->y += corner_ofs.y; pos->z += corner_ofs.z; @@ -724,7 +724,7 @@ static s32 ExecPipeSpace(s32 player, s32 space) BoardSpacePosGet(0, space_ptr->link[0], &pos_link); VECSubtract(&pos_link, &pos, &dir); VECNormalize(&dir, &dir); - BoardPlayerRotYSet(player, 90 - ((atan2(dir.z, dir.x) / M_PI) * 180)); + BoardPlayerRotYSet(player, 90 - atan2d(dir.z, dir.x)); radius = 0.75f * BoardVecDistXZCalc(&pos_link, &pos); BoardPlayerMotionStart(player, 4, 0); y_vel = 0; diff --git a/src/game/board/star.c b/src/game/board/star.c index f4579aa8..3f2a0ba5 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -74,7 +74,7 @@ static Process *starProc; static s16 starParman = -1; static s16 hostMdl = -1; -const s32 lbl_8011E040[9] = { +static const s32 starMesTbl1[9] = { MAKE_MESSID(12, 0), MAKE_MESSID(12, 9), MAKE_MESSID(12, 18), @@ -86,7 +86,7 @@ const s32 lbl_8011E040[9] = { MAKE_MESSID(12, 0) }; -const s32 lbl_8011E064[9][2] = { +static const s32 starMesTbl2[9][2] = { { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, @@ -249,12 +249,12 @@ static void ExecStar(void) { BoardCameraViewSet(3); BoardCameraMotionWait(); if (GWStarsGet(temp_r31) >= 999) { - temp_r29 = lbl_8011E040[temp_r27] + 5; + temp_r29 = starMesTbl1[temp_r27] + 5; BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); } else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) { - temp_r29 = lbl_8011E040[temp_r27] + 2; + temp_r29 = starMesTbl1[temp_r27] + 2; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); @@ -263,7 +263,7 @@ static void ExecStar(void) { while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) { HuPrcVSleep(); } - temp_r29 = lbl_8011E040[temp_r27]; + temp_r29 = starMesTbl1[temp_r27]; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r31), 0); BoardWinWait(); @@ -275,12 +275,12 @@ static void ExecStar(void) { HuPrcVSleep(); } if (GWSystem.last5_effect == 4) { - temp_r29 = lbl_8011E040[temp_r27] + 8; + temp_r29 = starMesTbl1[temp_r27] + 8; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); break; } - temp_r29 = lbl_8011E040[temp_r27] + 1; + temp_r29 = starMesTbl1[temp_r27] + 1; BoardWinCreateChoice(1, temp_r29, BoardWinPortraitGetStar(), 0); BoardWinAttrSet(0x10); if (GWPlayer[temp_r31].com) { @@ -294,7 +294,7 @@ static void ExecStar(void) { switch (BoardWinChoiceGet()) { case 0: if (BoardPlayerCoinsGet(temp_r31) < 20) { - temp_r29 = lbl_8011E040[temp_r27] + 2; + temp_r29 = starMesTbl1[temp_r27] + 2; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardStatusShowSet(temp_r31, 0); @@ -306,7 +306,7 @@ static void ExecStar(void) { } goto block_A; case 1: - temp_r29 = lbl_8011E040[temp_r27] + 4; + temp_r29 = starMesTbl1[temp_r27] + 4; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardStatusShowSet(temp_r31, 0); @@ -326,7 +326,7 @@ static void ExecStar(void) { } } block_A: - temp_r29 = lbl_8011E040[temp_r27] + 3; + temp_r29 = starMesTbl1[temp_r27] + 3; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); @@ -734,9 +734,9 @@ void BoardStarShowNext(s32 arg0) { HuPrcVSleep(); } if (var_r28 == 0) { - var_r30 = lbl_8011E040[GWBoardGet()] + 6; + var_r30 = starMesTbl1[GWBoardGet()] + 6; } else { - var_r30 = lbl_8011E064[GWBoardGet()][0]; + var_r30 = starMesTbl2[GWBoardGet()][0]; } BoardWinCreate(3, var_r30, -1); BoardWinPause(); @@ -748,9 +748,9 @@ void BoardStarShowNext(s32 arg0) { BoardWinKill(); HuPrcSleep(3); if (var_r28 == 0) { - var_r30 = lbl_8011E040[GWBoardGet()] + 7; + var_r30 = starMesTbl1[GWBoardGet()] + 7; } else { - var_r30 = lbl_8011E064[GWBoardGet()][1]; + var_r30 = starMesTbl2[GWBoardGet()][1]; } BoardWinCreate(3, var_r30, -1); BoardWinWait(); diff --git a/src/game/board/start.c b/src/game/board/start.c index 0cb9e8bc..bb8617b7 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -20,25 +20,25 @@ #include "game/board/window.h" #include "dolphin.h" +#include "ext_math.h" #include "string.h" typedef struct { struct { - u8 unk00_field0 : 1; - u8 unk00_field1 : 3; - u8 unk00_field2 : 2; - u8 unk00_field3 : 1; - u8 unk00_field4 : 1; + u8 isBoardVisible : 1; + u8 state : 3; + u8 index : 2; + u8 isActionable : 1; + u8 hasRolled : 1; }; - u8 unk01; - u8 unk02; + u8 delay; + u8 time; s8 unk03; - s8 unk04; - char unk05[1]; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; + s8 digit; + s16 yRot; + s16 diceMdl; + s16 model; + s16 diceParManId; s8 unk0E; } PlayerStartWork; @@ -133,7 +133,7 @@ static void DestroyStart(void) { } static void ExecStart(void) { - Vec sp8; + Vec pos; s32 i; BoardCameraNearFarSet(100.0f, 23000.0f); @@ -179,8 +179,8 @@ static void ExecStart(void) { for (i = 0; i < 4; i++) { BoardPlayerCornerPosSet(i); } - BoardSpacePosGet(0, GWPlayer->space_curr, &sp8); - BoardPlayerPosSetV(0, &sp8); + BoardSpacePosGet(0, GWPlayer->space_curr, &pos); + BoardPlayerPosSetV(0, &pos); BoardCameraMoveSet(0); BoardCameraViewSet(2); BoardCameraMotionWait(); @@ -224,10 +224,10 @@ static void ExecStart(void) { } static void ShowLogo(void) { - float temp_f28; - float var_f27; - s16 spA; - s16 sp8; + float scale; + float angleF; + s16 angleS; + s16 anglePosY; logoSprGrp = HuSprGrpCreate(1); BoardSpriteCreate(logoSprTbl[GWBoardGet()], 1000, 0, &logoSpr); @@ -236,26 +236,26 @@ static void ShowLogo(void) { HuSprAttrSet(logoSprGrp, 0, 8); HuSprScaleSet(logoSprGrp, 0, 0.01f, 0.01f); HuSprGrpPosSet(logoSprGrp, 288.0f, 240.0f); - for (spA = 0; spA < 90; spA += 4) { - OSs16tof32(&spA, &var_f27); - temp_f28 = sin(var_f27 * M_PI / 180.0); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 90; angleS += 4) { + OSs16tof32(&angleS, &angleF); + scale = sind(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprScaleSet(logoSprGrp, 0, 1.0f, 1.0f); - for (spA = 0; spA < 540; spA += 4) { - sp8 = spA % 180; - OSs16tof32(&sp8, &var_f27); - temp_f28 = 1.0 + 0.699999988079071 * sin(var_f27 * M_PI / 180.0); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 540; angleS += 4) { + anglePosY = angleS % 180; + OSs16tof32(&anglePosY, &angleF); + scale = 1.0 + 0.7f * sind(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprScaleSet(logoSprGrp, 0, 1.0f, 1.0f); HuPrcSleep(0x78); - for (spA = 0; spA < 90; spA += 4) { - OSs16tof32(&spA, &var_f27); - temp_f28 = cos(var_f27 * M_PI / 180.0); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 90; angleS += 4) { + OSs16tof32(&angleS, &angleF); + scale = cosd(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprGrpKill(logoSprGrp); @@ -263,75 +263,75 @@ static void ShowLogo(void) { } static void FocusStart(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - u32 var_r31; + Vec boardPos; + Vec offset; + Vec offset2; + Vec camRot; + float zoom; + u32 i; - for (var_f31 = 14000.0f; var_f31 >= 2000.0f; var_f31 -= 50.0f) { - BoardCameraZoomSet(var_f31); + for (zoom = 14000.0f; zoom >= 2000.0f; zoom -= 50.0f) { + BoardCameraZoomSet(zoom); HuPrcVSleep(); } BoardCameraZoomSet(2000.0f); - BoardModelPosGet(camFocus, &sp2C); - sp20.x = spacePos.x + 150.0f; - sp20.y = spacePos.y + 100.0f; - sp20.z = spacePos.z + 150.0f; - VECSubtract(&sp20, &sp2C, &sp14); - sp14.x /= 120.0f; - sp14.y /= 120.0f; - sp14.z /= 120.0f; + BoardModelPosGet(camFocus, &boardPos); + offset.x = spacePos.x + 150.0f; + offset.y = spacePos.y + 100.0f; + offset.z = spacePos.z + 150.0f; + VECSubtract(&offset, &boardPos, &offset2); + offset2.x /= 120.0f; + offset2.y /= 120.0f; + offset2.z /= 120.0f; HuAudSStreamFadeOut(streamStatus, 0x1388); - for (var_r31 = 0; var_r31 < 120; var_r31++) { - VECAdd(&sp14, &sp2C, &sp2C); - BoardModelPosSetV(camFocus, &sp2C); + for (i = 0; i < 120; i++) { + VECAdd(&offset2, &boardPos, &boardPos); + BoardModelPosSetV(camFocus, &boardPos); HuPrcVSleep(); } - BoardModelPosSetV(camFocus, &sp20); - sp8.x = -22.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; - BoardCameraMotionStartEx(camFocus, &sp8, NULL, 1500.0f, -1.0f, 21); + BoardModelPosSetV(camFocus, &offset); + camRot.x = -22.0f; + camRot.y = 0.0f; + camRot.z = 0.0f; + BoardCameraMotionStartEx(camFocus, &camRot, NULL, 1500.0f, -1.0f, 21); } static void CreatePlayerStart(void) { - Vec spC; - float temp_f30; - omObjData *var_r29; - PlayerStartWork *var_r30; + Vec boardPos; + float offsetX; + omObjData *boardObj; + PlayerStartWork *boardData; s8 i; - BoardModelPosGet(camFocus, &spC); + BoardModelPosGet(camFocus, &boardPos); for (i = 0; i < 4; i++) { playerOrderOld[i] = i; - var_r29 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, ExecPlayerStart); - playerStartObj[i] = var_r29; - var_r30 = OM_GET_WORK_PTR(var_r29, PlayerStartWork); - var_r30->unk00_field0 = 0; - var_r30->unk00_field2 = i; - var_r30->unk03 = -1; - var_r30->unk0A = -1; - var_r30->unk0C = -1; - var_r30->unk00_field1 = 1; - var_r30->unk01 = i * 30; - var_r30->unk00_field3 = 0; - var_r30->unk00_field4 = 0; - var_r30->unk06 = 2; - var_r30->unk04 = 1; - var_r30->unk0E = 0x3C; - var_r30->unk08 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); - BoardModelVisibilitySet(var_r30->unk08, 0); - BoardModelMotionSpeedSet(var_r30->unk08, 0.0f); - OSs8tof32(&i, &temp_f30); - temp_f30 = 135.0f * (temp_f30 - 2.0f + 0.5f); - BoardModelVisibilitySet(BoardPlayerModelGet(playerOrderOld[var_r30->unk00_field2]), 1); - var_r29->trans.x = spC.x + temp_f30; - var_r29->trans.y = spC.y + 700.0f; - var_r29->trans.z = spC.z + 100.0f; - BoardPlayerPosSet(playerOrderOld[var_r30->unk00_field2], var_r29->trans.x, var_r29->trans.y, var_r29->trans.z); - BoardPlayerMotionShiftSet(playerOrderOld[var_r30->unk00_field2], 4, 10.0f, 1.0f, HU3D_MOTATTR_NONE); + boardObj = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, ExecPlayerStart); + playerStartObj[i] = boardObj; + boardData = OM_GET_WORK_PTR(boardObj, PlayerStartWork); + boardData->isBoardVisible = 0; + boardData->index = i; + boardData->unk03 = -1; + boardData->model = -1; + boardData->diceParManId = -1; + boardData->state = 1; + boardData->delay = i * 30; + boardData->isActionable = 0; + boardData->hasRolled = 0; + boardData->yRot = 2; + boardData->digit = 1; + boardData->unk0E = 0x3C; + boardData->diceMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); + BoardModelVisibilitySet(boardData->diceMdl, 0); + BoardModelMotionSpeedSet(boardData->diceMdl, 0.0f); + OSs8tof32(&i, &offsetX); + offsetX = 135.0f * (offsetX - 2.0f + 0.5f); + BoardModelVisibilitySet(BoardPlayerModelGet(playerOrderOld[boardData->index]), 1); + boardObj->trans.x = boardPos.x + offsetX; + boardObj->trans.y = boardPos.y + 700.0f; + boardObj->trans.z = boardPos.z + 100.0f; + BoardPlayerPosSet(playerOrderOld[boardData->index], boardObj->trans.x, boardObj->trans.y, boardObj->trans.z); + BoardPlayerMotionShiftSet(playerOrderOld[boardData->index], 4, 10.0f, 1.0f, HU3D_MOTATTR_NONE); } if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardMusStart(0, 0xC, 0x7F, 0); @@ -341,107 +341,107 @@ static void CreatePlayerStart(void) { } } -static void ExecPlayerStart(omObjData *arg0) { - PlayerStartWork *temp_r31 = OM_GET_WORK_PTR(arg0, PlayerStartWork); +static void ExecPlayerStart(omObjData *object) { + PlayerStartWork *data = OM_GET_WORK_PTR(object, PlayerStartWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - if (hitFX[temp_r31->unk00_field2] != -1) { - HuAudFXStop(hitFX[temp_r31->unk00_field2]); - hitFX[temp_r31->unk00_field2] = -1; + if (data->isBoardVisible != 0 || BoardIsKill()) { + if (hitFX[data->index] != -1) { + HuAudFXStop(hitFX[data->index]); + hitFX[data->index] = -1; } - playerStartObj[temp_r31->unk00_field2] = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + playerStartObj[data->index] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); return; } - if (temp_r31->unk01 != 0) { - temp_r31->unk01--; + if (data->delay != 0) { + data->delay--; return; } - switch (temp_r31->unk00_field1) { + switch (data->state) { case 0: break; case 1: - PlayerFall(arg0, temp_r31); + PlayerFall(object, data); break; case 2: - PlayerWaitSpeak(arg0, temp_r31); + PlayerWaitSpeak(object, data); break; case 3: - PlayerDiceFall(arg0, temp_r31); + PlayerDiceFall(object, data); break; case 4: - PlayerDiceRoll(arg0, temp_r31); + PlayerDiceRoll(object, data); break; case 5: - PlayerDiceNumShow(arg0, temp_r31); + PlayerDiceNumShow(object, data); break; case 6: - PlayerDiceNumHide(arg0, temp_r31); + PlayerDiceNumHide(object, data); break; } } -static void PlayerFall(omObjData *arg0, PlayerStartWork *arg1) { +static void PlayerFall(omObjData *object, PlayerStartWork *data) { float temp_f31; - if (arg1->unk00_field3 != 0) { - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); - BoardPlayerIdleSet(playerOrderOld[arg1->unk00_field2]); - if (_CheckFlag(FLAG_ID_MAKE(1, 11)) && arg1->unk00_field2 == 3) { + if (data->isActionable != 0) { + SetPlayerStartState(playerOrderOld[data->index], 0); + BoardPlayerIdleSet(playerOrderOld[data->index]); + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) && data->index == 3) { BoardTutorialHookExec(0, 0); } return; } - if (arg1->unk02 > 200) { - arg1->unk02 = -56; + if (data->time > 200) { + data->time = -56; } - OSu8tof32(&arg1->unk02, &temp_f31); - arg0->trans.y += -0.08166667f * temp_f31 * temp_f31; - if (arg0->trans.y < spacePos.y) { - arg0->trans.y = spacePos.y; - arg1->unk02 = 0; - BoardPlayerMotionShiftSet(playerOrderOld[arg1->unk00_field2], 5, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - arg1->unk01 = 0xC; - arg1->unk00_field3 = 1; + OSu8tof32(&data->time, &temp_f31); + object->trans.y += -0.08166667f * temp_f31 * temp_f31; + if (object->trans.y < spacePos.y) { + object->trans.y = spacePos.y; + data->time = 0; + BoardPlayerMotionShiftSet(playerOrderOld[data->index], 5, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + data->delay = 0xC; + data->isActionable = 1; } - arg1->unk02++; - BoardPlayerPosSet(playerOrderOld[arg1->unk00_field2], arg0->trans.x, arg0->trans.y, arg0->trans.z); + data->time++; + BoardPlayerPosSet(playerOrderOld[data->index], object->trans.x, object->trans.y, object->trans.z); } -static void PlayerWaitSpeak(omObjData *arg0, PlayerStartWork *arg1) { - float var_f31; +static void PlayerWaitSpeak(omObjData *object, PlayerStartWork *data) { + float yRot; - if (arg1->unk02 == 0) { - var_f31 = 180.0f + BoardPlayerRotYGet(playerOrderOld[arg1->unk00_field2]); - BoardPlayerMotBlendSet(playerOrderOld[arg1->unk00_field2], var_f31, 0xF); - arg1->unk02 = 1; + if (data->time == 0) { + yRot = 180.0f + BoardPlayerRotYGet(playerOrderOld[data->index]); + BoardPlayerMotBlendSet(playerOrderOld[data->index], yRot, 0xF); + data->time = 1; return; } - if (BoardPlayerMotBlendCheck(playerOrderOld[arg1->unk00_field2])) { - BoardPlayerIdleSet(playerOrderOld[arg1->unk00_field2]); - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); + if (BoardPlayerMotBlendCheck(playerOrderOld[data->index])) { + BoardPlayerIdleSet(playerOrderOld[data->index]); + SetPlayerStartState(playerOrderOld[data->index], 0); } } -static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { - Vec sp8; - float var_f31; - float var_f30; +static void PlayerDiceFall(omObjData *object, PlayerStartWork *data) { + Vec boardPos; + float max; + float min; s32 i; - if (arg1->unk02 == 0) { + if (data->time == 0) { HuAudFXPlay(0x302); - BoardPlayerPosGet(playerOrderOld[arg1->unk00_field2], &sp8); - var_f30 = 250.0f; - var_f31 = 700.0f; - arg0->rot.x = (var_f30 - var_f31) / 30.0f; - sp8.y += var_f31; - BoardModelPosSetV(arg1->unk08, &sp8); - BoardModelVisibilitySet(arg1->unk08, 1); + BoardPlayerPosGet(playerOrderOld[data->index], &boardPos); + min = 250.0f; + max = 700.0f; + object->rot.x = (min - max) / 30.0f; + boardPos.y += max; + BoardModelPosSetV(data->diceMdl, &boardPos); + BoardModelVisibilitySet(data->diceMdl, 1); } else { - if (arg1->unk02 > 30.0f) { + if (data->time > 30.0f) { if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - if (arg1->unk00_field2 == 3) { + if (data->index == 3) { BoardTutorialHookExec(1, 0); for (i = 0; i < 4; i++) { SetPlayerStartState(playerOrderOld[i], 4); @@ -449,14 +449,14 @@ static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { } return; } - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 4); + SetPlayerStartState(playerOrderOld[data->index], 4); return; } - BoardModelPosGet(arg1->unk08, &sp8); - sp8.y += arg0->rot.x; - BoardModelPosSetV(arg1->unk08, &sp8); + BoardModelPosGet(data->diceMdl, &boardPos); + boardPos.y += object->rot.x; + BoardModelPosSetV(data->diceMdl, &boardPos); } - arg1->unk02++; + data->time++; } static s32 digitMdlTbl[9] = { @@ -471,177 +471,177 @@ static s32 playerOrderMesTbl[3] = { MAKE_MESSID(0x15, 0x15) }; -static void PlayerDiceRoll(omObjData *arg0, PlayerStartWork *arg1) { - Vec sp8; - float var_f30; - u32 var_r28; - s8 var_r29; - s8 temp_r26; +static void PlayerDiceRoll(omObjData *object, PlayerStartWork *data) { + Vec boardPos; + float time; + u32 jumpCheck; + s8 player; + s8 digit; - var_r28 = 0; - if (arg1->unk02 > arg1->unk06) { - arg1->unk02 = 0; - temp_r26 = arg1->unk04; + jumpCheck = 0; + if (data->time > data->yRot) { + data->time = 0; + digit = data->digit; do { - arg1->unk04 = BoardRandMod(9); - } while (arg1->unk04 == temp_r26); - OSs8tof32(&arg1->unk04, &var_f30); - BoardModelMotionTimeSet(arg1->unk08, var_f30 + 0.5f); + data->digit = BoardRandMod(9); + } while (data->digit == digit); + OSs8tof32(&data->digit, &time); + BoardModelMotionTimeSet(data->diceMdl, time + 0.5f); } - if (arg1->unk00_field4 == 0) { - if (GWPlayer[playerOrderOld[arg1->unk00_field2]].com) { + if (data->hasRolled == 0) { + if (GWPlayer[playerOrderOld[data->index]].com) { if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - if (arg1->unk0E != 0) { - arg1->unk0E--; + if (data->unk0E != 0) { + data->unk0E--; } else { - var_r28 = 0x100; + jumpCheck = PAD_BUTTON_A; } } else if (BoardRandMod(100) < 5) { - var_r28 = 0x100; + jumpCheck = PAD_BUTTON_A; } } else { - var_r28 = HuPadBtnDown[GWPlayer[playerOrderOld[arg1->unk00_field2]].port]; + jumpCheck = HuPadBtnDown[GWPlayer[playerOrderOld[data->index]].port]; } - if (var_r28 == 0x100) { - BoardPlayerDiceJumpStart(playerOrderOld[arg1->unk00_field2]); - arg1->unk00_field4 = 1; + if (jumpCheck == PAD_BUTTON_A) { + BoardPlayerDiceJumpStart(playerOrderOld[data->index]); + data->hasRolled = 1; } } else { - if (BoardPlayerDiceJumpCheck(playerOrderOld[arg1->unk00_field2])) { - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 5); - arg1->unk06 = 360; - arg0->rot.x = arg0->rot.y = 1.0f; - arg1->unk04 = BoardRandMod(9); + if (BoardPlayerDiceJumpCheck(playerOrderOld[data->index])) { + SetPlayerStartState(playerOrderOld[data->index], 5); + data->yRot = 360; + object->rot.x = object->rot.y = 1.0f; + data->digit = BoardRandMod(9); HuAudFXPlay(0x303); - if (hitFX[arg1->unk00_field2] != -1) { - HuAudFXStop(hitFX[arg1->unk00_field2]); - hitFX[arg1->unk00_field2] = -1; + if (hitFX[data->index] != -1) { + HuAudFXStop(hitFX[data->index]); + hitFX[data->index] = -1; } - var_r29 = 0; - while (var_r29 < 4) { - if (playerOrderNew[var_r29] == arg1->unk04 && var_r29 != playerOrderOld[arg1->unk00_field2]) { - arg1->unk04 = BoardRandMod(9); - var_r29 = 0; + player = 0; + while (player < 4) { + if (playerOrderNew[player] == data->digit && player != playerOrderOld[data->index]) { + data->digit = BoardRandMod(9); + player = 0; } else { - var_r29++; + player++; } } if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - arg1->unk04 = tutorialRollTbl[arg1->unk00_field2]; + data->digit = tutorialRollTbl[data->index]; } - playerOrderNew[playerOrderOld[arg1->unk00_field2]] = arg1->unk04; - arg1->unk0A = BoardModelCreate(digitMdlTbl[arg1->unk04], NULL, 0); - BoardModelPosGet(arg1->unk08, &sp8); - sp8.x += 50.0 * sin(0.0); - sp8.z += 50.0 * cos(0.0); - BoardModelPosSetV(arg1->unk0A, &sp8); - BoardModelMotionStart(arg1->unk0A, 0, 0); - BoardModelMotionSpeedSet(arg1->unk0A, 0.0f); - BoardModelMotionTimeSet(arg1->unk0A, 0.0f); - BoardModelLayerSet(arg1->unk0A, 2); - arg1->unk0C = BoardDiceEffectCreate(); - Hu3DParManPosSet(arg1->unk0C, sp8.x, sp8.y, sp8.z); - Hu3DParManTimeLimitSet(arg1->unk0C, 0x96); - BoardModelVisibilitySet(arg1->unk08, 0); + playerOrderNew[playerOrderOld[data->index]] = data->digit; + data->model = BoardModelCreate(digitMdlTbl[data->digit], NULL, 0); + BoardModelPosGet(data->diceMdl, &boardPos); + boardPos.x += 50.0 * sin(0.0); + boardPos.z += 50.0 * cos(0.0); + BoardModelPosSetV(data->model, &boardPos); + BoardModelMotionStart(data->model, 0, 0); + BoardModelMotionSpeedSet(data->model, 0.0f); + BoardModelMotionTimeSet(data->model, 0.0f); + BoardModelLayerSet(data->model, 2); + data->diceParManId = BoardDiceEffectCreate(); + Hu3DParManPosSet(data->diceParManId, boardPos.x, boardPos.y, boardPos.z); + Hu3DParManTimeLimitSet(data->diceParManId, 0x96); + BoardModelVisibilitySet(data->diceMdl, 0); return; } } - arg1->unk02++; + data->time++; } -static void PlayerDiceNumShow(omObjData *arg0, PlayerStartWork *arg1) { - float var_f30; +static void PlayerDiceNumShow(omObjData *object, PlayerStartWork *data) { + float yRot; - arg1->unk06 -= 18; - if (arg1->unk06 < 0) { - arg1->unk06 = 0; - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); + data->yRot -= 18; + if (data->yRot < 0) { + data->yRot = 0; + SetPlayerStartState(playerOrderOld[data->index], 0); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardTutorialHookExec(2, 0); } } - OSs16tof32(&arg1->unk06, &var_f30); - BoardModelRotYSet(arg1->unk0A, var_f30); + OSs16tof32(&data->yRot, &yRot); + BoardModelRotYSet(data->model, yRot); } -static void PlayerDiceNumHide(omObjData *arg0, PlayerStartWork *arg1) { - float var_f28; +static void PlayerDiceNumHide(omObjData *object, PlayerStartWork *data) { + float yRot; - switch (arg1->unk02) { + switch (data->time) { case 0: - arg1->unk06 += 18; - if (arg1->unk06 > 360) { - arg1->unk06 = 0; - arg1->unk02 = 1; - arg0->rot.x = 1.0f; - arg0->rot.y = 1.0f; + data->yRot += 18; + if (data->yRot > 360) { + data->yRot = 0; + data->time = 1; + object->rot.x = 1.0f; + object->rot.y = 1.0f; } - OSs16tof32(&arg1->unk06, &var_f28); - BoardModelRotYSet(arg1->unk0A, var_f28); + OSs16tof32(&data->yRot, &yRot); + BoardModelRotYSet(data->model, yRot); return; case 1: - arg1->unk06 += 9; - if (arg1->unk06 > 180) { - arg1->unk06 = 0; - arg1->unk02 = 2; + data->yRot += 9; + if (data->yRot > 180) { + data->yRot = 0; + data->time = 2; } - OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = 1.0 + 1.2999999523162842 * sin(var_f28 * M_PI / 180.0); + OSs16tof32(&data->yRot, &yRot); + object->rot.x = 1.0 + 1.3f * sind(yRot); break; case 2: - arg1->unk06 += 9; - if (arg1->unk06 > 180) { - arg1->unk06 = 179; - arg1->unk02 = 3; + data->yRot += 9; + if (data->yRot > 180) { + data->yRot = 179; + data->time = 3; } - OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = cos(0.5f * var_f28 * M_PI / 180.0); - arg0->rot.y = 1.0 + 1.2999999523162842 * sin(var_f28 * M_PI / 180.0); + OSs16tof32(&data->yRot, &yRot); + object->rot.x = cosd(0.5f * yRot); + object->rot.y = 1.0 + 1.3f * sind(yRot); break; case 3: - BoardModelVisibilitySet(arg1->unk0A, 0); - arg1->unk00_field0 = 1; + BoardModelVisibilitySet(data->model, 0); + data->isBoardVisible = 1; return; } - BoardModelScaleSet(arg1->unk0A, arg0->rot.x, arg0->rot.y, 1.0f); + BoardModelScaleSet(data->model, object->rot.x, object->rot.y, 1.0f); } -static void SetPlayerStartState(s32 arg0, s32 arg1) { - PlayerStartWork *temp_r31; - omObjData *temp_r30; +static void SetPlayerStartState(s32 player, s32 state) { + PlayerStartWork *data; + omObjData *object; - temp_r30 = playerStartObj[arg0]; - temp_r31 = OM_GET_WORK_PTR(temp_r30, PlayerStartWork); - temp_r31->unk00_field1 = arg1; - temp_r31->unk02 = 0; - temp_r31->unk01 = 0; - switch (arg1) { + object = playerStartObj[player]; + data = OM_GET_WORK_PTR(object, PlayerStartWork); + data->state = state; + data->time = 0; + data->delay = 0; + switch (state) { case 4: - hitFX[arg0] = HuAudFXPlay(0x300); + hitFX[player] = HuAudFXPlay(0x300); break; case 5: break; case 6: - temp_r31->unk06 = 0; + data->yRot = 0; break; } } -static s32 GetPlayerStartState(s32 arg0) { - PlayerStartWork *temp_r31; - omObjData *temp_r30; +static s32 GetPlayerStartState(s32 player) { + PlayerStartWork *data; + omObjData *object; - temp_r30 = playerStartObj[arg0]; - temp_r31 = OM_GET_WORK_PTR(temp_r30, PlayerStartWork); - return temp_r31->unk00_field1; + object = playerStartObj[player]; + data = OM_GET_WORK_PTR(object, PlayerStartWork); + return data->state; } static void ExecStartRoll(void) { s32 sp84[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; - s32 var_r29; - s32 var_r23; - s32 var_r22; - s32 var_r24; + s32 id; + s32 time; + s32 coinCount; + s32 j; s32 i; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -652,11 +652,11 @@ static void ExecStartRoll(void) { HuPrcVSleep(); } _CheckFlag(FLAG_ID_MAKE(1, 11)); - var_r29 = startMesTbl[GWBoardGet()][0]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][0]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); - var_r29 = startMesTbl[GWBoardGet()][1]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][1]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); for (i = 0; i < 4; i++) { @@ -694,11 +694,11 @@ static void ExecStartRoll(void) { BoardTutorialHookExec(3, i); } else { if (i == 0) { - var_r29 = startMesTbl[GWBoardGet()][2]; + id = startMesTbl[GWBoardGet()][2]; } else { - var_r29 = playerOrderMesTbl[i - 1]; + id = playerOrderMesTbl[i - 1]; } - BoardWinCreate(0, var_r29, -1); + BoardWinCreate(0, id, -1); BoardWinInsertMesSet(BoardPlayerGetCharMess(i), i); BoardWinWait(); } @@ -715,23 +715,23 @@ static void ExecStartRoll(void) { BoardPlayerIdleSet(i); } if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r29 = startMesTbl[GWBoardGet()][3]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][3]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); HuPrcSleep(30); if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - var_r22 = 100; - var_r23 = 1; + coinCount = 100; + time = 1; } else { - var_r22 = 10; - var_r23 = 6; + coinCount = 10; + time = 6; } - for (i = 0; i < var_r22; i++) { - for (var_r24 = 0; var_r24 < 4; var_r24++) { - BoardPlayerCoinsAdd(var_r24, 1); + for (i = 0; i < coinCount; i++) { + for (j = 0; j < 4; j++) { + BoardPlayerCoinsAdd(j, 1); } HuAudFXPlay(7); - HuPrcSleep(var_r23); + HuPrcSleep(time); } for (i = 0; i < 4; i++) { BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); @@ -748,16 +748,16 @@ static void ExecStartRoll(void) { for (i = 0; i < 4; i++) { BoardPlayerIdleSet(i); } - var_r29 = startMesTbl[GWBoardGet()][4]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][4]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); } } static void InitCamera(void) { - Vec sp14; - Vec sp8; + Vec offset; + Vec rotTarget; camStartFocusPos.x = 0.0f; camStartFocusPos.y = 100.0f; @@ -792,96 +792,96 @@ static void InitCamera(void) { BoardModelPosSetV(camFocus, &camStartFocusPos); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardCameraMoveSet(0); - sp14.x = spacePos.x + 150.0f; - sp14.y = spacePos.y + 100.0f; - sp14.z = spacePos.z + 150.0f; - BoardModelPosSetV(camFocus, &sp14); - sp8.x = -22.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; - sp14.x = sp14.y = sp14.z = 0.0f; - BoardCameraMotionStartEx(camFocus, &sp8, NULL, 1500.0f, -1.0f, 1); + offset.x = spacePos.x + 150.0f; + offset.y = spacePos.y + 100.0f; + offset.z = spacePos.z + 150.0f; + BoardModelPosSetV(camFocus, &offset); + rotTarget.x = -22.0f; + rotTarget.y = 0.0f; + rotTarget.z = 0.0f; + offset.x = offset.y = offset.z = 0.0f; + BoardCameraMotionStartEx(camFocus, &rotTarget, NULL, 1500.0f, -1.0f, 1); BoardCameraMotionWait(); BoardCameraMoveSet(1); } else { - sp14.x = 0.0f; - sp14.y = 0.0f; - sp14.z = 0.0f; - sp8.x = -70.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; + offset.x = 0.0f; + offset.y = 0.0f; + offset.z = 0.0f; + rotTarget.x = -70.0f; + rotTarget.y = 0.0f; + rotTarget.z = 0.0f; BoardCameraMoveSet(0); - BoardCameraMotionStartEx(camFocus, &sp8, &sp14, 14000.0f, -1.0f, 1); + BoardCameraMotionStartEx(camFocus, &rotTarget, &offset, 14000.0f, -1.0f, 1); BoardCameraMotionWait(); BoardCameraMoveSet(1); } } static void InitHost(void) { - Vec sp8; + Vec newPos; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { hostMdl = BoardStarHostMdlGet(); - sp8.x = spacePos.x + 150.0f; - sp8.y = spacePos.y; - sp8.z = spacePos.z - 50.0f; - BoardModelPosSetV(hostMdl, &sp8); + newPos.x = spacePos.x + 150.0f; + newPos.y = spacePos.y; + newPos.z = spacePos.z - 50.0f; + BoardModelPosSetV(hostMdl, &newPos); BoardModelVisibilitySet(hostMdl, 1); BoardModelMotionStart(hostMdl, 1, 0x40000001); } } static void CreateTapWin(void) { - float sp8[2]; - float var_f31; - float var_f30; - s32 var_r31; + float dimensions[2]; + float x; + float y; + s32 id; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r31 = MAKE_MESSID(0x12, 0x14); - HuWinMesMaxSizeGet(1, sp8, var_r31); - var_f31 = -10000.0f; - var_f30 = 368.0f; - tapWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); + id = MAKE_MESSID(0x12, 0x14); + HuWinMesMaxSizeGet(1, dimensions, id); + x = -10000.0f; + y = 368.0f; + tapWin = HuWinCreate(x, y, dimensions[0], dimensions[1], 0); HuWinBGTPLvlSet(tapWin, 0.0f); HuWinMesSpeedSet(tapWin, 0); - HuWinMesSet(tapWin, var_r31); + HuWinMesSet(tapWin, id); HuWinDispOff(tapWin); } } static void OrderPlayers(void) { - s32 temp_r29; - PlayerConfig *temp_r28; - PlayerState *temp_r27; + s32 pOrderTemp; + PlayerConfig *playerCfg; + PlayerState *state; s32 i; s32 j; - temp_r28 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayerCfg), MEMORY_DEFAULT_NUM); - temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayer), MEMORY_DEFAULT_NUM); + playerCfg = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayerCfg), MEMORY_DEFAULT_NUM); + state = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayer), MEMORY_DEFAULT_NUM); for (i = 0; i < 4; i++) { playerOrderOld[i] = i; - memcpy(temp_r28 + i, &GWPlayerCfg[i], sizeof(PlayerConfig)); - memcpy(temp_r27 + i, &GWPlayer[i], sizeof(PlayerState)); + memcpy(playerCfg + i, &GWPlayerCfg[i], sizeof(PlayerConfig)); + memcpy(state + i, &GWPlayer[i], sizeof(PlayerState)); } for (i = 0; i < 3; i++) { for (j = 3; j > i; j--) { if (playerOrderNew[j - 1] < playerOrderNew[j]) { - temp_r29 = playerOrderNew[j]; + pOrderTemp = playerOrderNew[j]; playerOrderNew[j] = playerOrderNew[j - 1]; - playerOrderNew[j - 1] = temp_r29; - temp_r29 = playerOrderOld[j]; + playerOrderNew[j - 1] = pOrderTemp; + pOrderTemp = playerOrderOld[j]; playerOrderOld[j] = playerOrderOld[j - 1]; - playerOrderOld[j - 1] = temp_r29; + playerOrderOld[j - 1] = pOrderTemp; } } } for (i = 0; i < 4; i++) { - memcpy(&GWPlayerCfg[i], temp_r28 + playerOrderOld[i], sizeof(PlayerConfig)); - memcpy(&GWPlayer[i], temp_r27 + playerOrderOld[i], sizeof(PlayerState)); + memcpy(&GWPlayerCfg[i], playerCfg + playerOrderOld[i], sizeof(PlayerConfig)); + memcpy(&GWPlayer[i], state + playerOrderOld[i], sizeof(PlayerState)); GWPlayer[i].port = GWPlayerCfg[i].pad_idx; GWPlayerCfg[i].pad_idx = GWPlayerCfg[i].pad_idx; } - HuMemDirectFree(temp_r28); - HuMemDirectFree(temp_r27); + HuMemDirectFree(playerCfg); + HuMemDirectFree(state); } diff --git a/src/game/board/ui.c b/src/game/board/ui.c index d8f89499..ff2a9066 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -453,10 +453,10 @@ void BoardStatusHammerShowSet(s32 arg0, s32 arg1) { if (temp_r31->unk00_bit6) { if (arg1 != 0) { - HuSprAttrSet(temp_r31->unk02, 0x10, 2); + HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); } else { - HuSprAttrReset(temp_r31->unk02, 0x10, 2); - HuSprAttrSet(temp_r31->unk02, 0x10, 1); + HuSprAttrReset(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); + HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_NOANIM); } } } @@ -618,15 +618,15 @@ static s32 UpdateBoardStatus(void) { temp_r27 = GWPlayer[i].items[j]; if (temp_r27 != -1 && temp_r31->unk00_bit5) { UpdateStatusItem(temp_r31, j, temp_r27); - HuSprAttrReset(temp_r31->unk02, j + 0xD, 4); + HuSprAttrReset(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(temp_r31->unk02, j + 0xD, 4); + HuSprAttrSet(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); } } if (GWPlayer[i].com) { - HuSprAttrReset(temp_r31->unk02, 0xC, 4); + HuSprAttrReset(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(temp_r31->unk02, 0xC, 4); + HuSprAttrSet(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); } temp_r28 = statusColTbl[GWPlayer[i].color]; HuSprColorSet(temp_r31->unk02, 0, temp_r28[0], temp_r28[1], temp_r28[2]); @@ -685,7 +685,7 @@ void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2) { } else { HuSprBankSet(arg0, arg1 + 1, temp_r28); HuSprBankSet(arg0, arg1, temp_r27); - HuSprAttrReset(arg0, arg1, 4); + HuSprAttrReset(arg0, arg1, HUSPR_ATTR_DISPOFF); } } @@ -1616,8 +1616,8 @@ static void UpdateItemPickGfx(omObjData *arg0) { if (!temp_r30->unk00_bit7) { temp_r30->unk00_bit3 = 1; HuSprBankSet(temp_r30->unk04, 0, 1); - HuSprAttrSet(temp_r30->unk04, 0, 2); - HuSprAttrReset(temp_r30->unk04, 0, 1); + HuSprAttrSet(temp_r30->unk04, 0, HUSPR_ATTR_LOOP); + HuSprAttrReset(temp_r30->unk04, 0, HUSPR_ATTR_NOANIM); arg0->func = UpdateItemPickup; HuWinDispOff(temp_r30->unk06); } else { @@ -1951,28 +1951,32 @@ static void UpdateItemWindow(omObjData *arg0) { static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { float spC[2]; - float var_f31; - float var_f30; - float var_f29; + + float posX; + float posY; + float yOfs; s32 var_r30; - + #if VERSION_NTSC switch (GWGameStat.language) { case 1: - var_f31 = 0.0f; + yOfs = 0.0f; break; case 0: - var_f31 = 0.0f; + yOfs = 0.0f; break; } + #else + yOfs = 0; + #endif if (arg1 != 0) { var_r30 = MAKE_MESSID(0x10, 0x1A); } else { var_r30 = MAKE_MESSID(0x10, 0x1B); } HuWinMesMaxSizeGet(1, spC, var_r30); - var_f30 = -10000.0f; - var_f29 = var_f31 + (HU_DISP_HEIGHT-128); - arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0); + posX = -10000.0f; + posY = yOfs + (HU_DISP_HEIGHT-128); + arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0); HuWinBGTPLvlSet(arg0->unk06, 0.0f); HuWinMesSpeedSet(arg0->unk06, 0); HuWinMesSet(arg0->unk06, var_r30); diff --git a/src/game/board/view.c b/src/game/board/view.c index 369f16f7..38a6157c 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -15,6 +15,8 @@ #include "game/board/space.h" #include "game/board/ui.h" +#include "ext_math.h" + typedef struct { struct { u8 unk00_field0 : 1; @@ -247,9 +249,9 @@ static void ExecMapView(void) { if (sp9 != 0 || sp8 != 0) { OSs8tof32(&sp9, &spC.x); OSs8tof32(&sp8, &spC.z); - temp_f28 = 180.0 * (atan2(spC.x, -spC.z) / M_PI); - spC.x = var_f29 * sin(temp_f28 * M_PI / 180.0); - spC.z = var_f29 * cos(temp_f28 * M_PI / 180.0); + temp_f28 = atan2d(spC.x, -spC.z); + spC.x = var_f29 * sind(temp_f28); + spC.z = var_f29 * cosd(temp_f28); } VECAdd(&spC, &focusPos, &focusPos); if (focusPos.x < temp_f26) { @@ -396,20 +398,32 @@ static void DestroyFocus(void) { static void CreateButtonWin(void) { float sp8[2]; - float var_f31; - float var_f30; + float posX; + float posY; s32 var_r31; if (viewControls != 2) { var_r31 = MAKE_MESSID(0x09, 0x05); - var_f31 = 286.0f; + #if VERSION_PAL + HuWinMesMaxSizeGet(1, sp8, var_r31); + posX = 288-((sp8[0]/2)-32); + #endif + posY = 286.0f; } else { var_r31 = MAKE_MESSID(0x10, 0x4D); - var_f31 = 328.0f; + #if VERSION_PAL + posX = -10000.0f; + posY = 324.0f; + #else + posY = 328.0f; + #endif + } HuWinMesMaxSizeGet(1, sp8, var_r31); - var_f30 = -10000.0f; - buttonWin = HuWinCreate(var_f30, var_f31, sp8[0], sp8[1], 0); + #if VERSION_NTSC + posX = -10000.0f; + #endif + buttonWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(buttonWin, 0.0f); HuWinMesSpeedSet(buttonWin, 0); HuWinMesSet(buttonWin, var_r31); @@ -551,7 +565,7 @@ static void UpdateOverheadView(omObjData *arg0) { sp14.y -= 240.0f; VECSubtract(&sp20, &sp14, &sp8); sp8.z = 0.0f; - temp_f30 = BoardDAngleCalc(180.0 * (atan2(sp8.y, sp8.x) / M_PI) - 90.0); + temp_f30 = BoardDAngleCalc(atan2d(sp8.y, sp8.x) - 90.0); temp_f31 = VECMag(&sp8) / 32; if (i != 4) { var_r28 = i + 4; @@ -565,15 +579,15 @@ static void UpdateOverheadView(omObjData *arg0) { BoardModelVisibilitySet(temp_r31->unk04, 0); } else if (temp_r31->unk01 != 0) { if (i != 4) { - HuSprAttrReset(temp_r31->unk02, i, 4); + HuSprAttrReset(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(temp_r31->unk02, var_r28, 4); + HuSprAttrReset(temp_r31->unk02, var_r28, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(temp_r31->unk04, 1); } else { if (i != 4) { - HuSprAttrSet(temp_r31->unk02, i, 4); + HuSprAttrSet(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(temp_r31->unk02, var_r28, 4); + HuSprAttrSet(temp_r31->unk02, var_r28, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(temp_r31->unk04, 0); } } diff --git a/src/game/board/warp.c b/src/game/board/warp.c index ddc92315..c25a8511 100644 --- a/src/game/board/warp.c +++ b/src/game/board/warp.c @@ -12,7 +12,7 @@ #include "game/objsub.h" #include "game/disp.h" -#include "math.h" +#include "ext_math.h" static void WarpInit(s32); static void WarpLaunch(s32); @@ -234,7 +234,7 @@ static void WarpImpact(s32 player) { speed = 4.0f; for (angle = 0.0f, temp = angle; angle < 180.0f; angle += speed) { - temp_f30 = sin((M_PI * angle) / 180.0); + temp_f30 = sind(angle); BoardModelScaleSet(warpImpactMdl, 0.5f + temp_f30, 0.5f + temp_f30, 0.5f + temp_f30); HuPrcVSleep(); } @@ -245,4 +245,4 @@ static void WarpImpact(s32 player) { BoardPlayerIdleSet(warpImpactPlayer[i]); } warpState = 6; -} \ No newline at end of file +} diff --git a/src/game/board/window.c b/src/game/board/window.c index 447f45e0..4fbc3f45 100644 --- a/src/game/board/window.c +++ b/src/game/board/window.c @@ -97,6 +97,11 @@ static void ExecBoardWindow(void) { if (size[0] <= size_win[0]) { size[0] = size_win[0]; pos[0] = pos_win[0]; + #if VERSION_PAL + if(winPosIdx == 1) { + size[0] += 4; + } + #endif } else { pos[0] = -10000.0f; } @@ -338,7 +343,7 @@ s32 BoardWinPortraitGetStar(void) { void BoardWinPlayerSet(s32 player) { s32 i; - + #if VERSION_NTSC if (player == -1) { if (GWPartyGet() != 1) { for (i = 0, disablePlayer = i; i < 4; i++) { @@ -354,6 +359,21 @@ void BoardWinPlayerSet(s32 player) { } else { disablePlayer = ~(1 << GWPlayer[player].port); } + #else + if (player == -1) { + if (GWPartyGet() != 1) { + for (i = 0, disablePlayer = i; i < 4; i++) { + if (GWPlayer[i].com != 0) { + disablePlayer |= 1 << GWPlayer[i].port; + } + } + } else { + disablePlayer = 0; + } + } else { + disablePlayer = ~(1 << GWPlayer[player].port); + } + #endif if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { disablePlayer = 0; } @@ -405,4 +425,9 @@ void BoardWinStartComKeySet(void) { void BoardWinComKeyFuncSet(BoardWinComKeyFunc func) { comKeyFunc = func; +} + +s16 BoardWinIDGet(void) +{ + return windowID; } \ No newline at end of file diff --git a/src/game/card.c b/src/game/card.c index 845bf3b0..97fdd32d 100644 --- a/src/game/card.c +++ b/src/game/card.c @@ -1,6 +1,7 @@ #include "dolphin.h" #include "game/memory.h" #include "game/card.h" +#include "version.h" static void *cardWork; u8 UnMountCnt; @@ -98,7 +99,11 @@ s32 HuCardFormat(s16 slot) static void MountCallBack(s32 chan, s32 result) { + #if VERSION_ENG UnMountCnt = (1 << chan); + #else + UnMountCnt |= (1 << chan); + #endif } s32 HuCardOpen(s16 slot, const char *fileName, CARDFileInfo *fileInfo) diff --git a/src/game/chrman.c b/src/game/chrman.c index aa090cf3..b8ad92a3 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -83,12 +83,13 @@ static void OrbitEffect(HsfanimStruct01 *arg0); static void UpdateNpcEffect(void); static s32 PlayStepFX(s16 arg0, s16 arg1, u8 arg2); -static UnkCharInstanceStruct charInstance[8]; -static s16 effectMdl[8]; -static EffectParamData *particleData[8]; +static UnkCharInstanceStruct charInstance[CHARNO_MAX ]; +static s16 effectMdl[CHAR_EFFECT_AND_PARTICLE_MAX]; +static EffectParamData *particleData[CHAR_EFFECT_AND_PARTICLE_MAX]; static Process *itemHookProcess[32]; -static u16 lbl_801975B0[8]; -static u8 lbl_801975C0[0x90]; // Unused? +//holds normal characters 0-7, then more characters 8-14 +static u16 lbl_801975B0[CHARNO_MAX + CHAR_NPC_MAX]; +static u8 lbl_801975CE[0x82]; // Unused? static s32 skipAnimUpdate; static void *effectAMemP; @@ -110,7 +111,7 @@ static EffectData effectDataTbl[8] = { { DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), 0x000C, 0x0000, 0x00000002 }, }; -static s32 charDirTbl[8][3] = { +static s32 charDirTbl[CHARNO_MAX ][3] = { { DATADIR_MARIOMDL0, DATADIR_MARIOMDL1, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00) }, { DATADIR_LUIGIMDL0, DATADIR_LUIGIMDL1, DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00) }, { DATADIR_PEACHMDL0, DATADIR_PEACHMDL1, DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00) }, @@ -150,10 +151,10 @@ void CharManInit(void) s16 i; s16 j; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { temp_r29 = &charInstance[i]; temp_r29->unkC0 = NULL; - for (j = 0; j < 32; j++) { + for (j = 0; j < ARRAY_COUNT(temp_r29->unk0C); j++) { temp_r29->unk0C[j] = -1; } temp_r29->unk00 = -1; @@ -162,11 +163,11 @@ void CharManInit(void) if (!effectAMemP) { effectAMemP = (void *)HuAR_DVDtoARAM(0x120000); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectMdl[i] = -1; particleData[i] = NULL; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { itemHookProcess[i] = NULL; } } @@ -180,7 +181,7 @@ void CharARAMOpen(s16 character) { UnkCharInstanceStruct *temp_r31; - if (character >= 8 || character < 0 || character == 0xFF) { + if (character >= CHARNO_MAX || character < 0 || character == 0xFF) { return; } temp_r31 = &charInstance[character]; @@ -708,12 +709,12 @@ static void InitEffect(void) s16 j; var_r27 = 0; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] == -1) { temp_r26 = HuDataSelHeapReadNum(effectDataTbl[i].unk00, MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25 = HuSprAnimRead(temp_r26); effectMdl[i] = Hu3DParticleCreate(temp_r25, effectDataTbl[i].unk04); - if (i == 7) { + if (i == CHAR_EFFECT_AND_PARTICLE_MAX - 1) { Hu3DParticleAnimModeSet(effectMdl[i], 0); } Hu3DParticleHookSet(effectMdl[i], UpdateEffect); @@ -911,7 +912,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk40.a = var_r28; if (var_r31->unk2C) { if (temp_r30[i].unk00 & 1) { - var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00_s16 + i) & 1) ? 1.0 : 0.5); + var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00 + i) & 1) ? 1.0 : 0.5); } else { var_r31->unk2C = var_r31->unk28; @@ -921,7 +922,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 0.0f; } } - var_r31->unk00_s16++; + var_r31->unk00++; } else { switch (var_r31->unk02) { @@ -947,11 +948,11 @@ static void RotateEffect(HsfanimStruct01 *arg0) float var_f31; temp_r30 = &Hu3DData[(s32)arg0->unk08.x]; - if (arg0->unk00_s16 < 8) { - var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1)); + if (arg0->unk00 < 8) { + var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00 + 1)); arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x; arg0->unk40.a = 0xFF; - var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1)); + var_f31 = 0.3 + sind(15.0f * (arg0->unk00 + 1)); } else { var_f31 = 0.3 + sind(135); @@ -960,14 +961,14 @@ static void RotateEffect(HsfanimStruct01 *arg0) arg0->unk34.x = temp_r30->pos.x + arg0->unk14.x * var_f31; arg0->unk34.y = temp_r30->pos.y + arg0->unk08.y * temp_r30->scale.x + arg0->unk14.y * var_f31; arg0->unk34.z = temp_r30->pos.z + arg0->unk14.z * var_f31; - if (arg0->unk00_s16 > 0x14) { + if (arg0->unk00 > 0x14) { arg0->unk40.a -= 0x20; arg0->unk2C -= 8.0f * temp_r30->scale.x; if (arg0->unk2C < 0.0f) { arg0->unk2C = 0.0f; } } - arg0->unk00_s16++; + arg0->unk00++; } static float voiceParam[16] @@ -984,7 +985,7 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) temp_r28 = arg0->unk08.x; temp_r29 = &charInstance[temp_r28]; temp_r30 = &Hu3DData[temp_r29->unk00]; - if (arg0->unk00_s16 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) { + if (arg0->unk00 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) { arg0->unk2C += 4.0f * temp_r30->scale.x; } arg0->unk40.a = 0xFF; @@ -994,15 +995,15 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) else { var_r25 = voiceParam[temp_r28 * 2 + 1]; } - temp_r26 = (arg0->unk00_s16 * 5) % 360; + temp_r26 = (arg0->unk00 * 5) % 360; arg0->unk34.x = temp_r30->pos.x + 40.0 * sind(arg0->unk08.y + temp_r26) * temp_r30->scale.x; arg0->unk34.y = temp_r30->pos.y + var_r25 * temp_r30->scale.x; arg0->unk34.z = temp_r30->pos.z + 40.0 * cosd(arg0->unk08.y + temp_r26) * temp_r30->scale.x; - arg0->unk00_s16++; - if (arg0->unk00_s16 >= 0x8F) { - arg0->unk00_s16 = 0x48; + arg0->unk00++; + if (arg0->unk00 >= 0x8F) { + arg0->unk00 = 0x48; } - if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00_s16 > 0x1E) { + if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00 > 0x1E) { arg0->unk2C -= 4.0f * temp_r30->scale.x; if (arg0->unk2C < 0.0f) { arg0->unk2C = 0.0f; @@ -1035,12 +1036,12 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) return -1; } temp_r26 = data_num & 0xFFFF0000; - for (var_r28 = 0; var_r28 < 8; var_r28++) { + for (var_r28 = 0; var_r28 < CHARNO_MAX ; var_r28++) { if (temp_r26 == charDirTbl[var_r28][2]) { break; } } - if (var_r28 != 8 || temp_r26 == 0) { + if (var_r28 != CHARNO_MAX || temp_r26 == 0) { data_num &= 0xFFFF; var_r27 = HuAR_ARAMtoMRAMFileRead(data_num | charDirTbl[character][2], MEMORY_DEFAULT_NUM, 2); if (!var_r27) { @@ -1063,12 +1064,12 @@ void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == arg1) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { temp_r30->unk4C[i] = arg2; } } @@ -1079,7 +1080,7 @@ void CharModelMotionKill(s16 character, u32 motion) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == motion) { break; } @@ -1093,7 +1094,7 @@ void CharModelMotionDataClose(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelMotionDataClose(i); } } @@ -1107,7 +1108,7 @@ void CharModelDataClose(s16 arg0) s16 i; if (arg0 == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelDataClose(i); // Required to match. (void)i; @@ -1127,17 +1128,17 @@ void CharModelKill(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelKill(i); } - for (i = 0; i < 15; i++) { + for (i = 0; i < ARRAY_COUNT(lbl_801975B0); i++) { lbl_801975B0[i] = 0; } return; } CharModelMotionDataClose(character); temp_r29 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r29->unk0C); i++) { if (temp_r29->unk0C[i] != -1) { Hu3DMotionKill(temp_r29->unk0C[i]); } @@ -1147,13 +1148,13 @@ void CharModelKill(s16 character) Hu3DModelKill(temp_r29->unk00); } temp_r29->unk00 = -1; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { if (charInstance[i].unk00 != -1) { break; } } - if (i == 8) { - for (i = 0; i < 8; i++) { + if (i == CHARNO_MAX ) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelKill(effectMdl[i]); } @@ -1163,7 +1164,7 @@ void CharModelKill(s16 character) if (temp_r29->unkC4) { HuMemDirectFree(temp_r29->unkC4->user_data); HuPrcKill(temp_r29->unkC4); - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (itemHookProcess[i]) { HuPrcKill(itemHookProcess[i]); } @@ -1319,7 +1320,7 @@ void CharModelLayerSetAll(s16 arg0) { s16 i; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelLayerSet(effectMdl[i], arg0); } @@ -1330,12 +1331,12 @@ static inline Process *CharModelItemHookCreateInlineFunc(void) { s16 i; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (!itemHookProcess[i]) { break; } } - if (i == 32) { + if (i == ARRAY_COUNT(itemHookProcess)) { return NULL; } else { @@ -1423,7 +1424,7 @@ static void UpdateItemHook(void) } PSMTXIdentity(temp_r30->unk_F0); temp_r25 = HuPrcCurrentGet(); - for (var_r28 = 0; var_r28 < 32; var_r28++) { + for (var_r28 = 0; var_r28 < ARRAY_COUNT(itemHookProcess); var_r28++) { if (itemHookProcess[var_r28] == temp_r25) { HuPrcKill(temp_r25); itemHookProcess[var_r28] = NULL; @@ -1445,7 +1446,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) ParticleData *var_r27; ModelData *var_r26; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1462,7 +1463,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) var_r31->unk24 = 0.1f * (frandmod(20) - 10); var_r31->unk40.a = 0xFF - frandmod(3) * 16; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 10.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1501,7 +1502,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) float var_f30; s16 temp_r30; - var_f30 = 20.0f + 3.75f * arg0->unk00_s16; + var_f30 = 20.0f + 3.75f * arg0->unk00; if (var_f30 > 90.0f) { var_f30 = 90.0f; } @@ -1514,7 +1515,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) if (arg0->unk20 < 1.0f) { arg0->unk20 = 1.0f; } - if (arg0->unk00_s16 > 8) { + if (arg0->unk00 > 8) { temp_r30 = arg0->unk40.a; temp_r30 -= 8; if (temp_r30 < 0) { @@ -1525,7 +1526,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) arg0->unk40.a = temp_r30; } } - arg0->unk00_s16++; + arg0->unk00++; } static EffectParamData coinParticleParam @@ -1566,12 +1567,12 @@ void fn_8004EC74(s16 character) temp_r30 = &charInstance[character]; temp_r31 = &Hu3DData[temp_r30->unk00]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == temp_r31->unk_08) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { Hu3DModelObjMtxGet(temp_r30->unk00, "test11_tex_we-itemhook-r", sp24); sp18.x = sp24[0][3]; sp18.y = sp24[1][3]; @@ -1698,12 +1699,12 @@ void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) if (temp_r31->unk00 == -1) { return; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r31->unk0C); i++) { if (temp_r31->unk0C[i] == motion) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r31->unk0C)) { if (flag == 0) { temp_r31->unk8C[i] |= 1; } @@ -1730,7 +1731,7 @@ void CharModelEffectEnableSet(s16 character, s32 arg1) { UnkCharInstanceStruct *temp_r31 = &charInstance[character]; - if (character >= 8) { + if (character >= CHARNO_MAX ) { if (arg1 == 0) { lbl_801975B0[character] |= 0x10; } @@ -1932,14 +1933,14 @@ static void UpdateNpcEffect(void) if (lbl_801975B0[temp_r28] & 0x10) { break; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; CreateEffectStar( temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; diff --git a/src/game/code_8003FF68.c b/src/game/code_8003FF68.c index bff84c12..96dc703c 100644 --- a/src/game/code_8003FF68.c +++ b/src/game/code_8003FF68.c @@ -1,3 +1,4 @@ +#include "game/audio.h" #include "game/data.h" #include "game/hsfman.h" #include "game/process.h" diff --git a/src/game/data.c b/src/game/data.c index e630d7ed..f76419c5 100644 --- a/src/game/data.c +++ b/src/game/data.c @@ -6,7 +6,7 @@ #define PTR_OFFSET(ptr, offset) (void *)(((u8 *)(ptr)+(u32)(offset))) #define DATA_EFF_SIZE(size) (((size)+1) & ~0x1) -static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num); +void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num); #define DATA_MAX_READSTAT 128 @@ -406,7 +406,7 @@ void **HuDataReadMulti(s32 *data_ids) return HuDataReadMultiSub(data_ids, FALSE, 0); } -static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num) +void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num) { s32 *dir_ids; char **paths; diff --git a/src/game/decode.c b/src/game/decode.c index 6414b269..db70b788 100644 --- a/src/game/decode.c +++ b/src/game/decode.c @@ -8,7 +8,7 @@ struct decode_data u32 size; }; -static u8 TextBuffer[1024]; +static u8 textBuffer[1024]; static void HuDecodeNone(struct decode_data *decode) { @@ -27,7 +27,7 @@ static void HuDecodeLz(struct decode_data *decode) for(i=0; i<1024; i++) { - TextBuffer[i] = 0; + textBuffer[i] = 0; } while(decode->size) { flag >>= 1; @@ -35,7 +35,7 @@ static void HuDecodeLz(struct decode_data *decode) flag = (*decode->src++)|0xFF00; } if(flag & 0x1) { - TextBuffer[pos++] = *decode->dst++ = *decode->src++; + textBuffer[pos++] = *decode->dst++ = *decode->src++; pos = pos & 0x3FF; decode->size--; } else { @@ -44,7 +44,7 @@ static void HuDecodeLz(struct decode_data *decode) i |= ((copy_len & ~0x3F) << 2); copy_len = (copy_len & 0x3F)+3; for(j=0; jdst++ = TextBuffer[(i+j) & 0x3FF]; + textBuffer[pos++] = *decode->dst++ = textBuffer[(i+j) & 0x3FF]; pos &= 0x3FF; } decode->size -= j; diff --git a/src/game/gamework.c b/src/game/gamework.c index 371d8499..0100278f 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -1,7 +1,11 @@ -#include "string.h" #include "game/gamework.h" -#include "game/gamework_data.h" #include "game/flag.h" +#include "game/gamework_data.h" +#include "string.h" +#include "version.h" + +s16 GwLanguage = 1; +s16 GwLanguageSave = -1; GameStat GWGameStatDefault; GameStat GWGameStat; @@ -20,15 +24,16 @@ static inline void InitPlayerConfig(void) { PlayerConfig *config; s32 i; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { config = &GWPlayerCfg[i]; config->character = i; config->pad_idx = i; config->diff = 0; config->group = i; - if(!HuPadStatGet(i)) { + if (!HuPadStatGet(i)) { config->iscom = 0; - } else { + } + else { config->iscom = 1; } } @@ -36,11 +41,11 @@ static inline void InitPlayerConfig(void) static inline void ResetBoardSettings(void) { - GWRumbleSet(1); - GWMGExplainSet(1); - GWMGShowComSet(1); - GWMessSpeedSet(1); - GWSaveModeSet(0); + GWRumbleSet(1); + GWMGExplainSet(1); + GWMGShowComSet(1); + GWMessSpeedSet(1); + GWSaveModeSet(0); } void GWInit(void) @@ -49,23 +54,29 @@ void GWInit(void) _InitFlag(); GWErase(); InitPlayerConfig(); +#if VERSION_JP + GWGameStat.language = 0; +#elif VERSION_ENG GWGameStat.language = 1; +#else + GWLanguageSet(GwLanguage); +#endif ResetBoardSettings(); } static inline void ResetMGRecord(GameStat *game_stat) { - game_stat->mg_record[0] = 18000; + game_stat->mg_record[0] = 300 * REFRESH_RATE; game_stat->mg_record[1] = 80; - game_stat->mg_record[2] = 3600; - game_stat->mg_record[3] = 7200; + game_stat->mg_record[2] = 60 * REFRESH_RATE; + game_stat->mg_record[3] = 120 * REFRESH_RATE; game_stat->mg_record[4] = 0; - game_stat->mg_record[5] = 3600; - game_stat->mg_record[6] = 18000; - game_stat->mg_record[7] = 18000; - game_stat->mg_record[8] = 18000; + game_stat->mg_record[5] = 60 * REFRESH_RATE; + game_stat->mg_record[6] = 300 * REFRESH_RATE; + game_stat->mg_record[7] = 300 * REFRESH_RATE; + game_stat->mg_record[8] = 300 * REFRESH_RATE; game_stat->mg_record[9] = 0; - game_stat->mg_record[10] = 300; + game_stat->mg_record[10] = 5 * REFRESH_RATE; game_stat->mg_record[11] = 0; game_stat->mg_record[12] = 0; game_stat->mg_record[13] = 0; @@ -76,9 +87,9 @@ static inline void ResetBoardRecord(GameStat *game_stat) { s32 i; s32 j; - - for(i=0; i<9; i++) { - for(j=0; j<8; j++) { + + for (i = 0; i < 9; i++) { + for (j = 0; j < 8; j++) { game_stat->board_win_count[i][j] = 0; } game_stat->board_play_count[i] = 0; @@ -90,10 +101,10 @@ static inline void ResetBoardRecord(GameStat *game_stat) static inline void ResetPresent(GameStat *game_stat) { s32 i; - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { game_stat->present[i] = 0; } - (void)i; //HACK to match GWResetGameStat + (void)i; // HACK to match GWResetGameStat } static inline void ResetFlag(GameStat *game_stat) @@ -101,9 +112,9 @@ static inline void ResetFlag(GameStat *game_stat) game_stat->story_continue = 0; game_stat->party_continue = 0; game_stat->open_w06 = 0; - game_stat->field10E_bit4 = 0; - game_stat->field10E_bit5 = 0; - game_stat->field10E_bit6 = 0; + game_stat->veryHardUnlock = 0; + game_stat->customPackEnable = 0; + game_stat->musicAllF = 0; } static inline void ResetPauseConfig(GameStat *game_stat) @@ -120,7 +131,13 @@ void GWGameStatReset(void) GameStat *game_stat = &GWGameStatDefault; memset(game_stat, 0, sizeof(GameStat)); game_stat->unk_00 = 0; +#if VERSION_JP + game_stat->language = 0; +#elif VERSION_ENG game_stat->language = 1; +#else + game_stat->language = GwLanguage; +#endif game_stat->sound_mode = 1; game_stat->rumble = 1; game_stat->total_stars = 0; @@ -133,23 +150,30 @@ void GWGameStatReset(void) ResetBoardRecord(game_stat); ResetPresent(game_stat); ResetFlag(game_stat); - ResetPauseConfig(game_stat); + ResetPauseConfig(game_stat); memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat)); ResetBoardSettings(); } s32 GWMessDelayGet(void) { - if(GWSystem.mess_delay > 48) { +#if VERSION_NTSC + if (GWSystem.mess_delay > 48) { GWSystem.mess_speed = 1; GWSystem.mess_delay = 32; } +#else + if (GWSystem.mess_delay > 64) { + GWSystem.mess_speed = 1; + GWSystem.mess_delay = 48; + } +#endif return GWSystem.mess_delay; } void GWMGRecordSet(s32 index, u32 value) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) { + if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) { GWGameStat.mg_record[index] = value; } } @@ -161,22 +185,14 @@ u32 GWMGRecordGet(s32 index) void GWCharColorGet(s32 character, GXColor *color) { - GXColor char_color[] = { - { 227, 67, 67, 255 }, - { 68, 67, 227, 255 }, - { 241, 158, 220, 255 }, - { 67, 228, 68, 255 }, - { 138, 60, 180, 255 }, - { 146, 85, 55, 255 }, - { 227, 228, 68, 255 }, - { 40, 40, 40, 255 } - }; + GXColor char_color[] = { { 227, 67, 67, 255 }, { 68, 67, 227, 255 }, { 241, 158, 220, 255 }, { 67, 228, 68, 255 }, { 138, 60, 180, 255 }, + { 146, 85, 55, 255 }, { 227, 228, 68, 255 }, { 40, 40, 40, 255 } }; *color = char_color[character]; } void GWBoardPlayCountSet(s32 board, u8 value) { - if(value > 99) { + if (value > 99) { value = 99; } GWGameStat.board_play_count[board] = value; @@ -185,24 +201,23 @@ void GWBoardPlayCountSet(s32 board, u8 value) void GWBoardPlayCountAdd(s32 board, u8 value) { value += GWGameStat.board_play_count[board]; - if(value > 99) { + if (value > 99) { value = 99; } GWGameStat.board_play_count[board] = value; } - u8 GWBoardPlayCountGet(s32 board) { return GWGameStat.board_play_count[board]; } -void GWBoardMaxStarsSet(s32 board, s32 value) +void GWBoardMaxStarsSet(s32 board, s16 value) { GWGameStat.board_max_stars[board] = value; } -u16 GWBoardMaxStarsGet(s32 board) +s32 GWBoardMaxStarsGet(s32 board) { return GWGameStat.board_max_stars[board]; } @@ -212,15 +227,15 @@ void GWBoardMaxCoinsSet(s32 board, s32 value) GWGameStat.board_max_coins[board] = value; } -u16 GWBoardMaxCoinsGet(s32 board) +s32 GWBoardMaxCoinsGet(s32 board) { return GWGameStat.board_max_coins[board]; } s32 GWBoardWinCountInc(s32 character, s32 board) { - s32 win_count = GWGameStat.board_win_count[board][character]+1; - if(win_count > 99) { + s32 win_count = GWGameStat.board_win_count[board][character] + 1; + if (win_count > 99) { win_count = 99; } GWGameStat.board_win_count[board][character] = win_count; @@ -244,9 +259,10 @@ s32 GWMGAvailGet(s32 id) id -= 401; word = id >> 5; bit = id % 32; - if(GWGameStat.mg_avail[word] & (1 << bit)) { + if (GWGameStat.mg_avail[word] & (1 << bit)) { return 1; - } else { + } + else { return 0; } } @@ -268,9 +284,10 @@ s32 GWMGCustomGet(s32 id) id -= 401; word = id >> 5; bit = id % 32; - if(GWGameStat.mg_custom[word] & (1 << bit)) { + if (GWGameStat.mg_custom[word] & (1 << bit)) { return 1; - } else { + } + else { return 0; } } @@ -302,14 +319,14 @@ s16 GWCoinsGet(s32 player) void GWCoinsSet(s32 player, s16 value) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) { - if(value < 0) { + if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) { + if (value < 0) { value = 0; } - if(value > 999) { + if (value > 999) { value = 999; } - if(value > GWPlayer[player].coins_max) { + if (value > GWPlayer[player].coins_max) { GWPlayer[player].coins_max = value; } GWPlayer[player].coins = value; @@ -318,18 +335,18 @@ void GWCoinsSet(s32 player, s16 value) void GWCoinsAdd(s32 player, s16 amount) { - GWCoinsSet(player, GWPlayer[player].coins+amount); + GWCoinsSet(player, GWPlayer[player].coins + amount); } void GWStarsSet(s32 player, s16 value) { - if(value < 0) { + if (value < 0) { value = 0; } - if(value > 999) { + if (value > 999) { value = 999; } - if(value > GWPlayer[player].stars_max) { + if (value > GWPlayer[player].stars_max) { GWPlayer[player].stars_max = value; } GWPlayer[player].stars = value; @@ -337,7 +354,7 @@ void GWStarsSet(s32 player, s16 value) void GWStarsAdd(s32 player, s16 amount) { - GWStarsSet(player, GWPlayer[player].stars+amount); + GWStarsSet(player, GWPlayer[player].stars + amount); } s32 GWStarsGet(s32 player) @@ -347,10 +364,10 @@ s32 GWStarsGet(s32 player) void GWTotalStarsSet(s16 value) { - if(value < 0) { + if (value < 0) { value = 0; } - if(value > 10000) { + if (value > 10000) { value = 10000; } GWGameStat.total_stars = value; @@ -358,7 +375,7 @@ void GWTotalStarsSet(s16 value) void GWTotalStarsAdd(s16 amount) { - GWTotalStarsSet(GWGameStat.total_stars+amount); + GWTotalStarsSet(GWGameStat.total_stars + amount); } u16 GWTotalStarsGet(void) diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index d0d7a579..b5a73d37 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -24,7 +24,7 @@ typedef struct { /* 0x3C */ HsfanimStruct00 *unk3C; } ParManProcUserData; // Size 0x40 -static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1); +static void particleFunc(ModelData *arg0, Mtx arg1); static void ParManFunc(void); static void ParManHook(ModelData *arg0, ParticleData *arg1, Mtx matrix); @@ -55,7 +55,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { Hu3DTexAnimDataStruct *var_r31; HsfAttribute *var_r29; HsfData *temp_r27; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 i; s16 var_r25; s16 var_r28; @@ -75,7 +75,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; } else { @@ -84,7 +84,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { var_r30->unk00 |= 1; var_r30->unk02 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -112,7 +112,7 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { AnimData *temp_r4; HsfAttribute *var_r29; HsfData *temp_r27; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 var_r28; s16 i; s16 var_r25; @@ -132,14 +132,14 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; } else { var_r30 = var_r29->unk04; } var_r30->unk02 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -162,7 +162,7 @@ void Hu3DAnimKill(s16 arg0) { Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0]; HsfData *temp_r28 = Hu3DData[temp_r31->unk06].hsfData; HsfAttribute *var_r30; - HsfanimStruct01 *temp_r29; + HsfdrawStruct01 *temp_r29; s16 i; if (temp_r28) { @@ -242,7 +242,7 @@ void Hu3DAnmNoSet(s16 arg0, u16 arg1) { } s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { - HsfanimStruct01 *temp_r30; + HsfdrawStruct01 *temp_r30; Hu3DTexAnimDataStruct *temp_r29; AnimData *temp_r27; AnimBmpData *temp_r28; @@ -268,8 +268,8 @@ s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { (arg0->attr & HU3D_ATTR_TEX_NEAR) ? GX_NEAR : GX_LINEAR); temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX; temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY; - temp_r30->unk34.x = (float) temp_r31->startX / temp_r28->sizeX; - temp_r30->unk34.y = (float) temp_r31->startY / temp_r28->sizeY; + temp_r30->unk34 = (float) temp_r31->startX / temp_r28->sizeX; + temp_r30->unk38 = (float) temp_r31->startY / temp_r28->sizeY; return 1; } @@ -359,7 +359,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { Hu3DTexScrDataStruct *var_r31; HsfData *temp_r27; HsfAttribute *var_r29; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 i; s16 var_r25; s16 var_r28; @@ -379,7 +379,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg1, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg0].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg0].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; } else { @@ -388,7 +388,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { var_r30->unk00 |= 2; var_r30->unk04 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -408,7 +408,7 @@ void Hu3DTexScrollKill(s16 arg0) { Hu3DTexScrDataStruct *temp_r28 = &Hu3DTexScrData[arg0]; HsfData *temp_r29 = Hu3DData[temp_r28->unk02].hsfData; HsfAttribute *var_r31; - HsfanimStruct01 *temp_r30; + HsfdrawStruct01 *temp_r30; s16 i; if (temp_r29) { @@ -493,7 +493,7 @@ s16 Hu3DParticleCreate(AnimData *arg0, s16 arg1) { s16 i; void *temp_r24; - temp_r25 = Hu3DHookFuncCreate((void*) &_Hu3DParticleAttrReset); + temp_r25 = Hu3DHookFuncCreate((void*) &particleFunc); temp_r28 = &Hu3DData[temp_r25]; Hu3DModelAttrSet(temp_r25, HU3D_ATTR_PARTICLE_KILL); temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(ParticleData), temp_r28->unk_48); @@ -658,7 +658,7 @@ static float baseST[] = { 1.0f, 1.0f, 0.0f, 1.0f }; -static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { +static void particleFunc(ModelData *arg0, Mtx arg1) { Vec *var_r30; float temp_f31; float temp_f29; @@ -1241,7 +1241,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { var_r29->unk2C = var_r29->unk28; } if (!(temp_r28->unk02 & 0x80)) { - sp8 = var_r29->unk00_s16; + sp8 = var_r29->unk00; var_r29->unk34.x += var_r29->unk08.x + var_r29->unk14.x; var_r29->unk34.y += var_r29->unk08.y + var_r29->unk14.y; var_r29->unk34.z += var_r29->unk08.z + var_r29->unk14.z; @@ -1261,7 +1261,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { } } var_r29->unk28 *= temp_r26->unk28; - var_f30 = (float) var_r29->unk00_s16 / temp_r26->unk00; + var_f30 = (float) var_r29->unk00 / temp_r26->unk00; if (var_f30 > 1.0f) { var_f30 = 1.0f; } @@ -1272,10 +1272,10 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { var_r29->unk40.g = temp_r27->g + var_f30 * (temp_r24->g - temp_r27->g); var_r29->unk40.b = temp_r27->b + var_f30 * (temp_r24->b - temp_r27->b); var_r29->unk40.a = temp_r27->a + var_f30 * (temp_r24->a - temp_r27->a); - if (var_r29->unk2C < 0.01 || var_r29->unk00_s16 >= temp_r26->unk00) { + if (var_r29->unk2C < 0.01 || var_r29->unk00 >= temp_r26->unk00) { var_r29->unk2C = 0.0f; } - var_r29->unk00_s16++; + var_r29->unk00++; } } } diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 37e7aa16..fce142dd 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -8,17 +8,8 @@ #include "ext_math.h" #include "string.h" -typedef struct hsf_draw_object { - /* 0x00 */ ModelData *model; - /* 0x04 */ HsfObject *object; - /* 0x08 */ float z; - /* 0x0C */ Mtx matrix; - /* 0x3C */ Vec scale; -} HsfDrawObject; - static void objCall(ModelData *arg0, HsfObject *arg1); static void objMesh(ModelData *arg0, HsfObject *arg1); -static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1); static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1); static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1); static GXTevKColorSel SetKColor(GXTevStageID arg0, u8 arg1); @@ -491,15 +482,15 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r22; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); @@ -564,24 +555,24 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r22; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); if (var_r22 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_RGBA4, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_TEX0, temp_r28->data.st->data, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r28->data.st->data, 2 * sizeof(float)); if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); @@ -1652,15 +1643,15 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r30; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); @@ -1685,24 +1676,24 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r30; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); if (var_r30 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_RGBA4, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_TEX0, temp_r31->data.st->data, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r31->data.st->data, 2 * sizeof(float)); if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); @@ -2532,53 +2523,53 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) { case 2: GXBegin(GX_TRIANGLES, GX_VTXFMT0, faceNumBuf[drawCnt]); for (var_r27 = 0; var_r27 < faceNumBuf[drawCnt] / 3; var_r27++, arg1++) { - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } } faceCnt = faceNumBuf[drawCnt] / 3; @@ -2586,140 +2577,140 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) { case 3: GXBegin(GX_QUADS, GX_VTXFMT0, faceNumBuf[drawCnt]); for (var_r27 = 0; var_r27 < faceNumBuf[drawCnt] / 4; var_r27++, arg1++) { - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[3][0]); + GXPosition1x16(arg1->indices[3][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[3][1]); + GXNormal1x16(arg1->indices[3][1]); } else { MakeNBT(arg0, arg1, 3, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[3][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[3][3]); + GXTexCoord1x16(arg1->indices[3][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 3); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } } faceCnt = faceNumBuf[drawCnt] / 4; break; case 4: GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, faceNumBuf[drawCnt]); - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } var_r24 = arg1->strip.data; for (var_r27 = 0; var_r27 < arg1->strip.count; var_r27++, var_r24 += 4) { - GXUnknownu16(var_r24[0]); + GXPosition1x16(var_r24[0]); if (var_r26 == -1) { - GXUnknownu16(var_r24[1]); + GXNormal1x16(var_r24[1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = var_r24[2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(var_r24[3]); + GXTexCoord1x16(var_r24[3]); } } faceCnt = arg1->strip.count + 1; @@ -2764,9 +2755,9 @@ static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { NBTB.z = temp_r31[temp_r25].z - temp_r31[temp_r24].z; VECNormalize(&NBTB, &NBTB); VECCrossProduct(&NBTB, &sp10, &NBTT); - GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); - GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); - GXPosition3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); + GXNormal3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); + GXNormal3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); + GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { @@ -2790,9 +2781,9 @@ static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { sp10.z = temp_r29[temp_r28][2]; VECNormalize(&sp10, &sp10); } - GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); - GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); - GXPosition3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); + GXNormal3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); + GXNormal3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); + GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) { diff --git a/src/game/hsfex.c b/src/game/hsfex.c index 63f3745e..490e19e3 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -3,7 +3,7 @@ #include "game/hsfmotion.h" #include "game/disp.h" -#include "math.h" +#include "ext_math.h" #define DISP_HALF_W (HU_DISP_WIDTH/2.0f) #define DISP_HALF_H (HU_DISP_HEIGHT/2.0f) @@ -129,10 +129,10 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5 var_f30 = var_f31; break; case 1: - var_f30 = arg5 * sin(90.0f * (var_f31 / arg5) * M_PI / 180.0); + var_f30 = arg5 * sind(90.0f * (var_f31 / arg5)); break; case 2: - var_f30 = arg5 * (1.0 - cos(90.0f * (var_f31 / arg5) * M_PI / 180.0)); + var_f30 = arg5 * (1.0 - cosd(90.0f * (var_f31 / arg5))); break; } var_r31 = temp_r21; @@ -346,9 +346,9 @@ static void SetObjCamMotion(s16 arg0, HsfTrack *arg1, float arg2, HsfexStruct02 case 14: VECSubtract(&arg3->unk08, &arg3->unk20, &spC); VECNormalize(&spC, &spC); - sp18.x = spC.x * spC.y * (1.0 - cos(M_PI * arg2 / 180.0)) - spC.z * sin(M_PI * arg2 / 180.0); - sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cos(M_PI * arg2 / 180.0); - sp18.z = spC.y * spC.z * (1.0 - cos(M_PI * arg2 / 180.0)) + spC.x * sin(M_PI * arg2 / 180.0); + sp18.x = spC.x * spC.y * (1.0 - cosd(arg2)) - spC.z * sind(arg2); + sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cosd(arg2); + sp18.z = spC.y * spC.z * (1.0 - cosd(arg2)) + spC.x * sind(arg2); VECNormalize(&sp18, &arg3->unk14); break; } @@ -432,7 +432,7 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) { } } temp_r31 = &Hu3DCamera[i]; - temp_f30 = sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0); + temp_f30 = sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2); temp_f31 = temp_f30 * arg0->z * 2.0f; temp_f29 = temp_f31 * HU_DISP_ASPECT; temp_f28 = arg0->x / HU_DISP_WIDTH; @@ -461,8 +461,8 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); PSMTXMultVec(sp1C, arg0, &sp10); - temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * HU_DISP_ASPECT; - temp_f30 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z; + temp_f31 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z * HU_DISP_ASPECT; + temp_f30 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z; arg2->x = DISP_HALF_W + sp10.x * (DISP_HALF_W / -temp_f31); arg2->y = DISP_HALF_H + sp10.y * (DISP_HALF_H / temp_f30); arg2->z = 0.0f; diff --git a/src/game/hsfman.c b/src/game/hsfman.c index e02c8edb..243da902 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -17,6 +17,8 @@ #include "math.h" #include "ext_math.h" +#define SHADOW_HEAP_SIZE 0x9000 + ModelData Hu3DData[HU3D_MODEL_MAX]; CameraData Hu3DCamera[HU3D_CAM_MAX]; static s16 layerNum[8]; @@ -1394,7 +1396,7 @@ inline s16 Hu3DLightCreateV(LightData *light, Vec *arg0, Vec *arg1, GXColor *arg light->color = *arg2; } -s16 Hu3DGLightCreateV(Vec* arg0, Vec* arg1, GXColor* arg2) { +s16 Hu3DGLightCreateV(Vec* pos, Vec* dir, GXColor* color) { s16 var_r30; LightData* var_r31; @@ -1409,7 +1411,7 @@ s16 Hu3DGLightCreateV(Vec* arg0, Vec* arg1, GXColor* arg2) { return -1; } - Hu3DLightCreateV(var_r31, arg0, arg1, arg2); + Hu3DLightCreateV(var_r31, pos, dir, color); return var_r30; } @@ -1876,7 +1878,7 @@ void Hu3DFogClear(void) { void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowData.unk_02 = 0xC0; if (Hu3DShadowData.unk_04 == 0) { - Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, 0x9000); + Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, SHADOW_HEAP_SIZE); } Hu3DShadowData.unk_08.x = arg8; Hu3DShadowData.unk_08.y = arg9; @@ -1894,10 +1896,10 @@ void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowF = 1; } -void Hu3DShadowPosSet(Vec* arg0, Vec* arg1, Vec* arg2) { - Hu3DShadowData.unk_14 = *arg0; - Hu3DShadowData.unk_20 = *arg2; - Hu3DShadowData.unk_2C = *arg1; +void Hu3DShadowPosSet(Vec* camPos, Vec* camUp, Vec* camTarget) { + Hu3DShadowData.unk_14 = *camPos; + Hu3DShadowData.unk_20 = *camTarget; + Hu3DShadowData.unk_2C = *camUp; } void Hu3DShadowTPLvlSet(f32 arg8) { diff --git a/src/game/init.c b/src/game/init.c index f3a4f853..61315c66 100644 --- a/src/game/init.c +++ b/src/game/init.c @@ -39,6 +39,8 @@ static void InitVI(); static void SwapBuffers(); static void LoadMemInfo(); +#define ASSERT_LINE(ntsc, pal) ((VERSION_NTSC) ? (ntsc) : (pal)) + void HuSysInit(GXRenderModeObj *mode) { u32 rnd_temp; @@ -46,13 +48,19 @@ void HuSysInit(GXRenderModeObj *mode) DVDInit(); VIInit(); PADInit(); + #if VERSION_NTSC if(OSGetProgressiveMode() == 1 && VIGetDTVStatus() == 1) { mode = &GXNtsc480Prog; } + #else + mode->efbHeight = 480; + #endif InitRenderMode(mode); InitMem(); VIConfigure(RenderMode); + #if VERSION_NTSC VIConfigurePan(0, 0, 640, 480); + #endif DefaultFifo = OSAlloc(0x100000); DefaultFifoObj = GXInit(DefaultFifo, 0x100000); InitGX(); @@ -91,7 +99,7 @@ static void InitRenderMode(GXRenderModeObj *mode) break; default: - OSPanic("init.c", 169, "DEMOInit: invalid TV format\n"); + OSPanic("init.c", ASSERT_LINE(169, 167), "DEMOInit: invalid TV format\n"); break; } GXAdjustForOverscan(RenderMode, &rmodeobj, 0, 16); @@ -104,7 +112,12 @@ static void InitGX() GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); GXSetDispCopySrc(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); GXSetDispCopyDst(RenderMode->fbWidth, RenderMode->xfbHeight); + #if VERSION_NTSC GXSetDispCopyYScale((float)RenderMode->xfbHeight/(float)RenderMode->efbHeight); + #else + OSReport("%D\n", RenderMode->xfbHeight); + GXSetDispCopyYScale(GXGetYScaleFactor(RenderMode->efbHeight, RenderMode->xfbHeight)); + #endif GXSetCopyFilter(RenderMode->aa, RenderMode->sample_pattern, GX_TRUE, RenderMode->vfilter); if(RenderMode->aa) { GXSetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR); @@ -120,9 +133,21 @@ static void InitMem() void *arena_lo = OSGetArenaLo(); void *arena_hi = OSGetArenaHi(); u32 fb_size = (u16)(((u16)RenderMode->fbWidth+15) & ~15)*RenderMode->xfbHeight*2; + u32 *fb1; + u32 *fb2; + u32 i; DemoFrameBuffer1 = (void *)OSRoundUp32B((u32)arena_lo); DemoFrameBuffer2 = (void *)OSRoundUp32B((u32)DemoFrameBuffer1+fb_size); DemoCurrentBuffer = DemoFrameBuffer2; + #if VERSION_PAL + fb1 = DemoFrameBuffer1; + fb2 = DemoFrameBuffer2; + for(i=0; iseq_no = 0; - work->data = NULL; - } - seqPauseF = 0; - seqDoneF = 0; - lbl_801D3D94 = 0; - seqTimer = 30; - HuAR_DVDtoARAM(DATADIR_GAMEMES); - HuAR_DVDtoARAM(DATADIR_MGCONST); - while(HuARDMACheck()); - fn_80036BC8(); - mgSeqOvlPrev = -1; - seqLanguage = GWLanguageGet(); + s32 i; + SeqWork *work; + work = &seqWorkData[0]; + for (i = 8; i != 0; i--, work++) { + work->seq_no = 0; + work->data = NULL; + } + seqPauseF = 0; + seqDoneF = 0; + lbl_801D3D94 = 0; + seqTimer = 30; + HuAR_DVDtoARAM(DATADIR_GAMEMES); + HuAR_DVDtoARAM(DATADIR_MGCONST); + while (HuARDMACheck()) + ; + fn_80036BC8(); + mgSeqOvlPrev = -1; + seqLanguage = GWLanguageGet(); } void MGSeqMain(void) { - SeqInfo *info; - s32 i; - s32 j; - s32 alive_flag; - u8 stat; - SeqWork *work; - - seqSpeed = HuSysVWaitGet(seqSpeed); - if(Hu3DPauseF) { - return; - } - alive_flag = 0; - stat = 0; - work = &seqWorkData[0]; - for(i=0; i<8; i++, work++) { - if(work->stat == 0) { - continue; - } - if(work->update) { - alive_flag = work->update(work); - } else { - info = &seqInfoTbl[work->seq_no]; - if(work->seq_no != 0 && NULL != info->update) { - alive_flag = info->update(work); - } - } - if(!alive_flag) { - work->stat = 0; - if(!lbl_801D3D94) { - for(j=0; j<8; j++) { - if(seqWorkData[j].stat) { - break; - } - } - } - if(!work->data) { - HuMemDirectFree(work->data); - work->data = NULL; - } - } - stat |= work->stat; - } - if(!stat || stat & 0x4) { - if(seqTimer > 0) { - seqTimer -= seqSpeed; - } - } + SeqInfo *info; + s32 i; + s32 j; + s32 alive_flag; + u8 stat; + SeqWork *work; + + seqSpeed = HuSysVWaitGet(seqSpeed); + if (Hu3DPauseF) { + return; + } + alive_flag = 0; + stat = 0; + work = &seqWorkData[0]; + for (i = 0; i < 8; i++, work++) { + if (work->stat == 0) { + continue; + } + if (work->update) { + alive_flag = work->update(work); + } + else { + info = &seqInfoTbl[work->seq_no]; + if (work->seq_no != 0 && NULL != info->update) { + alive_flag = info->update(work); + } + } + if (!alive_flag) { + work->stat = 0; + if (!lbl_801D3D94) { + for (j = 0; j < 8; j++) { + if (seqWorkData[j].stat) { + break; + } + } + } + if (!work->data) { + HuMemDirectFree(work->data); + work->data = NULL; + } + } + stat |= work->stat; + } + if (!stat || stat & 0x4) { + if (seqTimer > 0) { + seqTimer -= seqSpeed; + } + } } static s16 CreateSeq(s16 seq_no, va_list params) { - SeqWork *work; - SeqInfo *info; - s32 i; - s32 temp; - work = seqWorkData; - info = &seqInfoTbl[(u8)seq_no]; - for(i=0; i<8; i++, work++) { - if(work->stat == 0) { - break; - } - } - if(i >= 8) { - return -1; - } - work->stat |= 0x1; - if(work->data) { - HuMemDirectFree(work->data); - } - work->data = NULL; - work->seq_no = (u8)seq_no; - work->time = 0; - work->x = info->x; - work->y = info->y; - work->scale_x = info->scale_x; - work->scale_y = info->scale_y; - work->unk_18 = 0.0f; - work->unk_7D = 255; - work->time_max = info->time_max; - work->timer_val = work->state = work->alt_word_len = work->word_len = 0; - work->angle = work->win_scale = 0.0f; - work->param[0] = work->param[1] = 0; - for(temp=0; temp<16; temp++) { - work->sprite[temp] = work->spr_grp[temp] = -1; - } - if(NULL != info->init) { - temp = info->init(work, params); - if(temp == 0) { - work->stat = 0; - return -1; - } - } - seqTimer = 30; - return i; + SeqWork *work; + SeqInfo *info; + s32 i; + s32 temp; + work = seqWorkData; + info = &seqInfoTbl[(u8)seq_no]; + for (i = 0; i < 8; i++, work++) { + if (work->stat == 0) { + break; + } + } + if (i >= 8) { + return -1; + } + work->stat |= 0x1; + if (work->data) { + HuMemDirectFree(work->data); + } + work->data = NULL; + work->seq_no = (u8)seq_no; + work->time = 0; + work->x = info->x; + work->y = info->y; + work->scale_x = info->scale_x; + work->scale_y = info->scale_y; + work->unk_18 = 0.0f; + work->unk_7D = 255; + work->time_max = info->time_max; + work->timer_val = work->state = work->alt_word_len = work->word_len = 0; + work->angle = work->win_scale = 0.0f; + work->param[0] = work->param[1] = 0; + for (temp = 0; temp < 16; temp++) { + work->sprite[temp] = work->spr_grp[temp] = -1; + } + if (NULL != info->init) { + temp = info->init(work, params); + if (temp == 0) { + work->stat = 0; + return -1; + } + } + seqTimer = 30; + return i; } s16 MGSeqCreate(s16 type, ...) { - s16 ret; - va_list params; - va_start(params, type); - if(type == MG_SEQ_TYPE_AUTO) { - if(GWSystem.mg_next == 0xFFFF) { - type = MG_SEQ_TYPE_4P; - } else { - type = mgSeqTypeTbl[mgInfoTbl[GWSystem.mg_next].type]; - } - } - ret = CreateSeq(type, params); - va_end(params); - return ret; + s16 ret; + va_list params; + va_start(params, type); + if (type == MG_SEQ_TYPE_AUTO) { + if (GWSystem.mg_next == 0xFFFF) { + type = MG_SEQ_TYPE_4P; + } + else { + type = mgSeqTypeTbl[mgInfoTbl[GWSystem.mg_next].type]; + } + } + ret = CreateSeq(type, params); + va_end(params); + return ret; } u8 MGSeqStatGet(s16 id) { - SeqWork *work; - u8 ret = 0; - if(id < 0) { - s32 i; - work = seqWorkData; - for(i=8; i != 0; i--, work++) { - ret |= work->stat; - } - } else { - if(id < 8) { - ret = seqWorkData[id].stat; - } - } - return ret; + SeqWork *work; + u8 ret = 0; + if (id < 0) { + s32 i; + work = seqWorkData; + for (i = 8; i != 0; i--, work++) { + ret |= work->stat; + } + } + else { + if (id < 8) { + ret = seqWorkData[id].stat; + } + } + return ret; } void MGSeqPosSet(s16 id, float x, float y) { - if(id >= 0 && id < 8) { - seqWorkData[id].x = x; - seqWorkData[id].y = y; - } + if (id >= 0 && id < 8) { + seqWorkData[id].x = x; + seqWorkData[id].y = y; + } } void MGSeqParamSet(s16 id, s16 param1, s16 param2) { - if(id >= 0 && id < 8) { - seqWorkData[id].param[0] = param1; - seqWorkData[id].param[1] = param2; - } + if (id >= 0 && id < 8) { + seqWorkData[id].param[0] = param1; + seqWorkData[id].param[1] = param2; + } } void MGSeqKill(s16 id) { - if(id >= 0 && id < 8) { - if(seqWorkData[id].stat != 0) { - seqWorkData[id].stat = 8; - } - } + if (id >= 0 && id < 8) { + if (seqWorkData[id].stat != 0) { + seqWorkData[id].stat = 8; + } + } } void MGSeqKillAll(void) { - seqDoneF = 1; - MGSeqMain(); - seqDoneF = 0; - MGSeqStub(); - lbl_801D3D94 = 0; + seqDoneF = 1; + MGSeqMain(); + seqDoneF = 0; + MGSeqStub(); + lbl_801D3D94 = 0; } s32 MGSeqDoneCheck(void) { - u8 stat = MGSeqStatGet(-1); - if(stat == 0 || (stat & 0xC)) { - if(seqTimer <= 0 || (stat & 0x8)) { - return 1; - } - } - return 0; + u8 stat = MGSeqStatGet(-1); + if (stat == 0 || (stat & 0xC)) { + if (seqTimer <= 0 || (stat & 0x8)) { + return 1; + } + } + return 0; } -void MGSeqStub(void) -{ - -} +void MGSeqStub(void) { } void MGSeqSprKill(SeqWork *work) { - s32 i; - for(i=0; i<16; i++) { - if(work->spr_grp[i] >= 0) { - HuSprGrpKill(work->spr_grp[i]); - } - if(work->sprite[i] >= 0) { - HuSprKill(work->sprite[i]); - } - } + s32 i; + for (i = 0; i < 16; i++) { + if (work->spr_grp[i] >= 0) { + HuSprGrpKill(work->spr_grp[i]); + } + if (work->sprite[i] >= 0) { + HuSprKill(work->sprite[i]); + } + } } static void *SeqReadFile(s32 file) { - return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA); + return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA); } -static s32 SeqInitTimer(SeqWork *work, va_list params) +s32 MGSeqInitTimer(SeqWork *work, va_list params) { - AnimData *spr_anim; - s16 sprite; - s16 spr_grp; - int duration, x, y; - s16 i; - - duration = va_arg(params, int); - x = va_arg(params, int); - y = va_arg(params, int); - if(duration <= 0 && duration > 99) { - duration = 99; - } - work->timer_val = duration; - if(x >= 0) { - work->x = x; - } - if(y >= 0) { - work->y = y; - } - work->alt_word_len = 0; - work->state = 2; - work->angle = 0; - work->spr_grp[0] = spr_grp = HuSprGrpCreate(4); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 2))); - x = 12; - for(i=0; i<2; i++) { - sprite = HuSprCreate(spr_anim, 5, 0); - HuSprGrpMemberSet(spr_grp, i, sprite); - HuSprSpeedSet(spr_grp, i, 0); - HuSprPosSet(spr_grp, i, x, 0); - HuSprColorSet(spr_grp, i, 112, 233, 255); - x -= 24; - (void)i; //Hack for Matching - } - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 1))); - sprite = HuSprCreate(spr_anim, 7, 0); - HuSprGrpMemberSet(spr_grp, 2, sprite); - HuSprPosSet(spr_grp, 2, 0, 0); - HuSprTPLvlSet(spr_grp, 2, 0.5f); - HuSprColorSet(spr_grp, 2, 0, 0, 0); - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 0))); - sprite = HuSprCreate(spr_anim, 6, 0); - HuSprGrpMemberSet(spr_grp, 3, sprite); - HuSprPosSet(spr_grp, 3, 0, 0); - if(seqPauseF) { - work->state = 1; - for(i=0; i<2; i++) { - HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); - (void)i; //Hack for Matching - } - } - return 1; + AnimData *spr_anim; + s16 sprite; + s16 spr_grp; + int duration, x, y; + s16 i; + + duration = va_arg(params, int); + x = va_arg(params, int); + y = va_arg(params, int); + if (duration <= 0 && duration > 99) { + duration = 99; + } + work->timer_val = duration; + if (x >= 0) { + work->x = x; + } + if (y >= 0) { + work->y = y; + } + work->alt_word_len = 0; + work->state = 2; + work->angle = 0; + work->spr_grp[0] = spr_grp = HuSprGrpCreate(4); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 2))); + x = 12; + for (i = 0; i < 2; i++) { + sprite = HuSprCreate(spr_anim, 5, 0); + HuSprGrpMemberSet(spr_grp, i, sprite); + HuSprSpeedSet(spr_grp, i, 0); + HuSprPosSet(spr_grp, i, x, 0); + HuSprColorSet(spr_grp, i, 112, 233, 255); + x -= 24; + (void)i; // Hack for Matching + } + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 1))); + sprite = HuSprCreate(spr_anim, 7, 0); + HuSprGrpMemberSet(spr_grp, 2, sprite); + HuSprPosSet(spr_grp, 2, 0, 0); + HuSprTPLvlSet(spr_grp, 2, 0.5f); + HuSprColorSet(spr_grp, 2, 0, 0, 0); + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 0))); + sprite = HuSprCreate(spr_anim, 6, 0); + HuSprGrpMemberSet(spr_grp, 3, sprite); + HuSprPosSet(spr_grp, 3, 0, 0); + if (seqPauseF) { + work->state = 1; + for (i = 0; i < 2; i++) { + HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); +#if VERSION_NTSC + //(void)i; //Hack for Matching +#endif + } + } +#if VERSION_PAL + HuSprGrpPosSet(spr_grp, -1000.0f, 0.0f); +#endif + return 1; } -static s32 SeqUpdateTimer(SeqWork *work) +s32 MGSeqUpdateTimer(SeqWork *work) { - float scale; - float tp_lvl; - u8 digits[2]; - s16 i; - s16 spr_grp = work->spr_grp[0]; - if(work->param[0] != 0 && work->state != -1) { - switch(work->param[0]) { - case 2: - switch(work->param[1]) { - case -1: - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - break; - - case 0: - work->state = 2; - work->angle = 0.0f; - break; - - case 1: - work->state = 3; - work->angle = 0.0f; - break; - - default: - break; - } - work->param[0] = 0; - break; - - case 1: - if(work->param[1] < 0 && !(work->stat & 0x4)) { - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - } else { - if(work->param[1] > 99) { - work->timer_val = 99; - } else { - if(work->timer_val != work->param[1]) { - work->timer_val = work->param[1]; - if(work->param[1] <= 5) { - HuAudFXPlay(6); - work->state = 3; - work->angle = 0.0f; - HuSprColorSet(spr_grp, 0, 255, 112, 160); - HuSprColorSet(spr_grp, 1, 255, 112, 160); - } else { - HuSprColorSet(spr_grp, 0, 112, 233, 255); - HuSprColorSet(spr_grp, 1, 112, 233, 255); - } - } - } - } - work->param[0] = 0; - break; - - case 3: - for(i=0; i<2; i++) { - HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); - } - work->state = 3; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->state == 1) { - return 1; - } - if(work->timer_val > 99) { - digits[0] = digits[1] = 9; - } else { - s32 value; - value = work->timer_val/10; - digits[1] = value; - digits[0] = work->timer_val-(value*10); - } - HuSprGrpPosSet(spr_grp, work->x, work->y); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - for(i=0; i<2; i++) { - HuSprBankSet(spr_grp, i, digits[i]); - } - if(work->state != 0) { - switch(work->state) { - case 2: - { - float scale_x, scale_y; - scale = fabs(((sin((work->angle*M_PI)/180)*5.0f)+1.0f)-(sin((130*M_PI)/180)*5.0f)); - scale_x = work->scale_x*scale; - scale_y = work->scale_y*scale; - work->angle += seqSpeed*5.0f; - if(work->angle > 130.0f) { - work->state = 0; - break; - } - HuSprGrpScaleSet(spr_grp, scale_x, scale_y); - } - break; - - case 3: - { - scale = sin((work->angle*M_PI)/180)+1.0; - tp_lvl = 1.0-(sin((work->angle*M_PI)/180)*0.5); - work->angle += seqSpeed*18.0f; - if(work->angle > 180.0f) { - work->state = 0; - scale = 1.0f; - tp_lvl = 1.0f; - } - for(i=0; i<2; i++) { - HuSprScaleSet(spr_grp, i, scale, scale); - HuSprTPLvlSet(spr_grp, i, tp_lvl); - } - } - break; - - case -1: - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - for(i=0; i<2; i++) { - HuSprScaleSet(spr_grp, i, 1.0f, 1.0f); - } - work->angle += 1.0f; - if(work->angle < 60.0f) { - break; - } - tp_lvl = 1.0-((work->angle-60.0f)/20.0f); - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - - for(i=0; i<4; i++) { - HuSprTPLvlSet(spr_grp, i, tp_lvl); - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } else { - return 1; - } + float scale; + float tp_lvl; + u8 digits[2]; + s16 i; + s16 spr_grp = work->spr_grp[0]; + if (work->param[0] != 0 && work->state != -1) { + switch (work->param[0]) { + case 2: + switch (work->param[1]) { + case -1: + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + break; + + case 0: + work->state = 2; + work->angle = 0.0f; + break; + + case 1: + work->state = 3; + work->angle = 0.0f; + break; + + default: + break; + } + work->param[0] = 0; + break; + + case 1: + if (work->param[1] < 0 && !(work->stat & 0x4)) { + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + } + else { + if (work->param[1] > 99) { + work->timer_val = 99; + } + else { + if (work->timer_val != work->param[1]) { + work->timer_val = work->param[1]; + if (work->param[1] <= 5) { + HuAudFXPlay(6); + work->state = 3; + work->angle = 0.0f; + HuSprColorSet(spr_grp, 0, 255, 112, 160); + HuSprColorSet(spr_grp, 1, 255, 112, 160); + } + else { + HuSprColorSet(spr_grp, 0, 112, 233, 255); + HuSprColorSet(spr_grp, 1, 112, 233, 255); + } + } + } + } + work->param[0] = 0; + break; + + case 3: + for (i = 0; i < 2; i++) { + HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); + } + work->state = 3; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->state == 1) { + return 1; + } + if (work->timer_val > 99) { + digits[0] = digits[1] = 9; + } + else { + s32 value; + value = work->timer_val / 10; + digits[1] = value; + digits[0] = work->timer_val - (value * 10); + } + HuSprGrpPosSet(spr_grp, work->x, work->y); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + for (i = 0; i < 2; i++) { + HuSprBankSet(spr_grp, i, digits[i]); + } + if (work->state != 0) { + switch (work->state) { + case 2: { + float scale_x, scale_y; + scale = fabs(((sind(work->angle) * 5.0f) + 1.0f) - (sind(130) * 5.0f)); + scale_x = work->scale_x * scale; + scale_y = work->scale_y * scale; + work->angle += seqSpeed * 5.0f; + if (work->angle > 130.0f) { + work->state = 0; + break; + } + HuSprGrpScaleSet(spr_grp, scale_x, scale_y); + } break; + + case 3: { + scale = sind(work->angle) + 1.0; + tp_lvl = 1.0 - (sind(work->angle) * 0.5); + work->angle += seqSpeed * 18.0f; + if (work->angle > 180.0f) { + work->state = 0; + scale = 1.0f; + tp_lvl = 1.0f; + } + for (i = 0; i < 2; i++) { + HuSprScaleSet(spr_grp, i, scale, scale); + HuSprTPLvlSet(spr_grp, i, tp_lvl); + } + } break; + + case -1: + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + for (i = 0; i < 2; i++) { + HuSprScaleSet(spr_grp, i, 1.0f, 1.0f); + } + work->angle += 1.0f; + if (work->angle < 60.0f) { + break; + } + tp_lvl = 1.0 - ((work->angle - 60.0f) / 20.0f); + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + + for (i = 0; i < 4; i++) { + HuSprTPLvlSet(spr_grp, i, tp_lvl); + } + break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + else { + return 1; + } } -static s32 SeqInitType2(SeqWork *work, va_list params) +s32 MGSeqInitType2(SeqWork *work, va_list params) { - s16 spr_idx; - s16 spr_grp; - AnimData *anim_tbl[6]; - s32 i; - s16 len; - char *str; - char c; - int time_max; - int x, y; - work->data = va_arg(params, void *); - time_max = va_arg(params, int); - x = va_arg(params, int); - y = va_arg(params, int); - if(time_max < 0) { - time_max = -1; - } - work->time_max = time_max; - if(x >= 0) { - work->x = x; - } - if(y >= 0) { - work->y = y; - } - work->state = 0; - work->angle = 0.0f; - x = 0; - len = 0; - str=work->data; - while(c=*str++) { - if(c >= '0' && c <= '9') { - x |= 1; - len++; - } else if(c >= 'A' && c <= 'Z') { - x |= 2; - len++; - } else if(c >= 'a' && c <= 'z') { - x |= 4; - len++; - } else if(c == '!' || c == '?') { - x |= 8; - len++; - } - } - work->word_len = len; - for(i=0; i<6; i++) { - if(x & (1 << i)) { - anim_tbl[i] = HuSprAnimRead(SeqReadFile(seqType2SprTbl[i])); - } else { - anim_tbl[i] = NULL; - } - } - work->spr_grp[0] = spr_grp = HuSprGrpCreate(len); - x = 0; - spr_idx = 0; - str=work->data; - while(c=*str++) { - i = -2; - if(c >= '0' && c <= '9') { - c -= '0'; - i = 0; - } else if(c >= 'A' && c <= 'Z') { - c -= 'A'; - i = 1; - } else if(c >= 'a' && c <= 'z') { - c -= 'a'; - i = 2; - } else if(c == '!' || c == '?') { - if(c == '!') { - c = 0; - } else { - c = 1; - } - i = 3; - } else if(c == ' ') { - i = -1; - } - work->alt_word_len = x; - if(i == -1) { - x += 32; - } else if(i >= 0) { - s16 sprite = HuSprCreate(anim_tbl[i], 5, c); - HuSprGrpMemberSet(spr_grp, spr_idx, sprite); - HuSprSpeedSet(spr_grp, spr_idx, 0.0f); - HuSprPosSet(spr_grp, spr_idx, x, 0.0f); - spr_idx++; - x += 64; - } - } - if(seqPauseF) { - work->state = 1; - for(i=0; iword_len; i++) { - HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); - } - } - return 1; + s16 spr_idx; + s16 spr_grp; + AnimData *anim_tbl[6]; + s32 i; + s16 len; + char *str; + char c; + int time_max; + int x, y; + work->data = va_arg(params, void *); + time_max = va_arg(params, int); + x = va_arg(params, int); + y = va_arg(params, int); + if (time_max < 0) { + time_max = -1; + } + work->time_max = time_max; + if (x >= 0) { + work->x = x; + } + if (y >= 0) { + work->y = y; + } + work->state = 0; + work->angle = 0.0f; + x = 0; + len = 0; + str = work->data; + while (c = *str++) { + if (c >= '0' && c <= '9') { + x |= 1; + len++; + } + else if (c >= 'A' && c <= 'Z') { + x |= 2; + len++; + } + else if (c >= 'a' && c <= 'z') { + x |= 4; + len++; + } + else if (c == '!' || c == '?') { + x |= 8; + len++; + } + } + work->word_len = len; + for (i = 0; i < 6; i++) { + if (x & (1 << i)) { + anim_tbl[i] = HuSprAnimRead(SeqReadFile(seqType2SprTbl[i])); + } + else { + anim_tbl[i] = NULL; + } + } + work->spr_grp[0] = spr_grp = HuSprGrpCreate(len); + x = 0; + spr_idx = 0; + str = work->data; + while (c = *str++) { + i = -2; + if (c >= '0' && c <= '9') { + c -= '0'; + i = 0; + } + else if (c >= 'A' && c <= 'Z') { + c -= 'A'; + i = 1; + } + else if (c >= 'a' && c <= 'z') { + c -= 'a'; + i = 2; + } + else if (c == '!' || c == '?') { + if (c == '!') { + c = 0; + } + else { + c = 1; + } + i = 3; + } + else if (c == ' ') { + i = -1; + } + work->alt_word_len = x; + if (i == -1) { + x += 32; + } + else if (i >= 0) { + s16 sprite = HuSprCreate(anim_tbl[i], 5, c); + HuSprGrpMemberSet(spr_grp, spr_idx, sprite); + HuSprSpeedSet(spr_grp, spr_idx, 0.0f); + HuSprPosSet(spr_grp, spr_idx, x, 0.0f); + spr_idx++; + x += 64; + } + } + if (seqPauseF) { + work->state = 1; + for (i = 0; i < work->word_len; i++) { + HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); + } + } + return 1; } -static s32 SeqUpdateType2(SeqWork *work) +s32 MGSeqUpdateType2(SeqWork *work) { - float tp_lvl; - s16 spr_grp; - spr_grp = work->spr_grp[0]; - HuSprGrpPosSet(spr_grp, work->x-((0.5f*work->scale_x)*work->alt_word_len), work->y); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - if(work->param[0] != 0 && work->state != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->state = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - { - s32 i; - for(i=0; iword_len; i++) { - HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); - (void)i; - } - work->state = 0; - work->param[0] = 0; - } - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->state == 1) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->state != -1) { - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - } - if(work->state != 0) { - if(work->state != -1) { - (void)work; //HACK: to introduce extra branch - } else { - s16 i; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - for(i=0; iword_len; i++) { - HuSprTPLvlSet(spr_grp, i, tp_lvl); - (void)i; - } - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } else { - return 1; - } + float tp_lvl; + s16 spr_grp; + spr_grp = work->spr_grp[0]; + HuSprGrpPosSet(spr_grp, work->x - ((0.5f * work->scale_x) * work->alt_word_len), work->y); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + if (work->param[0] != 0 && work->state != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->state = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: { + s32 i; + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); + (void)i; + } + work->state = 0; + work->param[0] = 0; + } break; + + default: + work->param[0] = 0; + break; + } + } + if (work->state == 1) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->state != -1) { + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + } + if (work->state != 0) { + if (work->state != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + s16 i; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(spr_grp, i, tp_lvl); + (void)i; + } + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + else { + return 1; + } } +static char seqFontAlphaTbl[] = { "ABCDEFGH" + "IJKLMNOP" + "QRSTUVWX" + "YZabcdef" + "ghijklmn" + "opqrstuv" + "wxyz" }; -static char seqFontAlphaTbl[] = { - "ABCDEFGH" - "IJKLMNOP" - "QRSTUVWX" - "YZabcdef" - "ghijklmn" - "opqrstuv" - "wxyz" -}; - -static char seqFontKanaTbl[] = { - "アイウエオカキク" - "ケコサシスセソタ" - "チツテトナニヌネ" - "ノハヒフヘホマミ" - "ムメモヤユヨラリ" - "ルレロワヲンァィ" - "ゥェォャュョッカ" - "キクケコサシスセ" - "ソタチツテトハヒ" - "フヘホハヒフヘホ" - "ー" -}; +static char seqFontKanaTbl[] = { "アイウエオカキク" + "ケコサシスセソタ" + "チツテトナニヌネ" + "ノハヒフヘホマミ" + "ムメモヤユヨラリ" + "ルレロワヲンァィ" + "ゥェォャュョッカ" + "キクケコサシスセ" + "ソタチツテトハヒ" + "フヘホハヒフヘホ" + "ー" }; static char seqFontNumTbl[] = "0123456789"; -static s32 *letterBufTbl[5] = { }; +static s32 *letterBufTbl[5] = {}; static char wordStartE[] = "START!"; @@ -783,1917 +768,1951 @@ static char wordFinishE[] = "FINISH!"; static char wordDrawE[] = "DRAW!"; static char *wordMgTbl[6] = { - wordStartJ, wordFinishJ, wordDrawJ, - wordStartE, wordFinishE, wordDrawE, + wordStartJ, + wordFinishJ, + wordDrawJ, + wordStartE, + wordFinishE, + wordDrawE, }; void fn_80036BC8(void) { - if(!letterBufTbl[0]) { - letterBufTbl[0] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontAlphaTbl)); - memset(letterBufTbl[0], 0, sizeof(s32)*strlen(seqFontAlphaTbl)); - } - if(!letterBufTbl[1]) { - letterBufTbl[1] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontKanaTbl)); - memset(letterBufTbl[1], 0, sizeof(s32)*strlen(seqFontKanaTbl)); - } - if(!letterBufTbl[2]) { - letterBufTbl[2] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontKanaTbl)); - memset(letterBufTbl[2], 0, sizeof(s32)*strlen(seqFontKanaTbl)); - } - if(!letterBufTbl[3]) { - letterBufTbl[3] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontNumTbl)); - memset(letterBufTbl[3], 0, sizeof(s32)*strlen(seqFontNumTbl)); - } - if(!letterBufTbl[4]) { - letterBufTbl[4] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqPunctTbl)); - memset(letterBufTbl[4], 0, sizeof(s32)*strlen(seqPunctTbl)); - } + if (!letterBufTbl[0]) { + letterBufTbl[0] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontAlphaTbl)); + memset(letterBufTbl[0], 0, sizeof(s32) * strlen(seqFontAlphaTbl)); + } + if (!letterBufTbl[1]) { + letterBufTbl[1] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontKanaTbl)); + memset(letterBufTbl[1], 0, sizeof(s32) * strlen(seqFontKanaTbl)); + } + if (!letterBufTbl[2]) { + letterBufTbl[2] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontKanaTbl)); + memset(letterBufTbl[2], 0, sizeof(s32) * strlen(seqFontKanaTbl)); + } + if (!letterBufTbl[3]) { + letterBufTbl[3] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontNumTbl)); + memset(letterBufTbl[3], 0, sizeof(s32) * strlen(seqFontNumTbl)); + } + if (!letterBufTbl[4]) { + letterBufTbl[4] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqPunctTbl)); + memset(letterBufTbl[4], 0, sizeof(s32) * strlen(seqPunctTbl)); + } } static AnimData *SeqLoadFontChar(char *str, s16 flags); static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) { - s16 *char_pos; - char *str_ptr; - s16 spr_grp; - s16 i; - s16 x; - s16 grp_idx; - s16 len; - AnimData **char_anim; - for(grp_idx=0; grp_idx<16; grp_idx++) { - if(work->spr_grp[grp_idx] == -1) { - break; - } - } - if(grp_idx == 16) { - return -1; - } - char_anim = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(AnimData *)*100); - char_pos = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s16)*100); - str_ptr = str; - x = 0; - len = 0; - while(*str_ptr != 0) { - char_anim[len] = SeqLoadFontChar(str_ptr, flags); - if(char_anim[len]) { - char_pos[len] = x; - x += 56; - len++; - } - str_ptr++; - } - work->spr_grp[grp_idx] = spr_grp = HuSprGrpCreate(len); - x = (x/2)-28; - for(i=0; iword_len = len; - HuMemDirectFree(char_anim); - HuMemDirectFree(char_pos); - return grp_idx; + s16 len; + s16 x; + s16 i; + s16 grp_idx; +#if VERSION_JP + char *str_ptr; + AnimData **char_anim; + s16 *char_pos; +#else + AnimData **char_anim; + s16 *char_pos; + char *str_ptr; +#endif + s16 spr_grp; + for (grp_idx = 0; grp_idx < 16; grp_idx++) { + if (work->spr_grp[grp_idx] == -1) { + break; + } + } + if (grp_idx == 16) { + return -1; + } + char_anim = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(AnimData *) * 100); + char_pos = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s16) * 100); + str_ptr = str; + x = 0; + len = 0; + while (*str_ptr != '\0') { +#if VERSION_JP + if (*str_ptr == ' ') { + x += 56; + } + else { + char_anim[len] = SeqLoadFontChar(str_ptr, flags); + if (char_anim[len]) { + char_pos[len] = x; + x += 56; + len++; + } + } +#else + char_anim[len] = SeqLoadFontChar(str_ptr, flags); + if (char_anim[len]) { + char_pos[len] = x; + x += 56; + len++; + } +#endif + str_ptr++; + } + work->spr_grp[grp_idx] = spr_grp = HuSprGrpCreate(len); + x = (x / 2) - 28; + for (i = 0; i < len; i++) { + s16 sprite = HuSprCreate(char_anim[i], 5, 0); + HuSprGrpMemberSet(spr_grp, i, sprite); + HuSprPosSet(spr_grp, i, char_pos[i] - x, 0.0f); + } + work->word_len = len; + HuMemDirectFree(char_anim); + HuMemDirectFree(char_pos); + return grp_idx; } static AnimData *SeqLoadFontChar(char *str, s16 flags) { - s32 data_num; - s16 id; - char *list; - char c = *str; - if(c == 222 || c == 223) { - return NULL; - } - if(c == 32) { - return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); - } - for(id = 0, list=seqFontAlphaTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+21); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - for(id = 0, list=seqFontNumTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+11); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - for(id = 0, list=seqPunctTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+154); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - if(str[1] == 222) { //゛ - list = seqFontKanaTbl; - list += 55; - id = 55; - } else if(str[1] == 223) { //゜ - list = seqFontKanaTbl; - list += 75; - id = 75; - } else { - list = seqFontKanaTbl; - id = 0; - } - while(*list != 0) { - if(*list == c) { - if(flags & 0x1) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+156); - } else { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+73); - } - return HuSprAnimRead(SeqReadFile(data_num)); - } - id++; - list++; - } - return NULL; + s32 data_num; + s16 id; + char *list; + char c = *str; + if (c == 222 || c == 223) { + return NULL; + } +#if !VERSION_JP + if (c == 32) { + return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); + } +#endif + for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 20 : 21)); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 10 : 11)); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 153 : 154)); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + if (str[1] == 222) { // ゛ + list = seqFontKanaTbl; + list += 55; + id = 55; + } + else if (str[1] == 223) { // ゜ + list = seqFontKanaTbl; + list += 75; + id = 75; + } + else { + list = seqFontKanaTbl; + id = 0; + } + while (*list != 0) { + if (*list == c) { + if (flags & 0x1) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 155 : 156)); + } + else { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 72 : 73)); + } + return HuSprAnimRead(SeqReadFile(data_num)); + } + id++; + list++; + } + return NULL; } static float ForceDefine480() { - return 480.0f; + return 480.0f; } static void SeqPlayStartFX(void); -static s32 SeqInitMGBasic(SeqWork *work, va_list params) +s32 MGSeqInitMGBasic(SeqWork *work, va_list params) { - s16 i; - s16 word_grp; - - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - - { - s32 word_katakana; - s32 word_flag; - s32 word_ofs; - word_katakana = 0; - if(work->state == 2 && seqLanguage == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 1.0f); - HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, HU_DISP_CENTERY); - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + s16 i; + s16 word_grp; + + work->state = va_arg(params, int); + if (work->state == 2) { + return MGSeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + + { + s32 word_katakana; + s32 word_flag; + s32 word_ofs; + word_katakana = 0; + if (work->state == 2 && seqLanguage == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 1.0f); + HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, HU_DISP_CENTERY); + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } -static s32 SeqUpdateMGBasic(SeqWork *work) +s32 MGSeqUpdateMGBasic(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float pos_x; - float time; - s16 i; - if(work->state == 0) { - if(work->time <= 40) { - for(i=0; iword_len; i++) { - time = work->time-((20/work->word_len)*(work->word_len-i-1)); - if(time < 0 || time > 20.0f) { - continue; - } - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f+(i*56); - if(time == 20.0f) { - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprZRotSet(work->spr_grp[0], i, 0.0f); - } else { - HuSprPosSet(work->spr_grp[0], i, pos_x-(((1.0-sin(((time*4.5f)*M_PI)/180.0))*(work->word_len*56*2))), work->y); - HuSprZRotSet(work->spr_grp[0], i, (time/20.0f)*390.0f); - } - } - } else { - time = work->time-40; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y+sin(((time*9.0f)*M_PI)/180.0)); - } - } - if(work->time == 40) { - idx = HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 60) { - SeqPlayStartFX(); - work->stat |= 0x4; - } - if(work->time >= 60) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - time = work->time; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+sin(((time*9.0f)*M_PI)/180.0), work->scale_y+sin(((time*9.0f)*M_PI)/180.0)); - } - if(time == 20.0f) { - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 80) { - for(i=0; iword_len; i++) { - time = (work->time-80)-((20/work->word_len)*(work->word_len-i-1)); - if(time < 0.0f || time > 20.0f) { - continue; - } - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56); - if(time == 20.0f) { - HuSprAttrSet(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - } else { - HuSprPosSet(work->spr_grp[0], i, pos_x+((1.0-cos(((time*4.5f)*M_PI)/180.0f))*(work->word_len*56*2)), work->y); - HuSprZRotSet(work->spr_grp[0], i, (time/20.0f)*390.0f); - } - } - } - } - if(work->time == 110) { - work->stat |= 0x4; - } - if(work->time >= 110) { - work->type = 0; - work->stat |= 8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float pos_x; + float time; + s16 i; + if (work->state == 0) { + if (work->time <= 40) { + for (i = 0; i < work->word_len; i++) { + time = work->time - ((20 / work->word_len) * (work->word_len - i - 1)); + if (time < 0 || time > 20.0f) { + continue; + } + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f + (i * 56); + if (time == 20.0f) { + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprZRotSet(work->spr_grp[0], i, 0.0f); + } + else { + HuSprPosSet(work->spr_grp[0], i, pos_x - (((1.0 - sind(time * 4.5f)) * (work->word_len * 56 * 2))), + work->y); + HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); + } + } + } + else { + time = work->time - 40; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (i = 0; i < work->word_len; i++) { + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y + sind(time * 9.0f)); + } + } + if (work->time == 40) { + idx = HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 60) { + SeqPlayStartFX(); + work->stat |= 0x4; + } + if (work->time >= 60) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + sind(time * 9.0f), + work->scale_y + sind(time * 9.0f)); + } + if (time == 20.0f) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 80) { + for (i = 0; i < work->word_len; i++) { + time = (work->time - 80) - ((20 / work->word_len) * (work->word_len - i - 1)); + if (time < 0.0f || time > 20.0f) { + continue; + } + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56); + if (time == 20.0f) { + HuSprAttrSet(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + } + else { + HuSprPosSet(work->spr_grp[0], i, + pos_x + ((1.0 - cosd(time * 4.5f)) * (work->word_len * 56 * 2)), work->y); + HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); + } + } + } + } + if (work->time == 110) { + work->stat |= 0x4; + } + if (work->time >= 110) { + work->type = 0; + work->stat |= 8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqInitMGCommon(SeqWork *work, va_list params) +s32 MGSeqInitMGCommon(SeqWork *work, va_list params) { - s16 i; - float tp_lvl; - s16 j; - s16 word_grp; - - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - tp_lvl = 1.0f; - for(i=0; i<4; i++) { - if(i == 0) - { - s32 word_katakana; - s32 word_flag; - s32 word_ofs; - word_katakana = 0; - if(work->state == 2 && seqLanguage == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } else { - s16 grp_idx; - s32 new_grp; - for(grp_idx=0; grp_idx<16; grp_idx++) { - if(work->spr_grp[grp_idx] == -1) { - break; - } - } - if(grp_idx == 16) { - new_grp = -1; - } else { - work->spr_grp[grp_idx] = HuSprGrpCopy(work->spr_grp[word_grp]); - new_grp = grp_idx; - } - (void)new_grp; - word_grp = new_grp; - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(j=0; jword_len; j++) { - HuSprTPLvlSet(work->spr_grp[word_grp], j, tp_lvl); - HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, HU_DISP_CENTERY); - HuSprPriSet(work->spr_grp[word_grp], j, i+5); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - if(i == 0) { - tp_lvl -= 0.5; - } else { - tp_lvl -= 0.1f; - } - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + s16 i; + float tp_lvl; + s16 j; + s16 word_grp; + + work->state = va_arg(params, int); + if (work->state == 2) { + return MGSeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + tp_lvl = 1.0f; + for (i = 0; i < 4; i++) { + if (i == 0) { + s32 word_katakana; + s32 word_flag; + s32 word_ofs; + word_katakana = 0; + if (work->state == 2 && seqLanguage == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + else { + s16 grp_idx; + s32 new_grp; + for (grp_idx = 0; grp_idx < 16; grp_idx++) { + if (work->spr_grp[grp_idx] == -1) { + break; + } + } + if (grp_idx == 16) { + new_grp = -1; + } + else { + work->spr_grp[grp_idx] = HuSprGrpCopy(work->spr_grp[word_grp]); + new_grp = grp_idx; + } + (void)new_grp; + word_grp = new_grp; + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (j = 0; j < work->word_len; j++) { + HuSprTPLvlSet(work->spr_grp[word_grp], j, tp_lvl); + HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, HU_DISP_CENTERY); + HuSprPriSet(work->spr_grp[word_grp], j, i + 5); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + if (i == 0) { + tp_lvl -= 0.5; + } + else { + tp_lvl -= 0.1f; + } + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } -static s32 SeqUpdateMGBattle(SeqWork *work) +s32 MGSeqUpdateMGBattle(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - s16 i, j; - float time; - float pos_x; - if(work->state == 0) { - if(work->time < 45) { - if(work->time > 10 && work->time <= 40) { - time = work->time-10; - scale = 10.0f*(1.0f-(time/30.0f)); - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f; - HuSprPosSet(work->spr_grp[0], 0, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], 0, work->scale_x+scale, work->scale_y+scale); - scale = time/30.0f; - HuSprTPLvlSet(work->spr_grp[0], 0, scale); - } - for(i=0; i<4; i++) { - time = work->time-i; - if(time < 0 || time > 40) { - continue; - } - for(j=1; jword_len; j++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - if(time == 40.0f) { - HuSprPosSet(work->spr_grp[i], j, pos_x, work->y); - HuSprZRotSet(work->spr_grp[i], j, 0.0f); - HuSprScaleSet(work->spr_grp[i], j, work->scale_x, work->scale_y); - if(i != 0) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } else { - s16 discard_cnt; - static float letterOfs[] = { - 30, 20, - 20, 3, - -4, 20, - -30, 20, - 20, 20, - -30, 20, - -10, 40, - 10, -40 - }; - float x, y; - float ofs_x, ofs_y; - float zrot, scale_ang; - x = pos_x; - y = work->y; - ofs_x = letterOfs[((j-1)&0x7)*2]; - ofs_y = letterOfs[(((j-1)&0x7)*2)+1]; - zrot = 0.0f; - discard_cnt = 0; - scale_ang = 0.0f; - for(idx=0; idx<40.0f-time; idx++) { - if(x+ofs_x > HU_DISP_WIDTH || x+ofs_x < 0) { - ofs_x = -ofs_x; - discard_cnt++; - } - if(y+ofs_y > HU_DISP_HEIGHT || y+ofs_y < 0) { - ofs_y = -ofs_y; - discard_cnt++; - } - if(discard_cnt) { - zrot += 20.0f; - scale_ang = 0.0f; - } - x += ofs_x; - y += ofs_y; - } - HuSprPosSet(work->spr_grp[i], j, x, y); - HuSprScaleSet(work->spr_grp[i], j, work->scale_x*cos((M_PI*scale_ang)/180.0), work->scale_y); - HuSprZRotSet(work->spr_grp[i], j, zrot); - } - } - } - } else { - if(work->time > 60) { - time = work->time-60; - scale = 0.5*sin((M_PI*(time*9.0f))/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - if(work->time == 60) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 80) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 80) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 80 && work->time <= 95) { - time = work->time-80; - for(j=0; jword_len; j++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - HuSprPosSet(work->spr_grp[0], j, pos_x+((HU_DISP_CENTERX-pos_x)*(1.0-cos((M_PI*(time*6.0))/180.0))), work->y); - } - if(time == 15.0f) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); - HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y); - HuSprTPLvlSet(work->spr_grp[1], j, 1.0f); - } - } - } else { - if(work->time > 105) { - for(j=0; jword_len; j++) { - time = work->time-105; - time -= j*3; - if(time < 0) { - continue; - } - scale = 1.0f-(time/15.0f); - if(scale < 0.0f) { - scale = 0.0f; - } - HuSprPosSet(work->spr_grp[0], j, HU_DISP_CENTERX, work->y+((-100.0f-work->y)*(time/20.0f))); - HuSprTPLvlSet(work->spr_grp[0], j, scale); - HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y+((580.0f-work->y)*(time/20.0f))); - HuSprTPLvlSet(work->spr_grp[1], j, scale); - } - } - } - } - if(work->time == 130) { - work->stat |= 0x4; - } - if(work->time >= 130) { - work->type = 0; - work->stat |= 0x8; - } - } - - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + s16 i, j; + float time; + float pos_x; + if (work->state == 0) { + if (work->time < 45) { + if (work->time > 10 && work->time <= 40) { + time = work->time - 10; + scale = 10.0f * (1.0f - (time / 30.0f)); + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f; + HuSprPosSet(work->spr_grp[0], 0, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], 0, work->scale_x + scale, work->scale_y + scale); + scale = time / 30.0f; + HuSprTPLvlSet(work->spr_grp[0], 0, scale); + } + for (i = 0; i < 4; i++) { + time = work->time - i; + if (time < 0 || time > 40) { + continue; + } + for (j = 1; j < work->word_len; j++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + if (time == 40.0f) { + HuSprPosSet(work->spr_grp[i], j, pos_x, work->y); + HuSprZRotSet(work->spr_grp[i], j, 0.0f); + HuSprScaleSet(work->spr_grp[i], j, work->scale_x, work->scale_y); + if (i != 0) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + else { + s16 discard_cnt; + static float letterOfs[] = { 30, 20, 20, 3, -4, 20, -30, 20, 20, 20, -30, 20, -10, 40, 10, -40 }; + float x, y; + float ofs_x, ofs_y; + float zrot, scale_ang; + x = pos_x; + y = work->y; + ofs_x = letterOfs[((j - 1) & 0x7) * 2]; + ofs_y = letterOfs[(((j - 1) & 0x7) * 2) + 1]; + zrot = 0.0f; + discard_cnt = 0; + scale_ang = 0.0f; + for (idx = 0; idx < 40.0f - time; idx++) { + if (x + ofs_x > HU_DISP_WIDTH || x + ofs_x < 0) { + ofs_x = -ofs_x; + discard_cnt++; + } + if (y + ofs_y > HU_DISP_HEIGHT || y + ofs_y < 0) { + ofs_y = -ofs_y; + discard_cnt++; + } + if (discard_cnt) { + zrot += 20.0f; + scale_ang = 0.0f; + } + x += ofs_x; + y += ofs_y; + } + HuSprPosSet(work->spr_grp[i], j, x, y); + HuSprScaleSet(work->spr_grp[i], j, work->scale_x * cosd(scale_ang), work->scale_y); + HuSprZRotSet(work->spr_grp[i], j, zrot); + } + } + } + } + else { + if (work->time > 60) { + time = work->time - 60; + scale = 0.5 * sind(time * 9.0f); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 60) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 80) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 80) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); + } + if (time == 20.0f) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 80 && work->time <= 95) { + time = work->time - 80; + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + HuSprPosSet( + work->spr_grp[0], j, pos_x + ((HU_DISP_CENTERX - pos_x) * (1.0 - cosd(time * 6.0))), work->y); + } + if (time == 15.0f) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y); + HuSprTPLvlSet(work->spr_grp[1], j, 1.0f); + } + } + } + else { + if (work->time > 105) { + for (j = 0; j < work->word_len; j++) { + time = work->time - 105; + time -= j * 3; + if (time < 0) { + continue; + } + scale = 1.0f - (time / 15.0f); + if (scale < 0.0f) { + scale = 0.0f; + } + HuSprPosSet(work->spr_grp[0], j, HU_DISP_CENTERX, work->y + ((-100.0f - work->y) * (time / 20.0f))); + HuSprTPLvlSet(work->spr_grp[0], j, scale); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y + ((580.0f - work->y) * (time / 20.0f))); + HuSprTPLvlSet(work->spr_grp[1], j, scale); + } + } + } + } + if (work->time == 130) { + work->stat |= 0x4; + } + if (work->time >= 130) { + work->type = 0; + work->stat |= 0x8; + } + } + + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqUpdateMG1vs3(SeqWork *work) +s32 MGSeqUpdateMG1vs3(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale_x, scale_y; - float pos_x, pos_y; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 10) { - scale = work->time/10.0f; - time = work->time; - for(idx=0; idxword_len; idx++) { - scale_x = 0.3*work->scale_x; - scale_y = 0.3*work->scale_y; - pos_x = ((28.0f*scale_x)+(work->x-(0.5f*(scale_x*(work->word_len*56)))))+(scale_x*(idx*56)); - pos_y = work->y-(150.0*sin((M_PI*(((16.0f/3.0f)*time)+20.0f))/180.0)); - HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y*cos(M_PI*(12.0f*time)/180.0)); - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } else { - if(work->time <= 60) { - for(i=0; i<4; i++) { - for(idx=0; idxword_len; idx++) { - time = (work->time-10)-(idx*3)-i; - if(time < 0.0f) { - time = 0.0f; - } else { - if(time > 30.0f) { - continue; - } - } - scale = 0.3+(0.7*(1.0-cos((M_PI*(time*3.0f))/180.0))); - scale_x = work->scale_x*scale; - scale_y = work->scale_y*scale; - pos_x = ((28.0f*scale_x)+(work->x-(0.5f*(scale_x*(work->word_len*56)))))+(scale_x*(idx*56)); - pos_y = work->y-(150.0*sin((M_PI*(((16.0f/3.0f)*time)+20.0f))/180.0)); - HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y*cos(M_PI*(12.0f*time)/180.0)); - } - } - if(work->time == 60) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 70) { - time = work->time-70; - scale = 0.5*sin((M_PI*(time*9.0f))/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 70) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 90) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 90) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 || work->time < 140) { - for(i=0; i<4; i++) { - for(j=0; jword_len; j++) { - time = (work->time-80)-i-j; - if(time < 0 || time > 40) { - continue; - } - if(time <= 20) { - float pos_base = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - HuSprPosSet(work->spr_grp[i], j, pos_base+((time/20.0f)*(pos_x-pos_base)), work->y+(((HU_DISP_HEIGHT-40)-work->y)*(time/20.0f))); - } else { - time -= 20.0f; - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - pos_y = HU_DISP_HEIGHT-40; - HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y+((-40.0f-pos_y)*(time/20.0f))); - } - } - } - } - } - if(work->time == 140) { - work->stat |= 0x4; - } - if(work->time >= 140) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale_x, scale_y; + float pos_x, pos_y; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 10) { + scale = work->time / 10.0f; + time = work->time; + for (idx = 0; idx < work->word_len; idx++) { + scale_x = 0.3 * work->scale_x; + scale_y = 0.3 * work->scale_y; + pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); + pos_y = work->y - 150.0 * sind((16.0f / 3.0f) * time + 20.0f); + HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); + HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y * cosd(12.0f * time)); + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } + else { + if (work->time <= 60) { + for (i = 0; i < 4; i++) { + for (idx = 0; idx < work->word_len; idx++) { + time = (work->time - 10) - (idx * 3) - i; + if (time < 0.0f) { + time = 0.0f; + } + else { + if (time > 30.0f) { + continue; + } + } + scale = 0.3 + 0.7 * (1.0 - cosd(time * 3.0f)); + scale_x = work->scale_x * scale; + scale_y = work->scale_y * scale; + pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); + pos_y = work->y - 150.0 * sind((16.0f / 3.0f) * time + 20.0f); + HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); + HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y * cosd(12.0f * time)); + } + } + if (work->time == 60) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 70) { + time = work->time - 70; + scale = 0.5 * sind(time * 9.0f); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 70) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 90) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 90) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 || work->time < 140) { + for (i = 0; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + time = (work->time - 80) - i - j; + if (time < 0 || time > 40) { + continue; + } + if (time <= 20) { + float pos_base = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + ((work->word_len - j - 1) * 56); + HuSprPosSet(work->spr_grp[i], j, pos_base + ((time / 20.0f) * (pos_x - pos_base)), + work->y + (((HU_DISP_HEIGHT - 40) - work->y) * (time / 20.0f))); + } + else { + time -= 20.0f; + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + ((work->word_len - j - 1) * 56); + pos_y = HU_DISP_HEIGHT - 40; + HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y + ((-40.0f - pos_y) * (time / 20.0f))); + } + } + } + } + } + if (work->time == 140) { + work->stat |= 0x4; + } + if (work->time >= 140) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqUpdateMGStory(SeqWork *work) +s32 MGSeqUpdateMGStory(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float pos_x, pos_y; - float time; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 30) { - for(idx=0; idxword_len; idx++) { - time = (work->time-(idx*2)); - if(time < 0.0f || time > 15.0f) { - continue; - } - pos_x = -50.0f; - HuSprPosSet(work->spr_grp[0], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); - HuSprZRotSet(work->spr_grp[0], idx, (1.0-(time/15.0f))*180.0); - pos_x = HU_DISP_WIDTH+50; - HuSprPosSet(work->spr_grp[1], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); - HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); - HuSprZRotSet(work->spr_grp[1], idx, (1.0-(time/15.0f))*-180.0); - } - if(work->time == 30) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 35 && work->time <= 45) { - time = work->time-35; - for(idx=0; idxword_len; idx++) { - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f+(idx*56); - HuSprPosSet(work->spr_grp[0], idx, HU_DISP_CENTERX+((pos_x-HU_DISP_CENTERX)*(time/10.0f)), work->y); - } - } else { - if(work->time > 55) { - time = work->time-55; - scale = 0.5*sin(M_PI*(9.0f*time)/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 55) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 75) { - SeqPlayStartFX(); - work->stat |= 0x4; - } - if(work->time >= 75) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f){ - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else if(work->time > 80 && work->time < 160) { - for(i=0; i<4; i++) { - for(j=0; jword_len; j++) { - s16 initF; - float dx, dy; - time = (work->time-80)-i; - if(time < 0 || time > 60) { - continue; - } - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - dx = 28.0f+(work->x-(0.5f*(work->word_len*56))); - pos_y = work->y; - for(idx=initF=0; idxx-(0.5f*(work->word_len*56))); - initF = 1; - dy = 25.0f; - dx = 10.0f; - } - - } else { - pos_x += dx; - pos_y += dy; - dx += 0.1; - dy -= 2.0f; - if(pos_y < 0.0f) { - break; - } - } - } - - HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y); - } - } - } - if(work->time == 160) { - work->stat |= 0x4; - } - if(work->time >= 160) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float pos_x, pos_y; + float time; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 30) { + for (idx = 0; idx < work->word_len; idx++) { + time = (work->time - (idx * 2)); + if (time < 0.0f || time > 15.0f) { + continue; + } + pos_x = -50.0f; + HuSprPosSet(work->spr_grp[0], idx, pos_x + ((HU_DISP_CENTERX - pos_x) * (time / 15.0f)), work->y); + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); + HuSprZRotSet(work->spr_grp[0], idx, (1.0 - (time / 15.0f)) * 180.0); + pos_x = HU_DISP_WIDTH + 50; + HuSprPosSet(work->spr_grp[1], idx, pos_x + ((HU_DISP_CENTERX - pos_x) * (time / 15.0f)), work->y); + HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); + HuSprZRotSet(work->spr_grp[1], idx, (1.0 - (time / 15.0f)) * -180.0); + } + if (work->time == 30) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 35 && work->time <= 45) { + time = work->time - 35; + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f + (idx * 56); + HuSprPosSet(work->spr_grp[0], idx, HU_DISP_CENTERX + ((pos_x - HU_DISP_CENTERX) * (time / 10.0f)), work->y); + } + } + else { + if (work->time > 55) { + time = work->time - 55; + scale = 0.5 * sind(9.0f * time); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 55) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 75) { + SeqPlayStartFX(); + work->stat |= 0x4; + } + if (work->time >= 75) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else if (work->time > 80 && work->time < 160) { + for (i = 0; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + s16 initF; + float dx, dy; + time = (work->time - 80) - i; + if (time < 0 || time > 60) { + continue; + } + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + dx = 28.0f + (work->x - (0.5f * (work->word_len * 56))); + pos_y = work->y; + for (idx = initF = 0; idx < time; idx++) { + if (!initF) { + pos_x -= 20.0f; + if (pos_x <= dx) { + pos_x = 28.0f + (work->x - (0.5f * (work->word_len * 56))); + initF = 1; + dy = 25.0f; + dx = 10.0f; + } + } + else { + pos_x += dx; + pos_y += dy; + dx += 0.1; + dy -= 2.0f; + if (pos_y < 0.0f) { + break; + } + } + } + + HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y); + } + } + } + if (work->time == 160) { + work->stat |= 0x4; + } + if (work->time >= 160) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqUpdateMG2vs2(SeqWork *work) +s32 MGSeqUpdateMG2vs2(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - static s16 letterOfs[] = { - -10, -50, - 0, -30, - 5, -60, - -10, 60, - 8, -40, - 5, 50, - -10, 20 - }; - - float pos_x; - float time; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 30) { - time = work->time; - for(idx=0; idxword_len; idx++) { - pos_x = (28.0f+(work->x-(0.5f*(work->scale_x*(work->word_len*56)))))+(idx*56); - HuSprPosSet(work->spr_grp[0], idx, pos_x+((1.0f-(time/30.0f))*letterOfs[(idx*2)]), work->y+((1.0f-(time/30.0f))*letterOfs[(idx*2)+1])); - HuSprTPLvlSet(work->spr_grp[0], idx, time/30.0f); - } - } else { - if(work->time > 40 && work->time <= 60) { - time = work->time-40; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - if(work->time == 40) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 60) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 60) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 && work->time < 140) { - time = work->time-80; - for(idx=0; idxword_len; idx++) { - float radius = (idx*56)-(((work->word_len-1)*56)/2); - float angle = (1.0f+(1.0f-(ABS(radius)/320.0f)))*720.0f; - float new_scale; - radius *= 1.0-(time/60.0f); - HuSprPosSet(work->spr_grp[0], idx, (radius*sin(M_PI*(((time/60.0f)*angle)+90.0f)/180.0))+work->x, (radius*cos(M_PI*(((time/60.0f)*angle)+90.0f)/180.0))+work->y); - HuSprZRotSet(work->spr_grp[0], idx, -(time/60.0f)*720.0f); - new_scale = 0.5+(0.5*(1.0f-(time/60.0f))); - HuSprScaleSet(work->spr_grp[0], idx, new_scale, new_scale); - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f-(time/60.0f)); - } - } - } - if(work->time == 140) { - work->stat |= 0x4; - } - if(work->time >= 150) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - - break; - - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + static s16 letterOfs[] = { -10, -50, 0, -30, 5, -60, -10, 60, 8, -40, 5, 50, -10, 20 }; + + float pos_x; + float time; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 30) { + time = work->time; + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (28.0f + (work->x - (0.5f * (work->scale_x * (work->word_len * 56))))) + (idx * 56); + HuSprPosSet(work->spr_grp[0], idx, pos_x + ((1.0f - (time / 30.0f)) * letterOfs[(idx * 2)]), + work->y + ((1.0f - (time / 30.0f)) * letterOfs[(idx * 2) + 1])); + HuSprTPLvlSet(work->spr_grp[0], idx, time / 30.0f); + } + } + else { + if (work->time > 40 && work->time <= 60) { + time = work->time - 40; + scale = 0.5 * sind(time * 9.0f); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 40) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 60) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 60) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 && work->time < 140) { + time = work->time - 80; + for (idx = 0; idx < work->word_len; idx++) { + float radius = (idx * 56) - (((work->word_len - 1) * 56) / 2); + float angle = (1.0f + (1.0f - (ABS(radius) / 320.0f))) * 720.0f; + float new_scale; + radius *= 1.0 - (time / 60.0f); + HuSprPosSet(work->spr_grp[0], idx, (radius * sind((time / 60.0f) * angle + 90.0f)) + work->x, + (radius * cosd((time / 60.0f) * angle + 90.0f)) + work->y); + HuSprZRotSet(work->spr_grp[0], idx, -(time / 60.0f) * 720.0f); + new_scale = 0.5 + (0.5 * (1.0f - (time / 60.0f))); + HuSprScaleSet(work->spr_grp[0], idx, new_scale, new_scale); + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f - (time / 60.0f)); + } + } + } + if (work->time == 140) { + work->stat |= 0x4; + } + if (work->time >= 150) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqInitFlip(SeqWork *work, va_list params) +s32 MGSeqInitFlip(SeqWork *work, va_list params) { - s16 i; - s16 word_grp; - s16 word_ofs; - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - { - s32 word_ofs_temp; - s32 word_katakana; - s32 word_flag; + s16 i; + s16 word_grp; + s16 word_ofs; + work->state = va_arg(params, int); + if (work->state == 2) { + return MGSeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + { + s32 word_ofs_temp; + s32 word_katakana; + s32 word_flag; - if(seqLanguage == 0) { - word_ofs_temp = 3; - } else { - word_ofs_temp = 0; - } - word_ofs = word_ofs_temp; - word_katakana = 0; - if(work->state == 2 && word_ofs == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); - HuSprPosSet(work->spr_grp[word_grp], i, (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56), work->y); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); - } - work->alt_word_len = work->word_len; - { - s32 word_ofs_temp; - s32 word_katakana; - s32 word_flag; - - if(seqLanguage == 0) { - word_ofs_temp = 0; - } else { - word_ofs_temp = 3; - } - word_ofs = word_ofs_temp; - word_katakana = 0; - if(work->state == 2 && word_ofs == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); - HuSprPosSet(work->spr_grp[word_grp], i, (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56), work->y); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + if (seqLanguage == 0) { + word_ofs_temp = 3; + } + else { + word_ofs_temp = 0; + } + word_ofs = word_ofs_temp; + word_katakana = 0; + if (work->state == 2 && word_ofs == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); + HuSprPosSet(work->spr_grp[word_grp], i, (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56), work->y); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); + } + work->alt_word_len = work->word_len; + { + s32 word_ofs_temp; + s32 word_katakana; + s32 word_flag; + + if (seqLanguage == 0) { + word_ofs_temp = 0; + } + else { + word_ofs_temp = 3; + } + word_ofs = word_ofs_temp; + word_katakana = 0; + if (work->state == 2 && word_ofs == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); + HuSprPosSet(work->spr_grp[word_grp], i, (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56), work->y); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } -static s32 SeqUpdateFlip(SeqWork *work) +s32 MGSeqUpdateFlip(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float pos_x; - s16 i; - if(work->state == 0) { - if(work->time <= 10) { - for(idx=0; idxalt_word_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, work->time/10.0f); - } - } else { - if(work->time <= 30) { - time = work->time-10; - if(time <= 10) { - for(idx=0; idxalt_word_len; idx++) { - HuSprScaleSet(work->spr_grp[0], idx, cos(M_PI*((time/10.0f)*90.0f)/180.0), 1.0f); - } - } else { - time -= 10.0f; - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); - HuSprScaleSet(work->spr_grp[1], idx, sin(M_PI*((time/10.0f)*90.0f)/180.0), 1.0f); - } - } - } else { - if(work->time > 35 && work->time <= 55) { - time = work->time-35; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(i=0; iword_len; i++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[1], i, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 35) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 55) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 75) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - time = work->time; - scale = 0.5*sin(M_PI*(9.0f*time)/180.0); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[1], i, 1.0f); - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[1], i, work->scale_x+scale, work->scale_y+scale); - } - } else { - if(work->time > 80 && work->time <= 160) { - time = work->time-80; - for(idx=0; idxword_len; idx++) { - scale = time-(idx*2); - if(scale < 0 || scale > 15.0f) { - continue; - } - HuSprScaleSet(work->spr_grp[1], idx, cos(M_PI*((scale/15.0f)*90.0f)/180.0), 1.0f); - } - for(idx=0; idxalt_word_len; idx++) { - scale = (time-15.0f)-(idx*2); - if(scale < 0 || scale > 30.0f) { - continue; - } - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); - HuSprScaleSet(work->spr_grp[0], idx, sin(M_PI*((scale/30.0f)*180.0f)/180.0), 1.0f); - } - } - } - if(work->time == 160) { - work->stat |= 0x4; - } - if(work->time >= 160) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[1], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float pos_x; + s16 i; + if (work->state == 0) { + if (work->time <= 10) { + for (idx = 0; idx < work->alt_word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, work->time / 10.0f); + } + } + else { + if (work->time <= 30) { + time = work->time - 10; + if (time <= 10) { + for (idx = 0; idx < work->alt_word_len; idx++) { + HuSprScaleSet(work->spr_grp[0], idx, cosd((time / 10.0f) * 90.0f), 1.0f); + } + } + else { + time -= 10.0f; + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); + HuSprScaleSet(work->spr_grp[1], idx, sind((time / 10.0f) * 90.0f), 1.0f); + } + } + } + else { + if (work->time > 35 && work->time <= 55) { + time = work->time - 35; + scale = 0.5 * sind(time * 9.0f); + for (i = 0; i < work->word_len; i++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[1], i, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 35) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 55) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 75) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + time = work->time; + scale = 0.5 * sind(9.0f * time); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[1], i, 1.0f); + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[1], i, work->scale_x + scale, work->scale_y + scale); + } + } + else { + if (work->time > 80 && work->time <= 160) { + time = work->time - 80; + for (idx = 0; idx < work->word_len; idx++) { + scale = time - (idx * 2); + if (scale < 0 || scale > 15.0f) { + continue; + } + HuSprScaleSet(work->spr_grp[1], idx, cosd((scale / 15.0f) * 90.0f), 1.0f); + } + for (idx = 0; idx < work->alt_word_len; idx++) { + scale = (time - 15.0f) - (idx * 2); + if (scale < 0 || scale > 30.0f) { + continue; + } + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); + HuSprScaleSet(work->spr_grp[0], idx, sind((scale / 30.0f) * 180.0f), 1.0f); + } + } + } + if (work->time == 160) { + work->stat |= 0x4; + } + if (work->time >= 160) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[1], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqUpdateMGBowser(SeqWork *work) +s32 MGSeqUpdateMGBowser(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - s16 i; - s16 j; - float angle; - float time_angle; - float time; - float pos_x, pos_y; - - float temp_f25; - float center_x; - s16 spr_idx[16]; - float scale_arr[16]; - - - if(work->state == 0) { - if(work->time <= 60) { - center_x = (0.5*(work->word_len*56))+20.0; - for(idx=0; idxword_len; idx++) { - time = work->time-idx; - if(time < 0) { - scale_arr[idx] = 0.0f; - spr_idx[idx] = idx; - } else { - if(time > 50.0f) { - time = 50.0f; - } - time_angle = 540.0*(1.0f-(time/50.0f)); - pos_x = (28.0f+(0.5f*-(work->word_len*56)))+(idx*56); - angle = 180.0*(atan2(pos_x, center_x)/M_PI); - pos_x = work->x+(center_x*sin(M_PI*(angle+time_angle)/180.0)); - pos_y = work->y-(HU_DISP_CENTERY*(1.0-(time/50.0f))); - HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - temp_f25 = 0.9+(0.1*cos(M_PI*(angle+time_angle)/180.0)); - HuSprScaleSet(work->spr_grp[0], idx, temp_f25*cos(M_PI*(angle+time_angle)/180.0), temp_f25); - scale_arr[idx] = cos(M_PI*(angle+time_angle)/180.0); - spr_idx[idx] = idx; - } - } - for(i=1; iword_len; i++) { - for(idx=0; idxword_len-i; idx++) { - if(scale_arr[idx] > scale_arr[idx+1]) { - j= spr_idx[idx]; - spr_idx[idx] = spr_idx[idx+1]; - spr_idx[idx+1] = j; - angle = scale_arr[idx]; - scale_arr[idx] = scale_arr[idx+1]; - scale_arr[idx+1] = angle; - } - } - } - for(idx=0; idxword_len; idx++) { - HuSprPriSet(work->spr_grp[0], spr_idx[idx], idx+5); - } - } else { - if(work->time > 60 && work->time <= 80) { - time = work->time-60; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(i=0; iword_len; i++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+scale, work->scale_y+scale); - } - } - - } - if(work->time == 60) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 80) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 100) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(j=1; j<4; j++) { - for(i=0; iword_len; i++) { - HuSprAttrSet(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(j=1; j<4; j++) { - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 && work->time <= 125) { - static float letterOfs[] = { - -30, -30, - HU_DISP_WIDTH+30, -30, - HU_DISP_CENTERX+52, HU_DISP_HEIGHT+30, - HU_DISP_WIDTH+30, HU_DISP_HEIGHT+30, - -30, HU_DISP_HEIGHT-30, - HU_DISP_WIDTH+30, 120, - HU_DISP_CENTERX+162, -30, - }; - for(i=0; i<4; i++) { - time = work->time-80-i; - if(time < 0.0f || time > 15.0f) { - continue; - } - for(idx=0; idxword_len; idx++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(idx*56); - pos_x += (time/15.0f)*(letterOfs[(idx*2)]-pos_x); - pos_y = work->y+((time/15.0f)*(letterOfs[(idx*2)+1]-work->y)); - HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); - } - } - } - } - if(work->time == 125) { - work->stat |= 0x4; - } - if(work->time >= 135) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + s16 i; + s16 j; + float angle; + float time_angle; + float time; + float pos_x, pos_y; + + float temp_f25; + float center_x; + s16 spr_idx[16]; + float scale_arr[16]; + + if (work->state == 0) { + if (work->time <= 60) { + center_x = (0.5 * (work->word_len * 56)) + 20.0; + for (idx = 0; idx < work->word_len; idx++) { + time = work->time - idx; + if (time < 0) { + scale_arr[idx] = 0.0f; + spr_idx[idx] = idx; + } + else { + if (time > 50.0f) { + time = 50.0f; + } + time_angle = 540.0 * (1.0f - (time / 50.0f)); + pos_x = (28.0f + (0.5f * -(work->word_len * 56))) + (idx * 56); + angle = atan2d(pos_x, center_x); + pos_x = work->x + (center_x * sind(angle + time_angle)); + pos_y = work->y - (HU_DISP_CENTERY * (1.0 - (time / 50.0f))); + HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); + temp_f25 = 0.9 + (0.1 * cosd(angle + time_angle)); + HuSprScaleSet(work->spr_grp[0], idx, temp_f25 * cosd(angle + time_angle), temp_f25); + scale_arr[idx] = cosd(angle + time_angle); + spr_idx[idx] = idx; + } + } + for (i = 1; i < work->word_len; i++) { + for (idx = 0; idx < work->word_len - i; idx++) { + if (scale_arr[idx] > scale_arr[idx + 1]) { + j = spr_idx[idx]; + spr_idx[idx] = spr_idx[idx + 1]; + spr_idx[idx + 1] = j; + angle = scale_arr[idx]; + scale_arr[idx] = scale_arr[idx + 1]; + scale_arr[idx + 1] = angle; + } + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprPriSet(work->spr_grp[0], spr_idx[idx], idx + 5); + } + } + else { + if (work->time > 60 && work->time <= 80) { + time = work->time - 60; + scale = 0.5 * sind(time * 9.0f); + for (i = 0; i < work->word_len; i++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 60) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 80) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 100) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (j = 1; j < 4; j++) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrSet(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sind(time * 9.0f)); + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + (sind(time * 9.0f)), + work->scale_y + sind(time * 9.0f)); + } + if (time == 20.0f) { + for (j = 1; j < 4; j++) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 && work->time <= 125) { + static float letterOfs[] = { + -30, + -30, + HU_DISP_WIDTH + 30, + -30, + HU_DISP_CENTERX + 52, + HU_DISP_HEIGHT + 30, + HU_DISP_WIDTH + 30, + HU_DISP_HEIGHT + 30, + -30, + HU_DISP_HEIGHT - 30, + HU_DISP_WIDTH + 30, + 120, + HU_DISP_CENTERX + 162, + -30, + }; + for (i = 0; i < 4; i++) { + time = work->time - 80 - i; + if (time < 0.0f || time > 15.0f) { + continue; + } + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (idx * 56); + pos_x += (time / 15.0f) * (letterOfs[(idx * 2)] - pos_x); + pos_y = work->y + ((time / 15.0f) * (letterOfs[(idx * 2) + 1] - work->y)); + HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); + } + } + } + } + if (work->time == 125) { + work->stat |= 0x4; + } + if (work->time >= 135) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqInitDraw(SeqWork *work, va_list params) +s32 MGSeqInitDraw(SeqWork *work, va_list params) { - s16 word_grp; - work->state = 2; - work->seq_no = 13; - work->type = 0; - work->angle = 0.0f; - { - s32 word_flag; - s32 word_ofs; + s16 word_grp; + work->state = 2; + work->seq_no = 13; + work->type = 0; + work->angle = 0.0f; + { + s32 word_flag; + s32 word_ofs; - if(seqLanguage == 0) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - - word_grp = SeqMakeWord(work, wordMgTbl[2+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], HU_DISP_CENTERX, HU_DISP_CENTERY); - work->param[0] = 3; - return 1; + if (seqLanguage == 0) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + + word_grp = SeqMakeWord(work, wordMgTbl[2 + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], HU_DISP_CENTERX, HU_DISP_CENTERY); + work->param[0] = 3; + return 1; } -static s32 SeqUpdateDraw(SeqWork *work) +s32 MGSeqUpdateDraw(SeqWork *work) { - s16 idx; - float scale; - s16 group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale; - float zrot; - if(work->time <= 20) { - time = work->time; - zrot = 365.0f*(time/20.0f); - scale = 1.3f*sin(M_PI*(90.0f*(time/20.0f))/180.0); - HuSprGrpScaleSet(group, scale, scale); - HuSprGrpZRotSet(group, zrot); - } - if(work->time > 20 && work->time <= 25) { - HuSprGrpZRotSet(group, 0.0f); - time = work->time-20; - scale = 1.0+(0.3*cos(M_PI*(90.0f*(time/5.0f))/180.0)); - HuSprGrpScaleSet(group, scale, scale); - } - if(work->time == 5) { - HuAudFXPlay(40); - } - if(work->time == 60) { - work->type = 0; - } - } - break; - - case -1: - { - float tp_lvl; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - HuSprGrpTPLvlSet(group, tp_lvl); - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + s16 group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale; + float zrot; + if (work->time <= 20) { + time = work->time; + zrot = 365.0f * (time / 20.0f); + scale = 1.3f * sind(90.0f * (time / 20.0f)); + HuSprGrpScaleSet(group, scale, scale); + HuSprGrpZRotSet(group, zrot); + } + if (work->time > 20 && work->time <= 25) { + HuSprGrpZRotSet(group, 0.0f); + time = work->time - 20; + scale = 1.0 + (0.3 * cosd(90.0f * (time / 5.0f))); + HuSprGrpScaleSet(group, scale, scale); + } + if (work->time == 5) { + HuAudFXPlay(40); + } + if (work->time == 60) { + work->type = 0; + } + } break; + + case -1: { + float tp_lvl; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + HuSprGrpTPLvlSet(group, tp_lvl); + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static char *winCharNameTbl[] = { - "マリオ", - "MARIO", - "ルイージ", - "LUIGI", - "ピーチ", - "PEACH", - "ヨッシー", - "YOSHI", - "ワリオ", - "WARIO", - "ドンキー", - " DK ", - "デイジー", - "DAISY", - "ワルイージ", - "WALUIGI", - "クッパ", - "BOWSER", - "キノピオ", - "TOAD", - "ヘイホー", - "SHY GUY", - "テレサ", - "BOO", - "ノコノコ", - "KOOPA", - "ミニクッパ", - "KOOPA KID", - "クリボー", - "GOOMBA" + "マリオ", + "MARIO", + "ルイージ", + "LUIGI", + "ピーチ", + "PEACH", + "ヨッシー", + "YOSHI", + "ワリオ", + "WARIO", + "ドンキー", + VERSION_JP ? "DK" : " DK ", + "デイジー", + "DAISY", + "ワルイージ", + "WALUIGI", + "クッパ", + "BOWSER", + "キノピオ", + "TOAD", + "ヘイホー", + VERSION_JP ? "HEHOH" : "SHY GUY", + "テレサ", + VERSION_JP ? "TERETHA" : "BOO", + "ノコノコ", + VERSION_JP ? "NOKONOKO" : "KOOPA", + "ミニクッパ", + VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER", + "クリボー", + VERSION_JP ? "KURIBO" : "GOOMBA", }; -static char *winWordTbl[] = { - "カチ", - "WON!", - "ハイボク", - "LOSE", - "ユウショウ!", - "CHAMPION!" -}; +static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; static s16 winPosOfs[][5][2] = { - { - { 114, 0 }, - { -144, 0 }, - { 0, 0 }, - { 0, 0 }, - { 0, 0 } - }, - { - { 0, 35 }, - { -144, -35 }, - { 144, -35 }, - { 0, 0 }, - { 0, 0 } - }, - { - { 0, 105 }, - { 0, -105 }, - { -144, 0 }, - { 144, 0 }, - { 0, 0 } - }, - { - { 0, 105 }, - { -144, -105 }, - { 144, -105 }, - { -144, 0 }, - { 144, 0 } - } + { { VERSION_JP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, + { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, + { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, + { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } }, }; static s16 winnerNameW[8]; @@ -2701,854 +2720,925 @@ static s16 winnerNameW[8]; #define GET_LANG_IDX() ((seqLanguage == 0) ? 0 : 1) #define GET_WIN_KANAF() ((seqLanguage == 0) ? 1 : 0) - -static s32 SeqInitWin(SeqWork *work, va_list params) +s32 MGSeqInitWin(SeqWork *work, va_list params) { - int win_type = va_arg(params, int); - s16 word_idx; - s16 word_grp; - s32 i; - s32 j; - s32 num_winners; - float word_w; - float word_x; - if(win_type < 0 && win_type >= 6) { - return 0; - } - if(win_type == 3) { - word_idx = GET_LANG_IDX(); - } else { - if(win_type == 4) { - word_idx = GET_LANG_IDX()+2; - } else { - word_idx = GET_LANG_IDX()+4; - } - } - word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); - winnerNameW[0] = work->word_len*50; - for(i=0; iword_len; i++) { - HuSprPosSet(work->spr_grp[word_grp], i, 25.0f+((i*50)-(0.5f*(work->word_len*50))), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - num_winners = 0; - work->win_scale = 1.0f; - for(j=0; j<4; j++) { - int winner = va_arg(params, int); - if(winner < 0) { - continue; - } - word_grp = SeqMakeWord(work, winCharNameTbl[(winner*2)+GET_LANG_IDX()], 0); - if(seqLanguage != 0) { - char *name = winCharNameTbl[(winner*2)+GET_LANG_IDX()]; - word_w = 0.0f; - for(i=word_w; iword_len; i++, name++) { - if(*name == ' ') { - word_w += 30.0f; - } else { - word_w += 50.0f; - } - } - name = winCharNameTbl[(winner*2)+GET_LANG_IDX()]; - word_x = 0.0f; - for(i=word_x; iword_len; i++, name++) { - HuSprPosSet(work->spr_grp[word_grp], i, 25.0+(word_x-(0.5*word_w)), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - if(*name == ' ') { - word_x += 30.0f; - } else { - word_x += 50.0f; - } - } - if(work->win_scale == 0.6f || winner == 7 || winner == 13 || winner == 10) { - work->win_scale = 0.6f; - } else { - work->win_scale = 0.75f; - } - winnerNameW[num_winners+1] = word_w; - } else { - if(winner == 7 || winner == 13) { - for(i=0;iword_len; i++) { - HuSprPosSet(work->spr_grp[word_grp], i, 26.0f+((i*52)-(0.5f*(work->word_len*52))), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - work->win_scale = 0.8f; - winnerNameW[num_winners+1] = work->word_len*52; - } else { - work->win_scale = 1.0f; - winnerNameW[num_winners+1] = work->word_len*56; - } - - } - num_winners++; - } - if(num_winners == 0) { - return 0; - } - work->state = 0; - work->word_len = num_winners+1; - work->angle = 0.0f; - work->type = 0; - for(j=0; jwin_scale)); - if(j == 0) { - word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(word_x-(winnerNameW[0]/2)))-HU_DISP_CENTERX; - } else { - word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; - } - } else { - if(abs(winPosOfs[num_winners-1][j][0]) == 144.0f) { - if(winnerNameW[j]+32 < HU_DISP_CENTERX) { - word_x = 176.0f; - } else { - word_x = 32.0f+((winnerNameW[j]*work->win_scale)/2.0f); - } - if(winPosOfs[num_winners-1][j][0] < 0) { - word_x = -(HU_DISP_CENTERX-word_x); - } else { - word_x = (HU_DISP_WIDTH-word_x)-HU_DISP_CENTERX; - } - } else { - word_x = winPosOfs[num_winners-1][j][0]; - } - } - HuSprGrpPosSet(work->spr_grp[j], HU_DISP_CENTERX+word_x, HU_DISP_CENTERY+winPosOfs[num_winners-1][j][1]); - } - if(seqPauseF) { - work->type = 1; - num_winners++; - for(j=0; jspr_grp[j], 0, HUSPR_ATTR_DISPOFF); - } - } else { - work->param[0] = 3; - } - return 1; + int win_type = va_arg(params, int); + s16 word_idx; + s16 word_grp; + s32 i; + s32 j; + s32 num_winners; + float word_w; + float word_x; + if (win_type < 0 && win_type >= 6) { + return 0; + } + if (win_type == 3) { + word_idx = GET_LANG_IDX(); + } + else { + if (win_type == 4) { + word_idx = GET_LANG_IDX() + 2; + } + else { + word_idx = GET_LANG_IDX() + 4; + } + } + word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); + winnerNameW[0] = work->word_len * (VERSION_JP ? 56 : 50); +#if !VERSION_JP + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } +#endif + num_winners = 0; +#if !VERSION_JP + work->win_scale = 1.0f; +#endif + for (j = 0; j < 4; j++) { + int winner = va_arg(params, int); + (void)winner; // to match PAL + if (winner < 0) { + continue; + } + word_grp = SeqMakeWord(work, winCharNameTbl[(winner * 2) + GET_LANG_IDX()], 0); +#if VERSION_ENG + if (seqLanguage != 0) { + char *name = winCharNameTbl[(winner * 2) + GET_LANG_IDX()]; + word_w = 0.0f; + for (i = word_w; i < work->word_len; i++, name++) { + if (*name == ' ') { + word_w += 30.0f; + } + else { + word_w += 50.0f; + } + } + name = winCharNameTbl[(winner * 2) + GET_LANG_IDX()]; + word_x = 0.0f; + for (i = word_x; i < work->word_len; i++, name++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0 + (word_x - (0.5 * word_w)), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + if (*name == ' ') { + word_x += 30.0f; + } + else { + word_x += 50.0f; + } + } + if (work->win_scale == 0.6f || winner == 7 || winner == 13 || winner == 10) { + work->win_scale = 0.6f; + } + else { + work->win_scale = 0.75f; + } + winnerNameW[num_winners + 1] = word_w; + } + else if (winner == 7 || winner == 13) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.8f; + winnerNameW[num_winners + 1] = work->word_len * 52; + } + else { + work->win_scale = 1.0f; + winnerNameW[num_winners + 1] = work->word_len * 56; + } +#elif VERSION_PAL + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + if ((work->win_scale == 0.5f) || (winner == 13)) { + work->win_scale = 0.5f; + } + else if ((work->win_scale == 0.6f) || (winner == 7) || (winner == 10)) { + work->win_scale = 0.6f; + } + else { + work->win_scale = 0.75f; + } + winnerNameW[num_winners + 1] = work->word_len * 50; +#else + if (seqLanguage != 0) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + (i * 50 - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.75f; + winnerNameW[num_winners + 1] = work->word_len * 50; + } + else if (winner == 7 || winner == 13) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.8f; + winnerNameW[num_winners + 1] = work->word_len * 52; + } + else { + work->win_scale = 1.0f; + winnerNameW[num_winners + 1] = work->word_len * 56; + } +#endif + num_winners++; + } + if (num_winners == 0) { + return 0; + } + work->state = 0; + work->word_len = num_winners + 1; + work->angle = 0.0f; + work->type = 0; + for (j = 0; j < num_winners + 1; j++) { + if (num_winners == 1) { +#if VERSION_JP + word_x = 32 + (winnerNameW[1] + winnerNameW[0]); +#else + word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); +#endif + if (j == 0) { + word_x = (((HU_DISP_WIDTH - word_x) / 2.0f) + (word_x - (winnerNameW[0] / 2))) - HU_DISP_CENTERX; + } + else { + word_x = (((HU_DISP_WIDTH - word_x) / 2.0f) + (winnerNameW[1] / 2)) - HU_DISP_CENTERX; + } + } + else { + if (abs(winPosOfs[num_winners - 1][j][0]) == 144.0f) { +#if VERSION_ENG + if (winnerNameW[j] + 32 < HU_DISP_CENTERX) { + word_x = 176.0f; + } + else { + word_x = 32.0f + ((winnerNameW[j] * work->win_scale) / 2.0f); + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -(HU_DISP_CENTERX - word_x); + } + else { + word_x = (HU_DISP_WIDTH - word_x) - HU_DISP_CENTERX; + } +#elif VERSION_PAL + if (32.0f + (work->win_scale * winnerNameW[j]) < HU_DISP_CENTERX) { + word_x = 32.0f + ((winnerNameW[j] * work->win_scale) / 2.0f); + } + else { + word_x = 120.0f; + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -word_x; + } +#else + if (32 + winnerNameW[j] < HU_DISP_CENTERX) { + word_x = 32 + winnerNameW[j] / 2; + } + else { + word_x = 120.0f; + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -word_x; + } +#endif + } + else { + word_x = winPosOfs[num_winners - 1][j][0]; + } + } + HuSprGrpPosSet(work->spr_grp[j], HU_DISP_CENTERX + word_x, HU_DISP_CENTERY + winPosOfs[num_winners - 1][j][1]); + } + if (seqPauseF) { + work->type = 1; + num_winners++; + for (j = 0; j < num_winners; j++) { + HuSprAttrSet(work->spr_grp[j], 0, HUSPR_ATTR_DISPOFF); + } + } + else { + work->param[0] = 3; + } + return 1; } - -static s32 SeqUpdateWin(SeqWork *work) +s32 MGSeqUpdateWin(SeqWork *work) { - s32 idx; - float tp_lvl; - s16 group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale; - float zrot; - if(work->time <= 20) { - time = work->time; - zrot = 365.0f*(time/20.0f); - scale = sin(M_PI*(90.0f*(time/20.0f))/180.0); - HuSprGrpScaleSet(work->spr_grp[0], scale, scale); - HuSprGrpZRotSet(work->spr_grp[0], zrot); - scale = 1.0+(5.0*cos(M_PI*(90.0f*(time/20.0f))/180.0)); - tp_lvl = time/20.0f; - for(idx=1; idxword_len; idx++) { - HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); - HuSprGrpScaleSet(work->spr_grp[idx], scale*work->win_scale, scale); - } - } - if(work->time > 20 && work->time <= 22) { - HuSprGrpZRotSet(work->spr_grp[0], 0.0f); - for(idx=1; idxword_len; idx++) { - float pos_x; - float ofs[2]; - if(work->time == 21) { - ofs[0] = ((idx & 0x1)*2)-1; - ofs[1] = (idx & 0x2) ? 2 : -1; - } else { - ofs[0] = ofs[1] = 0.0f; - } - if(work->word_len == 2) { - pos_x = winnerNameW[1]+winnerNameW[0]+32; - pos_x = (((HU_DISP_WIDTH-pos_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; - } else { - if(abs(winPosOfs[work->word_len-2][idx][0]) == 144.0f) { - if(winnerNameW[idx]+32 < HU_DISP_CENTERX) { - pos_x = 176.0f; - } else { - pos_x = 32.0f+((winnerNameW[idx]*work->win_scale)/2.0f); - } - if(winPosOfs[work->word_len-2][idx][0] < 0) { - pos_x = -(HU_DISP_CENTERX-pos_x); - } else { - pos_x = (HU_DISP_WIDTH-pos_x)-HU_DISP_CENTERX; - } - } else { - pos_x = winPosOfs[work->word_len-2][idx][0]; - } - } - HuSprGrpPosSet(work->spr_grp[idx], (HU_DISP_CENTERX+pos_x)+ofs[0], ofs[1]+(HU_DISP_CENTERY+winPosOfs[work->word_len-2][idx][1])); - } - } - if(work->time == 125) { - work->type = 0; - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - for(idx=0; idxword_len; idx++) { - HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s32 idx; + float tp_lvl; + s16 group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale; + float zrot; + if (work->time <= 20) { + time = work->time; + zrot = 365.0f * (time / 20.0f); + scale = sind(90.0f * (time / 20.0f)); + HuSprGrpScaleSet(work->spr_grp[0], scale, scale); + HuSprGrpZRotSet(work->spr_grp[0], zrot); + scale = 1.0 + (5.0 * cosd(90.0f * (time / 20.0f))); + tp_lvl = time / 20.0f; + for (idx = 1; idx < work->word_len; idx++) { + HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); + HuSprGrpScaleSet(work->spr_grp[idx], scale * work->win_scale, scale); + } + } + if (work->time > 20 && work->time <= 22) { + HuSprGrpZRotSet(work->spr_grp[0], 0.0f); + for (idx = 1; idx < work->word_len; idx++) { + float pos_x; + float ofs[2]; + if (work->time == 21) { + ofs[0] = ((idx & 0x1) * 2) - 1; + ofs[1] = (idx & 0x2) ? 2 : -1; + } + else { + ofs[0] = ofs[1] = 0.0f; + } + if (work->word_len == 2) { + pos_x = winnerNameW[1] + winnerNameW[0] + 32; + pos_x = (((HU_DISP_WIDTH - pos_x) / 2.0f) + (winnerNameW[1] / 2)) - HU_DISP_CENTERX; + } + else { + if (abs(winPosOfs[work->word_len - 2][idx][0]) == 144.0f) { + if (winnerNameW[idx] + 32 < HU_DISP_CENTERX) { + pos_x = VERSION_ENG ? 176.0f : winnerNameW[idx] / 2 + 32; + } + else { + pos_x = VERSION_ENG ? 32.0f + ((winnerNameW[idx] * work->win_scale) / 2.0f) : 128.0f; + } + if (winPosOfs[work->word_len - 2][idx][0] < 0) { + pos_x = VERSION_ENG ? -(HU_DISP_CENTERX - pos_x) : -pos_x; + } +#if VERSION_ENG + else { + pos_x = (HU_DISP_WIDTH - pos_x) - HU_DISP_CENTERX; + } +#endif + } + else { + pos_x = winPosOfs[work->word_len - 2][idx][0]; + } + } + HuSprGrpPosSet(work->spr_grp[idx], (HU_DISP_CENTERX + pos_x) + ofs[0], + ofs[1] + (HU_DISP_CENTERY + winPosOfs[work->word_len - 2][idx][1])); + } + } + if (work->time == 125) { + work->type = 0; + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static s32 SeqInitRecord(SeqWork *work, va_list params) +s32 MGSeqInitRecord(SeqWork *work, va_list params) { - AnimData *spr_data; - s16 spr_grp; - s16 time_pos[2]; - s16 i; - s16 sprite; - s16 digit_idx; - s32 digit; - seqRecordVal = va_arg(params, int); - work->type = 0; - work->angle = 0.0f; - work->spr_grp[0] = spr_grp = HuSprGrpCreate(10); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 9))); - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, 0, sprite); - HuSprPosSet(spr_grp, 0, 0.0f, -32.0f); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 8))); - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, 1, sprite); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 7))); - for(i=0; i<8; i++) { - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, i+2, sprite); - } - if(omcurovl == OVL_M407 || omcurovl == OVL_M453 || omcurovl == OVL_M459 || omcurovl == OVL_M460 || omcurovl == OVL_M462 || omcurovl == OVL_M442) { - digit_idx = 0; - if(seqRecordVal > 9999) { - seqRecordVal = 9999; - } - digit = seqRecordVal/1000; - if(digit != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*1000; - digit_idx++; - } - - digit = seqRecordVal/100; - if(digit != 0 || digit_idx != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*100; - digit_idx++; - } - digit = seqRecordVal/10; - if(digit != 0 || digit_idx != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*10; - digit_idx++; - } - HuSprBankSet(spr_grp, digit_idx+2, seqRecordVal); - digit_idx++; - for(i=digit_idx; i<8; i++) { - HuSprAttrSet(spr_grp, i+2, HUSPR_ATTR_DISPOFF); - } - HuSprPosSet(spr_grp, 1, (-((digit_idx*44)+48)/2)+24, 32.0f); - for(i=0; iparam[0] = 3; - return 1; + AnimData *spr_data; + s16 spr_grp; + s16 time_pos[2]; + s16 i; + s16 sprite; + s16 digit_idx; + s32 digit; + seqRecordVal = va_arg(params, int); + work->type = 0; + work->angle = 0.0f; + work->spr_grp[0] = spr_grp = HuSprGrpCreate(10); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 9))); + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, 0, sprite); + HuSprPosSet(spr_grp, 0, 0.0f, -32.0f); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 8))); + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, 1, sprite); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 7))); + for (i = 0; i < 8; i++) { + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, i + 2, sprite); + } + if (omcurovl == OVL_M407 || omcurovl == OVL_M453 || omcurovl == OVL_M459 || omcurovl == OVL_M460 || omcurovl == OVL_M462 + || omcurovl == OVL_M442) { + digit_idx = 0; + if (seqRecordVal > 9999) { + seqRecordVal = 9999; + } + digit = seqRecordVal / 1000; + if (digit != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 1000; + digit_idx++; + } + + digit = seqRecordVal / 100; + if (digit != 0 || digit_idx != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 100; + digit_idx++; + } + digit = seqRecordVal / 10; + if (digit != 0 || digit_idx != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 10; + digit_idx++; + } + HuSprBankSet(spr_grp, digit_idx + 2, seqRecordVal); + digit_idx++; + for (i = digit_idx; i < 8; i++) { + HuSprAttrSet(spr_grp, i + 2, HUSPR_ATTR_DISPOFF); + } + HuSprPosSet(spr_grp, 1, (-((digit_idx * 44) + 48) / 2) + 24, 32.0f); + for (i = 0; i < digit_idx; i++) { + HuSprPosSet(spr_grp, i + 2, (-((digit_idx * 44) + 48) / 2) + 70 + (i * 44), 32.0f); + } + } + else { + s16 x; + digit_idx = 0; + digit = seqRecordVal / (600 * REFRESH_RATE); + if (digit != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (600 * REFRESH_RATE); + digit_idx++; + } + digit = seqRecordVal / (60 * REFRESH_RATE); + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (60 * REFRESH_RATE); + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, 10); + time_pos[0] = digit_idx; + digit_idx++; + digit = seqRecordVal / (10 * REFRESH_RATE); + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (10 * REFRESH_RATE); + digit_idx++; + digit = seqRecordVal / REFRESH_RATE; + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * REFRESH_RATE; + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, 11); + time_pos[1] = digit_idx; + digit_idx++; + if (omcurovl == OVL_M405 || omcurovl == OVL_M432 || omcurovl == OVL_M461) { + seqRecordVal = (float)seqRecordVal * (101.5 / REFRESH_RATE); + } + else { + seqRecordVal = (float)seqRecordVal * (100.0 / REFRESH_RATE); + } + digit = seqRecordVal / 10; + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 10; + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, seqRecordVal); + digit_idx++; + for (i = digit_idx; i < 8; i++) { + HuSprAttrSet(spr_grp, i + 2, HUSPR_ATTR_DISPOFF); + } + HuSprPosSet(spr_grp, 1, (-((digit_idx * 44) + 4) / 2) + 24, 32.0f); + x = (-((digit_idx * 44) + 4) / 2) + 70; + for (i = 0; i < digit_idx; i++) { + HuSprPosSet(spr_grp, i + 2, x, 32.0f); + if (time_pos[0] == i || time_pos[1] == i) { + x += 22; + } + else { + x += 44; + } + } + } + HuSprGrpPosSet(spr_grp, HU_DISP_CENTERX, HU_DISP_CENTERY); + work->param[0] = 3; + return 1; } -static s32 SeqUpdateRecord(SeqWork *work) +s32 MGSeqUpdateRecord(SeqWork *work) { - s16 group; - if(_CheckFlag(FLAG_ID_MAKE(1, 12))) { - work->state = 0; - work->stat |= 0xC; - } else { - group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - if(work->time <= 10) { - HuSprGrpTPLvlSet(group, work->time/10.0); - } - if(work->time == 5) { - HuAudFXPlay(38); - } - if(work->time == 30) { - work->type = 0; - } - } - break; - - case -1: - { - float tp_lvl; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - HuSprGrpTPLvlSet(group, tp_lvl); - } - break; - - default: - break; - } - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 group; + if (_CheckFlag(FLAG_ID_MAKE(1, 12))) { + work->state = 0; + work->stat |= 0xC; + } + else { + group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + if (work->time <= 10) { + HuSprGrpTPLvlSet(group, work->time / 10.0); + } + if (work->time == 5) { + HuAudFXPlay(38); + } + if (work->time == 30) { + work->type = 0; + } + } break; + + case -1: { + float tp_lvl; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + HuSprGrpTPLvlSet(group, tp_lvl); + } break; + + default: + break; + } + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static void PauseProc(void); void MGSeqPauseInit(void) { - MGSeqPauseEnableCtrl(0); - HuWinInit(1); - pauseProcess = HuPrcCreate(PauseProc, 100, 4096, 0); - HuPrcSetStat(pauseProcess, PROCESS_STAT_PAUSE_EN|PROCESS_STAT_UPAUSE_EN); - pauseActiveF = 1; - pauseExitF = 0; - pauseWaitF = 0; + MGSeqPauseEnableCtrl(0); + HuWinInit(1); + pauseProcess = HuPrcCreate(PauseProc, 100, 4096, 0); + HuPrcSetStat(pauseProcess, PROCESS_STAT_PAUSE_EN | PROCESS_STAT_UPAUSE_EN); + pauseActiveF = 1; + pauseExitF = 0; + pauseWaitF = 0; } -#define PAUSE_WIN_X (HU_DISP_CENTERX-206) -#define PAUSE_WIN_DIST (HU_DISP_CENTERX+112) -#define PAUSE_EXIT_Y (HU_DISP_HEIGHT-80) +#define PAUSE_WIN_X (HU_DISP_CENTERX - 206) +#define PAUSE_WIN_DIST (HU_DISP_CENTERX + 112) +#define PAUSE_EXIT_Y (HU_DISP_HEIGHT - 80) static void PauseProc(void) { - s16 mg; - s16 i; - s16 j; - - s16 char_mess_map[4]; - s16 char_mess[4][4]; - s16 window[3] = { -1, -1, -1 }; - - SeqWork work; - static char *pauseStr[] = { - "ポーズ", - "PAUSE" - }; - float ratio; - - HuAudFXPlay(5); - for(i=0; i<16; i++) { - work.sprite[i] = work.spr_grp[i] = -1; - } - SeqMakeWord(&work, pauseStr[GET_LANG_IDX()], 0); - for(i=0; iwork[0] == 0) { - if(omMgIndexGet(omcurovl) == -1) { - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - object->work[0]++; - } - if(!omPauseChk() || _CheckFlag(FLAG_ID_MAKE(1, 12)) || !pauseWaitF) { - return; - } - for(i=input=0; i<4; i++) { - input |= HuPadBtnDown[i]; - } - if(input & PAD_TRIGGER_Z) { - HuAudFXPlay(3); - pauseExitF = 1; - omSysPauseCtrl(0); - omSysExitReq = 1; - mgQuitExtraF = 1; - omDelObjEx(HuPrcCurrentGet(), object); - } + s16 input; + s16 i; + mgQuitExtraF = 0; + if (object->work[0] == 0) { + if (omMgIndexGet(omcurovl) == -1) { + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + object->work[0]++; + } + if (!omPauseChk() || _CheckFlag(FLAG_ID_MAKE(1, 12)) || !pauseWaitF) { + return; + } + for (i = input = 0; i < 4; i++) { + input |= HuPadBtnDown[i]; + } + if (input & PAD_TRIGGER_Z) { + HuAudFXPlay(3); + pauseExitF = 1; + omSysPauseCtrl(0); + omSysExitReq = 1; + mgQuitExtraF = 1; + omDelObjEx(HuPrcCurrentGet(), object); + } } diff --git a/src/game/objsysobj.c b/src/game/objsysobj.c index 3e6b56f3..210bdbfd 100644 --- a/src/game/objsysobj.c +++ b/src/game/objsysobj.c @@ -6,7 +6,7 @@ #include "game/sprite.h" #include "game/hsfman.h" #include "game/audio.h" -#include "math.h" +#include "ext_math.h" Vec CRot; Vec Center; @@ -23,15 +23,15 @@ void omOutView(omObjData *object) float rot_x = CRot.x; float rot_y = CRot.y; float rot_z = CRot.z; - pos.x = (sin(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoom)+Center.x; - pos.y = (-sin(M_PI*rot_x/180.0)*CZoom)+Center.y; - pos.z = (cos(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoom)+Center.z; + pos.x = (sind(rot_y)*cosd(rot_x)*CZoom)+Center.x; + pos.y = (-sind(rot_x)*CZoom)+Center.y; + pos.z = (cosd(rot_y)*cosd(rot_x)*CZoom)+Center.z; target.x = Center.x; target.y = Center.y; target.z = Center.z; - up.x = sin(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); - up.y = cos(M_PI*rot_x/180.0); - up.z = cos(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); + up.x = sind(rot_y)*sind(rot_x); + up.y = cosd(rot_x); + up.z = cosd(rot_y)*sind(rot_x); Hu3DCameraPosSet(1, pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } @@ -43,15 +43,15 @@ void omOutViewMulti(omObjData *object) float rot_x = CRotM[i].x; float rot_y = CRotM[i].y; float rot_z = CRotM[i].z; - pos.x = (sin(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].x; - pos.y = (-sin(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].y; - pos.z = (cos(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].z; + pos.x = (sind(rot_y)*cosd(rot_x)*CZoomM[i])+CenterM[i].x; + pos.y = (-sind(rot_x)*CZoomM[i])+CenterM[i].y; + pos.z = (cosd(rot_y)*cosd(rot_x)*CZoomM[i])+CenterM[i].z; target.x = CenterM[i].x; target.y = CenterM[i].y; target.z = CenterM[i].z; - up.x = sin(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); - up.y = cos(M_PI*rot_x/180.0); - up.z = cos(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); + up.x = sind(rot_y)*sind(rot_x); + up.y = cosd(rot_x); + up.z = cosd(rot_y)*sind(rot_x); Hu3DCameraPosSetV((1 << i), &pos, &up, &target); } } @@ -145,4 +145,4 @@ void omSysPauseCtrl(s16 flag) } else { omDBGSysKeyObj->work[0] |= 0x100; } -} \ No newline at end of file +} diff --git a/src/game/saveload.c b/src/game/saveload.c index 7515e5cc..df1e5d6e 100644 --- a/src/game/saveload.c +++ b/src/game/saveload.c @@ -1,23 +1,30 @@ #include "game/saveload.h" -#include "game/data.h" -#include "game/pad.h" -#include "game/window.h" -#include "game/flag.h" -#include "game/card.h" -#include "game/sprite.h" -#include "game/gamework_data.h" #include "data_num/win.h" +#include "game/card.h" +#include "game/data.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" -#include "string.h" #include "stddef.h" +#include "string.h" -#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, player)] -#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, playerStory)] +#if VERSION_ENG +#define SAVE_WRITE_BEGIN _SetFlag(FLAG_ID_MAKE(3, 0)); +#define SAVE_WRITE_END _ClearFlag(FLAG_ID_MAKE(3, 0)); +#else +#define SAVE_WRITE_BEGIN +#define SAVE_WRITE_END +#endif + +#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx) * sizeof(PlayerState)) + offsetof(SaveBufData, player)] +#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx) * sizeof(PlayerState)) + offsetof(SaveBufData, playerStory)] static s16 SLCreateSaveWin(void); static void SLKillSaveWin(void); - extern u8 UnMountCnt; CARDFileInfo curFileInfo; @@ -28,27 +35,28 @@ s32 saveExecF; u8 curBoxNo; s16 curSlotNo; -static u8 commentTbl[2][32] = { - "Mario Party 4", - "File 0 00/00/0000" -}; +#if VERSION_JP +static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; +static u8 sjisNumTbl[20] = "0123456789"; +#else +static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" }; +#endif -char *SaveFileNameTbl[] = { - "MARIPA4BOX0", - "MARIPA4BOX1", - "MARIPA4BOX2" -}; +char *SaveFileNameTbl[] = { "MARIPA4BOX0", "MARIPA4BOX1", "MARIPA4BOX2" }; s32 SaveEnableF = 1; -static char *SlotNameTbl[] = { - "A", - "B" -}; +static char *SlotNameTbl[] = { "A", "B" }; + +#if VERSION_JP +static char *slotIconMesTbl[] = { "\x0E\x16", "\x0E\x17" }; +static u8 sjisSpace[] = " "; +#endif static s32 saveMessWin = -1; -s32 SLFileOpen(char *fileName) { +s32 SLFileOpen(char *fileName) +{ s32 result; if (SaveEnableF == 0) { @@ -56,7 +64,7 @@ s32 SLFileOpen(char *fileName) { } while (1) { result = SLCardMount(curSlotNo); - if(result < 0) { + if (result < 0) { return result; } result = HuCardOpen(curSlotNo, fileName, &curFileInfo); @@ -88,16 +96,19 @@ s32 SLFileOpen(char *fileName) { if (result != 0) { return result; } - } else { + } + else { return CARD_RESULT_NOFILE; } - } else { + } + else { return CARD_RESULT_READY; } } } -s32 SLFileCreate(char *fileName, u32 size, void *addr) { +s32 SLFileCreate(char *fileName, u32 size, void *addr) +{ float winSize[2]; u32 byteNotUsed; u32 filesNotUsed; @@ -135,9 +146,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) { HuWinExAnimIn(window); HuWinMesSet(window, MAKE_MESSID(16, 11)); HuWinMesWait(window); - _SetFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_BEGIN result = HuCardCreate(curSlotNo, fileName, size, &curFileInfo); - _ClearFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_END if (result < 0) { HuWinExAnimOut(window); HuWinExCleanup(window); @@ -150,9 +161,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) { SLMessOut(1); return CARD_RESULT_FATAL_ERROR; } - _SetFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_BEGIN result = HuCardWrite(&curFileInfo, addr, size, 0); - _ClearFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_END if (result < 0) { HuWinExAnimOut(window); HuWinExCleanup(window); @@ -165,9 +176,9 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) { SLMessOut(1); return CARD_RESULT_FATAL_ERROR; } - _SetFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_BEGIN result = SLStatSet(1); - _ClearFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_END HuWinExAnimOut(window); HuWinExCleanup(window); if (result < 0) { @@ -176,7 +187,8 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) { return 0; } -s32 SLFileWrite(s32 length, void *addr) { +s32 SLFileWrite(s32 length, void *addr) +{ float winSize[2]; s32 window; s32 result; @@ -191,18 +203,19 @@ s32 SLFileWrite(s32 length, void *addr) { HuWinMesSet(window, MAKE_MESSID(16, 11)); HuWinMesWait(window); HuPrcSleep(60); - _SetFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_BEGIN result = HuCardWrite(&curFileInfo, addr, length, 0); if (result == 0) { result = SLStatSet(1); } - _ClearFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_END HuWinExAnimOut(window); HuWinExCleanup(window); return result; } -s32 SLFileRead(s32 length, void *addr) { +s32 SLFileRead(s32 length, void *addr) +{ s32 result; if (SaveEnableF == 0) { @@ -211,13 +224,15 @@ s32 SLFileRead(s32 length, void *addr) { result = HuCardRead(&curFileInfo, addr, length, 0); if (result == CARD_RESULT_NOCARD) { SLMessOut(0); - } else if (result < 0) { + } + else if (result < 0) { SLMessOut(1); } return result; } -s32 SLFileClose(void) { +s32 SLFileClose(void) +{ s32 result; if (SaveEnableF == 0) { @@ -227,15 +242,18 @@ s32 SLFileClose(void) { return result; } -void SLCurSlotNoSet(s16 slotno) { +void SLCurSlotNoSet(s16 slotno) +{ curSlotNo = slotno; } -void SLCurBoxNoSet(s16 boxno) { +void SLCurBoxNoSet(s16 boxno) +{ curBoxNo = boxno; } -void SLSaveFlagSet(s32 flag) { +void SLSaveFlagSet(s32 flag) +{ if (flag == 0) { GWGameStat.party_continue = 0; GWGameStat.story_continue = 0; @@ -243,11 +261,13 @@ void SLSaveFlagSet(s32 flag) { SaveEnableF = flag; } -s32 SLSaveFlagGet(void) { +s32 SLSaveFlagGet(void) +{ return SaveEnableF; } -void SLSaveDataMake(s32 erase, OSTime *time) { +void SLSaveDataMake(s32 erase, OSTime *time) +{ AnimData *anim_data; u8 *buf; s32 i; @@ -262,23 +282,25 @@ void SLSaveDataMake(s32 erase, OSTime *time) { buf[i] = (&commentTbl[0][0])[i]; } for (i = 0; i < 0x20; i++) { - (&buf[0x20])[i] = (&commentTbl[0][0])[i+32]; + (&buf[0x20])[i] = (&commentTbl[0][0])[i + 32]; } anim_data = HuSprAnimReadFile(WIN_CARD_BANNER_ANM); - memcpy(buf + offsetof(SaveBufData, banner), anim_data->bmp->data, CARD_BANNER_WIDTH*CARD_BANNER_HEIGHT); + memcpy(buf + offsetof(SaveBufData, banner), anim_data->bmp->data, CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT); memcpy(buf + offsetof(SaveBufData, bannerTlut), anim_data->bmp->palData, 512); anim_data = HuSprAnimReadFile(curBoxNo + WIN_CARD_BOX1_ICON_ANM); - memcpy(buf + offsetof(SaveBufData, icon), anim_data->bmp->data, CARD_ICON_WIDTH*CARD_ICON_HEIGHT*4); + memcpy(buf + offsetof(SaveBufData, icon), anim_data->bmp->data, CARD_ICON_WIDTH * CARD_ICON_HEIGHT * 4); memcpy(buf + offsetof(SaveBufData, iconTlut), anim_data->bmp->palData, 512); SLSaveDataInfoSet(time); } -void SLSaveDataInfoSet(OSTime *time) { +void SLSaveDataInfoSet(OSTime *time) +{ s16 year; s16 digit; OSCalendarTime sp8; OSTicksToCalendarTime(*time, &sp8); +#if VERSION_ENG saveBuf.data.comment[37] = curBoxNo + '1'; digit = (sp8.mon + 1) / 10; saveBuf.data.comment[40] = digit + '0'; @@ -299,9 +321,59 @@ void SLSaveDataInfoSet(OSTime *time) { saveBuf.data.comment[48] = digit + '0'; year -= digit * 10; saveBuf.data.comment[49] = year + '0'; +#elif VERSION_PAL + saveBuf.data.comment[37] = curBoxNo + '1'; + digit = sp8.mday / 10; + saveBuf.data.comment[40] = digit + '0'; + digit = sp8.mday % 10; + saveBuf.data.comment[41] = digit + '0'; + digit = (sp8.mon + 1) / 10; + saveBuf.data.comment[43] = digit + '0'; + digit = (sp8.mon + 1) % 10; + saveBuf.data.comment[44] = digit + '0'; + year = sp8.year; + digit = year / 1000; + saveBuf.data.comment[46] = digit + '0'; + year -= digit * 1000; + digit = year / 100; + saveBuf.data.comment[47] = digit + '0'; + year -= digit * 100; + digit = year / 10; + saveBuf.data.comment[48] = digit + '0'; + year -= digit * 10; + saveBuf.data.comment[49] = year + '0'; +#else + saveBuf.data.comment[52] = sjisNumTbl[(curBoxNo + 1) * 2]; + saveBuf.data.comment[53] = sjisNumTbl[(curBoxNo + 1) * 2 + 1]; + digit = (sp8.mon + 1) / 10; + if (digit == 0) { + saveBuf.data.comment[32] = sjisSpace[0]; + saveBuf.data.comment[33] = sjisSpace[1]; + } + else { + saveBuf.data.comment[32] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[33] = sjisNumTbl[digit * 2 + 1]; + } + digit = (sp8.mon + 1) % 10; + saveBuf.data.comment[34] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[35] = sjisNumTbl[digit * 2 + 1]; + digit = sp8.mday / 10; + if (digit == 0) { + saveBuf.data.comment[38] = sjisSpace[0]; + saveBuf.data.comment[39] = sjisSpace[1]; + } + else { + saveBuf.data.comment[38] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[39] = sjisNumTbl[digit * 2 + 1]; + } + digit = sp8.mday % 10; + saveBuf.data.comment[40] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[41] = sjisNumTbl[digit * 2 + 1]; +#endif } -void SLCommonSet(void) { +void SLCommonSet(void) +{ OSTime create_time; create_time = OSGetTime(); @@ -310,7 +382,8 @@ void SLCommonSet(void) { SLSaveDataInfoSet(&create_time); } -void SLSaveBoard(void) { +void SLSaveBoard(void) +{ s16 i; memcpy(&saveBuf.data.system, &GWSystem, sizeof(SystemState)); @@ -319,7 +392,8 @@ void SLSaveBoard(void) { } } -void SLSaveBoardStory(void) { +void SLSaveBoardStory(void) +{ s16 i; memcpy(&saveBuf.data.systemStory, &GWSystem, sizeof(SystemState)); @@ -328,7 +402,8 @@ void SLSaveBoardStory(void) { } } -s32 SLSave(void) { +s32 SLSave(void) +{ s32 result; while (1) { @@ -337,7 +412,8 @@ s32 SLSave(void) { if (result == CARD_RESULT_NOFILE) { if (!SLSerialNoCheck()) { SLMessOut(9); - } else { + } + else { SLCreateSaveWin(); result = SLFileCreate(SaveFileNameTbl[curBoxNo], 16384, &saveBuf); SLKillSaveWin(); @@ -346,7 +422,8 @@ s32 SLSave(void) { goto block_32; } } - } else { + } + else { if (result == CARD_RESULT_NOCARD) { result = SLMessOut(10); if (result != 0) { @@ -359,15 +436,18 @@ s32 SLSave(void) { if (result >= 0) { if (!SLSerialNoCheck()) { SLMessOut(9); - } else { + } + else { SLCreateSaveWin(); result = SLFileWrite(16384, &saveBuf); SLKillSaveWin(); if (result == CARD_RESULT_NOCARD) { SLMessOut(0); - } else if (result == CARD_RESULT_WRONGDEVICE) { + } + else if (result == CARD_RESULT_WRONGDEVICE) { SLMessOut(7); - } else if (result == CARD_RESULT_BROKEN) { + } + else if (result == CARD_RESULT_BROKEN) { result = HuCardSectorSizeGet(curSlotNo); if (result > 0 && result != 8192) { SLMessOut(8); @@ -381,13 +461,15 @@ s32 SLSave(void) { return result; } continue; - } else { + } + else { result = CARD_RESULT_BROKEN; } - } else if (result < 0) { + } + else if (result < 0) { SLMessOut(1); } -block_32: + block_32: SLFileClose(); if (result >= 0) { HuCardUnMount(curSlotNo); @@ -396,11 +478,12 @@ block_32: } } } -block_36: + block_36: result = SLMessOut(10); if (result != 0) { SLMessOut(11); - } else { + } + else { SLSaveFlagSet(0); break; } @@ -409,23 +492,37 @@ block_36: return 0; } -static s16 SLCreateSaveWin(void) { +#if VERSION_NTSC +#define SAVEWIN_POS 150 +#else +#define SAVEWIN_POS 120 +#endif + +#if VERSION_JP +#define SAVEWIN_MESS slotIconMesTbl +#else +#define SAVEWIN_MESS SlotNameTbl +#endif + +static s16 SLCreateSaveWin(void) +{ float size[2]; s16 window; HuWinInit(1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 68)); - window = HuWinExCreateStyled(-10000.0f, 150.0f, size[0], size[1], -1, 2); + window = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, size[0], size[1], -1, 2); saveMessWin = window; HuWinExAnimIn(window); - HuWinInsertMesSet(window, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSet(window, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesSet(window, MAKE_MESSID(16, 68)); HuWinMesWait(window); return window; } -static void SLKillSaveWin(void) { +static void SLKillSaveWin(void) +{ if (saveMessWin != -1) { HuWinExAnimOut(saveMessWin); HuWinExCleanup(saveMessWin); @@ -433,7 +530,8 @@ static void SLKillSaveWin(void) { } } -s32 SLLoad(void) { +s32 SLLoad(void) +{ s32 result; u16 *save_checksum; u16 checksum; @@ -452,11 +550,13 @@ s32 SLLoad(void) { return 0; } -void SLLoadGameStat(void) { +void SLLoadGameStat(void) +{ memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat)); } -void SLLoadBoard(void) { +void SLLoadBoard(void) +{ s16 i; memcpy(&GWSystem, &saveBuf.data.system, sizeof(SystemState)); @@ -470,7 +570,8 @@ void SLLoadBoard(void) { } } -void SLLoadBoardStory(void) { +void SLLoadBoardStory(void) +{ s16 i; memcpy(&GWSystem, &saveBuf.data.systemStory, 0xDC); @@ -484,11 +585,13 @@ void SLLoadBoardStory(void) { } } -s32 SLSerialNoGet(void) { +s32 SLSerialNoGet(void) +{ return CARDGetSerialNo(curSlotNo, &SLSerialNo); } -BOOL SLSerialNoCheck(void) { +BOOL SLSerialNoCheck(void) +{ s32 result; u64 serialNo; @@ -505,7 +608,8 @@ BOOL SLSerialNoCheck(void) { return TRUE; } -BOOL SLCheckSumCheck(void) { +BOOL SLCheckSumCheck(void) +{ u16 *save_checksum = (u16 *)&saveBuf.buf[sizeof(SaveBufData)]; u16 checksum = SLCheckSumGet(); @@ -515,7 +619,8 @@ BOOL SLCheckSumCheck(void) { return FALSE; } -u16 SLCheckSumGet(void) { +u16 SLCheckSumGet(void) +{ u32 i; u32 checksum; @@ -523,17 +628,19 @@ u16 SLCheckSumGet(void) { checksum += saveBuf.buf[i]; } checksum = ~checksum; - return (u16) checksum & 0xFFFF; + return (u16)checksum & 0xFFFF; } -void SLCheckSumSet(void) { +void SLCheckSumSet(void) +{ u16 checksum = SLCheckSumGet(); saveBuf.buf[sizeof(SaveBufData)] = (checksum >> 8) & 0xFF; - saveBuf.buf[sizeof(SaveBufData)+1] = checksum; + saveBuf.buf[sizeof(SaveBufData) + 1] = checksum; } -s32 SLStatSet(s32 reportF) { +s32 SLStatSet(s32 reportF) +{ CARDStat stat; s32 fileNo; s32 result; @@ -582,7 +689,8 @@ s32 SLStatSet(s32 reportF) { return result; } -s32 SLCardMount(s16 slotNo) { +s32 SLCardMount(s16 slotNo) +{ s32 result; while (1) { @@ -612,10 +720,12 @@ s32 SLCardMount(s16 slotNo) { if (result != 0) { return result; } - } else { + } + else { return CARD_RESULT_FATAL_ERROR; } - } else { + } + else { break; } } @@ -631,7 +741,8 @@ s32 SLCardMount(s16 slotNo) { return 0; } -s32 SLFormat(s16 slotNo) { +s32 SLFormat(s16 slotNo) +{ float winSize[2]; s16 result; s16 window1; @@ -639,11 +750,11 @@ s32 SLFormat(s16 slotNo) { OSTime time; HuWinInit(1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 56)); - window1 = HuWinExCreateStyled(-10000.0f, 150.0f, winSize[0], winSize[1], -1, 2); + window1 = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, winSize[0], winSize[1], -1, 2); HuWinExAnimIn(window1); - HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesSet(window1, MAKE_MESSID(16, 56)); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 11)); window2 = HuWinExCreateStyled(-10000.0f, 200.0f, winSize[0], winSize[1], -1, 2); @@ -659,9 +770,9 @@ s32 SLFormat(s16 slotNo) { SLMessOut(12); return 0; } - _SetFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_BEGIN result = HuCardFormat(curSlotNo); - _ClearFlag(FLAG_ID_MAKE(3, 0)); + SAVE_WRITE_END if (result < 0) { HuWinExAnimOut(window1); HuWinExCleanup(window1); @@ -693,7 +804,8 @@ s32 SLFormat(s16 slotNo) { return result; } -s16 SLMessOut(s16 mess) { +s16 SLMessOut(s16 mess) +{ WindowData *var_r26; float size[2]; u32 slot_mess; @@ -721,11 +833,23 @@ s16 SLMessOut(s16 mess) { case 2: HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); +#if VERSION_ENG save_mess = MAKE_MESSID(16, 74); +#elif VERSION_PAL + save_mess = MAKE_MESSID(16, 72); +#else + save_mess = MAKE_MESSID(16, 5); +#endif break; case 3: +#if VERSION_ENG save_mess = MAKE_MESSID(16, 74); +#elif VERSION_PAL + save_mess = MAKE_MESSID(16, 72); +#else + save_mess = MAKE_MESSID(16, 6); +#endif HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); break; @@ -772,7 +896,11 @@ s16 SLMessOut(s16 mess) { case 11: HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); +#if VERSION_ENG save_mess = MAKE_MESSID(16, 72); +#else + save_mess = MAKE_MESSID(16, 76); +#endif break; case 12: @@ -781,7 +909,8 @@ s16 SLMessOut(s16 mess) { } if (save_mess == MAKE_MESSID(16, 4)) { HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 78)); - } else { + } + else { HuWinMesMaxSizeGet(1, size, save_mess); } window = HuWinExCreateStyled(-10000.0f, 200.0f, size[0], size[1], -1, 2); diff --git a/src/game/sreset.c b/src/game/sreset.c index ae00c3cf..10d49ef4 100644 --- a/src/game/sreset.c +++ b/src/game/sreset.c @@ -4,6 +4,9 @@ #include "game/pad.h" #include "game/audio.h" #include "game/thpmain.h" +#include "game/gamework_data.h" + +#include "version.h" #define SR_DVD_LOADING 0 #define SR_DVD_COVER_OPEN 1 @@ -19,6 +22,12 @@ extern s32 HuDvdErrWait; static s32 SR_PreRstChk[4] = {}; +#if VERSION_JP +static s32 padding[4] = {}; +#endif + +#if VERSION_ENG + #include "coveropen_en.inc" #include "fatalerror_en.inc" #include "loading_en.inc" @@ -26,6 +35,54 @@ static s32 SR_PreRstChk[4] = {}; #include "retryerror_en.inc" #include "wrongdisc_en.inc" +#elif VERSION_PAL + +#include "coveropen_en.inc" +#include "fatalerror_en.inc" +#include "loading_en.inc" +#include "nodisc_en.inc" +#include "retryerror_en.inc" +#include "wrongdisc_en.inc" + +#include "coveropen_fr.inc" +#include "fatalerror_fr.inc" +#include "loading_fr.inc" +#include "nodisc_fr.inc" +#include "retryerror_fr.inc" +#include "wrongdisc_fr.inc" + +#include "coveropen_ge.inc" +#include "fatalerror_ge.inc" +#include "loading_ge.inc" +#include "nodisc_ge.inc" +#include "retryerror_ge.inc" +#include "wrongdisc_ge.inc" + +#include "coveropen_it.inc" +#include "fatalerror_it.inc" +#include "loading_it.inc" +#include "nodisc_it.inc" +#include "retryerror_it.inc" +#include "wrongdisc_it.inc" + +#include "coveropen_sp.inc" +#include "fatalerror_sp.inc" +#include "loading_sp.inc" +#include "nodisc_sp.inc" +#include "retryerror_sp.inc" +#include "wrongdisc_sp.inc" + +#else + +#include "coveropen_jp.inc" +#include "fatalerror_jp.inc" +#include "loading_jp.inc" +#include "nodisc_jp.inc" +#include "retryerror_jp.inc" +#include "wrongdisc_jp.inc" + +#endif + static s16 SR_PushTime[4] = {}; static s8 SR_ResetPad = -1; @@ -103,9 +160,17 @@ void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) XfbW = (u16)(((u16)rmode->fbWidth+15) & ~0xF); XfbH = rmode->xfbHeight; } else { + #if VERSION_NTSC XfbW = 640; XfbH = 480; + #else + XfbW = 640; + XfbH = 528; + #endif } + #if VERSION_PAL + (void)(VIGetTvFormat() == VI_PAL); + #endif if((u16)rmode->xFBmode == VI_XFBMODE_SF) { XfbProg = 0; } else { @@ -223,20 +288,43 @@ static void ToeDispCheck(void) _HuDvdErrDispXFB(status); } +#if VERSION_NTSC + +#define XFB_SIZE 0x96000 + +#else + +#define XFB_SIZE (XfbW*XfbH*2) + +#endif + static void _HuDvdErrDispXFB(s32 error) { + #if VERSION_ENG static void *bmpMes[][6] = { - loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en + loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en }; - volatile s32 status; - u8 color[2]; - s8 language; + #elif VERSION_PAL + static void *bmpMes[][6] = { + loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en, + loading_fr, coveropen_fr, nodisc_fr, wrongdisc_fr, retryerror_fr, fatalerror_fr, + loading_ge, coveropen_ge, nodisc_ge, wrongdisc_ge, retryerror_ge, fatalerror_ge, + loading_it, coveropen_it, nodisc_it, wrongdisc_it, retryerror_it, fatalerror_it, + loading_sp, coveropen_sp, nodisc_sp, wrongdisc_sp, retryerror_sp, fatalerror_sp + }; + #else + static void *bmpMes[][6] = { + loading_jp, coveropen_jp, nodisc_jp, wrongdisc_jp, retryerror_jp, fatalerror_jp + }; + #endif + s16 *bmpData; u8 *xfb1_ptr; u8 *xfb2_ptr; u32 i; u32 data; u32 row; + s8 language; u32 *xfb1; u32 *xfb2; u32 j; @@ -246,25 +334,59 @@ static void _HuDvdErrDispXFB(s32 error) u32 *data_ptr; u32 row_offset; u32 row_pitch; + void *tempfb1; + void *tempfb2; + s32 status; + u8 color[2]; + + + #if VERSION_PAL + switch(GWGameStat.language) { + case 2: + language = 2; + break; + + case 3: + language = 1; + break; + + case 4: + language = 3; + break; + + case 5: + language = 4; + break; + + default: + language = 0; + break; + } + #else language = 0; + #endif xfb1 = Xfb[0]; xfb2 = Xfb[1]; - for(i=0; i<0x25800; i++, xfb1++, xfb2++) { + for(i=0; i>= 2, xfb1_ptr += 4, xfb2_ptr += 4) { @@ -290,8 +412,8 @@ static void _HuDvdErrDispXFB(s32 error) } } } - DCStoreRangeNoSync(sp14[1], bmpData[0]*2); - DCStoreRangeNoSync(sp14[0], bmpData[0]*2); + DCStoreRangeNoSync(tempfb1, bmpData[0]*2); + DCStoreRangeNoSync(tempfb2, bmpData[0]*2); } status = DVDGetDriveStatus(); while(status) { @@ -419,4 +541,4 @@ static void HuSoftResetPostProc(void) HuPadRumbleAllStop(); SR_ExecReset = TRUE; } -} \ No newline at end of file +} diff --git a/src/game/thpmain.c b/src/game/thpmain.c index 721558ba..082eb281 100755 --- a/src/game/thpmain.c +++ b/src/game/thpmain.c @@ -8,6 +8,8 @@ #include "string.h" +#define THP_DECODE_STACK_SIZE 0x2000 + static void THPTestProc(void); static void THPViewFunc(ModelData *arg0, Mtx arg1); static void THPViewSprFunc(HuSprite *arg0); @@ -153,15 +155,15 @@ static void THPTestProc(void) HuPrcVSleep(); } HuPrcVSleep(); - decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, 0x2000); - decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, decodeStackP + 0x2000, 0x2000); + decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, THP_DECODE_STACK_SIZE); + decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, (decodeStackP + THP_DECODE_STACK_SIZE), THP_DECODE_STACK_SIZE); decodeRate = 0; THPStart = 1; if (SimpleControl.unk19C == 1) { Hu3DModelAttrReset(SimpleControl.unk19E, HU3D_ATTR_DISPOFF); } else { - HuSprAttrReset(SimpleControl.unk19E, 0, 4); + HuSprAttrReset(SimpleControl.unk19E, 0, HUSPR_ATTR_DISPOFF); } while (1) { if (THPStat == 2) { diff --git a/src/game/window.c b/src/game/window.c index a2018b5d..ac3be92e 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -1,15 +1,15 @@ #include "game/gamework_data.h" -#include "game/window.h" -#include "game/sprite.h" -#include "game/data.h" -#include "game/dvd.h" -#include "game/memory.h" -#include "game/process.h" -#include "game/pad.h" #include "game/armem.h" #include "game/audio.h" +#include "game/data.h" #include "game/disp.h" +#include "game/dvd.h" +#include "game/memory.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" #include "ext_math.h" #include "stdarg.h" @@ -58,7 +58,12 @@ void *messDataPtr; static s32 messDataNo; static s16 winMaxWidth; static s16 winMaxHeight; +#if VERSION_NTSC static u8 mesWInsert[8]; +#else +static u16 mesWInsert[8]; +#endif + static u8 winTabSize; static u8 winInsertF; static u32 winAMemP; @@ -70,126 +75,74 @@ static s16 comKeyIdx; static u8 LanguageNo; AnimData *fontAnim; -static spcFontTblData spcFontTbl[] = { - { &iconAnim, 0, 20, 24, 10, 12 }, - { &iconAnim, 1, 20, 24, 10, 12 }, - { &iconAnim, 2, 20, 24, 10, 12 }, - { &iconAnim, 3, 20, 24, 10, 12 }, - { &iconAnim, 4, 20, 24, 10, 12 }, - { &iconAnim, 5, 20, 24, 10, 12 }, - { &iconAnim, 6, 20, 24, 10, 12 }, - { &iconAnim, 7, 20, 24, 10, 12 }, - { &iconAnim, 8, 20, 24, 10, 12 }, - { &iconAnim, 9, 20, 24, 10, 12 }, - { &iconAnim, 10, 20, 24, 10, 12 }, - { &iconAnim, 11, 30, 24, 15, 12 }, - { &iconAnim, 12, 20, 24, 10, 12 }, - { &iconAnim, 13, 20, 24, 10, 12 }, - { &iconAnim, 14, 20, 24, 10, 12 }, - { &iconAnim, 15, 20, 24, 10, 12 }, - { &iconAnim, 16, 20, 24, 10, 12 }, - { &iconAnim, 17, 20, 24, 10, 12 }, - { &iconAnim, 18, 20, 24, 10, 12 }, - { &iconAnim, 19, 24, 24, 12, 12 }, - { &cursorAnim, 0, 40, 32, -15, 18 }, - { &cardAnimA, 0, 32, 32, 16, 16 }, - { &cardAnimB, 0, 32, 32, 16, 16 } -}; +static spcFontTblData spcFontTbl[] = { { &iconAnim, 0, 20, 24, 10, 12 }, { &iconAnim, 1, 20, 24, 10, 12 }, { &iconAnim, 2, 20, 24, 10, 12 }, + { &iconAnim, 3, 20, 24, 10, 12 }, { &iconAnim, 4, 20, 24, 10, 12 }, { &iconAnim, 5, 20, 24, 10, 12 }, { &iconAnim, 6, 20, 24, 10, 12 }, + { &iconAnim, 7, 20, 24, 10, 12 }, { &iconAnim, 8, 20, 24, 10, 12 }, { &iconAnim, 9, 20, 24, 10, 12 }, { &iconAnim, 10, 20, 24, 10, 12 }, + { &iconAnim, 11, 30, 24, 15, 12 }, { &iconAnim, 12, 20, 24, 10, 12 }, { &iconAnim, 13, 20, 24, 10, 12 }, { &iconAnim, 14, 20, 24, 10, 12 }, + { &iconAnim, 15, 20, 24, 10, 12 }, { &iconAnim, 16, 20, 24, 10, 12 }, { &iconAnim, 17, 20, 24, 10, 12 }, { &iconAnim, 18, 20, 24, 10, 12 }, + { &iconAnim, 19, 24, 24, 12, 12 }, { &cursorAnim, 0, 40, 32, -15, 18 }, { &cardAnimA, 0, 32, 32, 16, 16 }, { &cardAnimB, 0, 32, 32, 16, 16 } }; -u8 charWETbl[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, - 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, - 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, - 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, - 11, 12, 9, 11, 9, 11, 11, 15, 11, 11, 11, 4, 13, 8, 14, 12, - 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 12, 12, 7, 14, 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; +#if VERSION_ENG +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 7, 14, + 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; +#elif VERSION_JP +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 7, 14, + 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -u8 charWJTbl[] = { - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; +#else +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 6, 12, + 18, 14, 14, 8, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 12, 12, 12, 12, 12, 10, 10, 12, 12, 10, 10, 10, 10, 7, 7, 12, 12, 10, 12, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -static u8 ATTRIBUTE_ALIGN(32) charColPal[2*3*10] = { - 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, - 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, - 0x00, 0xFF, 0xFF, - 0xFF, 0xA0, 0x00, - 0xFF, 0xFF, 0xFF, - 0x60, 0x60, 0x60, - 0x90, 0x90, 0x90, - 0x00, 0x00, 0x00, - 0x60, 0xB0, 0xFF, - 0xFF, 0x40, 0x80, - 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, - 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, - 0x60, 0x60, 0x60, - 0x90, 0x90, 0x90 -}; +#endif -static s32 frameFileTbl[] = { - WIN_FRAME1_ANM, - WIN_FRAME2_ANM, - WIN_FRAME3_ANM, - WIN_FRAME1_ANM -}; +u8 charWJTbl[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -static char *mesDataTbl[] = { - "mess/mini.dat", - "mess/board.dat", - "mess/mini_e.dat", - "mess/board_e.dat" -}; +static u8 ATTRIBUTE_ALIGN(32) charColPal[2 * 3 * 10] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xFF, 0xFF, 0x60, 0x60, 0x60, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x60, 0xB0, 0xFF, 0xFF, 0x40, 0x80, + 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x60, 0x60, 0x60, 0x90, 0x90, 0x90 }; -static s32 winVoiceTbl[] = { - 0x37, 0x36, 0x38, 0x44, - 0x43, 0x45, 0x41, 0x40, - 0x42, 0x4C, 0x4B, 0x4D, - 0x47, 0x46, 0x48, 0x3E, - 0x3E, 0x3F, 0x49, 0x49, - 0x49 -}; +static s32 frameFileTbl[] = { WIN_FRAME1_ANM, WIN_FRAME2_ANM, WIN_FRAME3_ANM, WIN_FRAME1_ANM }; + +#if VERSION_NTSC +static char *mesDataTbl[] = { "mess/mini.dat", "mess/board.dat", "mess/mini_e.dat", "mess/board_e.dat" }; +#else +static char *mesDataTbl[] = { "mess/mini.dat", "mess/board.dat", "mess/mini_e.dat", "mess/board_e.dat", "mess/mini_g.dat", "mess/board_g.dat", + "mess/mini_f.dat", "mess/board_f.dat", "mess/mini_i.dat", "mess/board_i.dat", "mess/mini_s.dat", "mess/board_s.dat" }; +#endif + +static s32 winVoiceTbl[] + = { 0x37, 0x36, 0x38, 0x44, 0x43, 0x45, 0x41, 0x40, 0x42, 0x4C, 0x4B, 0x4D, 0x47, 0x46, 0x48, 0x3E, 0x3E, 0x3F, 0x49, 0x49, 0x49 }; static s16 winPrio = 1000; -void HuWindowInit(void) { +void HuWindowInit(void) +{ s16 i; winAMemP = HuAR_DVDtoARAM(DATADIR_WIN); @@ -200,7 +153,8 @@ void HuWindowInit(void) { winPrio = 1000; } -void HuWinInit(s32 mess_data_no) { +void HuWinInit(s32 mess_data_no) +{ s16 i; void *anim_data; @@ -218,7 +172,8 @@ void HuWinInit(s32 mess_data_no) { if (!fontAnim) { if (LanguageNo == 0) { anim_data = HuDataReadNum(WIN_FONTJ_ANM, MEMORY_DEFAULT_NUM); - } else { + } + else { anim_data = HuDataReadNum(WIN_FONTE_ANM, MEMORY_DEFAULT_NUM); } fontAnim = HuSprAnimRead(anim_data); @@ -249,7 +204,8 @@ void HuWinInit(s32 mess_data_no) { } } -s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { +s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) +{ AnimData *bg_anim; WindowData *window; HuSprite *sprite_ptr; @@ -276,12 +232,14 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { h = (h + 15) & 0xFFF0; if (x == -10000.0f) { window->pos_x = (HU_DISP_WIDTHF - w) / 2; - } else { + } + else { window->pos_x = x; } if (y == -10000.0f) { window->pos_y = (HU_DISP_HEIGHTF - h) / 2; - } else { + } + else { window->pos_y = y; } HuSprGrpCenterSet(group, w / 2, h / 2); @@ -299,7 +257,11 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { sprite_ptr->work[0] = window_id; HuSprGrpMemberSet(group, 1, sprite); window->num_chars = 0; +#if VERSION_JP + window->max_chars = (w / 20) * (h / 24) * 3; +#else window->max_chars = (w / 8) * (h / 24) * 4; +#endif window->char_data = HuMemDirectMalloc(HEAP_SYSTEM, window->max_chars * sizeof(WinChar)); window->attr = 0; window->stat = 0; @@ -328,10 +290,13 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { window->scissor_h = 0x1E0; window->tab_w = 24; window->push_key = 0x300; +#if !VERSION_JP window->key_auto = 0; +#endif if (frame == 0 || frame == 2) { memcpy(&window->mess_pal, &charColPal[30], 30); - } else { + } + else { memcpy(&window->mess_pal, charColPal, 30); window->mess_shadow_color = 9; } @@ -352,7 +317,8 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { return window_id; } -void HuWinKill(s16 window) { +void HuWinKill(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; @@ -368,7 +334,8 @@ void HuWinKill(s16 window) { } } -void HuWinAllKill(void) { +void HuWinAllKill(void) +{ s16 i; for (i = 0; i < 32; i++) { @@ -407,7 +374,8 @@ void HuWinAllKill(void) { HuDataDirClose(DATADIR_WIN); } -static void MesDispFunc(HuSprite *sprite) { +static void MesDispFunc(HuSprite *sprite) +{ WindowData *window = &winData[sprite->work[0]]; HuSprGrp *group; float uv_maxx; @@ -457,12 +425,16 @@ static void MesDispFunc(HuSprite *sprite) { MTXConcat(*sprite->group_mtx, modelview, modelview); GXLoadPosMtxImm(modelview, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, GX_LINEAR); + HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JP ? GX_NEAR : GX_LINEAR); GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4); - char_uv_h = (LanguageNo == 0) ? (24.0f/408.0f) : (24.0f/312.0f); + char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f); for (i = 0; i < window->num_chars; i++) { char_w = fontWidthP[window->char_data[i].character + 48]; - uv_minx = (20.0f/320.0f) * (window->char_data[i].character % 16); +#if VERSION_JP + uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16); +#else + uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16); +#endif uv_miny = char_uv_h * (window->char_data[i].character / 16); uv_maxx = uv_minx + (char_w / 320.0); uv_maxy = uv_miny + char_uv_h; @@ -471,7 +443,8 @@ static void MesDispFunc(HuSprite *sprite) { color = window->char_data[i].color; if (window->speed != 0) { alpha = window->char_data[i].fade * 8; - } else { + } + else { alpha = 255; } alpha = 255; @@ -496,7 +469,8 @@ static void MesDispFunc(HuSprite *sprite) { } } -static u8 winBGMake(AnimData *bg, AnimData *frame) { +static u8 winBGMake(AnimData *bg, AnimData *frame) +{ AnimBmpData *bmp; s16 block_h; s16 h; @@ -517,29 +491,37 @@ static u8 winBGMake(AnimData *bg, AnimData *frame) { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0; - } else if (j == w-1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x10; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x70; } } - } else if (i == h-1) { + } + else if (i == h - 1) { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x20; - } else if (j == w - 1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x30; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x60; } } - } else { + } + else { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x40; - } else if (j == w-1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x50; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x80; } } @@ -558,7 +540,8 @@ static u8 winBGMake(AnimData *bg, AnimData *frame) { return w; } -static void HuWinProc(void) { +static void HuWinProc(void) +{ WindowData *window; s16 i; @@ -590,41 +573,48 @@ static void HuWinProc(void) { } } -static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color) { +static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color) +{ WindowData *window_ptr = &winData[window]; WinChar *win_char = window_ptr->char_data; win_char = &window_ptr->char_data[window_ptr->num_chars]; win_char->x = x - window_ptr->w / 2; win_char->y = y - window_ptr->h / 2; - win_char->character = char_idx-48; + win_char->character = char_idx - 48; win_char->color = color; win_char->fade = 0; window_ptr->num_chars++; if (window_ptr->num_chars >= window_ptr->max_chars) { - window_ptr->num_chars = window_ptr->max_chars-1; + window_ptr->num_chars = window_ptr->max_chars - 1; } } -static void HuWinDrawMes(s16 window) { +static void HuWinDrawMes(s16 window) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; - s16 c; s16 i; s16 char_w; s16 tab_w; s16 insert_mess; s16 mess_end; + s16 c; + s16 shadow_color; s16 color; s16 mess_w; - window_ptr->mess_time += 3; + window_ptr->mess_time += VERSION_JP ? 1 : 3; while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) { +#if VERSION_JP + window_ptr->mess_time = 0; +#else window_ptr->mess_time -= window_ptr->speed; - if(window_ptr->mess_time < 0) { + if (window_ptr->mess_time < 0) { window_ptr->mess_time = 0; } +#endif char_w = window_ptr->spacing_x + fontWidthP[window_ptr->mess[0]]; mess_end = 0; if (window_ptr->mess[0] != 0 && (window_ptr->attr & 4)) { @@ -635,7 +625,7 @@ static void HuWinDrawMes(s16 window) { switch (window_ptr->mess[0]) { case 0: if (window_ptr->mess_stackptr == 0) { - for (i=0; i<16; i++) { + for (i = 0; i < 16; i++) { window_ptr->choice_disable[i] = 0; } window_ptr->stat = 0; @@ -644,9 +634,11 @@ static void HuWinDrawMes(s16 window) { } window_ptr->mess_stackptr--; window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr]; +#if !VERSION_JP window_ptr->mess_time = 0; +#endif break; - + case 31: window_ptr->mess++; insert_mess = window_ptr->mess[0] - 1; @@ -659,30 +651,31 @@ static void HuWinDrawMes(s16 window) { } } break; - + case 11: window_ptr->attr &= ~0x2200; _HuWinHomeClear(window_ptr); if (window_ptr->attr & 0x800) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = (window_ptr->mess_rect_w - mess_w) / 2; - } else if (window_ptr->attr & 0x1000) { + } + else if (window_ptr->attr & 0x1000) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = window_ptr->mess_rect_w - mess_w; } break; - + case 30: window_ptr->mess++; if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = window_ptr->mess[0] - 1; } break; - + case 29: window_ptr->attr ^= 1; break; - + case 10: window_ptr->attr &= ~0x2020; if (window_ptr->attr & 0x200) { @@ -696,30 +689,31 @@ static void HuWinDrawMes(s16 window) { if (window_ptr->attr & 0x800) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = (window_ptr->mess_rect_w - mess_w) / 2; - } else if (window_ptr->attr & 0x1000) { + } + else if (window_ptr->attr & 0x1000) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = window_ptr->mess_rect_w - mess_w; } break; } char_w = fontWidthP[16] + window_ptr->spacing_x; - /* fallthrough */ - case 16: - case 32: - window_ptr->attr |= 0x200; - if (window_ptr->mess_x + char_w > window_ptr->mess_rect_w) { - if (HuWinCR(window_ptr) != 0) { - window_ptr->mess++; - HuWinKeyWaitEntry(window); - window_ptr->attr |= 2; - return; + /* fallthrough */ + case 16: + case 32: + window_ptr->attr |= 0x200; + if (window_ptr->mess_x + char_w > window_ptr->mess_rect_w) { + if (HuWinCR(window_ptr) != 0) { + window_ptr->mess++; + HuWinKeyWaitEntry(window); + window_ptr->attr |= 2; + return; + } + break; } - break; - } - window_ptr->mess_x += char_w; + window_ptr->mess_x += char_w; } break; - + case 14: window_ptr->attr |= 0x200; window_ptr->mess++; @@ -730,29 +724,31 @@ static void HuWinDrawMes(s16 window) { window_ptr->attr |= 2; return; } - HuWinSpcFontEntry(window_ptr, window_ptr->mess[0] - 1, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y); + HuWinSpcFontEntry(window_ptr, window_ptr->mess[0] - 1, window_ptr->mess_rect_x + window_ptr->mess_x, + window_ptr->mess_rect_y + window_ptr->mess_y); window_ptr->mess_x += tab_w; mess_end = 1; break; - + case 28: window_ptr->mess++; HuAudFXPlay(winVoiceTbl[window_ptr->mess[0] - 1]); break; - + case 255: window_ptr->mess++; HuWinKeyWaitEntry(window); window_ptr->attr |= 4; window_ptr->attr &= ~0x200; return; - + case 15: window_ptr->attr |= 0x2000; if (window_ptr->choice_disable[window_ptr->num_choices] != 0) { window_ptr->attr |= 0x20; window_ptr->choice_data[window_ptr->num_choices].stat |= 1; - } else { + } + else { window_ptr->choice_data[window_ptr->num_choices].stat &= ~1; } @@ -760,7 +756,7 @@ static void HuWinDrawMes(s16 window) { window_ptr->choice_data[window_ptr->num_choices].y = window_ptr->mess_y + window_ptr->mess_rect_x; window_ptr->num_choices++; break; - + case 12: window_ptr->attr |= 0x200; tab_w = window_ptr->tab_w * ((window_ptr->mess_x + window_ptr->tab_w) / window_ptr->tab_w) - window_ptr->mess_x; @@ -771,7 +767,8 @@ static void HuWinDrawMes(s16 window) { window_ptr->attr |= 2; return; } - } else { + } + else { window_ptr->mess_x += tab_w; } break; @@ -790,39 +787,48 @@ static void HuWinDrawMes(s16 window) { } c = window_ptr->mess[0]; window_ptr->attr |= 0x200; +#if VERSION_NTSC if (window_ptr->mess[1] == 128) { if (c >= 150 && c <= 164) { - c = c+106; - } else if (c >= 170 && c <= 174) { - c = c+101; - } else if (c >= 214 && c <= 228) { - c = c+67; - } else if (c >= 234 && c <= 238) { - c = c+62; + c = c + 106; } - window_ptr->mess++; - } else if (window_ptr->mess[1] == 129) { - if (c >= 170 && c <= 174) { - c = c+106; - } else if (c >= 234 && c <= 238) { - c = c+67; + else if (c >= 170 && c <= 174) { + c = c + 101; + } + else if (c >= 214 && c <= 228) { + c = c + 67; + } + else if (c >= 234 && c <= 238) { + c = c + 62; } window_ptr->mess++; } + else if (window_ptr->mess[1] == 129) { + if (c >= 170 && c <= 174) { + c = c + 106; + } + else if (c >= 234 && c <= 238) { + c = c + 67; + } + window_ptr->mess++; + } +#endif color = (window_ptr->attr & 0x20) ? 8 : window_ptr->mess_color; if (window_ptr->attr & 1) { shadow_color = 0; if (window_ptr->mess_color == 0 || window_ptr->mess_color == 1) { shadow_color = 8; } - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x+2, window_ptr->mess_rect_y+window_ptr->mess_y, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x-2, window_ptr->mess_rect_y+window_ptr->mess_y, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y+2, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y-2, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y, c, color); - } else { - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x+2, window_ptr->mess_rect_y+window_ptr->mess_y+2, c, window_ptr->mess_shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y, c, color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x + 2, window_ptr->mess_rect_y + window_ptr->mess_y, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x - 2, window_ptr->mess_rect_y + window_ptr->mess_y, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y + 2, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y - 2, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y, c, color); + } + else { + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x + 2, window_ptr->mess_rect_y + window_ptr->mess_y + 2, c, + window_ptr->mess_shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y, c, color); } window_ptr->mess_x += char_w; window_ptr->mess++; @@ -830,19 +836,22 @@ static void HuWinDrawMes(s16 window) { } } -static s32 HuWinCR(WindowData *window) { +static s32 HuWinCR(WindowData *window) +{ if (window->mess_y + 48 > window->mess_rect_h) { window->mess_y = 0; window->mess_x = 0; return 1; - } else { + } + else { window->mess_y += window->spacing_y + 24; window->mess_x = 0; return 0; } } -static void _HuWinHomeClear(WindowData *window) { +static void _HuWinHomeClear(WindowData *window) +{ s16 i; window->num_chars = 0; @@ -850,29 +859,33 @@ static void _HuWinHomeClear(WindowData *window) { window->num_choices = 0; HuWinSpcFontClear(window); window->attr &= ~0x2020; - for (i=0; i<16; i++) { + for (i = 0; i < 16; i++) { window->choice_data[i].stat = 0; } } -void HuWinHomeClear(s16 window) { +void HuWinHomeClear(s16 window) +{ WindowData *window_ptr = &winData[window]; _HuWinHomeClear(window_ptr); } -void HuWinKeyWaitEntry(s16 window) { +void HuWinKeyWaitEntry(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->attr & 0x400) { window_ptr->stat = 0; - } else { + } + else { window_ptr->stat = 2; window_ptr->advance_sprite = HuWinSpcFontEntry(window_ptr, 19, window_ptr->mess_rect_w - 20, window_ptr->mess_rect_h - 24); } } -static void HuWinKeyWait(s16 window) { +static void HuWinKeyWait(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->push_key & HuWinActivePadGet(window_ptr)) { @@ -887,16 +900,17 @@ static void HuWinKeyWait(s16 window) { } } -static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) { +static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) +{ HuSprGrp *group = &HuSprGrpData[window->group]; s16 sprite; s16 i; AnimData *anim; - for (i=10; i<30; i++) { + for (i = 10; i < 30; i++) { if (window->sprite_id[i] == -1) { anim = *spcFontTbl[entry].anim; - window->sprite_id[i] = sprite = HuSprCreate(anim, window->prio-1, spcFontTbl[entry].bank); + window->sprite_id[i] = sprite = HuSprCreate(anim, window->prio - 1, spcFontTbl[entry].bank); HuSprGrpMemberSet(window->group, i, sprite); HuSprPosSet(window->group, i, x + spcFontTbl[entry].center_x - window->w / 2, y + spcFontTbl[entry].center_y - window->h / 2); break; @@ -905,16 +919,18 @@ static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) { return i; } -static void HuWinSpcFontPosSet(WindowData *window, s16 index, s16 x, s16 y) { +static void HuWinSpcFontPosSet(WindowData *window, s16 index, s16 x, s16 y) +{ HuSprGrp *group = &HuSprGrpData[window->group]; HuSprPosSet(window->group, index, x - window->w / 2, y - window->h / 2); } -static void HuWinSpcFontClear(WindowData *window) { +static void HuWinSpcFontClear(WindowData *window) +{ s16 i; - for (i=10; i<30; i++) { + for (i = 10; i < 30; i++) { if (window->sprite_id[i] != -1) { HuSprGrpMemberKill(window->group, i); window->sprite_id[i] = -1; @@ -922,7 +938,8 @@ static void HuWinSpcFontClear(WindowData *window) { } } -static void HuWinChoice(WindowData *window) { +static void HuWinChoice(WindowData *window) +{ WinChoice *choice; float choice_dist; float min_choice_dist_x; @@ -968,7 +985,8 @@ static void HuWinChoice(WindowData *window) { } if (i != choice_max) { for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { - if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x < choice_curr_x && choice_dist > choice_curr_x - choice->x) { + if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x < choice_curr_x + && choice_dist > choice_curr_x - choice->x) { choice_dist = choice_curr_x - choice->x; choice_next = i; } @@ -999,7 +1017,8 @@ static void HuWinChoice(WindowData *window) { } } } - } else { + } + else { choice_y = -1000; for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { if (i != choice_curr && !(choice->stat & 1) && choice->y > choice_y) { @@ -1029,7 +1048,8 @@ static void HuWinChoice(WindowData *window) { } if (i != choice_max) { for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { - if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x > choice_curr_x && choice_dist > choice->x - choice_curr_x) { + if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x > choice_curr_x + && choice_dist > choice->x - choice_curr_x) { choice_dist = choice->x - choice_curr_x; choice_next = i; } @@ -1060,7 +1080,8 @@ static void HuWinChoice(WindowData *window) { } } } - } else { + } + else { choice_y = 1000; for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { if (i != choice_curr && !(choice->stat & 1) && choice->y < choice_y) { @@ -1086,25 +1107,33 @@ static void HuWinChoice(WindowData *window) { if (window->choice != choice_next) { window->choice = choice_next; HuAudFXPlay(0); - } else if (key & (window->key_auto | PAD_BUTTON_A)) { + } + else if (key & (VERSION_JP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { HuAudFXPlay(2); window->key_down = key; window->stat = 0; - } else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { + } + else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { HuAudFXPlay(3); +#if !VERSION_JP window->key_down = key; +#else + (void)key; // hack to match Japanese version +#endif window->choice = -1; window->stat = 0; } - HuWinSpcFontPosSet(window, window->cursor_sprite, window->choice_data[choice_next].x + spcFontTbl[20].center_x, window->choice_data[choice_next].y + spcFontTbl[20].center_y); + HuWinSpcFontPosSet(window, window->cursor_sprite, window->choice_data[choice_next].x + spcFontTbl[20].center_x, + window->choice_data[choice_next].y + spcFontTbl[20].center_y); } -u32 HuWinActivePadGet(WindowData *window) { +u32 HuWinActivePadGet(WindowData *window) +{ s32 win_key; u32 i; win_key = 0; - for (i=0; i<4; i++) { + for (i = 0; i < 4; i++) { if (window->active_pad & (1 << i)) { win_key |= winKey[i]; } @@ -1112,7 +1141,8 @@ u32 HuWinActivePadGet(WindowData *window) { return win_key; } -u32 HuWinActiveKeyGetX(WindowData *window) { +u32 HuWinActiveKeyGetX(WindowData *window) +{ u32 button; u32 i; u32 j; @@ -1122,7 +1152,7 @@ u32 HuWinActiveKeyGetX(WindowData *window) { active_pad = (window->active_pad & ~window->player_disable); for (i = 0; i < 4; i++) { if (active_pad & (1 << i)) { - for (j=0; j<4; j++) { + for (j = 0; j < 4; j++) { if (i == GWPlayerCfg[j].pad_idx) { break; } @@ -1135,7 +1165,8 @@ u32 HuWinActiveKeyGetX(WindowData *window) { return button; } -void HuWinPosSet(s16 window, float x, float y) { +void HuWinPosSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; window_ptr->pos_x = x; @@ -1143,7 +1174,8 @@ void HuWinPosSet(s16 window, float x, float y) { HuSprGrpPosSet(window_ptr->group, x, y); } -void HuWinScaleSet(s16 window, float x, float y) { +void HuWinScaleSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; window_ptr->scale_x = x; @@ -1151,38 +1183,43 @@ void HuWinScaleSet(s16 window, float x, float y) { HuSprGrpScaleSet(window_ptr->group, x, y); } -void HuWinZRotSet(s16 window, float z_rot) { +void HuWinZRotSet(s16 window, float z_rot) +{ WindowData *window_ptr = &winData[window]; window_ptr->z_rot = z_rot; HuSprGrpZRotSet(window_ptr->group, z_rot); } -void HuWinCenterPosSet(s16 window, float x, float y) { +void HuWinCenterPosSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrpCenterSet(window_ptr->group, window_ptr->w / 2.0f - x, window_ptr->h / 2.0f - y); } -void HuWinDrawNoSet(s16 window, s16 draw_no) { +void HuWinDrawNoSet(s16 window, s16 draw_no) +{ WindowData *window_ptr = &winData[window]; HuSprGrpDrawNoSet(window_ptr->group, draw_no); } -void HuWinScissorSet(s16 window, s16 x, s16 y, s16 w, s16 h) { +void HuWinScissorSet(s16 window, s16 x, s16 y, s16 w, s16 h) +{ WindowData *window_ptr = &winData[window]; HuSprGrpScissorSet(window_ptr->group, x, y, w, h); } -void HuWinPriSet(s16 window, s16 prio) { +void HuWinPriSet(s16 window, s16 prio) +{ WindowData *window_ptr = &winData[window]; s16 i; HuSprPriSet(window_ptr->group, 0, prio); HuSprPriSet(window_ptr->group, 1, prio); - for (i=2; i<30; i++) { + for (i = 2; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprPriSet(window_ptr->group, i, prio - 1); } @@ -1190,32 +1227,37 @@ void HuWinPriSet(s16 window, s16 prio) { window_ptr->prio = prio; } -void HuWinAttrSet(s16 window, u32 attr) { +void HuWinAttrSet(s16 window, u32 attr) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr |= attr; } -void HuWinAttrReset(s16 window, u32 attr) { +void HuWinAttrReset(s16 window, u32 attr) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr &= ~attr; } -s16 HuWinStatGet(s16 window) { +s16 HuWinStatGet(s16 window) +{ WindowData *window_ptr = &winData[window]; return window_ptr->stat; } -void HuWinMesColSet(s16 window, u8 color) { +void HuWinMesColSet(s16 window, u8 color) +{ WindowData *window_ptr = &winData[window]; window_ptr->mess_color = color; window_ptr->attr |= 0x80; } -void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) { +void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) +{ WindowData *window_ptr = &winData[window]; window_ptr->mess_pal[index][0] = r; @@ -1223,44 +1265,54 @@ void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) { window_ptr->mess_pal[index][2] = b; } -void HuWinBGTPLvlSet(s16 window, float tp_level) { +void HuWinBGTPLvlSet(s16 window, float tp_level) +{ WindowData *window_ptr = &winData[window]; HuSprTPLvlSet(window_ptr->group, 0, tp_level); } -void HuWinBGColSet(s16 window, GXColor *bg_color) { +void HuWinBGColSet(s16 window, GXColor *bg_color) +{ WindowData *window_ptr = &winData[window]; HuSprColorSet(window_ptr->group, 0, bg_color->r, bg_color->g, bg_color->b); } -void HuWinMesSpeedSet(s16 window, s16 speed) { +void HuWinMesSpeedSet(s16 window, s16 speed) +{ WindowData *window_ptr = &winData[window]; window_ptr->speed = speed; } -void HuWinMesRead(s32 mess_data_no) { +void HuWinMesRead(s32 mess_data_no) +{ void *dvd_mess; char *mess_path; - if(messDataPtr) { + if (messDataPtr) { HuMemDirectFree(messDataPtr); } messDataNo = mess_data_no; +#if VERSION_NTSC if (LanguageNo == 0) { mess_path = mesDataTbl[messDataNo]; - } else { + } + else { mess_path = mesDataTbl[messDataNo + 2]; } +#else + mess_path = mesDataTbl[messDataNo + (LanguageNo * 2)]; +#endif dvd_mess = HuDvdDataRead(mess_path); messDataPtr = HuMemDirectMalloc(HEAP_SYSTEM, DirDataSize); memcpy(messDataPtr, dvd_mess, DirDataSize); HuMemDirectFree(dvd_mess); } -void HuWinMesSet(s16 window, u32 mess) { +void HuWinMesSet(s16 window, u32 mess) +{ WindowData *window_ptr = &winData[window]; window_ptr->stat = 1; @@ -1272,19 +1324,25 @@ void HuWinMesSet(s16 window, u32 mess) { window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess); if (window_ptr->mess == 0) { OSReport("Error: No Message data\n"); +#if !VERSION_JP HuWinMesSet(window, 0); return; +#endif } - } else { + } + else { window_ptr->mess = (u8 *)mess; } if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = 7; +#if !VERSION_JP window_ptr->mess_time = 0; +#endif } } -void HuWinInsertMesSet(s16 window, u32 mess, s16 index) { +void HuWinInsertMesSet(s16 window, u32 mess, s16 index) +{ WindowData *window_ptr = &winData[window]; if (!(mess & 0x80000000)) { @@ -1296,12 +1354,14 @@ void HuWinInsertMesSet(s16 window, u32 mess, s16 index) { if (window_ptr->insert_mess[index] == 0) { OSReport("Error: No Message data\n"); } - } else { + } + else { window_ptr->insert_mess[index] = (u8 *)mess; } } -s16 HuWinChoiceGet(s16 window, s16 start_choice) { +s16 HuWinChoiceGet(s16 window, s16 start_choice) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr |= 0x40; @@ -1332,50 +1392,57 @@ s16 HuWinChoiceGet(s16 window, s16 start_choice) { return window_ptr->choice; } -s16 HuWinChoiceNumGet(s16 window) { +s16 HuWinChoiceNumGet(s16 window) +{ WindowData *window_ptr = &winData[window]; return window_ptr->num_choices; } -void HuWinChoiceDisable(s16 window, s16 choice) { +void HuWinChoiceDisable(s16 window, s16 choice) +{ WindowData *window_ptr = &winData[window]; window_ptr->choice_disable[choice] = 1; } -s16 HuWinChoiceNowGet(s16 window) { +s16 HuWinChoiceNowGet(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->stat == 3) { return window_ptr->choice; - } else { + } + else { return -1; } } -void HuWinMesWait(s16 window) { +void HuWinMesWait(s16 window) +{ WindowData *window_ptr = &winData[window]; - while(window_ptr->stat != 0) { + while (window_ptr->stat != 0) { HuPrcVSleep(); } } -s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y) { +s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y) +{ WindowData *window_ptr = &winData[window]; s16 sprite; - sprite = HuSprCreate(anim, window_ptr->prio-1, bank); + sprite = HuSprCreate(anim, window_ptr->prio - 1, bank); return HuWinSprSet(window, sprite, x, y); } -s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) { +s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; s16 i; - for (i=2; i<=9; i++) { + for (i = 2; i <= 9; i++) { if (window_ptr->sprite_id[i] == -1) { window_ptr->sprite_id[i] = sprite; HuSprGrpMemberSet(window_ptr->group, i, sprite); @@ -1386,38 +1453,43 @@ s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) { return i; } -void HuWinSprPosSet(s16 window, s16 index, float x, float y) { +void HuWinSprPosSet(s16 window, s16 index, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; HuSprPosSet(window_ptr->group, index, x - group->center_x, y - group->center_y); } -void HuWinSprPriSet(s16 window, s16 index, s16 prio) { +void HuWinSprPriSet(s16 window, s16 index, s16 prio) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; HuSprPriSet(window_ptr->group, index, prio); } -s16 HuWinSprIDGet(s16 window, s16 index) { +s16 HuWinSprIDGet(s16 window, s16 index) +{ WindowData *window_ptr = &winData[window]; return window_ptr->sprite_id[index]; } -void HuWinSprKill(s16 window, s16 index) { +void HuWinSprKill(s16 window, s16 index) +{ WindowData *window_ptr = &winData[window]; HuSprGrpMemberKill(window_ptr->group, index); window_ptr->sprite_id[index] = -1; } -void HuWinDispOff(s16 window) { +void HuWinDispOff(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; - for(i=0; i<30; i++) { + for (i = 0; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprAttrSet(window_ptr->group, i, HUSPR_ATTR_DISPOFF); } @@ -1425,11 +1497,12 @@ void HuWinDispOff(s16 window) { window_ptr->attr |= 8; } -void HuWinDispOn(s16 window) { +void HuWinDispOn(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; - for (i=0; i<30; i++) { + for (i = 0; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprAttrReset(window_ptr->group, i, HUSPR_ATTR_DISPOFF); } @@ -1437,7 +1510,8 @@ void HuWinDispOn(s16 window) { window_ptr->attr = window_ptr->attr & ~8; } -void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) { +void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) +{ s32 wait_input_p4; s32 wait_input_p3; s32 wait_input_p2; @@ -1445,33 +1519,39 @@ void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 if (player_4 == -1) { wait_input_p4 = -1; - } else { + } + else { wait_input_p4 = 0; } if (player_3 == -1) { wait_input_p3 = -1; - } else { + } + else { wait_input_p3 = 0; } if (player_2 == -1) { wait_input_p2 = -1; - } else { + } + else { wait_input_p2 = 0; } if (player_1 == -1) { wait_input_p1 = -1; - } else { + } + else { wait_input_p1 = 0; } _HuWinComKeySet(wait_input_p1, wait_input_p2, wait_input_p3, wait_input_p4, delay); _HuWinComKeySet(player_1, player_2, player_3, player_4, 1); } -void HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4) { +void HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4) +{ _HuWinComKeySet(player_1, player_2, player_3, player_4, 1); } -void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) { +void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) +{ winComKeyBuf[comKeyIdx].player[0] = player_1; winComKeyBuf[comKeyIdx].player[1] = player_2; winComKeyBuf[comKeyIdx].player[2] = player_3; @@ -1481,25 +1561,29 @@ void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 comKeyIdx &= 0xFF; } -void HuWinComKeyGet(s16 window, u32 *data) { +void HuWinComKeyGet(s16 window, u32 *data) +{ WindowData *window_ptr = &winData[window]; s16 i; if (comKeyIdx == comKeyIdxNow) { - for (i=0; i<4; i++) { + for (i = 0; i < 4; i++) { if (!(window_ptr->player_disable & (1 << i))) { data[i] = HuPadDStkRep[i] | HuPadBtnDown[i]; - } else { + } + else { data[i] = 0; } } - } else { - for (i=0; i<4; i++) { + } + else { + for (i = 0; i < 4; i++) { data[i] = winComKeyBuf[comKeyIdxNow].player[i]; if (data[i] == 0xFFFFFFFF) { if (!(window_ptr->player_disable & (1 << i))) { data[i] = HuPadDStkRep[i] | HuPadBtnDown[i]; - } else { + } + else { data[i] = 0; } } @@ -1512,11 +1596,13 @@ void HuWinComKeyGet(s16 window, u32 *data) { } } -void HuWinComKeyReset(void) { +void HuWinComKeyReset(void) +{ comKeyIdx = comKeyIdxNow = 0; } -void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) { +void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) +{ s16 i; u32 mess; va_list list; @@ -1524,11 +1610,11 @@ void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) { winInsertF = 0; va_start(list, size); winMaxWidth = winMaxHeight = 0; - for(i=0; i 0x80000000) { from_messdata = 0; mess_data = (u8 *)mess; - } else { + } + else { from_messdata = 1; mess_data = mess_start = MessData_MesPtrGet(messDataPtr, mess); } @@ -1612,7 +1704,8 @@ static void GetMesMaxSizeSub(u32 mess) { if (mess_data[1] != 0) { char_h = 26; } - } else { + } + else { char_w = fontWidthP[16] + 1; } } @@ -1653,9 +1746,15 @@ static void GetMesMaxSizeSub(u32 mess) { char_w = mesWInsert[*mess_data - 1]; break; } +#if VERSION_NTSC if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16) { cr_flag = 1; } +#else + if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16 || mess_data[-1] == 31) { + cr_flag = 1; + } +#endif line_w += char_w; line_h += char_h; mess_data++; @@ -1668,7 +1767,8 @@ static void GetMesMaxSizeSub(u32 mess) { } } -static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { +static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) +{ s32 sp8; u8 mess_finish; s16 mess_h; @@ -1691,14 +1791,14 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { case 16: case 32: break; - + case 10: if (mess_end != 0 && !(window->attr & 0x100)) { char_w = 0; mess_finish = 1; } break; - + case 255: mess_w += char_w; /* fallthrough */ @@ -1708,7 +1808,7 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { char_h = 0; mess_w = char_w = 0; break; - + case 28: case 30: mess++; @@ -1717,16 +1817,16 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { case 29: char_w = 0; break; - + case 12: char_w = winTabSize * ((mess_w + winTabSize) / winTabSize) - mess_w; break; - + case 14: mess++; char_w = spcFontTbl[*mess - 1].w + 1; break; - + case 31: mess++; break; @@ -1741,13 +1841,15 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { return mess_w; } -s16 HuWinKeyWaitNumGet(u32 mess) { +s16 HuWinKeyWaitNumGet(u32 mess) +{ s16 wait_num; u8 *mess_data; if (mess > 0x80000000) { mess_data = (u8 *)mess; - } else { + } + else { mess_data = MessData_MesPtrGet(messDataPtr, mess); } for (wait_num = 0; *mess_data != 0; mess_data++) { @@ -1758,51 +1860,39 @@ s16 HuWinKeyWaitNumGet(u32 mess) { return wait_num; } -void HuWinPushKeySet(s16 window, s16 push_key) { +void HuWinPushKeySet(s16 window, s16 push_key) +{ WindowData *window_ptr = &winData[window]; window_ptr->push_key = push_key; } -void HuWinDisablePlayerSet(s16 window, u8 player) { +void HuWinDisablePlayerSet(s16 window, u8 player) +{ WindowData *window_ptr = &winData[window]; window_ptr->player_disable |= player; } -void HuWinDisablePlayerReset(s16 window, u8 player) { +void HuWinDisablePlayerReset(s16 window, u8 player) +{ WindowData *window_ptr = &winData[window]; window_ptr->player_disable &= ~(int)player; } -static s32 winPortraitTbl[] = { - WIN_TOAD_TALK_ANM, - WIN_BOBOMB_TALK_ANM, - WIN_SHYGUY_TALK_ANM, - WIN_BOO_TALK_ANM, - WIN_GOOMBA_TALK_ANM, - WIN_BOWSER_TALK_ANM, - WIN_KKID_TALK_ANM, - WIN_KOOPA_TALK_ANM, - WIN_CONDOR_TALK_ANM, - WIN_BOO_BLUE_TALK_ANM, - WIN_DOLPHIN_TALK_ANM, - WIN_BOO_RED_TALK_ANM, - WIN_THWOMP_TALK_ANM, - WIN_W01_HOST_TALK_ANM, - WIN_W02_HOST_TALK_ANM, - WIN_W03_HOST_TALK_ANM, - WIN_W04_HOST_TALK_ANM, - WIN_W05_HOST_TALK_ANM, - WIN_W06_HOST_TALK_ANM -}; +static s32 winPortraitTbl[] + = { WIN_TOAD_TALK_ANM, WIN_BOBOMB_TALK_ANM, WIN_SHYGUY_TALK_ANM, WIN_BOO_TALK_ANM, WIN_GOOMBA_TALK_ANM, WIN_BOWSER_TALK_ANM, WIN_KKID_TALK_ANM, + WIN_KOOPA_TALK_ANM, WIN_CONDOR_TALK_ANM, WIN_BOO_BLUE_TALK_ANM, WIN_DOLPHIN_TALK_ANM, WIN_BOO_RED_TALK_ANM, WIN_THWOMP_TALK_ANM, + WIN_W01_HOST_TALK_ANM, WIN_W02_HOST_TALK_ANM, WIN_W03_HOST_TALK_ANM, WIN_W04_HOST_TALK_ANM, WIN_W05_HOST_TALK_ANM, WIN_W06_HOST_TALK_ANM }; -s16 HuWinExCreate(float x, float y, s16 w, s16 h, s16 portrait) { +s16 HuWinExCreate(float x, float y, s16 w, s16 h, s16 portrait) +{ return HuWinExCreateStyled(x, y, w, h, portrait, 0); } -static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) { +static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) +{ s16 sprite; AnimData *anim; WindowData *window_ptr; @@ -1815,7 +1905,8 @@ static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) { HuWinSprSet(window, sprite, x, y); } -s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) { +s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) +{ WindowData *window_ptr; s16 window; @@ -1834,7 +1925,8 @@ s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) return window; } -void HuWinExAnimIn(s16 window) { +void HuWinExAnimIn(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; @@ -1842,19 +1934,21 @@ void HuWinExAnimIn(s16 window) { if (window_ptr->sprite_id[2] == -1) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 0.0f); HuWinDispOn(window); - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0 - 1.1 * cosd(9.0f * i)); HuPrcVSleep(); } HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f); - } else { + } + else { HuSprScaleSet(window_ptr->group, 0, 1.0f, 0.0f); HuSprScaleSet(window_ptr->group, 2, 1.0f, 0.0f); HuWinDispOn(window); - for (i=0; i<=20; i++) { + for (i = 0; i <= 20; i++) { if (i <= 10) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.1 * (1.0 - cosd(9.0f * i))); - } else { + } + else { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f); } if (i > 10) { @@ -1867,19 +1961,21 @@ void HuWinExAnimIn(s16 window) { } } -void HuWinExAnimOut(s16 window) { +void HuWinExAnimOut(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; _HuWinHomeClear(window_ptr); if (window_ptr->sprite_id[2] == -1) { - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 0, 1.0f, cosd(9.0f * i)); HuPrcVSleep(); } HuWinDispOff(window); - } else { - for (i=0; i<=15; i++) { + } + else { + for (i = 0; i <= 15; i++) { if (i <= 10) { HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i)); } @@ -1893,21 +1989,23 @@ void HuWinExAnimOut(s16 window) { } } -void HuWinExCleanup(s16 window) { +void HuWinExCleanup(s16 window) +{ HuWinKill(window); } -void HuWinExAnimPopIn(s16 window, s16 portrait) { +void HuWinExAnimPopIn(s16 window, s16 portrait) +{ WindowData *window_ptr = &winData[window]; s16 i; - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i)); HuPrcVSleep(); } HuWinSprKill(window, 2); HuWinExCreatePortrait(window, portrait, 48.0f, 48.0f); - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 2, 1.0f, sind(9.0f * i)); HuPrcVSleep(); } diff --git a/src/game/wipe.c b/src/game/wipe.c index f3902d7e..aa7c1d9a 100644 --- a/src/game/wipe.c +++ b/src/game/wipe.c @@ -3,6 +3,7 @@ #include "game/memory.h" #include "game/flag.h" #include "game/board/tutorial.h" +#include "version.h" s16 HuSysVWaitGet(s16 old); @@ -141,6 +142,11 @@ void WipeCreate(s16 mode, s16 type, s16 duration) void WipeColorSet(u8 r, u8 g, u8 b) { + #if VERSION_PAL + if(r > 160 && g > 160 && b > 160) { + r = g = b = 160; + } + #endif wipeData.color.r = r; wipeData.color.g = g; wipeData.color.b = b; diff --git a/src/msm/msmmem.c b/src/msm/msmmem.c index e8d52a88..1a587589 100644 --- a/src/msm/msmmem.c +++ b/src/msm/msmmem.c @@ -1,136 +1,132 @@ #include "msm/msmmem.h" -typedef struct _unkStruct { - struct _unkStruct* prev; - struct _unkStruct* next; - u32 unk8; - u32 unkC; - void* unk10; - void* unk14; - char unk18[0x8]; -} unkStruct; +typedef struct MSMBlock_s { + struct MSMBlock_s* prev; + struct MSMBlock_s* next; + u32 freeSize; + u32 size; + void* ptr; + char pad[12]; +} MSMBLOCK; -typedef struct _unkMemStruct { - unkStruct* unk0; - u32 unk4; - unkStruct* unk8; - unkStruct unkC; -} unkMemStruct; +typedef struct MSMMem_s { + void *ptr; + u32 size; + MSMBLOCK *head; + MSMBLOCK first; +} MSM_MEM; -static unkMemStruct mem; +static MSM_MEM mem; -void msmMemFree(void* arg0) { - unkStruct* temp_r6; - unkStruct* temp_r7; - unkStruct* temp_r8; - unkStruct* temp_r5; - unkStruct* temp; +void msmMemFree(void* ptr) { + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; + MSMBLOCK* blockHead; + MSMBLOCK* base; - temp = arg0; + base = ptr; - temp_r6 = &temp[-1]; - temp_r7 = temp_r6->prev; - temp_r8 = temp_r6->next; - if (mem.unk0 > temp_r6 || ((u32)mem.unk0 + (u32)mem.unk4) <= (u32)temp_r6) { + block = &base[-1]; + blockPrev = block->prev; + blockNext = block->next; + if (mem.ptr > block || ((u32)mem.ptr + (u32)mem.size) <= (u32)block) { return; } - if ((temp_r7->next != temp_r6) || (temp_r6->unk10 != arg0) || (temp_r8 && (temp_r8->prev != temp_r6))) { + if ((blockPrev->next != block) || (block->ptr != ptr) || (blockNext && (blockNext->prev != block))) { return; } - temp_r7->unkC += temp_r6->unk8 + temp_r6->unkC; - temp_r7->next = temp_r8; - temp_r5 = mem.unk8; - if ((temp_r5 == temp_r6) || (temp_r5->unkC < temp_r7->unkC)) { - mem.unk8 = temp_r7; + blockPrev->size += block->freeSize + block->size; + blockPrev->next = blockNext; + blockHead = mem.head; + if ((blockHead == block) || (blockHead->size < blockPrev->size)) { + mem.head = blockPrev; } - if (temp_r8) { - temp_r8->prev = temp_r7; - if (mem.unk8->unkC < temp_r8->unkC) { - mem.unk8 = temp_r8; + if (blockNext) { + blockNext->prev = blockPrev; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } } -void* msmMemAlloc(u32 arg0) { - unkMemStruct* memC; - s32 temp_r0; - u32 var_r5; - u32 var_r7; - unkStruct* temp_r5; - unkStruct* var_r8; - unkStruct* temp_r9; - unkStruct* temp_r6; - unkStruct* temp_r4; +void* msmMemAlloc(u32 size) { + s32 alignOfs; + u32 freeSize; + u32 allocSize; + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; - var_r7 = arg0 + 0x20; - temp_r0 = var_r7 & 0x1F; - if (temp_r0 != 0) { - var_r7 += 0x20 - temp_r0; + allocSize = size + 0x20; + alignOfs = allocSize & 0x1F; + if (alignOfs) { + allocSize += 0x20 - alignOfs; } - if (mem.unk8->unkC >= var_r7) { - var_r8 = mem.unk8; + if (mem.head->size >= allocSize) { + blockPrev = mem.head; } else { - var_r8 = &mem.unkC; + blockPrev = &mem.first; do { - if (var_r8->unkC >= var_r7) break; - var_r8 = var_r8->next; - } while (var_r8); - if (!var_r8) { + if (blockPrev->size >= allocSize) break; + blockPrev = blockPrev->next; + } while (blockPrev); + if (!blockPrev) { return NULL; } } - var_r5 = var_r8->unk8; - if (var_r5 != 0) { - var_r5 -= 0x20; + freeSize = blockPrev->freeSize; + if (freeSize != 0) { + freeSize -= 0x20; } - temp_r5 = (void*)((u32)var_r8->unk10 + (var_r5)); - temp_r9 = var_r8->next; - if ((mem.unk0 > temp_r5) || ((void*)((u32)mem.unk0 + (u32)mem.unk4) <= temp_r5)) { + block = (void*)((u32)blockPrev->ptr + (freeSize)); + blockNext = blockPrev->next; + if ((mem.ptr > block) || ((void*)((u32)mem.ptr + (u32)mem.size) <= block)) { return NULL; } - temp_r5->unk8 = var_r7; - temp_r5->unkC = var_r8->unkC - var_r7; - temp_r5->unk10 = (temp_r5 + 1); - temp_r5->prev = var_r8; - temp_r5->next = temp_r9; - mem.unk8 = temp_r5; - var_r8->unkC = 0; - var_r8->next = temp_r5; - if (temp_r9) { - temp_r9->prev = temp_r5; - if (mem.unk8->unkC < temp_r9->unkC) { - mem.unk8 = temp_r9; + block->freeSize = allocSize; + block->size = blockPrev->size - allocSize; + block->ptr = (block + 1); + block->prev = blockPrev; + block->next = blockNext; + mem.head = block; + blockPrev->size = 0; + blockPrev->next = block; + if (blockNext) { + blockNext->prev = block; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } - return temp_r5->unk10; + return block->ptr; } -void msmMemInit(void* arg0, u32 arg1) { - unkStruct* temp_r7; - s32 temp; +void msmMemInit(void* ptr, u32 size) { + MSMBLOCK* block; + s32 ofs; - temp = (s32)arg0 & 0x1F; - switch (temp) { + ofs = (s32)ptr & 0x1F; + switch (ofs) { default: - temp = 0x20 - temp; + ofs = 0x20 - ofs; break; case 0: - temp = 0; + ofs = 0; break; } - mem.unk0 = (void*)((s32)arg0 + temp); - temp = (s32)arg0 + arg1; - mem.unk4 = ((temp - (s32)mem.unk0) & ~0x1F); - temp_r7 = &mem.unkC; - temp_r7->unk8 = 0; - temp_r7->unkC = mem.unk4; - temp_r7->unk10 = mem.unk0; - temp_r7->prev = NULL; - temp_r7->next = NULL; - mem.unk8 = &mem.unkC; + mem.ptr = (void*)((s32)ptr + ofs); + ofs = (s32)ptr + size; + mem.size = ((ofs - (s32)mem.ptr) & ~0x1F); + block = &mem.first; + block->freeSize = 0; + block->size = mem.size; + block->ptr = mem.ptr; + block->prev = NULL; + block->next = NULL; + mem.head = &mem.first; } diff --git a/src/msm/msmmus.c b/src/msm/msmmus.c new file mode 100755 index 00000000..061da27a --- /dev/null +++ b/src/msm/msmmus.c @@ -0,0 +1,443 @@ +#include "msm/msmmus.h" +#include "msm/msmmem.h" + +typedef struct MusPlayer_s { + /* 0x00 */ s16 musId; + /* 0x02 */ s8 baseVol; + /* 0x03 */ s8 vol; + /* 0x04 */ s8 status; + /* 0x05 */ s8 busyF; + /* 0x08 */ SND_SEQID seqId; + /* 0x0C */ void* songBuf; + /* 0x10 */ void* arrfile; + /* 0x14 */ volatile s32 fadeMaxTime; + /* 0x18 */ s32 fadeTime; + /* 0x1C */ s8 fadeVol; + /* 0x20 */ volatile s32 pauseOnMaxTime; + /* 0x24 */ s32 pauseOnTime; + /* 0x28 */ s8 pauseOnVol; + /* 0x2C */ volatile s32 pauseOffMaxTime; + /* 0x30 */ s32 pauseOffTime; + /* 0x28 */ s8 pauseOffVol; + /* 0x35 */ volatile s8 startVol; + /* 0x36 */ s8 targetVol; + /* 0x38 */ SND_PLAYPARA playPara; +} MUS_PLAYER; // Size 0x58 + +static struct { + /* 0x000 */ s16 musMax; + /* 0x002 */ s8 musChanMax; + /* 0x003 */ s8 baseGrpNumPlay; + /* 0x004 */ s8 numPlay; + /* 0x008 */ s32 msmEntryNum; + /* 0x00C */ MSM_MUS *musData; + /* 0x010 */ s32 dummyMusOfs; + /* 0x014 */ void* musBuf; + /* 0x018 */ MUS_PLAYER player[4]; +} mus; + +static void msmMusPauseSub(MUS_PLAYER* player, BOOL pause, s32 speed) { + s32 time; + + time = speed / 15; + if (pause) { + if (player->status == MSM_MUS_PLAY) { + if (time != 0) { + player->pauseOnTime = time; + player->pauseOnMaxTime = time; + player->pauseOnVol = 127; + } else { + sndSeqPause(player->seqId); + player->pauseOnVol = 0; + } + player->status = MSM_MUS_PAUSE; + } + } else { + if (player->status == MSM_MUS_PAUSE) { + if (time != 0) { + if (player->pauseOnMaxTime != 0) { + player->pauseOnMaxTime = -time; + } else { + sndSeqContinue(player->seqId); + player->pauseOnMaxTime = -time; + player->pauseOnTime = 0; + player->pauseOnVol = 0; + } + } else { + sndSeqContinue(player->seqId); + player->pauseOnVol = 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } + player->status = MSM_MUS_PLAY; + } + } +} + +static void msmMusPauseFade(MUS_PLAYER *player) { + if (player->pauseOnMaxTime > 0) { + if (--player->pauseOnTime == 0) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 0; + sndSeqPause(player->seqId); + } else { + player->pauseOnVol = player->pauseOnTime * 127 / player->pauseOnMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } + } else if (player->pauseOnMaxTime < 0) { + if (++player->pauseOnTime >= -player->pauseOnMaxTime) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 127; + } else { + player->pauseOnVol = player->pauseOnTime * 127 / -player->pauseOnMaxTime; + } + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } +} + +static void msmMusFade(MUS_PLAYER *player) { + if (player->status != MSM_MUS_PLAY) { + return; + } + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + if (player->status != 0) { + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + sndSeqStop(player->seqId); + player->status = 1; + } + } + } else { + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; + } else { + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; + } + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } +} + +void msmMusFdoutEnd(void) { +} + +void msmMusPeriodicProc(void) { + s32 i; + MUS_PLAYER* player; + + mus.numPlay = mus.baseGrpNumPlay = 0; + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->busyF != FALSE) { + continue; + } + switch (player->status) { + case MSM_MUS_STOP: + case MSM_MUS_PLAY: + if (sndSeqGetValid(player->seqId) == FALSE) { + player->status = 0; + } + break; + } + if (player->status == MSM_MUS_DONE) { + continue; + } + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) != 0) { + mus.numPlay++; + } else { + mus.baseGrpNumPlay++; + } + msmMusPauseFade(player); + if (player->status == MSM_MUS_PLAY && player->pauseOffMaxTime != 0) { + if (++player->pauseOffTime >= player->pauseOffMaxTime) { + player->pauseOffMaxTime = 0; + player->baseVol = player->targetVol; + } else { + player->baseVol = player->startVol + player->pauseOffTime * (player->targetVol - player->startVol) / player->pauseOffMaxTime; + } + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } + msmMusFade(player); + } +} + +s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { + MUS_PLAYER *player; + + if (musNo < 0 || musNo >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + player = &mus.player[musNo]; + if (sndSeqGetValid(player->seqId) == TRUE) { + return sndSeqGetMidiCtrl(player->seqId, channel & 0xF, ctrl); + } + return 0; +} + +s32 msmMusGetNumPlay(BOOL baseGrp) { + switch (baseGrp) { + case FALSE: + return mus.baseGrpNumPlay + mus.numPlay; + default: + return mus.baseGrpNumPlay; + } +} + +s32 msmMusGetStatus(int musNo) { + if (musNo < 0 || musNo >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + return mus.player[musNo].status; +} + +void msmMusSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 1, 0); +} + +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param) { + MUS_PLAYER* player; + + if (musNo < 0 || musNo >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + player = &mus.player[musNo]; + if (param->flag & MSM_MUSPARAM_VOL) { + player->pauseOffMaxTime = param->fadeSpeed / 15; + if (player->pauseOffMaxTime != 0) { + player->busyF = 1; + player->pauseOffTime = 0; + player->startVol = player->baseVol; + player->targetVol = param->vol & 127; + player->busyF = 0; + } else { + player->baseVol = param->vol & 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); + } + } + if (param->flag & MSM_MUSPARAM_SPEED) { + sndSeqSpeed(player->seqId, (param->speed << 8) / 100); + } + return 0; +} + +void msmMusPauseAll(BOOL pause, s32 speed) { + s32 var_r27; + MUS_PLAYER* player; + + for (var_r27 = 0; var_r27 < mus.musChanMax; var_r27++) { + player = &mus.player[var_r27]; + if (player->status != MSM_MUS_DONE) { + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; + } + } +} + +s32 msmMusPause(int musNo, BOOL pause, s32 speed) { + MUS_PLAYER *player; + + if (musNo < 0 || musNo >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + player = &mus.player[musNo]; + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; + return 0; +} + +void msmMusStopAll(BOOL checkGrp, s32 speed) { + s32 i; + MUS_PLAYER *player; + + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->status == 0) { + continue; + } + player->busyF = TRUE; + switch (checkGrp) { + case FALSE: + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + sndSeqStop(player->seqId); + player->status = 1; + } + } + break; + default: + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) == 0 && player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + sndSeqStop(player->seqId); + player->status = 1; + } + } + break; + } + player->busyF = FALSE; + } +} + +s32 msmMusStop(int musNo, s32 speed) { + MUS_PLAYER* player; + + if (musNo < 0 || musNo >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + player = &mus.player[musNo]; + player->busyF = TRUE; + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + sndSeqStop(player->seqId); + player->status = MSM_MUS_STOP; + } + } + player->busyF = FALSE; + return 0; +} + +int msmMusPlay(int musId, MSM_MUSPARAM* musParam) { + s32 var_r30; + int var_r29; + s32 temp_r3_3; + MSM_GRP_HEAD* temp_r3_2; + MSM_MUS* temp_r28; + MUS_PLAYER* temp_r27; + DVDFileInfo sp10; + + if (musId < 0 || musId >= mus.musMax) { + return MSM_ERR_INVALIDID; + } + temp_r28 = &mus.musData[musId]; + if (temp_r28->sgid == 0xFFFF) { + return MSM_ERR_REMOVEDID; + } + if (msmSysCheckLoadGroupID(temp_r28->sgid) == 0) { + return MSM_ERR_GRP_NOTLOADED; + } + var_r30 = (musParam != NULL) ? musParam->flag : 0; + var_r29 = (var_r30 & MSM_MUSPARAM_CHAN) ? musParam->chan : 0; + if (var_r29 < 0 || var_r29 >= mus.musChanMax) { + return MSM_ERR_OUTOFMUS; + } + temp_r27 = &mus.player[var_r29]; + if (temp_r27->status != 0) { + sndSeqStop(temp_r27->seqId); + } + if (temp_r28->songGrp < 0) { + if (temp_r27->musId != musId) { + if (msmFioOpen(mus.msmEntryNum, &sp10) != 1) { + return MSM_ERR_OPENFAIL; + } + if (msmFioRead(&sp10, temp_r27->songBuf, temp_r28->songSize, temp_r28->songOfs + mus.dummyMusOfs) < 0) { + msmFioClose(&sp10); + return MSM_ERR_READFAIL; + } + msmFioClose(&sp10); + temp_r27->arrfile = temp_r27->songBuf; + } + } else { + temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->songGrp); + if (temp_r3_2 == NULL) { + return MSM_ERR_MUSGRP_NOTLOADED; + } + temp_r27->arrfile = (void*) ((u32) temp_r3_2 + temp_r3_2->sngOfs + temp_r28->songOfs); + } + temp_r27->busyF = 1; + temp_r27->vol = temp_r28->vol; + temp_r27->pauseOffMaxTime = 0; + temp_r27->pauseOnMaxTime = 0; + temp_r27->fadeMaxTime = 0; + temp_r27->pauseOnVol = 127; + temp_r27->fadeVol = 127; + temp_r27->playPara.flags = 4; + temp_r27->playPara.volume.time = 0; + temp_r27->baseVol = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 127; + temp_r27->playPara.volume.target = temp_r27->vol * temp_r27->fadeVol * temp_r27->baseVol / 16129; + if (var_r30 & MSM_MUSPARAM_PAUSE) { + temp_r27->playPara.flags |= 0x10; + } + if (var_r30 & MSM_MUSPARAM_SPEED) { + temp_r27->playPara.flags |= 2; + temp_r27->playPara.speed = musParam->speed * 256 / 100; + } + if (var_r30 & MSM_MUSPARAM_FADESPEED) { + temp_r27->fadeMaxTime = -(musParam->fadeSpeed / 15); + if (temp_r27->fadeMaxTime != 0) { + temp_r27->fadeTime = 0; + temp_r27->fadeVol = 0; + temp_r27->playPara.volume.target = 0; + } + } + temp_r3_3 = sndSeqPlay(temp_r28->sgid, temp_r28->sid, temp_r27->arrfile, &temp_r27->playPara); + if (temp_r3_3 == SND_ID_ERROR) { + temp_r27->busyF = 0; + return MSM_ERR_PLAYFAIL; + } + temp_r27->seqId = temp_r3_3; + temp_r27->musId = musId; + temp_r27->status = (temp_r27->playPara.flags & 0x10) ? 3 : 2; + temp_r27->busyF = 0; + return var_r29; +} + +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1) { + s32 temp_r4; + s32 var_r8; + + mus.musMax = 0; + mus.musChanMax = 0; + mus.numPlay = 0; + mus.baseGrpNumPlay = 0; + if (arg0->info->musMax == 0) { + return 0; + } + temp_r4 = arg0->header->musSize; + if (temp_r4 == 0) { + return 0; + } + if ((mus.musData = msmMemAlloc(temp_r4)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg1, mus.musData, arg0->header->musSize, arg0->header->musOfs) < 0) { + return MSM_ERR_READFAIL; + } + temp_r4 = arg0->info->dummyMusSize; + if (temp_r4 != 0) { + if ((mus.musBuf = msmMemAlloc(temp_r4 * arg0->info->musChanMax)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + } else { + mus.musBuf = NULL; + } + mus.musMax = arg0->info->musMax; + mus.musChanMax = arg0->info->musChanMax; + mus.dummyMusOfs = arg0->header->dummyMusOfs; + mus.msmEntryNum = arg0->msmEntryNum; + for (var_r8 = 0; var_r8 < mus.musChanMax; var_r8++) { + mus.player[var_r8].songBuf = (void*) ((u32) mus.musBuf + arg0->info->dummyMusSize * var_r8); + mus.player[var_r8].musId = -1; + mus.player[var_r8].busyF = 0; + } + return 0; +} diff --git a/src/msm/msmse.c b/src/msm/msmse.c new file mode 100755 index 00000000..cbacf34c --- /dev/null +++ b/src/msm/msmse.c @@ -0,0 +1,638 @@ +#include "msm/msmse.h" +#include "msm/msmfio.h" +#include "msm/msmmem.h" + +#define SE_PLAYER_EMIT (1 << 0) + +typedef struct SePlayer_s { + SND_VOICEID vid; + s32 no; + s16 seId; + s8 status; + s8 busyF; + s8 vol; + s8 pan; + s16 pitch; + s8 span; + s8 auxAVol; + s8 auxBVol; + u8 flag; + SND_PARAMETER_INFO paramInfo; + SND_PARAMETER param[5]; + s8 baseVol; + s8 basePan; + s16 basePitch; + volatile s32 fadeMaxTime; + s32 fadeTime; + s8 fadeVol; + volatile s32 pauseMaxTime; + s32 pauseTime; + s8 pauseVol; + SND_EMITTER emitter; + SND_FVECTOR emiPos; + SND_FVECTOR emiDir; + s8 emitterF; +} SE_PLAYER; + +static struct { + s32 seMax; + s8 sfx; + s8 baseGrpNumPlay; + s8 numPlay; + s32 no; + MSM_SE *seData; + SE_PLAYER *player; + SND_LISTENER listener; + SND_FVECTOR listenerPos; + SND_FVECTOR listenerDir; + SND_FVECTOR listenerHeading; + SND_FVECTOR listenerUp; + float sndDist; + u16 groupId; + u16 listenerF; +} se; + +static void msmSeFade(SE_PLAYER *player) { + u8 vol; + + if (player->status == MSM_SE_PAUSEOUT) { + return; + } + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + player->fadeMaxTime = 0; + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); + } else { + sndFXKeyOff(player->vid); + } + } + } else { + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); + } else { + sndFXVolume(player->vid, vol); + } + } + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; + } else { + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; + } + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == 1) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); + } else { + sndFXVolume(player->vid, vol); + } + } +} + +static void msmSePauseSub(SE_PLAYER* player, BOOL pause, s32 speed) { + s32 time; + + time = speed / 15; + if (pause) { + if (player->status == MSM_SE_PAUSEIN) { + if (time != 0) { + player->pauseMaxTime = player->pauseTime = time; + player->pauseVol = 127; + } else { + player->pauseVol = 0; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); + } + player->status = MSM_SE_PAUSEOUT; + } + } else { + if (player->status == MSM_SE_PAUSEOUT) { + if (time != 0) { + if (player->pauseMaxTime != 0) { + player->pauseMaxTime = -time; + } else { + player->pauseMaxTime = -time; + player->pauseTime = 0; + player->pauseVol = 0; + } + } else { + player->pauseVol = 127; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); + } + player->status = MSM_SE_PAUSEIN; + } + } +} + +static SE_PLAYER* msmSeSearchEntry(s32 seNo) { + SE_PLAYER *player; + s32 i; + + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != MSM_SE_DONE && player->no == seNo) { + return player; + } + } + return NULL; +} + +void msmSePeriodicProc(void) { + s32 i; + SE_PLAYER* player; + u8 vol; + + se.baseGrpNumPlay = se.numPlay = 0; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->busyF != 0) { + continue; + } + switch (player->status) { + case MSM_SE_PLAY: + case MSM_SE_PAUSEIN: + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + if (!sndCheckEmitter(&player->emitter)) { + player->status = 0; + } + } else { + if (sndFXCheck(player->vid) == SND_ID_ERROR) { + player->status = 0; + } + } + break; + } + if (player->status == 0) { + continue; + } + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) != 0) { + se.baseGrpNumPlay++; + } else { + se.numPlay++; + } + if (player->pauseMaxTime > 0) { + if (--player->pauseTime == 0) { + player->pauseMaxTime = 0; + player->pauseVol = 0; + } else { + player->pauseVol = player->pauseTime * 127 / player->pauseMaxTime; + } + } else if (player->pauseMaxTime < 0) { + if (++player->pauseTime >= -player->pauseMaxTime) { + player->pauseMaxTime = 0; + player->pauseVol = 127; + } else { + player->pauseVol = player->pauseTime * 127 / -player->pauseMaxTime; + } + } + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); + } else { + sndFXVolume(player->vid, vol); + } + msmSeFade(player); + } +} + +MSM_SE* msmSeGetIndexPtr(s32 seId) { + if (seId < 0 || seId >= se.seMax) { + return NULL; + } + return &se.seData[seId]; +} + +void msmSeDelListener(void) { + if (se.listenerF != 0) { + sndRemoveListener(&se.listener); + se.listenerF = 0; + } +} + +s32 msmSeUpdataListener(Vec* pos, Vec* heading) { + if (se.listenerF == 0) { + return MSM_LISTENER_NO_UPDATA; + } + se.listenerDir.x = pos->x - se.listenerPos.x; + se.listenerDir.y = pos->y - se.listenerPos.y; + se.listenerDir.z = pos->z - se.listenerPos.z; + se.listenerPos.x = pos->x; + se.listenerPos.y = pos->y; + se.listenerPos.z = pos->z; + se.listenerHeading.x = heading->x; + se.listenerHeading.y = heading->y; + se.listenerHeading.z = heading->z; + if (!sndUpdateListener(&se.listener, &se.listenerPos, &se.listenerDir, &se.listenerHeading, &se.listenerUp, 127, NULL)) { + return MSM_LISTENER_NO_UPDATA; + } + return 0; +} + +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { + SND_FVECTOR* listenerDir; + SND_FVECTOR* listenerPos; + SND_FVECTOR* listenerUp; + SND_FVECTOR* listenerHeading; + s32 flag; + float startDis; + float frontSurDis; + float backSurDis; + + listenerPos = &se.listenerPos; + listenerUp = &se.listenerUp; + listenerHeading = &se.listenerHeading; + listenerDir = &se.listenerDir; + listenerPos->x = pos->x; + listenerPos->y = pos->y; + listenerPos->z = pos->z; + listenerUp->x = listenerUp->z = 0.0f; + listenerUp->y = 1.0f; + listenerHeading->x = heading->x; + listenerHeading->y = heading->y; + listenerHeading->z = heading->z; + listenerDir->x = listenerDir->y = listenerDir->z = 0.0f; + se.sndDist = sndDist; + flag = (listener != NULL) ? listener->flag : MSM_LISTENER_NONE; + startDis = (flag & MSM_LISTENER_STARTDIS) ? listener->startDis : 0.0f; + frontSurDis = (flag & MSM_LISTENER_FRONTSURDIS) ? listener->frontSurDis : (startDis + sndDist * 0.25f); + backSurDis = (flag & MSM_LISTENER_BACKSURDIS) ? listener->backSurDis : (startDis + sndDist * 0.25f); + if ((s32) sndAddListenerEx(&se.listener, listenerPos, listenerDir, listenerHeading, listenerUp, + frontSurDis, backSurDis, sndSpeed, -startDis, SND_EMITTER_CONTINOUS, 127, NULL) == FALSE) + { + se.listenerF = FALSE; + return MSM_LISTENER_NO_UPDATA; + } + se.listenerF = TRUE; + return 0; +} + +s32 msmSeGetEntryID(s32 seId, int* seNo) { + SE_PLAYER* player; + s32 i; + s32 num; + + for (i = num = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != 0 && player->seId == seId) { + if (seNo != NULL) { + seNo[num] = player->no; + } + num++; + } + } + return num; +} + +s32 msmSeGetNumPlay(BOOL baseGrp) { + switch (baseGrp) { + case FALSE: + return se.numPlay + se.baseGrpNumPlay; + default: + return se.numPlay; + } +} + +s32 msmSeGetStatus(int seNo) { + SE_PLAYER* pan; + + pan = msmSeSearchEntry(seNo); + if (pan == NULL) { + return 0; + } + return pan->status; +} + +void msmSeSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 0, 1); +} + +s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { + SE_PLAYER* player; + int pan; + s32 pitch; + + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; + } + if (param->flag & MSM_SEPARAM_VOL) { + player->busyF = TRUE; + player->vol = param->vol; + if (!(player->flag & SE_PLAYER_EMIT) || player->emitterF != TRUE) { + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); + } + player->busyF = FALSE; + } + if (!(player->flag & SE_PLAYER_EMIT)) { + if (param->flag & MSM_SEPARAM_PAN) { + player->pan = param->pan; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; + } + if (pan > 127) { + pan = 127; + } + sndFXPanning(player->vid, pan); + } + if (param->flag & MSM_SEPARAM_PITCH) { + player->pitch = param->pitch; + pitch = player->pitch + player->basePitch + 8192; + if (pitch < 0) { + pitch = 0; + } + if (pitch > 16383) { + pitch = 16383; + } + sndFXPitchBend(player->vid, pitch); + } + if (param->flag & MSM_SEPARAM_SPAN) { + player->span = param->span; + sndFXSurroundPanning(player->vid, player->span); + } + } else if (player->emitterF == TRUE) { + player->vid = sndEmitterVoiceID(&player->emitter); + if (param->flag & MSM_SEPARAM_POS) { + player->busyF = TRUE; + player->emiDir.x = param->pos.x - player->emiPos.x; + player->emiDir.y = param->pos.y - player->emiPos.y; + player->emiDir.z = param->pos.z - player->emiPos.z; + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127), NULL); + player->busyF = FALSE; + } + } + if (param->flag & MSM_SEPARAM_AUXVOLA) { + player->auxAVol = param->auxAVol; + sndFXReverb(player->vid, player->auxAVol); + } + if (param->flag & MSM_SEPARAM_AUXVOLB) { + player->auxBVol = param->auxBVol; + sndFXChorus(player->vid, player->auxBVol); + } + if (param->flag & MSM_SEPARAM_PAD) { + sndSendMessage(player->vid, param->pad); + } + return 0; +} + +void msmSePauseAll(BOOL pause, s32 speed) { + s32 i; + SE_PLAYER* player; + + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + player->busyF = TRUE; + msmSePauseSub(player, pause, speed); + player->busyF = FALSE; + } +} + +void msmSeStopAll(BOOL checkGrp, s32 speed) { + SE_PLAYER* player; + s32 i; + + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == MSM_MUS_DONE) { + continue; + } + player->busyF = TRUE; + switch (checkGrp) { + case FALSE: + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); + } else { + sndFXKeyOff(player->vid); + } + } + break; + default: + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) == 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); + } else { + sndFXKeyOff(player->vid); + } + } + } + break; + } + player->busyF = FALSE; + } +} + +s32 msmSeStop(int seNo, s32 speed) { + SE_PLAYER* player; + + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; + } + player->busyF = TRUE; + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; + } else { + player->status = MSM_MUS_STOP; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); + } else { + sndFXKeyOff(player->vid); + } + } + player->busyF = FALSE; + return 0; +} + +static inline BOOL msmSeUpdateBaseParam(SE_PLAYER* player, MSM_SEPARAM* param) { + BOOL listenerF = FALSE; + + if (param != NULL) { + if (param->flag & MSM_SEPARAM_VOL) { + player->vol = param->vol; + } + if (param->flag & MSM_SEPARAM_PAN) { + player->pan = param->pan; + } + if (param->flag & MSM_SEPARAM_PITCH) { + player->pitch = param->pitch; + } + if (param->flag & MSM_SEPARAM_SPAN) { + player->span = param->span; + } + if (param->flag & MSM_SEPARAM_AUXVOLA) { + player->auxAVol = param->auxAVol; + } + if (param->flag & MSM_SEPARAM_AUXVOLB) { + player->auxBVol = param->auxBVol; + } + if ((param->flag & MSM_SEPARAM_POS) && se.listenerF != 0) { + listenerF = TRUE; + } + } + player->paramInfo.paraArray = player->param; + return listenerF; +} + +int msmSePlay(int seId, MSM_SEPARAM* param) { + SE_PLAYER* player; + SND_EMITTER* emitter; + MSM_SE* seData; + int pitch; + s32 pan; + s32 i; + s32 emiFlag; + + if (seId < 0 || seId >= se.seMax) { + return MSM_ERR_INVALIDID; + } + seData = &se.seData[seId]; + if (seData->gid == 0xFFFF) { + return MSM_ERR_REMOVEDID; + } + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == 0) { + break; + } + } + if (i == se.sfx) { + return MSM_ERR_CHANLIMIT; + } + player->baseVol = seData->vol; + player->basePan = seData->pan; + player->basePitch = seData->pitchBend; + player->vol = 127; + player->pan = 64; + player->span = seData->span; + player->pitch = 0; + player->auxAVol = seData->reverb; + player->auxBVol = seData->chorus; + player->pauseMaxTime = 0; + player->fadeMaxTime = 0; + player->pauseVol = 127; + player->fadeVol = 127; + player->emitterF = 0; + if (msmSeUpdateBaseParam(player, param)) { + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + player->param[0].ctrl = SND_MIDICTRL_REVERB; + player->param[0].paraData.value7 = player->auxAVol; + player->param[1].ctrl = SND_MIDICTRL_CHORUS; + player->param[1].paraData.value7 = player->auxBVol; + player->paramInfo.numPara = 2; + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + if (seData->emitterF == TRUE) { + emitter = &player->emitter; + emiFlag = SND_EMITTER_DOPPLERFX|SND_EMITTER_CONTINOUS; + } else { + emitter = NULL; + emiFlag = SND_EMITTER_DOPPLERFX; + } + player->emitterF = seData->emitterF; + player->vid = sndAddEmitterParaEx(emitter, &player->emiPos, &player->emiDir, se.sndDist, seData->emiComp / 127.0f, emiFlag, seData->fxId, se.groupId++, player->vol * player->baseVol / 127, 0, NULL, &player->paramInfo); + if (emitter != NULL) { + if (!sndCheckEmitter(emitter)) { + return MSM_ERR_PLAYFAIL; + } + } else { + if (player->vid == -1) { + return MSM_ERR_PLAYFAIL; + } + } + player->flag |= 1; + } else { + player->param[0].ctrl = SND_MIDICTRL_VOLUME; + player->param[0].paraData.value14 = (player->vol * player->baseVol / 127) * 129; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; + } + if (pan > 127) { + pan = 127; + } + player->param[1].ctrl = SND_MIDICTRL_PANNING; + player->param[1].paraData.value14 = pan * 129; + player->param[2].ctrl = SND_MIDICTRL_REVERB; + player->param[2].paraData.value7 = player->auxAVol; + player->param[3].ctrl = SND_MIDICTRL_CHORUS; + player->param[3].paraData.value7 = player->auxBVol; + pitch = player->pitch + player->basePitch + 8192; + if (pitch > 16383) { + pitch = 16383; + } else if (pitch < 0) { + pitch = 0; + } + player->param[4].ctrl = SND_MIDICTRL_PITCHBEND; + player->param[4].paraData.value14 = pitch; + player->paramInfo.numPara = 5; + player->vid = sndFXStartParaInfo(seData->fxId, 0xFF, 0xFF, 0, &player->paramInfo); + if (player->vid == -1) { + return MSM_ERR_PLAYFAIL; + } + sndFXSurroundPanning(player->vid, player->span); + player->flag &= ~1; + } + player->busyF = 1; + player->seId = seId; + player->no = se.no++; + player->status = 2; + player->busyF = 0; + return player->no; +} + +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1) { + s32 playerSize; + + se.sfx = 0; + se.seMax = 0; + se.baseGrpNumPlay = 0; + se.numPlay = 0; + se.listenerF = 0; + if (arg0->info->seMax == 0) { + return 0; + } + if ((se.seData = msmMemAlloc(arg0->header->seSize)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg1, se.seData, arg0->header->seSize, arg0->header->seOfs) < 0) { + return MSM_ERR_READFAIL; + } + playerSize = arg0->info->sfx * sizeof(SE_PLAYER); + if ((se.player = msmMemAlloc(playerSize)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + memset(se.player, 0, playerSize); + se.seMax = arg0->info->seMax; + se.sfx = arg0->info->sfx; + se.no = 1; + return 0; +} diff --git a/src/msm/msmstream.c b/src/msm/msmstream.c new file mode 100755 index 00000000..2afade01 --- /dev/null +++ b/src/msm/msmstream.c @@ -0,0 +1,1029 @@ +#include "msm/msmstream.h" +#include "msm/msmmem.h" +#include "msm/msmsys.h" + +typedef struct { + /* 0x00 */ SND_STREAMID stid; + /* 0x04 */ s16 streamId; + /* 0x06 */ u8 status; + /* 0x07 */ u8 stereoF; + /* 0x08 */ u8 volBase; + /* 0x09 */ u8 vol; + /* 0x0A */ u8 volFade; + /* 0x0B */ u8 pauseVol; + /* 0x0C */ u8 panBase; + /* 0x0D */ u8 pan; + /* 0x0E */ s8 slotL; + /* 0x0F */ s8 slotR; + /* 0x10 */ u32 pauseLen; + /* 0x14 */ volatile s32 pauseTime; + /* 0x18 */ volatile s32 pauseTimeMax; + /* 0x1C */ s32 fadeVol; + /* 0x20 */ s32 unk20; + /* 0x24 */ volatile s32 fadeMaxTime; + /* 0x28 */ s32 fadeTime; + /* 0x2C */ s8 span; + /* 0x2D */ s8 auxA; + /* 0x2E */ s8 auxB; + /* 0x30 */ void* streamBuf; + /* 0x34 */ u32 streamBufSize; + /* 0x38 */ u32 streamFrq; + /* 0x3C */ struct { + volatile u8 bufNo : 1; + volatile u8 firstF : 1; + u8 streamOffF : 1; + u8 readBusyF : 1; + volatile u8 shutdownF : 1; + volatile u8 pauseF : 1; + volatile u8 updateAramF : 1; + }; + s32 frq; + /* 0x44 */ SND_ADPCMSTREAM_INFO* adpcmInfo; + /* 0x48 */ s32 streamBaseOfs; + /* 0x4C */ u32 streamPos; + /* 0x50 */ u32 loopLen; + /* 0X54 */ s32 loopEndOfs; + /* 0x58 */ u32 streamReadSize; + /* 0x5C */ void* streamReadBuf; + /* 0X60 */ s32 streamPosStart; + /* 0x64 */ u32 unk64; + /* 0x68 */ s32 unk68; + /* 0x6C */ s32 unk6C; + /* 0x70 */ DVDFileInfo file; +} MSM_STREAM_SLOT; // Size 0xAC + +static struct { + /* 0x00 */ s32 sampleFrq; + /* 0x04 */ u32 bufSize; + /* 0x08 */ s32 frq; + /* 0x0C */ s32 pdtEntryNum; + /* 0x10 */ s8 time; + /* 0x11 */ u8 masterVol; + /* 0x12 */ u8 outputMode; + /* 0x14 */ u32* streamPackList; + /* 0x18 */ s8* streamPackFlag; + /* 0x1C */ SND_ADPCMSTREAM_INFO* adpcmParam; + /* 0x20 */ MSM_STREAM_SLOT* slot; + MSM_STREAM_HEADER header ATTRIBUTE_ALIGN(32); +} StreamInfo; // Size 0x60 + +typedef struct { + /* 0x00 */ u8 vol; + /* 0x01 */ u8 pan; + /* 0x02 */ u8 span; + /* 0x03 */ u8 auxA; + /* 0x04 */ u8 auxB; + /* 0x08 */ s32 sampleOfs; +} STREAM_PARAM; + +static void msmStreamPauseFade(s32 streamNo); +static void msmStreamFade(s32 streamNo); +static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo); +static void msmStreamStopSub(s32 streamNo, s32 speed); +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo); +static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user); +static s32 msmStreamSlotInit(MSM_STREAM_SLOT* arg0, MSM_STREAM_PACK* arg1, STREAM_PARAM* arg2, s32 arg3); +static void msmStreamPauseOff(s32 streamNo); +static void msmStreamPauseOn(s32 streamNo, s32 arg1); +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static void msmStreamSlotOff(s32 streamNo); + +static inline void msmStreamClose(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + DVDClose(&slot->file); + slot->status = 0; +} + +s32 msmStreamGetStatus(int streamNo) { + MSM_STREAM_SLOT* slot; + s32 status; + + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { + return 0; + } + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { + case 4: + status = MSM_STREAM_PLAY; + break; + case 2: + case 3: + status = MSM_STREAM_PAUSEOUT; + break; + case 5: + status = MSM_STREAM_STOP; + break; + default: + status = MSM_STREAM_DONE; + break; + } + if (slot->pauseF == TRUE) { + status = MSM_STREAM_PAUSEIN; + } + if (status == MSM_STREAM_DONE && slot->slotL != -1) { + status = msmStreamGetStatus(slot->slotL); + } + return status; +} + +static void msmStreamUpdateBaseParam(MSM_STREAM_SLOT* slot) { + s32 pan; + s32 vol; + + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; + } + if (pan > 127) { + pan = 127; + } + } else { + pan = 64; + } + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); +} + +void msmStreamSetMasterVolume(s32 vol) { + s32 i; + + StreamInfo.masterVol = vol & 127; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); + } + } +} + +static inline BOOL msmStreamIsPlay(MSM_STREAM_SLOT* slot) { + if (slot->status != 0 || slot->pauseF != 0) { + return TRUE; + } else { + return FALSE; + } +} + +void msmStreamStopAll(s32 speed) +{ + MSM_STREAM_SLOT* slot; + s32 i; + + msmSysIrqDisable(); + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (i >= 0 && i < StreamInfo.header.chanMax) { + slot = &StreamInfo.slot[i]; + if (msmStreamIsPlay(slot)) { + msmSysIrqDisable(); + msmStreamStopSub(i, speed); + if (slot->slotL != -1) { + msmStreamStopSub(slot->slotL, speed); + } + if (slot->slotR != -1) { + msmStreamStopSub(slot->slotR, speed); + } + msmSysIrqEnable(); + } + } + } + msmSysIrqEnable(); +} + +static inline void msmStreamSetFade(int streamNo, s32 speed) { + MSM_STREAM_SLOT* slot = &StreamInfo.slot[streamNo]; + + if (slot->pauseF != 0) { + slot->pauseF = 0; + speed = 0; + } + slot->fadeMaxTime = speed / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; + } else { + msmStreamSlotOff(streamNo); + } +} + +s32 msmStreamStop(int streamNo, s32 speed) { + MSM_STREAM_SLOT* slot; + s32 unused; + + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { + return MSM_ERR_RANGE_STREAM; + } + slot = &StreamInfo.slot[streamNo]; + if (msmStreamIsPlay(slot)) { + msmSysIrqDisable(); + msmStreamSetFade(streamNo, speed); + if (slot->slotL != -1) { + msmStreamSetFade(slot->slotL, speed); + } + if (slot->slotR != -1) { + msmStreamSetFade(slot->slotR, speed); + } + msmSysIrqEnable(); + } + return 0; +} + +int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { + if (streamId < 0 || streamId >= StreamInfo.header.streamMax) { + return MSM_ERR_INVALIDID; + } + if (StreamInfo.streamPackList[streamId] == 0) { + return MSM_ERR_REMOVEDID; + } + if (StreamInfo.streamPackFlag[StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs] & MSM_STREAM_FLAG_STEREO) { + return msmStreamPackStartStereo(streamId, streamParam, 0); + } else { + return msmStreamPackStartMono(streamId, streamParam, 0); + } +} + +void msmStreamPeriodicProc(void) { + MSM_STREAM_SLOT* slot; + s32 i; + + StreamInfo.time = 0; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + msmStreamFade(i); + msmStreamPauseOff(i); + msmStreamPauseFade(i); + if (slot->status != 0) { + StreamInfo.time++; + } + } +} + +void msmStreamSetOutputMode(s32 outputMode) { + s32 i; + + StreamInfo.outputMode = outputMode; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); + } + } +} + +void msmStreamAmemFree(void) { + u32 i; + + for (i = 0; i < StreamInfo.header.chanMax; i++) { + sndStreamFree(StreamInfo.slot[i].stid); + } +} + +s32 msmStreamAmemAlloc(void) { + u32 i; + MSM_STREAM_SLOT* slot; + + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + slot->status = 0; + slot->slotR = -1; + slot->slotL = -1; + slot->streamBuf = msmMemAlloc(StreamInfo.bufSize); + if (slot->streamBuf == NULL) { + return MSM_ERR_OUTOFMEM; + } + slot->streamBufSize = StreamInfo.bufSize; + slot->streamFrq = StreamInfo.frq; + slot->stid = sndStreamAllocEx(0xFF, slot->streamBuf, slot->streamFrq, StreamInfo.header.sampleFrq, 0, 64, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, i, NULL); + if (slot->stid == -1) { + return MSM_ERR_STREAMALLOC_FAIL; + } + } + return StreamInfo.bufSize * StreamInfo.header.chanMax; +} + +s32 msmStreamInit(char *pdtPath) { + DVDFileInfo file; + s32 size; + + StreamInfo.header.streamMax = 0; + StreamInfo.header.chanMax = 0; + StreamInfo.masterVol = 127; + StreamInfo.time = 0; + if (pdtPath == NULL) { + return 0; + } + StreamInfo.pdtEntryNum = DVDConvertPathToEntrynum(pdtPath); + if (StreamInfo.pdtEntryNum == -1) { + return MSM_ERR_OPENFAIL; + } + if (!msmFioOpen(StreamInfo.pdtEntryNum, &file)) { + return MSM_ERR_OPENFAIL; + } + if (msmFioRead(&file, &StreamInfo.header, 0x20, 0) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; + } + if (StreamInfo.header.version != MSM_PDT_FILE_VERSION) { + msmFioClose(&file); + return MSM_ERR_INVALIDFILE; + } + if (StreamInfo.header.streamMax != 0) { + size = (StreamInfo.header.adpcmParamOfs - StreamInfo.header.streamPackListOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackList = msmMemAlloc(size); + if (StreamInfo.streamPackList == NULL) { + msmFioClose(&file); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&file, StreamInfo.streamPackList, size, StreamInfo.header.streamPackListOfs) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; + } + size = (StreamInfo.header.sampleOfs - StreamInfo.header.streamPackOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackFlag = msmMemAlloc(size); + if (StreamInfo.streamPackFlag == NULL) { + msmFioClose(&file); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&file, StreamInfo.streamPackFlag, size, StreamInfo.header.streamPackOfs) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; + } + size = StreamInfo.header.streamPackOfs - StreamInfo.header.adpcmParamOfs; + StreamInfo.adpcmParam = msmMemAlloc(size); + if (StreamInfo.adpcmParam == NULL) { + msmFioClose(&file); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&file, StreamInfo.adpcmParam, size, StreamInfo.header.adpcmParamOfs) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; + } + } + msmFioClose(&file); + StreamInfo.sampleFrq = (StreamInfo.header.sampleFrq + (SND_STREAM_ADPCM_BLKSIZE-1)) / SND_STREAM_ADPCM_BLKSIZE ; + StreamInfo.bufSize = (8 * StreamInfo.sampleFrq * StreamInfo.header.maxBufs + 0x3F) & ~0x3F; + StreamInfo.frq = (StreamInfo.bufSize / SND_STREAM_ADPCM_BLKBYTES ) * SND_STREAM_ADPCM_BLKSIZE; + StreamInfo.slot = msmMemAlloc(StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); + memset(StreamInfo.slot, 0, StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); + return 0; +} + +static void msmStreamPauseOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; + u32 ofs; + u32 readSize; + + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseTime == 0) { + return; + } + if (slot->pauseF == 0) { + slot->pauseTime = 0; + return; + } + if (slot->pauseTimeMax != 0) { + slot->pauseTimeMax = -(slot->pauseTime + 1); + if (slot->pauseTimeMax == 0) { + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); + } + slot->pauseTime = 0; + slot->pauseF = 0; + } else if (slot->status == 0 && DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) == TRUE) { + if (--slot->pauseTime != 0) { + slot->pauseTimeMax = -slot->pauseTime; + slot->fadeVol = 0; + slot->pauseVol = 0; + } else { + slot->pauseVol = 127; + } + slot->pauseTime = 0; + slot->firstF = TRUE; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->unk64 = slot->unk68 = (slot->pauseLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk6C = 0; + slot->streamPos = slot->pauseLen; + readSize = slot->streamBufSize / 2; + if ((ofs = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + readSize = ofs; + slot->streamReadSize = slot->streamBufSize / 2 - ofs; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + ofs); + memset(slot->streamReadBuf, 0, slot->streamReadSize); + } + slot->status = 2; + slot->streamPos += readSize; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); + } +} + +static inline void msmStreamOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { + case 2: + slot->shutdownF = TRUE; + slot->status = 5; + break; + case 3: + msmStreamClose(streamNo); + break; + case 4: + if (slot->streamOffF == FALSE) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; + } + break; + } +} + +static void msmStreamPauseOn(s32 streamNo, s32 speed) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + slot->pauseTime = 0; + if (slot->pauseF != 0) { + return; + } + slot->pauseF = TRUE; + slot->pauseTimeMax = speed / 15; + if (slot->pauseTimeMax != 0) { + slot->fadeVol = slot->pauseTimeMax; + slot->pauseVol = 127; + return; + } + slot->pauseLen = ((slot->unk64 / 7) * 4) & ~7; + if (slot->stereoF != 0) { + if (slot->pauseLen >= slot->loopLen - slot->streamBufSize / 4) { + slot->pauseLen = 0; + } + } else if (slot->pauseLen >= slot->loopLen) { + slot->pauseF = 0; + } + msmStreamOff(streamNo); +} + +static void msmStreamPauseFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { + return; + } + if (slot->pauseTimeMax > 0) { + if (--slot->fadeVol == 0) { + slot->pauseTimeMax = 0; + slot->pauseF = 0; + msmStreamPauseOn(streamNo, 0); + } else { + slot->pauseVol = slot->fadeVol * 127 / slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); + } + } else if (slot->pauseTimeMax < 0) { + if (++slot->fadeVol >= -slot->pauseTimeMax) { + slot->pauseTimeMax = 0; + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); + } else { + slot->pauseVol = slot->fadeVol * 127 / -slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); + } + } +} + +static void msmStreamFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { + return; + } + if (slot->fadeMaxTime > 0) { + if (--slot->fadeTime == 0) { + slot->fadeMaxTime = 0; + msmStreamSetFade(streamNo, 0); + } else { + slot->volFade = slot->fadeTime * 127 / slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); + } + } else if (slot->fadeMaxTime < 0) { + if (++slot->fadeTime >= -slot->fadeMaxTime) { + slot->fadeMaxTime = 0; + slot->volFade = 127; + msmStreamUpdateBaseParam(slot); + } else { + slot->volFade = slot->fadeTime * 127 / -slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); + } + } +} + +static void msmStreamStopSub(s32 streamNo, s32 speed) { + MSM_STREAM_SLOT* slot; + s32 time; + + time = speed; + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseF != 0) { + slot->pauseF = 0; + time = 0; + } + slot->fadeMaxTime = time / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; + return; + } + msmStreamOff(streamNo); +} + +static void msmStreamSetParamSub(MSM_STREAM_SLOT* slot) { + int pan; + s32 vol; + + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; + } + if (pan > 127) { + pan = 127; + } + } else { + pan = 64; + } + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); +} + +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chanL; + s32 chanR; + u32 sizeL; + u32 sizeR; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slotL; + MSM_STREAM_SLOT* slotR; + MSM_STREAM_PACK* pack; + + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chanL = param->chan; + chanR = param->chan + 1; + if (chanL < 0 || chanL >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; + } + if (chanR < 0 || chanR >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; + } + if (msmStreamIsPlay(&StreamInfo.slot[chanL])) { + return MSM_ERR_CHANLIMIT; + } + if (msmStreamIsPlay(&StreamInfo.slot[chanR])) { + return MSM_ERR_CHANLIMIT; + } + } else { + for (chanL = 0; chanL < StreamInfo.header.chanMax; chanL++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanL])) { + break; + } + } + for (chanR = chanL + 1; chanR < StreamInfo.header.chanMax; chanR++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanR])) { + break; + } + } + if (chanL == StreamInfo.header.chanMax || chanR == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; + } + } + slotL = &StreamInfo.slot[chanL]; + slotR = &StreamInfo.slot[chanR]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; + msmSysIrqDisable(); + streamParam.pan = 0; + sizeL = msmStreamSlotInit(slotL, pack, &streamParam, 0); + streamParam.pan = 127; + sizeR = msmStreamSlotInit(slotR, pack, &streamParam, 1); + slotL->streamId = streamId; + slotR->streamId = -1; + slotL->slotL = chanR; + slotR->slotR = chanL; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slotL->fadeMaxTime = slotR->fadeMaxTime = -param->fadeSpeed / 15; + slotL->fadeTime = slotR->fadeTime = 0; + slotL->volFade = slotR->volFade = 0; + } + msmSysIrqEnable(); + if (sizeL == 0) { + return 0; + } + if (flag & MSM_STREAMPARAM_PAUSE) { + slotL->pauseF = slotR->pauseF = 1; + slotL->status = slotR->status = 0; + return chanL; + } + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotL->file) != 1) { + return MSM_ERR_OPENFAIL; + } + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotR->file) != 1) { + DVDClose(&slotL->file); + return MSM_ERR_OPENFAIL; + } + slotL->streamPos += sizeL; + slotR->streamPos += sizeR; + slotL->readBusyF = 1; + DVDReadAsync(&slotL->file, slotL->streamBuf, sizeL, slotL->streamBaseOfs + (slotL->streamPos - sizeL), msmStreamDvdCallback); + slotR->readBusyF = 1; + DVDReadAsync(&slotR->file, slotR->streamBuf, sizeR, slotR->streamBaseOfs + (slotR->streamPos - sizeR), msmStreamDvdCallback); + return chanL; +} + +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chan; + u32 size; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slot; + MSM_STREAM_PACK* pack; + + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chan = param->chan; + if (chan < 0 || chan >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; + } + if (msmStreamIsPlay(&StreamInfo.slot[chan])) { + return MSM_ERR_CHANLIMIT; + } + } else { + for (chan = 0; chan < StreamInfo.header.chanMax; chan++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chan])) { + break; + } + } + if (chan == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; + } + } + slot = &StreamInfo.slot[chan]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.pan = (flag & MSM_STREAMPARAM_PAN) ? param->pan : 64; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; + msmSysIrqDisable(); + size = msmStreamSlotInit(slot, pack, &streamParam, 0); + slot->streamId = streamId; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slot->fadeMaxTime = -param->fadeSpeed / 15; + slot->fadeTime = 0; + slot->volFade = 0; + } + msmSysIrqEnable(); + if (size == 0) { + return 0; + } + if (flag & MSM_STREAMPARAM_PAUSE) { + slot->pauseF = TRUE; + slot->status = 0; + return chan; + } + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) != 1) { + return MSM_ERR_OPENFAIL; + } + slot->streamPos += size; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, size, slot->streamBaseOfs + (slot->streamPos - size), msmStreamDvdCallback); + return chan; +} + +// Note: identical to msmStreamOff. +static void msmStreamSlotOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { + case 2: + slot->shutdownF = 1; + slot->status = 5; + break; + case 3: + msmStreamClose(streamNo); + break; + case 4: + if (slot->streamOffF == 0) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; + } + break; + } +} + +static void msmStreamShutdown(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + msmStreamSlotOff(streamNo); + sndStreamDeactivate(slot->stid); + if (slot->readBusyF == 0) { + msmStreamClose(streamNo); + } else { + slot->shutdownF = 1; + } +} + +static void msmStreamData(s32 streamNo) { + s32 dataSize; + u32 readSize; + void* dataPtr; + MSM_STREAM_SLOT* slot; + s32 off1; + + slot = &StreamInfo.slot[streamNo]; + readSize = dataSize = slot->streamBufSize / 2; + dataPtr = (slot->bufNo != 0) + ? (void*) ((u32) slot->streamBuf + dataSize) + : slot->streamBuf; + slot->streamReadSize = off1 = 0; + if (slot->streamPos + readSize > slot->loopLen) { + if (slot->loopLen > slot->streamPos) { + readSize = slot->loopLen - slot->streamPos; + slot->streamReadSize = dataSize - readSize; + slot->streamReadBuf = (void*) ((u32) dataPtr + readSize); + } else if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; + } else { + memset(dataPtr, 0, dataSize); + if (slot->bufNo != 0) { + off1 = slot->streamFrq / 2; + } + sndStreamARAMUpdate(slot->stid, off1, slot->streamFrq / 2, 0, 0); + readSize = 0; + } + } + if (readSize != 0) { + if (DVDGetCommandBlockStatus(&slot->file.cb) != 0) { + if (slot->updateAramF != TRUE) { + slot->updateAramF = TRUE; + sndStreamMixParameterEx(slot->stid, 0, 64, 64, 0, 0); + memset(slot->streamBuf, 0, slot->streamBufSize); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq, 0, 0); + } + } else { + if (slot->updateAramF == TRUE) { + slot->updateAramF = FALSE; + msmStreamUpdateBaseParam(slot); + } + slot->streamPos += readSize; + slot->readBusyF = 1; + DVDReadAsync(&slot->file, dataPtr, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); + } + } else if (slot->firstF != 0) { + slot->firstF= 0; + } else { + msmStreamShutdown(streamNo); + } + slot->bufNo ^= 1; +} + +static BOOL msmStreamActivateStream(s32 streamNo) { + MSM_STREAM_SLOT* slot; + + slot = &StreamInfo.slot[streamNo]; + msmStreamSetParamSub(slot); + sndStreamFrq(slot->stid, slot->frq); + sndStreamADPCMParameter(slot->stid, slot->adpcmInfo); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq / 2, 0, 0); + if (sndStreamActivate(slot->stid)) { + slot->status = 4; + msmStreamData(streamNo); + return TRUE; + } else { + msmStreamClose(streamNo); + return FALSE; + } +} + +static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo) { + s32 readSize; + MSM_STREAM_SLOT* slot; + + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + if (&StreamInfo.slot[readSize].file == fileInfo) { + break; + } + } + if (readSize == StreamInfo.header.chanMax) { + return; + } + slot = &StreamInfo.slot[readSize]; + slot->readBusyF = 0; + if (slot->shutdownF != 0) { + slot->shutdownF = 0; + msmStreamClose(readSize); + return; + } + if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + switch (slot->status) { + case 2: + if (slot->slotL != -1) { + if (StreamInfo.slot[slot->slotL].status != 3) { + slot->status = 3; + break; + } + if (!msmStreamActivateStream(slot->slotL)) { + slot->slotL = -1; + } + } + if (slot->slotR != -1) { + if (StreamInfo.slot[slot->slotR].status != 3) { + slot->status = 3; + break; + } + if (!msmStreamActivateStream(slot->slotR)) { + slot->slotR = -1; + } + } + if (!msmStreamActivateStream(readSize)) { + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; + } + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; + } + } + break; + case 4: + if (slot->streamPos >= slot->loopLen) { + if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; + if (slot->streamReadSize != 0) { + slot->readBusyF = 1; + DVDReadAsync(fileInfo, slot->streamReadBuf, slot->streamReadSize, slot->streamBaseOfs + slot->streamPos, msmStreamDvdCallback2); + slot->streamPos += slot->streamReadSize; + break; + } + } else if (slot->streamReadSize != 0) { + memset(slot->streamReadBuf, 0, slot->streamReadSize); + } + } + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); + break; + case 5: + slot->shutdownF = 0; + msmStreamClose(readSize); + break; + } + } else { + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); + } + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; + } + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; + } + } +} + +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo) { + MSM_STREAM_SLOT* slot; + s32 readSize; + + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + slot = &StreamInfo.slot[readSize]; + if (&slot->file == fileInfo) { + break; + } + } + if (readSize == StreamInfo.header.chanMax) { + return; + } + slot->readBusyF = FALSE; + if (slot->shutdownF != 0) { + slot->shutdownF = FALSE; + msmStreamClose(readSize); + } else if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); + } else { + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); + } + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; + } + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; + } + } +} + +static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user) { + MSM_STREAM_SLOT* slot; + s32 len3; + s32 updateLen; + s32 len; + + slot = &StreamInfo.slot[user]; + if (slot->streamOffF != 0) { + msmStreamShutdown(user); + return 0; + } + updateLen = slot->streamFrq / 2; + if (len1 < updateLen) { + len = 0; + slot->unk64 = slot->unk68 + (len1 - slot->unk6C); + } else { + msmStreamData(user); + len = updateLen; + len3 = slot->unk68 + (updateLen - slot->unk6C); + slot->unk68 = len3; + slot->unk64 = len3; + slot->unk6C = 0; + } + if (slot->unk64 >= slot->loopEndOfs) { + if (slot->stereoF != 0) { + slot->unk68 = 0; + slot->unk64 -= slot->loopEndOfs; + if (len1 < updateLen) { + slot->unk6C = len1 - slot->unk64; + } + } else { + slot->streamOffF = 1; + slot->pauseF = 0; + } + } + return len; +} + +static s32 msmStreamSlotInit(MSM_STREAM_SLOT *slot, MSM_STREAM_PACK* pack, STREAM_PARAM* param, s32 no) { + MSM_STREAM *stream; + s32 temp_r3; + s32 ret; + + stream = &pack->stream[no]; + slot->volBase = pack->vol; + slot->vol = param->vol; + slot->volFade = slot->pauseVol = 127; + slot->panBase = pack->pan; + slot->pan = param->pan; + slot->span = param->span; + slot->auxA = param->auxA; + slot->auxB = param->auxB; + slot->stereoF = (pack->flag >> 1) & 1; + slot->streamBaseOfs = stream->sampleOfs; + slot->streamPosStart = (pack->loopOfsStart >> 1) & ~7; + slot->frq = pack->frq; + slot->adpcmInfo = &StreamInfo.adpcmParam[stream->adpcmParamIdx]; + slot->fadeMaxTime = 0; + slot->pauseTimeMax = 0; + slot->pauseTime = 0; + slot->pauseLen = 0; + slot->firstF = 1; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->streamBufSize = (StreamInfo.header.sampleFrq * StreamInfo.header.maxBufs * SND_STREAM_ADPCM_BLKBYTES / SND_STREAM_ADPCM_BLKSIZE + 0x3F) & ~0x3F; + if (slot->streamBufSize > StreamInfo.bufSize) { + slot->streamBufSize = StreamInfo.bufSize; + } + slot->streamFrq = (slot->streamBufSize / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->loopLen = (pack->loopOfsEnd >> 1) & ~0x1F; + slot->loopEndOfs = (slot->loopLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk64 = slot->unk68 = 0; + slot->unk6C = 0; + slot->slotL = -1; + slot->slotR = -1; + slot->streamPos = param->sampleOfs; + ret = slot->streamBufSize / 2; + if ((temp_r3 = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + ret = temp_r3; + slot->streamReadSize = slot->streamBufSize / 2 - temp_r3; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + temp_r3); + memset(slot->streamReadBuf, 0, slot->streamReadSize); + } + slot->status = 2; + return ret; +} diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 9c9aedda..916e03b0 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -1,302 +1,773 @@ -#include "dolphin.h" -#include "dolphin/ai.h" +#include "msm/msmsys.h" #include "msm/msmfio.h" #include "msm/msmmem.h" #include "msm/msmmus.h" #include "msm/msmse.h" #include "msm/msmstream.h" -#include "musyx/musyx.h" -#include "game/msm.h" // TODO remove, only for decomp +static MSM_SYS sys; -typedef struct _unkSubStruct { - s8 unk0; - union { - f32 unk4f[9]; - s32 unk4s[9]; - }; -} unkSubStruct; - -typedef struct _unkSubStruct2 { - char unk[0x3C]; - s32 unk3C; - s32 unk40; - s32 unk44; - s32 unk48; - s32 unk4C; - s32 unk50; - s32 unk54; - s32 unk58; - s32 unk5C; - char unk60[0x30]; - s32 unk90; - s32 unk94; - s32 unk98; - char unk9C[0xA0]; - u8 unk13C; - f32 unk140; - f32 unk144; - f32 unk148; - f32 unk14C; - f32 unk150; - char unk154[0x70]; - u8 unk1C4; - f32 unk1C8; - f32 unk1CC; - f32 unk1D0; - f32 unk1D4; - f32 unk1D8; - f32 unk1DC; -} unkSubStruct2; // sizeof unk1E0 - -typedef struct _unkSubStruct3 { - char unk[0x4]; - s32 unk4; - char unk8[0x8]; - s32 unk10; // offset - u32 unk14; // length - s32 unk18; // offset - u32 unk1C; // length - char unk20[0x18]; - s32 unk38; - char unk3C[4]; - s32 unk40; - char unk44[0x1C]; -} unkSubStruct3; // sizeof 0x60 - -typedef struct _unkStruct2 { - char *unk0; - s32 unk4; - void *unk8; - void *unkC; - void *unk10; - u32 unk14; - void *unk18; -} unkStruct2; - -typedef struct _unkStruct3 { - s32 unk0; - s32 unk4; - s32 unk8; -} unkStruct3; - -typedef struct _unkStruct4 { - SND_GROUPID unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; -} unkStruct4; - -typedef struct _sndInitData { - s8 unk0; - s8 unk1; - s8 unk2; - char unk3[0xB]; - s8 unkE; - s8 unkF; - u32 unk10; - s32 unk14; - char unk18[0x11]; - s8 unk29[10]; // size unknown -} sndInitData; - -typedef struct _sysData { - s32 unk0; - s8 unk4; - s8 unk5; - s8 unk6; - s8 unk7; - s32 unk8; - unkSubStruct3 *unkC; - sndInitData *unk10; - unkSubStruct *unk14; - s8 unk18; - s8 unk19; - s8 unk1A; - s8 unk1B; - unkSubStruct2 unk1C; // userA - unkSubStruct2 unk1FC; // userB - char unk3DC[0x8]; - s32 unk3E4; - s32 unk3E8; - s32 unk3EC; - s32 unk3F0; - s8 unk3F4; - unkStruct3 *unk3F8; - char unk3FC[0xF0]; - s32 unk4EC; - BOOL unk4F0; - AIDCallback unk4F4; - s32 unk4F8; -} sysData; - -static sysData sys; - -void msmSysServer(void) +static void msmSysServer(void) { if (sndIsInstalled() == 1) { - if (--sys.unk4F8 == 0) { - sys.unk4F8 = 3; + if (--sys.timer == 0) { + sys.timer = 3; msmMusPeriodicProc(); msmSePeriodicProc(); msmStreamPeriodicProc(); } } - sys.unk4F4(); + sys.oldAIDCallback(); } -s32 msmSysSetAuxParam(s32 arg0, s32 arg1) +static s32 msmSysSetAuxParam(s32 auxA, s32 auxB) { - SND_AUX_CALLBACK sp24; - SND_AUX_CALLBACK sp20; - void **var_r26; - s32 var_r23; - unkSubStruct2 *temp_r3; - sysData *var_r25; - sysData *var_r27; - unkSubStruct *temp_r5; - u32 var_r0; - u8 temp_r5_2; - unkSubStruct *temp_r4_2; + s32 unused_1[2]; + SND_AUX_CALLBACK auxcb[2]; + s32 unused_2[2]; + MSM_AUXPARAM *auxParam; + MSM_AUX *aux; + u32 result; + s32 i; - if ((sys.unk18 != -2) && (arg0 >= 0)) { - sys.unk18 = arg0; + if (sys.auxParamNo[0] != MSM_AUXNO_NULL && auxA >= 0) { + sys.auxParamNo[0] = auxA; } - if ((sys.unk19 != -2) && (arg1 >= 0)) { - temp_r5->unk0 = arg1; + if (sys.auxParamNo[1] != MSM_AUXNO_NULL && auxB >= 0) { + sys.auxParamNo[1] = auxB; } - if ((sys.unk18 < 0) && (temp_r5->unk0 < 0)) { + if (sys.auxParamNo[0] < 0 && sys.auxParamNo[1] < 0) { return 0; } - var_r27 = &sys; - var_r25 = &sys; - var_r26 = &sp20; - - // the for loop first sets sp20 and then sp24 - for (var_r23 = 0; var_r23 < 2; var_r23++, var_r27++, var_r26++, var_r25++) { - if (var_r27->unk18 < 0) { - *var_r26 = NULL; + for (i = 0; i < 2; i++) { + if (sys.auxParamNo[i] < 0) { + auxcb[i] = NULL; continue; } - temp_r4_2 = &sys.unk14[var_r27->unk18]; - temp_r3 = &var_r25->unk1C; - switch (temp_r4_2->unk0) { - case 0: - *var_r26 = &sndAuxCallbackReverbHI; - temp_r3->unk1C4 = temp_r4_2->unk4s[0]; - temp_r3->unk1C8 = temp_r4_2->unk4f[1]; - temp_r3->unk1CC = temp_r4_2->unk4f[2]; - temp_r3->unk1D0 = temp_r4_2->unk4f[3]; - temp_r3->unk1D4 = temp_r4_2->unk4f[4]; - temp_r3->unk1D8 = temp_r4_2->unk4f[5]; - temp_r3->unk1DC = temp_r4_2->unk4f[6]; - // var_r0 = sndAuxCallbackPrepareReverbHI(); + auxParam = &sys.auxParam[sys.auxParamNo[i]]; + aux = &sys.aux[i]; + switch (auxParam->type) { + case MSM_AUX_REVERBHI: + auxcb[i] = sndAuxCallbackReverbHI; + aux->revHi.tempDisableFX = auxParam->revHi.tempDisableFX; + aux->revHi.coloration = auxParam->revHi.coloration; + aux->revHi.mix = auxParam->revHi.mix; + aux->revHi.time = auxParam->revHi.time; + aux->revHi.damping = auxParam->revHi.damping; + aux->revHi.preDelay = auxParam->revHi.preDelay; + aux->revHi.crosstalk = auxParam->revHi.crosstalk; + result = sndAuxCallbackPrepareReverbHI(&aux->revHi); break; - case 1: - *var_r26 = &sndAuxCallbackReverbSTD; - temp_r3->unk13C = temp_r4_2->unk4s[0]; - temp_r3->unk140 = temp_r4_2->unk4f[1]; - temp_r3->unk144 = temp_r4_2->unk4f[2]; - temp_r3->unk148 = temp_r4_2->unk4f[3]; - temp_r3->unk14C = temp_r4_2->unk4f[4]; - temp_r3->unk150 = temp_r4_2->unk4f[5]; - // var_r0 = sndAuxCallbackPrepareReverbSTD(); + + case MSM_AUX_REVERBSTD: + auxcb[i] = sndAuxCallbackReverbSTD; + aux->revStd.tempDisableFX = auxParam->revStd.tempDisableFX; + aux->revStd.coloration = auxParam->revStd.coloration; + aux->revStd.mix = auxParam->revStd.mix; + aux->revStd.time = auxParam->revStd.time; + aux->revStd.damping = auxParam->revStd.damping; + aux->revStd.preDelay = auxParam->revStd.preDelay; + result = sndAuxCallbackPrepareReverbSTD(&aux->revStd); break; - case 2: - *var_r26 = &sndAuxCallbackChorus; - temp_r3->unk90 = temp_r4_2->unk4s[0]; - temp_r3->unk94 = temp_r4_2->unk4s[1]; - temp_r3->unk98 = temp_r4_2->unk4s[2]; - // var_r0 = sndAuxCallbackPrepareChorus(); + + case MSM_AUX_CHORUS: + auxcb[i] = sndAuxCallbackChorus; + aux->chorus.baseDelay = auxParam->chorus.baseDelay; + aux->chorus.variation = auxParam->chorus.variation; + aux->chorus.period = auxParam->chorus.period; + result = sndAuxCallbackPrepareChorus(&aux->chorus); break; - case 3: - *var_r26 = &sndAuxCallbackDelay; - temp_r3->unk3C = temp_r4_2->unk4s[0]; - temp_r3->unk48 = temp_r4_2->unk4s[3]; - temp_r3->unk54 = temp_r4_2->unk4s[6]; - temp_r3->unk40 = temp_r4_2->unk4s[1]; - temp_r3->unk4C = temp_r4_2->unk4s[4]; - temp_r3->unk58 = temp_r4_2->unk4s[7]; - temp_r3->unk44 = temp_r4_2->unk4s[2]; - temp_r3->unk50 = temp_r4_2->unk4s[5]; - temp_r3->unk5C = temp_r4_2->unk4s[8]; - // var_r0 = sndAuxCallbackPrepareDelay(); + + case MSM_AUX_DELAY: + auxcb[i] = sndAuxCallbackDelay; + aux->delay.delay[0] = auxParam->delay.delay[0]; + aux->delay.feedback[0] = auxParam->delay.feedback[0]; + aux->delay.output[0] = auxParam->delay.output[0]; + aux->delay.delay[1] = auxParam->delay.delay[1]; + aux->delay.feedback[1] = auxParam->delay.feedback[1]; + aux->delay.output[1] = auxParam->delay.output[1]; + aux->delay.delay[2] = auxParam->delay.delay[2]; + aux->delay.feedback[2] = auxParam->delay.feedback[2]; + aux->delay.output[2] = auxParam->delay.output[2]; + result = sndAuxCallbackPrepareDelay(&aux->delay); break; } - if (var_r0 == 0) { - return 1; + if (result == FALSE) { + return TRUE; } } - sndSetAuxProcessingCallbacks(0, sp20, &sys.unk1C, 0xFF, 0, sp24, &sys.unk1FC, 0xFF, 0); - return 0; + sndSetAuxProcessingCallbacks(0, auxcb[0], &sys.aux[0], 0xFF, 0, auxcb[1], &sys.aux[1], 0xFF, 0); + return FALSE; } -s8 msmSysLoadBaseGroup(void *arg0) +static s32 msmSysLoadBaseGroup(void *buf) { - DVDFileInfo spC; - sysData *var_r30; - s32 var_r28; - unkStruct3 *temp_r27; - unkStruct4 *temp_r25; + DVDFileInfo file; + s32 i; + MSM_GRP_HEAD *grpData; + MSM_GRP_INFO *grpInfo; - if (msmFioOpen(sys.unk0, &spC) != 1) { - return -1; + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { + return MSM_ERR_OPENFAIL; } - var_r30 = &sys; - for (var_r28 = 0; var_r28 < sys.unk3F4; var_r30 = (sysData *)((s32)var_r30 + 4), var_r28++, sys.unk8 += temp_r25->unk10) { - temp_r27 = var_r30->unk3F8; - temp_r25 = (unkStruct4 *)(sys.unk3EC + (sys.unk10->unk29[var_r28] << 5)); - if (msmFioRead(&spC, temp_r27, temp_r25->unk8, temp_r25->unk4 + sys.unkC->unk38) < 0) { - msmFioClose(&spC); - return -2; + for(i = 0; i < sys.baseGrpNum; i++) { + grpData = sys.grpData[i]; + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if (msmFioRead(&file, grpData, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; } - if (msmFioRead(&spC, arg0, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { - msmFioClose(&spC); - return -2; + if (msmFioRead(&file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { + msmFioClose(&file); + return MSM_ERR_READFAIL; } - if (sndPushGroup((void *)(temp_r27->unk4 + (s32)temp_r27), temp_r25->unk0, arg0, (void *)(temp_r27->unk8 + (s32)temp_r27), - (void *)(temp_r27->unk0 + (s32)temp_r27)) - == 0U) { - msmFioClose(&spC); - return -0x20; + if (!sndPushGroup((void*) (grpData->projOfs + (u32) grpData), grpInfo->gid, buf, + (void*) (grpData->sdirOfs + (u32) grpData), (void*) (grpData->poolOfs + (u32) grpData))) + { + msmFioClose(&file); + return MSM_ERR_GRP_FAILPUSH; } + sys.aramP += grpInfo->sampSize; } - msmFioClose(&spC); + msmFioClose(&file); return 0; } -s32 msmSysGroupInit(DVDFileInfo *arg0); +s32 msmSysSearchGroupStack(s32 grpId, s32 no) +{ + MSM_GRP_STACK *stack; + u32 stackNo; + s32 i; + s32 stackNoB; + s32 stackNoA; + s32 maxNo; + s32 stackMax; + + stackNoA = -1; + maxNo = 0; + if (sys.grpInfo[grpId].stackNo == 0) { + stack = sys.grpStackA; + stackMax = sys.grpStackAMax; + } else { + stack = sys.grpStackB; + stackMax = sys.grpStackBMax; + } + for (i = 0; i < stackMax; stack++, i++) { + if (i == no) { + continue; + } + if ((stackNo = stack->num) != 0) { + if (stack->baseGrpF == 0 && stackNo > maxNo) { + maxNo = stackNo; + stackNoB = -(i + 1); + } + } else { + stackNoA = i; + } + } + return (stackNoA < 0) ? stackNoB : stackNoA; +} + +s32 msmSysGroupInit(DVDFileInfo *file) +{ + s32 i; + MSM_GRP_STACK *stack; + MSM_GRP_INFO *grpInfo; + + sys.grpMax = sys.info->grpMax; + sys.grpNum = 1; + sys.baseGrpNum = sys.info->baseGrpNum; + sys.grpStackAMax = sys.info->stackDepthA; + sys.grpStackADepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackBMax = sys.info->stackDepthB; + sys.grpStackBDepth = 0; + sys.grpStackBOfs = 0; + if ((sys.grpInfo = msmMemAlloc(sys.header->grpInfoSize)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(file, sys.grpInfo, sys.header->grpInfoSize, sys.header->grpInfoOfs) < 0) { + return MSM_ERR_READFAIL; + } + if ((sys.grpBufA = msmMemAlloc(sys.info->grpBufSizeA * sys.grpStackAMax)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if ((sys.grpBufB = msmMemAlloc(sys.info->grpBufSizeB * sys.grpStackBMax)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (sys.header->grpSetSize) { + if ((sys.grpSet = msmMemAlloc(sys.header->grpSetSize)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(file, sys.grpSet, sys.header->grpSetSize, sys.header->grpSetOfs) < 0) { + return MSM_ERR_READFAIL; + } + } else { + sys.grpSet = NULL; + } + for (i = 0; i < sys.grpStackAMax; i++) { + stack = &sys.grpStackA[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufA + sys.info->grpBufSizeA * i); + } + for (i = 0; i < sys.grpStackBMax; i++) { + stack = &sys.grpStackB[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufB + sys.info->grpBufSizeB * i); + } + sys.sampSize = 0; + for (i = 0; i < sys.baseGrpNum; i++) { + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if ((sys.grpData[i] = msmMemAlloc(grpInfo->dataSize)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (sys.sampSize < grpInfo->sampSize) { + sys.sampSize = grpInfo->sampSize; + } + grpInfo->sampSize *= -1; + } + sys.sampSizeBase = 0; + for (i = 1; i < sys.grpMax; i++) { + grpInfo = &sys.grpInfo[i]; + if (grpInfo->sampSize < 0) { + grpInfo->sampSize *= -1; + } else if (sys.sampSizeBase < grpInfo->sampSize) { + sys.sampSizeBase = grpInfo->sampSize; + } + } + return 0; +} void msmSysIrqDisable(void) { - if (sys.unk4EC++ == 0) { - sys.unk4F0 = OSDisableInterrupts(); + if (sys.irqDepth++ == 0) { + sys.irqState = OSDisableInterrupts(); } } void msmSysIrqEnable(void) { - if (sys.unk4EC != 0) { - if (--sys.unk4EC == 0) { - OSRestoreInterrupts(sys.unk4F0); + if (sys.irqDepth != 0) { + if (--sys.irqDepth == 0) { + OSRestoreInterrupts(sys.irqState); } } } -void msmSysRegularProc(void); +static BOOL msmSysCheckBaseGroupNo(s32 grpId) +{ + s32 i; + + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.info->baseGrp[i] == grpId) { + return TRUE; + } + } + return FALSE; +} + +BOOL msmSysCheckBaseGroup(s32 grpId) +{ + s32 i; + + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { + return TRUE; + } + } + return FALSE; +} + +void *msmSysGetGroupDataPtr(s32 grpId) +{ + MSM_GRP_STACK *grp; + s32 i; + + for (i = 0; i < sys.baseGrpNum; i++) { + if (sys.info->baseGrp[i] == grpId) { + return sys.grpData[i]; + } + } + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; + } + } + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; + } + } + return NULL; +} + +BOOL msmSysCheckLoadGroupID(s32 grpId) +{ + MSM_GRP_STACK *grp; + s32 i; + + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { + return TRUE; + } + } + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { + return TRUE; + } + } + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { + return TRUE; + } + } + return FALSE; +} + +void msmSysRegularProc(void) +{ +} s32 msmSysGetOutputMode(void) { - return sys.unk4; + return sys.outputMode; +} + +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode) +{ + SND_OUTPUTMODE var_r3; + BOOL failF; + + failF = 0; + sys.outputMode = mode; + switch (mode) { + case SND_OUTPUTMODE_MONO: + var_r3 = SND_OUTPUTMODE_MONO; + break; + case SND_OUTPUTMODE_SURROUND: + if (sys.info->surroundF != 0) { + var_r3 = SND_OUTPUTMODE_SURROUND; + } else { + sys.outputMode = SND_OUTPUTMODE_STEREO; + var_r3 = SND_OUTPUTMODE_STEREO; + failF = 1; + } + break; + case SND_OUTPUTMODE_STEREO: + default: + var_r3 = SND_OUTPUTMODE_STEREO; + break; + } + sndOutputMode(var_r3); + msmStreamSetOutputMode(sys.outputMode); + OSSetSoundMode((mode != SND_OUTPUTMODE_MONO) ? 1 : 0); + return failF; +} + +s32 msmSysSetAux(s32 auxA, s32 auxB) +{ + s32 i; + + sndSetAuxProcessingCallbacks(0, NULL, NULL, 0, 0, NULL, NULL, 0, 0); + for (i = 1; i >= 0; i--) { + if (sys.auxParamNo[i] < 0) { + continue; + } + switch (sys.auxParam[sys.auxParamNo[i]].type) { + case 0: + sndAuxCallbackShutdownReverbHI(&sys.aux[i].revHi); + break; + case 1: + sndAuxCallbackShutdownReverbSTD(&sys.aux[i].revStd); + break; + case 2: + sndAuxCallbackShutdownChorus(&sys.aux[i].chorus); + break; + case 3: + sndAuxCallbackShutdownDelay(&sys.aux[i].delay); + break; + } + } + if (msmSysSetAuxParam(auxA, auxB) != 0) { + return MSM_ERR_INVALID_AUXPARAM; + } + return 0; } s32 msmSysGetSampSize(BOOL baseGrp) { if (baseGrp != 0) { - return sys.unk3E8; + return sys.sampSizeBase; } - return sys.unk3E4; + return sys.sampSize; +} + +s32 msmSysDelGroupAll(void) +{ + MSM_GRP_STACK *grp; + s32 i; + + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackBDepth--; + } + } + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackADepth--; + } + } + return 0; +} + +s32 msmSysDelGroupBase(s32 grpNum) +{ + s32 j; + MSM_GRP_STACK *grp; + s32 i; + s8 level; + s8 stackBF; + s32 grpMaxNum; + + if (sys.grpStackAOfs + sys.grpStackBOfs == 0) { + return 0; + } + if (grpNum >= sys.grpStackAOfs + sys.grpStackBOfs) { + grpNum = 0; + } + if (grpNum != 0) { + msmSysDelGroupAll(); + for (i = 0; i < grpNum; i++) { + grpMaxNum = 0; + for (j = 0; j < sys.grpStackAMax; j++) { + grp = &sys.grpStackA[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = FALSE; + } + } + for (j = 0; j < sys.grpStackBMax; j++) { + grp = &sys.grpStackB[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = TRUE; + } + } + if (stackBF == FALSE) { + grp = &sys.grpStackA[level]; + sys.grpStackADepth--; + sys.grpStackAOfs--; + } else { + grp = &sys.grpStackB[level]; + sys.grpStackBDepth--; + sys.grpStackBOfs--; + } + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; + } + } else { + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0) { + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; + } + } + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0) { + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; + } + } + sys.grpStackBOfs = 0; + sys.grpStackBDepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackADepth = 0; + } + return 0; +} + +static s32 msmSysPushGroup(DVDFileInfo *file, void *buf, MSM_GRP_STACK *grp, s32 grpId) +{ + MSM_GRP_INFO *grpInfo; + MSM_GRP_HEAD *grpBuf; + + grpInfo = &sys.grpInfo[grpId]; + if (msmFioRead(file, grp->buf, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { + return MSM_ERR_READFAIL; + } + if (msmFioRead(file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { + return MSM_ERR_READFAIL; + } + grpBuf = grp->buf; + if (!sndPushGroup((void*) (grpBuf->projOfs + (u32) grpBuf), grpInfo->gid, buf, + (void*) (grpBuf->sdirOfs + (u32) grpBuf), (void*) (grpBuf->poolOfs + (u32) grpBuf))) + { + return MSM_ERR_GRP_FAILPUSH; + } + sys.aramP += grpInfo->sampSize; + grp->grpId = grpId; + grp->num = sys.grpNum++; + return 0; +} + +s32 msmSysLoadGroupBase(s32 grpId, void *buf) +{ + s32 temp_r29; + s32 temp_r28; + s32 var_r23; + s32 temp_r3_2; + MSM_GRP_STACK *var_r24; + DVDFileInfo sp10; + + if (grpId < 1 || grpId >= sys.grpMax) { + return MSM_ERR_64; + } + var_r23 = msmSysDelGroupAll(); + if (var_r23 != 0) { + return var_r23; + } + temp_r29 = sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; + if (msmSysCheckBaseGroupNo(grpId)) { + return 0; + } + if (temp_r29 >= 0xF) { + return MSM_ERR_STACK_OVERFLOW; + } + temp_r3_2 = msmSysSearchGroupStack(grpId, -1); + if (temp_r3_2 < 0) { + return MSM_ERR_STACK_OVERFLOW; + } + temp_r28 = sys.grpInfo[grpId].stackNo; + if (!temp_r28) { + var_r24 = &sys.grpStackA[temp_r3_2]; + } else { + var_r24 = &sys.grpStackB[temp_r3_2]; + } + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { + return MSM_ERR_OPENFAIL; + } + var_r23 = msmSysPushGroup(&sp10, buf, var_r24, grpId); + if (var_r23 != 0) { + msmFioClose(&sp10); + return var_r23; + } + msmFioClose(&sp10); + sys.info->baseGrp[temp_r29] = grpId; + var_r24->baseGrpF = 1; + if (temp_r28 == 0) { + sys.grpStackAOfs++; + sys.grpStackADepth++; + } else { + sys.grpStackBOfs++; + sys.grpStackBDepth++; + } + return 0; +} + +static s32 msmSysGetNumGroupSet(void) +{ + if (sys.grpSet != NULL) { + return sys.grpSet->numGrpSet; + } + return 0; +} + +s32 msmSysLoadGroupSet(s32 arg0, void *arg1) +{ + s8 grpId[10]; + DVDFileInfo file; + s32 result; + s32 stackLevel; + s32 pushResult; + s32 i; + s32 grpSetNum; + s8 *grpSet; + + if (msmSysGetNumGroupSet() == 0) { + return 0; + } + result = msmSysDelGroupAll(); + if (result != 0) { + return result; + } + grpSet = &sys.grpSet->data[sys.grpSet->grpSetW * arg0]; + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { + return MSM_ERR_OPENFAIL; + } + sys.grpStackADepth = sys.grpStackAOfs; + grpSetNum = 0; + for (; *grpSet != 0; grpSet++) { + if (msmSysCheckBaseGroupNo(*grpSet)) { + continue; + } + if (sys.grpInfo[(s8) *grpSet].stackNo == 1) { + grpId[grpSetNum++] = *grpSet; + } else { + stackLevel = msmSysSearchGroupStack(*grpSet, -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; + } + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackA[stackLevel], *grpSet); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; + } + sys.grpStackADepth++; + } + } + sys.grpStackBDepth = sys.grpStackBOfs; + for (i = 0; i < grpSetNum; i++) { + stackLevel = msmSysSearchGroupStack(grpId[i], -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; + } + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackB[stackLevel], grpId[i]); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; + } + sys.grpStackBDepth++; + } + msmFioClose(&file); + return 0; +} + +static s32 msmSysLoadGroupSub(DVDFileInfo *file, s32 grpId, void *buf) +{ + s32 grpIdResult; + s32 i; + s32 stackLevel; + s32 result; + u8 *stackDepth; + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *temp_r23; + + grpIdResult = 0; + temp_r23 = &sys.grpInfo[grpId]; + if (temp_r23->stackNo == 0) { + grpStack = sys.grpStackA; + stackDepth = &sys.grpStackADepth; + } else { + grpStack = sys.grpStackB; + stackDepth = &sys.grpStackBDepth; + } + if (temp_r23->subGrpId != 0) { + if (!msmSysCheckBaseGroup(sys.grpInfo[temp_r23->subGrpId].gid)) { + stackLevel = -1; + for (i = 0; i < 2; i++) { + stackLevel = msmSysSearchGroupStack(temp_r23->subGrpId, stackLevel); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; + sndPopGroup(); + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; + grpStack[stackLevel].num = 0; + } + } + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], temp_r23->subGrpId); + if (result != 0) { + return result; + } + (*stackDepth)++; + } + } + stackLevel = msmSysSearchGroupStack(grpId, -1); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; + sndPopGroup(); + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; + } + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], grpId); + if (result == 0) { + result = grpIdResult; + } + (*stackDepth)++; + return result; +} + +static void msmSysPopGroup(s32 no) +{ + MSM_GRP_STACK *grp; + + grp = &sys.grpStackB[no]; + if (grp->num != 0 && grp->baseGrpF == 0) { + sndPopGroup(); + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + } +} + +s32 msmSysLoadGroup(s32 grpId, void *buf) +{ + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *grpInfo; + s32 pushResult; + s32 i; + s32 result; + DVDFileInfo file; + s32 unused; + + if (buf == NULL) { + return 0; + } + if (grpId == 0) { + return msmSysLoadBaseGroup(buf); + } + grpInfo = &sys.grpInfo[grpId]; + if (msmSysCheckLoadGroupID(grpInfo->gid)) { + return 0; + } + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { + return MSM_ERR_OPENFAIL; + } + if (grpInfo->stackNo == 0) { + for (i = 0; i < sys.grpStackBMax; i++) { + msmSysPopGroup(i); + } + result = msmSysLoadGroupSub(&file, grpId, buf); + for (i = 0; i < sys.grpStackBMax; i++) { + grpStack = &sys.grpStackB[i]; + if (grpStack->num != 0 && grpStack->baseGrpF == 0) { + pushResult = msmSysPushGroup(&file, buf, grpStack, grpStack->grpId); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; + } + } + } + } else { + result = msmSysLoadGroupSub(&file, grpId, buf); + } + msmFioClose(&file); + return result; } void msmSysCheckInit(void) @@ -306,135 +777,134 @@ void msmSysCheckInit(void) s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) { - s32 var_r26; - s32 temp_r3; - void *temp_r3_8; + s32 result; + void *temp; - SND_HOOKS sp4C = { msmMemAlloc, msmMemFree }; + SND_HOOKS sndHooks = { msmMemAlloc, msmMemFree }; DVDFileInfo sp10; if (sndIsInstalled() == 1) { - return -0x24; + return MSM_ERR_INSTALLED; } - var_r26 = 0; // retErr - sys.unk4EC = 0; + result = 0; // retErr + sys.irqDepth = 0; msmMemInit(init->heap, init->heapSize); msmFioInit(init->open, init->read, init->close); - sys.unk0 = DVDConvertPathToEntrynum(init->msmPath); - if (sys.unk0 < 0) { - return -1; + sys.msmEntryNum = DVDConvertPathToEntrynum(init->msmPath); + if (sys.msmEntryNum < 0) { + return MSM_ERR_OPENFAIL; } - if (msmFioOpen(sys.unk0, &sp10) != 1) { - return -1; + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { + return MSM_ERR_OPENFAIL; } - if ((sys.unkC = msmMemAlloc(0x60)) == NULL) { + if ((sys.header = msmMemAlloc(0x60)) == NULL) { msmFioClose(&sp10); - return -0xA; + return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unkC, 0x60, 0) < 0) { + if (msmFioRead(&sp10, sys.header, 0x60, 0) < 0) { msmFioClose(&sp10); - return -2; + return MSM_ERR_READFAIL; } - if (sys.unkC->unk4 != 2) { + if (sys.header->version != MSM_FILE_VERSION) { msmFioClose(&sp10); - return -0x79; + return MSM_ERR_INVALIDFILE; } - if ((sys.unk10 = msmMemAlloc(sys.unkC->unk14)) == NULL) { + if ((sys.info = msmMemAlloc(sys.header->infoSize)) == NULL) { msmFioClose(&sp10); - return -0xA; + return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unk10, sys.unkC->unk14, sys.unkC->unk10) < 0) { + if (msmFioRead(&sp10, sys.info, sys.header->infoSize, sys.header->infoOfs) < 0) { msmFioClose(&sp10); - return -2; + return MSM_ERR_READFAIL; } if (aram != NULL) { if (aram->skipARInit == 0) { ARInit(aram->stackIndex, aram->aramEnd); ARQInit(); - aram = (MSM_ARAM *)ARAlloc(sys.unk10->unk14); + aram = (MSM_ARAM *)ARAlloc(sys.info->aramSize); if ((u32)aram != ARGetBaseAddress()) { msmFioClose(&sp10); - return -0x14; + return MSM_ERR_OUTOFAMEM; } - sys.unk7 = 0; + sys.arInitF = FALSE; } else { - if ((sys.unk10->unk14 + ARGetBaseAddress()) > aram->aramEnd) { + if ((sys.info->aramSize + ARGetBaseAddress()) > aram->aramEnd) { msmFioClose(&sp10); - return -0x14; + return MSM_ERR_OUTOFAMEM; } ARInit(NULL, 0); ARQInit(); - sys.unk7 = 1; + sys.arInitF = TRUE; } } - var_r26 = msmSysGroupInit(&sp10); - if (var_r26 != 0) { + result = msmSysGroupInit(&sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmMusInit(&sys.unk0, &sp10); - if (var_r26 != 0) { + result = msmMusInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmSeInit(&sys.unk0, &sp10); - if (var_r26 != 0) { + result = msmSeInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - sys.unk18 = sys.unk10->unkE == -2 ? -2 : -1; - sys.unk19 = sys.unk10->unkF == -2 ? -2 : -1; - if ((s32)sys.unkC->unk1C == 0) { - var_r26 = 0; + sys.auxParamNo[0] = sys.info->auxParamA == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + sys.auxParamNo[1] = sys.info->auxParamB == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + if ((s32)sys.header->auxParamSize == 0) { + result = 0; } else { - if ((sys.unk14 = msmMemAlloc(sys.unkC->unk1C)) == NULL) { - var_r26 = -0xA; + if ((sys.auxParam = msmMemAlloc(sys.header->auxParamSize)) == NULL) { + result = MSM_ERR_OUTOFMEM; } else { - if (msmFioRead(&sp10, sys.unk14, sys.unkC->unk1C, sys.unkC->unk18) < 0) { - var_r26 = -2; + if (msmFioRead(&sp10, sys.auxParam, sys.header->auxParamSize, sys.header->auxParamOfs) < 0) { + result = MSM_ERR_READFAIL; } else { - var_r26 = 0; + result = 0; } } } - if (var_r26 != 0) { + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } msmFioClose(&sp10); - temp_r3 = msmStreamInit(init->pdtPath); - if (temp_r3 < 0) { - return temp_r3; + result = msmStreamInit(init->pdtPath); + if (result < 0) { + return result; } AIInit(NULL); - sndSetHooks(&sp4C); - if (sndInit(sys.unk10->unk0, sys.unk10->unk1, sys.unk10->unk2, 1, 0, sys.unk10->unk14) != 0) { - return -0x1E; + sndSetHooks(&sndHooks); + if (sndInit(sys.info->voices, sys.info->music, sys.info->sfx, 1, 0, sys.info->aramSize) != 0) { + return MSM_ERR_INITFAIL; } - sys.unk4F4 = AIRegisterDMACallback(msmSysServer); - sys.unk4F8 = 1; - var_r26 = msmStreamAmemAlloc(); - if (var_r26 < 0) { + sys.oldAIDCallback = AIRegisterDMACallback(msmSysServer); + sys.timer = 1; + result = msmStreamAmemAlloc(); + if (result < 0) { sndQuit(); - return var_r26; + return result; } - sys.unk8 = var_r26 + 0x500; - if ((s32)sys.unk10->unk10 != 0) { - temp_r3_8 = msmMemAlloc(sys.unk10->unk10 + 0x100); - if (temp_r3_8 == NULL) { + sys.aramP = result + 0x500; + if ((int)sys.info->minMem != 0) { + temp = msmMemAlloc(sys.info->minMem + 0x100); + if (temp == NULL) { msmStreamAmemFree(); sndQuit(); - return -0xA; + return MSM_ERR_OUTOFMEM; } - msmMemFree(temp_r3_8); + msmMemFree(temp); } - if (msmSysSetAuxParam(sys.unk10->unkE, sys.unk10->unkF) != 0) { + if (msmSysSetAuxParam(sys.info->auxParamA, sys.info->auxParamB) != 0) { msmStreamAmemFree(); sndQuit(); - return -0x1F; + return MSM_ERR_INVALID_AUXPARAM; } msmSysSetOutputMode(OSGetSoundMode() == 0 ? SND_OUTPUTMODE_MONO : SND_OUTPUTMODE_STEREO); sndVolume(0x7F, 0, 0xFF);